Python 使用Movidius NCS2的OpenCV在使用Darknet神经网络时会产生误差

Python 使用Movidius NCS2的OpenCV在使用Darknet神经网络时会产生误差,python,opencv,intel,openvino,movidius,Python,Opencv,Intel,Openvino,Movidius,我正在尝试使用Intel Movidius Neural Compute Stick 2执行OCR。我使用的OCR网络基于YOLO,因此图形结构保存为.cfg文件,权重保存为.weights文件。我使用OpenCV,它与Openvino一起安装在树莓Pi3B+上。我的代码如下: 导入cv2 #负荷网络 ocr_net=cv2.dnn.readNetFromDarknet('ocr-net.cfg','ocr net.weights') ocr_net.setPreferableTarget(cv

我正在尝试使用Intel Movidius Neural Compute Stick 2执行OCR。我使用的OCR网络基于YOLO,因此图形结构保存为
.cfg
文件,权重保存为
.weights
文件。我使用OpenCV,它与Openvino一起安装在树莓Pi3B+上。我的代码如下:

导入cv2
#负荷网络
ocr_net=cv2.dnn.readNetFromDarknet('ocr-net.cfg','ocr net.weights')
ocr_net.setPreferableTarget(cv2.dnn.dnn_TARGET_MYRIAD)
ocr_net.setPreferableBackend(cv2.dnn.dnn_BACKEND_推断引擎)
#推理
im=cv2.imread('img_path.jpg'))
blob=cv2.dnn.blobFromImage(im,swapRB=False)
ocr_net.setInput(blob)
结果=ocr_net.forward()
运行此代码时,出现以下错误:

Traceback (most recent call last):
  File "test.py", line 12, in <module>
    result = ocr_net.forward()
cv2.error: OpenCV(4.1.2-openvino) /home/jenkins/workspace/OpenCV/OpenVINO/build/opencv/modules/dnn/src/op_inf_engine.cpp:704: error: (-215:Assertion failed) Failed to initialize Inference Engine backend: Device with "CPU" name is not registered in the InferenceEngine in function 'initPlugin'

回溯(最近一次呼叫最后一次):
文件“test.py”,第12行,在
结果=ocr_net.forward()
cv2.error:OpenCV(4.1.2-openvino)/home/jenkins/workspace/OpenCV/openvino/build/OpenCV/modules/dnn/src/op_inf_engine.cpp:704:error:(-215:Assertion failed)未能初始化推理机后端:函数“initPlugin”中推理机中未注册具有“CPU”名称的设备
如果我将推理目标更改为
cv2.dnn.dnn\u target\u CPU
,将推理后端更改为
cv2.dnn.dnn\u backend\u OPENCV
,则模型工作正常,能够正确执行OCR。我的openvino/openCV安装程序也已正确安装,因为我可以使用openCV正确运行其他Tensorflow/Caffe模型(使用
readNetFromTensorflow()
/
readNetFromCaffe()

我尝试使用的OCR网络可以在这里找到:


感谢您的帮助

根据我对英特尔文档的记忆,opencv.dnn的openVINO发行版无法处理深色模型。在上,您可以找到一个列表,其中列出了我认为可以解释为所有受支持的框架的内容

我目前正在尝试将我的darknet自定义模型转换为tf.pb表示,目前为止运气不佳