YOLOv3 trades its backbone for a diet
A Keras port that swaps YOLOv3's Darknet-53 for MobileNet, VGG16, ResNet101, and ResNeXt101 to see how much speed you can buy before accuracy collapses.

What it does
This repo is a Keras/TensorFlow re-implementation of YOLOv3 where the original Darknet-53 backbone has been replaced with lighter or alternative feature extractors: MobileNet v1, VGG16, ResNet101, and ResNeXt101. The author provides training scripts, model definitions, and VOC2007 benchmark numbers for the MobileNet variant specifically.
The interesting bit
The MobileNet swap is the headline act: at 320×320 input it hits 74.56% mAP on VOC07 (trained on VOC07+12) and runs at 29 fps on a 1080 Ti—beating the cited MobileNet-SSD baseline of 68% mAP, even without COCO pre-training. The author notes they used COCO-clustered anchors at 416×416, so the 320×320 results are likely leaving free performance on the table.
Key highlights
- Four backbones available: MobileNet, VGG16, ResNet101, ResNeXt101
- MobileNet-YOLOv3 at 416×416 reaches 76.82% mAP, 25 fps (Keras, 1080 Ti)
- Pure model implementation—no extra tricks or data augmentation games
- Bottleneck training script included for frozen-layer speed runs on CPU
- Multi-GPU support via Keras
multi_gpu_model
Caveats
- README mixes Darknet-53 and MobileNet instructions; read carefully to avoid loading the wrong pretrained weights
- Inference is slower than native Darknet; PIL is partly to blame
- Only MobileNet has published numbers; the other three backbones appear untested in the provided table
- Anchors aren’t re-clustered for smaller input sizes, which the author admits hurts results
Verdict
Worth a look if you’re stuck in Keras-land and need a faster YOLOv3 for resource-constrained deployment. Skip it if you want battle-tested production code or SOTA efficiency—this is a research swap-in with rough edges.