赞
踩
今天跟大家分享一下yolov8的C++部署,网上有很多Tensort的教程,其实部署原理都一样,只是看到很少有介绍这部分的,所以分享一下。
yolov8的具体训练和onnx模型导出可以参考官方教程,本文不做赘述。导出后的onnx模型输入和输出的维度大小需要跟部署时统一。以本文为例,输入和输出如图所示:
这里的输入其实就是一张640*640大小的RGB三通道图片,输出是一个8400行5列的矩阵 。这里的输出维度8400是和训练时选择的模型有关(本文选择的s),5是和自己的检测类有关(一般为类别数加4,4为坐标x,y,w,h)。
知道输入输出后就可以选择部署方式了,常见的有服务器部署(常见的有使用LibTorch的混合编程)和终端部署(使用C++较多的NVIDIA或瑞芯微等)。考虑到大部分人在研究阶段可能没有设备或者只是想验证一下效果,本文只使用Opencv进行纯C++部署。其中Opencv版本建议4.7.0以上,C++版本17及以上。
首先配置Opencv环境,这里不仅需要使用Opencv,还需要使用到一个GetOpt包,用作算子获取操作。配置好环境后,可以使用Opencv的dnn库去读取onnx模型进行尝试。
cv::dnn::Net net = cv::dnn::readNetFromONNX(modelPath);
<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。