基于C++ DNN部署Yolov8出现的问题记录

代码问题

报错行:net.forward(outputs, net.getUnconnectedOutLayersNames())

错误展示

错误代码:Exception message: OpenCV(4.8.1) C:\GHA-OCV-2\_work\ci-gha-workflow\ci-gha-workflow\opencv\modules\dnn\src\layers\reshape_layer.cpp:109: error: (-215:Assertion failed) total(srcShape, srcRange.start, srcRange.end) == maskTotal in function 'cv::dnn::computeShapeByReshapeMask'

错误解析

文心一言的解释:

total(srcShape, srcRange.start, srcRange.end) == maskTotal in function 'cv::dnn::computeShapeByReshapeMask' 这句信息看起来像是OpenCV(一个开源的计算机视觉库)中的DNN(深度神经网络)模块在尝试进行形状重塑时抛出的一个条件判断。

具体来说,cv::dnn::computeShapeByReshapeMask 函数用于根据一个给定的重塑掩码(reshape mask)计算一个新的张量形状。这个掩码定义了输入张量中哪些维度需要保持不变,哪些维度可以通过某种方式(如调整大小或填充)来改变。

在这个条件判断中:

  • srcShape 是原始张量的形状。
  • srcRange.startsrcRange.end 定义了srcShape中需要被考虑用于重塑的维度范围。
  • maskTotal 则是重塑后,在这个范围内所有维度上的元素总数(通常称为体积)。

total(srcShape, srcRange.start, srcRange.end) 这部分代码会计算原始形状中,指定范围内维度的元素总数。然后这个计算出来的值需要与 maskTotal 进行比较。如果两者相等,那么重塑操作是可行的,因为这意味着重塑后的张量在指定维度上的元素总数与原始张量相同。

如果条件不满足(即两者不相等),那么函数可能会抛出一个错误,因为这意味着无法在不改变元素总数的情况下,通过给定的重塑掩码来重塑张量。

简而言之,这个条件判断是确保重塑操作不会改变张量在指定维度上的元素总数。

改正错误

我这边修改模型的cv::Size(640, 480)修改为cv::Size(640, 640),即onnx转换后应该为640*640,不是640*480,所以tensor张量匹配不上,修改后即可运行

// 1. 设置你的onnx模型

// Note that in this example the classes are hard-coded and 'classes.txt' is a place holder.

Inference inf("last.onnx", cv::Size(640, 640), "classes.txt", runOnGPU); // classes.txt 可以缺失

结果展示:

相关推荐
会飞的老朱18 小时前
医药集团数智化转型,智能综合管理平台激活集团管理新效能
大数据·人工智能·oa协同办公
聆风吟º20 小时前
CANN runtime 实战指南:异构计算场景中运行时组件的部署、调优与扩展技巧
人工智能·神经网络·cann·异构计算
Codebee1 天前
能力中心 (Agent SkillCenter):开启AI技能管理新时代
人工智能
聆风吟º1 天前
CANN runtime 全链路拆解:AI 异构计算运行时的任务管理与功能适配技术路径
人工智能·深度学习·神经网络·cann
uesowys1 天前
Apache Spark算法开发指导-One-vs-Rest classifier
人工智能·算法·spark
AI_56781 天前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
User_芊芊君子1 天前
CANN大模型推理加速引擎ascend-transformer-boost深度解析:毫秒级响应的Transformer优化方案
人工智能·深度学习·transformer
智驱力人工智能1 天前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
qq_160144871 天前
亲测!2026年零基础学AI的入门干货,新手照做就能上手
人工智能
Howie Zphile1 天前
全面预算管理难以落地的核心真相:“完美模型幻觉”的认知误区
人工智能·全面预算