如何使用机器学习来检测扫描文档中的文本和非文本区域?

人工智能 机器学习 自然语言处理 模式识别 光学字符识别
2021-10-29 18:24:37

我有一组扫描的文档(来自报纸、书籍和杂志),文本具有复杂的对齐方式,即文本可以在页面的任何角度。我可以为不同的特征提取做很多处理。但是,我想知道一些不需要很多功能的健壮方法。

机器学习能对此有所帮助吗?我如何使用机器学习来检测这些扫描文档中的文本和非文本区域?

2个回答

TextDetector、Tesseract等开源包实现了文本检测(object detection for text)。还有一个预训练的 Tensorflow 模型可以进行文本检测。文本检测器将为您提供图像中它识别的任何文本的边界框。在 Tesseract 的情况下,它也会输出文本(OCR 是内置的)。因此,您可以阅读这些包中的代码,以获得您自己的机器学习管道的想法。基本上,您需要一个回归器(用于边界框)和一个分类器(用于检测框是否包含文本)。

由于文档被扫描,它不会是开放的文档格式,因此不能使用相关的 API。

方法一

评估 TextBridge Pro、FreeOCR 和其他声称页面布局检测的替代方案。如果其中任何一个工作,以编程方式(最好是无头)驱动它们以读取扫描的文档,检测页面布局和 OCR 文本,导出为开放格式的文档,然后使用 API

通过这种方法,物体识别 AI 在产品中,节省了开发时间和资源。

方法二

在两个方向上对页面进行 2D FFT 窗口化。查看余弦窗、梯形窗、汉明窗和汉宁窗,并在水平和垂直方向上应用它们。使用方法 1,假设这些产品使用扫描的文档来标记示例,然后训练 DCNN(深度卷积神经网络)从 2D FFT 输出光谱中识别图片所在的位置。通过插值,可以在获得的模型上使用一些超参数获得接近完美的图像和文本区域的裁剪。

方法 3

这种方法只是方法 2,但需要手动准备标记的示例数据集,这可能是必要的,因为现有的软件产品可能无法处理以 0、90、180 或 270 度以外的角度布置的图像。

方法 4

创建基于特征提取的架构,并使用字体渲染库构建自动编码器的后半部分,允许将未自动编码的图像部分保留为 xy 坐标对,这将允许图像如果收敛设置正确,则跳过图片。

最后说明

可以将一些处理卸载到学习过程中,以便实际文档过程运行得更快,但有时示例数据集的准备和学习会消耗更多资源。这就是为什么那些评估哪种方法成本更低并且可以推荐具有一定可靠性的最佳方法的人获得高薪的原因。