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

本文详述了使用MindStudio开发工具进行PaddleOCR的ch_ppocr_mobile_v2.0_cls模型离线推理的完整流程,包括工程创建、代码获取、模型转换和离线推理。首先介绍了MindStudio的功能和工程创建步骤,接着讲解如何获取和配置代码,通过模型转换工具将模型转为ONNX和OM格式,最后展示了数据预处理、模型推理及结果展示的过程。
摘要由CSDN通过智能技术生成

一、项目及模型介绍

本文主要介绍使用 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官网获取安装包,如下图所示,另外也可以查看MindStudio的详细介绍,官网链接为:
https://www.hiascend.com/software/mindstudio

在这里插入图片描述

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

在这里插入图片描述

2.2 创建模板工程

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

在这里插入图片描述

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

在这里插入图片描述
如下图所示,通过Projects选择创建工程,点击New Project。

在这里插入图片描述

如下图所示,选择Ascend App工程,点击Change。
在这里插入图片描述
如下图所示,点击+号图标。

在这里插入图片描述
如下图所示,点击+号图标添加配置,输入远程服务器信息,点击OK。

在这里插入图片描述
如下图所示,点击文件夹图标,选择CANN安装路径,点击OK,然后点击Finish。

在这里插入图片描述
如下图所示,正在同步CANN环境。
在这里插入图片描述
如下图所示,同步完成后选择ACL Project(Python),点击Next。

在这里插入图片描述
如下图所示,输入工程名和路径,点击Finish,完成工程创建。

在这里插入图片描述

2.3 工程配置

如下图所示,点击File->Project Structure。
在这里插入图片描述
如下图所示,点击SDKs->+号->Add Python SDK。
在这里插入图片描述

如下图所示,点击SSH Interpreter,选择Deploy系统会自动识别Python环境,然后点击OK。
在这里插入图片描述
如下图所示,点击Project->Remote Python 3.7.5,选择Python环境,点击OK。

在这里插入图片描述
如下图所示,点击Tools->Deployment->Configuration。
在这里插入图片描述
如下图所示,在Deployment选项下,选中远程服务器,点击Mappings,选择远程映射目录,点击OK。

在这里插入图片描述
如下图所示,点击Tools->Start SSH session。
在这里插入图片描述

如下图所示,点击服务器,启动远程终端Remote Terminal窗口。
在这里插入图片描述
通过以上步骤,工程创建配置完成。

三、获取代码

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配置文件
    在这里插入图片描述

3.2 添加模型代码

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

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

下图为模型代码结构。
在这里插入图片描述

如下图所示,将模型配置文件cls_mv3.yml中的use_gpu设置成false。
在这里插入图片描述

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。
在这里插入图片描述

如下图所示,选中服务器,开始远程同步代码。
在这里插入图片描述
代码远程同步完成如下图。
在这里插入图片描述

四、模型转换

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目录下,并同步到远程目录,如下图。
在这里插入图片描述

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模型如下图所示。
在这里插入图片描述

4.4 转 om

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

在这里插入图片描述

如下图所示,点击Model File文件夹图标,选择转出的onnx模型,点击ok。
在这里插入图片描述

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

在这里插入图片描述
如下图所示,模型解析完成后,填相关模型转换信息,点击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:可以选择模型输出节点信息。本文使用默认输出节点。

在这里插入图片描述
如下图所示,模型转换工具开始查检参数。
在这里插入图片描述

如下图所示,选择AIPP配置文件。
在这里插入图片描述

如下图所示打开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

在这里插入图片描述
再次核对命令参数,如下图所示,点击Finish开始模型转换。
在这里插入图片描述
如下图所示,模型转换成功,生成om模型。
在这里插入图片描述

五、离线推理

5.1 数据预处理

如下图所示,点击Add Configuration。

在这里插入图片描述
如下图所示,点击+号,选择Python。
在这里插入图片描述
如下图所示,需要填写命令参数,包括如下:

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

输入完成后点击OK。
在这里插入图片描述
如下图所示,点击命令执行按钮,开始执行数据预处理命令。
在这里插入图片描述
数据处理完成后如下图所示,数据预处理保存在pre_data目录下。
在这里插入图片描述

5.2 模型推理

如下图所示,点击下拉按钮,选择Edit Configurations。
在这里插入图片描述
如下图所示,创建模型推理命令。创建完成后执行该命令。命令参数如下:
–model=/home/mindstudio/ch_cls/ch_ppocr_mobile_v2.0_cls.om --input=/home/mindstudio/pre_data --output=/home/mindstudio/

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

在这里插入图片描述

如下图所示,推理完成后,推理结果保存在2022_10_27-17_34_47目录下。
在这里插入图片描述

5.3 推理结果展示

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

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

在这里插入图片描述
推理结果如下图所示,word_1.jpg、word_2.jpg、word_3.jpg、word_4.jpg、word_5.jpg推理结果都是0度,即文本为水平方向。

在这里插入图片描述
打开相应图片,如下图所示,可以看出识别结果与图片内容一致。

在这里插入图片描述

六、总结

本文通过使用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. 开发者交流群
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值