基于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 可以缺失

结果展示:

相关推荐
董厂长2 小时前
langchain :记忆组件混淆概念澄清 & 创建Conversational ReAct后显示指定 记忆组件
人工智能·深度学习·langchain·llm
G皮T5 小时前
【人工智能】ChatGPT、DeepSeek-R1、DeepSeek-V3 辨析
人工智能·chatgpt·llm·大语言模型·deepseek·deepseek-v3·deepseek-r1
九年义务漏网鲨鱼5 小时前
【大模型学习 | MINIGPT-4原理】
人工智能·深度学习·学习·语言模型·多模态
元宇宙时间6 小时前
Playfun即将开启大型Web3线上活动,打造沉浸式GameFi体验生态
人工智能·去中心化·区块链
开发者工具分享6 小时前
文本音频违规识别工具排行榜(12选)
人工智能·音视频
产品经理独孤虾6 小时前
人工智能大模型如何助力电商产品经理打造高效的商品工业属性画像
人工智能·机器学习·ai·大模型·产品经理·商品画像·商品工业属性
老任与码6 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba
蹦蹦跳跳真可爱5896 小时前
Python----OpenCV(图像増强——高通滤波(索贝尔算子、沙尔算子、拉普拉斯算子),图像浮雕与特效处理)
人工智能·python·opencv·计算机视觉
雷羿 LexChien6 小时前
从 Prompt 管理到人格稳定:探索 Cursor AI 编辑器如何赋能 Prompt 工程与人格风格设计(上)
人工智能·python·llm·编辑器·prompt
两棵雪松7 小时前
如何通过向量化技术比较两段文本是否相似?
人工智能