You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch搭配EasyOCR使用:如何避免单字符串被拆分为多条识别结果

EasyOCR德语识别字符串拆分问题解决方案

核心原因

该问题属于文本检测阶段的误判:EasyOCR执行识别时会先走文本检测步骤定位图像中所有文本的坐标框,若同一行文本的字符间距略大、存在局部噪点,或是默认合并阈值过低,就会将原本连续的字符串判定为两个独立检测框,最终输出两个独立的识别结果。

可调参数优化方案

你可以通过调整readtext方法的内置参数解决该问题,修改后的参考代码如下:

import easyocr

reader = easyocr.Reader(['de'], gpu=False)
result = reader.readtext(
    file, # 待识别的jpg文件
    width_ths = 0.8, # 水平文本合并阈值,默认值为0.5,数值越高越容易合并水平方向相邻的检测框
    link_threshold = 0.7, # 字符连接置信度阈值,默认值为0.4,数值越高越容易将断开的字符判定为同一段文本
    mag_ratio = 2.0, # 图像放大倍数,默认值为1.0,低分辨率图像可调高该参数提升检测精度
    paragraph = False # 若无需获取每个文本框的坐标,可设为True,会自动将同段落的文本合并为完整字符串
)

如果是垂直排列的文本被拆分,可以额外调高height_ths参数(默认值0.5)。

相关专业术语补充

  • 文本检测(Text Detection):OCR流程的第一阶段,核心作用是定位图像中所有文本所在的坐标位置,不负责识别具体文字内容
  • 文本识别(Text Recognition):OCR流程的第二阶段,负责将文本检测输出的坐标框内的像素转换为可编辑的文字内容
  • 非极大值抑制(NMS):文本检测阶段的后处理算法,核心作用是去除重复的检测框、合并相邻的同属一段文本的检测框,上述调整的ths类参数都是作用于该算法的阈值

额外优化建议

  • 可先对输入图像做预处理:包括调整对比度、灰度二值化、去除噪点等操作,让文本边界更清晰,可大幅降低检测阶段的误判概率
  • 若你的使用场景下文本均为水平单行排列,直接开启paragraph=True可基本解决所有字符串拆分问题
  • 条件允许的话建议开启GPU推理,识别精度会略高于CPU模式,模糊场景下的检测准确性更高

内容的提问来源于stack exchange,提问作者peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 09:30:05