神经计算棒2:我已经完成所有处理以使用NCS2,但这太慢了

时间:2019-03-18 12:33:55

标签: python opencv tensorflow raspberry-pi intel

最近,我从我的教授那里得到了神经计算棒2,

经过反复试验,我已经配置了环境。

我从英特尔官方网站获得了所有信息。

sudo python3 mo_tf.py 
\ --input_model /home/leehanbeen/PycharmProjects/TypeClassifier/inference_graph_type.pb 
\ --input_shape "[1, 64, 128, 3]" --input "input"

我已经通过model_optimizer成功地将pb文件转换为IR(.xml,.bin)文件,并希望将其应用于树莓派。

import tensorflow as tf
import cv2
import numpy as np
BIN_PATH = '/home/pi/Downloads/inference_graph_type.bin'
XML_PATH = '/home/pi/Downloads/inference_graph_type.xml'
IMAGE_PATH = '/home/pi/Downloads/plate(110).jpg_2.jpg' #naming miss.. :(
net = cv2.dnn.readNet(XML_PATH, BIN_PATH)
net.setPreferableTarget(cv2.dnn.DNN_TARGET_MYRIAD)
frame = cv2.imread(IMAGE_PATH)
frame = cv2.resize(frame, (128, 64))
blob = cv2.dnn.blobFromImage(frame, size=(128, 64), ddepth=cv2.CV_8U)
net.setInput(blob)
out = net.forward()
out = out.reshape(-1)
print(out)
print(np.max(out))
print(np.argmax(out))

此源工作得很好,但是太慢了。 当我将(128,64,3)图像作为模型输入时,推理时间为4.7秒

[0.0128479 0.2097168 0.76416016 0.00606918 0.00246811 0.00198746 0.00129604 0.00117588]
0.76416016
2

当我给出比该图像小的图像(40,40,1)时,时间将变得非常缓慢。

我遵循了所有步骤以及在英特尔官方主页上的所有步骤。为什么推理时间这么慢?这只是使用CNN的非常简单的分类模型

1 个答案:

答案 0 :(得分:0)

已解决。 与其将IE用作OpenCV的后端, 直接使用IE,推理时间从4.7秒缩短到0.01秒。 但是仍然存在问题。彩色图像(128,64)的推断是正常的,而灰度图像仍在无限时间结束时结束。

我已经在GITHUB

上编写了相关的源代码

它是韩文,但您只能在底部看到源。