YOLOv3 on a diet: channel pruning for drone-sized GPUs
A 2019 research implementation that trims YOLOv3's convolutional channels to squeeze object detection onto resource-constrained UAV hardware.

What it does SlimYOLOv3 applies channel-level pruning to YOLOv3, stripping out less informative feature channels through L1-regularized sparsity training. The result is a narrower network with fewer parameters and FLOPs, aimed at real-time object detection on drones and other embedded devices. The repo provides scripts for the full pipeline: normal training, sparsity training, pruning, and fine-tuning, with evaluation via either darknet or PyTorch.
The interesting bit The pruning isn’t post-hoc compression baked into the architecture from birth. Instead, it learns which channels matter by penalizing scaling factors during training, then surgically removes the dead weight. The paper claims this yields ~90.8% fewer FLOPs and ~92.0% fewer parameters on the SPP3 variant, with roughly 2× speedup and comparable accuracy on the VisDrone2018-Det benchmark.
Key highlights
- Built on darknet + PyTorch, requiring ultralytics/yolov3 as a dependency
- Four-stage pipeline: normal train → sparsity train → prune → fine-tune
- Evaluated specifically on aerial imagery (VisDrone dataset)
- Supports both darknet and PyTorch inference paths
- Paper from 2019; targets YOLOv3-era hardware constraints
Caveats
- README is sparse on pretrained model availability (section header exists, no links)
- Requires juggling both darknet and PyTorch toolchains, which adds friction
- VisDrone-specific; generalization to other domains unclear from sources
Verdict Worth a look if you’re researching neural network pruning or need to deploy YOLOv3-class detectors on genuinely constrained embedded hardware. Skip it if you want a polished, batteries-included training framework or are already committed to modern YOLO variants with built-in efficiency.