本文主要介绍使用 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 是一套基于华为自研昇腾 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
如下图所示,首次打开MindStudio提示是否导入配置,默认不导入,点击OK。
如下图所示,通过Customize选项设置颜色主题,可以将颜色设置成白色。
如下图所示,通过Projects选择创建工程,点击New Project。
如下图所示,选择Ascend App工程,点击Change。
如下图所示,点击+号图标。
如下图所示,点击+号图标添加配置,输入远程服务器信息,点击OK。
如下图所示,点击文件夹图标,选择CANN安装路径,点击OK,然后点击Finish。
如下图所示,正在同步CANN环境。
如下图所示,同步完成后选择ACL Project(Python),点击Next。
如下图所示,输入工程名和路径,点击Finish,完成工程创建。
如下图所示,点击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窗口。
通过以上步骤,工程创建配置完成。
如下图所示,需要需要发的工程代码包括:
在本地终端窗口中可以通过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。
推理工具使用的是ais_infer,该工具的获取、编译、安装说明链接为:
https://gitee.com/ascend/tools/tree/master/ais-bench_workload/tool/ais_infer
下载后将ais_infer工具代码放到本地工程路径下
如下图所示,选择工程名,点击Tools->Deployment->Upload to。
如下图所示,选中服务器,开始远程同步代码。
代码远程同步完成如下图。
模型权重链接如下:
https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar
下载后解压至ch_ppocr_mobile_v2_cls\inference目录下,并同步到远程目录,如下图。
在远程终端中使用命令远程安装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 ../../
在远程终端中使用命令转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:模型输入信息列表
如下图所示,点击Model Converter按钮。
如下图所示,点击Model File文件夹图标,选择转出的onnx模型,点击ok。
如下图所示,模型转换工具开始解析onnx模型。
如下图所示,模型解析完成后,填相关模型转换信息,点击Next。
模型转换信息说明:
如下图所示打开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模型。
如下图所示,点击Add Configuration。
如下图所示,点击+号,选择Python。
如下图所示,需要填写命令参数,包括如下:
输入完成后点击OK。
如下图所示,点击命令执行按钮,开始执行数据预处理命令。
数据处理完成后如下图所示,数据预处理保存在pre_data目录下。
如下图所示,点击下拉按钮,选择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目录下。
如下图所示,创建数据后处理命令。并执行该命令,命令参数如下:
–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开发者交流群与众多开发者进行交流。