最近在研究opencv dnn相关的东西,一直被"dnn::Net::setInput"问题困扰。

 

cv::dnn::Net::setInput接口报错信息如下:

OpenCV Error: Requested object was not found (Requested blob "data" not found) in setInput, file /media/DATA/git/auto_vsdk/opencv_src/modules/dnn/src/dnn.cpp, line 1618

12-17 07:52:14.951 1433-1433 [E/adas] [SLD]: Exception: /media/DATA/git/auto_vsdk/opencv_src/modules/dnn/src/dnn.cpp:1618: error: (-204) Requested blob "data" not found in function setInput

反复确认了.prototxt文件内容,的确有data的Input 层。为什么总是提示找不到呢?

使用cv3.3.1时,同样的代码运行不报错,可是在cv3.3.0却会报错,那只能是cv库有差异造成的。

然而,我在google和百度上搜“Requested object was not found (Requested blob "data" not found) in setInput”,始终没有找到正确有效的解决办法,最后只好自己动手排查和解决。

终于发现,果然是cv3.3.0需要的.prototxt文件内容与cv3.3.1的不同:

CV 3.3.0

opencv 3.3.0和opencv 3.3.1差异之一opencv 3.3.0和opencv 3.3.1差异之一

 

CV3.3.1

opencv 3.3.0和opencv 3.3.1差异之一opencv 3.3.0和opencv 3.3.1差异之一

如果谁遇到跟我一样的报错信息,也可以参考我这边的描述来解决问题。

修改.prototxt文件内容格式!

 

 

 

 

 

相关文章: