Claude Code Plugins

Community-maintained marketplace

Feedback

Person detection, tracking, and Re-ID. Use when faces aren't visible but cast should still be tracked, or when debugging face-body association.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name body-tracking
description Person detection, tracking, and Re-ID. Use when faces aren't visible but cast should still be tracked, or when debugging face-body association.

Body Tracking Skill

Use this skill to debug body tracking and face-body association issues.

When to Use

  • Screen time gaps when cast is on screen but face not visible
  • Face-body association errors
  • Re-ID matching issues after occlusion
  • Debugging person detection coverage
  • Track fusion problems

Sub-agents

Sub-agent Purpose
PersonDetectorSubagent YOLO/DETR person detection
PersonReIDSubagent OSNet/Torchreid embeddings
TrackFusionSubagent Face-body association

Key Skills

Run body tracking pipeline

Run the sandbox pipeline on an episode (writes artifacts under data/manifests/{ep_id}/body_tracking/).

from pathlib import Path

from FEATURES.body_tracking.src.body_tracking_runner import BodyTrackingRunner

runner = BodyTrackingRunner(
    episode_id="my-episode",
    config_path=Path("config/pipeline/body_detection.yaml"),
    fusion_config_path=Path("config/pipeline/track_fusion.yaml"),
)
runner.run_full_pipeline()

Fuse face ↔ body tracks

from FEATURES.body_tracking.src.track_fusion import TrackFusion

fusion = TrackFusion()
identities = fusion.fuse_tracks(face_tracks=face_tracks, body_tracks=body_tracks)

Compute body-only screentime deltas

python -m FEATURES.body_tracking --episode-id <EP_ID> --stage compare

Config Reference

File: config/pipeline/body_detection.yaml

Key Default Description
body_tracking.enabled true Enable body tracking
person_detection.model yolov8n Detector model
person_detection.confidence_threshold 0.50 Detection confidence
person_tracking.track_buffer 120 Frames to keep lost tracks
person_reid.enabled true Enable Re-ID embeddings
person_reid.model osnet_x1_0 Re-ID model

File: config/pipeline/track_fusion.yaml

Key Default Description
track_fusion.enabled true Enable fusion stage
iou_association.iou_threshold 0.50 Face-in-body IoU threshold
reid_handoff.similarity_threshold 0.70 Re-ID match threshold
reid_handoff.handoff.max_gap_seconds 30 Max time for handoff
reid_handoff.handoff.confidence_decay_rate 0.95 Per-second decay

Common Issues

Missing body detections

Cause: Person not detected by YOLO

Check: Detection confidence in logs

Fix: Lower confidence threshold:

person_detection:
  confidence_threshold: 0.40  # default is 0.50

Wrong face-body association

Cause: IoU too loose or multiple people close together

Check: association_confidence in track metadata

Fix: Increase IoU threshold:

track_fusion:
  association_iou_thresh: 0.60  # default is 0.50

Re-ID fails after occlusion

Cause: Clothing change or long gap

Check: reid_similarity between pre/post occlusion

Fix: Lower Re-ID threshold or increase gap tolerance:

track_fusion:
  reid_similarity_thresh: 0.60  # default is 0.70
  handoff:
    max_gap_seconds: 45  # default is 30

Body track ID switches

Cause: Tracker losing track through occlusion

Check: body_id_switch_rate in metrics

Fix: Increase track buffer:

person_tracking:
  track_buffer: 150  # default is 120 (5 seconds)

Diagnostic Output

{
  "identity_id": "ID_001",
  "face_track_ids": [42, 256],
  "body_track_ids": [100127, 100345],
  "screen_time": {
    "face_visible_duration": 125.5,
    "body_only_duration": 45.2,
    "total_duration": 170.7
  },
  "associations": [
    {
      "face_track": 42,
      "body_track": 100127,
      "method": "iou",
      "confidence": 0.85
    },
    {
      "face_track": null,
      "body_track": 100127,
      "method": "reid_handoff",
      "confidence": 0.72
    }
  ]
}

Key Files

File Purpose
FEATURES/body_tracking/src/detect_bodies.py YOLO person detection
FEATURES/body_tracking/src/track_bodies.py Body tracking (ByteTrack + fallback)
FEATURES/body_tracking/src/body_embeddings.py OSNet Re-ID embeddings
FEATURES/body_tracking/src/track_fusion.py Face↔body fusion
FEATURES/body_tracking/src/screentime_compare.py Screentime comparison
config/pipeline/body_detection.yaml Detection config
config/pipeline/track_fusion.yaml Fusion config

Related Skills