本博客会从一个从未部署过任何环境的电脑上一步步复现如何本地训练自定义模型并成功部署到Maixcam上实现数字识别的功能。
文章中会引用到我当时学习是参考到的文章,都会在下面列出来,在此对这些向我提供过帮助的博主表示感谢!!
本文中默认读者已经了解过相对应的知识,一些非常详细的操作我会引用一些文章。
检测模型效果并转化
1.1 检测模型效果
这是训练完成的结果,可以看到结果储存在runs\train\exp13中
best.pt和last.pt是我们训练出来的权重文件,比较重要,用于detect.py。last是最后一次的训练结果,best是效果最好的训练结果(只是看起来,但是泛化性不一定强)。
随后我们打开detect.py 拉到最下面转到parse_opt()的定义里面
按需调整参数
点我查看参考文章:认真总结6000字
大家可以参考我划线的地方所做的修改
weights:训练好的权重文件路径,这里选用的是best.pt
source:我们需要检测的文件路径,可以是图片,视频,摄像头,填0默认打开摄像头,这里我们使用的是录制的一段视频,路径在 VOCdevkit/images/test/video.mp4
data:数据集参数文件路径number.yaml的路径
conf-tres: 置信度,我这里是0.8 即大于0.8的检测值才能显示出来标注框
iou-tres: 非极大值抑制,自己上网搜
device: 选0即启用GPU加速
运行一下detect.py 发现完成后结果存储在runs/detect/exp6中,我们拿出检测后的视频看看,发现效果还不错。
对拍摄视频进行推理
1.2 导出ONNX模型文件
点这里:MaixPy官方文档
由于requirements中将模型转换部分注释了,我们需要取消注释后再运行安装一遍.txt文件
随后我们打开export.py文件 还是拖到最底下 右键转到parse_opt()中,修改下图中红框部分
设置模型和数据源的yaml,选择best.pt这个权重文件
设置导出模型的分辨率,注意高在前,宽在后,因为这个和MaixCAM屏幕显示的比例比较相近。
随后在控制台运行一下下面代码:
python export.py --include onnx
会发现onnx格式的文件已经存储在了画红线的路径下了,名称为best.onnx
资料如图所示:
通过百度网盘分享的文件:资料.zip
链接:https://pan.baidu.com/s/16h4Th9UbOF9YfJEgItYwYA?pwd=6969
提取码:6969