首先在这里感谢一下这位大佬:学不会电磁场的个人空间-学不会电磁场个人主页-哔哩哔哩视频 (bilibili.com)
这里使用的代码是从手把手教你使用c++部署yolov5模型,opencv推理onnx模型_哔哩哔哩_bilibili处来的我这里只记录下更换成自己的模型的应用以及提供一份全注释的版本
树莓派搭建opencv和c++环境请看我的其他博客
首先我们需要得到训练模型的权重文件(.pt后缀)转换为onnx格式
yolo5自带这个功能,在export.py中的parse_opt函数里
arse_opt里我们需要修改data,weights,imgsz和--include,其中data要和你的weights对应data对应你的训练数据(当然这里不训练,只是拿到每个分类对应的序列号),imgsz对应你的识别图像大小,
--include对应你转出的模型格式(包括torchscript, onnx, openvino... )
导出后拿着我们得到的onnx文件到树莓派里
在这之前你需要登入Netron导入你的onnx模型来查看输出层名字(名字不对识别报错)我这里是output0
然后让我们进入到cpp程序里主函数部分修改输出层名称以及导入你的模型
然后是最后一步:在static const中将里面的分类替换成你模型的(按照顺序排好)
然后编译运行既可(这里出现一堆数字可以在程序里改掉,可以看我的注释或者置顶视频)