AMLNN是……
PPOCR是百度开源的一个OCR 工具链,同时适合端侧与服务器部署,这里介绍的是PPOCR文本检测与文本识别两个模型在AMLNN平台上的部署示例。
深度学习模型 是一套「固定网络结构 + 训练好的权重参数」的组合。
PPOCR提供的是推理模型是飞桨推理引擎模型,包含三个文件:
使用PaddleX 的 Paddle2ONNX 插件可以将PPOCR飞桨模型转换为onnx模型,参考paddleocr - obtaining_onnx_models。
paddlex \
--paddle2onnx \ # 使用paddle2onnx功能
--paddle_model_dir /your/paddle_model/dir \ # 指定Paddle模型所在的目录
--onnx_model_dir /your/onnx_model/output/dir \ # 指定转换后ONNX模型的输出目录
--opset_version 7 # 指定要使用的 ONNX opset 版本
使用adlaconvter工具可以将onnx模型转换为adla模型。
通过adlaconvter工具将ppocr onnx模型转换为adla格式,最重要的转换参数包括:
原始的输入是一张包含待识别文字的图片,需要做以下预处理后的数据才能用于推理
推理引擎初始化、加载模型后,引擎根据模型对输入的预处理后张量调用算子,进行前向计算并输出结果,结果包含三个图:
基于模型输出的特征图,依次完成轮廓提取、阈值筛选、坐标逆变换、文本框矫正,最终输出原图上的文本四点坐标与对应置信度。
同检测模型流程:先将飞桨识别模型转为 ONNX,再通过 adlaConverter 转为 ADLA 格式,按需配置归一化参数、量化策略与校准数据集。
引擎加载识别模型并执行前向计算,输出字符序列特征张量。
对特征张量做 CTC 解码、字符字典映射、去重拼接,最终输出识别文本。