YOLOV8目标检测C++推理问题总结

背景

数据集有限,使用paddleOCR直接识别准确率无法达到99%,这里尝试用目标检测对识别得分比较低的图片进行二次处理;

类别数目:数字(10)+字母(26)+字符(2)= 38

数据集标注跟训练过程这里使用自己开发的软件;

标注格式与labelimg一致,使用官网方法训练效果也一样;yolo目标检测官网

具体参考官方代码,这里记录注意事项(VS2019 + Qt);

推理参考:https://github.com/ultralytics/ultralytics/tree/main/examples

一、使用OpenCV的DNN

二、ONNXRuntime

三、Libtorch

libtorch 1.13.0

cpu-release:
https://download.pytorch.org/libtorch/cpu/libtorch-win-shared-with-deps-1.13.0%2Bcpu.zip

bash 复制代码
opencv_world490.lib
asmjit.lib
c10.lib
clog.lib
torch.lib
torch_cpu.lib

报错:#error: Macro clash with min and max -- define NOMINMAX when compiling your program on Windows

解决:Qt的slot冲突

注意把#include <torch/torch.h>放到include "opencv.hpp"前面,不然也会冲突报错。

四、OpenVINO

没有试,转换时需要先转为onnx再转为openvino 下载OpenVINO™ toolkit

问题:如图,针对同一张图片,上图为python直接预测的结果,下图为OpenCV的DNN推理结果(ONNXRuntime也和下图差不多),和结果差异很大,原因未知。

最后使用Libtorch推理,效果可以。

相关推荐
zh路西法2 小时前
【CAM Grad-CAM Grad-CAM++】深度学习模型可解释性:从原理到YOLOv8部署实战
人工智能·深度学习·yolo·yolov8·grad-cam·cam
2601_954526753 小时前
【工业传感与算法实战】温漂补偿与零点抗漂破局:基于二阶多项式拟合的 C/C++ 边缘校准算法,深度拆解“压力变送器什么牌子好”的技术硬指标
c语言·c++·算法
code_pgf4 小时前
`unordered_map` 详解
c++
动物园猫4 小时前
人体部位目标检测数据集:5类别、7,000张图像 | 目标检测
人工智能·目标检测·计算机视觉
一拳一个呆瓜5 小时前
【STL】iostream 编程:检测提取操作产生的错误
c++·stl
稚南城才子,乌衣巷风流5 小时前
判断素数与拓展应用
c++
众少成多积小致巨5 小时前
C++ 规范参考(下)
c++
c238565 小时前
把 C++ 内存分配拆透:new 与 malloc 的三层血缘
开发语言·c++·算法
txzrxz7 小时前
最短路问题——Dijkstra 算法
数据结构·c++·算法·最短路·优先队列
noipp7 小时前
推荐题目:洛谷 P6231 [JSOI2013] 公交系统
c语言·数据结构·c++·算法·游戏·洛谷·luogu