konglong commited on
Commit
cea9161
·
1 Parent(s): 1ec3d5c

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +71 -0
app.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import pandas as pd
3
+
4
+ from PIL import Image
5
+ from torchkeras import plots
6
+ from torchkeras.data import get_url_img
7
+
8
+ from pathlib import Path
9
+ from ultralytics import YOLO
10
+ import ultralytics
11
+ from ultralytics.yolo.data import utils
12
+
13
+ model = YOLO('yolov8n.pt')
14
+
15
+
16
+ #load class_names
17
+ yaml_path = str(Path(ultralytics.__file__).parent/'datasets/coco128.yaml')
18
+ class_names = utils.yaml_load(yaml_path)['names']
19
+
20
+ def detect(img):
21
+ if isinstance(img,str):
22
+ img = get_url_img(img) if img.startswith('http') else Image.open(img).convert('RGB')
23
+ result = model.predict(source=img)
24
+ if len(result[0].boxes.boxes)>0:
25
+ vis = plots.plot_detection(img,boxes=result[0].boxes.boxes,
26
+ class_names=class_names, min_score=0.2)
27
+ else:
28
+ vis = img
29
+ return vis
30
+
31
+ with gr.Blocks() as demo:
32
+
33
+ with gr.Tab("Webcam"):
34
+ input_img = gr.Image(source='webcam',type='pil')
35
+ button = gr.Button("Detect",variant="primary")
36
+
37
+ gr.Markdown("## Output")
38
+ out_img = gr.Image(type='pil')
39
+
40
+ button.click(detect,
41
+ inputs=input_img,
42
+ outputs=out_img)
43
+
44
+ with gr.Tab("Url"):
45
+ default_url = 'https://t7.baidu.com/it/u=3601447414,1764260638&fm=193&f=GIF'
46
+ url = gr.Textbox(value=default_url)
47
+ button = gr.Button("Detect",variant="primary")
48
+
49
+ gr.Markdown("## Output")
50
+ out_img = gr.Image(type='pil')
51
+
52
+ button.click(detect,
53
+ inputs=url,
54
+ outputs=out_img)
55
+
56
+ with gr.Tab("Upload"):
57
+ input_img = gr.Image(type='pil')
58
+ button = gr.Button("Detect",variant="primary")
59
+
60
+ gr.Markdown("## Output")
61
+ out_img = gr.Image(type='pil')
62
+
63
+ button.click(detect,
64
+ inputs=input_img,
65
+ outputs=out_img)
66
+
67
+
68
+
69
+ gr.close_all()
70
+ demo.queue()
71
+ demo.launch()