Opencv 为什么ONNX模型读取失败?
我正在使用opencv cuda dnn模块进行模型推理。当使用cv::dnn::readNetFromONNX读取我的onnx文件时,我得到了下面的消息 Opencv(4.4.0-dev)错误:未指定错误(>(预期为: 'shape.depth()==CV_32S'),其中'shapes.depth()'为5(CV_32FC1),必须 等于'CV_32S'在void_cdecl中为4(CV_32SC1) cv::dnn::dnn4\U v20200609::ONNXImporter::populateNet(类 cv::dnn::dnn4_v20200609::Net),文件 D:\opencv\u test\newbuild\opencv master\modules\dnn\src\onnx\innx\u importer.cpp, 第1442行 这可能是什么原因?如果有人面临类似的问题,并找到任何解决方案,请让我知道。Opencv 为什么ONNX模型读取失败?,opencv,onnx,dnn-module,Opencv,Onnx,Dnn Module,我正在使用opencv cuda dnn模块进行模型推理。当使用cv::dnn::readNetFromONNX读取我的onnx文件时,我得到了下面的消息 Opencv(4.4.0-dev)错误:未指定错误(>(预期为: 'shape.depth()==CV_32S'),其中'shapes.depth()'为5(CV_32FC1),必须 等于'CV_32S'在void_cdecl中为4(CV_32SC1) cv::dnn::dnn4\U v20200609::ONNXImporter::popu
提前感谢。您的输入blob类型必须是CV_32SC1(int)而不是CV_32FC1(float)。感谢您的回复。事实上,我在“readNetFromONNX()中发现了上述错误“api调用。下面的url是代码,我使用了readNetFromONNX,而不是在我读取.onnx扩展文件时使用”readNet“。您可以使用工具检查模型和blob类型。或者将您的模型放在这里,以便我可以尝试帮助您。抱歉,由于一些限制,我无法提供我的onnx文件。因此我做了一些实验。实际上是在为SegNet架构转换的nx模型。我观察到网络架构中存在的“上采样层”正在产生问题。我能够在不使用上采样层的情况下读取onnx文件。Opencv dnn是否支持上采样层?使用conv2DTranspose代替SegNet网络架构的上采样2D api解决了此问题重新分层。谢谢。