
Model deteksi objek bebas jangkar yang sangat cepat dan akurasi tinggi. Real-time di perangkat seluler.

NanoDet adalah model deteksi objek bebas jangkar satu tahap FCOS yang menggunakan kehilangan fokus umum sebagai klasifikasi dan kehilangan regresi.
Di NanoDet-Plus, kami mengusulkan strategi penugasan label novel dengan modul panduan penugasan sederhana (RUPS) dan penugasan label lunak dinamis (DSLA) untuk menyelesaikan masalah penugasan label optimal dalam pelatihan model ringan. Kami juga memperkenalkan piramida fitur ringan yang disebut Ghost-Pan untuk meningkatkan fusi fitur multi-lapisan. Perbaikan ini meningkatkan akurasi deteksi nanodet sebelumnya dengan 7 peta pada dataset coco.
Nanodet-plus 知乎中文介绍
Nanodet 知乎中文介绍
Qq 交流群 : 908606542 (答案 : 炼丹)
| Model | Resolusi | peta val 0,5: 0,95 | Latensi CPU (i7-8700) | Latensi lengan (4XA76) | Jepit | Params | Ukuran model |
|---|---|---|---|---|---|---|---|
| Nanodet-m | 320*320 | 20.6 | 4,98ms | 10.23ms | 0.72g | 0,95m | 1.8MB (FP16) | 980KB (int8) |
| Nanodet-plus-m | 320*320 | 27.0 | 5.25ms | 11.97ms | 0.9g | 1.17m | 2.3MB (FP16) | 1.2MB (int8) |
| Nanodet-plus-m | 416*416 | 30.4 | 8.32ms | 19.77ms | 1.52g | 1.17m | 2.3MB (FP16) | 1.2MB (int8) |
| Nanodet-plus-m-1.5x | 320*320 | 29.9 | 7.21ms | 15.90ms | 1.75g | 2.44m | 4.7MB (FP16) | 2.3MB (int8) |
| Nanodet-plus-m-1.5x | 416*416 | 34.1 | 11.50ms | 25.49ms | 2.97g | 2.44m | 4.7MB (FP16) | 2.3MB (int8) |
| YOLOV3 kecil | 416*416 | 16.6 | - | 37.6ms | 5.62g | 8.86m | 33.7MB |
| YOLOV4 kecil | 416*416 | 21.7 | - | 32.81ms | 6.96g | 6.06m | 23.0MB |
| Yolox-Nano | 416*416 | 25.8 | - | 23.08ms | 1.08g | 0,91m | 1.8MB (FP16) |
| Yolov5-n | 640*640 | 28.4 | - | 44.39ms | 4.5g | 1.9m | 3.8MB (FP16) |
| Fbnetv5 | 320*640 | 30.4 | - | - | 1.8g | - | - |
| Mobiledet | 320*320 | 25.6 | - | - | 0.9g | - | - |
Unduh model pra-terlatih dan temukan lebih banyak model di zoo model atau dalam file rilis
Kinerja ARM diukur pada Kirin 980 (4XA76+4XA55) ARM CPU berdasarkan NCNN. Anda dapat menguji latensi di ponsel Anda dengan ncnn_android_benchmark.
Kinerja CPU Intel diukur Intel Core-I7-8700 berdasarkan OpenVino.
NanoDet Map (0,5: 0,95) divalidasi pada dataset Coco Val2017 tanpa augmentasi waktu pengujian.
Peta YOLOV3 & YOLOV4 mengacu dari skala-yolov4: skala jaringan parsial lintas panggung.
[2023.01.20] Tingkatkan ke Pytorch-Lightning-1.9. Versi pytorch minimum ditingkatkan menjadi 1.10. Dukung pelatihan FP16 (terima kasih @crisp-snakey). Dukungan label abaikan (terima kasih @zero0kiriyu).
[2022.08.26] Tingkatkan ke Pytorch-Lightning-1.7. Versi pytorch minimum ditingkatkan menjadi 1.9. Untuk menggunakan versi Pytorch sebelumnya, silakan instal nanodet <= v1.0.0-alpha-1
[2021.12.25] Rilis Nanodet-Plus ! Menambahkan RUPS (Tetapkan Modul Bimbingan) & DSLA (Dynamic Soft Label Assioner) untuk meningkatkan 7 peta dengan hanya sedikit biaya.
Temukan lebih banyak catatan pembaruan di catatan pembaruan.

Proyek Demo Android ada di folder demo_android_ncnn . Silakan merujuk ke panduan demo Android.
Berikut adalah implementasi yang lebih baik NCNN-Android-Nanodet
Demo C ++ Berdasarkan NCNN ada di folder Demo_NCNN . Silakan merujuk ke Panduan Demo CPP.
Inferensi Menggunakan Kerangka MNN Alibaba ada di folder Demo_MNN . Silakan merujuk ke panduan demo MNN.
Inferensi Menggunakan OpenVino ada di folder Demo_openvino . Silakan merujuk ke Panduan Demo OpenVino.
https://nihui.github.io/ncnn-webassembly-nanodet/
Pertama, instal persyaratan dan setup nanodet mengikuti panduan instalasi. Kemudian unduh berat coco pretrain dari sini
Coco Pretrain Checkpoint
Berat pra-terlatih dilatih oleh config/nanodet-plus-m_416.yml .
python demo/demo.py image --config CONFIG_PATH --model MODEL_PATH --path IMAGE_PATHpython demo/demo.py video --config CONFIG_PATH --model MODEL_PATH --path VIDEO_PATHpython demo/demo.py webcam --config CONFIG_PATH --model MODEL_PATH --camid YOUR_CAMERA_IDSelain itu, kami menyediakan buku catatan di sini untuk menunjukkan cara membuatnya bekerja dengan pytorch.
conda create -n nanodet python=3.8 -y
conda activate nanodetconda install pytorch torchvision cudatoolkit=11.1 -c pytorch -c conda-forgegit clone https://github.com/RangiLyu/nanodet.git
cd nanodetpip install -r requirements.txtpython setup.py developNanodet mendukung berbagai tulang punggung. Buka folder konfigurasi untuk melihat file konfigurasi pelatihan sampel.
| Model | Tulang punggung | Resolusi | Peta Coco | Jepit | Params | Berat pra-pelatihan |
|---|---|---|---|---|---|---|
| Nanodet-m | Shufflenetv2 1.0x | 320*320 | 20.6 | 0.72g | 0,95m | Unduh |
| Nanodet-plus-m-320 ( baru ) | Shufflenetv2 1.0x | 320*320 | 27.0 | 0.9g | 1.17m | Berat Badan | Pos pemeriksaan |
| Nanodet-plus-m-416 ( baru ) | Shufflenetv2 1.0x | 416*416 | 30.4 | 1.52g | 1.17m | Berat Badan | Pos pemeriksaan |
| Nanodet-plus-M-1.5x-320 ( baru ) | Shufflenetv2 1.5x | 320*320 | 29.9 | 1.75g | 2.44m | Berat Badan | Pos pemeriksaan |
| Nanodet-plus-M-1.5x-416 ( baru ) | Shufflenetv2 1.5x | 416*416 | 34.1 | 2.97g | 2.44m | Berat Badan | Pos pemeriksaan |
PEMBERITAHUAN : Perbedaan antara Weight dan Checkpoint adalah berat hanya memberikan params dalam waktu inferensi, tetapi pos pemeriksaan berisi params waktu pelatihan.
Kebun Binatang Model Legacy
| Model | Tulang punggung | Resolusi | Peta Coco | Jepit | Params | Berat pra-pelatihan |
|---|---|---|---|---|---|---|
| Nanodet-M-416 | Shufflenetv2 1.0x | 416*416 | 23.5 | 1.2g | 0,95m | Unduh |
| Nanodet-m-1.5x | Shufflenetv2 1.5x | 320*320 | 23.5 | 1.44g | 2.08m | Unduh |
| Nanodet-M-1.5x-416 | Shufflenetv2 1.5x | 416*416 | 26.8 | 2.42g | 2.08m | Unduh |
| Nanodet-m-0.5x | Shufflenetv2 0,5x | 320*320 | 13.5 | 0.3g | 0.28m | Unduh |
| Nanodet-t | Shufflenetv2 1.0x | 320*320 | 21.7 | 0.96g | 1.36m | Unduh |
| Nanodet-g | Net CSP Kustom | 416*416 | 22.9 | 4.2g | 3.81m | Unduh |
| Nanodet-efisienlite | Efisiensinet-lite0 | 320*320 | 24.7 | 1.72g | 3.11m | Unduh |
| Nanodet-efisienlite | Efisiensinet-lite1 | 416*416 | 30.3 | 4.06g | 4.01m | Unduh |
| Nanodet-efisienlite | EfisienNet-lite2 | 512*512 | 32.6 | 7.12g | 4.71m | Unduh |
| Nanodet-Repvgg | Repvgg-a0 | 416*416 | 27.8 | 11.3g | 6.75m | Unduh |
Siapkan dataset
Jika anotasi dataset Anda adalah format XML Pascal VOC, lihat config/nanodet_custom_xml_dataset.yml
Jika tidak, jika anotasi dataset Anda adalah format yolo (darknet txt), lihat config/nanodet-plus-m_416-yolo.yml
Atau konversi anotasi dataset Anda ke format MS Coco (detail format anotasi coco).
Siapkan file konfigurasi
Salin dan ubah contoh file konfigurasi yml di config/ folder.
Ubah save_dir ke tempat Anda ingin menyimpan model.
Ubah num_classes di model-> arch-> head .
Ubah jalur gambar dan jalur anotasi di data-> latih dan data-> val .
Atur ID GPU, pekerja NUM dan ukuran batch di perangkat agar sesuai dengan perangkat Anda.
Atur total_epochs , LR dan LR_SCHEDULE sesuai dengan dataset Anda dan Batchsize.
Jika Anda ingin memodifikasi jaringan, augmentasi data atau hal -hal lain, silakan merujuk ke detail file konfigurasi
Mulai pelatihan
Nanodet sekarang menggunakan Pytorch Lightning untuk pelatihan.
Untuk GPU tunggal atau gulungan gpus, jalankan:
python tools/train.py CONFIG_FILE_PATHVisualisasikan log
Log Tensorboard disimpan di save_dir yang Anda atur di file config.
Untuk memvisualisasikan log tensorboard, jalankan:
cd < YOUR_SAVE_DIR >
tensorboard --logdir ./NanoDet menyediakan demo C ++ multi-backend termasuk NCNN, OpenVino dan MNN. Ada juga demo Android berdasarkan perpustakaan NCNN.
Untuk mengonversi model nanodet pytorch ke ncnn, Anda dapat memilih dengan cara ini: pytorch-> onnx-> ncnn
Untuk mengekspor model ONNX, jalankan tools/export_onnx.py .
python tools/export_onnx.py --cfg_path ${CONFIG_PATH} --model_path ${PYTORCH_MODEL_PATH}Silakan merujuk ke demo_ncnn.
Silakan merujuk ke demo_openvino.
Silakan merujuk ke demo_mnn.
Silakan merujuk ke android_demo.
Jika Anda menemukan proyek ini berguna dalam penelitian Anda, silakan pertimbangkan CITE:
@misc { =nanodet ,
title = { NanoDet-Plus: Super fast and high accuracy lightweight anchor-free object detection model. } ,
author = { RangiLyu } ,
howpublished = { url{https://github.com/RangiLyu/nanodet} } ,
year = { 2021 }
}https://github.com/tencent/ncnn
https://github.com/open-mmlab/mmdetection
https://github.com/impplus/gfocal
https://github.com/cmdbug/yolov5_ncnn
https://github.com/rbgirshick/yacs