如何在扫描的文档图像上找到空白字段

Posted

技术标签:

【中文标题】如何在扫描的文档图像上找到空白字段【英文标题】:How to find blank field on scanned document image 【发布时间】:2010-10-07 14:13:04 【问题描述】:

我希望我的应用程序在一个表单中填写一个字段 以黑白图像文件的形式存在。形式总是 以相同的纸质版本开始,但到了我的时候 应用程序从我的用户那里得到它,它可能已经被扫描或传真了更多 不止一次。因此,我需要的领域不在 每个文件中的相同位置。

我的用户并不总是从我这里得到空白表单,所以我没有 能够打印我可以打印的标记或占位符 以后再认。

原来的空白表格上有文字,但因为它可能 已传真,我只有 200 dpi 的分辨率。文本 总是大到足以供人类阅读,但我持怀疑态度 关于 OCR。

我有一些预算,所以我不需要免费的解决方案......让我们 只需说 2000 美元。

也就是说,我正在考虑

    获取 OCR 解决方案以查找文本 我需要的字段上的标签。我不 认为我有资源或 专业知识来滚动我自己的。我不 需要完美的认可,因为我 已经知道文字说了什么。 但我确实需要知道 X- 和 Y 坐标。有软件吗 这样做?还是编程比我想象的容易?

    构建或购买软件以识别 表格的边缘。从那里, 我可以得到的相对位置 我需要的领域。我在想 我的扫描仪软件在图像周围放置的虚线 一个小文件。这是一个已知的 算法或是否有可用的 解决办法?

    通过其他方式识别 我需要的领域。谷歌的尝试 填表软件给我 数百个网络表单匹配项, pdf 表格等不符合我的要求 需要。

我对语言并不挑剔。我的应用程序在 Linux 上运行,但如果最好的解决方案是 Microsoft,我可能会成功。

感谢您的想法。

【问题讨论】:

【参考方案1】:

如果我理解正确,表格总是相同的,但可能会因复印/传真而发生偏移、缩放或轻微旋转。在这种情况下,您的问题是 图像配准 之一:找到最佳的刚性转换,使用户的表单与您的“模型”表单对齐,在该表单中您知道字段的位置兴趣。知道转换后,就可以计算字段在用户表单中的位置。

有许多图像配准算法,通常是为对齐大脑 MR 图像等应用而开发的。它们的计算成本很高,并且需要统计先验。幸运的是,您的情况更容易:您需要做的就是在用户表单的内容周围放置一个矩形。坐标下降应该起作用。您需要对噪音有一定的容忍度(表格外的垃圾)。

【讨论】:

我想你理解的完全正确。这是很好的信息。 你能解释一下你所说的坐标下降吗?谢谢 @Raj:梯度下降的简单版本。循环遍历变量。对于每个变量,找到优化目标函数的变量的新值。重复直到收敛。如有必要,请参阅books.google.com/… 并在算法标签中提出问题。 刚性注册可能还不够。用户可以修改模板表单的布局和格式,例如更改字体、更改复选框的位置、在不同的位置断开段落等。这些差异比纯粹的移位、旋转或缩放更复杂。转型。【参考方案2】:

以下是一些可用的 OCR 解决方案(开源和非开源)的小总结:http://googlesystem.blogspot.com/2007/04/open-source-ocr-software-sponsored-by.html

【讨论】:

那里总结的解决方案会将图像转换为文本。没有人说他们会告诉我识别文本在页面上的位置。您有使用其中一种方法的经验吗? 不,很遗憾地告诉您,我几乎没有使用 OCR 的经验。我提到该链接是因为,当我阅读它时,我知道有任何开源 OCR 和/或 Google 参与其中。【参考方案3】:

严格的注册可能还不够。用户可能会修改模板表单的布局和格式,例如更改字体、更改复选框或输入框的位置、在不同的换行位置处换行等。这些差异比纯粹的处理更复杂移位、旋转或缩放变换。此外,如果您的图像是二值图像(黑白),我认为那些医学图像配准算法(处理灰度图像)不会有太大帮助。您的成本函数和最小化策略可能会相应更改。

【讨论】:

用户不得修改布局或格式。 “表格总是以相同的纸质版本开始。”

以上是关于如何在扫描的文档图像上找到空白字段的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式读取扫描的文档或图像

如何在此类图像中找到最大的空白空间?

从扫描的文档/图像中可靠地提取身份字段?

如何从文档进纸器异步扫描和传输图像

从图像或扫描文档中提取表格数据(非 pdf)

ABBYY如何扫描对页