Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import numpy as np | |
| import cv2 | |
| from huggingface_hub import hf_hub_download | |
| from ultralytics import YOLO | |
| checkpoint = hf_hub_download(repo_id="bulkobubulko/cap", filename="yolo11-tapas.pt") | |
| model = YOLO(checkpoint) | |
| model.fuse() | |
| def plot_bl(results): | |
| img = results[0].orig_img | |
| names = results[0].names | |
| scores = results[0].boxes.conf.numpy() | |
| classes = results[0].boxes.cls.numpy() | |
| boxes = results[0].boxes.xyxy.numpy().astype(np.int32) | |
| num_objects = len(boxes) | |
| for score, cls, box in zip(scores, classes, boxes): | |
| cl_label = names[cls] | |
| label = f"{cl_label}: {score:0.2f}" | |
| img = cv2.rectangle(img.copy(), (box[0], box[1]), (box[2], box[3]), color=(225, 0, 225), thickness=3) | |
| img = cv2.putText(img.copy(), label, (box[0], box[1]), fontFace=cv2.FONT_HERSHEY_SIMPLEX, fontScale=1.0, color=(255, 0, 255), thickness=2) | |
| img = cv2.putText(img.copy(), f'num caps: {num_objects}', (100, 100), fontFace=cv2.FONT_HERSHEY_SIMPLEX, fontScale=1.0, color=(255, 0, 255), thickness=2) | |
| return img | |
| def predict(frame): | |
| frame = model(frame) | |
| frame = plot_bl(frame) | |
| return frame | |
| with gr.Blocks() as demo: | |
| with gr.Row(): | |
| with gr.Column(): | |
| input_frame = gr.Image(sources=["webcam"], type="numpy") | |
| with gr.Column(): | |
| output_img = gr.Image(streaming=True) | |
| dep = input_frame.stream(predict, [input_frame], [output_img], time_limit=30, stream_every=0.1, concurrency_limit=30) | |
| demo.launch() |