File size: 1,870 Bytes
75e5de7
 
 
 
 
 
 
 
 
 
 
 
 
 
ba6396d
75e5de7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import pandas as pd
from PIL import Image
import streamlit as st
from streamlit_drawable_canvas import st_canvas

from transformers import TrOCRProcessor, VisionEncoderDecoderModel
processor = TrOCRProcessor.from_pretrained("UBC-NLP/ArOCR-Fonts-v2")
model = VisionEncoderDecoderModel.from_pretrained("UBC-NLP/ArOCR-Fonts-v2")
def predict(img):
  # if img is None:
  #   _,generated_text=main(image)
  #   return generated_text
  # else:

    images = Image.fromarray(img).convert("RGB")
    pixel_values = processor(images, return_tensors="pt").pixel_values
    # PIL_image = Image.fromarray(np.uint8(pixel_values.squeeze()[0,:,:])).convert('RGB')
    generated_ids = model.generate(pixel_values,max_length=512)
    generated_text = processor.batch_decode(
            generated_ids, skip_special_tokens=True)[0]
    return generated_text

# Specify canvas parameters in application
stroke_width = st.sidebar.slider("Stroke width: ", 1, 25, 3)
stroke_color = st.sidebar.color_picker("Stroke color hex: ")
bg_color = st.sidebar.color_picker("Background color hex: ", "#eee")
bg_image = st.sidebar.file_uploader("Background image:", type=["png", "jpg"])

realtime_update = st.sidebar.checkbox("Update in realtime", True)

  
# Create a canvas component
canvas_result = st_canvas(
    fill_color="rgba(255, 165, 0, 0.3)",  # Fixed fill color with some opacity
    stroke_width=stroke_width,
    stroke_color=stroke_color,
    background_color=bg_color,
    background_image=Image.open(bg_image) if bg_image else None,
    update_streamlit=realtime_update,
    height=200,
    drawing_mode="freedraw",
    display_toolbar=st.sidebar.checkbox("Display toolbar", True),
    key="full_app",
)

# Do something interesting with the image data and paths
if canvas_result.image_data is not None:
    st.image(canvas_result.image_data)
    st.text(predict(canvas_result.image_data))