今天跟大家分享一下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); <
本文介绍了如何使用C++和OpenCV进行YOLOV8目标检测模型的部署。首先,解释了ONNX模型的输入和输出格式,然后详细阐述了在C++环境中配置OpenCV和GetOpt包的过程。通过OpenCV的dnn库加载模型并进行推理,对图像进行归一化处理,最后将检测结果绘制在原图上展示。文章还展示了检测效果,并提供了其他视觉任务如语义分割和联合目标检测与分割的C++部署教程链接。
最低0.47元/天 解锁文章
2528

被折叠的 条评论
为什么被折叠?



