使用MindStudio完成ch_PP-OCRv2_det模型开发
一、介绍
本文主要介绍使用MindStudio进行ch_PP-OCRv2_det模型离线中文检测开发过程,完成文本检测,包括MindStudio安装、工程创建部署、模型转换和推理。
1.1 模型介绍
ch_PP-OCRv2_det是基于PP-OCRv2的中文文本检测模型,PP-OCRv2在PP-OCR的基础上,进一步在5个方面重点优化,检测模型采用CML协同互学习知识蒸馏策略和CopyPaste数据增广策略;识别模型采用LCNet轻量级骨干网络、UDML 改进知识蒸馏策略和Enhanced CTC loss损失函数改进,进一步在推理速度和预测效果上取得明显提升。
1.2 MindStudio介绍
MindStudio提供了AI开发所需的一站式开发环境,支持模型开发、算子开发以及应用开发三个主流程中的开发任务。依靠模型可视化、算力测试、IDE本地仿真调试等功能,MindStudio能够帮助开发者在一个工具上就能高效便捷地完成AI应用开发。MindStudio的功能架构如下图所示。
二、安装部署
2.1 软件下载
通过MindStudio官网可以获取下载途径以及用户手册,如下图。MindStudio的官方网址为:
https://www.hiascend.com/zh/software/mindstudio
如下图,在下载页面中可以选择新最版本,也可以选择历史版本进行下载。
如下图,在下载页面中可以选择新最版本,也可以选择历史版本进行下载。
MindStudio的安装过程可以参考官方指导手册,链接为:
https://www.hiascend.com/document/detail/zh/mindstudio/50RC3/progressiveknowledge/index.html
安装指南部分详细介绍了安装相关步骤,如下图所示。
2.2 软件配置
第一次启动MindStudio提示是否导入配置,如下图,选择不导入配置,点击OK。
选择Customiz选择,配置色彩主题为IntelliJ Light,如下图。
2.3 工程创建
选择Projects选项,点击New Project,如下图。
选择Ascend App,点击Change,如下图。
点击+号图标,如下图。
点击加号,填入服务器信息,点击OK,如下图。
点击文件夹图标,选择CANN包安装路径,点击OK,点击Finish,如下图。
同步远程CANN环境到本地,如下图。
同步完成后,选择ACL Project(Python)工程模板,点击Next,如下图。
输入工程名称和工程目录,点击Finish,如下图。
点击Close关闭提示信息,如下图。
此时,成功创建了一个新的工程。
2.4 工程配置
点击File,选择Project Structure,如下图。
选择SDKs,点击+号图标,选择Add Python SDK,如下图。
选择SSH Interpreter,自识别远程Python环境信息,点击OK,如下图。
选择Project,选择SDK,点击OK,如下图。
点击Tools,选择Deployment,点击Configuration,如下图。
选择远程服务器,点击Mappings,点击文件夹图标,选择远程映射目录,依次点击OK,如下图。
点击Tools,选择Start SSH session,如下图。
点击远程服务器,启动Remote Terminal,如下图。
此时,成功创建并配置了一个新的工程。
三、获取代码
3.1 获取模型代码
在本地终端窗口通过以下命令获取模型代码:
git clone -b release/2.6 https://github.com/PaddlePaddle/PaddleOCR.git
cd PaddleOCR
git reset --hard 274c216c6771a94807a34fb94377a1d7d674a69f
rm .\applications\
rm .\doc\imgs\model_prod_flow_ch.png
cd ..
获取代码后,修改模型配置文件ch_PP-OCRv2_det_cml.yml,如下图所示,将use_gpu设置成false。
修改模型配置文件ch_PP-OCRv2_det_cml.yml,如下图所示,将model_name设置成 ["Teacher"]。
修改infer_det.py文件,如下图所示,将53行代码进行注释。
3.2 获取开发代码
在本地工程中需要开发如下四个文件,包括:
ch_PP-OCRv2_det_ais_infer.py:模型推理脚本
ch_PP-OCRv2_det_postprocess.py:数据后处理脚本
ch_PP-OCRv2_det_preprocess.py:数据前处理脚本
requirements.txt:环境依赖文件
3.3 获取推理工具代码
推理工具使用的是ais_infer,该工具的获取、编译、安装说明链接为:
https://gitee.com/ascend/tools/tree/master/ais-bench_workload/tool/ais_infer
下载后将ais_infer工具代码放到本地工程路径下。
3.4 远程同步代码
获取模型代码、开发代码、推理工具代码后,工程目录结构如下图所示。
选中工程名称mindstudio_proj,然后点击Tools->Deployment->Upload to...,如下图。
选择服务器,如下图,开始远程同步代码。
四、模型转换
4.1 获取推理权重
模型推理权重的链接为:
https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_infer.tar
下载后将ch_PP-OCRv2_det_infer.tar解压到mindstudio_proj\inference目录下,如下图,并同步到远程服务器。
4.2 转onnx模型
在远程终端中进入映射目录,安装依赖,执行命令如下图。
执行转onnx命令,如下图,获取ch_PP-OCRv2_rec.onnx模型,命令为:
paddle2onnx \
--model_dir ./inference/ch_PP-OCRv2_det_infer \
--model_filename inference.pdmodel \
--params_filename inference.pdiparams \
--save_file ../ch_PP-OCRv2_det.onnx \
--opset_version 11 \
--enable_onnx_checker True \
--input_shape_dict="{'x':[-1,3,-1,-1]}"
4.3 转om模型
点击Model Converter按钮,如下图。
点击文件夹图标,选择onnx模型,如下图,点击OK。
正在解析模型,如下图。
解析完成之后输入模型转换参数,如下图,点击Next。
模型转换参数说明:
1.Model Name:输出om模型的名称。
2.Target SoC Version:远程环境设备芯片型号,本文环境使用的是Ascend310P3。
3.Output Path:om模型保存路径。
4.Input Format:输入数据的格式,本文模型的输入为NCHW,表示图片格式的数据。
5.Input Nodes:模型输入节点信息,包括输入节点Name为x、Shape为1,3,544,960、Type为FP32,由于模型是动态shape输入,所以需要指定Dynamic Image Size,本文模型设置的为:736,736;736,800;736,960;736,992;736,1184;736,1248;736,1280;768,928;832,1536;992,736;1088,736;1184,736。
6.Output Nodes:可以选择模型输出节点信息。本文使用默认输出节点。
工具进行参数检查,如下图。
检查完成后,如下图,点击Next。
再次校验生成的模型转换命令,如下图,确认后点击Finish开始进行模型转换。
模型转换完成后在本地生成om模型,如下图。
五、离线推理
5.1 数据处理
创建数据预处理执行命令,如下图,点击Add Configuration。
点击+号,选择Python,如下图所示。
输入命令名称,选择可执行文件,填入命令参数,选择Python解释器,如下图,具体参数为:
-c PaddleOCR/configs/det/ch_PP-OCRv2/ch_PP-OCRv2_det_cml.yml -o Global.infer_img=./PaddleOCR/doc/imgs/
参数说明:
-c:模型配置文件路径。
-o:可选参数:Global.infer_img为图片所在路径。
点击执行按钮,如下图,开始运行数据处理命令。
数据处理完成后,保存在pre_data目录下,如下图。
5.2 执行推理
在远程终端使用以下命令编译安装ais_infer依赖。
cd ais_infer/backend/
pip3 wheel ./
pip3 install aclruntime-0.0.1-cp37-cp37m-linux_x86_64.whl
创建推理执行命令,如下图,点击Edit Configurations。
推理命令如下图所示,详细参数为:
--ais_infer=./ais_infer/ais_infer.py --model=./ch_PP-OCRv2_det.om --inputs=/home/ych/pre_data --batchsize=1
参数说明:
--ais_infer:ais_infer脚本
--model:om模型
--inputs:输入数据路径
--batchsize:模型的batchsize
执行推理命令后,推理结果保存在results_bs1目录下,如下图。
5.3 文本检测效果
同样创建后处理执行命令,如下图,填入执行命令名称、脚本、参数、Python解释器,点击OK,具体参数为:
-c PaddleOCR/configs/det/ch_PP-OCRv2/ch_PP-OCRv2_det_cml.yml -o Global.infer_img="./PaddleOCR/doc/imgs/" Global.infer_results=/home/ych/results_bs1
参数说明:
-c:模型配置文件
-o:用户参数:Global.infer_img 表示推理图片所在路径;Global.infer_results表示推理结果路径
执行后处理命令后,预测图片保存det_results目录下,如下图:
通过远程终端命令将预测图片目录复制到远程映射目录,并下载到本地,如下图。
下载完成后预测图片所在目录如下图所示。
查看图片,文本检测效果如下图所示。
六、总结
本文介绍了使用MindStudio进行ch_PP-OCRv2_det模型离线中文检测开发的整个流程,大家学习使用MindStudio的过程中可以按照官方用户手册进行操作,另外还可以通过开发者社区学习一些技术干货和经典案例,以下是相关链接。
MindStudio官网入口:
https://www.hiascend.com/zh/software/mindstudio
MindStudio用户手册入口:
https://www.hiascend.com/document/detail/zh/mindstudio/50RC3/progressiveknowledge/index.html
MindStudio开发者社区入口:
https://bbs.huaweicloud.com/forum/forum-945-1.html
使用MindStudio完成ch_PP-OCRv2_det模型开发相关推荐
- 使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发
目录 一.项目及模型介绍 二.MindStudio 工程创建 2.1 MindStudio 介绍 2.2 创建模板工程 2.3 工程配置 三.获取代码 3.1 添加工程代码 3.2 添加模型代码 3. ...
- 基于MindStudio的Resnet50深度学习模型开发
基于MindStudio的MindX SDK应用开发全流程 目录 一.MindStudio介绍与安装 2 1 MindStudio介绍 2 2 MindSpore安装 4 二.MindX SDK介绍与 ...
- 【经验分享】使用MindStudio进行RotatE模型开发
目录 一.MindSpore深度学习框架环境与配置介绍 1.MindSpore深度学习框架介绍 2.MindSpore环境搭建与配置 二.MindStudio开发平台简介与安装 1.MindStudi ...
- 使用MindStudio完成StarNet_MobileNetV3模型开发
本文主要给大家介绍使用MindStudio进行StarNet_MobileNetV3模型英文图像文字识别开发过程,主要内容包括MindStudio安装.MindStudio工程创建.模型介绍与获取.模 ...
- 用MindStudio进行TensorFlow模型开发流程详解
相对应的视频教学可以在B站进行观看 https://www.bilibili.com/video/BV18a411S7pr 一.MindStudio简介与安装 1.MindStudio简介 Mind ...
- 2D激光雷达:使用MindStudio进行MindX SDK任务开发
视频案例链接:2D激光雷达: 使用MindStudio进行MindX SDK任务开发_哔哩哔哩_bilibili 任务介绍 该项目基于DROW3和DR-SPAAM模型,实现了实时的2D激光雷达行人检测 ...
- 使用Mindstudio调用Modelarts进行模型训练
使用MindStudio连接ModelArts进行模型训练 1 介绍 本文介绍如何使用MindStudio调用ModelArts资源进行模型训练.ModelArts是面向AI开发者的一站式开发平台,帮 ...
- PyTorch模型开发使用PyTorch GPU2Ascend
PyTorch模型开发使用PyTorch GPU2Ascend https://www.bilibili.com/video/BV1UK411U7x4/?spm_id_from=333.999.0.0 ...
- 使用MindStudio进行MindSpore训练脚本开发
配套视频链接:https://b23.tv/BV1jT4y167th 一.MindSpore环境搭建和配置介绍 1.MindSpore简介 MindSpore是一个全场景深度学习框架,旨在实现易开发. ...
最新文章
- 修改js文件需要重启服务器,关于Node.js中频繁修改代码重启服务器的问题
- 允许Android随着屏幕转动的控制自由转移到任何地方(附demo)
- Oracle 原理:UNDO表空间
- 卸载mongodb_【数据库】mongodb数据库安装
- 遍历 Dictionary,你会几种方式?
- js 文本加密 php解密,JavaScript加密和PHP解密
- 英伟达发布dpu,或取代cpu,宣称一个能顶125个
- js实现页面加载完毕之前显示Loading效果
- SDN、NFV:一枝独秀不是春
- java事物 tran_Java基础——事务
- 赵伯平--警惕台湾的企业管理垃圾!
- 在excel中如何输入身份证号码
- android设置主题背景为壁纸_Android 应用背景加载系统动态壁纸
- PHP小V脸蛋白线,HPH小v脸蛋白线好不好用?HPH小v脸蛋白线怎么用
- Vue引入并使用Element-UI组件库的两种方式
- Unity3D_Util_Editor_显示RectTransform的世界坐标和相对坐标
- Multisim 非门
- SpringCloud Zuul 网关
- PPT在线转换成视频的步骤
- hadoop实战(一)