当前位置:网站首页>OpenVINO2022 Dev Tools安装与使用
OpenVINO2022 Dev Tools安装与使用
2022-06-24 19:02:00 【OpenCV学堂】
点击上方蓝字关注我们
微信公众号:OpenCV学堂 关注获取更多计算机视觉与深度学习知识
引言
OpenVINO2022版本发布之后,对之前旧版本的功能做明确的划分,其中仍然通过exe方式安装程序的是runtime推理包,支持ONNX、IR、PADDLE等模型读取与推理。但是模型优化转换、模型库下载功能等其他功能被分在一个叫Dev Tool的部分。该部分可以通过pip方式直接安装,然后通过命令行直接直线,完成模型的转换,下载等操作,跟之前版本易用性有较大提升!做个对比如下:
Dev Tools安装与使用
Dev Tools安装非常方便,直接通过官方脚本命令行选择安装即可,唯一需要注意的是选择模型框架支持,我选择了ONNX/Pytorch格式转换支持,安装的命令行如下:
pip install openvino-dev[onnx,pytorch]==2022.1.0执行完这条命令行就算是安装好了,只要网络不挂就可以安装成功!
安装完成,转换一个ONNX格式的模型为IR格式(xml/bin)文件,以Pytorch的ResNet18为例,先转换为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)然后直接运行命令行就可以转换IR格式文件,截图如下:
模型下载
安装完成Dev Tools之后,下载模型,只要执行命令行即可:举例如下:
omz_downloader --name person-detection-0200表示下载模型 person-detection-0200 是一个轻量化的人脸检测模型。
omz_downloader 支持的参数:
--all表示下载全部模型,建议别这么干!--name 下载一个或者多个指定名称的模型,推荐这么干!--precisions 表示下载的模型精度参数,支持FP32/FP18/INT8Python SDK使用
对比之前Python版本的SDK,好用了不少,最明显的感受就是不用读输入输出,然后一堆设置了,对单个输入输出的网络,调用就特别的简洁更方便!开发者更加容易上手!上面我已经成功转换一个pytorch图像分类模型为IR格式,现在就可以使用它,基于OpenVINO2022版本最新Python SDK部署调用,实现代码如下:
# 加载标签数据
with open('imagenet_classes.txt') as f:
labels = [line.strip() for line in f.readlines()]
def resnet_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)
# resize to MobileNet image shape
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 + Pythorch ResNet18", image)
cv.waitKey(0)
cv.destroyAllWindows()
if __name__ == "__main__":
resnet_demo()扫码查看OpenCV+OpenVIO+Pytorch系统化学习路线图
推荐阅读
OpenCV4.5.4 人脸检测+五点landmark新功能测试
OpenCV4.5.x DNN + YOLOv5 C++推理
OpenCV4.5.4 直接支持YOLOv5 6.1版本模型推理
OpenVINO2021.4+YOLOX目标检测模型部署测试
比YOLOv5还厉害的YOLOX来了,官方支持OpenVINO推理
边栏推荐
- Methods for comparing float types in the kernel
- Working for 6 years with a monthly salary of 3W and a history of striving for one PM
- Steering gear control (stm32f103c8t6)
- 【建议收藏】时间序列预测应用、paper汇总
- Huawei cloud modelarts has ranked first in China's machine learning public cloud service market for the fourth time!
- Ribbon源码分析之@LoadBalanced与LoadBalancerClient
- 宅男救不了元宇宙
- Digital twin industry case: Digital Smart port
- Landcover100, planned land cover website
- redis数据结构之压缩列表
猜你喜欢
随机推荐
等等党们的胜利!挖矿退潮后,显卡价格全面暴跌
Compressed list of redis data structures
The agile way? Is agile development really out of date?
How to select the ECS type and what to consider?
网络安全审查办公室对知网启动网络安全审查,称其“掌握大量重要数据及敏感信息”
Steering gear control (stm32f103c8t6)
lol手游之任务进度条精准计算
Programmers spend most of their time not writing code, but...
Test drive citus 11.0 beta (official blog)
苹果不差钱,但做内容“没底气”
科技抗疫: 运营商网络洞察和实践白皮书 | 云享书库NO.20推荐
Understanding openstack network
What are the functions of IBPs open source form designer?
IP address to integer
Unity移动端游戏性能优化简谱之 以引擎模块为划分的CPU耗时调优
[cann document express issue 04] unveiling the development of shengteng cann operator
[go language questions] go from 0 to entry 4: advanced usage of slice, elementary review and introduction to map
Teach you how to view the number of connected people on WiFi in detail how to view the number of connected people on WiFi
First understand redis' data structure - string
Bat learning notes









