Image2Text / app.py
mkoot007's picture
Update app.py
75e4b7c
raw
history blame
1.2 kB
import streamlit as st
import io
from PIL import Image
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from easyocr import Reader
ocr_reader = Reader(['en'])
text_generator = AutoModelForCausalLM.from_pretrained("gpt2")
text_tokenizer = AutoTokenizer.from_pretrained("gpt2")
def extract_text(image):
return ocr_reader.readtext(image)
def explain_text(text):
input_ids = text_tokenizer.encode(text, return_tensors="pt")
explanation_ids = text_generator.generate(input_ids, max_length=100, num_return_sequences=1)
explanation = text_tokenizer.decode(explanation_ids[0], skip_special_tokens=True)
return explanation
st.title("Text Classification Model")
uploaded_file = st.file_uploader("Upload an image:")
if uploaded_file is not None:
image = Image.open(uploaded_file)
ocr_results = extract_text(image)
extracted_text = " ".join([res[1] for res in ocr_results])
explanation = explain_text(extracted_text)
st.markdown("**Extracted text:**")
st.markdown(extracted_text)
st.markdown("**Explanation:**")
st.markdown(explanation)
else:
st.markdown("Please upload an image to extract text and get an explanation.")