
PaddleOCR v2.x 算法全景指南检测、识别、超分、端到端、表格与关键信息抽取算法及公开数据集基准【免费下载链接】PaddleOCRTurn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between images/PDFs and LLMs. Supports 100 languages.项目地址: https://gitcode.com/GitHub_Trending/pa/PaddleOCR导读本文以 PaddleOCR 官方算法总览docs/version2.x/algorithm/overview.en.md为核心骨架系统梳理 PaddleOCR v2.x 已支持的全部 OCR 算法家族两阶段算法文本检测、文本识别、文本超分辨率、公式识别、端到端算法、表格识别算法与关键信息抽取KIE算法并完整呈现各算法在英文公开数据集ICDAR2015、Total-Text、CTW1500、DTRB 基准、TextZoom、CROHME、PubTabNet、wildreceipt、XFUND_zh上的复现指标与对应配置文件、模型下载入口。读完本文你将掌握PaddleOCR 覆盖哪些算法与骨干网络、每个算法在公开基准上的精度水平、如何通过配置文件定位对应实现configs 目录、如何训练/评估/预测一个指定算法以及如何基于 PaddleOCR 模块化架构ppocr/modeling扩展新算法。1. 文档定位算法索引与性能对比的一站式入口overview.en.md是一份算法清单型文档其核心价值在于列出 PaddleOCR v2.x已支持并验证的全部 OCR 算法每个算法均附带独立的深入教程链接原理、训练、部署给出每个算法在英文公开数据集上的模型与指标用于算法简介与算法性能对比明确指出中文等其他数据集上的模型不在此文档中需移步 PP-OCRv3 系列模型列表该列表还区分了 inference model、trained model、pre-trained model 与 nb model 四种模型形态。同时文档欢迎开发者贡献新算法指引见 add new algorithm。后续章节将严格沿袭文档的四个大类展开。2. 两阶段 OCR 算法Two-stage OCR Algorithms两阶段 OCR 将识别流程拆分为先检测文本位置再识别文本内容两个独立模型是 PaddleOCR 覆盖最广的算法类别共包含文本检测、文本识别、文本超分辨率、公式识别四个子类。2.1 文本检测算法Text Detection已支持的文本检测算法点击链接获取使用教程DB DBEASTSASTPSENetFCENetDRRGCTICDAR2015 数据集上的检测效果ModelBackbonePrecisionRecallHmeanDownload linkEASTResNet50_vd88.71%81.36%84.88%trained modelEASTMobileNetV378.20%79.10%78.65%trained modelDBResNet50_vd86.41%78.72%82.38%trained modelDBMobileNetV377.29%73.08%75.12%trained modelSASTResNet50_vd91.39%83.77%87.42%trained modelPSEResNet50_vd85.81%79.53%82.55%trained modelPSEMobileNetV382.20%70.48%75.89%trained modelDBResNet5090.89%82.66%86.58%pretrained model / trained modelTotal-Text 数据集上的检测效果弯曲文本场景ModelBackbonePrecisionRecallHmeanDownload linkSASTResNet50_vd89.63%78.44%83.66%trained modelCTResNet18_vd88.68%81.70%85.05%trained modelCTW1500 数据集上的检测效果长弯曲文本场景ModelBackbonePrecisionRecallHmeanDownload linkFCEResNet50_dcn88.39%82.18%85.27%trained modelDRRGResNet50_vd89.92%80.91%85.18%trained model说明SAST 模型训练额外加入了 icdar2013、icdar2017、COCO-Text、ArT 等公开数据集进行调优。PaddleOCR 使用的经整理格式英文公开数据集可通过 Baidu Drive提取码 2bpi或 Google Drive 获取。源码级解读DB 的模块化实现以表格中 Hmean 最高的 DB 前身 DB 为例其完整实现可在 configs/det/det_r50_vd_db.yml 中看到端到端配置Architecture段声明model_type: det、algorithm: DB并依次指定 BackboneResNet_vd、layers 50、NeckDBFPNout_channels 256、HeadDBHead可微分二值化阈值 k50。对应源码网络头ppocr/modeling/heads/det_db_head.py 中class DBHead(nn.Layer)后处理ppocr/postprocess/db_postprocess.py 中class DBPostProcess其关键参数在配置PostProcess段thresh: 0.3、box_thresh: 0.7、max_candidates: 1000、unclip_ratio: 1.5训练数据管线Train.dataset.transforms中的MakeBorderMapshrink_ratio 0.4、thresh_min 0.3、thresh_max 0.7与MakeShrinkMapshrink_ratio 0.4、min_text_size 8负责生成 DB 所需的二值化监督图与收缩图。检测可视化效果示例DB 模型在 ICDAR2015 图片上的输出注意ICDAR2015 仅有约 1,000 张训练图、主要为英文场景因此上表模型在中文文本图片上检测效果很差中文场景请使用 PP-OCR 系列中文检测模型见 PP-OCRv3 模型列表。2.2 文本识别算法Text Recognition已支持的文本识别算法点击链接获取使用教程CRNNRosettaSTAR-NetRARESRNNRTRSARSEEDSVTRViTSTRABINetVisionLANSPINRobustScannerRFLParseQCPPDSATRN上述识别算法遵循 DTRB 训练与评估流程使用 MJSynth 与 SynthText 训练在 IIIT、SVT、IC03、IC13、IC15、SVTP、CUTE 七个基准上评估结果如下ModelBackboneAvg AccuracyModule combinationDownload linkRosettaResnet34_vd79.11%rec_r34_vd_none_none_ctctrained modelRosettaMobileNetV375.80%rec_mv3_none_none_ctctrained modelCRNNResnet34_vd81.04%rec_r34_vd_none_bilstm_ctctrained modelCRNNMobileNetV377.95%rec_mv3_none_bilstm_ctctrained modelStarNetResnet34_vd82.85%rec_r34_vd_tps_bilstm_ctctrained modelStarNetMobileNetV379.28%rec_mv3_tps_bilstm_ctctrained modelRAREResnet34_vd83.98%rec_r34_vd_tps_bilstm_atttrained modelRAREMobileNetV381.76%rec_mv3_tps_bilstm_atttrained modelSRNResnet50_vd_fpn86.31%rec_r50fpn_vd_none_srntrained modelNRTRNRTR_MTB84.21%rec_mtb_nrtrtrained modelSARResnet3187.20%rec_r31_sartrained modelSEEDAster_Resnet85.35%rec_resnet_stn_bilstm_atttrained modelSVTRSVTR-Tiny89.25%rec_svtr_tiny_none_ctc_entrained modelViTSTRViTSTR79.82%rec_vitstr_none_cetrained modelABINetResnet4590.75%rec_r45_abinettrained modelVisionLANResnet4590.30%rec_r45_visionlantrained modelSPINResNet3290.00%rec_r32_gaspin_bilstm_atttrained modelRobustScannerResNet3187.77%rec_r31_robustscannertrained modelRFLResNetRFL88.63%rec_resnet_rfl_atttrained modelParseQVIT91.24%rec_vit_parseq_synthtrained modelCPPDSVTR-Base93.8%rec_svtrnet_cppd_base_entrained modelSATRNShallowCNN88.05%rec_satrntrained model从Module combination一列可清晰读出 PaddleOCR 的积木式组合思想backbone_transform_neck_head四个字段自由拼装如tps表示薄板样条校正变换、bilstm表示双向 LSTM 序列编码、ctc/att/ce表示不同解码头。以 CRNN 为例configs/rec/rec_r34_vd_none_bilstm_ctc.yml 中Architecture段即体现为BackboneResNetlayers 34→ NeckSequenceEncoderencoder_typernnhidden_size 256→ HeadCTCHead损失函数为CTCLoss后处理为 ppocr/postprocess/rec_postprocess.py 中的CTCLabelDecode评估指标为RecMetricmain_indicator: acc。2.3 文本超分辨率算法Text Super-Resolution已支持的文本超分辨率算法点击链接获取使用教程Text GestaltText Telescope在 TextZoom 公开数据集上的效果ModelBackbonePSNR_AvgSSIM_AvgConfigDownload linkText Gestalttsrn19.280.6560configs/sr/sr_tsrn_transformer_strock.ymltrained modelText Telescopetbsrn21.560.7411configs/sr/sr_telescope.ymltrained model超分辨率模块通常作为识别链路的前置增强用于提升低分辨率场景文本的识别率两个算法的配置分别位于 configs/sr/sr_tsrn_transformer_strock.yml 与 configs/sr/sr_telescope.yml。2.4 公式识别算法Formula Recognition已支持的公式识别算法点击链接获取使用教程CANLaTeX-OCR在 CROHME 手写公式数据集上的效果ModelBackboneConfigExpRateDownload linkCANDenseNetconfigs/rec/rec_d28_can.yml51.72%trained model公式识别将图片中的数学公式转换为 LaTeX 序列其数据加载与标签编码由 ppocr/data/latexocr_dataset.py 与 ppocr/data/simple_dataset.py 等模块支撑。3. 端到端 OCR 算法End-to-end OCR Algorithms已支持的端到端算法点击链接获取使用教程PGNet与两阶段方案不同PGNet 以单一网络同时完成文本检测与识别无需字符级标注可端到端训练其教程文档 algorithm_e2e_pgnet.en.md 包含框架图与推理示例结果图如pgnet_framework.png、e2e_res_img293_pgnet.png读者可进一步查看。4. 表格识别算法Table Recognition已支持的表格识别算法点击链接获取使用教程TableMaster在 PubTabNet 公开数据集上的效果ModelBackboneConfigAccDownload linkTableMasterTableResNetExtraconfigs/table/table_master.yml77.47%trained model / inference modelTableMaster 将表格结构还原为 HTML 序列配置位于 configs/table/table_master.yml其损失与后处理可对应 ppocr/losses/table_master_loss.py 与 ppocr/postprocess/table_postprocess.py。5. 关键信息抽取算法Key Information Extraction已支持的 KIE 算法点击链接获取使用教程VI-LayoutXLMLayoutLMLayoutLMv2LayoutXLMSDMGRwildreceipt 发票数据集上的效果ModelBackboneConfigHmeanDownload linkSDMGRVGG6configs/kie/sdmgr/kie_unet_sdmgr.yml86.70%trained modelXFUND_zh 数据集上的效果SER 语义实体识别 / RE 关系抽取ModelBackboneTaskConfigHmeanDownload linkVI-LayoutXLMVI-LayoutXLM-baseSERconfigs/kie/vi_layoutxlm/ser_vi_layoutxlm_xfund_zh_udml.yml93.19%trained modelLayoutXLMLayoutXLM-baseSERconfigs/kie/layoutlm_series/ser_layoutxlm_xfund_zh.yml90.38%trained modelLayoutLMLayoutLM-baseSERconfigs/kie/layoutlm_series/ser_layoutlm_xfund_zh.yml77.31%trained modelLayoutLMv2LayoutLMv2-baseSERconfigs/kie/layoutlm_series/ser_layoutlmv2_xfund_zh.yml85.44%trained modelVI-LayoutXLMVI-LayoutXLM-baseREconfigs/kie/vi_layoutxlm/re_vi_layoutxlm_xfund_zh_udml.yml83.92%trained modelLayoutXLMLayoutXLM-baseREconfigs/kie/layoutlm_series/re_layoutxlm_xfund_zh.yml74.83%trained modelLayoutLMv2LayoutLMv2-baseREconfigs/kie/layoutlm_series/re_layoutlmv2_xfund_zh.yml67.77%trained model从表中可见在中文表单场景下VI-LayoutXLM 在 SER 与 RE 两个任务上均显著领先于 LayoutLM 系列基线四类模型对应配置文件分属 configs/kie/vi_layoutxlm 与 configs/kie/layoutlm_series 两个目录。6. 算法背后的模块化架构从文档到源码overview.en.md之所以能用换配置文件即可换算法根源在于 PaddleOCR 将每个算法分解为数据加载与处理、网络、后处理、损失、指标、优化器六大模块见 add_new_algorithm.en.md。对应仓库结构如下ppocr/ ├── data/ # 数据加载与处理 │ ├── imaug/ # 图像读取、数据增强、标签生成 │ ├── simple_dataset.py # 读取 image_path\tgt 格式数据集 │ └── lmdb_dataset.py # 读取 LMDB 数据集 ├── modeling/ # 网络 │ ├── architectures/ # 网络组装 │ ├── transforms/ # 图像变换模块 │ ├── backbones/ # 特征提取模块 │ ├── necks/ # 特征增强模块 │ └── heads/ # 输出模块 ├── losses/ # 损失函数 ├── postprocess/ # 后处理 ├── metrics/ # 评估指标 └── optimizer/ # 优化器与学习率网络前向由 ppocr/modeling/architectures/base_model.py 的BaseModelnn.Layer统一驱动数据流严格按transforms → backbones → necks → heads顺序执行配置文件中Architecture段的Transform / Backbone / Neck / Head四个字段即与这四个目录一一对应。这也解释了前文表格中rec_r34_vd_tps_bilstm_att这类模块组合命名的由来。7. 从基准到实战训练、评估与预测文档中每个算法教程均给出统一的训练/评估/预测流程。以 CRNNResnet34_vd BiLSTM CTC为例详见 algorithm_rec_crnn.en.md其配置为 configs/rec/rec_r34_vd_none_bilstm_ctc.yml训练单卡/多卡# 单 GPU 训练训练周期长不推荐 python3 tools/train.py -c configs/rec/rec_r34_vd_none_bilstm_ctc.yml # 多 GPU 训练通过 --gpus 指定卡号 python3 -m paddle.distributed.launch --gpus 0,1,2,3 tools/train.py -c configs/rec/rec_r34_vd_none_bilstm_ctc.yml评估python3 -m paddle.distributed.launch --gpus 0 tools/eval.py \ -c configs/rec/rec_r34_vd_none_bilstm_ctc.yml \ -o Global.pretrained_model{path/to/weights}/best_accuracy预测预测配置必须与训练保持一致python3 tools/infer_rec.py -c configs/rec/rec_r34_vd_none_bilstm_ctc.yml \ -o Global.pretrained_model{path/to/weights}/best_accuracy \ Global.infer_imgdoc/imgs_words/en/word_1.png导出推理模型并部署python3 tools/export_model.py -c configs/rec/rec_r34_vd_none_bilstm_ctc.yml \ -o Global.pretrained_model./rec_r34_vd_none_bilstm_ctc_v2.0_train/best_accuracy \ Global.save_inference_dir./inference/rec_crnn python3 tools/infer/predict_rec.py \ --image_dir./doc/imgs_words_en/word_336.png \ --rec_model_dir./inference/rec_crnn/ \ --rec_image_shape3, 32, 100 \ --rec_char_dict_path./ppocr/utils/ic15_dict.txt识别结果示例对于检测模型导出与预测流程完全对称例如 DB详见 algorithm_det_db.en.mdpython3 tools/export_model.py -c configs/det/det_r50_vd_db.yml \ -o Global.pretrained_model./det_r50_vd_db_v2.0_train/best_accuracy \ Global.save_inference_dir./inference/det_db python3 tools/infer/predict_det.py \ --image_dir./doc/imgs_en/img_10.jpg \ --det_model_dir./inference/det_db/检测可视化结果默认保存在./inference_results目录结果文件名以det_res前缀命名。推理模型还可进一步对接 C 推理cpp_infer、Paddle Serving、Paddle2ONNX 等部署链路。8. 如何为算法家族贡献新算法overview.en.md明确欢迎开发者贡献新算法完整流程见 add_new_algorithm.en.md。其核心套路为按模块新增、配置文件组合数据加载与处理在 ppocr/data/imaug 下新建模块文件实现__call__(self, data)读写data[image]/data[label]字典并在 ppocr/data/imaug/init.py 中注册随后在配置transforms列表中以- MyModule: {args}形式按序组合网络在 ppocr/modeling/backbones或 necks/heads/transforms下新建继承nn.Layer的类并在对应__init__.py注册然后在配置Architecture段按Transform/Backbone/Neck/Head字段指定后处理、损失、指标分别在 ppocr/postprocess、ppocr/losses、ppocr/metrics 下新增类并注册在配置Loss / PostProcess / Metric段声明。每新增一个算法只要补齐这六大模块并在 YAML 配置中组合即可复用 tools/train.py、tools/eval.py、tools/infer 下统一的训练、评估与预测入口这正是前文所有基准表格能够快速复现的技术基础。小结overview.en.md是理解 PaddleOCR v2.x 算法版图的入口文档7 个文本检测算法、18 个文本识别算法、2 个超分辨率算法、2 个公式识别算法、1 个端到端算法、1 个表格识别算法、5 个 KIE 算法每个算法都配有公开数据集基准、模块组合命名、配置相对路径与模型下载。结合 configs 下的 YAML 配置与 ppocr 下的模块化源码开发者可以快速完成选算法 → 换配置 → 训练/评估/预测/部署的完整闭环也可以按 add_new_algorithm.en.md 的六大模块规范贡献新算法。若需要中文等更多数据集的 PP-OCR 系列模型请移步 PP-OCRv3 模型列表。【免费下载链接】PaddleOCRTurn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between images/PDFs and LLMs. Supports 100 languages.项目地址: https://gitcode.com/GitHub_Trending/pa/PaddleOCR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考