使用MindStudio进行ReID模型ONNX推理

ReID ONNX推理

本次实验在MindStudio软件上进行,首先用户需要按照教程依次配置python环境,MinGW依赖,Java依赖,安装Cmake。MindStudio是一套基于华为自研昇腾AI处理器开发的AI全栈开发工具平台,提供用户在AI开发所需的一站式开发环境,支持模型开发、算子开发以及应用开发三个主流程中的开发任务依靠模型可视化、算力测试、IDE本地仿真调试等功能,极大的提高了用户的开发效率,相比于很多用户不熟悉服务器的换进配置和命令形式,MindStudio采用菜单栏的形式简化了所有的命令操作,以可视化的操作让用户快速上手。同时MindStudio的社区活跃度非常高,在提出一个issue后,很快可以得到开发者的回复,方便解决我们其中遇到的问题。

一、概述

随着深度卷积神经网络的不断改进,行人重识别领域也有了很大的进步,但大多数的SOTA的算法都是设计了很复杂的网络结构和融合了多支路的特征。ReID模型则是一个结合了近些年来在行人重识别(Person ReID)算法中的一些训练技巧产生的Baseline,这些训练技巧包括Warmup Learning Rate、Center Loss、Last Stride等,使得模型在Market1501数据集上达到了94.5% rank-1以及85.9%mAP。

二、服务器端推理环境准备

1、 从下面链接下载Pytorch Onnx推理项目源代码仓

ATC ReID (FP16)- 昇腾社区 (hiascend.com)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

2、 将下载后的压缩包上传到310服务器,并解压,模型文件存储在ReID_for_ Pytorch目录中

可通过scp命令或xshell等软件。

3、 使用下面命令下载ReID原仓库代码到当前目前中

git clone https://github.com/michuanhaohao/reid-strong-baseline

4、 当前目录结构

编辑切换为居中

添加图片注释,不超过 140 字(可选)

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

4.1、深度学习框架

CANN == 5.1.RC1

torch == 1.8.0

torchvision == 0.9.0

onnx == 1.7.0

4.2、python第三方库

numpy == 1.20.3

Pillow == 8.2.0

opencv-python == 4.5.2.54

yacs == 0.1.8

pytorch-ignite == 0.4.5

6、 pth模型文件已经在下载的压缩包中。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

7、 准备数据集

本推理模型使用Market1501数据集的测试集,请用户自行获取该数据集,上传并解压数据集到服务器任意目录,这里我将数据集目录放在了/opt/npu目录下。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

三、客户端Mindstudio

3.1 安装和配置环境

按照Mindstudio用户手册中的安装指南—>安装操作来安装Mindstudio。

推理环境在远端服务器上已经配置完成。(安装教程 )

3.2 创建工程

编辑切换为居中

添加图片注释,不超过 140 字(可选)

选择Ascend App 项目

编辑切换为居中

添加图片注释,不超过 140 字(可选)

其中CANN版本应选择远端服务器,点击change

编辑切换为居中

添加图片注释,不超过 140 字(可选)

添加远程服务器

编辑切换为居中

添加图片注释,不超过 140 字(可选)

填写远端服务器信息,测试连接,连接成功后,选择CANN目录。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

点击完成。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

等待本地同步远端服务器CANN文件。同步成功后,选择ACL Project(python)项目,点击完成,完成新建项目。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

配置项目结构

编辑切换为居中

添加图片注释,不超过 140 字(可选)

选择add python SDK

编辑切换为居中

添加图片注释,不超过 140 字(可选)

选择ssh interpreter

编辑切换为居中

添加图片注释,不超过 140 字(可选)

添加远程服务器

编辑切换为居中

添加图片注释,不超过 140 字(可选)

选择python解释器

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

配置本地文件夹与远程服务器映射

编辑切换为居中

添加图片注释,不超过 140 字(可选)

从远端服务器拉取代码

编辑切换为居中

添加图片注释,不超过 140 字(可选)

拉取代码成功

编辑切换为居中

添加图片注释,不超过 140 字(可选)

数据预处理

数据预处理将原始数据集转换为模型输入的数据,使用ReID_preprocess.py(找到该文件,然后右键选择Modify Run Configuration)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

gallery同理也是同样的操作,再产生后gallery信息后,可在MindStudio命令控制台,将预先产生prep_dataset_gallery内的文件移动到prep_dataset_query目录。

数据预处理成功

编辑切换为居中

添加图片注释,不超过 140 字(可选)

生成JPEG图片输入info文件,使用benchmark推理需要输入图片数据集的info文件,用于获取数据集。使用gen_dataset_info.py脚本,输入已经获得的图片文件,输出生成图片数据集的info文件。

第一个参数为生成的数据集文件格式,第二个参数为预处理后的数据文件的相对路径,第三个参数为生成的数据集文件保存的路径。运行成功后,在当前目录中生成prep_bin.info。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

运行ReID_pth2onnx文件将pth文件导出为onnx文件

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

onnx 转om(点击AscendModel Converter)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

转换om模型成功后,使用mindstudio remote终端执行benchmark推理

启动ssh session,切换conda环境、工作目录

编辑切换为居中

添加图片注释,不超过 140 字(可选)

使用Benchmark工具进行推理,配置bemchmark工具需要的环境

编辑切换为居中

添加图片注释,不超过 140 字(可选)

执行benchmark命令获得om模型的吞吐率

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

推理成功,需要对推理结果进行后处理,通过ReID_postprocess.py进行后处理得到推理精度

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

其余的batch_size也是同样的操作,得到的结果如下表1所示,official为官方提供的精度。

输出结果如表1所示:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

​得到的om离线模型推理在mAP和Rank-1评价指标上精度与该模型github代码仓上公布的精度对比,精度下降在1%范围之内,故精度达标。

310执行完毕,经该模型迁移至710,将上述流程在Ascend710上在执行一遍

精度和性能均达标。

四、FAQ

Q:如果你仅从Asc end/modelzoo 拉取你的项目,通常会出现没有benchmark软件

A:所以还是建议下载每个项目安装包的形式来获取项目代码,以ReID模型为例,链接如下ATC ReID (FP16)- 昇腾社区 (hiascend.com) 。

Q:当出现下面的问题时,需要为其增加环境设置

编辑切换为居中

添加图片注释,不超过 140 字(可选)

A:使用下面的命令

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

Q: 依据下面方式配置python代码运行环境,其实使用的并不是虚拟环境,而是base环境

编辑切换为居中

添加图片注释,不超过 140 字(可选)

A: 目前找到的解决方式是右键,然后点击Modify Run Configuration,配置python虚拟环境

编辑切换为居中

添加图片注释,不超过 140 字(可选)

Q:类似上一问题,使用MindStudio运行文件时,每次都会和服务器进行文件同步,所以容易导致的问题时,当本地任何文件和服务器有差异时,会强制性将其变化为一致,导致受影响的文件很大。除非你的操作是一次性成功的。

A:希望开发者和社区能够注意到这一点。另外可以增加一个功能是可选择性的下载服务器的文件,而不是一次性只能下载全部的文件。

五、从昇腾社区获得更多帮助

开发者在使用 MindStudio或进行算子开发过程中遇到任何问题,都可以来昇腾社区获得更多的帮助。

昇腾官网:https://www.hiascend.com/

昇腾社区:https://bbs.huaweicloud.com/

昇腾论坛:https://bbs.huaweicloud.com/forum/forum-726-1.htm

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值