[使用Movidius NCS2的OpenCV在使用Darknet神经网络时出现错误

问题描述 投票:0回答:1

我正在尝试使用Intel Movidius神经计算棒2执行OCR。我使用的OCR网络基于YOLO,因此其图形结构另存为.cfg文件,权重另存为.weights文件。我使用与Openvino一起安装在Raspberry Pi 3b +上的OpenCV。我的代码如下:

import cv2

# load network
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_INFERENCE_ENGINE)

# perform inference
im = cv2.imread('img_path.jpg')
blob = cv2.dnn.blobFromImage(im, swapRB=False)
ocr_net.setInput(blob)
result = 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'

如果将推理目标更改为cv2.dnn.DNN_TARGET_CPU,将推理后端更改为cv2.dnn.DNN_BACKEND_OPENCV,则该模型可以正常工作,并且能够正确执行OCR。我的openvino / openCV设置也已正确安装,因为我可以使用openCV(使用readNetFromTensorflow() / readNetFromCaffe())正确运行其他Tensorflow / Caffe模型。

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

感谢您的任何帮助!

我正在尝试使用Intel Movidius神经计算棒2执行OCR。我正在使用的OCR网络基于YOLO,因此其图形结构另存为.cfg文件和权重...

python opencv intel openvino movidius
1个回答
0
投票

根据我记得的英特尔文档,opencv.dnn的openVINO发行版无法处理暗网模型。在this page上,您可以找到我认为可以解释为所有受支持框架的列表。

我目前正在尝试将Darknet自定义模型转换为tf.pb表示形式,到目前为止还没有运气。

© www.soinside.com 2019 - 2024. All rights reserved.