当前位置: 首页 > news >正文

运行yolo v8 YOLOv8-CPP-Inference C++部署遇到的问题

环境:
openCv:4.8.0
torch: 2.0.0
cuda:cuda_11.7.r11.7

遇到问题1:

(tools) rog@i7:~/my_file/obj/ultralytics/examples/YOLOv8-CPP-Inference/build$ ./Yolov8CPPInference Running on CUDA
[ WARN:0@0.039] global net_impl.cpp:178 setUpNet DNN module was not built with CUDA backend; switching to CPU
[ERROR:0@0.039] global net_impl.cpp:1162 getLayerShapesRecursively OPENCV/DNN: [Reshape]:(onnx_node!/model.22/dfl/Reshape): getMemoryShapes() throws exception. inputs=1 outputs=1/1 blobs=0
[ERROR:0@0.039] global net_impl.cpp:1168 getLayerShapesRecursively     input[0] = [ 1 64 6300 ]
[ERROR:0@0.039] global net_impl.cpp:1172 getLayerShapesRecursively     output[0] = [ ]
[ERROR:0@0.039] global net_impl.cpp:1178 getLayerShapesRecursively Exception message: OpenCV(4.9.0-dev) /home/rog/my_file/other_LIB/my_opencv/4.8.0/opencv/modules/dnn/src/layers/reshape_layer.cpp:109: error: (-215:Assertion failed) total(srcShape, srcRange.start, srcRange.end) == maskTotal in function 'computeShapeByReshapeMask'terminate called after throwing an instance of 'cv::Exception'what():  OpenCV(4.9.0-dev) /home/rog/my_file/other_LIB/my_opencv/4.8.0/opencv/modules/dnn/src/layers/reshape_layer.cpp:109: error: (-215:Assertion failed) total(srcShape, srcRange.start, srcRange.end) == maskTotal in function 'computeShapeByReshapeMask'Aborted (core dumped)

cmake:

cmake_minimum_required(VERSION 3.5)project(Yolov8CPPInference VERSION 0.1)set(CMAKE_INCLUDE_CURRENT_DIR ON)# CUDA
set(CUDA_TOOLKIT_ROOT_DIR "/usr/local/cuda")
find_package(CUDA 11 REQUIRED)set(CMAKE_CUDA_STANDARD 11)
set(CMAKE_CUDA_STANDARD_REQUIRED ON)
# !CUDA#添加OpenCV的目录  opencv目录去你编译安装的文件夹下找OpenCVConfig.cmake把该文件所在目录加进来就行了
set(CMAKE_PREFIX_PATH /home/rog/my_file/other_LIB/my_opencv/4.8.0/opencv/my_lib_x86/lib/cmake/opencv4) #×××××××××××
#寻找OpenCV库
FIND_PACKAGE(OpenCV 4.8.0 REQUIRED)
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
#打印调试信息
MESSAGE(STATUS "Project: ${PROJECT_NAME}")
MESSAGE(STATUS "OpenCV library status:")
MESSAGE(STATUS "version: ${OpenCV_VERSION}")
MESSAGE(STATUS "libraries: ${OpenCV_LIBS}")
MESSAGE(STATUS "include path: ${OpenCV_INCLUDE_DIRS}")
message(STATUS "version:${OpenCV_VERSION}")
# !OpenCVset(PROJECT_SOURCESmain.cppinference.hinference.cpp
)add_executable(Yolov8CPPInference ${PROJECT_SOURCES})
target_link_libraries(Yolov8CPPInference ${OpenCV_LIBS})

问题1解决:
问题很简单,就是onnx模型导出的imgsz参数不对。修改后的参数如下

from ultralytics import YOLO# Load a YOLOv8 model
model = YOLO("yolov8s.pt")# Export the model
model.export(format="onnx", opset=12,dynamic=False,imgsz=[480,640])

遇到问题2:

(demoenv) rog@i7:~/my_file/obj/my_yolo_v8/examples/YOLOv8-CPP-Inference/build$ ./Yolov8CPPInference 
[ERROR:0] global ./modules/dnn/src/onnx/onnx_importer.cpp (718) handleNode DNN/ONNX: ERROR during processing node with 2 inputs and 1 outputs: [Add]:(/model.22/Add_output_0)
terminate called after throwing an instance of 'cv::Exception'what():  OpenCV(4.5.4) ./modules/dnn/src/onnx/onnx_importer.cpp:739: error: (-2:Unspecified error) in function 'handleNode'
> Node [Add]:(/model.22/Add_output_0) parse error: OpenCV(4.5.4) ./modules/dnn/src/onnx/onnx_importer.cpp:1067: error: (-215:Assertion failed) blob_0.size == blob_1.size in function 'parseBias'
> 
Aborted (core dumped)

问题2解决:
原来的openCV版本是4.5.4 更新到4.8.0就可以

相关文章:

  • SQL Server ISO镜像文件安装
  • 【C++】类和对象(一)
  • 代理IP在游戏中的作用有哪些?
  • MyBaties-增删查改
  • MongoDB日期存储与查询、@Query、嵌套字段查询实战总结
  • 【ArcGIS微课1000例】0099:土地利用变化分析
  • 路飞项目--04
  • 防御保护笔记02
  • ID3算法 决策树学习 Python实现
  • 顺序表的奥秘:高效数据存储与检索
  • LLM之llm-viz:llm-viz(3D可视化GPT风格LLM)的简介、安装和使用方法、案例应用之详细攻略
  • 【leetcode】01背包总结
  • 这些好用小众的知识库软件,快收藏起来
  • docker镜像详解
  • 使用docker部署mongodb
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • JavaScript设计模式之工厂模式
  • JavaScript中的对象个人分享
  • Java-详解HashMap
  • Objective-C 中关联引用的概念
  • PHP那些事儿
  • vue脚手架vue-cli
  • 阿里云应用高可用服务公测发布
  • 百度地图API标注+时间轴组件
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 复杂数据处理
  • 工作中总结前端开发流程--vue项目
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 如何在 Tornado 中实现 Middleware
  • 学习HTTP相关知识笔记
  • 源码安装memcached和php memcache扩展
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 国内开源镜像站点
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (10)STL算法之搜索(二) 二分查找
  • (12)Hive调优——count distinct去重优化
  • (14)Hive调优——合并小文件
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (推荐)叮当——中文语音对话机器人
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转载)(官方)UE4--图像编程----着色器开发
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .Net MVC + EF搭建学生管理系统
  • .net 发送邮件
  • .NET 分布式技术比较
  • .Net7 环境安装配置
  • :class的用法及应用
  • @Import注解详解