2

我最近安装了 OpenVINO,但我不知道我应该如何提供输入并从 OpenVINO 预训练模型中获得预测。

有两个带有 .bin 和 .xml 后缀的文件,我刚刚使用过 keras,所以我不能在 opencv 中使用这个模型。

我找到了这段代码,但它没有用。

import cv2 as cv

net = cv.dnn.readNet('face-detection-adas-0001.bin', 'face-detection-adas-0001.xml')

cap = cv.VideoCapture(0)

while cv.waitKey(1) < 0:
    hasFrame, frame = cap.read()
    if not hasFrame:
        break

    blob = cv.dnn.blobFromImage(frame, size=(672, 384))
    net.setInput(blob)
    out = net.forward()

    for detection in out.reshape(-1, 7):
        confidence = float(detection[2])
        xmin = int(detection[3] * frame.shape[1])
        ymin = int(detection[4] * frame.shape[0])
        xmax = int(detection[5] * frame.shape[1])
        ymax = int(detection[6] * frame.shape[0])

        if confidence > 0.5:
            cv.rectangle(frame, (xmin, ymin), (xmax, ymax), color=(0, 255, 0))

    cv.imshow('OpenVINO face detection', frame)

有错误代码:

Traceback (most recent call last):
  File "C:\Users\Ali-10\Desktop\facial_landmark\face.py", line 3, in <module>
    net = cv.dnn.readNet('face-detection-adas-0001.bin', 'face-detection-adas-0001.xml')
    cv2.error: OpenCV(3.4.4) C:\projects\opencv-python\opencv\modules\dnn\src\dnn.cpp:2428: error: (-2:Unspecified error) Build OpenCV with Inference Engine to enable loading models from Model Optimizer. in function 'cv::dnn::experimental_dnn_34_v10::Net::readFromModelOptimizer'

我期望模型的预测,但我只是得到这个错误。

4

2 回答 2

2

我刚刚测试了这段代码,它工作得很好。您需要先安装 openvino,然后运行 ​​setupvars.bat 文件以初始化 openvino 环境。完成后,您可以运行代码,它将开始检测您的面部。我在配备 12Gb RAM 的 Intel i5 上对此进行了测试,我得到了 23-25fps,这很好。

于 2020-05-10T05:35:26.823 回答
1

如消息中所述,您需要构建具有推理引擎支持的 OpenCV。有关详细信息,请参阅 wiki:https ://github.com/opencv/opencv/wiki/Intel%27s-Deep-Learning-Inference-Engine-backend 。

如果您使用 OpenVINO 发行版中的 OpenCV,它必须已经使用 IE 构建(可能除了 2019 年 1 月的单个 R5.1 版本)。

我们还致力于使用 IE 构建 OpenCV 的简化方法(不指定路径,只需通过 cmake 下载它的源代码),请参阅 PR https://github.com/opencv/opencv/pull/13965

于 2019-03-26T21:11:31.007 回答