Spaces:
Sleeping
Sleeping
import json | |
import glob | |
from collections import Counter | |
import requests | |
import gradio as gr | |
from ultralyticsplus import YOLO, download_from_hub, render_result | |
hf_model_ids = [ | |
"chanelcolgate/chamdiemgianhang-vsk", | |
"chanelcolgate/chamdiemgianhang-vsk-v2", | |
"chanelcolgate/chamdiemgianhang-vsk-v4", | |
"chanelcolgate/chamdiemgianhang-vsk-v5", | |
"chanelcolgate/chamdiemgianhang-vsk-v6", | |
] | |
image_paths = [ | |
[image_path, "chanelcolgate/chamdiemgianhang-vsk-v2", 640, 0.25, 0.45] | |
for image_path in glob.glob("./tmp/*.jpg") | |
] | |
def detection_image( | |
image=None, | |
hf_model_id="chanelcolgate/chamdiemgianhang-vsk-v2", | |
image_size=640, | |
conf_threshold=0.25, | |
iou_threshold=0.45, | |
): | |
model_path = download_from_hub(hf_model_id) | |
model = YOLO(model_path) | |
results = model(image, imgsz=image_size, conf=conf_threshold, iou=iou_threshold) | |
json_result = json.loads(results[0].tojson()) | |
class_counts = Counter(detection["name"] for detection in json_result) | |
render = render_result(model=model, image=image, result=results[0]) | |
return render, class_counts | |
def detection_image_link( | |
image=None, | |
hf_model_id="chanelcolgate/chamdiemgianhang-vsk-v2", | |
image_size=640, | |
conf_threshold=0.25, | |
iou_threshold=0.45, | |
): | |
model_path = download_from_hub(hf_model_id) | |
model = YOLO(model_path) | |
results = model(image, imgsz=image_size, conf=conf_threshold, iou=iou_threshold) | |
json_result = json.loads(results[0].tojson()) | |
class_counts = Counter(detection["name"] for detection in json_result) | |
render = render_result(model=model, image=image, result=results[0]) | |
return render, class_counts | |
title = "Cham Diem Gian Hang VSK" | |
interface = gr.Interface( | |
fn=detection_image, | |
inputs=[ | |
gr.Image(type="pil"), | |
gr.Dropdown(hf_model_ids), | |
gr.Slider(minimum=320, maximum=1280, value=640, step=32, label="Image Size"), | |
gr.Slider( | |
minimum=0.0, | |
maximum=1.0, | |
value=0.25, | |
step=0.05, | |
label="Confidence Threshold", | |
), | |
gr.Slider( | |
minimum=0.0, maximum=1.0, value=0.45, step=0.05, label="IOU Threshold" | |
), | |
], | |
outputs=[gr.Image(type="pil"), gr.Textbox(show_label=False)], | |
title=title, | |
examples=image_paths, | |
cache_examples=True if image_paths else False, | |
) | |
interface_link = gr.Interface( | |
fn=detection_image, | |
inputs=[ | |
gr.Textbox(label="Image Link"), | |
gr.Dropdown(hf_model_ids), | |
gr.Slider(minimum=320, maximum=1280, value=640, step=32, label="Image Size"), | |
gr.Slider( | |
minimum=0.0, | |
maximum=1.0, | |
value=0.25, | |
step=0.05, | |
label="Confidence Threshold", | |
), | |
gr.Slider( | |
minimum=0.0, maximum=1.0, value=0.45, step=0.05, label="IOU Threshold" | |
), | |
], | |
outputs=[gr.Image(type="pil"), gr.Textbox(show_label=False)], | |
title=title, | |
) | |
gr.TabbedInterface( | |
[interface, interface_link], tab_names=["Image inference", "Image link inference"] | |
).queue().launch() | |