File size: 1,305 Bytes
4d03389
4645cb2
 
 
4d03389
ebca26a
4645cb2
 
 
4d03389
4645cb2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4d03389
 
 
 
 
d12524b
4d03389
 
 
d12524b
4d03389
 
 
4645cb2
4d03389
4645cb2
 
4d03389
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
import gradio as gr
from paddleocr import PaddleOCR,draw_ocr
import json
import os

ocr_en = PaddleOCR(use_angle_cls=True, lang='en')
ocr_ch = PaddleOCR(use_angle_cls=True, lang='ch')
ocr_ru = PaddleOCR(use_angle_cls=True, lang='ru')
ocr_ru = PaddleOCR(use_angle_cls=True, lang='ar')


def perform_ocr(img, lang):
    ocr = ""
    if lang == "English":
        ocr = ocr_en
    elif lang == "Chinese (Simplified)":
        ocr = ocr_ch
    elif lang == "Russian":
        ocr = ocr_ru
    elif lang == "Arabic":
        ocr = ocr_ar

    result =  ocr.ocr(img.name, cls=True)
    final_result = ""
    for idx in range(len(result)):
        res = result[idx]
        for line in res:
            final_result += str(line)
            
    return [img.name, final_result]


demo = gr.Blocks()

with demo:
    gr.HTML("<h1>PaddleOCR v4")
    with gr.Row():
        with gr.Column():
            input_image = gr.Image()
            input_checkbox = gr.CheckboxGroup(["English", "Chinese (Simplified)", "Russian", "Arabic"], label="Languages"),
            input_button = gr.Button()
        with gr.Column():
            output_image = gr.Image()
            output_text = gr.Text()

    btn.click(fn=perform_ocr, inputs=[input_image, input_checkbox], outputs=[output_image, output_text])
    
demo.launch()