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

目录

  • 一、项目及模型介绍
  • 二、MindStudio 工程创建
    • 2.1 MindStudio 介绍
    • 2.2 创建模板工程
    • 2.3 工程配置
  • 三、获取代码
    • 3.1 添加工程代码
    • 3.2 添加模型代码
    • 3.3 添加推理工具代码
    • 3.4 远程同步代码
  • 四、模型转换
    • 4.1 获取权重
    • 4.2 安装依赖
    • 4.3 转 onnx
    • 4.4 转 om
  • 五、离线推理
    • 5.1 数据预处理
    • 5.2 模型推理
    • 5.3 推理结果展示
  • 六、总结

一、项目及模型介绍

本文主要介绍使用 MindStudio 开发工具进行中文文本方向分类模型 ch_ppocr_mobile_v2.0_cls 离线推理的开发过程,完成图像文本方向分类,主要内容包括环境安装配置、模型获取转换以及离线推理三个部分。

文本方向分类器ch_ppocr_mobile_v2.0_cls主要用于图片非0度的场景下,在这种场景下需要对图片里检测到的文本行进行一个转正的操作。在 PaddleOCR 系统内,文字检测之后得到的文本行图片经过仿射变换之后送入识别模型,此时只需要对文字进行一个 0 和 180 度的角度分类,因此 PaddleOCR 内置的文本方向分类器只支持了 0 和 180 度的分类。更多关于模型介绍可以参考如下链接:
https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/doc/doc_ch/angle_class.md

二、MindStudio 工程创建

2.1 MindStudio 介绍

MindStudio 是一套基于华为自研昇腾 AI 处理器开发的 AI 全栈开发工具平台,集成了工程管理、编译器、仿真器以及命令行开发工具包,提供网络模型移植、应用开发、推理运行及自定义算子开发等功能。通过 MindStudio 能够进行工程管理、编译、调试、运行、性能分析等全流程开发,支持仿真环境及真实芯片运行,提高开发效率。MindStudio 功能架构如下图所示,集成开发环境功能包括工程管理、编译、运行、模型转换、应用开发、精度对、自定义算子、性能分析、仿真器、Debug、CANN-Toolkit 等功能。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第1张图片

可以通过MindStudio官网获取安装包,如下图所示,另外也可以查看MindStudio的详细介绍,官网链接为:
https://www.hiascend.com/software/mindstudio

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第2张图片

本文下载的版本为MindStudio_5.0.RC3_win.exe,安装方式参考用户手册中的安装指南部分,如下图所示,用户手册链接为:
https://www.hiascend.com/document/detail/zh/mindstudio/50RC3/progressiveknowledge/index.html

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第3张图片

2.2 创建模板工程

如下图所示,首次打开MindStudio提示是否导入配置,默认不导入,点击OK。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第4张图片

如下图所示,通过Customize选项设置颜色主题,可以将颜色设置成白色。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第5张图片
如下图所示,通过Projects选择创建工程,点击New Project。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第6张图片

如下图所示,选择Ascend App工程,点击Change。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第7张图片
如下图所示,点击+号图标。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第8张图片
如下图所示,点击+号图标添加配置,输入远程服务器信息,点击OK。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第9张图片
如下图所示,点击文件夹图标,选择CANN安装路径,点击OK,然后点击Finish。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第10张图片
如下图所示,正在同步CANN环境。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第11张图片
如下图所示,同步完成后选择ACL Project(Python),点击Next。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第12张图片
如下图所示,输入工程名和路径,点击Finish,完成工程创建。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第13张图片

2.3 工程配置

如下图所示,点击File->Project Structure。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第14张图片
如下图所示,点击SDKs->+号->Add Python SDK。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第15张图片

如下图所示,点击SSH Interpreter,选择Deploy系统会自动识别Python环境,然后点击OK。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第16张图片
如下图所示,点击Project->Remote Python 3.7.5,选择Python环境,点击OK。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第17张图片
如下图所示,点击Tools->Deployment->Configuration。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第18张图片
如下图所示,在Deployment选项下,选中远程服务器,点击Mappings,选择远程映射目录,点击OK。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第19张图片
如下图所示,点击Tools->Start SSH session。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第20张图片

如下图所示,点击服务器,启动远程终端Remote Terminal窗口。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第21张图片
通过以上步骤,工程创建配置完成。

三、获取代码

3.1 添加工程代码

如下图所示,需要需要发的工程代码包括:

  1. ch_ppocr_mobile_v2.0_cls_postprocess.py:数据后处理脚本
  2. ch_ppocr_mobile_v2.0_cls_preprocess.py:数据前处理脚本
  3. requirements.txt:依赖文件aipp_ch_ppocr_mobil
  4. e_v2.0_cls.config:AIPP配置文件
    使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第22张图片

3.2 添加模型代码

在本地终端窗口中可以通过git命令添加模型代码,相关命令为:

 git clone -b release/2.6 https://github.com/PaddlePaddle/PaddleOCR.git 
 cd PaddleOCR git reset --hard 274c216c6771a94807a34fb94377a1d7d674a69f 
 rm .\applications\ 
 cd ..

下图为模型代码结构。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第23张图片

如下图所示,将模型配置文件cls_mv3.yml中的use_gpu设置成false。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第24张图片

3.3 添加推理工具代码

推理工具使用的是ais_infer,该工具的获取、编译、安装说明链接为:
https://gitee.com/ascend/tools/tree/master/ais-bench_workload/tool/ais_infer

下载后将ais_infer工具代码放到本地工程路径下

3.4 远程同步代码

如下图所示,选择工程名,点击Tools->Deployment->Upload to。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第25张图片

如下图所示,选中服务器,开始远程同步代码。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第26张图片
代码远程同步完成如下图。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第27张图片

四、模型转换

4.1 获取权重

模型权重链接如下:
https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar

下载后解压至ch_ppocr_mobile_v2_cls\inference目录下,并同步到远程目录,如下图。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第28张图片

4.2 安装依赖

在远程终端中使用命令远程安装Python依赖,命令如下:

pip3 install -r requirements.txt --user

进入到ais_infer目录下,编译并安装aclruntime,命令如下:

cd ais_infer/backend/
pip3 wheel ./
pip3 install aclruntime-0.0.1-cp37-cp37m-linux_x86_64.whl
cd ../../

4.3 转 onnx

在远程终端中使用命令转onnx模型,命令如下:

paddle2onnx \
--model_dir ./inference/ch_ppocr_mobile_v2.0_cls_infer \
--model_filename inference.pdmodel \
--params_filename inference.pdiparams \
--save_file ../ch_ppocr_mobile_v2.0_cls.onnx \
--opset_version 11 \
--enable_onnx_checker True \
--input_shape_dict="{'x':[1,3,48,192]}"

参数说明:
–model_dir:模型路径
–model_filename:模型文件名称
–params_filename:参数文件名称
–save_file:保存onnx模型路径
–opset_version:选择onnx算子版本
–enable_onnx_checker:是否开启onnx模型校验
–input_shape_dict:模型输入信息列表

成功生成onnx模型如下图所示。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第29张图片

4.4 转 om

如下图所示,点击Model Converter按钮。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第30张图片

如下图所示,点击Model File文件夹图标,选择转出的onnx模型,点击ok。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第31张图片

如下图所示,模型转换工具开始解析onnx模型。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第32张图片
如下图所示,模型解析完成后,填相关模型转换信息,点击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,48,192、Type为UINT8。
  6. Output Nodes:可以选择模型输出节点信息。本文使用默认输出节点。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第33张图片
如下图所示,模型转换工具开始查检参数。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第34张图片

如下图所示,选择AIPP配置文件。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第35张图片

如下图所示打开Aipp Configuration File开关,会显示解析出的Aipp配置文件中的信息,确认信息无误后点击Next继续。Aipp配置文件内容如下:

aipp_op{
aipp_mode:static
input_format : RGB888_U8
src_image_size_h : 48
src_image_size_w : 192
min_chn_0 : 127.5
min_chn_1 : 127.5
min_chn_2 : 127.5
var_reci_chn_0: 0.007843137254902
var_reci_chn_1: 0.007843137254902
var_reci_chn_2: 0.007843137254902
}

Aipp介绍可参考官方介绍,链接为:
https://www.hiascend.com/document/detail/zh/canncommercial/60RC1/inferapplicationdev/graphdevg/graphdevg_000031.html

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第36张图片
再次核对命令参数,如下图所示,点击Finish开始模型转换。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第37张图片
如下图所示,模型转换成功,生成om模型。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第38张图片

五、离线推理

5.1 数据预处理

如下图所示,点击Add Configuration。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第39张图片
如下图所示,点击+号,选择Python。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第40张图片
如下图所示,需要填写命令参数,包括如下:

  1. Name:输入命令名称
  2. Script path:执行文件
  3. Parameters:命令参数
  4. Use specified interpreter:Python解释器

输入完成后点击OK。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第41张图片
如下图所示,点击命令执行按钮,开始执行数据预处理命令。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第42张图片
数据处理完成后如下图所示,数据预处理保存在pre_data目录下。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第43张图片

5.2 模型推理

如下图所示,点击下拉按钮,选择Edit Configurations。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第44张图片
如下图所示,创建模型推理命令。创建完成后执行该命令。命令参数如下:
–model=/home/mindstudio/ch_cls/ch_ppocr_mobile_v2.0_cls.om --input=/home/mindstudio/pre_data --output=/home/mindstudio/

参数说明:
–model:om模型
–input:输入数据路径
–output:推理结果保存路径

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第45张图片

如下图所示,推理完成后,推理结果保存在2022_10_27-17_34_47目录下。
使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第46张图片

5.3 推理结果展示

如下图所示,创建数据后处理命令。并执行该命令,命令参数如下:
–config=PaddleOCR/configs/cls/cls_mv3.yml --opt=results=/home/mindstudio/2022_10_27-17_34_47

参数说明:
–config:模型配置文件
–opt=results:推理结果路径

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第47张图片
推理结果如下图所示,word_1.jpg、word_2.jpg、word_3.jpg、word_4.jpg、word_5.jpg推理结果都是0度,即文本为水平方向。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第48张图片
打开相应图片,如下图所示,可以看出识别结果与图片内容一致。

使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第49张图片

六、总结

本文通过使用MindStudio工具,完成了ch_ppocr_mobile_v2.0_cls模型离线推理以及英文文本检测,最后给大家推荐一些比较有用的资料,大家可以先通过官网了解MindStudio的一些功能,然后按照用户手册进行安装、和基本使用方法,最后可以在开发者社区参考一些案例,或者遇到问题进行求助,可以帮助自己快速使用MindStudio进行项目开发。另外还可以加入MindStudio开发者交流群与众多开发者进行交流。

  1. MindStudio官网
    https://www.hiascend.com/zh/software/mindstudio
  2. MindStudio开发者社区
    https://bbs.huaweicloud.com/forum/forum-945-1.html
  3. MindStudio用户手册
    https://www.hiascend.com/document/detail/zh/mindstudio/50RC2/progressiveknowledge/index.html
  4. 开发者交流群
    使用MindStudio完成ch_ppocr_mobile_v2.0_cls模型开发_第50张图片

你可能感兴趣的:(深度学习,人工智能)