Object detection smaller than a floppy disk
NanoDet-Plus exists to prove you don't need a YOLO-sized model to do real-time object detection on a phone CPU.

What it does
NanoDet-Plus is an anchor-free object detector built for speed and size. It runs FCOS-style one-stage detection with Generalized Focal Loss, producing bounding boxes on everything from server GPUs to mid-tier phone CPUs. The project ships ready-made demos for ncnn, MNN, OpenVINO, and Android, plus a zoo of pre-trained weights topping out at 34.1 mAP on COCO for the 1.5× variant.
The interesting bit
The authors attack a specific, often ignored pain point: label assignment in tiny networks. Their Assign Guidance Module and Dynamic Soft Label Assigner coax better supervision out of lightweight backbones like ShuffleNetV2, while a Ghost-PAN feature pyramid keeps multi-scale fusion cheap. The result is a 7 mAP jump over the original NanoDet without bloating the model past a few megabytes.
Key highlights
- Model file is 980 KB (INT8) or 1.8 MB (FP16); the Plus variant stays under 2.3 MB / 1.2 MB.
- Benchmarked at 97 FPS (10.23 ms) on a Kirin 980 ARM CPU via
ncnn. - Training memory is frugal enough to fit batch-size 80 on a 6 GB GTX 1060.
- Supports a laundry list of inference backends:
ncnn,MNN,OpenVINO, and even browser WebAssembly. - Backbone zoo includes
ShuffleNetV2,EfficientNet-Lite, andRepVGGvariants.
Caveats
- The README pins
PyTorchto>= 1.10.0and< 2.0.0, so bleeding-edge torch users may need to check compatibility. - Most latency claims are tied to
ncnnon a specific Kirin 980 chipset; your ARM mileage will vary. - Training is listed for Linux or macOS only; Windows is not mentioned as supported.
Verdict
Grab this if you are shipping object detection to mobile apps or edge devices where every megabyte and millisecond counts. Skip it if you need state-of-the-art accuracy on a server GPU and don’t care about model size.
Frequently asked
- What is RangiLyu/nanodet?
- NanoDet-Plus exists to prove you don't need a YOLO-sized model to do real-time object detection on a phone CPU.
- Is nanodet open source?
- Yes — RangiLyu/nanodet is open source, released under the Apache-2.0 license.
- What language is nanodet written in?
- RangiLyu/nanodet is primarily written in Python.
- How popular is nanodet?
- RangiLyu/nanodet has 6.2k stars on GitHub.
- Where can I find nanodet?
- RangiLyu/nanodet is on GitHub at https://github.com/RangiLyu/nanodet.