File size: 2,394 Bytes
3fe1151
 
 
 
 
 
 
 
7fd17d1
3fe1151
9f992a7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
64
65
66
67
68
#!/usr/bin/env python

from __future__ import annotations

import pathlib

import gradio as gr

from model import Model

DESCRIPTION = '# [CBNetV2](https://github.com/VDIGPKU/CBNetV2)'

model = Model()

with gr.Blocks(css='style.css') as demo:
    gr.Markdown(DESCRIPTION)

    with gr.Row():
        with gr.Column():
            with gr.Row():
                input_image = gr.Image(label='Input Image', type='numpy')
            with gr.Row():
                detector_name = gr.Dropdown(label='Detector',
                                            choices=list(model.models.keys()),
                                            value=model.model_name)
            with gr.Row():
                detect_button = gr.Button('Detect')
                detection_results = gr.Variable()
        with gr.Column():
            with gr.Row():
                detection_visualization = gr.Image(label='Detection Result',
                                                   type='numpy')
            with gr.Row():
                visualization_score_threshold = gr.Slider(
                    label='Visualization Score Threshold',
                    minimum=0,
                    maximum=1,
                    step=0.05,
                    value=0.3)
            with gr.Row():
                redraw_button = gr.Button('Redraw')

    with gr.Row():
        paths = sorted(pathlib.Path('images').rglob('*.jpg'))
        gr.Examples(examples=[[path.as_posix()] for path in paths],
                    inputs=input_image)

    detector_name.change(fn=model.set_model_name,
                         inputs=[detector_name],
                         outputs=None)
    detect_button.click(fn=model.detect_and_visualize,
                        inputs=[
                            input_image,
                            visualization_score_threshold,
                        ],
                        outputs=[
                            detection_results,
                            detection_visualization,
                        ])
    redraw_button.click(fn=model.visualize_detection_results,
                        inputs=[
                            input_image,
                            detection_results,
                            visualization_score_threshold,
                        ],
                        outputs=[detection_visualization])
demo.queue(max_size=10).launch()