我正在尝试将keras模型导出到tensorflow以在opencv上用作分类器,我已经完成了从.h5(keras权重文件)到.pb(tensorflow原型)的导出,但是当我尝试在opencv readNetFromTensorflow中使用文件.pbtxt,我得到一个错误信息,我不知道如何处理
我尝试仅使用.pb文件作为readNetFromTensorflow()函数中的参数来传递它,但是它不起作用。
import cv2 as cv
cvNet = cv.dnn.readNetFromTensorflow('pesi_pb.pb', 'pbtxt/graph.pbtxt')
img = cv.imread('gatto.png')
rows = img.shape[0]
cols = img.shape[1]
cvNet.setInput(cv.dnn.blobFromImage(img, size=(300, 300), swapRB=True, crop=False))
cvOut = cvNet.forward()
for detection in cvOut[0,0,:,:]:
score = float(detection[2])
if score > 0.3:
left = detection[3] * cols
top = detection[4] * rows
right = detection[5] * cols
bottom = detection[6] * rows
cv.rectangle(img, (int(left), int(top)), (int(right), int(bottom)), (23, 230, 210), thickness=2)
cv.imshow('img', img)
cv.waitKey()
Traceback (most recent call last):
File "C:/Users/chris/PycharmProjects/flask/opencv.py", line 3, in <module>
cvNet = cv.dnn.readNetFromTensorflow('pesi_pb.pb', 'pbtxt/graph.pbtxt')
cv2.error: OpenCV(4.0.0) C:\projects\opencv-python\opencv\modules\dnn\src\caffe\caffe_io.cpp:1121: error: (-2:Unspecified error) FAILED: fs.is_open(). Can't open "pbtxt/graph.pbtxt" in function 'cv::dnn::ReadProtoFromTextFile'
Process finished with exit code 1
我想知道如何正确地从keras导出模型(我猜测自导出以来我已经正确完成了)并加载它以将其用作opencv中的分类器。如果您需要其他任何信息,请与我联系,我是CNN世界的新手,因此很少能提供帮助。