File size: 1,401 Bytes
8cc1c22 |
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 53 54 55 56 57 58 59 60 61 62 63 |
"""
File: module_ocr.py
Description: Use a vision language model for Optical Character Recognition (OCR) tasks.
Author: Didier Guillevic
Date: 2025-04-06
"""
import gradio as gr
import ocr
#
# Process one file
#
def process(input_file: str):
"""Process given file with OCR."
"""
return ocr.process_file(input_file)
#
# User interface
#
with gr.Blocks() as demo:
# Upload file to process
with gr.Row():
input_file = gr.File(label="Upload a PDF file", scale=1)
output_text = gr.Textbox(label="OCR output", scale=2)
# Buttons
with gr.Row():
ocr_btn = gr.Button(value="OCR", variant="primary")
clear_btn = gr.Button("Clear", variant="secondary")
# Examples
with gr.Accordion("Examples", open=False):
examples = gr.Examples(
[
['./scanned_doc.pdf',],
['./passport_jp.png',]
],
inputs=[input_file,],
outputs=[output_text,],
fn=process,
cache_examples=False,
label="Examples"
)
# Functions
ocr_btn.click(
fn=process,
inputs=[input_file,],
outputs=[output_text,]
)
clear_btn.click(
fn=lambda : (None, ''),
inputs=[],
outputs=[input_file, output_text] # input_file, output_text
)
if __name__ == '__main__':
demo.launch()
|