Divyansh12 commited on
Commit
9947575
·
verified ·
1 Parent(s): 2991cc4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -17
app.py CHANGED
@@ -1,23 +1,23 @@
 
1
  import streamlit as st
2
  from PIL import Image
3
  import re
4
- from transformers import VisionEncoderDecoderModel, AutoProcessor
5
 
6
  st.set_page_config(page_title="OCR Application", page_icon="🖼️", layout="wide")
7
- device = "cpu"
8
 
9
  @st.cache_resource
10
  def load_model():
11
- # Load processor and model for OCR
12
- processor = AutoProcessor.from_pretrained('ucaslcl/GOT-OCR2_0', trust_remote_code=True)
13
- model = VisionEncoderDecoderModel.from_pretrained('ucaslcl/GOT-OCR2_0', trust_remote_code=True, device_map='cpu', low_cpu_mem_usage=True)
14
- return processor, model
15
-
16
- def extract_text(image, processor, model):
17
- # Preprocess the image and extract text
18
- pixel_values = processor(images=image, return_tensors="pt").pixel_values
19
- generated_ids = model.generate(pixel_values)
20
- extracted_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
21
  return extracted_text
22
 
23
  def highlight_matches(text, keywords):
@@ -27,10 +27,10 @@ def highlight_matches(text, keywords):
27
  return highlighted_text
28
 
29
  def main():
30
- st.title("OCR Text Extractor using Hugging Face Model")
31
 
32
- # Load model and processor
33
- processor, model = load_model()
34
 
35
  # Upload Image
36
  uploaded_file = st.file_uploader("Upload an image for OCR", type=["png", "jpg", "jpeg"])
@@ -39,9 +39,9 @@ def main():
39
  image = Image.open(uploaded_file)
40
  st.image(image, caption="Uploaded Image", use_column_width=True)
41
 
42
- # Extract text from the image
43
  with st.spinner("Extracting text from the image..."):
44
- extracted_text = extract_text(image, processor, model)
45
 
46
  st.subheader("Extracted Text")
47
  st.text_area("Text from Image", extracted_text, height=300)
@@ -57,3 +57,4 @@ def main():
57
 
58
  if __name__ == "__main__":
59
  main()
 
 
1
+
2
  import streamlit as st
3
  from PIL import Image
4
  import re
5
+ from transformers import AutoModel, AutoTokenizer
6
 
7
  st.set_page_config(page_title="OCR Application", page_icon="🖼️", layout="wide")
 
8
 
9
  @st.cache_resource
10
  def load_model():
11
+ # Load the tokenizer and model for processing images
12
+ tokenizer = AutoTokenizer.from_pretrained('ucaslcl/GOT-OCR2_0', trust_remote_code=True)
13
+ model = AutoModel.from_pretrained('ucaslcl/GOT-OCR2_0', trust_remote_code=True, low_cpu_mem_usage=True, use_safetensors=True, pad_token_id=tokenizer.eos_token_id)
14
+ return tokenizer, model
15
+
16
+ def extract_text(image, tokenizer, model):
17
+ # Preprocess the image and extract text using the model
18
+ inputs = tokenizer(images=image, return_tensors="pt") # Adjust based on how the model expects inputs
19
+ generated_ids = model.generate(**inputs)
20
+ extracted_text = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
21
  return extracted_text
22
 
23
  def highlight_matches(text, keywords):
 
27
  return highlighted_text
28
 
29
  def main():
30
+ st.title("OCR Text Extractor using Qwen Model")
31
 
32
+ # Load model and tokenizer
33
+ tokenizer, model = load_model()
34
 
35
  # Upload Image
36
  uploaded_file = st.file_uploader("Upload an image for OCR", type=["png", "jpg", "jpeg"])
 
39
  image = Image.open(uploaded_file)
40
  st.image(image, caption="Uploaded Image", use_column_width=True)
41
 
42
+ # Extract text from the image using the model
43
  with st.spinner("Extracting text from the image..."):
44
+ extracted_text = extract_text(image, tokenizer, model)
45
 
46
  st.subheader("Extracted Text")
47
  st.text_area("Text from Image", extracted_text, height=300)
 
57
 
58
  if __name__ == "__main__":
59
  main()
60
+