一、介绍

本文主要介绍使用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模型开发相关推荐

  1. 使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发

    目录 一.项目及模型介绍 二.MindStudio 工程创建 2.1 MindStudio 介绍 2.2 创建模板工程 2.3 工程配置 三.获取代码 3.1 添加工程代码 3.2 添加模型代码 3. ...

  2. 基于MindStudio的Resnet50深度学习模型开发

    基于MindStudio的MindX SDK应用开发全流程 目录 一.MindStudio介绍与安装 2 1 MindStudio介绍 2 2 MindSpore安装 4 二.MindX SDK介绍与 ...

  3. 【经验分享】使用MindStudio进行RotatE模型开发

    目录 一.MindSpore深度学习框架环境与配置介绍 1.MindSpore深度学习框架介绍 2.MindSpore环境搭建与配置 二.MindStudio开发平台简介与安装 1.MindStudi ...

  4. 使用MindStudio完成StarNet_MobileNetV3模型开发

    本文主要给大家介绍使用MindStudio进行StarNet_MobileNetV3模型英文图像文字识别开发过程,主要内容包括MindStudio安装.MindStudio工程创建.模型介绍与获取.模 ...

  5. 用MindStudio进行TensorFlow模型开发流程详解

    相对应的视频教学可以在B站进行观看 https://www.bilibili.com/video/BV18a411S7pr 一.MindStudio简介与安装 1.MindStudio简介 Mind ...

  6. 2D激光雷达:使用MindStudio进行MindX SDK任务开发

    视频案例链接:2D激光雷达: 使用MindStudio进行MindX SDK任务开发_哔哩哔哩_bilibili 任务介绍 该项目基于DROW3和DR-SPAAM模型,实现了实时的2D激光雷达行人检测 ...

  7. 使用Mindstudio调用Modelarts进行模型训练

    使用MindStudio连接ModelArts进行模型训练 1 介绍 本文介绍如何使用MindStudio调用ModelArts资源进行模型训练.ModelArts是面向AI开发者的一站式开发平台,帮 ...

  8. PyTorch模型开发使用PyTorch GPU2Ascend

    PyTorch模型开发使用PyTorch GPU2Ascend https://www.bilibili.com/video/BV1UK411U7x4/?spm_id_from=333.999.0.0 ...

  9. 使用MindStudio进行MindSpore训练脚本开发

    配套视频链接:https://b23.tv/BV1jT4y167th 一.MindSpore环境搭建和配置介绍 1.MindSpore简介 MindSpore是一个全场景深度学习框架,旨在实现易开发. ...

最新文章

  1. 修改js文件需要重启服务器,关于Node.js中频繁修改代码重启服务器的问题
  2. 允许Android随着屏幕转动的控制自由转移到任何地方(附demo)
  3. Oracle 原理:UNDO表空间
  4. 卸载mongodb_【数据库】mongodb数据库安装
  5. 遍历 Dictionary,你会几种方式?
  6. js 文本加密 php解密,JavaScript加密和PHP解密
  7. 英伟达发布dpu,或取代cpu,宣称一个能顶125个
  8. js实现页面加载完毕之前显示Loading效果
  9. SDN、NFV:一枝独秀不是春
  10. java事物 tran_Java基础——事务
  11. 赵伯平--警惕台湾的企业管理垃圾!
  12. 在excel中如何输入身份证号码
  13. android设置主题背景为壁纸_Android 应用背景加载系统动态壁纸
  14. PHP小V脸蛋白线,HPH小v脸蛋白线好不好用?HPH小v脸蛋白线怎么用
  15. Vue引入并使用Element-UI组件库的两种方式
  16. Unity3D_Util_Editor_显示RectTransform的世界坐标和相对坐标
  17. Multisim 非门
  18. SpringCloud Zuul 网关
  19. PPT在线转换成视频的步骤
  20. hadoop实战(一)

热门文章

  1. java基础-枚举和注解
  2. Rust 编程视频教程(进阶)——022 模式
  3. 7-Zip压缩文件如何设置和清除密码?
  4. c语言程序设计 第三版 哈工大,C语言程序设计_哈工大(3):字符串指针.pdf
  5. MAC环境下Eclipse Android jni环境配置
  6. MySql(四):常用工具、日志、复制
  7. Lodop在web中套打的应用
  8. Python 判断今天是今年的第几天?
  9. 拓扑投影matlab,专题一·无线回传拓扑规划(matlab代码)
  10. 快速学习-Saturn Executor运维