OpenCV 3.4.1错误readNetFromTensorflow无法在cv :: dnn :: ReadProtoFromBinaryFile中打开.pb

时间:2018-10-11 12:11:05

标签: python c++ opencv tensorflow

我在使用opencv C ++打开protobuf文件时遇到问题。 我使用以下代码:

cv::String weights = "frozen_inference_graph_face.pb";
cv::String pbtxt = "prototxt.pbtxt";
auto graph = cv::dnn::readNetFromTensorflow(weights, pbtxt);

我遇到此错误:

OpenCV(3.4.1)错误:未指定错误(失败:fs.is_open()。无法在cv :: dnn :: ReadProtoFromBinaryFile中打开“ frozen_inference_graph_face.pb”),文件C:.hunter_Base \ acbf4b9 \ 93b3222 \ 8eb84a0 \ Build \ OpenCV \ Source \ modules \ dnn \ src \ caffe \ caffe_io.cpp,第1126行

当我使用这样的Python代码打开它并正确检测图像时,它会很好地工作:

cvNet = 
cv.dnn.readNetFromTensorflow('frozen_inference_graph.pb','prototxt.pbtxt')

我已经训练了ssd_mobilenet_v1_pets。无法理解为什么我无法使用我的C ++代码打开它并且错误是我使用tensorflow时涉及到cafe。也许内置的OpenCV的配置错误?我将WITH_PROTOBUF = ON设置为BUILD_opencv_dnn = ON。

1 个答案:

答案 0 :(得分:0)

很明显,这是路径问题。您应该检查相对路径,如下所示:

model = cv2.dnn.readNetFromCaffe("CarTypeRecognizition/model/vehicle_model.prototxt",
                                 "CarTypeRecognizition/model/vehicle_model.caffemodel")