Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from Backend.OCR.Static.ImageOCR import detect_and_ocr, extract_details_from_validated_output, further_processing,handle_processing | |
| def createStaticOcrInterface(): | |
| with gr.Blocks() as ocr_interface: | |
| gr.Markdown("# Flipkart Grid Robotics Track - OCR Interface") | |
| with gr.Tabs(): | |
| # Upload and Detection Tab | |
| with gr.TabItem("Upload & Detection"): | |
| with gr.Row(): | |
| input_image = gr.Image(type="pil", label="Upload Image", height=400, width=400) | |
| output_image = gr.Image(label="Image with Bounding Boxes", height=400, width=400) | |
| btn = gr.Button("Analyze Image & Extract Text") | |
| # OCR Results Tab | |
| with gr.TabItem("OCR Results"): | |
| with gr.Row(): | |
| extracted_textbox = gr.Textbox(label="Extracted OCR Text", lines=5) | |
| with gr.Row(): | |
| refined_textbox = gr.Textbox(label="Refined Text from Gemini", lines=5) | |
| with gr.Row(): | |
| validated_textbox = gr.Textbox(label="Validated Output", lines=5) | |
| # Data table for Manufacturing Date, Expiration Date, and MRP | |
| with gr.Row(): | |
| detail_table = gr.Dataframe( | |
| headers=["Label", "Value"], | |
| value=[["", ""], ["", ""], ["", ""]], # Initialize with empty values | |
| label="Manufacturing, Expiration Dates & MRP", | |
| datatype=["str", "str"], | |
| interactive=False, | |
| ) | |
| further_button = gr.Button("Comprehensive OCR", visible=False) | |
| # Detect and OCR button click event | |
| btn.click( | |
| detect_and_ocr, | |
| inputs=[input_image], | |
| outputs=[output_image, extracted_textbox, refined_textbox, validated_textbox] | |
| ) | |
| # Update the table when validated_textbox changes | |
| validated_textbox.change( | |
| lambda validated_output: extract_details_from_validated_output(validated_output), | |
| inputs=[validated_textbox], | |
| outputs=[detail_table] | |
| ) | |
| # Further processing button click event | |
| further_button.click( | |
| further_processing, | |
| inputs=[input_image, extracted_textbox], | |
| outputs=refined_textbox | |
| ) | |
| # Monitor validated output to control button visibility | |
| refined_textbox.change( | |
| handle_processing, | |
| inputs=[validated_textbox], | |
| outputs=[further_button] | |
| ) | |
| further_button.click( | |
| lambda: gr.update(visible=False), | |
| outputs=[validated_textbox] | |
| ) | |
| return ocr_interface |