How bubbliiiing/retinanet-pytorch works
This repository implements a PyTorch RetinaNet object-detection workflow: prepare VOC annotations, train on labeled images, run image/video/batch inference, and evaluate detections with VOC mAP. The model combines a ResNet backbone, feature pyramid, anchor generation, and classification/regression heads. README capabilities also include FPS measurement, object counting, and cropped detections. The graph follows documented workflows where source excerpts are incomplete; uncertain internal wiring is omitted.
Main entry points: train.py Training entry · get_map.py VOC evaluation · nets/retinanet.py RetinaNet architecture · retinanet.py Inference wrapper
Components 19
VOC data
- VOC dataset
VOCdevkit - Class names
model_data/voc_classes.txt - VOC preparation
voc_annotation.py - Image loader
utils/dataloader.py
Detection model
- RetinaNet architecture
nets/retinanet.py - ResNet backbone
nets/resnet.py - Anchor generator
utils/anchors.py
Training
- Training entry
train.py - Epoch fitting
utils/utils_fit.py - Focal loss
nets/retinanet_training.py - Training callbacks
utils/callbacks.py - Training logs
logs
Inference and evaluation
- Prediction modes
predict.py - Inference wrapper
retinanet.py - Box decoding
utils/utils_bbox.py - VOC evaluation
get_map.py - Detection metrics
utils/utils_map.py - Evaluation outputs
Other components
- User
Connections 25
- User → VOC preparation: prepares labels
- VOC dataset → VOC preparation: reads annotations
- Class names → VOC preparation: selects classes
- VOC preparation → Image loader: writes split lists
- VOC dataset → Image loader: supplies images
- User → Training entry: starts training
- Class names → Training entry: defines classes
- Image loader → Training entry: provides batches
- Training entry → RetinaNet architecture: constructs model
- Training entry → Epoch fitting: runs epochs
- Epoch fitting → Focal loss: computes loss
- Epoch fitting → Training callbacks: updates callbacks
- Training callbacks → Training logs: writes metrics
- RetinaNet architecture → ResNet backbone: uses backbone
- RetinaNet architecture → Anchor generator: generates anchors
- User → Prediction modes: chooses input mode
- Prediction modes → Inference wrapper: requests detection
- Inference wrapper → RetinaNet architecture: runs inference
- Inference wrapper → Box decoding: decodes predictions
- User → VOC evaluation: starts evaluation
- VOC dataset → VOC evaluation: supplies test data
- Class names → VOC evaluation: defines classes
- VOC evaluation → Inference wrapper: requests detections
- VOC evaluation → Detection metrics: computes mAP
- Detection metrics → Evaluation outputs: writes reports