I have a issue when using OpenCV dnn module.
Here are my settings:
-
Using Visual Studio 2017 to build OpenCV 4.5.5 with extra module opencv_contrib-4.x (clone from github)
-
Downloading EDSR_x4.pb and EDSR_x3.pb from EDSR_tensorflow
-
move .pb files to root directory of my project
However, no matter I used relative path or absolute path, readModel() failed for these two path:
DnnSuperResImpl sr;
sr.readModel ("EDSR_x4.pb");
sr.readModel ("C:\\Users\\user\\source\\repos\\ZBAR_OpenCV4.5\\ZBAR_OpenCV4.5\\EDSR_x4.pb");
Exception printed out:
code= -2
err= FAILED: ReadProtoFromBinaryFile(param_file, param) Failed to parse GraphDef file: EDSR_x4.pb
func= cv::dnn::ReadTFNetParamsFromBinaryFileOrDie
line= 42
msg= OpenCV(4.5.5) C:\OpenCV4.5\opencv\sources\modules\dnn\src\tensorflow\tf_io.cpp:42: error: (-2:Unspecified error) FAILED: ReadProtoFromBinaryFile(param_file, param). Failed to parse GraphDef file: EDSR_x4.pb in function 'cv::dnn::ReadTFNetParamsFromBinaryFileOrDie'
what= OpenCV(4.5.5) C:\OpenCV4.5\opencv\sources\modules\dnn\src\tensorflow\tf_io.cpp:42: error: (-2:Unspecified error) FAILED: ReadProtoFromBinaryFile(param_file, param). Failed to parse GraphDef file: EDSR_x4.pb in function 'cv::dnn::ReadTFNetParamsFromBinaryFileOrDie'
I guess I should transform .pb files to some kinds of format?