| import gradio as gr |
| import cv2 as cv |
| from ultralytics import YOLO |
|
|
| |
| model = YOLO('yolov8n-seg.pt') |
|
|
| def resize_frame(frame, width=1280): |
| height, width = frame.shape[:2] |
| new_height = int(height * width / float(width)) |
| return cv.resize(frame, (width, new_height)) |
|
|
| def process_frame(frame): |
| frame = resize_frame(frame) |
| results = model(frame) |
| segments = results[0].plot() |
| return segments |
|
|
| frame = gr.components.Video(label="Webcam Feed") |
|
|
| iface = gr.Interface( |
| fn=process_frame, |
| inputs=[frame], |
| outputs=[gr.components.Image()], |
| live=True, |
| title="YOLO Image Segmentation", |
| description="This application uses the YOLO model to perform image segmentation on a webcam feed.", |
| ) |
|
|
| iface.launch() |
|
|