使用Amazon Textract预处理PDF文档:视觉检测和移除

源节点: 1204412

亚马逊Textract 是一项完全托管的机器学习(ML)服务,可自动从扫描的文档中提取印刷文本,手写内容和其他数据,而不仅仅是简单的光学字符识别(OCR)即可识别,理解和提取表单和表格中的数据。 Amazon Textract可以检测各种文档中的文本,包括财务报告,医疗记录和税表。

在许多用例中,您需要提取和分析具有各种视觉效果的文档,例如徽标,照片和图表。 这些视觉效果包含嵌入的文本,这些文本使Amazon Textract的输出混乱不堪,或者对于下游流程不是必需的。 例如,许多房地产评估表或文件都包含房屋图片或历史价格趋势。 下游流程不需要此信息,您必须先删除它,然后再使用Amazon Textract分析文档。 在这篇文章中,我们说明了两种有效的方法来去除这些视觉效果,作为预处理的一部分。

解决方案概述

在本文中,我们以包含徽标和图表的PDF为例。 我们使用两种不同类型的过程来转换和检测这些视觉效果,然后对其进行编辑。

在第一种方法中,我们使用OpenCV库canny边缘检测器来检测视觉效果的边缘。 对于第二种方法,我们编写了一个自定义像素浓度分析器来检测这些视觉效果的位置。

您可以提取这些视觉效果以进行进一步处理,并轻松修改代码以适合您的用例。

可搜索PDF是通常由其他应用程序生成的本机PDF文件,例如文本处理器,虚拟PDF打印机和本机编辑器。 这些类型的PDF在文档内保留元数据,文本和图像信息。 您可以轻松使用类似的库 PyMuPDF /菲茨 导航PDF结构并识别图像和文本。 在这篇文章中,我们将重点放在不可搜索或基于图像的文档上。

选项1:使用OpenCV边缘检测器检测视觉效果

通过这种方法,我们将PDF转换为PNG格式,然后使用 OpenCV的Python 库并使用Canny Edge Detector检测视觉位置。 您可以按照以下详细步骤进行操作 笔记本.

  1. 将文档转换为灰度。

  1. 应用Canny Edge算法来检测Canny-Edged文档中的轮廓。
  2. 识别具有相关尺寸的矩形轮廓。

您可以根据使用情况进一步调整和优化一些参数以提高检测精度:

  • 最小高度和宽度 –这些参数定义了视觉检测的最小高度和宽度阈值。 它以页面大小的百分比表示。
  • 填充 –当检测到矩形轮廓时,我们定义了额外的填充区域,以便在要编辑的页面的总区域上具有一定的灵活性。 如果视觉中的文本不在清晰界定的矩形区域内,则这很有用。

的优点和缺点

此方法具有以下优点:

  • 满足大多数用例
  • 它易于实现,并且可以快速启动和运行
  • 其最佳参数产生了良好的效果

但是,该方法具有以下缺点:

  • 对于没有边界框或周围边缘的视觉效果,性能可能会因视觉效果类型而异
  • 如果文本块位于大边界框内,则整个文本块可被视为可视文本,并使用此逻辑将其删除

选项2:像素浓度分析

我们通过分析图像像素来实现第二种方法。 普通文本段落在其行中保留了集中签名。 我们可以测量和分析像素密度,以识别像素密度与文档其余部分不同的区域。 您可以按照以下详细步骤进行操作 笔记本.

  1. 将文档转换为灰度。
  2. 将灰色区域转换为白色。
  3. 水平折叠像素以计算黑色像素的浓度。
  4. 将文档分成水平条纹或分段,以识别不是全文的部分(延伸到整个页面)。

  1. 对于不是全文的所有水平线段,分别确定文本区域和图像区域。 这是通过使用最小和最大黑色像素浓度阈值滤除部分来完成的。
  2. 删除标识为非全文的区域。

您可以调整以下参数以优化识别非文本区域的准确性:

  • 非文本水平句段阈值 –定义用于检测页面中非文本水平段的最小和最大黑色像素浓度阈值。
  • 非文本垂直句段阈值 –定义用于检测页面中非文本垂直段的最小和最大黑色像素浓度阈值。
  • 窗户尺寸 –控制如何将页面分为水平和垂直段进行分析(X_WINDOW,Y_WINDOW)。 它以像素数定义。
  • 最小可视面积 –定义可视为要删除的最小区域。 它以像素为单位定义。
  • 灰度范围阈值 –去除灰色阴影的阈值。

的优点和缺点

这种方法是高度可定制的。 但是,它具有以下缺点:

  • 最佳参数需要更长的时间,并且可以对解决方案有更深入的了解
  • 如果文档校正不正确(相机以一定角度拍摄的图像),则此方法可能会失败。

结论

在本文中,我们展示了如何实现两种方法来编辑来自不同文档的视觉效果。 两种方法都易于实现。 您可以获得高质量的结果,并根据用例自定义这两种方法。

要了解有关Amazon Textract中不同技术的更多信息,请访问公众 AWS Samples GitHub存储库.


作者简介

 袁江 是高级解决方案架构师,专注于机器学习。 他是Amazon Computer Vision Hero计划和Amazon Machine Learning技术领域社区的成员。

维克多·罗霍(Victor Rojo) 是专注于会话AI的高级合作伙伴解决方案架构师。 他还是Amazon Computer Vision Hero计划的成员。

路易斯·皮内达 是高级合作伙伴管理解决方案架构师。 他还是Amazon Computer Vision Hero计划的成员。

米格尔·罗梅罗·卡尔沃(Miguel Romero Calvo) 是AWS Machine Learning Solution Lab的数据科学家。

资料来源:https://aws.amazon.com/blogs/machine-learning/process-text-and-images-in-pdf-documents-with-amazon-textract/

时间戳记:

更多来自 AWS机器学习博客