1.搭建yolov8运行环境

    从github上下载yolov8代码后,使用pycharm打开yolov8文件夹,根据文件夹下requirement.txt安装对应的环境依赖即可。

2.转换模型

    要将yolov8进行dnn部署首先得将pt模型转换成onnx模型,yolov8自带转换代码。

    坑1:转换onnx模型时出错(具体什么错误忘记了),百度了一堆资料发现是pytorch版本太低,我的环境原始版本是pytorch1.7,后面我升级到pytorch1.9,转换成功了。

3.c++部署

    在yolov8文件夹下有dnn部署的c++代码,如下图:

    我是使用vs2019新建了一个工程将代码转移过去的,之后就是配置vs2019的环境了,主要是配置opencv。

    坑2:一开始我使用的是opencv4.6,程序加载模型时会中断,加载不了onnx模型。查询一些资料发现,必须要使用opencv4.6以上的版本才行,不过也有网友说使用的4.8不行,所以我重新编译了opencv4.7.

4.编译opencv4.7

    本人原始环境:Cmake3.25+vs2019

    在使用cmak编译opencv4.7和opencv-contribute4.7时,搜索world、nonfree这两个进行勾选,搜索extra将opencv-contribute4.7中modules的路径填进去,搜索test、java、python这三项取消相关勾选,按照正常的编译流程将会编译通过。

    坑3:此处不知道为啥我必须要取消勾选LAPACK才能编译通过。

    编译通过后使用vs2019打开工程,首先要重新生成ALL_BUILD,生成后再重新生成INSTALL,之后在你的build文件夹下的install文件夹下即是你所需要的编译后的opencv4.7.

    坑4:生成时此处会报很多错,比如:error C4430: 缺少类型说明符 - 假定为 int。还有:LINK:fatal error LNK1104:无法打开文件”..\..\lib\Debug\opencv_world470d.lib。此处我查询了很多资料。

        1.比如根据报错的文件在Cmake编译的时候取消某些模块的勾选,我取消了jpeg和tiff模块的相关勾选,编译出来后的opencv4.7连图像都不能加载,所以这个方法是错误的。

        2.更换Cmake版本,我使用Cmake3.24再原来的文件夹下进行编译,再使用vs2019重新生成,结果还是报错。

    最后,我将原来的所有文件夹包括build文件夹进行删除,再使用Cmake3.24重新进行编译,使用vs2019重新生成,一次就通过了!!!并配置到yolov8-dnn代码中,检测成功!!!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐