File size: 1,370 Bytes
deabc90
 
 
 
 
 
 
e7bac26
 
 
 
 
 
 
 
deabc90
e7bac26
 
 
 
deabc90
e7bac26
 
 
 
 
deabc90
e7bac26
 
56aae38
e7bac26
 
 
 
 
 
 
 
 
 
 
 
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
# https://huggingface.co/spaces/karolmajek/Detectron2-MaskRCNN/commit/0a02fceaca5ec92613aa2e8ce3b7d5e5043cbee5
try:
    import detectron2
except:
    import os 
    os.system('pip install git+https://github.com/facebookresearch/detectron2.git')

import glob
import gradio as gr
from os.path import basename
from predictor import Predictor


predictor = Predictor()

def predict(model: str, img_path: str, score_min: int):
    if not model:
        raise ValueError('モデルが指定されていません')
    if not img_path:
        return ValueError('画像が指定されていません')
    return predictor.predict(model, img_path, score_min)

models = [basename(path) for path in glob.glob("models/*")]
images = glob.glob("test/*.jpg")

demo = gr.Interface(
    predict, 
    inputs=[
        gr.Dropdown(models, label="モデル", value=models[0]),
        gr.Image(images[0], type='filepath', label="画像", interactive=True),
        gr.Slider(0, 100, 80, label="確信度下限(%)", info='指定した確信度以上のオブジェクトのみ検出します。'),
    ],
    outputs=[
        gr.Image(label='結果'),
        gr.Text(label='パイプの数'),
    ],
    title="パイプ検出デモ",
    examples=[[models[0], path, 80] for path in images],
    allow_flagging='never',  # 「フラグする」ボタンを非表示に
)

demo.launch()