ai:端侧ai
这是本文档旧的修订版!
AMLNN PPOCR
背景
AMLNN
AMLNN是……
PPOCR
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模型。
前处理
graph TD
A(mermaid)-->B((<em class='u'>plugin</em>))
A-->C(((for)))
B-->D[["<a href='https://www.dokuwiki.org/dokuwiki' class='urlextern' title='https://www.dokuwiki.org/dokuwiki' rel='ugc nofollow'>Dokuwiki</a>"]]
C-->D
文本检测
模型转换
预处理
原始的输入是一张保护待识别文字的图片,做以下预处理后的数据才能用于推理
- 读取图片,BGR格式存储
- 图片等比缩放到960,
- 归一化,减去均值,除以方差,把像素值从[0, 255]转换为[0, 1]
- 将[0, 1]范围的浮点值量化到[-128, 127]的int8值域里
推理
推理引擎初始化、加载模型后,引擎根据模型对输入的预处理后张量调用算子,进行前向计算并输出结果,结果包含三个图:
- 概率图
- 阈值图
- 二值图
后处理
文本识别
模型转换
预处理
推理
后处理
/app/www/public/data/attic/ai/端侧ai.1781451897.txt.gz · 最后更改: 由 xing
