本文档介绍了 PaddleOCR 中的文本检测模型,包括其架构、实现和配置系统。检测模型负责在图像中定位文本区域,并在文本区域周围生成边界框或多边形。
有关处理检测到的文本区域的文本识别模型的信息,请参阅 识别模型。有关分析布局和结构的文档理解模型的信息,请参阅 文档理解模型。
PaddleOCR 实现三种主要的文本检测算法:DB(可微分二值化)、EAST(高效准确场景文本)和 SAST(单发任意形状场景文本)。每种算法都遵循相似的三组件架构模式,但具有算法特定的实现。
来源: ppocr/modeling/necks/__init__.py18-57 configs/det/det_mv3_db.yml20-33 configs/det/det_r50_vd_east.yml18-30
DB 是 PaddleOCR 中使用最广泛的检测算法,在准确性和速度之间取得了良好的平衡。它使用可学习的阈值机制将概率图转换为二值化文本分割掩码。
来源: ppocr/modeling/heads/det_db_head.py96-122 ppocr/modeling/necks/db_fpn.py116-218
DB 模型支持多种主干网络和配置组合
| 配置 | 骨干网络 (Backbone) | Neck(颈部) | 输出通道数 | 用例 |
|---|---|---|---|---|
det_mv3_db.yml | MobileNetV3 | DBFPN | 256 | 移动/边缘部署 |
det_r50_vd_db.yml | ResNet50_vd | DBFPN | 256 | 高精度服务器 |
ch_det_res18_db_v2.0.yml | ResNet18_vd | DBFPN | 256 | 中文文本检测 |
ch_det_mv3_db_v2.0.yml | MobileNetV3 | DBFPN | 96 | 轻量级中文 |
来源: configs/det/det_mv3_db.yml20-33 configs/det/det_r50_vd_db.yml18-30 configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml18-31
DBLoss 结合了多种损失组件以进行有效训练
训练过程会生成三种图:收缩图(文本区域)、阈值图(自适应阈值)和二值图(最终文本掩码)。
来源: configs/det/det_mv3_db.yml35-41
EAST 专为快速文本检测而设计,可输出矩形和四边形文本框。它直接预测文本框,无需文本区域分割等中间步骤。
来源: ppocr/postprocess/east_postprocess.py29-142 configs/det/det_r50_vd_east.yml47-51
EAST 支持通过 model_name 参数来配置不同的模型大小
来源: configs/det/det_r50_vd_east.yml25-30 configs/det/det_mv3_east.yml26-31
SAST 专注于检测任意形状的文本,包括弯曲和不规则的文本布局。它使用更复杂的表示法,包括文本中心线和边界偏移。
来源: ppocr/postprocess/sast_postprocess.py33-371 ppocr/modeling/backbones/det_resnet_vd_sast.py190-314
SAST 需要特定的训练数据处理和独特的超参数
根据文本的复杂程度,sample_pts_num 参数可以设置为 0 以自动估计,或设置为固定值(例如 2、6 等)。
来源: configs/det/det_r50_vd_sast_icdar15.yml47-53 configs/det/det_r50_vd_sast_totaltext.yml46-52
颈部网络负责融合骨干网络的多尺度特征。PaddleOCR 实现了一些针对文本检测优化的 FPN 变体。
来源: ppocr/modeling/necks/__init__.py33-49 ppocr/modeling/necks/db_fpn.py34-492
DBFPN 类实现了 DB 模型中使用的特征金字塔网络
该网络通过侧连接执行自顶向下的特征融合,并生成用于检测头的连接特征图。
来源: ppocr/modeling/necks/db_fpn.py116-218
检测模型使用 YAML 配置文件来指定完整的训练流程。该配置系统可以轻松地尝试不同的模型组件。
来源: configs/det/det_mv3_db.yml20-134 configs/det/det_r50_vd_east.yml18-109
检测模型在训练过程中使用广泛的数据增强
该管道生成训练特定检测算法所需的真实标签图(边界图、收缩图)。
来源: configs/det/det_mv3_db.yml71-99 configs/det/det_r50_vd_east.yml64-75