How mrnabati/centerfusion works
CenterFusion is a radar-and-camera 3D object detection system built around center-point image detections and frustum-based radar association. Its main workflow is dataset selection and preparation, model training or inference, then decoding and post-processing detections for evaluation or visualization. The graph also preserves documented nuScenes conversion, tracking, and dataset support. Source excerpts show key runtime calls; some subsystem links are documented by the README or source-index references rather than fully sampled implementation.
Main entry points: main.py Train / evaluate · detector.py Inference detector · generic_dataset.py Sample preparation · demo.py Demo entry
Components 24
Runtime workflow
- Train / evaluate
src/main.py - Run options
src/lib/opts.py - Demo entry
src/demo.py - Inference detector
src/lib/detector.py - Experiment logging
src/lib/logger.py
Data and datasets
- Dataset registry
src/lib/dataset/dataset_factory.py - Dataset adapters
src/lib/dataset/datasets - Sample preparation
src/lib/dataset/generic_dataset.py - nuScenes conversion
src/tools/convert_nuScenes.py - Radar processing
src/lib/utils/pointcloud.py - Image transforms
src/lib/utils/image.py
Detection model
- Model construction
src/lib/model/model.py - Network architectures
src/lib/model/networks - Fusion heads
src/lib/model/networks/base_model.py - Detection decoding
src/lib/model/decode.py - Training loop
src/lib/trainer.py - Detection losses
src/lib/model/losses.py
Results and evaluation
- 3D post-processing
src/lib/utils/post_process.py - 3D geometry
src/lib/utils/ddd_utils.py - Object tracking
src/lib/utils/tracker.py - Detection visualization
src/lib/utils/debugger.py - Tracking evaluation
src/tools/eval_kitti_track/evaluate_tracking.py
Other components
- Researcher
- Dataset files
Connections 27
- Researcher → Train / evaluate: configures run
README.md - Researcher → Demo entry: starts demo
src/demo.py - Train / evaluate → Run options: parses options
src/main.py - Train / evaluate → Dataset registry: selects dataset
src/main.py - Train / evaluate → Model construction: creates model
src/main.py - Train / evaluate → Training loop: runs training
src/main.py - Train / evaluate → Experiment logging: logs metrics
src/main.py - Demo entry → Run options: parses options
src/demo.py - Demo entry → Inference detector: invokes inference
src/demo.py - Dataset registry → Dataset adapters: selects adapter
src/lib/dataset/dataset_factory.py - Dataset adapters → Sample preparation: inherits preparation
src/lib/dataset/datasets/coco.py - Dataset files → Sample preparation: provides samples
README.md - nuScenes conversion → Dataset files: converts annotations
src/tools/convert_nuScenes.py - Sample preparation → Image transforms: transforms images
src/lib/dataset/generic_dataset.py - Sample preparation → Radar processing: loads radar data
src/lib/dataset/generic_dataset.py - Train / evaluate → Run options: sets dataset heads
src/main.py - Model construction → Network architectures: builds architecture
src/lib/model/model.py - Network architectures → Fusion heads: extends base
src/lib/model/networks/dla.py - Training loop → Detection losses: computes losses
src/lib/trainer.py - Training loop → Detection decoding: decodes outputs
src/lib/trainer.py - Inference detector → Model construction: loads model
src/lib/detector.py - Inference detector → Detection decoding: decodes predictions
src/lib/detector.py - Inference detector → 3D post-processing: post-processes detections
src/lib/detector.py - 3D post-processing → 3D geometry: uses 3D geometry
src/lib/utils/post_process.py - Inference detector → Object tracking: updates tracks
src/lib/detector.py - Inference detector → Detection visualization: renders detections
src/lib/detector.py - Train / evaluate → Tracking evaluation: evaluates tracking