How tajwarchy/multi-camera-people-tracking works
This repository implements a multi-camera pedestrian tracking system: synchronized camera frames are processed into per-camera detections, local tracks and appearance embeddings; cross-camera association assigns global identities; calibrated projections and those identities drive a bird’s-eye view and composite video. Separate utilities prepare and score ReID evaluation crops. The sampled sources establish the core runtime calls; calibration and frame-extraction roles are documented in the README, so links to later stages are shown only where documented.
Main entry points: pipeline_single_cam.py Camera pipeline · config_loader.py Config loading · run_association.py Association runner · bev_projector.py BEV projection
Components 15
Inputs and calibration
- Frame extraction
src/extract_frames.py - Calibration parsing
src/parse_calibration.py - Config loading
src/config_loader.py
Per-camera tracking
- Camera pipeline
src/pipeline_single_cam.py - Person detection
src/detector.py - Local tracking
src/tracker.py - Appearance embeddings
src/embedder.py
Global identity
- Association runner
src/run_association.py - Cross-camera ReID
src/reid_associator.py
Mapping and evaluation
- BEV projection
src/bev_projector.py - BEV animation
src/bev_animator.py - Composite export
src/main_pipeline.py - Evaluation crop prep
src/prepare_reid_eval.py - ReID evaluation
src/eval_reid.py
Other components
- Camera videos
Connections 19
- Camera videos → Frame extraction: provides video
README.md - Frame extraction → Camera pipeline: supplies frames
- Config loading → Camera pipeline: configures
src/pipeline_single_cam.py - Camera pipeline → Person detection: calls detect
src/pipeline_single_cam.py - Camera pipeline → Local tracking: updates tracks
src/pipeline_single_cam.py - Camera pipeline → Appearance embeddings: extracts features
src/pipeline_single_cam.py - Config loading → Association runner: configures
src/run_association.py - Association runner → Cross-camera ReID: runs association
src/run_association.py - Camera pipeline → Association runner: stores records
src/run_association.py - Config loading → BEV projection: configures
src/main_pipeline.py - Calibration parsing → BEV projection: provides homographies
README.md - BEV projection → BEV animation: projects tracks
src/bev_animator.py - Config loading → Composite export: configures
src/main_pipeline.py - BEV animation → Composite export: supplies BEV frames
src/main_pipeline.py - Camera pipeline → Composite export: renders annotations
src/main_pipeline.py - Config loading → Evaluation crop prep: configures
src/prepare_reid_eval.py - Association runner → Evaluation crop prep: writes enriched records
- Config loading → ReID evaluation: configures
src/eval_reid.py - Evaluation crop prep → ReID evaluation: creates query/gallery crops