Skip to content

[Discussion] Guidelines for Adjusting OCR Model Parameters #3

@longipinnatus

Description

@longipinnatus

简述

为了针对具体场景进一步优化 OCR 的识别效果(例如解决漏检、误检、文本框粘连或切字等问题),可以对 PaddleOCR 文本检测阶段的三个参数进行微调。

本 Issue 解释了 pixel_thresh, box_thresh, 和 unclip_ratio 这三个参数的具体作用与调试策略。

参数详细说明

1. pixel_thresh (文本检测像素阈值 / 二值化阈值)

  • 含义:DB 检测模型输出的是一张概率图,此参数是该概率图的二值化阈值。只有得分大于该阈值的像素点,才会被模型判定为有效的“文本像素”。
  • 默认值:0.3
  • 调参策略
    • 调大 (如 0.4 - 0.5):过滤标准更严格。适用于画面背景复杂、存在大量容易被误识别为文字的背景纹理噪点的场景。
    • 调小 (如 0.1 - 0.2):过滤标准更宽松。适用于文字颜色较浅、与背景对比度低,或者因图像模糊导致大面积漏检的情况。

2. box_thresh (文本检测框平均得分阈值)

  • 含义:该参数用于过滤最终生成的文本边界框(Bounding Box)。算法会计算由上述“文本像素”构成的每一个外接框内部的平均得分。如果某个检测框的平均得分低于此阈值,则整个框会被视为低置信度并被直接丢弃。
  • 默认值:0.5
  • 调参策略
    • 调大 (如 0.6 - 0.8):提高输出文本框的门槛,减少“假阳性”(即把非文字的区域错误地框出来)。
    • 调小 (如 0.3 - 0.4):降低门槛以提高召回率。适用于画面中存在模糊等问题导致置信度不高,但确实是文本的区域。

3. unclip_ratio (文本框膨胀比例)

  • 物理含义:由于 DB 算法的特性,模型在训练时预测的是收缩后的文本“核心区域”。在推理预测时,需要通过 Vatti clipping 算法将检测到的多边形区域按一定比例向外膨胀,才能包裹住完整的文字边缘。该参数即控制向外膨胀的倍率。
  • 默认值:1.5
  • 调参策略
    • 调大:生成的文本框会变得更大、更宽。如果发现识别结果经常出现“切字”现象(例如文字边缘被切掉、偏旁部首不全导致识别出错),应适当调大。
    • 调小:生成的文本框更紧凑。如果遇到多行或密集排列的文本,由于膨胀过大导致行与行之间的文本框互相粘连重叠,可以缩小该比例。

调参思路

在调整参数时,建议先开启显示检测框功能,以直观感受参数变化带来的影响。建议调优顺序如下:

  1. 存在漏检(本该有文字却没框出来):尝试降低 box_thresh,若无明显改善,再适当降低 pixel_thresh
  2. 存在误检(把背景错认成文字):尝试提高 box_thresh,其次提高 pixel_thresh
  3. 文本框粘连或框不全:调整 unclip_ratio

参考资料

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions