Skip to content

Tracking v2: explanation system, CLI, and repo cleanup#38

Open
emdavis02 wants to merge 5 commits into
mainfrom
elise/tracking-v2
Open

Tracking v2: explanation system, CLI, and repo cleanup#38
emdavis02 wants to merge 5 commits into
mainfrom
elise/tracking-v2

Conversation

@emdavis02

Copy link
Copy Markdown
Contributor

Summary

  • Explanation system: InstanceExplanationStore with per-instance decision records for motion, directional, RFID, tail, and stitch decisions
  • SLPT file format: .slpt archive preserving tracking metadata (contexts, explanations, pipeline info) across save/load cycles
  • Expanded trackers: TailFeatureTracker, VisualPatchTracker, CoordinateRFIDTracker, GeneralOnlineTracker, TrackletStitcher, FacingConsistencyTracker
  • CLI pipeline runner: sleap-mot run config.yaml with YAML-based multi-layer pipeline config, variable interpolation, automatic param routing
  • Legacy reorganization: old API (tracker.py, track_instance.py, candidates/) moved to sleap_mot/_legacy/
  • Test coverage: 34 new tests covering tracking architecture, IO, and pipeline (46 total passing)
  • Repo cleanup: trimmed .gitignore, deleted junk files, added missing __init__.py files

Test plan

  • All 46 tests pass (pytest tests/ -v)
  • Run sleap-mot run end-to-end on a real dataset
  • Verify .slpt output contains explanations from all layers
  • Verify --save-slp produces both files
  • Verify CLI overrides (--labels, --video, --output) work

🤖 Generated with Claude Code

emdavis02 and others added 5 commits March 26, 2026 14:40
- InstanceExplanationStore with per-instance decision records
- Explanation generators for motion, directional, RFID, tail, and stitch decisions
- SLPT file format (.slpt) preserving tracking metadata across save/load
- TailFeatureTracker with PCA + k-means identity matching
- VisualPatchTracker for visual re-identification
- CoordinateRFIDTracker with coordinate-based RFID matching
- GeneralOnlineTracker with configurable feature extractors and scorers
- TrackletStitcher for merging fragmented tracklets
- Expanded MotionTracker, DirectionalMotionTracker, FacingConsistencyTracker
- Metrics output and types for layer attribution analysis

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- sleap-mot run config.yaml command with YAML-based pipeline config
- Variable interpolation (${input.video}) and automatic param routing
- Tracker registry mapping short names to classes
- CLI overrides for labels, video, output paths
- Add pyyaml and click dependencies, add project.scripts entry point
- README: CLI usage docs, config format, available trackers table

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Move tracker.py, track_instance.py, feature_tracker.py, candidates/ to _legacy/
- Update internal imports within legacy modules
- Update old tests to import from _legacy
- Clean sleap_mot/__init__.py to expose only current API

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- test_tracking.py: TrackContext, InstanceExplanationStore, MotionTracker,
  TrackletStitcher, GeneralOnlineTracker (14 tests)
- test_io.py: SLPTFile save/load roundtrip, statistics, pipeline metadata (5 tests)
- test_pipeline.py: config loading, validation, interpolation, param splitting,
  registry (15 tests)
- Add __init__.py for feature_tracking/ and processing/ packages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove unused framework boilerplate (Django, Flask, Scrapy, Celery, etc.)
- Add .claude/ to ignored paths
- Remove hardcoded file paths, use patterns instead

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant