使用MindStudio进行OSNet模型的onnx推理

使用MindStudio进行OSNet模型的onnx推理

本次实验在Mindstudio上开展,本实验对应的 CANN 版本为 5.0.3,请先按照官网教程,配置好 Mindstudio 与其所需依赖。本文使用Mindstudio中的ATC工具,对OSNet的pytorch模型转换成适配昇腾AI处理器的离线模型,并进行精度分析。Mindstudio是一款华为旗下的含算子、模型、开发一体的工具,内部集成了众多开发与推理功能模块,可以使我们更方便的进行开发推理等工作。

一、概述

参考论文:[OSNet 论文](https://arxiv.org/abs/1905.00953) 作为一个实例级的识别问题,行人再识别(ReID)依赖于具有识别能力的特征,它 不仅能捕获不同的空间尺度,还能封装多个尺度的任意组合。这些同构和异构尺度的 特征为全尺度特征。本文设计了一种新颖的深度 CNN,称为全尺度网络(OSNet),用于 ReID 的全尺度特征学习。这是通过设计一个由多个卷积特征流组成的残差块来实现的, 每个残差块检测一定尺度的特征。重要的是,引入了一种新的统一聚合门用输入依赖 的每个通道权重进行动态多尺度特征融合。为了有效地学习空间通道相关性,避免过 拟合,构建块同时使用点卷积和深度卷积。通过逐层叠加这些块,OSNet 非常轻量,可 以在现有的 ReID 基准上从零开始训练。尽管 OSNet 模型很小,但其在 6 个 Reid 数据 集上到达了 SOTA 结果。

二、推理环境准备

1、配置conda环境、安装依赖包

依赖名称

版本

ONNX

1.7.0

torch

1.8.1

TorchVision

0.9.1

numpy

1.18.5

Pillow

7.2.0

Opencv-python

4.2.0.34

protobuf

3.13.0

onnx-simplifiler

0.3.6

isort

4.3.21

三、执行推理

注:本实验的脚本来源:https://www.hiascend.com/zh/software/modelzoo/detail/1/43a754e306c6461d86dafced5046121f

用户可以下载获取。

3.1创建工程

点击File->New->Project:

进入以下界面:

Name为自己的项目名称,CANN Version为本机Mindstudio所对应的CANN版本,Project Location为项目地址,读者根据自己实际情况进行填写。

选择Pytorch Project,点击Finish完成项目创建。

3.2从开源代码仓获取OSNet源码:

在终端输入代码:

git clone https://github.com/KaiyangZhou/deep-person-reid.git

获取源码,并cd进入文件夹:

cd deep-person-reid/

安装源码所需依赖:

pip install -r requirements.txt

运行setup脚本下载torchreid:

python3.7 setup.py develop

3.3数据预处理

从网上下载数据集压缩包,本文提供百度网盘下载地址:

[Market1501数据集(百度网盘下载,提取码:me3q)](https://pan.baidu.com/s/1Nl8tMEvq-MwNGd1pG4_6bg)

本步骤是为了把输入格式从图片形式转为二进制info文件,用于om模型的输入。

把数据集解压到deep-person-reid文件夹里,随后运行脚本:market1501_torch_preprocess.py,主要过程解释如下:

对bounding_box_test测试集与query数据集进行处理,把原始输入的图片的JPG格式,输出为二进制文件格式—bin文件。

选中所执行脚本,点击鼠标右键,进入Modify Run configuration

对bounding_box_test测试集处理

对query数据集处理

运行框内主要参数解释:

参数名称

解释

Script path

从文件夹中选中需要执行的脚本文件

Parameters

脚本运行所需参数,本例中分别为bounding_box_test文件夹相对路径,bin文件存放文件夹gallery_prep_dataset相对路径;对query数据集处理时的参数为query文件夹的相对路径和bin文件存放的文件夹query_pre_data的相对路径

Python interpreter

运行脚本所使用的Python解释器

运行成功后:

运行结果显示

接下来执行生成数据集信息脚本,生成数据集信息文件。即分别一步所生成的gallery_prep_dataset文件夹与query_prep_dataset的bin文件转换为数据集信息文件。

对gallery_prep_dataset文件夹处理

对query_prep_dataset文件夹处理

Parameters里的参数为:第一个参数为模型输入的类型,第二个参数为生成的bin文件路径,第三个为输出的info文件,第四、第五个为宽高信息。脚本运行结果生成info文件。

3.4模型转换

本文模型需要做两步转换,即先有path->onnx,再有onnx->om

3.4.1由path转换onnx

本文提供两种方式下载训练好的权重文件如下:

[OSNet训练pth权重文件(google下载)](https://drive.google.com/file/d/1vduhq5DpN2q1g4fYEZfPI17MJeh9qyrA/view?usp=sharing)

[OSNet训练pth权重文件(百度网盘下载,提取码:gcfe)](https://pan.baidu.com/s/1Xkwa9TCZss_ygkC8obsEMg)

此步由pytorch完成转换,执行转换脚本:pth2onnx.py

Paremeters内填入参数分别为参数文件名与生成的onnx模型文件名:

osnet_x1_0_market_256x128_amsgrad_ep150_stp60_lr0.0015_b64_fb10_softmax_labelsmooth_flip.pth osnet_x1_0.onnx

得到onnx模型文件后,在终端输入:

python3.7 -m onnxsim osnet_x1_0.onnx osnet_x1_0_bs1_sim.onnx –input-shape 1,3,256,128

利用之前安装的依赖onnx-simplify对onnx模型进行简化,生成batch_size=1的静态模型:onnxsim osnet_x1_0.onnx。

3.4.2onnx转换om

此步转换使用Mindstudio提供的ATC转换工具,ATC工具功能架构如下图所示:

用户可以将开源框架网络模型如本文的OSNet模型,通过ATC工具转换为适配昇腾AI处理器的离线模型也可以将开源框架网络模型转换后的离线模型转成json文件,方便文件查看。

点击导栏行的Ascend->Model Converter;或者点击Mindstudio的功能栏:

进入以下界面:

在Model File中选中需要转换的onnx模型,Model Name为模型名称,Target SoC Version为需要转换成适配的芯片类型,image为输入图片的batch_size。点击图中红框的图标,可以生成可视化模型流程框架:

用户可以在此了解每层的结构与参数。

点击ok,next,即可进行模型转换:

点击Finish完成模型转换,红框里分别是om模型存放的服务器地址与本地地址。

3.5执行离线推理

推理benchmark工具用来针对指定的推理模型运行推理程序,并能够测试推理模型的性能(包括吞吐率、时延)和精度指标。benchmark的安装包可以通过benchmark工具用户指南获取。benchmark工具有两个使用场景,分别是:

纯推理场景

该场景仅用来测试推理模型的性能指标,即模型执行的平均时间和平均吞吐率。

该场景无需准备推理数据及数据集文件,只需要准备经过ATC转换后的模型文件即可推理。

推理场景

该场景除了测试性能指标之外,还可以测试模型的精度指标。

该场景需要准备经过预处理的推理数据及数据集文件和经过ATC转换后的模型文件才能推理

本文所使用的场景是推理场景,即利用上文所处理的info数据以及转换的om模型进行推理:

在终端输入命令:

a. 设置环境变量:

source /usr/local/Ascend/ascend-toolkit/set_env.sh

b. 增加benchmark.{arch}可执行权限:

chmod u+x benchmark.x86_64

c. 执行离线推理:

#对query_prep_bin.info进行处理

./benchmark.x86_64 -model_type=vision -device_id=0 -batch_size=1 -om_path=osnet_x1_0_bs1.om -input_text_path=./query_prep_bin.info -input_width=128 -input_height=256 -output_binary=False -useDvpp=False

主要参数解释如下:

  • -model:为ONNX模型文件。
  • -framework:5代表ONNX模型。
  • -output:输出的OM模型。
  • -input_format:输入数据的格式。
  • -input_shape:输入数据的shape。
  • -log:日志级别。
  • -soc_version:处理器型号。

执行成功后:

3.6精度验证

执行osnet_metrics_market1501_bs1.py脚本:

Parameters参数填入:result/dumpOutput_device0/ result/dumpOutput_device1/ ./ result_bs1.json,运行脚本执行精度验证,结果如下所示:

OSNet开源代码仓精度(https://kaiyangzhou.github.io/deep-person-reid/MODEL_ZOO)

osnet_x1_0 R1=94.2%,mAP=82.6%

本次实验所得代码精度:R1=94.3,mAP=82.5

R1比代码仓结果略高,mAP下降在1%范围之内,故精度达标。

F&Q

1. 在数据预处理时,执行market1501_torch_preprocess.py脚本时会出现如下错误:

原因是把脚本文件置于数据集文件夹中,把脚本文件转移到deep-person-reid文件夹下即可。

2. 在执行精度验证脚本osnet_x1_0_metrics_market1501.py时会出现如下错误

原因是没有进行环境变量的配置,在终端输入代码:

source env.sh

即可。

在项目上有其它问题的也可以登录昇腾论坛,在帖子里提出自己关于项目或者Mindstudio的疑文(https://www.huaweicloud.com/s/JU1pbmRTdHVkaW_mkK3lu7ol/t_60_p_1),会有华为内部技术人员对其进行解答,帮助你更好使用MindStudio。

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
用户投稿
上一篇 2022年7月3日 22:03
下一篇 2022年7月3日 22:04

相关推荐

  • 分享4条发微商朋友圈的方法(微商朋友圈应该怎么发)

    对于微商朋友来说,朋友圈的重要性不言而喻了。 那么微商的朋友圈到底该怎么发呢? 为什么同样是经营一个朋友圈,有的微商看起来逼格满满,实际效果也不错;而有的却动都不动就被屏蔽甚至拉黑…

    2022年11月27日
  • 存储过程语法(sql server存储过程语法)

    今天小编给各位分享存储过程语法的知识,其中也会对sql server存储过程语法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! oracle存储过程基本语法…

    2022年11月26日
  • 什么是推广cpa一篇文章带你看懂CPA推广渠道

    CPA渠道 CPA指的是按照指定的行为结算,可以是搜索,可以是注册,可以是激活,可以是搜索下载激活,可以是绑卡,实名认证,可以是付费,可以是浏览等等。甲乙双方可以根据自己的情况来定…

    2022年11月25日
  • 直播带货详细脚本(直播文案策划怎么写)

    短视频运营策划方案怎么写?涉及哪几个方面? 我在网上看到好多千篇一律的文章,关于【短视频运营策划方案】这一块,基本都是在讲账号的内容本身。 你内容做得再好,却不掌握算法的规律,能有…

    2022年11月25日
  • 抖音直播带货有哪些方法技巧(抖音直播带货有哪些痛点)

    如今抖音这个短视频的变现能力越来越突显了,尤其是在平台上开通直播,更具有超强的带货属性,已经有越来越多的普通人加入到其中了。不过直播带货虽然很火,但是也不是每个人都能做好的,那么在…

    2022年11月24日
  • 科比19岁女儿遭自称与她生“科比式孩子”男子跟踪骚扰

    极目新闻记者王亮亮黄佳琪 据福克斯新闻网报道,当地时间11月21日,已故篮球巨星科比·布莱恩特的长女娜塔莉亚·布莱恩特21日向法院提交临时限制令,声称这位32岁的前科从十几岁起就骚…

    2022年11月24日
  • 锐龙97900x参数规格跑分评测 锐龙97900x属于什么档次

    锐龙9 7900X是锐龙7000系列处理器中性能顶尖的型号之一,它采用了这一代标配的zen4架构和5nm制程工艺,那么它具体的参数跑分如何,在电脑上世纪发挥怎么样呢,下面就来看看锐…

    2022年11月24日
  • 免费清理c盘的软件(清理c盘空间不影响系统)

    电脑用久了慢如龟速,还卡顿,这最大的原因啊就是C盘空间不足造成的。 即使电脑配置再好,或者硬盘再快,如果长时间没有打扫C盘,打开文件或者稳定之类的,都卡得让人头大。 这时候呢不要去…

    2022年11月24日
  • 明查|美国新冠后遗症患者中有16%症状严重以致无法工作?

    点击进入澎湃新闻全球事实核查平台 速览 – 网传数据比例无权威信源佐证,该比例有可能是结合了美国疾病防控中心和布鲁金斯学会的数据得出,但这两个机构的调研目的和样本都不同…

    2022年11月24日
  • pdf虚拟打印机(添加pdf虚拟打印机)

    本文主要讲的是pdf虚拟打印机,以及和添加pdf虚拟打印机相关的知识,如果觉得本文对您有所帮助,不要忘了将本文分享给朋友。 pdf虚拟打印机具体是什么功能? 电脑虚拟打印机的功能有…

    2022年11月24日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息