引言
OpenVINO2022版本發(fā)布之后,對之前舊版本的功能做明確的劃分,其中仍然通過exe方式安裝程序的是runtime推理包,支持ONNX、IR、PADDLE等模型讀取與推理。但是模型優(yōu)化轉(zhuǎn)換、模型庫下載功能等其他功能被分在一個叫Dev Tool的部分。該部分可以通過pip方式直接安裝,然后通過命令行直接直線,完成模型的轉(zhuǎn)換,下載等操作,跟之前版本易用性有較大提升!做個對比如下:
Dev Tools安裝與使用
Dev Tools安裝非常方便,直接通過官方腳本命令行選擇安裝即可,唯一需要注意的是選擇模型框架支持,我選擇了ONNX/Pytorch格式轉(zhuǎn)換支持,安裝的命令行如下:
pip install openvino-dev[onnx,pytorch]==2022.1.0
執(zhí)行完這條命令行就算是安裝好了,只要網(wǎng)絡(luò)不掛就可以安裝成功!
安裝完成,轉(zhuǎn)換一個ONNX格式的模型為IR格式(xml/bin)文件,以Pytorch的ResNet18為例,先轉(zhuǎn)換為ONNX,代碼如下:model = models.resnet18(pretrained=True)
model.eval()
model.cpu()
dummy_input1 = torch.randn(1, 3, 224, 224)
torch.onnx.export(model, (dummy_input1), "resnet_model.onnx", verbose=True)
然后直接運(yùn)行命令行就可以轉(zhuǎn)換IR格式文件,截圖如下:
模型下載
安裝完成Dev Tools之后,下載模型,只要執(zhí)行命令行即可:舉例如下:
omz_downloader --name person-detection-0200
表示下載模型person-detection-0200是一個輕量化的人臉檢測模型。omz_downloader支持的參數(shù):--all表示下載全部模型,建議別這么干!
--name 下載一個或者多個指定名稱的模型,推薦這么干!
--precisions 表示下載的模型精度參數(shù),支持FP32/FP18/INT8
對比之前Python版本的SDK,好用了不少,最明顯的感受就是不用讀輸入輸出,然后一堆設(shè)置了,對單個輸入輸出的網(wǎng)絡(luò),調(diào)用就特別的簡潔更方便!開發(fā)者更加容易上手!上面我已經(jīng)成功轉(zhuǎn)換一個pytorch圖像分類模型為IR格式,現(xiàn)在就可以使用它,基于OpenVINO2022版本最新Python SDK部署調(diào)用,實(shí)現(xiàn)代碼如下:
#加載標(biāo)簽數(shù)據(jù)
withopen('imagenet_classes.txt')asf:
labels=[line.strip()forlineinf.readlines()]
defresnet_demo():
ie=Core()
#model=ie.read_model(model="resnet_model.onnx")
model=ie.read_model(model="resnet_model.xml")
compiled_model=ie.compile_model(model=model,device_name="CPU")
output_layer=compiled_model.output(0)
means=np.zeros((224,224,3),dtype=np.float32)
means[:,:]=(0.485,0.456,0.406)
dev=np.zeros((224,224,3),dtype=np.float32)
dev[:,:]=(0.229,0.224,0.225)
image=cv.imread("D:/images/space_shuttle.jpg")
rgb=cv.cvtColor(image,code=cv.COLOR_BGR2RGB)
#resizetoMobileNetimageshape
input_image=cv.resize(src=rgb,dsize=(224,224))
blob_img=np.float32(input_image)/255.0
input_x=(blob_img-means)/dev
input_x=input_x.transpose((2,0,1))
input_x=np.expand_dims(input_x,0)
print(input_x.shape)
result_infer=compiled_model([input_x])[output_layer]
result_index=np.argmax(result_infer)
cv.putText(image,labels[result_index],(20,50),cv.FONT_HERSHEY_SIMPLEX,1.0,(0,0,255),2)
cv.imshow("OpenVINO2022+PythorchResNet18",image)
cv.waitKey(0)
cv.destroyAllWindows()
if__name__=="__main__":
resnet_demo()
審核編輯 :李倩
-
模型
+關(guān)注
關(guān)注
1文章
3521瀏覽量
50425 -
腳本
+關(guān)注
關(guān)注
1文章
398瀏覽量
28457
原文標(biāo)題:OpenVINO2022 Dev Tools安裝與使用
文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
評論