|
import streamlit as st |
|
from transformers import AutoModel, AutoTokenizer |
|
from PIL import Image |
|
import torch |
|
|
|
|
|
tokenizer = AutoTokenizer.from_pretrained('ucaslcl/GOT-OCR2_0', trust_remote_code=True) |
|
model = AutoModel.from_pretrained('ucaslcl/GOT-OCR2_0', trust_remote_code=True, low_cpu_mem_usage=True, |
|
device_map='cuda', use_safetensors=True, pad_token_id=tokenizer.eos_token_id) |
|
model = model.eval().cuda() |
|
|
|
|
|
st.title('OCR com Modelo Pré-treinado') |
|
|
|
|
|
uploaded_file = st.file_uploader("Faça o upload de uma imagem", type=["jpg", "jpeg", "png"]) |
|
|
|
if uploaded_file is not None: |
|
|
|
image = Image.open(uploaded_file) |
|
st.image(image, caption='Imagem carregada', use_column_width=True) |
|
|
|
|
|
image.save("uploaded_image.jpg") |
|
|
|
|
|
with st.spinner('Processando a imagem...'): |
|
|
|
res = model.chat(tokenizer, "uploaded_image.jpg", ocr_type='ocr') |
|
|
|
|
|
st.subheader("Texto Extraído:") |
|
st.text(res) |
|
else: |
|
st.info("Por favor, faça o upload de uma imagem para continuar.") |
|
|