How gwetherholt/croptrackingsystem works
Crop Tracking is a command-line C++ application that turns frame detections in JSON into persistent object tracks, a tracking-results JSON file, and per-frame plus summary visualizations. The main workflow parses each frame, calls the tracker, and writes both outputs; tracking uses IoU and spatial-proximity matching, retaining IDs across brief detection gaps. A separate Python utility checks ID consistency in generated results. Relationships follow the sampled source and README; no unsampled implementation details are assumed.
Main entry points: main.cpp Frame processor · check_ids.py ID consistency check · tracking_output.json Tracking JSON · input_data.json Detection JSON
Components 8
Command-line runtime
- Frame processor
src/main.cpp - Detection JSON
data/input/input_data.json
Object tracking
- Track matching
src/tracker.cpp - Image rendering
src/tracker.cpp
Results and validation
- Tracking JSON
data/output/input_data/tracking_output.json - Frame and summary PNGs
data/output/input_data/visualization - ID consistency check
tools/check_ids.py
Other components
- CLI user
Connections 8
- CLI user → Frame processor: runs
README.md - Frame processor → Detection JSON: reads
src/main.cpp - Frame processor → Track matching: updates tracks
src/main.cpp - Frame processor → Image rendering: renders frames
src/main.cpp - Frame processor → Tracking JSON: writes results
src/main.cpp - Frame processor → Frame and summary PNGs: writes images
src/main.cpp - CLI user → ID consistency check: runs check
README.md - ID consistency check → Tracking JSON: checks IDs
README.md