import gradio as gr
def mock_ocr(image):
if image is None:
return "Please upload an image.", "", "", "{}"
return (
"Dyrehaven 12-10-1952",
"STATENS NATURHISTORISKE MUSEUM",
"NHMD 1709377",
'{"specimen_id": "NHMD 1709377"}'
)
with gr.Blocks(theme=gr.themes.Soft(), title="Museum Specimen OCR") as demo:
gr.Markdown("# Museum Specimen Detection and Text Extraction using OCR")
with gr.Row():
with gr.Column():
img_in = gr.Image(label="Upload Specimen Image", type="pil")
btn = gr.Button("Start Extraction", variant="primary")
with gr.Column():
out1 = gr.Textbox(label="Handwritten Text")
out2 = gr.Textbox(label="Institutional Data")
out3 = gr.Textbox(label="Specimen IDs & Metadata")
json_out = gr.Code(label="Verified Structure (JSON)", language="json")
btn.click(
fn=mock_ocr,
inputs=[img_in],
outputs=[out1, out2, out3, json_out]
)
demo.launch()