做门户网站经验,大理建设投资有限公司网站,树莓派wordpress frp,品牌制作网站本文是在win10系统下进行yolov8目标检测推理的过程记录。 yolov8 已经集成到OpenCV#xff0c;可以通过两种方式调用#xff0c;一种是直接通过OpenCV 调用#xff0c;另外一种是通过onnx runtime(ort)调用。
1、安装cuda 、opencv 等依赖库#xff0c;具体可以参考
Win1…本文是在win10系统下进行yolov8目标检测推理的过程记录。 yolov8 已经集成到OpenCV可以通过两种方式调用一种是直接通过OpenCV 调用另外一种是通过onnx runtime(ort)调用。
1、安装cuda 、opencv 等依赖库具体可以参考
Win10环境下yolov8快速配置与测试-详细
2、安装onnx runtime 库
不同版本onnx 库的函数头文件函数实现方式不一样这里我们用的是1.16.0 链接 本文使用的是onnxruntime-win-x64-gpu-1.16.0。下载后同样解压至本地D:\software\onnxruntime-win-x64-gpu-1.16.0并添加到环境变量。
Visual Studio配置Onnxruntime的步骤: 参考Opencv的配置方式将D:\software\onnxruntime-win-x64-gpu-1.16.0\include添加至头文件目录将D:\software\onnxruntime-win-x64-gpu-1.16.0\lib添加至库文件目录将onnxruntime.lib添加至依赖项。
在运行VS项目以后会生成Release或Debug文件夹需要将D:\software\onnxruntime-win-x64-gpu-1.16.0\lib目录下的dll文件拷贝至Release或Debug文件夹中否则程序会报错。
3 git
本文git 参考
4 如何基于推理自己.onnx 模型
4.1 模型转换
model.export(formatonnx, dynamicFalse,opset12) # ort 第2、3个参数禁止修改
model.export(formatonnx, opset12, simplifyTrue, dynamicFalse, imgsz640) # opencv如果是在别的电脑上训练的.pt 转换完.onnx 之后用opencv 推理可能会遇到如下报错此时只需要在原有.pt 模型的基础上再训练一个epoch,再在新的.pt 模型上转换.onnx 就可以解决该问题了 导出onnx 后 用netron 查看网络结构在这里我们只检测输入和输入基本信息如下
输入输出如下 可以看到我们的
输入尺寸是1x3x640x640
输出是1x8x8400
其中 8是4cx,cx,w,h4(4classes我们有4个类别) 840080x8040x4020x20是yolov8 三个不同尺寸的输出。
4.2 OpenCV部分代码简单解释
1、选择opencv模式 2、设置classes的类别 3、class 类别如下
4、在yolov5v8_dnn.h 这个头文件里改变classes的类别数量要正确。