news 2026/9/18 17:30:22

PaddleOCR 2.x 历史遗留功能与模型指南:旧分支推理、部署路径全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PaddleOCR 2.x 历史遗留功能与模型指南:旧分支推理、部署路径全解析

PaddleOCR 2.x 历史遗留功能与模型指南:旧分支推理、部署路径全解析

【免费下载链接】PaddleOCR飞桨多语言OCR工具包(实用超轻量OCR系统,支持80+种语言识别,提供数据标注与合成工具,支持服务器、移动端、嵌入式及IoT设备端的训练与部署) Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR

本文基于 PaddleOCR 仓库中 2.x 分支的历史文档(Legacy Features)整理而成。PaddleOCR 3.x 分支在训练与推理的拼接逻辑、配置体系上做了升级,导致 2.x 分支的部分模型与功能不再兼容;本篇完整梳理 2.x 分支仍在使用或需要参考的功能矩阵(Python/C++ 预测引擎、服务化部署、Android、Jetson、端侧 Lite、Paddle2ONNX、云上部署、Benchmark 等)、该分支独有的模型清单,以及各推理路径的核心命令与参数含义,帮助读者准确判断自己是否还需要使用 2.x 分支,并能在旧环境下正确完成推理与部署。

一、为什么会有“历史遗留功能”文档

PaddleOCR 仓库在从 2.x 走向 3.x 的过程中,发生了架构级别的升级:3.x 的推理入口、模型拼接逻辑与配置文件结构均发生变化,因此2.x 分支训练/导出的 PP-OCRv4 与 PP-OCRv3 系列模型,无法与 PaddleOCR 3.0 及之后分支的模型直接互换使用

这一点在 2.x 专用模型清单 model_list_2.x.en.md 中有明确说明:

Due to differences in the concatenation logic and configurations used during model training and inference, the PP-OCRv4 and PP-OCRv3 series models from the PaddleOCR 2.x branch cannot be used interchangeably with those from the PaddleOCR 3.0 and later branches.

因此,历史功能索引 单独成文,为仍在使用 2.x 分支的用户集中收纳了“旧分支模型 + 旧分支功能”两条主线。读者判断是否需要参考该文档,可以依据如下标准:

  • 你持有的是 2.x 分支导出的推理模型(inference.pdmodel+inference.pdiparams),且继续使用仓库内tools/infer/下的旧版推理脚本;
  • 你需要在旧环境(Linux/Windows、Android、Jetson、飞桨云)上复现 2.x 时代的部署流程;
  • 你只想查阅 2.x 分支支持过的算法模型清单作为历史参考。

二、PaddleOCR 2.x 分支支持的模型清单

2.x 分支的模型范围由 model_list_2.x.en.md 完整枚举,覆盖检测、识别、方向分类、端到端、公式识别、表格识别与版面检测七大类。以下为完整清单:

2.1 文本检测模型(Detection)

语言模型名称
中文ch_PP-OCRv4_det、ch_PP-OCRv4_server_det、ch_PP-OCRv3_det_slim、ch_PP-OCRv3_det、ch_PP-OCRv2_det_slim、ch_PP-OCRv2_det、ch_ppocr_mobile_slim_v2.0_det、ch_ppocr_mobile_v2.0_det、ch_ppocr_server_v2.0_det
英文en_PP-OCRv3_det_slim、en_PP-OCRv3_det
多语言ml_PP-OCRv3_det_slim、ml_PP-OCRv3_det

2.2 文本识别模型(Recognition)

语言模型名称
中文ch_PP-OCRv4_rec、ch_PP-OCRv4_server_rec、ch_PP-OCRv4_server_rec_doc、ch_PP-OCRv3_rec_slim、ch_PP-OCRv3_rec、ch_PP-OCRv2_rec_slim、ch_PP-OCRv2_rec、ch_ppocr_mobile_slim_v2.0_rec、ch_ppocr_mobile_v2.0_rec、ch_ppocr_server_v2.0_rec、SVTRv2(Rec Server)、RepSVTR(Mobile)
英文en_PP-OCRv4_rec、en_PP-OCRv3_rec_slim、en_PP-OCRv3_rec、en_number_mobile_slim_v2.0_rec、en_number_mobile_v2.0_rec
多语言korean_PP-OCRv3_rec、japan_PP-OCRv3_rec、chinese_cht_PP-OCRv3_rec、te_PP-OCRv3_rec、ka_PP-OCRv3_rec、ta_PP-OCRv3_rec、latin_PP-OCRv3_rec、arabic_PP-OCRv3_rec、cyrillic_PP-OCRv3_rec、devanagari_PP-OCRv3_rec

2.3 其他任务模型

任务类型模型名称
端到端 OCR(End-to-End)PGNet
文本方向分类(Direction Cls)ch_ppocr_mobile_slim_v2.0_cls、ch_ppocr_mobile_v2.0_cls
公式识别(Formula Recognition)CAN、UniMERNet、LaTeX-OCR、PP-FormulaNet-S、PP-FormulaNet-L
表格结构识别(Table Recognition)TableMaster、SLANet、SLANeXt_wired、SLANeXt_wireless、en_ppocr_mobile_v2.0_table_structure、en_ppstructure_mobile_v2.0_SLANet、ch_ppstructure_mobile_v2.0_SLANet
表格 OCR(Table Det + Rec)en_ppocr_mobile_v2.0_table_det、en_ppocr_mobile_v2.0_table_rec
版面检测(Layout Detection)picodet_lcnet_x1_0_fgd_layout、ppyolov2_r50vd_dcn_365e_publaynet、picodet_lcnet_x1_0_fgd_layout_cdla、picodet_lcnet_x1_0_fgd_layout_table、ppyolov2_r50vd_dcn_365e_tableBank_word、ppyolov2_r50vd_dcn_365e_tableBank_latex

从清单结构可以看到 2.x 分支的技术特征:以 PP-OCRv2/v3/v4 三代系列为主干,同时保留了 SVTR、RepSVTR 等研究型识别模型,以及 PGNet 端到端、公式识别、表格识别、版面检测等扩展任务——这些任务在 3.x 中被重新组织进新的 Pipeline 体系(仓库中 ppstructure 与 ppocr 目录即为 2.x 时代训练/推理体系的遗留实现)。

说明:3.x 及之后的模型总表另见 model_list.en.md,其中区分了 inference model(inference.pdmodelinference.pdiparams)、trained/pre-trained model(*.pdparams*.pdopt*.states)与 Paddle-Lite 优化的 nb model(*.nb)三类产物,该模型形态分类对 2.x 分支同样适用。

三、2.x 分支支持的功能全景

历史功能索引 index.en.md 列出的功能条目及其在仓库中的对应文档如下,均位于docs/version2.x/legacy/目录下:

功能文档路径说明
Python 预测引擎推理python_infer.en.md检测/识别/方向分类/串联推理 + TensorRT
C++ 预测引擎推理cpp_infer.en.mdLinux(CPU/GPU)与 Windows 部署
Visual Studio 2019 + CMake 编译指南windows_vs2019_build.en.mdWindows 平台编译 C++ 推理代码
服务化部署(Hubserving)paddle_server.en.md基于 PaddleServing 的服务端部署
Android 部署android_demo.en.md移动端推理 Demo
Jetson 部署原链接指向 2.10 分支归档文档NVIDIA Jetson 平台推理
端侧部署(Paddle-Lite)lite.en.md嵌入式/IoT 设备推理,使用.nb模型
网页前端部署(paddle.js)原链接指向 2.10 分支归档文档浏览器端推理
Paddle2ONNX 模型转化与预测paddle2onnx.en.md导出 ONNX 并用 ONNX Runtime 预测
飞桨云部署工具paddle_cloud.mdPaddleCloud 一键部署
Benchmark 基准测试benchmark.en.md2.x 时代精度/速度基准

其中 Jetson 部署与网页前端部署(paddle.js)两条目的原始链接指向 2.10 分支的归档文档,说明这两块内容已随 3.x 升级而归档;如需查阅,可在仓库对应历史分支中检索同名文档。

四、Python 预测引擎推理(2.x 分支核心实操)

Python 推理文档 python_infer.en.md 按“检测 → 识别 → 方向分类 → 三者串联”的顺序展开,全部命令基于仓库中的tools/infer/脚本(predict_det.pypredict_rec.pypredict_cls.pypredict_system.py)。

4.1 文本检测模型推理

默认配置基于 DB 检测算法。以轻量中文检测模型为例:

# 下载 DB 文本检测推理模型 wget https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-OCRv3_mobile_det_infer.tar tar xf PP-OCRv3_mobile_det_infer.tar # 运行推理 python3 tools/infer/predict_det.py --image_dir="./doc/imgs/00018069.jpg" --det_model_dir="./PP-OCRv3_mobile_det_infer/"

可视化结果默认保存到./inference_results目录,结果文件名以det_res为前缀。

输入分辨率控制参数(源码中由检测前处理读取):

  • --det_limit_type:取值maxmin,默认max
  • --det_limit_side_len:正整数,一般设为 32 的倍数,默认960

默认组合limit_type='max', det_limit_side_len=960表示网络输入图像最长边不超过 960,超出时按同比例缩小;设为limit_type='min'则表示最短边限制为 960。若原图分辨率较高、希望使用更大分辨率预测,可将上限调大:

python3 tools/infer/predict_det.py --image_dir="./doc/imgs/1.jpg" --det_model_dir="./PP-OCRv3_mobile_det_infer/" --det_limit_type=max --det_limit_side_len=1216

CPU 推理只需追加--use_gpu=False

python3 tools/infer/predict_det.py --image_dir="./doc/imgs/1.jpg" --det_model_dir="./PP-OCRv3_mobile_det_infer/" --use_gpu=False

4.2 文本识别模型推理

关键前置说明:PP-OCRv3 识别模型的输入形状为3, 48, 320,换用其他识别模型时必须通过--rec_image_shape按模型实际规格设置;另外 PP-OCRv3 识别模型的rec_algorithm默认为SVTR_LCNet,注意与原 SVTR 的命名差异。

中文轻量识别模型:

# 下载识别推理模型 wget https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-OCRv4_mobile_rec_infer.tar tar xf PP-OCRv3_mobile_rec_infer.tar # 运行推理 python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_10.png" --rec_model_dir="./PP-OCRv3_mobile_rec_infer/" --rec_image_shape=3,48,320

执行后终端打印识别文本与置信度,例如:

Predicts of ./doc/imgs_words_en/word_10.png:('PAIN', 0.988671)

英文识别模型需额外指定字表路径--rec_char_dict_path

# 下载英文模型 wget https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/en_PP-OCRv3_mobile_rec_infer.tar tar xf en_PP-OCRv3_mobile_rec_infer.tar python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/en/word_1.png" --rec_model_dir="./en_PP-OCRv3_mobile_rec_infer/" --rec_char_dict_path="ppocr/utils/en_dict.txt"

示例输出:

Predicts of ./doc/imgs_words/en/word_1.png: ('JOINT', 0.998160719871521)

多语言模型(对应 2.x 模型清单中的 korean、japan、arabic、cyrillic 等)在推理时除了--rec_char_dict_path外,为保证可视化结果正确显示,还需通过--vis_font_path指定字体路径。仓库在 doc/fonts 下默认提供了小语种字体(如korean.ttf),各语种字表位于 ppocr/utils/dict 目录。以韩语识别为例:

python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/korean/1.jpg" --rec_model_dir="./your_inference_model" --rec_char_dict_path="ppocr/utils/dict/korean_dict.txt" --vis_font_path="doc/fonts/korean.ttf"

示例输出:

Predicts of ./doc/imgs_words/korean/1.jpg:('바탕으로', 0.9948904)

4.3 文本方向分类模型推理

# 下载文本方向分类推理模型 wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar tar xf ch_ppocr_mobile_v2.0_cls_infer.tar python3 tools/infer/predict_cls.py --image_dir="./doc/imgs_words_en/word_10.png" --cls_model_dir="ch_ppocr_mobile_v2.0_cls_infer"

输出为分类角度与得分:

Predicts of ./doc/imgs_words_en/word_10.png:['0', 0.9999995]

4.4 检测 + 方向分类 + 识别 串联推理(predict_system)

串联推理使用tools/infer/predict_system.py,核心参数:

  • --image_dir:单张图片或图片目录,也支持 PDF 文件;
  • --det_model_dir/--cls_model_dir/--rec_model_dir:分别指定检测、方向分类、识别推理模型路径;
  • --use_angle_cls:是否启用方向分类模型;
  • --use_mp/--total_process_num:是否使用多进程推理及进程数;
  • --page_num:PDF 输入时限制推理页数(默认 0 表示全部页);
  • 可视化结果默认保存到./inference_results
# 使用方向分类器 python3 tools/infer/predict_system.py --image_dir="./doc/imgs/00018069.jpg" --det_model_dir="./PP-OCRv3_mobile_det_infer/" --cls_model_dir="./cls/" --rec_model_dir="./PP-OCRv3_mobile_rec_infer/" --use_angle_cls=true # 不使用方向分类器 python3 tools/infer/predict_system.py --image_dir="./doc/imgs/00018069.jpg" --det_model_dir="./PP-OCRv3_mobile_det_infer/" --rec_model_dir="./PP-OCRv3_mobile_rec_infer/" --use_angle_cls=false # 多进程推理 python3 tools/infer/predict_system.py --image_dir="./doc/imgs/00018069.jpg" --det_model_dir="./PP-OCRv3_mobile_det_infer/" --rec_model_dir="./PP-OCRv3_mobile_rec_infer/" --use_angle_cls=false --use_mp=True --total_process_num=6 # PDF 输入,--page_num 指定推理前几页(0 表示全部页) python3 tools/infer/predict_system.py --image_dir="./xxx.pdf" --det_model_dir="./PP-OCRv3_mobile_det_infer/" --cls_model_dir="./cls/" --rec_model_dir="./PP-OCRv3_mobile_rec_infer/" --use_angle_cls=true --page_num=2

更多推理参数解释可参考 2.x 分支的推理参数详解文档 inference_args.en.md。

4.5 TensorRT 加速推理(两步流程)

Paddle Inference 以子图模式集成 TensorRT:GPU 场景下 TRT 可对部分子图做算子水平/垂直融合、冗余算子过滤与最优算子内核选择。使用 TRT 需要两步,以检测模型为例:

第一步:采集动态 shape 信息(此时并不真正启用 TRT,只是收集信息):

python3 tools/infer/predict_det.py --image_dir="./doc/imgs/1.jpg" --det_model_dir="./PP-OCRv3_mobile_det_infer/" --use_tensorrt=True

动态 shape 文件最终命名为det_trt_dynamic_shape.txt,保存在模型目录PP-OCRv3_mobile_det_infer内。

第二步:加载该文件执行 TRT 推理

python3 tools/infer/predict_det.py --image_dir="./doc/imgs/1.jpg" --det_model_dir="./PP-OCRv3_mobile_det_infer/" --use_tensorrt=True

文档中的注意事项:

  • 若动态 shape 信息文件已存在则无需重复采集;要重新生成,需先删除模型目录中的该文件再重新执行第一步;
  • 一般只需生成一次。实际部署中建议在离线验证集/测试集上生成动态 shape 文件,线上 TRT 推理时直接加载。

五、C++ 预测引擎与其他部署路径要点

5.1 C++ 推理环境准备(Linux)

C++ 推理文档 指出:相对 Python,C++ 在性能上占优,因此 CPU/GPU 服务端部署普遍采用 C++ 方案。环境准备包含三个环节:

  1. 系统环境:推荐 Linux(可用 Docker),Windows 则参考 VS2019 + CMake 编译指南;
  2. 编译 OpenCV:以 OpenCV 3.4.7 为例,先下载源码包wget https://paddleocr.bj.bcebos.com/libs/opencv/opencv-3.4.7.tar.gz,然后用 CMake 配置编译,关键选项包括-DWITH_IPP=OFF-DWITH_LAPACK=OFF-DWITH_EIGEN=OFF-DCMAKE_INSTALL_LIBDIR=lib64以及开启 ZLIB/JPEG/PNG/TIFF 的构建。make install后在install_path(如opencv3/)下生成bin/include/lib/lib64/share结构,供后续 OCR 源码编译链接;
  3. 获取 Paddle Inference 库:可直接下载预编译库,也可自行编译。

完成上述准备后,使用仓库内 deploy/cpp_infer 目录下的 CMake 工程(入口 CMakeLists.txt 与命令行入口 cli.cc)编译即可得到 det/rec/cls 各类 C++ 可执行程序。

5.2 其余部署路径的定位

  • 服务化部署(PaddleServing):paddle_server.en.md 覆盖 ocr_det、ocr_rec、ocr_cls、ocr_system、structure_system 等 Serving 方案,对应仓库 deploy/hubserving 目录下的各任务配置(如 ocr_system);
  • Android:android_demo.en.md 对应 deploy/android_demo 工程,另有新一代的 deploy/ppocr-android Kotlin 工程可作为演进参考;
  • 端侧 Paddle-Lite:lite.en.md 使用.nb模型(如 ch_PP-OCRv3_det_slim 的 nb 产物),对应 deploy/lite 目录的 C++ 推理示例(ocr_db_crnn.ccdb_post_process.cccrnn_process.cc等);
  • Paddle2ONNX:paddle2onnx.en.md 讲解将 2.x 推理模型导出为 ONNX 后用 ONNX Runtime 预测,对应 deploy/paddle2onnx 文档;
  • Benchmark:benchmark.en.md 提供 2.x 模型的精度/速度评测方法,仓库 benchmark 目录包含 DBNet 训练评测工具与 run_det.sh 等评测脚本。

六、2.x 与 3.x 的选型建议

综合 model_list_2.x.en.md 的兼容性声明与 历史功能索引 的定位,可以给出如下判断框架:

  1. 新项目:直接使用 3.x 体系。2.x 分支的 Python 推理脚本(tools/infer/系列)与 3.x 新接口在模型拼接逻辑上不互通,新开发没有必要从 2.x 起步;
  2. 存量 2.x 模型:若已持有 2.x 训练/导出的模型并依赖其特定行为(如 PP-OCRv2/v3 系列的旧版检测、PGNet 端到端、TableMaster/SLANeXt 等表格模型),继续沿用docs/version2.x/legacy/中的 Python/C++ 推理路径是文档支持的方案;
  3. 跨端部署:2.x 时代的部署资产(deploy 目录下的 cpp_infer、lite、hubserving、android_demo 等)仍可作为端侧与服务端部署的参考实现,其中 C++ 工程与 Lite 推理代码在仓库中保留了完整源码,可逐文件阅读前处理(db_post_process)与后处理(rec_postprocess)实现,理解 2.x 推理链路的输入输出约定。

以上全部内容均以当前仓库docs/version2.x/legacy/目录下的文档及deploy/tools/ppocr/目录的实际源码与配置为据,读者可沿文中路径在仓库内进一步核对细节。

【免费下载链接】PaddleOCR飞桨多语言OCR工具包(实用超轻量OCR系统,支持80+种语言识别,提供数据标注与合成工具,支持服务器、移动端、嵌入式及IoT设备端的训练与部署) Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/18 17:28:11

CUDA 13.0 来了,cuda-samples 迁移 5 步搞定

CUDA 13.0 来了,cuda-samples 迁移 5 步搞定 【免费下载链接】cuda-samples Samples for CUDA Developers which demonstrates features in CUDA Toolkit 项目地址: https://gitcode.com/GitHub_Trending/cu/cuda-samples CUDA 13.0 发布,cuda-sa…

作者头像 李华
网站建设 2026/9/18 17:28:04

自适应信号处理算法解析:从最陡下降到LMS/RLS

简介:这是一份系统讲解自适应信号处理核心原理的PDF学习资料,适合通信、雷达、语音信号处理等方向的研究生或工程师用来搭建理论基础。内容从自适应系统的基本概念和结构分类出发,依次梳理信号相关矩阵的厄米特性质、信号子空间与噪声子空间、…

作者头像 李华
网站建设 2026/9/18 17:23:59

Buck变换器仿真实战:从参数计算到闭环控制的MATLAB/Simulink实现

简介:基于MATLAB/SIMULINK的BUCK变换器研究与设计课程设计报告,面向电力电子专业学生及课程设计参与者,旨在帮助读者系统掌握降压型DC-DC变换器的设计、仿真与波形分析。资源包含1个doc文档,压缩包仅1.74MB,虽为单一文…

作者头像 李华
网站建设 2026/9/18 17:20:03

scrcpy 安卓投屏完整指南:一条命令把手机画面搬上电脑

scrcpy 安卓投屏完整指南:一条命令把手机画面搬上电脑 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 录手机操作教程,你架好三脚架、把相机对准屏幕,结…

作者头像 李华
网站建设 2026/9/18 17:18:57

RocketMQ与Kafka选型实战:从架构原理到运维避坑指南

做技术选型最怕的不是“哪个好”,而是“哪个适合我”。RocketMQ和Kafka这两大消息中间件,几乎撑起了国内互联网公司消息队列选型的半边天,网上对比文章一抓一大把,但大部分停留在“Kafka吞吐高、RocketMQ功能全”这种层面。今天我…

作者头像 李华