一 nanodet 介绍
最近比较火的 one stage 物体定位 和检测模型, 作者不光是取得了比较高的 学术 score ( 精度和性能), 并且把工程部署的细节也落地了, 在 android 下也有不错的方案。
真是牛的可以, 感觉工程师们再不努力就没饭吃了 。。
https://blog.csdn.net/amusi1994/article/details/110072440
二 数据集准备:
可以看上面链接的介绍 ,比较详细
也可以参考我的另外一个博文, 里面 github 地址里 包含了nanodet 数据集的准备
https://blog.csdn.net/walletiger/article/details/110733182
nanodet 需要 coco 格式数据集,标注文件格式不大一样, train 和 val 放在两个 独立的 json 文件中。
除了数据集,还要有个 训练 模型描述文件, 我放在 config/nanodet-facemask.yaml
从 nanodet-m.yml copy 过来, 改了如下:
三 训练
python tools/train.py nanodet-facemask.yaml
nandet 训练 过程出错解决:
一个是 coco 需要 图片文件名是整数, 我的数据集很冤。报错了, 这个根据报错代码行数 简单粗暴的忽略了。 (不该这么简单粗暴)
第二个是 trainer.py 训练 报错:
list object has no method cpu ..
根据自己的理解 修改了下, it works ...
四 部署 nanodet 模型到 jetson nano 并验证
先在, 然后把训练 好的模型放上去
jetson nano下载代码:
git clone https://github.com/RangiLyu/nanodet
上传训练 好的模型,在:
output/model_best/model_best.pth
我修改了 demo (demo2), 更换了 camera 类来适配 jetson nano 的 gstreamer camera backend
摄像头采集类:
https://github.com/walletiger/jetson_nano_py/blob/master/camera.py
python demo/demo2.py webcam --config nanodet-facemask.yml --model model_best.pth --camid jetcam
demo 效果:
jetson nano 口罩佩戴检测
pth 模型直接跑 获得了 640x360 @15fps 的性能,初步的测试速度比 yolov5s 我验证的结果 要快! 后续 能否 通过 onnx , onnx->tensorRT 。。 还有多少提升空间。 再研究吧