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

Posted

技术标签:

【中文标题】从扫描的文档/图像中可靠地提取身份字段?【英文标题】:Reliably extracting identity fields from scanned documents / images? 【发布时间】:2010-12-17 15:51:22 【问题描述】:

我必须从纸质表格中提取两个预先打印(非手写)的字段,以便在扫描后自动传送。这些字段包含批次和项目标识符,例如“GG-9192”或“EPN/245G”。

我试过以下软件:

Tesseract-OCR 楔形文字 佳能 ImageRunner 内置 OCR Asprise OCR Java API(演示)

我尝试了以下设置:

以 300dpi 和 600dpi 的分辨率扫描 尝试了不同的字体,包括 OCR-A 和 OCR-B。

在所有情况下,输出几乎无处不在。我可以退回那些我无法正确提取必要信息的文件,但我认为它至少会是其中的一半。我考虑过基于数据库中已知值的某种模糊逻辑,但有时这些标识符可能会因单个字符而有所不同,例如“123G”和“123C”。

这是一个失败的原因吗?也许 OCR 还不够成熟,无法处理这种性质的需求?您还可以推荐哪些其他技术?条形码?

编辑:包含的应用程序使用 Java,因此任何有免费或廉价的基于 Java 的 API 的建议都会有所帮助。

编辑 2:如果有人有兴趣...没有任何特殊调整,适用于 Linux 的 Cuneiform 和 Canon ImageRunner 效果最好,而 Tesserect-OCR 和 Asprise Java API 产生最差的结果...这四个都不适合除了标准文档搜索级 OCR 之外的任何东西。我开始认为这是行不通的。

【问题讨论】:

您是否尝试过使用 A2ia 或 parascript formsXtra? 【参考方案1】:

如果您可以控制这些字段,为什么首先要使用人类可读的格式?对于扫描,它似乎是一个 QR 码,或者类似的东西是最好的。它被标记为方向,并具有一些内置的纠错功能。

http://en.wikipedia.org/wiki/QR_Code

【讨论】:

谢谢。我想我没有完全的控制权。在打印之前输入其中一个标识符。我必须做一些处理,以便在最初准备文档时生成二维码并在 Word 中打印。 通过谷歌快速搜索,似乎已经存在一些将二维码和其他条形码插入 Word 文档的解决方案。不确定费用,但二维码是一种“开放”格式,因此您可以找到生成自己的代码,甚至可以使用 Visual Basic 脚本。【参考方案2】:

我从 Tomato 的建议开始挖掘产品。我试过 ABBYY 和 CVISION。两者都有可以自动化 OCR 的产品:

CVISION Maestro Recognition Server 4.0 ABBYY Recognition Server 2.0

此外,ABBYY 有一个SDKs for various platforms,CVISION 有一个SDK,似乎至少可以使用 VB/VC++。

我还没有尝试过任何一个 SDK,我不确定我的项目是否需要它。我所需要的只是可以从中提取文本的 PDF。然而,我确实尝试了 CVISION 的服务器产品,并在其最准确的设置上使用 OCR,它运行得非常好。我还没有尝试过 ABBYY 的服务器产品,因为我必须通过经销商才能获得试用。我正在这样做,但如果它开始变得烦人,我可能会选择 CVISION。我确实尝试过 ABBYY 的 FineReader 独立产品,效果很好,所以我认为他们的服务器产品也可以。

【讨论】:

以上是关于从扫描的文档/图像中可靠地提取身份字段?的主要内容,如果未能解决你的问题,请参考以下文章

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

身份证扫描识别,手机身份证OCR扫描识别

身份证号码图像提取--基于canny边缘检测的连通域检测算法

Excel自动从身份证中提取生日和性别

sql中判断身份证号码的出生年月是不是正确合法

来自身份证明文件检测和 ocr 的模糊文本