Python 3.x 为什么net.forward在cv2中使用第二个映像时出错?
我正在测试python opencv(cv2),以使用openvino DNN模型检测多个图像。 我的首次检测代码:Python 3.x 为什么net.forward在cv2中使用第二个映像时出错?,python-3.x,opencv-python,openvino,Python 3.x,Opencv Python,Openvino,我正在测试python opencv(cv2),以使用openvino DNN模型检测多个图像。 我的首次检测代码: import cv2 dog=cv2.imread("dog.jfif") cat=cv2.imread("cat.jfif") net=cv2.dnn.readNet("ssd_mobilenetv2_fp16_scale2.xml","ssd_mobilenetv2_fp16_scale2.bin"
import cv2
dog=cv2.imread("dog.jfif")
cat=cv2.imread("cat.jfif")
net=cv2.dnn.readNet("ssd_mobilenetv2_fp16_scale2.xml","ssd_mobilenetv2_fp16_scale2.bin")
blob=cv2.dnn.blobFromImage(dog)
net.setInput(blob)
out=net.forward()
在此之前,不会显示任何错误,print(out)
显示“dog”检测成功。
但当我通过添加以下几行继续下一次检测“cat”图像时:
blob=cv2.dnn.blobFromImage(cat)
net.setInput(blob)
out=net.forward()
我得到:
>>> out = net.forward()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
cv2.error: OpenCV(4.3.0-openvino) ../opencv/modules/dnn/src/ie_ngraph.cpp:522: error: (-215:Assertion failed) !isInitialized() in function 'initPlugin'
out=net.forward()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
cv2.error:OpenCV(4.3.0-openvino)…/OpenCV/modules/dnn/src/ie_ngraph.cpp:522:error:(-215:断言失败)!函数“initPlugin”中的isInitialized()
为什么会发生这种错误?第二次检测的正确方法是什么?可能您可以尝试分别运行dog和cat检测,因为程序可能会混淆在执行blob期间同时出现的两个输入 另一种解决方法是,如果仍希望它们同时工作,请以不同的方式命名blob,例如: 狗:
blob1=cv2.dnn.blobFromImage(dog)
net.setInput(blob1)
给猫
blob2=cv2.dnn.blobFromImage(cat)
net.setInput(blob2)
这样函数net.setInput(blob)就不会混淆它应该引用哪个输入
谢谢 可能您可以尝试分别运行dog和cat检测,因为程序可能会混淆在执行blob期间同时出现的两个输入 另一种解决方法是,如果仍希望它们同时工作,请以不同的方式命名blob,例如: 狗:
blob1=cv2.dnn.blobFromImage(dog)
net.setInput(blob1)
给猫
blob2=cv2.dnn.blobFromImage(cat)
net.setInput(blob2)
这样函数net.setInput(blob)就不会混淆它应该引用哪个输入
谢谢