File size: 1,766 Bytes
dbfc97a
a1328ad
 
 
dbfc97a
158b8d1
dbfc97a
 
 
 
 
 
e4b6db7
dbfc97a
 
 
 
5033bf7
 
dbfc97a
7c2e9e6
dbfc97a
 
 
 
bcbef50
dbfc97a
 
 
 
 
 
 
 
 
e792e67
dbfc97a
 
 
9442785
dbfc97a
 
0abdd14
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
# Importing the requirements
import warnings
warnings.filterwarnings("ignore")

import gradio as gr
from src.app.task import ocr_task


# Image input for the interface
image = gr.Image(type="pil", label="Image")

# Output for the interface (image and text)
ocr_text_output = gr.Textbox(label="OCR Text", show_label=True, show_copy_button=True)
ocr_image_output = gr.Image(type="pil", label="Output Image")

# Examples for the interface (image paths)
examples = [
    ["images/ocr_image_1.jpg"],
    ["images/ocr_image_2.jpg"],
    ["images/ocr_image_3.jpg"],
    ["images/ocr_image_4.png"]
]

# Title, description, and article for the interface
title = "OCR Text Extraction and Visualization"
description = "Gradio Demo for the Florence-2-large Vision Language Model. This application performs Optical Character Recognition (OCR) on images and provides both extracted text and visualized bounding boxes around detected text regions. To use it, simply upload your image and click 'Submit'. The application will return the detected text and an image with bounding boxes drawn around the detected text regions. Read more at the links below."
article = "<p style='text-align: center'><a href='https://arxiv.org/abs/2311.06242' target='_blank'>Florence-2: Advancing a Unified Representation for a Variety of Vision Tasks</a> | <a href='https://huggingface.co/microsoft/Florence-2-large-ft' target='_blank'>Model Page</a></p>"


# Launch the interface
interface = gr.Interface(
    fn=ocr_task,
    inputs=[image],
    outputs=[ocr_image_output, ocr_text_output],
    examples=examples,
    cache_examples="lazy",
    title=title,
    description=description,
    article=article,
    theme="Nymbo/Nymbo_Theme",
    allow_flagging="never",
)
interface.launch(debug=False)