badru commited on
Commit
3eb6b07
·
verified ·
1 Parent(s): 8f632d9

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -0
app.py ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import TrOCRProcessor, VisionEncoderDecoderModel
3
+ from PIL import Image
4
+
5
+ # Load the model and processor
6
+ @st.cache_resource
7
+ def load_model():
8
+ processor = TrOCRProcessor.from_pretrained("microsoft/trocr-base-handwritten")
9
+ model = VisionEncoderDecoderModel.from_pretrained("microsoft/trocr-base-handwritten")
10
+ return processor, model
11
+
12
+ processor, model = load_model()
13
+
14
+ # Streamlit app
15
+ st.title("OCR API Service")
16
+
17
+ uploaded_file = st.file_uploader("Upload an Image", type=["jpg", "jpeg", "png"])
18
+
19
+ if uploaded_file is not None:
20
+ try:
21
+ # Load and display the uploaded image
22
+ image = Image.open(uploaded_file).convert("RGB")
23
+ st.image(image, caption="Uploaded Image", use_column_width=True)
24
+
25
+ # Perform OCR
26
+ pixel_values = processor(images=image, return_tensors="pt").pixel_values
27
+ generated_ids = model.generate(pixel_values)
28
+ generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
29
+
30
+ # Display extracted text
31
+ st.subheader("Extracted Text:")
32
+ st.text(generated_text)
33
+
34
+ # Simulate API-like JSON response
35
+ json_response = {"extracted_text": generated_text}
36
+ st.write("API Response:")
37
+ st.json(json_response)
38
+
39
+ except Exception as e:
40
+ st.error(f"An error occurred: {e}")