# NanoDet-PyTorch
* **该代码适合没GPU显卡的嵌入式设备运行,比如“树莓派”、ARM开发板、嵌入式开发板**
* 说明:NanoDet作者开源代码地址:https://github.com/RangiLyu/nanodet (致敬)
* 该代码基于NanoDet项目进行小裁剪,专门用来实现Python语言、PyTorch 版本的代码,下载直接能使用,支持图片、视频文件、摄像头实时目标检测。
- YOLO、SSD、Fast R-CNN等模型在目标检测方面速度较快和精度较高,但是这些模型比较大,不太适合移植到移动端或嵌入式设备;
- 轻量级模型 NanoDet-m,对单阶段检测模型三大模块(Head、Neck、Backbone)进行轻量化,目标加检测速度很快;模型文件大小仅几兆(小于4M)。
- NanoDet 是一种 FCOS 式的单阶段 anchor-free 目标检测模型,它使用 ATSS 进行目标采样,使用 Generalized Focal Loss 损失函数执行分类和边框回归(box regression)
## 模型性能
Model |Resolution|COCO mAP|Latency(ARM 4xCore)|FLOPS|Params | Model Size(ncnn bin)
:--------:|:--------:|:------:|:-----------------:|:---:|:-------:|:-------:
NanoDet-m | 320*320 | 20.6 | 10.23ms | 0.72B | 0.95M | 1.8mb
NanoDet-m | 416*416 | 21.7 | 16.44ms | 1.2B | 0.95M | 1.8mb
YoloV3-Tiny| 416*416 | 16.6 | 37.6ms | 5.62B | 8.86M | 33.7mb
YoloV4-Tiny| 416*416 | 21.7 | 32.81ms | 6.96B | 6.06M | 23.0mb
说明:
* 以上性能基于 ncnn 和麒麟 980 (4xA76+4xA55) ARM CPU 获得的
* 使用 COCO mAP (0.5:0.95) 作为评估指标,兼顾检测和定位的精度,在 COCO val 5000 张图片上测试,并且没有使用 Testing-Time-Augmentation。
## NanoDet损失函数
* NanoDet 使用了李翔等人提出的 Generalized Focal Loss 损失函数。该函数能够去掉 FCOS 的 Centerness 分支,省去这一分支上的大量卷积,从而减少检测头的计算开销,非常适合移动端的轻量化部署。
* 详细请参考:Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Detection
## NanoDet 优势
* 超轻量级:模型文件大小仅几兆(小于4M——nanodet_m.pth);
* 速度超快:在移动 ARM CPU 上的速度达到 97fps(10.23ms);
* 训练友好:GPU 内存成本比其他模型低得多。GTX1060 6G 上的 Batch-size 为 80 即可运行;
* 方便部署:提供了基于 ncnn 推理框架的 C++ 实现和 Android demo。
## 开发环境
```text
Cython
termcolor
numpy
torch>=1.3
torchvision
tensorboard
pycocotools
matplotlib
pyaml
opencv-python
tqdm
```
通常测试感觉GPU加速(显卡驱动、cudatoolkit 、cudnn)、PyTorch、pycocotools相对难装一点
## 运行程序
```text
'''目标检测-图片'''
# python detect_main.py image --config ./config/nanodet-m.yml --model model/nanodet_m.pth --path street.png
'''目标检测-视频文件'''
# python detect_main.py video --config ./config/nanodet-m.yml --model model/nanodet_m.pth --path test.mp4
'''目标检测-摄像头'''
# python detect_main.py webcam --config ./config/nanodet-m.yml --model model/nanodet_m.pth --path 0
```
## 总结
* 通过测试发现NanoDet确实很快,但识别精度和效果比YOLOv4差不少的。
* 适用于对检测精度要求不高的,对实时要求高的移动端或嵌入式设备。
### 目标检测效果:
<img src="https://github.com/guo-pu/NanoDet-PyTorch-CPU/blob/master/docs/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B-%E6%95%88%E6%9E%9C.jpg" /><br/>
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
此代码用于目标检测,模型小,检测速度快速,适合没GPU显卡的嵌入式设备运行,比如“树莓派”、ARM开发板、嵌入式开发板。.zip嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会及时为你解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明,项目具体内容可查看下方的资源详情。 【附带帮助】: 若还需要嵌入式物联网单片机相关领域开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步。 【本人专注嵌入式领域】: 有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为你提供帮助,CSDN博客端可私信,为你解惑,欢迎交流。 【建议小白】: 在所有嵌入式开发中硬件部分若不会画PCB/电路,可选择根据引脚定义将其代替为面包板+杜邦线+外设模块的方式,只需轻松简单连线,下载源码烧录进去便可轻松复刻出一样的项目 【适合场景】: 相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多功能
资源推荐
资源详情
资源评论
收起资源包目录
用于目标检测,模型小,检测速度快速的单片机程序源码(皆可应用在毕设/课设/大作业/实训/竞赛/项目开发) (134个子文件)
.gitignore 263B
NanoDet-PyTorch-main.iml 500B
目标检测-效果.jpg 314KB
Title.jpg 129KB
config_file_detail.md 4KB
README.md 3KB
street.png 2.64MB
Model_arch.png 85KB
CPU运行成功.png 42KB
nanodet_m.pth 3.86MB
gfl_head.py 24KB
visualization.py 22KB
flops_counter.py 21KB
yacs.py 19KB
iou_loss.py 18KB
trainer.py 11KB
ghostnet.py 9KB
conv.py 8KB
assign_result.py 8KB
gfocal_loss.py 7KB
shufflenetv2.py 7KB
atss_assigner.py 7KB
resnet.py 6KB
warp.py 6KB
nanodet_head.py 5KB
nms.py 5KB
varifocal_loss.py 5KB
base_anchor_head.py 5KB
data_parallel.py 5KB
coco.py 4KB
detect_main.py 4KB
mobilenetv2.py 4KB
util_mixins.py 4KB
anchor_generator.py 3KB
train.py 3KB
pan.py 3KB
base_sampler.py 3KB
sampling_result.py 3KB
utils.py 3KB
fpn.py 3KB
logger.py 3KB
base.py 3KB
test.py 2KB
collate.py 2KB
coco_detection.py 2KB
scatter_gather.py 2KB
norm.py 2KB
box_transform.py 2KB
color.py 2KB
anchor_target.py 2KB
inference.py 2KB
one_stage.py 2KB
check_point.py 1KB
init_weights.py 1KB
dist_trainer.py 1KB
export.py 894B
config.py 885B
pseudo_sampler.py 861B
pipeline.py 619B
flops.py 587B
__init__.py 576B
__init__.py 515B
__init__.py 463B
activation.py 452B
gfl.py 424B
distributed_data_parallel.py 413B
__init__.py 344B
scale.py 314B
__init__.py 289B
__init__.py 235B
__init__.py 234B
__init__.py 234B
rank_filter.py 199B
base_assigner.py 194B
path.py 138B
__init__.py 31B
mosaic.py 0B
gfl_head.cpython-38.pyc 17KB
flops_counter.cpython-38.pyc 16KB
visualization.cpython-38.pyc 15KB
iou_loss.cpython-38.pyc 14KB
yacs.cpython-38.pyc 14KB
ghostnet.cpython-38.pyc 8KB
gfocal_loss.cpython-38.pyc 7KB
assign_result.cpython-38.pyc 6KB
resnet.cpython-38.pyc 5KB
shufflenetv2.cpython-38.pyc 5KB
conv.cpython-38.pyc 5KB
atss_assigner.cpython-38.pyc 4KB
warp.cpython-38.pyc 4KB
data_parallel.cpython-38.pyc 4KB
base_anchor_head.cpython-38.pyc 4KB
nms.cpython-38.pyc 4KB
mobilenetv2.cpython-38.pyc 4KB
util_mixins.cpython-38.pyc 4KB
nanodet_head.cpython-38.pyc 4KB
logger.cpython-38.pyc 3KB
pan.cpython-38.pyc 3KB
anchor_generator.cpython-38.pyc 3KB
sampling_result.cpython-38.pyc 3KB
共 134 条
- 1
- 2
资源评论
阿齐Archie
- 粉丝: 3w+
- 资源: 2474
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- HTML5实现好看的游戏开发上市公司网站模板.zip
- HTML5实现好看的游戏公司官网网站模板.zip
- 国开-大数据技术导论-实验5 大数据可视化.doc
- 国开-大数据技术导论-实验4 大数据去重.doc
- 国开-大数据技术导论-实验3 网页数据获取.doc
- 国开-大数据技术导论-实验1 Linux操作系统部署.doc
- 冒泡排序,插入排序,选择排序
- (21688012)微信商城小程序
- (24517238)17 CDMA2000码分多址通信系统.zip
- (9993602)购物车小程序
- (172604420)STL常用容器1
- (173992034)完整word版-C语言程序设计(郑莉)课后习题答案.doc
- (174151238)EDFA的matlab建模,EDFA的matlab建模,EDFA的matlab建模,EDFA的matlab建模,EDFA的mat
- springboot2.x课程配套课件笔记springboot版PDF
- (174269454)C语言课程设计-考试报名管理系统
- (174517244)大一上学期C语言大作业.7z
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功