Tips & Tricks

如何将 PDF 转换为图像作为 OCR 之前的预处理步骤

直接在 PDF 上运行 OCR 对于干净的基于文本的文档效果很好。对于文本倾斜、混合字体、不寻常布局或背景噪音较大的扫描页面,在 OCR 之前将页面预处理为图像可以显着提高识别准确性。将每个 PDF 页面转换为高分辨率图像后,您可以应用降噪、歪斜校正、对比度调整和二值化滤镜,而这些功能很难或不可能应用于 PDF 本身。

图像管道添加了一个步骤。精度的提高证明它可以应对困难的扫描。

作为预处理步骤的PDF 到图像 的转换将视觉清理与文本识别分开。每个页面都成为一个独立的图像文件,可以在输入 OCR 引擎之前通过图像增强工具进行处理。 WukongPDF 的转换和OCR PDF 工具支持此工作流程,让您可以在对清理后的图像进行识别之前微调图像质量。

How to Convert a PDF to Images as a Preprocessing Step Before OCR

为什么图像预处理可以提高 OCR 准确性

OCR 引擎检测背景下的字符形状。任何模糊字符边界的东西都会降低准确性。倾斜的文本行会混淆行检测。背景斑点和文档污点会产生错误的候选字符。不均匀的照明会产生渐变背景,其中靠近页面边缘的字符会逐渐变成噪音。文本和纸张之间的低对比度是褪色收据和复写本的标志,使得细小的字符笔画完全消失。

转换为图像可以让您分别解决每个问题。倾斜校正算法会旋转页面,直到文本行完全水平,从而使行检测引擎完全符合其预期。降噪滤镜可消除斑点,而不会模糊字符边缘。即使原始扫描仅显示细微的差异,对比度曲线也能将深色文本与浅色背景分开。二值化将灰度转换为纯黑白,消除渐变背景。每个步骤都处理一类特定的视觉问题,它们一起将边缘扫描转换为 OCR 引擎可以高置信度读取的干净输入。

实数说明了差异。直接从 PDF 进行 OCR 处理时,以 200 DPI 扫描的 2080 年代点阵发票可能会产生 70% 的字符准确度。经过去歪斜、自适应二值化、去斑等处理后,同一份文档可以达到95%以上。将其分摊到 500 张发票批次中,就会发现 125 张发票存在重大错误,而 25 张发票需要小幅更正。预处理将清理噩梦变成了可用的输出,并且每页的处理时间(完整增强管道大约为 2-3 秒)与其节省的手动校正时间相比可以忽略不计。

WukongPDF

尝试 PDF OCR

无需安装。直接在您的浏览器中工作。

立即开始 →

选择 OCR 预处理的图像格式和分辨率

格式选择影响管道,而不是最终输出。 TIFF 仍然是传统的 OCR 预处理格式:无损压缩、像素完美保存以及 Tesseract 等引擎的本机支持。 PNG 在网络友好的包装中提供了与现代工具处理良好的相同的无损质量。中间阶段应避免使用 JPEG,因为压缩伪像会在字符周围引入边缘噪声,从而抵消您试图实现的清理效果。这些伪影很微妙,但 OCR 引擎会注意到它们。

分辨率决定了精度上限。 300 DPI 是共识的最佳点。低于 200 DPI,小文本和细衬线会模糊到背景中,并且准确性急剧下降。当 DPI 超过 400 时,文件大小会膨胀,而准确度则趋于平稳。以 6 点型打印的法律脚注和药品标签可能需要 400-600 DPI。大字体的海报和标牌照片通常在 200 DPI 下效果良好。将分辨率与页面上的最小文本相匹配,而不是与平均值相匹配。

格式压缩最适合避免
TIFF无损(LZW 或未压缩)Tesseract OCR、档案预处理文件大小比质量更重要
巴布亚新几内亚无损现代 OCR 管道、基于 Web 的工具需要 TIFF 的旧版 OCR 软件
JPEG有损快速预览、目视检查预处理阶段(伪像会降低 OCR 性能)
JPEG 2000提供无损选项大容量档案扫描OCR 工具支持有限

在 OCR 之前应用图像增强

去歪斜是第一位的。即使 1-2 度的倾斜也会使单词准确性下降几个百分点,因为线分段需要水平基线。大多数图像处理库中的自动倾斜校正功能通过分析线条方向并计算使其水平所需的旋转来检测主要文本角度。这种单次校正通常可以提供任何预处理步骤中最大的精度增益。

二值化遵循去偏斜。自适应阈值方法(例如 Otsu 算法或 Sauvola 方法)独立分析局部图像区域,其处理光照不均匀的文档的效果远远优于全局截止值。 A page brightly lit at center and dim at edges needs different thresholds for each region, and adaptive methods deliver. Global thresholding, by contrast, picks one cutoff for the whole page, usually clipping text in shadows or leaving noise in bright areas. The visual difference between the two approaches is immediately obvious in any document scanned under less-than-perfect lighting.

消除噪音就完成了工作。小的孤立的黑色或白色像素,即老化或纹理纸张扫描中常见的椒盐噪声,会产生错误的字符片段。半径为 2-3 像素的中值滤波器可去除这些斑点,同时保留实际的字符边缘。干净的二进制输出可供识别。与原始扫描相比,在此处理后的图像上运行 OCR 通常会在具有挑战性的文档上显示出 10 到 25 个百分点的准确性跳跃,并且整个增强管道在每页几秒钟内完成。

对预处理图像运行 OCR

将清理后的图像作为单独的页面送入 OCR 引擎。 Tesseract 和大多数其他引擎接受图像目录并每页输出一个文本文件。对于可搜索的 PDF 输出,请将识别的文本与图像重新组合,以创建具有不可见文本层的 PDF。 hOCR 输出格式保留页面布局信息,以应对已识别文本需要映射回页面上特定位置的情况。此布局数据可在可搜索的 PDF 中启用“阅读时突出显示”功能。

始终比较结果。对原始 PDF 和预处理图像运行 OCR,然后抽查两个输出中的相同段落。对于困难的文档来说,差异是显而易见的。褪色的复写收据的准确度从 60% 到 95% 之间意味着无法使用和可用之间的区别。对于 300 DPI 的干净现代激光打印文档,改进可能可以忽略不计,直接 PDF OCR 就完全足够了。了解哪些文档可以节省处理时间,而不会影响输出质量。

批量处理大型文档集

数百或数千页需要自动化。编写管道脚本:将 PDF 页面转换为图像,在批次中应用一致的增强参数,运行 OCR 并编译结果。 Python 与 pdf2image、Pillow 和 pytesseract 提供了一个免费且灵活的管道,可以在标准计算机上过夜处理数千个页面。初始设置需要一两个小时,但每个后续批次都使用单个命令运行。对于一次性小型作业,通过 GUI 工具进行手动预处理设置速度更快且同样有效。

对每批随机样品进行质量检查。一致的设置并不能保证一致的结果。有些页面具有标准增强功能所遗漏的独特工件。在错误传播到整个文档集之前,对批次中的 5-10% 进行抽查,发现系统问题、文本稀疏的页面上的歪斜校正失败、内容模糊的页面上的二值化崩溃。根据样本修复增强参数,重新运行,该批次的其余部分结果是干净的。

WukongPDF

尝试 PDF OCR

无需安装。直接在您的浏览器中工作。

立即开始 →