问道录

人生到处知何似 应似飞鸿踏雪泥

用户工具

站点工具


ai:端侧ai

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
ai:端侧ai [2026/06/13 21:02] – 创建 xingai:端侧ai [2026/06/15 02:06] (当前版本) – [PPOCR] xing
行 1: 行 1:
-====== 端侧AI ======+====== AMLNN PPOCR部署 ======
  
-目的+===== 背景 ===== 
 + 
 +==== AMLNN ==== 
 + 
 +AMLNN是...... 
 + 
 +==== PPOCR ==== 
 + 
 +PPOCR是百度开源的一个OCR 工具链,同时适合端侧与服务器部署,这里介绍的是PPOCR文本检测与文本识别两个模型在AMLNN平台上的部署示例。 
 + 
 + 
 +==== 模型转换 ==== 
 + 
 +深度学习模型 是一套「固定网络结构 + 训练好的权重参数」的组合。 
 + 
 +  * 网络结构:定义计算图、网络层、算子与数据流,规定运算逻辑与执行顺序,不包含具体数值 
 +  * 权重参数:网络每一层的可学习数值(卷积核、偏置、全连接权重等),是模型训练得到的特征知识 
 + 
 +PPOCR提供的是推理模型是飞桨推理引擎模型,包含三个文件: 
 + 
 +  * 权重文件 
 +  * 模型结构文件 
 +  * 推理配置文件 
 + 
 +使用PaddleX 的 Paddle2ONNX 插件可以将PPOCR飞桨模型转换为onnx模型,参考[[https://www.paddleocr.ai/main/version3.x/inference_deployment/others/obtaining_onnx_models.html|paddleocr - obtaining_onnx_models]]。 
 + 
 +<code python paddle2onnx.py> 
 +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 版本 
 +</code> 
 + 
 +使用adlaconvter工具可以将onnx模型转换为adla模型。 
 + 
 +===== 部署流程 ===== 
 + 
 +<mermaid> 
 +  graph TD 
 +    A[获取模型] --> C[**格式转换**<br/>eg: Paddle → ONNX → adla] 
 +    C --> D[开发和运行环境准备] 
 +    D --> F[业务推理实现] 
 +    F --> G[测试调优] 
 +    G --> H[上线运维] 
 + 
 +    subgraph F[**业务推理实现**] 
 +        F1[预处理<br/>缩放/归一化/量化/维度转换] 
 +        F2[模型推理<br/>加载模型+前向计算] 
 +        F3[后处理<br/>坐标还原/解码/阈值过滤] 
 +        F1 --> F2 --> F3 
 +    end 
 +</mermaid> 
 + 
 +===== 文本检测 ===== 
 + 
 +==== 模型转换 ==== 
 + 
 +通过adlaconvter工具将ppocr onnx模型转换为adla格式,最重要的转换参数包括: 
 + 
 +  - 输入模型 
 +  - 归一化参数 
 +  - 量化算法 
 +  - 量化类型 
 +  - 量化校准数据集,需要转换为npy格式 
 + 
 +==== 预处理 ==== 
 + 
 +原始的输入是一张包含待识别文字的图片,需要做以下预处理后的数据才能用于推理 
 + 
 +  - 读图:BGR格式存储 
 +  - 缩放:图片等比缩放到960 
 +  - 归一化:像素值从[0, 255]映射到[0, 1] 
 +  - INT8量化:将[0, 1]范围的浮点值映射到[-128, 127]的整型范围 
 + 
 +==== 推理 ==== 
 + 
 +推理引擎初始化、加载模型后,引擎根据模型对输入的预处理后张量调用算子,进行前向计算并输出结果,结果包含三个图: 
 + 
 +  * 概率图:单像素为文字区域的置信度 
 +  * 阈值图:给每个像素分配独立二值化阈值,优化倾斜、弯曲文本边缘 
 +  * 二值图:模型内部根据前两张图计算得到,用于轮廓提取 
 + 
 +==== 后处理 ==== 
 + 
 +基于模型输出的特征图,依次完成**轮廓提取、阈值筛选、坐标逆变换、文本框矫正**,最终输出原图上的文本四点坐标与对应置信度。 
 + 
 +===== 文本识别 ===== 
 + 
 +==== 模型转换 ==== 
 + 
 +同检测模型流程:先将飞桨识别模型转为 ONNX,再通过 adlaConverter 转为 ADLA 格式,按需配置归一化参数、量化策略与校准数据集。 
 + 
 +==== 预处理 ==== 
 + 
 +  - 裁剪图像:根据检测输出的坐标,从原图截取单行文字区域; 
 +  - 尺寸规整:固定图像高度,宽度等比例自适应; 
 +  - 归一化、维度变换、INT8 量化,匹配模型输入要求。 
 + 
 +==== 推理 ==== 
 + 
 +引擎加载识别模型并执行前向计算,输出字符序列特征张量。 
 + 
 +==== 后处理 ==== 
 + 
 +对特征张量做 CTC 解码、字符字典映射、去重拼接,最终输出识别文本。 
 + 
 +===== 总结 ===== 
 + 
 +  * 随着AI大趋势的发展,端侧AI也会被带着发展,业务会更加地多 
 +  * 平台上端侧AI关键竞争力包括易用性、推理性能、安全等方面
  
  
/app/www/public/data/attic/ai/端侧ai.1781362951.txt.gz · 最后更改: xing