RangiLyu /nanodet

NanoDet-Plus⚡Super fast and lightweight anchor-free object detection model. 🔥Only 980 KB(int8) / 1.8MB (fp16) and run 97FPS on cellphone🔥

★ 6,277⑂ 1,118
PythonCreated 2020-10-19
6,277
stars
+1+0+3
1,118
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

NanoDet-Plus
Super fast and high accuracy lightweight anchor-free object detection model. Real-time on mobile devices.



!Codecov






 ⚡Super lightweight: Model file is only 980KB(INT8) or 1.8MB(FP16).
 ⚡Super fast: 97fps(10.23ms) on mobile ARM CPU.
 👍High accuracy: Up to 34.3 [email protected]:0.95 and still realtime on CPU.
 🤗Training friendly:  Much lower GPU memory cost than other models. Batch-size=80 is available on GTX1060 6G.
 😎Easy to deploy: Support various backends including ncnn, MNN and OpenVINO. Also provide Android demo based on ncnn inference framework.



 Introduction


!

NanoDet is a FCOS-style one-stage anchor-free object detection model which using Generalized Focal Loss as classification and regression loss.

In NanoDet-Plus, we propose a novel label assignment strategy with a simple assign guidance module (AGM) and a dynamic soft label assigner (DSLA) to solve the optimal label assignment problem in lightweight model training. We also introduce a light feature pyramid called Ghost-PAN to enhance multi-layer feature fusion. These improvements boost previous NanoDet's detection accuracy by 7 mAP on COCO dataset.

NanoDet-Plus 知乎中文介绍

NanoDet 知乎中文介绍

QQ交流群:908606542 (答案:炼丹)


 Benchmarks

Model          |Resolution| mAPval0.5:0.95 |CPU Latency(i7-8700) |ARM Latency(4xA76) | FLOPS      |   Params  | Model Size
:-------------:|:--------:|:-------:|:--------------------:|:--------------------:|:----------:|:---------:|:-------:
NanoDet-m      | 320320 |   20.6   | 4.98ms           | 10.23ms          | 0.72G  | 0.95M | 1.8MB(FP16) &124; 980KB(INT8)
NanoDet-Plus-m | 320320 | 27.0 | 5.25ms       | 11.97ms          | 0.9G   | 1.17M | 2.3MB(FP16) &124; 1.2MB(INT8)
NanoDet-Plus-m | 416416 | 30.4 | 8.32ms       | 19.77ms          | 1.52G  | 1.17M | 2.3MB(FP16) &124; 1.2MB(INT8)
NanoDet-Plus-m-1.5x | 320320 | 29.9 | 7.21ms  | 15.90ms          | 1.75G  | 2.44M | 4.7MB(FP16) &124; 2.3MB(INT8)
NanoDet-Plus-m-1.5x | 416416 | 34.1 | 11.50ms | 25.49ms          | 2.97G   | 2.44M | 4.7MB(FP16) &124; 2.3MB(INT8)
YOLOv3-Tiny    | 416416 |   16.6   | -                    | 37.6ms               | 5.62G      | 8.86M     |   33.7MB
YOLOv4-Tiny    | 416416 |   21.7   | -                    | 32.81ms              | 6.96G      | 6.06M     |   23.0MB
YOLOX-Nano     | 416416 |   25.8   | -                    | 23.08ms              | 1.08G      | 0.91M     |   1.8MB(FP16)
YOLOv5-n       | 640640 |   28.4   | -                    | 44.39ms              | 4.5G       | 1.9M      |   3.8MB(FP16)
FBNetV5        | 320640 |   30.4   | -                    | -                    | 1.8G       | -         |   -
MobileDet      | 320320 |   25.6   | -                    | -                    | 0.9G       | -         |   -

Download pre-trained models and find more models in Model Zoo or in Release Files


    Notes (click to expand)

 ARM Performance is measured on Kirin 980(4xA76+4xA55) ARM CPU based on ncnn. You can test latency on your phone with ncnn_android_benchmar

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON