Skip to content

enhancement(pose): evaluate ROI vs full-frame inference for the active backend #9

Description

@kmch4n

Summary

The current pipeline first detects people with YOLOv8, crops a padded ROI, and then runs YOLO11-Pose inside that ROI. This keeps the pipeline modular, but it may reduce pose quality when the crop clips limbs/equipment or removes global context.

Expected behavior

Evaluate whether YOLO11-Pose should run on the full frame, or on a larger/aspect-preserved crop, with track-aware person selection. Keep the current ROI path only if it wins on representative skiing footage.

Current behavior

YOLOv8 supplies bboxes, Yolo11Backend.estimate(...) crops a padded ROI, and YOLO11-Pose selects the highest-confidence person inside that cropped ROI.

Evidence

  • README.md:75 documents ROI-based pose estimation.
  • src/skisense/main.py:440 runs YOLO person detection.
  • src/skisense/main.py:448 iterates detected bboxes.
  • src/skisense/backends/yolo11_backend.py:119 to src/skisense/backends/yolo11_backend.py:132 pads and crops the ROI before pose inference.
  • src/skisense/backends/yolo11_backend.py:174 to src/skisense/backends/yolo11_backend.py:197 selects the highest-confidence detected person inside the ROI.

Impact

Deep ski angulation often pushes wrists, ankles, skis, and poles near bbox edges. A crop-first pose path can lose context before the pose model runs, which may reduce keypoint stability even with YOLO11-Pose.

Suspected cause

The pipeline reuses a detector-first architecture even though YOLO11-Pose can already detect people and keypoints together.

Priority

medium

Labels

enhancement

Acceptance criteria

  • Add an experiment comparing current ROI inference against full-frame or larger context inference on representative skiing frames.
  • Use track association, bbox overlap, or target ID to choose the skier when multiple people are present.
  • Measure keypoint confidence, score stability, and inference time.
  • Document the chosen mode and any config switch if both modes are kept.

Notes

This is not a duplicate of #3. That issue is about adding a different SOTA backend; this issue keeps YOLO11-Pose and evaluates the inference strategy around it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions