AutoSkill 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.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/yolov5-object-detection-with-roi-masking-and-gpu-support" ~/.claude/skills/ecnu-icalk-autoskill-yolov5-object-detection-with-roi-masking-and-gpu-support && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8_GLM4.7/yolov5-object-detection-with-roi-masking-and-gpu-support/SKILL.md
source content

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