2011-05-30 43 views
22

OCR软件能够将如下图像可靠地转换为值列表吗?
Table of valuesOCR软件可以可靠地从表中读取值吗?

UPDATE:

更详细的任务如下:

我们有一个客户端应用程序,用户可以打开的报告。该报告包含一个值表。 但并非每个报告看起来都是一样的 - 不同的字体,不同的间距,不同的颜色,也许报告包含许多具有不同行数/列数的表格...

用户选择包含表格的报告区域。使用鼠标。

现在我们要将选定的表格转换为值 - 使用我们的OCR工具。

当用户选择矩形区域时,我可以要求提供额外信息 以帮助进行OCR处理,并要求确认数值已被正确识别。

它最初将成为一个实验项目,因此最有可能使用OpenSource OCR工具 - 或者至少一个不需要任何费用用于实验目的。

+0

https://softwarerecs.stackexchange.com/questions/34358/program-to-generate-a-csv-file-from-an-image-containing-a-table – 2017-07-05 05:35:56

回答

18

简单的答案是YES,你应该选择正确的工具。

我不知道开源能否在这些图像上获得接近100%的准确率,但根据这里的答案可能是的,如果你花时间在训练和解决表分析问题和类似的东西。

当我们谈论像ABBYY或其他类似的纪念OCR时,它会为您提供99%以上的准确度,并会自动检测表格。没有训练,没有任何东西,只是工作。缺点是你必须为此付出$。有些人反对说,对于开源而言,你付出了时间来设置它并保持 - 但每个人都在这里决定自己。

但是,如果我们谈论纪念工具,实际上有更多的选择。这取决于你想要什么。像FineReader这样的盒装产品实际上是将输入文档转换为Word或Excell等可编辑文档的目标。由于您实际上需要获取数据,而不是Word文档,因此您可能需要查看不同的产品类别 - 数据捕获,这本质上是OCR以及一些额外的逻辑,用于在页面上查找必要的数据。在发票的情况下,它可以是公司名称,总金额,到期日期,表格中的行项目等。

数据捕捉是一个复杂的主题,需要一些学习,但正确使用可以提供保证准确性,文件。它使用不同的规则进行数据交叉检查,数据库查找等。必要时可以发送数据以进行手动验证。企业广泛使用数据采集应用程序来每月输入数百万个文档,并且严重依赖于每天工作流程中提取的数据。

另外还有OCR SDK of course,它可以让你访问API来识别结果,你将能够编程如何处理数据。

如果您更详细地描述您的任务,我可以向您提供建议,哪个方向更容易走。

UPDATE

所以,你要做的就是基本的数据采集应用程序,但不是完全自动化的,使用所谓的“点击指标”的做法。市场上有许多类似的应用程序:扫描图像上的图像和操作员点击(或围绕图像绘制矩形),然后将字段填充到数据库。当要处理的图像数量相对较少时,这是一种很好的方法,而且手动工作负载不够大,无法证明全自动应用程序的成本(是的,有完全自动化的系统可以使用不同的字体,间距,布局,数量表格中的行等)。

如果您决定开发一些东西而不是购买,那么您需要的仅仅是选择OCR SDK。所有的用户界面你会写你自己的,对吧?最大的选择是决定:开源还是商业。据我所知,最好的开源代码是tesseract OCR。它是免费的,但可能在表格分析中遇到实际问题,但通过手动分区方法,这不应该成为问题。至于OCR的精确性 - 人们通常会训练字体的OCR以提高准确性,但这不适合您,因为字体可能不同。因此,您可以尝试展开并了解您将获得的准确性 - 这将影响手动工作量来纠正它。

Commertial OCR将提供更高的准确性,但会花费你的钱。我认为你应该反过来看看它是否值得,或者tesserack对你来说足够好。我认为最简单的方法是下载像FineReader这样的盒式OCR产品的试用版。您将很清楚OCR SDK中的准确性。

+0

@Tomate - 感谢您分享您的一些经验。我更新了这个问题以提供更多细节。 – GarethOwen 2011-05-31 07:42:45

+0

我试过ABBYY FineReader,它的功能就像一个魅力。太糟糕了,对大多数人来说太贵了...... – Zenadix 2015-10-23 21:15:23

5

你在说什么OCR?
您会基于该OCR开发代码吗?或者您会在货架上使用某些东西?

FYI: Tesseract OCR

它已经实现了文档阅读的可执行文件,因此你可以在整个页面,它会提取字符为您服务。它很好地识别空格,它可以帮助制表符间距。

+0

喜加里,是的,我已经开始考虑Tesseract,但是在第一对实验之后没有运气。对于我用问题发布的示例位图,我得到结果“空白页面”。但也许我只需要提供正确的参数? – GarethOwen 2011-05-30 07:39:55

+1

我已经使用OCR进行了多年的自己的研究。如果我不提供一个,我几乎从不会获得空白页面。然而,有时,我得到他们,因为1)binerization @正方体过滤掉大部分甚至是一个很好的binerization后的有价值的信息2),人物不能被识别,因为 一)人物之间的“间距离”是太小(字符太紧凑)。 b)该字符不是东西,正方体用来训练 为2A,你尝试扩大你的形象的说400 +%的原始图像的?我有幸运了! – 2011-05-30 07:44:43

+0

1:我被擦除的白线从我的测试图像,放大了400%,然后超正方体制成值的第二列(忽略第一值)的100%的准确识别。看起来很有希望,但我需要做更多的实验。 – GarethOwen 2011-05-30 08:15:41

3

这真的取决于实施。

有迹象表明,影响OCR的识别能力的几个参数:
1.如何很好的OCR训练 - 示例数据库的大小和质量
2.它是如何训练有素检测“垃圾” (除了知道什么是字母,你需要知道什么不是字母)。
3. OCR的设计和类型
4.如果是神经网络,神经网络结构影响其学习和“决定”的能力。因此,如果你不是自己制作一个,那么只需要测试不同种类的东西,直到找到一个适合的东西。

15

如果你总是在你的餐桌固体边界,你可以试试这个解决方案:

  1. 找到每一页上水平线和垂直线(的 黑色像素长距离)
  2. 事业部使用线坐标将图像分成单元格
  3. 清理每个单元格(移除边框,黑白阈值)
  4. 在每个单元格上执行OCR
  5. 组装结果为二维数组

否则您的文档有一个无国界的表,你可以试着遵循这条线:

光学字符识别是相当惊人的东西,但它不是” t 永远是完美的。为了获得最好的结果,它可以帮助您使用最干净的输入。在我最初的实验中,我发现在整个文档上执行OCR的 实际上运行得非常好,因为我删除了单元格边界(长水平线和垂直线 线),长度为 。但是,该软件将所有空格压缩成一个空白空间。由于我的输入文档有多个列,每列有几个词,因此单元格边界会丢失。 保留单元格之间的关系非常重要,因此一个可能的解决方案是绘制一个独特的字符,例如每个单元格边界上的“^” - OCR将会识别的东西,并且稍后可以使用它来分割结果字符串。

我在这个链接中找到了所有这些信息,要求谷歌“OCR到表”。作者发布了a full algorithm using Python and Tesseract,这两个开源解决方案!

如果你想尝试的Tesseract力量,也许你应该试试这个网站:

http://www.free-ocr.com/

2

你可以尝试其他方法。使用tesseract(或其他OCRS),您可以获取每个单词的坐标。然后,您可以尝试将这些单词按照vercital和horizo​​ntal坐标分组以获得行/列。例如说明白色空间和制表符空间之间的区别。需要一些练习才能获得好的结果,但这是可能的。使用这种方法,即使表格使用不可见的分隔符,也可以检测表格 - 没有行。单词坐标是表格识别的坚实基础

2

我们也一直在努力解决表格中识别文本的问题。 ABBYY识别服务器和ABBYY FlexiCapture包含两种解决方案。 Rec Server是一款基于服务器的大容量OCR工具,专为将大量文档转换为可搜索格式而设计。虽然它适用于这些类型用途的API,但我们推荐使用FlexiCapture。 FlexiCapture可对表格格式中的数据提取进行低级别控制,包括自动检测页面上的表格项目。它可以在没有前端的完整API版本中提供,也可以在我们销售的现成版本中使用。如果你想了解更多信息,请联系我。

3

自98年以来,我一直在OCR扫描文档。这对扫描文档来说是一个反复出现的问题,特别是对于那些包含旋转和/或倾斜页面的文档。

是的,有几个很好的商业系统和一些可以提供,一旦配置好,了不起的自动数据挖掘速度,要求操作人员的帮助下只对那些非常退化领域。如果我是你,我会依靠其中的一些。

如果商业选择的威胁您的预算,OSS能够伸出援助之手。但是,“没有免费的午餐”。所以,你必须依靠一堆量身定做的脚本来搭建一个经济实惠的解决方案来处理你的一堆文档。幸运的是,你并不孤单。事实上,过去几十年来,许多人一直在处理这个问题。因此,恕我直言,这个问题最好的,简洁的回答是这样的文章提供:

https://datascience.blog.wzb.eu/2017/02/16/data-mining-ocr-pdfs-using-pdftabextract-to-liberate-tabular-data-from-scanned-documents/

读碟值得!作者提供了他自己的有用工具,但文章的结论对于给你一个关于如何解决这类问题的良好心态非常重要。

“没有银弹”。 (弗雷德·布鲁克斯,The Mitical Man-Month

相关问题