How nwojke/deep_sort works
Deep SORT is a multi-object tracker that combines motion estimates with deep appearance descriptors to associate detections across video frames. The primary workflow consumes MOTChallenge sequences and detection-feature files, tracks objects frame by frame, and writes tracking results. A separate feature-generation workflow extracts descriptors for detections; evaluation and result visualization are additional documented capabilities. The graph follows the README and sampled entry points; several tracker internals and evaluation behavior are represented only at the module level because their implementations were not sampled.
Main entry points: tracker.py Multi-target tracker · deep_sort_app.py Tracking application · show_results.py Result viewer · generate_detections.py Feature generator
Components 22
Feature preparation
- Feature generator
tools/generate_detections.py - Model freezer
tools/freeze_model.py
Tracking core
- Multi-target tracker
deep_sort/tracker.py - Detection records
deep_sort/detection.py - Track state
deep_sort/track.py - Kalman filter
deep_sort/kalman_filter.py - Matching assignment
deep_sort/linear_assignment.py - Appearance metric
deep_sort/nn_matching.py - IoU matching
deep_sort/iou_matching.py
Applications
- Tracking application
deep_sort_app.py - Detection suppression
application_util/preprocessing.py - MOT evaluator
evaluate_motchallenge.py
Results and display
- Result viewer
show_results.py - Tracking visualization
application_util/visualization.py - Image viewer
application_util/image_viewer.py - Video generator
generate_videos.py
Other components
- Researcher
- MOT data
- CNN model
- Detection features
- Tracking results
- Rendered video
Connections 29
- Researcher → Feature generator: requests descriptors
- MOT data → Feature generator: provides frames and detections
- CNN model → Feature generator: encodes crops
- Feature generator → Detection features: writes descriptors
- Researcher → Tracking application: starts tracking
- MOT data → Tracking application: provides sequence frames
- Detection features → Tracking application: provides detections and features
- Tracking application → Detection records: creates detections
- Tracking application → Detection suppression: suppresses overlaps
- Tracking application → Multi-target tracker: updates each frame
- Multi-target tracker → Kalman filter: predicts and corrects
- Multi-target tracker → Matching assignment: assigns matches
- Multi-target tracker → Appearance metric: measures appearance distance
- Multi-target tracker → IoU matching: uses IoU matching
- Multi-target tracker → Track state: maintains tracks
- Multi-target tracker → Tracking results: produces trajectories
- Tracking application → Tracking results: writes MOT output
- Tracking results → MOT evaluator: supplies trajectories
- MOT data → MOT evaluator: supplies benchmark data
- Researcher → Result viewer: requests visualization
- Tracking results → Result viewer: supplies trajectories
- MOT data → Result viewer: supplies sequence frames
- Result viewer → Tracking visualization: renders results
- Tracking visualization → Image viewer: draws frames
- Researcher → Video generator: requests video
- Video generator → Result viewer: renders sequences
- Result viewer → Rendered video: writes video
- Researcher → Model freezer: requests graph export
- Model freezer → CNN model: exports inference graph