Spaces:
Runtime error
Runtime error
File size: 1,878 Bytes
87d0988 |
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 50 51 52 |
import streamlit as st
from PIL import Image
import io
import numpy as np
# Import our custom modules
from utils.image_preprocessing import preprocess_image
from models.document_ai import extract_text_and_layout
# App title and description
st.title("Menu to Braille Converter")
st.write("Upload a menu image to convert it to Braille text")
# File uploader
uploaded_file = st.file_uploader("Choose a menu image...", type=["jpg", "jpeg", "png"])
# Display uploaded image and process it
if uploaded_file is not None:
# Load and display image
image = Image.open(uploaded_file)
st.image(image, caption="Uploaded Menu", use_column_width=True)
# Add a button to process the image
if st.button("Extract Text"):
with st.spinner("Processing image..."):
# Preprocess the image
st.subheader("Preprocessed Image")
preprocessed_img = preprocess_image(image)
st.image(preprocessed_img, caption="Preprocessed Image", use_column_width=True)
# Extract text using LayoutLMv2
st.subheader("Extracted Text")
try:
result = extract_text_and_layout(preprocessed_img)
# Display extracted words
if result['words']:
text = ' '.join(result['words'])
st.text_area("Extracted Text", text, height=200)
else:
st.warning("No text was extracted from the image.")
except Exception as e:
st.error(f"Error processing image: {str(e)}")
# Placeholders for future functionality
st.subheader("Braille Translation")
st.info("Braille translation will be implemented in Phase 4")
st.subheader("Download Options")
st.info("PDF download will be implemented in Phase 5")
|