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

相关推荐
打马诗人1 小时前
【YOLO11】【DeepSort】【NCNN】使用YOLOv11和DeepSort进行行人目标跟踪。(基于ncnn框架,c++实现)
人工智能·算法·目标检测
小蜜蜂爱编程3 小时前
使用opencv基于realsense D435i展示基本的图像
opencv·realsense
清朝牢弟7 小时前
Ubuntu系统VScode实现opencv(c++)图像像素类型转换和归一化
c++·opencv·ubuntu
黑色的山岗在沉睡7 小时前
P1948 [USACO08JAN] Telephone Lines S
数据结构·c++·算法·图论
tangjunjun-owen8 小时前
单类别目标检测中的 Varifocal Loss 与 mAP 评估:从原理到实践(特别前景和背景类区分)
人工智能·目标检测·计算机视觉
玖剹8 小时前
Linux文件操作:从C接口到系统调用
linux·服务器·c语言·c++·笔记·ubuntu
Blossom.1189 小时前
基于深度学习的医学图像分析:使用MobileNet实现医学图像分类
人工智能·深度学习·yolo·机器学习·分类·数据挖掘·迁移学习
ikkkkkkkl10 小时前
LeetCode:15.三数之和&&18.四数之和
c++·算法·leetcode
pusue_the_sun10 小时前
从零开始搞定类与对象(中)
开发语言·c++·学习
屁股割了还要学10 小时前
【数据结构入门】链表
c语言·开发语言·数据结构·c++·学习·算法·链表