目录

一、 模型介绍

二、MindStudio 环境搭建

2.1 MindStudio 软件下载

2.2 MindStudio 软件安装

2.3 MindStudio 环境搭建

三、模型获取

3.1 模型介绍

3.2 获取源码

3.3 安装依赖

四、数据预处理

4.1 添加数据预处理脚本

4.2 设置可执行命令。

五、模型转换

5.1 转 onnx 模型

5.2 转 om 模型

六、模型推理

6.1 获取推理工具

6.2 进行模型推理

七、模型精度验证

7.1 数据后处理

八、性能测试

九、总结

一、模型介绍

目前,现有的轨迹预测算法主要还是聚焦在对行人之间交互的建模,轨迹预测通常只使用行人之间两两交互的LSTM预测。StarNet是一个行人之间的全局交互轨迹预测,基于神经网络StarNet的行人轨迹交互预测算法,通过在三维 LiDAR数据的背景下重新检查目标检测系统的设计,从而来更好地匹配数据形态和自动驾驶汽车感知的需求,大致思路为每个时刻所有障碍物的位置可以构成一张静态的“地图”,随着时间的变化,这些静态地图就变成了一张带有时序信息的动态图。这张动态图中记录了每个区域内的障碍物运动信息,其中运动信息是由所有障碍物一起影响得到的,而非单独地两两交互形成。对于每个障碍物的预测阶段,只要根据该障碍物的位置,就可以在这张时序地图中查询该区域在历史时刻的障碍物运动信息。通过“共享全局交互地图+个体查询”的方式,就可以做到计算全局交互以及压缩计算开销。StarNet检测器模型能在较低的推理成本下达到与现有技术一样的精确度,在类似的推理成本下甚至能做到更精确。

开发流程如下图所示

二、MindStudio 环境搭建

通过 MindStudio 官网介绍可以学习了解 MindStudio 的功能,以及按照 MindStudio 用户手册进行安装和使用。

官网链接:https://www.hiascend.com/zh/software/mindstudio

用户手册:

https://www.hiascend.com/document/detail/zh/mindstudio/50RC2/prog ressiveknowledge/index.html

2.1 MindStudio 软件下载

在官网首页中点击“立即下载”,如下图。

点击下载之后如图

然后我们进入版本选择界面,可以根据自己的操作系统、安装方式选择不同的软件包,我们这里选择的是 MindStudio_5.0.RC2_win.exe,进行下载安装。

2.2 MindStudio 软件安装

双击打开下载好的 MindStudio_5.0.RC2_win.exe 软件包,进入安装流程:

欢迎界面,点击“Next”

选择安装路径,我们使用的是默认安装路径,然后点击“Next”。

安装配置,我们只勾选了创建桌面快捷方式,和以工程方式打开文件夹添加到右键菜单中。然后点击“Next”。

启动菜单文件夹我们使用默认配置,点击“Install”,程序进入自动安装步骤。

安装完成后点击“Finsh”完成安装。

2.3 MindStudio 环境搭建

通过桌面快捷方式启动 MindStudio。

选择不导入配置,点击“OK”

Projects标签用于工程打开、创建等。

Customize标签用于IDE 配置,包括界面、字体大小等。

Plugins标签用于管理插件的安装、删除等。

Learn MindStudio 标签可以通过点击“Help”进入官方社区获取帮助。在 Projects 标签下点击“New Project”创建一个新的工程。

选择 Ascend App,输入工程名、和工程目录,点击“Change”选择或者添加 CANN 版本。

点击 Remote CANN Setting 对话框中的加号

点击 SSH Configurations对话框,然后点击其中的加号

填写框中的服务器信息,点击“Test Connection” 弹出连接成功对话框。依次点击“OK”完成 Remote Connection 配置。

点击文件夹图标,在弹出的对话框中选择 CANN 安装路径,点击“OK”。

点击“Finish”。

开始同步远程 CANN 版本资源。

同步完成后点击“Next”。

选择 ACL Project,点击“Finish”。

此时成功创建了一个空的工程。

点击“Tools”->“Start SSH session”。选择远程环境,启动远程终端窗口。

选择自己的服务器

点击“Tools”->“Deployment”->“Configuration”。

按图所示,配置远端映射路径。依次点击“OK”完成配置。

按照下图,配置项目SDK。

点击“SDKs”,点击加号,点击“Add Python SDC...”,

点击“SSH Interpreter”,自动识别远程 Python 环境信息,点击“OK”。

点击“Project”,选择创建的 SDK,点击“OK”。

点击“Modules”->“Dependence”,选择创建的 SDK,点击“OK”。

点击“Tools”-> “Deployment”->“Automatic Upload”。

选择远程服务器,可自动上传修改并保存的文件。 至此 MindStudio 开发环境搭建完成。

三、模型获取

3.1 模型介绍

本文开发模型为基于 PaddlePaddle 的模型库 PaddleOCR 中 star_net 模 型

(https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/)的英文识别模型,star_net 的识别模块是基于 文本识别算法 SVTR 优化。SVTR 不再采用 RNN 结构,通过引入 Transformers 结 构更加有效地挖掘文本行图像的上下文信息,从而提升文本识别能力。

3.2 获取源码

a.在本地终端中通过 git 命令获取源码,参考命令如下。

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

cd PaddleOCR git reset --hard a40f64a70b8d290b74557a41d869c0f9ce4959d5

cd ..

b.修改模型配置文件 配置不使用 gpu 和英文字母字典路径,如下图。Gpu:true改为false

修改完成后将 PaddleOCR 同步到远程服务器,如下图。

3.3 安装依赖

a.添加依赖文件“requirements.txt”

b.在远程终端窗口通过 pip 命令安装依赖

执行命令如下:pip3 install -r requirements.txt [--user],普通用户安装需添加--user参数。通过以上步骤,成功获取star_net模型的源代码框架,以及配置运行依赖环境。

四、数据预处理

4.1 添加数据预处理脚本

在工程中添加数据预处理脚本,该脚本主要对图片进行归一化操作并转成二 进制文件保存如下图所示。

4.2 设置可执行命令。

a.如下图所示,点击下拉按钮,选择“Edit Configurations...”,

b.如下图所示,点击加号,选择“Ascend App”。

c.如下图所示,输入命令名称,选择可执行脚本,点击“OK”。

Deployment:部署

Executable:所执行的脚本文件

Command Argumentds:需要执行的命令参数

Environment Variables:环境变量

d.如下图所示,添加命令参数,点击“OK”。

--config=PaddleOCR/configs/rec/rec_r34_vd_tps_bilstm_ctc.yml --opt=bin_data=./pre_bin

config:模型配置文件。

opt:bin文件保存路径。

e.检查界面配置参数,没有问题则进入下一个配置界面

通过以上步骤,完成了数据预处理的工作,生成的预处理数据保存在 pre_bin 目录下。

五、模型转换

5.1 转 onnx 模型

a. 获取推理权重文件,解压到本地 inference 目录下,并上传到远程服务器,如下图所 示。

b.在远程终端执行转 onnx 命令,并将生成的 onnx 模型拉取到本地,如下图 所示,参考命令如下:

paddle2onnx --model_dir ./inference/rec_starnet/

--model_filenam inference.pdmodel

--params_filename inference.pdiparams

--save_file ./inference/det_onnx/starnet.onnx --opset_version=12

--enable_onnx_checker True

--input_shape_dict="{'x':[1,3,32,100]}"

--model_dir:配置包含Paddle模型的路径

--model_filenam:配置位于--model_dir下储存网络结构的文件名称。当且仅当所有模型参数被保存在一个单独的二进制文件中,他才需要被指定。

--params_filename:配置位于--model_dir下存储模型参数的文件名称。当且仅当所有模型参数被保存在一个单独的二进制文件中,他才需要被指定。

--save_file:指定转换后的模型保存目录路径。

--enable_onnx_checker:配置是否检查导出为ONNX模型的正确性,若指定为True,需要安装onnx >= 1.7.0

--input_shape_dict:配置输入的shape

通过以上步骤,成功生成并获取 onnx 模型:starnet.onnx。

5.2 转 om 模型

下面使用 MindStudio 的模型转换功能将 onnx 模型转成 om 模型。

a.如下图所示,点击“Model Converter”按钮。

b.在弹出的Model Converter 窗口中选择Model File,点击“OK”。

c.自动解析模型中,如下图。

d.解析完成后,设置模型名称、soc 版本、om 模型生成目录、通讯模型的 Input Format、Shape、Type 信息,点击“Next”。

Modle File:之前所生成的onnx模型文件存放路径

Model:模型名称

Target SoC Version:目标soc版本

Output Path:在本地输出的om模型路径存放

Input Format:输入的格式

Input Nodes:输入节点

Output Nodes输出节点

e.检查界面配置参数,没有问题则进入下一个配置界面。

f.检查完成后点击“Next”。

g.检视生成的 atc 命令,确认无误后点击“Finish”

h.模型转换成功后,如下图所示。

通过以上步骤,使用 MindStudio 的模型转换功能成功将 onnx 模型转成 om 模型:starnet.om。

六、模型推理

6.1 获取推理工具

我们使用 ais-infer 工具进行推理,ais-infer 工具获取及使用方式请查看 ais_infer 推理工具使用文档,链接:

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

a. 在本地终端命令中通过 git 获取推理工具代码,命令如下:

git clone https://gitee.com/ascend/tools.git

b.

将starnet\tools\ais-bench_workload\tool\ais_infer

目录下的ais_infer.py文件和 frontend 文件夹复制到工程根目录下, 并将修改的文件依次上传到远程服务器,如下图所示。

c.编译并安装 aclruntime 包,如下图所示,命令如下,

cd tools/ais-bench_workload/tool/ais_infer/backend/

pip3 wheel ./

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

通过以上步骤,成功获取 ais_infer 工具,并安装了 aclruntime。

6.2 进行模型推理

a.创建 results 目录用来保存推理结果,并上传到远程服务器。

生成后将他进行同步

b. 添加 ais_infer 的可执行命令,点击“OK”,如下图所示。

Deployment:部署

Executable:所执行的脚本文件

Command Argumentds:需要执行的命令参数

Environment Variables:环境变量

命令如下:

tools/ais-bench_workload/tool/ais_infer/ais_infer.py --model=starnet.om --input=./pre_bin/ --output=./ais_out

model:om模型路径。

input:bin文件路径。

output:推理结果保存路径。

c.执行 ais_infer 命令,完成后在远程服务器上生成推理结果。

d.须将远程生成的结果 load 到本地,否则在执行其他命令进行同步的时候 会删除

通过以上步骤成功获取了推理结果。

七、模型精度验证

7.1 数据后处理

a.添加数据后处理脚本。

c. 添加后处理命令。点击“OK”。

命令:

--config=./configs/rec/rec_r34_vd_tps_bilstm_ctc.yml   --opt=results=ais_out/2022_10_26-23_00_00

config:模型配置文件。

opt:推理结果路径。

c.执行后处理命令。

d. 后处理执行完成后,打印的推理结果如下图,具体为:Infer Results:

八、性能测试

由于精度验证使用的是源码提供的样例图片,需要使用 ais_infer 工具的纯 推理功能进行性能测试。

a. 创建性能测试命令,如下图所示。

命令:python3.7 ais_infer.py --model starnet.om --batchsize 1 --loop 10

model:om模型路径。

loop:推理次数。

batchsize:om模型的batch。

b. 执行性能测试命令,如下图所示。

c. 性能测试结果如下图所示

九、总结

本文主要介绍使用 MindStudio 全流程开发工具链,将 PaddlePaddle 模型转 成 om 模型,并在昇腾环境上进行推理的端到端流程。在使用 MindStudio 过程中 也遇到过很多问题和不懂的地方,除了参考官方指导文档外,帮助更多的还是开 发者社区,如下图所示,推荐大家多看些经验分享,写的很详细也很有帮助。 MindStudio 社区链接为:

https://bbs.huaweicloud.com/forum/forum-945-1.html?filterCondition=1。 十、FAQ

在使用 MindStudio 过程中,发现执行完远程命令后,会出现如下图所示的 错误,该错误指同步远程文件到本地时出现了错误,经过定位发现项目中包含带 有中文的文件名,因此需要将带有中文的文件名称改为英文文件名即可解决该问 题。

浙江工业大学大学-使用MindStudio进行starnet_resnet34_vd模型在昇腾环境离线推理-图文案例相关推荐

  1. 浙江工业大学计算机网络历年卷,浙江工业大学2008A计算机网络.doc

    浙江工业大学2008A计算机网络 浙江工业大学期终考试命题稿 2007/2008学年第二学期 课程名称计算机网络 基础使用班级全校教师份数6学生份数440命题人王子仁审核人命题总页数 6 页每份试卷需 ...

  2. 843c语言真题,浙江工业大学 843 数据结构(c语言版)2008真题回忆 +考试技巧

    浙江工业大学 843 数据结构(c语言版)_2008真题回忆 试卷满分150分 一共两个题型 一-简答题(10*10=100分) 1.怎样评价一个算法(5个方面,严老的书上有的) 2.树和森林的转画( ...

  3. 浙江工业大学计算机技术专业考研经验分享帖

    浙江工业大学复试经验分享 自我介绍 初试复习 复试流程 复试感想 心态分享 自我介绍   我,本科双非二本,软件工程专业,大学四年学业成绩在专业前十,拿过奖学金,参加过一些没啥含金量的比赛,不爱且不怎 ...

  4. 浙江工业大学计算机应用基础,本科教学-浙江工业大学计算机科学与技术.doc

    本科教学-浙江工业大学计算机科学与技术 本科教学-教学团队 计算机基础课程群教学团队 团队负责人:王卫红 课程群建设责任教师:李曲 团队教师: 王卫红.黄伟.戴小春.刘志.曹斌.程珍.周乾伟.刘端阳. ...

  5. 浙江工业大学计算机专业是几本,浙江工业大学是几本

    下面是出国留学网整理的"浙江工业大学简介",欢迎阅读参考,更多有关内容请密切关注本网站高考栏目. 浙江工业大学简介 浙江工业大学是一所综合性的浙江省属重点大学,始建于1953年,其 ...

  6. 浙江工业大学电子计算机专业,浙江工业大学计算机专业怎么样

    技校网专门为您推荐的类似问题答案 问题1: 沈阳工业大学的计算机专业怎么样? 这两个都是二本的专业,你要是问这个,你应该是本省的吧,二本的就你问的这两个专业在沈阳的校区,其他的二本专业全在辽阳校区了, ...

  7. 【调剂】2022浙江工业大学宣琦课题组招收研究生(有调剂名额)

    公众号[计算机与软件考研]每天都会发布最新的计算机考研调剂信息! 点击公众号界面左下角的调剂信息或者公众号回复"调剂"是计算机/软件等专业的所有调剂信息集合,会一直更新的. 导师信 ...

  8. 【调剂】浙江工业大学信息工程学院宣琦课题组诚招2020级研究生

    点击文末的阅读原文或者公众号界面左下角的调剂信息或者公众号回复"调剂"是计算机/软件等专业的所有调剂信息集合,会一直更新的. 导师信息: 宣琦,男,现任浙江工业大学 信息工程学院 ...

  9. 21年浙江工业大学计算机考研经验帖

    前言:本人创了22浙工大考研交流群,群号631925562. 如果有任何问题欢迎大家加群提问,上岸的学长学姐会尽可能解答,希望各位小可爱可以把群推给身边要考浙工大的同学们. 一. 本人情况 本科双非, ...

最新文章

  1. 《裂变》作者爆料:欺世盗名者绝非唐骏一人
  2. android studio 控件提示大写
  3. mybatis自动扫描注解
  4. CSS中list-style详解
  5. 组合和聚合的区别,通俗易懂。
  6. jquery获得下拉框的值
  7. Tensorflow No module named ‘tensorflow.examples.tutorials‘解决办法,有用
  8. simpledateformat格式_如何使用SimpleDateFormat?
  9. 复习vue笔记第一天
  10. 基于多视角学习和个性化注意力机制的新闻推荐(附论文下载链接)
  11. 七:动态规划-数字三角形
  12. Node.js快速文件服务器(通过HTTP的静态文件)
  13. 《Web漏洞防护》读书笔记——第2章,SQL注入防护
  14. 分享:第十届“泰迪杯”数据挖掘挑战赛优秀作品--A1-基于深度学习的农田害虫定位与识别研究(一)
  15. logo是啥_logo什么意思_LOGO是什么意思
  16. Fang Fang HDU - 5455 (思维题)
  17. python求小于n的最大素数_小于或等于n的素数
  18. python抽奖概率设计_python 抽奖概率
  19. 别把激励员工变成收买员工
  20. 游戏音效有哪些分类你知道吗

热门文章

  1. 0x000000f怎么修复 win10_天空win10恢复出厂设置报错0XC000000F怎么办?
  2. 脑洞大开,MC播妞在线喊麦!这个语言厉害了!
  3. IT行业学什么最好?看到最后一条,我才终于明白!
  4. QT嵌入式软键盘(基于谷歌拼音源码、多平台)
  5. LTE:LTE双连接技术简介
  6. 魔兽地图《暗世界》攻略 新手向~
  7. POST方式导出Excel
  8. 鼠标屏幕取词技术的原理和实现
  9. 计算机启动完成后黑屏,电脑开机启动完成后黑屏起因
  10. 战狼团之华为鸿蒙,华为鸿蒙生态加速 市场相关板块再度活跃