使用MindStudio完成EASTResNet50vd模型开发
目录
一、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用户帮助界面。
图71.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个坐标信息。
图243.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所示。
图283.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所示。
图293.4 模型权重获取
模型权重链接为:
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_east_v2.0_train.tar
本地下载后,解压到EAST_ResNet50_vdcheckpoint目录下,如图30所示。
图303.5 推理工具获取
推理工具使用的是 ais_infer,该工具的获取、编译、安装说明链接为:
https://gitee.com/ascend/tools/tree/master/ais-bench_workload/tool/ais_infer
下载后将 ais_infer 工具代码放到本地工程路径下,推理工具目录如图31所示。
图313.6 同步代码
整个工程代码结构如图32所示,选中工程名称,点击Tools->Deployment->Upload to将代码同步到远程服务器。
图32
在图33中弹出的对话框中选择远程服务器名称,开始同步文件。
图333.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.onnx4.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
入睡难补肝,易惊醒补心,不解乏补脾,送你三种中成药,帮你调为什么说入睡难补肝,易惊醒补心,不解乏补脾,今天贾医生就来一次给你讲清楚,并教你用三种中成药来帮你调理。中医上认为,睡眠质量差主要和我们的心肝脾这三脏有关,有的人是躺在床上怎么都睡
小青龙汤为什么可以治疗过敏性鼻炎碧云天,黄叶地,一阵秋风吹入鼻腔,几丝瘙痒过后,喷嚏与肺管齐飞,清涕共长天一色,这就是过敏性鼻炎。秋风的凉气是一个刺激性因素,入体为邪,由鼻至肺,正邪相搏,就会表现出打喷嚏流清鼻涕
食用多少油脂为宜现代典型的饮食结构中,脂肪占了总饮食的40,这可大大超过了健康标准。但是,我之前也说过了,脂肪所造成的健康问题不在于用量多少,而在于脂肪的种类。计算油脂的摄入量固然重要,但也要注意
略谈养生最近几年,单位每年都进行免费体检。看到体检结果,很多人可能会寝食不安忧心忡忡。几乎人人都有疾病,十全十美的好人不多了,虽然暂时没有生命危险,但隐患也不小。年轻时身体健康,离死亡还很
7战丢1球!巴萨在西甲强势霸榜,但6连胜的同时,最大短板已显现在皇马11战平奥萨苏纳之后,巴萨顺势坐稳了榜首位置。而7轮联赛过后,巴萨的强势表现也配得上积分榜头名的位置。截至目前,他们在仅仅丢了1球,打进19球,进球数联赛最多,丢球数最少。并
CBA三消息辽宁又签后卫,北控欲签哈德森,广厦大外援归期确定还有几天的时间,2223赛季的CBA联赛就会正式打响了,各队都会在近日前往赛区,备战新赛季正式开始前的季前赛。目前CBA联赛中有三大最新消息,首先就是辽宁男篮又签下了一名大学生球员
星系碰撞,银河系的宿命该图从冥王星视角展示了正在合并的银河仙女座系统的一种可能。冥王星可能会与太阳系一同被抛到银河系的外围。(环球科学供图图)大约50亿年后,随着太阳膨胀成为一颗半径能够达到地球轨道的红
世乒赛3消息马龙吃发球丢一局,张本又输了,59岁选手赢球失眠10月2日,2022年成都团体世乒赛小组赛继续进行。中国男女队再度亮相,结果双双奏凯夺得2连胜。尽管两队都是以30大比分取胜,但个别场次过程也是一波三折。而在团体比赛两天的角逐中,
世乒赛中国队迎来两连胜10月2日,成都世乒赛团体赛进入第三个比赛日。中国男队女队迎来了小组循环赛的第二个对手。中国男队以3比0战胜美国队,中国女队以同样比分战胜波多黎各队,男队和女队均迎来小组赛两连胜。
奥沙利文居榜首,赵心童丁俊晖排名持续下滑随着英国公开赛的落幕,瑞恩戴最后时刻连下三城107击败马克艾伦捧杯的同时排名重返前16行列,同时赢得了今年冠中冠资格,可谓赚的盆满钵满。世界台联也随之更新了最新临时排名第1名罗尼奥
和百亿千金结婚半年,婆媳首次见面,贝克汉姆的妻子现场飙泪结婚半年,婆媳首次见面,贝克汉姆的妻子现场飙泪这场倒插门的大戏,真是比电影还精彩。嫁出去的儿子,踢出去的球。不过贝克汉姆一点也不着急,因为他的耐心远比你想象的强大。日前英国女王伊丽
哪道菜适合长期减肥吃?减肥是最近最流行的话题,然而减肥要和节食分清楚偶。白水煮青菜干啃黄瓜的减脂饮食方式还是算了吧,把自己饿的头晕眼花,之后又开始暴饮暴食,这样饥一餐饱一餐对身体非常不好,这样的减肥方式
有些人月薪只有三千,每天开着二十多万的豪车,他们是怎么生活的?在大部分城市里月薪过万的小白领抱怨养不起车的时候,在一些县城和没那么发达的地区,却有一大票月薪3000元左右的车主,那么,他们买车是一种什么样的心态?一起来看看吧1月薪2300元的
怀孕后手脚都会肿吗?为什么会出现这种现象?怀孕后并不是所有孕妈妈的手脚都会水肿,只是有少数孕妈妈的手脚才会在孕中晚期的时候水肿,特别是双小腿因水肿感觉到坠胀感或行走不便。一孕期为什么会出现水肿这种现象?1怀孕时的生理性水肿
宝宝吐奶后怎么办?宝宝吐奶后怎么办?宝宝吐奶后要将他的上身抬高,头转向一侧避免窒息,暂停喝水或喂奶,并注意观察。如果宝宝一出生就吐奶,或者同时有喂奶困难烦躁拒奶等,要去医院看病。宝宝吐奶有以下三种情
演员跨越年龄演绎少女,尴尬得让你无法接受的角色有哪些?现在的女演员,尤其是不愿意接受自己已经变老的事实,经常在各类电视剧装嫩出现,满以为可以凭借着厚厚的化妆术十级滤镜的过滤,再加上所谓的空气流海去制造青春感,孰不知,老了就是老了,各种
霍尊将来会超过李玉刚吗?早已超过李玉刚了。无论从形象气质及演唱技巧还有音质扮相均在李玉刚之上的。这是众人都认为的。哈哈哈!争强好胜的年代,喜欢比较的民众,当然是好的,有比较就会有才艺能力差距,就可能更会有
如何看待虎牙阿耀曝光王者荣耀演员刷分机制?如何看待?第一时间看到只能是愤怒。这是最好的时代,也是最坏的时代。好的是什么?这款游戏可能是前无古人后无来者的全民游戏。提起英雄联盟,可能大多数男生都玩过,可姑娘们呢?因为男友沉迷
魔兽世界有复活术,为什么如瓦王等NPC会死?要分清楚游戏的故事性和游戏性。故事性推进剧情发展,同时逻辑上需要合理。比如说你说的复活术,在游戏的故事性我只记得出现过一次,是大灾变时期瓦王在暴风城遭遇偷袭刚刚死去,安度因带着极大
中国足球为什么越来越有钱反而越来越退步了呢?谢谢邀请。实话说,钱是好东西。钱是有用的,但却不是万能的。中国足球跟钱挂勾,是近些年金钱足球的结果。回答小哥这个问题,要一分为二的看,一方面钱对足球是好事。钱可以买来好球员,可以吸
毁灭式下滑!英格兰第一神锋4轮英超0球0助攻,故意消极怠工吗?大不列颠及北爱尔兰联合王国的足球界从来不缺红透半边天的大明星。希勒加斯科因贝克汉姆欧文鲁尼但他们都因为种种原因在足球上的造诣是名气远远大于实力!出身于号称第一联赛英超的他们在去其它
四十岁戴什么表?感谢邀请二十岁的男生,可能会被DWCK卡西欧吸引三十岁的男人可能会为天梭美度阿玛尼交出钱包但四十岁的男人,眼里看见的就只有万国浪琴欧米茄这些大牌!与虚荣无关,只因四十岁的男人早已阅