前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenVINO2022 Dev Tools安装与使用

OpenVINO2022 Dev Tools安装与使用

作者头像
OpenCV学堂
发布2022-06-24 18:31:24
1K0
发布2022-06-24 18:31:24
举报

点击上方蓝字关注我们

微信公众号:OpenCV学堂 关注获取更多计算机视觉与深度学习知识

引言

OpenVINO2022版本发布之后,对之前旧版本的功能做明确的划分,其中仍然通过exe方式安装程序的是runtime推理包,支持ONNX、IR、PADDLE等模型读取与推理。但是模型优化转换、模型库下载功能等其他功能被分在一个叫Dev Tool的部分。该部分可以通过pip方式直接安装,然后通过命令行直接直线,完成模型的转换,下载等操作,跟之前版本易用性有较大提升!做个对比如下:

Dev Tools安装与使用

Dev Tools安装非常方便,直接通过官方脚本命令行选择安装即可,唯一需要注意的是选择模型框架支持,我选择了ONNX/Pytorch格式转换支持,安装的命令行如下:

代码语言:javascript
复制
pip install openvino-dev[onnx,pytorch]==2022.1.0

执行完这条命令行就算是安装好了,只要网络不挂就可以安装成功!

安装完成,转换一个ONNX格式的模型为IR格式(xml/bin)文件,以Pytorch的ResNet18为例,先转换为ONNX,代码如下:

代码语言:javascript
复制
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之后,下载模型,只要执行命令行即可:举例如下:

代码语言:javascript
复制
omz_downloader --name person-detection-0200

表示下载模型 person-detection-0200 是一个轻量化的人脸检测模型。

omz_downloader 支持的参数:

代码语言:javascript
复制
--all表示下载全部模型,建议别这么干!--name 下载一个或者多个指定名称的模型,推荐这么干!--precisions 表示下载的模型精度参数,支持FP32/FP18/INT8

Python SDK使用

对比之前Python版本的SDK,好用了不少,最明显的感受就是不用读输入输出,然后一堆设置了,对单个输入输出的网络,调用就特别的简洁更方便!开发者更加容易上手!上面我已经成功转换一个pytorch图像分类模型为IR格式,现在就可以使用它,基于OpenVINO2022版本最新Python SDK部署调用,实现代码如下:

代码语言:javascript
复制
# 加载标签数据
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系统化学习路线图

 推荐阅读 

CV全栈开发者说 - 从传统算法到深度学习怎么修炼

2022入坑深度学习,我选择Pytorch框架!

Pytorch轻松实现经典视觉任务

教程推荐 | Pytorch框架CV开发-从入门到实战

OpenCV4 C++学习 必备基础语法知识三

OpenCV4 C++学习 必备基础语法知识二

OpenCV4.5.4 人脸检测+五点landmark新功能测试

OpenCV4.5.4人脸识别详解与代码演示

OpenCV二值图象分析之Blob分析找圆

OpenCV4.5.x DNN + YOLOv5 C++推理

OpenCV4.5.4 直接支持YOLOv5 6.1版本模型推理

OpenVINO2021.4+YOLOX目标检测模型部署测试

比YOLOv5还厉害的YOLOX来了,官方支持OpenVINO推理

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档