yolov8转onnx
一、目的
上一篇中训练出了结果,是best.pt,参见:win10上yolov8训练自己的模型-CSDN博客。我需要在全平台使用,所以选用opencv加载,这就需要转为onnx
二、步骤
1、如何从best.pt转onnx,详细参数参考官网:ONNX -Ultralytics YOLOv8 文档 ,命令行为:
yolo export model=yolov8n.pt format=onnx
他这个转完能看到输出了imgsz是一个正方形1024x1024,我手动指定了640。这里有个猜测:这个参数应该是跟你训练的模型有关系,训练的时候没有指定图像大小,他就按照正方形来了,所以这里你指定1024*768他会说指定参数不生效,结果还是个正方形。
此时模型输出是[1,6,一个跟你像素有关的数字],和yolov5是不一样的,各位别按照5的写法去解析结果啊。
2、opencv4.8 c++ 加载并处理图像
这里找了很多资料,最后发现ultralytics-8.2.0的源码里就有,清晰明了,简介高效,真是“蓦然回首,那人却在,灯火阑珊处"。
在ultralytics-8.2.0\examples\YOLOv8-CPP-Inference目录下,用qt打开CMakeLists.txt,修改CMakeLists.txt为:

注释掉main.cpp的头文件,就能编译通过了:

源码是非OBB的,我改成了带角度的,输出的[1,6,n]的6就是[center.x, center.y ,width, height, scores, angle],只不过这个角度是弧度,要自己把他转成角度,代码如下:


这个文字还没写好...... 暂时先这样把
下一步验证跨平台。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)