使用 NCS2 加速推断识别图片
生活随笔
收集整理的這篇文章主要介紹了
使用 NCS2 加速推断识别图片
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
初始化IE(inference Engine)插件,查詢設備支持的代碼如下:
ie = IECore() for device in ie.available_devices: # 查看有哪些設備支持 OpenVinoprint(device) # CPU GNA GPU MYRIAD創建可執行的網絡的代碼如下:
exec_net = ie.load_network(network=net, device_name="MYRIAD") #使用神經棒加速推斷目錄文件如下
- imagenet_classes.txt:類別文件
- resnet18.bin:權重文件
- resnet18.xml:模型文件
下面是完整代碼:
from openvino.inference_engine import IECore import numpy as np import cv2 as cvie = IECore() for device in ie.available_devices: # 查看有哪些設備支持 OpenVinoprint(device) # CPU GNA GPU MYRIADwith open('imagenet_classes.txt') as f:labels = [line.strip() for line in f.readlines()]model_xml = "resnet18.xml" model_bin = "resnet18.bin"net = ie.read_network(model=model_xml, weights=model_bin) input_blob = next(iter(net.inputs)) out_blob = next(iter(net.outputs))n, c, h, w = net.inputs[input_blob].shape print(n, c, h, w)src = cv.imread("./messi5.jpg") image = cv.resize(src, (w, h)) image = np.float32(image) / 255.0 # 歸一化 image[:, :, ] -= (np.float32(0.485), np.float32(0.456), np.float32(0.406)) image[:, :, ] /= (np.float32(0.229), np.float32(0.224), np.float32(0.225)) image = image.transpose(2, 0, 1) # 矩陣轉置exec_net = ie.load_network(network=net, device_name="MYRIAD") #使用神經棒加速推斷 res = exec_net.infer(inputs={input_blob: [image]})res = res[out_blob] print(res.shape) label_index = np.argmax(res, 1)[0] print(labels[label_index]) cv.putText(src, labels[label_index], (50, 50), cv.FONT_HERSHEY_SIMPLEX, 1.0, (0, 0, 255), 2, 8) # 在圖片上寫入文本 cv.imshow("image classification", src) cv.waitKey(0)原圖:
檢測結果:
原圖:
檢測結果:
總結
以上是生活随笔為你收集整理的使用 NCS2 加速推断识别图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows 10 下的OpenVIN
- 下一篇: 使用 NCS2 异步推理——人脸识别