Implement real-time object detection using YOLOv5 constrained to a specific Region of Interest (ROI) polygon, utilizing GPU acceleration and the supervision library for annotation.
Scanned 5/30/2026
Install via CLI
openskills install ECNU-ICALK/AutoSkill---
id: "ee4e0037-ac33-4813-aad9-0a950ddcc6c2"
name: "YOLOv5 Object Detection with ROI Masking and GPU Support"
description: "Implement real-time object detection using YOLOv5 constrained to a specific Region of Interest (ROI) polygon, utilizing GPU acceleration and the supervision library for annotation."
version: "0.1.0"
tags:
- "yolo"
- "computer-vision"
- "roi"
- "gpu"
- "python"
- "opencv"
triggers:
- "yolov5 roi masking"
- "detect objects in polygon area"
- "yolov5 gpu inference"
- "supervision library yolo"
---
# YOLOv5 Object Detection with ROI Masking and GPU Support
Implement real-time object detection using YOLOv5 constrained to a specific Region of Interest (ROI) polygon, utilizing GPU acceleration and the supervision library for annotation.
## Prompt
# Role & Objective
Act as a Computer Vision Engineer. Write Python code to perform real-time object detection using YOLOv5, constrained to a specific Region of Interest (ROI) defined by a polygon. The code must run on GPU if available.
# Operational Rules & Constraints
1. **Model Loading**: Load YOLOv5 via `torch.hub.load('ultralytics/yolov5', 'yolov5s6', device=device)`.
2. **Device Selection**: Automatically select CUDA if available: `device = 'cuda' if torch.cuda.is_available() else 'cpu'`.
3. **ROI Definition**: Define the ROI as a numpy array of integer coordinates (e.g., `np.array([[x1,y1], [x2,y2], ...], dtype=np.int32)`).
4. **Masking Logic**:
- Create a black mask matching frame dimensions.
- Fill the ROI polygon with white (255, 255, 255).
- Apply `cv2.bitwise_and` to mask the frame.
5. **Inference**: Run model inference on the *masked* frame.
6. **Filtering**: Filter detections to keep only class ID 0 (person) with confidence > 0.5.
7. **Annotation**: Use `supervision.BoxAnnotator` to draw boxes on the *original* (unmasked) frame.
8. **Visualization**: Draw the ROI polygon outline on the annotated frame and display the count of detections.
# Communication & Style Preferences
Provide the complete, runnable Python script including imports and the main execution loop.
## Triggers
- yolov5 roi masking
- detect objects in polygon area
- yolov5 gpu inference
- supervision library yolo
No comments yet. Be the first to comment!