使用MindStudio完成EAST_ResNet50_vd模型开发

目录


一、MindStudio介绍... 2

二、MindStudio工程创建... 3

1.1 主界面功能介绍... 3

1.2 创建工程... 6

1.3 工程配置... 11

三、模型代码获取... 14

3.1 模型介绍... 14

3.2 添加工程代码... 15

3.3 模型代码获取... 18

3.4 模型权重获取... 19

3.5 推理工具获取... 20

3.6 同步代码... 20

3.7 配置远程环境... 21

四、模型转换... 22

4.1 获取推理权重... 22

4.3 转om模型... 25

五、文本检测... 30

六、总结... 32





本文主要给大家介绍使用MindStudio进行EAST_ResNet50_vd模型离线推理开发,完成图像文本检测,主要内容包括MindStudio安装、MindStudio工程创建、模型介绍与获取、模型转换、模型推理5个部分。

一、MindStudio介绍

MindStudio是一套基于华为昇腾AI处理器开发的AI全栈开发平台,包括基于芯片的算子开发、以及自定义算子开发,同时还包括网络层的网络移植、优化和分析,另外在业务引擎层提供了一套可视化的AI引擎拖拽式编程服务,极大的降低了AI引擎的开发门槛。

本文使用MindStudio版本为:5.0.RC3,MindStudio功能框架如图1所示,集成开发环境包括:工程管理、编译、运行、模型转换、应用开发、精度比对、自定义算子、性能分析、仿真器、Debug、CANN-Toolkit功能。


图1

离线推理开发主要使用的是模型转换功能,将训练好的第三方网络模型可以直接通过离线模型工具导入并转换成离线模型,并可一键式自动生成模型接口,方便开发者基于模型接口进行编程,同时也提供了离线模型的可视化功能。

MindStudio的安装过程可以参考官方指导手册,链接为:

https://www.hiascend.com/document/detail/zh/mindstudio/50RC3/progressiveknowledge/index.html

安装指南部分详细介绍了安装相关步骤,如图2所示。


图2

二、MindStudio工程创建

1.1 主界面功能介绍

首次启动MindStudio会提示是否导入配置,如图3所示,可以选择不导入配置,点击OK进入MindStudio主界面。


图3

MindStudio欢迎界面比较简洁,相关功能如下:

a.工程管理功能,如图4所示,包括新建工程,打开、导入工程。


图4

b.用户设置功能,可以设置主题、字体等,如图5所示,将界面颜色设置为IntelliJ Light。

图5

c.插件管理功能,如图6所示,可以安装、卸载一些常用的插件。


图6

d.学习功能,如图7所示,可以进入到MindStudio用户帮助界面。


图7

1.2 创建工程

使用MindStudio主界面的工程管理功能创建一个新的工程,具体步骤为:

a.点击New Project开始创建一个新的工程,如图8所示。


图8

b.New Project界面如图9所示,选择Ascend App,点击Change进行CANN配置。


图9

c.CANN配置界面如图10所示,点击Remote Connection的+号图标添加远程服务器链接,点击SSH Configurations中的+号,输入远程服务器相关信息,点击OK。


图10

d.如图11所示,点击Remote CANN location中的文件夹图标,选择远程服务CANN安装路径,点击OK确认,点击Finish结束配置。


图11

e.CANN配置结束后会自动同步远程CANN信息,如图12所示。


图12

f.同步完成后自动返回New Project界面,如图13所示,选择ACL Project(Python),点击Next继续。


图13

g.设置工程名称和位置,如图14所示,点击Finish继续。


图14

h.如图15所示,自动打开新建工程,此时会弹出提示信息,点击Close关闭,也可以选择不再提示。


图15

通过以上步骤完成工程创建。

1.3 工程配置

工程创建完成后需要进行相关配置,包括SDK、Deploy。具体步骤如下:

a.如图16所示,点击File->Project Structure进入工程结构配置界面。


图16

b.工程结构界面如图17所示,选择SDKs,点击+号,选择Add Python SDK添加Python解释器。


图17

c.在添加Python解释器界面,如图18所示,选择SSH Interpreter,然后选择Deploy后会自动识别远程Python相关信息,点击OK完成。


图18

d.返回工程结构界面,如图19所示,选择Project,在SDK列表选择Remote Python,点击OK完成。


图19

e.进入Deploy设置界面,如图20所示,点击Tools-Deployment-Configuration。


图20

f.Deploy设置界面如图21所示,选择Deployment,点击远程服务器,点击Mappings标签,输入远程开发映射路径,点击OK完成。


图21

通过以上步骤激活完成工程配置。

1.4 激活远程终端

a.激活远程终端,如图22所示,点击Tools,选择Start SSH session。


图22

b.如图23所示,在弹出的对话框中选择远程服务器,启动Remote Terminal窗口。


图23

三、模型代码获取

3.1 模型介绍

EAST是一个高效准确的场景文本检测器,通过两步进行文本检测:先是一个全卷积的网络直接产生一个字符或者文本行的预测(可以是旋转的矩形或者不规则四边形),然后通过NMS(Non-Maximum Suppression)算法合并最后的结果。参考论文:

https://arxiv.org/pdf/1704.03155.pdf

EAST模型结构如图24所示,主要包括:

(1) 特征提取层:

使用的基础网络结构是PVANet,分别从stage1,stage2,stage3,stage4抽出特征,一种FPN(feature pyramid network)的思想。

(2) 特征融合层:

第一步抽出的特征层从后向前做上采样,然后Concat。

(3) 输出层:

输出一个score map和4个回归的框+1个角度信息,或者输出,一个scoremap和8个坐标信息。


图24

3.2 添加工程代码

完成推理功能需要开发的代码如图25所示,其中包括:

EAST_ResNet50_vd.patch:模型补丁文件

EAST_ResNet50_vd_det.py:模型推理脚本

requirements.txt:工程依赖信息


图25

a.EAST_ResNet50_vd.patch:模型补丁文件主要是将使用gpu关闭,如图26所示。


图26

b. EAST_ResNet50_vd_det.py:模型推理脚本用于推理过程,业务流程及注释如图27所示。


图27

c. requirements.txt:工程依赖信息,如图28所示。


图28

3.3 模型代码获取

在本地终端窗口可以通过以下命令获取模型代码:

git clone -b release/2.5 https://github.com/PaddlePaddle/PaddleOCR.git

cd PaddleOCR

git reset --hard a40f64a70b8d290b74557a41d869c0f9ce4959d5

git apply ../EAST_ResNet50_vd.patch

rm .applications

cd ..

模型代码目录结构如科29所示。


图29

3.4 模型权重获取

模型权重链接为:

https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_east_v2.0_train.tar

本地下载后,解压到EAST_ResNet50_vdcheckpoint目录下,如图30所示。


图30

3.5 推理工具获取

推理工具使用的是 ais_infer,该工具的获取、编译、安装说明链接为:

https://gitee.com/ascend/tools/tree/master/ais-bench_workload/tool/ais_infer

下载后将 ais_infer 工具代码放到本地工程路径下,推理工具目录如图31所示。


图31

3.6 同步代码

整个工程代码结构如图32所示,选中工程名称,点击Tools->Deployment->Upload to将代码同步到远程服务器。


图32

在图33中弹出的对话框中选择远程服务器名称,开始同步文件。


图33

3.7 配置远程环境

在远程终端窗口中需要通过以下步骤配置远程服务器环境

a.进入远程映射目录,命令为:

cd /home/mindstudio_prj/EAST_ResNet50_vd/

b.安装依赖,命令为:

pip3 install -r requirements.txt --user

c.进入ais_infer编译目录,命令为:

cd ais_infer/backend/

d.进行编译,命令为:

pip3 wheel ./

e.安装编译好的python包,命令为:

pip3 install aclruntime-0.0.1-cp37-cp37m-linux_x86_64.whl

f.返回到远程项目目录,命令为:

cd ../../

通过以上步骤完成代码获取以及远程环境配置。

四、模型转换

4.1 获取推理权重

a.首先需要可执行命令将训练权重转为推理权重,创建可执行命令如图34所示,点击Add Configuration。


图34

b.如图35所示,在弹出的命令配置界面点击+号,选择Python。


图35

c.Python命令配置界面如图36所示,需要填入的参数信息如下:

1.Name:可执行命令的名称。

2.Scrip path:可执行脚本,如本次需要执行的是:

EAST_ResNet50_vdPaddleOCR oolsexport_model.py。

3.Parameters:命令参数,如本次的命令参数为:

-c /home/mindstudio_prj/EAST_ResNet50_vd/PaddleOCR/configs/det/det_r50_vd_east.yml -o Global.pretrained_model=/home/mindstudio_prj/EAST_ResNet50_vd/checkpoint/det_r50_vd_east_v2.0_train/best_accuracy Global.save_inference_dir=/home/mindstudio_prj/inference/det_r50_eas

其中-c表示模型配置文件,-o表示用户参数,Global.pretrained_model为模型训练权重路径,Global.save_inference_dir模型推理权重路径。

4.Use specified interpreter:选择Python解释器,如本次选的是Remote Python3.7.5。

配置以上信息后点击OK。


图36

d.执行命令,如图37所示,点击可执行按钮开始执行命令。


图37

e.执行完成后得到推理模型,如图38所示。


图38

4.2 转onnx模型

a.在远程终端使用paddle2onnx工具命令将推理权重转为onnx模型,命令为:

paddle2onnx

--model_dir ../inference/det_r50_eas

--model_filename inference.pdmodel

--params_filename inference.pdiparams

--save_file ../EAST_ResNet50_vd.onnx

--opset_version 11 --enable_onnx_checker True

--input_shape_dict="{'x':[1,3,544,960]}"

成功转出onnx模型如图39所示,模型名称为:EAST_ResNet50_vd。


图39

b.使用onnxsim工具简化onnx模型,onnxsim工具说明链接为:

https://github.com/daquexian/onnx-simplifier

onnxsim命令为:

onnxsim ../EAST_ResNet50_vd.onnx ../EAST_ResNet50_vd_sim.onnx

4.3 转om模型

将onnx转为om模型需要用到MindStudio的模型转换功能,具体步骤如下:

a.打开模型转换功能,如图40所示,点击Model Converter按钮。


图40

b.进入Model Converter界面,如图41所示,点击Model File文件夹图标,然后选择远程环境中的onnx模型,点击OK。


图41

c.开始自动解析onnx模型信息,如图42所示。


图42

d.模型解析完成后,如图43,补全模型转换信息包括如下:

1.Model Name:输出om模型的名称。

2.Target SoC Version:远程环境设备芯片型号,本文环境使用的是Ascend310P3。

3.Output Path:om模型保存路径。

4.Input Format:输入数据的格式,本文模型的输入为NCHW,表示图片格式的数据。

5.Input Nodes:模型输入节点信息,包括输入节点Name、Shape和Type。

6.Output Nodes:可以选择模型输出节点信息。本文使用默认输出节点。

补全模型转换信息后点击Next继续。


图43

e.开始校验模型转换参数,如图44所示


图44

f.校验完成后如图45所示,是否进行数据预处理,本文不需要数据预处理,关闭后点击Next继续。


图45

g.再次确认模型转换命令,如图46所示,点击Finish完成,并开始进行模型转换。


图46

h.模型转换完成后如图47所示,在本地生成om模型。


图47

五、文本检测

获取EAST_ResNet50_vd_sim.om后,可以进行离线推理,步骤如下:

a.创建离线推理命令,如图48所示,点击OK完成,命令参数为:

--image_dir="./PaddleOCR/doc/imgs_en/img_10.jpg"

--det_model_dir="/home/mindstudio_prj/inference/det_r50_eas"

--det_algorithm="EAST"

其中--image_dir表示图片路径,--det_model_dir表示推理权重路径,--det_algorithm表示检测算法。


图48

b.执行推理后,如图49所示,得到推理结果。


图49

c.将推理结果同步到本地,如图50所示,点击Tools->Deployment->Download from。


图50

d.打开推理结果图像,文本检测效果如图51所示。


图51

六、总结

使用MindStudio进行EAST_ResNet50_vd模型图像文本检测过程,相关参考学习资料如下:

1.MindStudio用户手册:

https://www.hiascend.com/document/detail/zh/mindstudio/50RC3/progressiveknowledge/index.html

2.MindStudio开发者社区:

https://bbs.huaweicloud.com/forum/forum-945-1.html

3.MindStudio B站:

https://space.bilibili.com/1611070055

展开阅读全文

页面更新:2024-04-16

标签:模型   离线   权重   界面   命令   代码   功能   工具   工程   信息

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top