最近在研究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
CV3.3.1
如果谁遇到跟我一样的报错信息,也可以参考我这边的描述来解决问题。
修改.prototxt文件内容格式!