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推理,效果可以。

相关推荐
朔北之忘 Clancy几秒前
2020 年 6 月青少年软编等考 C 语言二级真题解析
c语言·开发语言·c++·学习·青少年编程·题解·尺取法
消失的旧时光-19436 分钟前
C++ 中的 auto 与 nullptr:不是语法糖,而是类型系统升级
开发语言·c++
fpcc18 分钟前
跟我学C++中级篇—C++17中的元编程逻辑操作
c++·模板编程
HABuo18 分钟前
【Linux进程(五)】进程地址空间深入剖析-->虚拟地址、物理地址、逻辑地址的区分
linux·运维·服务器·c语言·c++·后端·centos
老兵发新帖37 分钟前
基于Label Studio的视频标注与YOLO模型训练全流程指南
python·yolo·音视频
AuroraWanderll38 分钟前
类和对象(六)--友元、内部类与再次理解类和对象
c语言·数据结构·c++·算法·stl
Tim_1042 分钟前
【C++入门】05、复合类型-数组
开发语言·c++·算法
jikiecui42 分钟前
信奥崔老师:三目运算 (Ternary Operator)
数据结构·c++·算法
无限进步_43 分钟前
【C语言&数据结构】另一棵树的子树:递归思维的双重奏
c语言·开发语言·数据结构·c++·算法·github·visual studio
汉克老师43 分钟前
GESP2025年9月认证C++一级真题与解析(判断题1-10)
c++·数据类型·累加器·循环结构·gesp一级·gesp1级