Skip to content

Latest commit

 

History

History
79 lines (43 loc) · 5.2 KB

a-gentle-introduction-to-document-digitalization-part-2-b9adc3c78908.md

File metadata and controls

79 lines (43 loc) · 5.2 KB

文献数字化浅说(下)

原文:https://pub.towardsai.net/a-gentle-introduction-to-document-digitalization-part-2-b9adc3c78908?source=collection_archive---------2-----------------------

文献数字化

胡嘉瑞Unsplash 上的照片

虽然电子集成(例如 API 集成)是一种时髦的数据交换方式,但如今仍有大量的文档交换(例如物理形式、扫描图像)。让我们回到我们的日常生活中,你可能需要填写一张表格来申请驾照。有些医生仍然开处方。当你运送东西给别人时,你仍然需要填写申报表格。

为了迎合这种情况,文档数字化可能有助于它的流式传输。这一系列的故事将讲述如何建立一个端到端的文档数字化系统。

在上一篇文章中,我们介绍了将图像转换为文本和命名实体识别(NER)的工作流程。基本版的一个假设是输入图像是好的。然而,它可以是旋转的图像,在现实生活的例子中质量较低。因此,图像预处理程序有助于这些情况。另一方面,修复 OCR 输出错误也有助于提供准确的结果。

图像预处理

图像预处理在提高图像质量以便进一步处理方面起着重要的作用。根据不同的图像问题,有许多方法可以解决这些问题。

角度调整(歪斜校正)

扭曲的图像影响 OCR 引擎的行分割。尽管 tesseract 引擎提供了一个选项来处理它,但您可能还是能更好地处理它。

对于简单的情况,可以使用 OpenCV 来修复。收据是简单案件的典型例子之一。布局简单,内容逐行显示。您可能需要实现自定义逻辑来解决不对称问题。它可以计算出几条最长的线,甚至建立一个机器学习模型来检测旋转的角度。

二值化(黑白)

通常,二值化是 OCR 引擎中的处理之一。如果该值大于阈值,它会将像素颜色更改为黑色;如果该值小于阈值,它会将像素颜色更改为白色。OCR 引擎中的预定义阈值公式适用于一般问题。可以用 OpenCV 自己做。

去噪(去噪)

噪声会降低 OCR 准确度性能,因此我们更好地执行噪声去除以提高图像质量。它使用一种算法(例如高斯模糊、中值模糊)来使像素更平滑。你可以按照这个 OpenCV 教程来做。

文档布局分析

在图像预处理之后,我们可以进行布局分析。目的是将整个文档分成多个子图像,从而可以在子图像级别而不是整个文档级别执行文本识别。如果文档只有一列,文档布局分析可能不重要。但是,大多数表单也包含多列。

我们可以将这一步骤视为区域检测或寻找感兴趣区域(ROI)。我们可以利用轮廓侵蚀和扩张来实现它,而不是深度学习模型。找到角色的草图,然后扩大覆盖范围,建立一个更大的区域。

OCR 后处理

建议进行 OCR 后处理,因为 OCR 引擎会在命名实体识别(NER)阶段引入一些错误并导致不正确的结果。

基于词典的校正

Norvig 的实现是一种非常简单快速的纠正拼写错误的方法。给定一个字典,该算法将找到最小的编辑距离,以转移到正确的单词。位置就是其中的典型

缺点包括:

  • 如果编辑距离太大,无法修复不正确的单词
  • 如果目标单词只包含几个字符(如 an、am ),则无法修复单词

基于模式的校正

除了基于字典的纠正,基于模式的纠正也有助于修复错误。例如,大多数牌照都有预定义的图案。这可以通过使用正则表达式来实现。

然而,缺点包括:

  • 不支持看不见的模式
  • 即使看到模式,也不能保证满足所有情况。

拿走

  • 预处理和后处理是很重要的,除非你的模型能够吸收那些错误。
  • 不要盲目应用预处理和后处理。看看你的数据,看看哪一步是必要的。

喜欢学习?

我是湾区的数据科学家。专注于数据科学、人工智能,尤其是 NLP 和平台相关领域的最新发展。在 LinkedInGithub 上随时联系 me

参考