File size: 1,676 Bytes
d94f42d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import numpy as np
import gradio as gr
from PIL import Image
from grounded_sam_plate import recognize_plate

CUT_RATIO = 0.15

def process(input_img, cut_ratio):
    result = recognize_plate(input_img, cut_ratio=cut_ratio)
    return result['plate'], result['rectified_plate'], result['detection'], result['chinese']


with gr.Blocks() as demo:
    gr.Markdown(
        """
        please visit https://github.com/ZhengJun-AI/license_plate_recognition.

        this demo only support some Chinese characters: [鄂, 桂, 黑, 冀, 贵, 京, 鲁, 闽, 苏, 皖, 豫, 粤, 新, 川, 吉, 津, 辽, 陕, 浙, 蒙]
        """
    )

    with gr.Row():
        image_input = gr.Image(label="Input Image")
        image_output = gr.Image(label="Rectified Plate", height=300)
    with gr.Accordion("Check more details", open=False):
        with gr.Row():
            cut_ratio = gr.Slider(0, 1, value=CUT_RATIO, step=0.01, label="Cut ratio")
            chinese = gr.Image(label="Chinese", height=100)
        image_detection = gr.Image(label="Detection result")
    result = gr.Textbox(lines=1, label="Result")
    image_button = gr.Button("Run")
    image_button.click(process, inputs=[image_input, cut_ratio], outputs=[result, image_output, image_detection, chinese])

    gr.Markdown("## Examples")
    gr.Examples(
        examples=[
            ['./images/0.jpg', 0.15],
            ['./images/1.jpeg', 0.15],
            ['./images/6.jpeg', 0.15],
            ['./images/5.jpg', 0.15],
        ],
        inputs=[image_input, cut_ratio],
        outputs=[result, image_output, image_detection, chinese],
        fn=process,
        cache_examples=True,
    )


demo.launch()