
Супер быстрая и высокая точность легкая модель обнаружения объектов без привязки. В режиме реального времени на мобильных устройствах.

Nanodet-это одноэтапная модель обнаружения объектов в стиле FCOS, которая использует обобщенную фокусную потерю в качестве классификации и потери регрессии.
В Nanodet-Plus мы предлагаем новую стратегию назначения метки с простым модулем руководства по назначению (AGM) и динамическим обращением с мягкой меткой (DSLA), чтобы решить оптимальную задачу назначения метки при легкой тренировке модели. Мы также представляем пирамиду легкой функции под названием Ghost-Pan для улучшения многослойного слияния функций. Эти улучшения повышают точность обнаружения предыдущего нанодета на 7 карт на наборе данных COCO.
Нанодек-плюс
Нанодет 知乎中文介绍
QQ 交流群 : 908606542 (答案 : 炼丹)
| Модель | Разрешение | карта Вэл 0,5: 0,95 | Задержка процессора (i7-8700) | Задержка руки (4xa76) | Флопс | Параметры | Размер модели |
|---|---|---|---|---|---|---|---|
| Нанодет-М. | 320*320 | 20.6 | 4,98 мс | 10,23 мс | 0,72 г | 0,95 м | 1,8 МБ (FP16) | 980KB (int8) |
| Нанодет-плюс-м | 320*320 | 27.0 | 5,25 мс | 11,97 мс | 0,9 г | 1,17 м | 2,3 МБ (FP16) | 1,2 МБ (Int8) |
| Нанодет-плюс-м | 416*416 | 30.4 | 8,32 мс | 19,77 мс | 1,52 г | 1,17 м | 2,3 МБ (FP16) | 1,2 МБ (Int8) |
| Nanodet-Plus-M-1,5X | 320*320 | 29,9 | 7,21 мс | 15,90 мс | 1,75 г | 2,44 м | 4,7 МБ (FP16) | 2,3 МБ (Int8) |
| Nanodet-Plus-M-1,5X | 416*416 | 34.1 | 11,50 мс | 25,49 мс | 2,97 г | 2,44 м | 4,7 МБ (FP16) | 2,3 МБ (Int8) |
| Yolov3-Nyany | 416*416 | 16.6 | - | 37,6 мс | 5,62 г | 8,86 м | 33,7 МБ |
| Yolov4-Bliny | 416*416 | 21,7 | - | 32,81 мс | 6,96 г | 6,06 м | 23,0 МБ |
| Yolox-Nano | 416*416 | 25.8 | - | 23,08 мс | 1,08 г | 0,91 м | 1,8 МБ (FP16) |
| Yolov5-N | 640*640 | 28.4 | - | 44,39 мс | 4,5 г | 1,9 м | 3,8 МБ (FP16) |
| Fbnetv5 | 320*640 | 30.4 | - | - | 1,8 г | - | - |
| Мобилдет | 320*320 | 25.6 | - | - | 0,9 г | - | - |
Загрузите предварительно обученные модели и найдите больше моделей в зоопарке Model или в файлах выпуска
Производительность ARM измеряется на процессоре ARM Kirin 980 (4xa76+4xa55) на основе NCNN. Вы можете проверить задержку на своем телефоне с помощью ncnn_android_benchmark.
Производительность CPU Intel измеряется Intel Core-I7-8700 на основе OpenVino.
Карта нанодетов (0,5: 0,95) подтверждена на наборе данных Coco Val2017 без увеличения времени тестирования.
Карта Yolov3 & Yolov4 относится из Scaled Yolov4: масштабирование поперечной сети.
[2023.01.20] Обновление до питор-ла-флинового 1,9. Минимальная версия Pytorch обновлена до 1,10. Поддержка обучения FP16 (спасибо @Crisp-Snakey). Поддержка проигнорирования лейбла (спасибо @Zero0kiriyu).
[2022.08.26] обновление до питор-ла-фонарина-1,7. Минимальная версия Pytorch обновлена до 1,9. Чтобы использовать предыдущую версию Pytorch, установите Nanodet <= v1.0.0-alpha-1
[2021.12.25] Выпуск нанодет-плюс ! Добавление AGM (присвоение модуля руководства) и DSLA (Dynamic Soft Resedger) для улучшения 7 карты с небольшим количеством затрат.
Найдите больше примечаний на обновление в примечаниях по обновлению.

Демо -проект Android находится в папке DEMO_ANDROID_NCNN . Пожалуйста, обратитесь к Демо -руководству Android.
Вот лучшая реализация ncnn-android-nanodet
Демонстрация C ++ на основе NCNN находится в папке DEMO_NCNN . Пожалуйста, обратитесь к Демо -руководству CPP.
Вывод с использованием структуры MNN Alibaba находится в папке Demo_mnn . Пожалуйста, обратитесь к Demo Guide MNN.
Вывод с использованием openvino находится в папке Demo_openvino . Пожалуйста, обратитесь к Demo Guide OpenVino.
https://nihui.github.io/ncnn-webassembly-nanodet/
Во -первых, установите требования и наноде настройки после руководства по установке. Затем скачать вес предварительного дорода отсюда
COCO PRETRAIN CHACKPOINT
Предварительно обученный вес был обучен 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_IDКроме того, мы предоставляем здесь ноутбук, чтобы продемонстрировать, как заставить его работать с 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 developНанодета поддерживает разнообразие магистралей. Перейдите в папку конфигурации , чтобы увидеть образец обучающих файлов конфигурации.
| Модель | Магистраль | Разрешение | Коко -карта | Флопс | Параметры | Вес перед поездкой |
|---|---|---|---|---|---|---|
| Нанодет-М. | Shufflenetv2 1.0x | 320*320 | 20.6 | 0,72 г | 0,95 м | Скачать |
| Nanodet-Plus-M-320 ( новый ) | Shufflenetv2 1.0x | 320*320 | 27.0 | 0,9 г | 1,17 м | Вес | Контрольная точка |
| Nanodet-Plus-M-416 ( новый ) | Shufflenetv2 1.0x | 416*416 | 30.4 | 1,52 г | 1,17 м | Вес | Контрольная точка |
| Nanodet-Plus-M-1.5x-320 ( новый ) | Shufflenetv2 1,5x | 320*320 | 29,9 | 1,75 г | 2,44 м | Вес | Контрольная точка |
| Nanodet-Plus-M-1.5x-416 ( новый ) | Shufflenetv2 1,5x | 416*416 | 34.1 | 2,97 г | 2,44 м | Вес | Контрольная точка |
УВЕДОМЛЕНИЕ : Разница между Weight и Checkpoint заключается в том, что вес предоставляет только параметры только во время вывода, но контрольная точка содержит параметры времени обучения.
Legacy Model Zoo
| Модель | Магистраль | Разрешение | Коко -карта | Флопс | Параметры | Вес перед поездкой |
|---|---|---|---|---|---|---|
| Nanodet-M-416 | Shufflenetv2 1.0x | 416*416 | 23.5 | 1,2 г | 0,95 м | Скачать |
| Nanodet-M-1.5x | Shufflenetv2 1,5x | 320*320 | 23.5 | 1,44 г | 2,08 м | Скачать |
| Nanodet-M-1.5x-416 | Shufflenetv2 1,5x | 416*416 | 26.8 | 2,42 г | 2,08 м | Скачать |
| Nanodet-M-0,5x | Shufflenetv2 0,5x | 320*320 | 13.5 | 0,3 г | 0,28 м | Скачать |
| Нанодет-т | Shufflenetv2 1.0x | 320*320 | 21,7 | 0,96 г | 1,36 м | Скачать |
| Nanodet-G | Пользовательская сеть CSP | 416*416 | 22.9 | 4,2 г | 3,81 м | Скачать |
| Нанодец-эффективность | EfficeNet-Lite0 | 320*320 | 24.7 | 1,72 г | 3.11m | Скачать |
| Нанодец-эффективность | EfficeNet-Lite1 | 416*416 | 30.3 | 4,06 г | 4,01 м | Скачать |
| Нанодец-эффективность | EfficeNet-Lite2 | 512*512 | 32,6 | 7.12G | 4,71 м | Скачать |
| Нанодет-репфгг | Repvgg-A0 | 416*416 | 27.8 | 11.3g | 6,75 м | Скачать |
Подготовьте набор данных
Если ваши аннотации набора данных являются форматом Pascal VOC XML, см.
В противном случае, если аннотации вашего набора данных являются форматом YOLO (Darknet TXT), см.
Или преобразовать аннотации набора данных в формат MS Coco (детали формата аннотации Coco).
Подготовьте файл конфигурации
Скопируйте и измените пример файла конфигурации YML в Config/ Polder.
Измените save_dir , на что вы хотите сохранить модель.
Измените num_class в модели-> arch-> head .
Измените путь изображения и путь аннотации как в Data-> Train , и Data-> val .
Установите идентификаторы графических процессоров, числа работников и размер партии в устройстве , чтобы соответствовать вашему устройству.
Установите Total_Epochs , LR и LR_SCHEDULE в соответствии с вашим набором данных и пакетом.
Если вы хотите изменить сеть, увеличение данных или другие вещи, обратитесь к деталям файла конфигурации
Начать обучение
Nanodet теперь использует Pytorch Lightning для тренировок.
Как для одного-GPU или с несколькими-GPus, запустите:
python tools/train.py CONFIG_FILE_PATHВизуализируйте журналы
Журналы Tensorboard сохраняются в save_dir , который вы устанавливаете в файле конфигурации.
Чтобы визуализировать журналы Tensorboard, запустите:
cd < YOUR_SAVE_DIR >
tensorboard --logdir ./Nanodet обеспечивает многооборотную демонстрацию C ++, включая NCNN, OpenVino и MNN. Существует также демонстрация Android на основе библиотеки NCNN.
Чтобы преобразовать модель нанодета Pytorch в NCNN, вы можете выбрать таким образом: Pytorch-> onnx-> ncnn
Чтобы экспортировать модель ONNX, запустите tools/export_onnx.py .
python tools/export_onnx.py --cfg_path ${CONFIG_PATH} --model_path ${PYTORCH_MODEL_PATH}Пожалуйста, обратитесь к demo_ncnn.
Пожалуйста, обратитесь к Demo_openvino.
Пожалуйста, обратитесь к demo_mnn.
Пожалуйста, обратитесь к Android_Demo.
Если вы найдете этот проект полезным в своем исследовании, пожалуйста, рассмотрите цит: 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/implus/gfocal
https://github.com/cmdbug/yolov5_ncnn
https://github.com/rbgirshick/yacs