成像原理与预处理

本节目标

用可验证的方式理解分辨率、对比度、倾斜和噪声,并避免“一套滤镜处理所有文档”。

像素为何决定字符是否可辨

数字图像是像素网格。字符笔画若只占少量像素,压缩、失焦或缩放会让“8”和“3”的局部差异消失。DPI(dots per inch)描述采集密度,但已有图片中的 DPI 元数据不等于真实清晰度;把 72 DPI 标签改成 300 DPI 不会凭空增加细节。

常见问题与处理假设:

问题可观察现象候选处理风险
倾斜文本基线不水平deskew 旋转校正过度旋转造成插值模糊
透视页面呈梯形四点透视校正边界估错会裁掉正文
不均匀照明一侧灰、一侧白局部阈值或背景估计淡色笔画被删除
椒盐噪声零散黑白点中值滤波、连通域过滤标点被当噪声删掉
墨迹粘连字符笔画过粗轻度腐蚀细笔画断裂

二值化把像素分成前景和背景。全局阈值适合照明均匀的页面;局部阈值按小区域估计,适合阴影,却可能制造纹理噪声。Tesseract 官方质量指南明确把旋转、二值化、噪声、边框等列为影响因素,但这不是要求全部启用。

可回滚实验

每个预处理步骤都应记录 name + parameters + input_hash + output_hash。对同一验证集比较:

原图 -> OCR -> 基线指标
原图 -> 去倾斜 -> OCR -> 新指标
原图 -> 去倾斜 + 局部阈值 -> OCR -> 新指标

只在目标文档切片上稳定提升后才上线。肉眼“更干净”不等于 OCR 更准;某些引擎内部已经预处理,外部再次二值化可能损失信息。

排查顺序

  1. 先把检测框画回原图,确认是“没找到”还是“认错了”。
  2. 检查方向、裁剪、透明通道和颜色反转。
  3. 用少量代表样本逐项消融,不一次改五个参数。
  4. 分文档类型报告效果,例如手机拍照、扫描件、低清传真。

练习与自测

  • 为“手机斜拍的票据”设计三组互斥对照实验。
  • 解释为什么放大 4 倍可能使文件更大但信息不增加。
  • 判断:是否应删除所有小连通域?答案是否定的,因为标点、上标和小字号可能同样很小。

下一步与参考

下一步学习 文字检测、识别与数据标注。参考 Tesseract 官方质量改进指南(5.x 文档主线)(获取日期:2026-07-22)。指南提到的具体阈值和模式需按所用版本实测。