OCR软件是否能够可靠地将以下图像转换为值列表?

更新:
更详细的任务如下:
我们有一个客户端应用程序,用户可以在其中打开报告.此报告包含值表.但并非每个报告看起来都一样 - 不同的字体,不同的间距,不同的颜色,也许报告包含许多具有不同行数/列数的表...
用户选择包含表格的报告区域.用鼠标.
现在我们要将选定的表转换为值 - 使用我们的OCR工具.
在用户选择矩形区域时,我可以要求提供额外信息以帮助进行OCR过程,并要求确认已正确识别这些值.
它最初将是一个实验性项目,因此很可能使用OpenSource OCR工具 - 或者至少一个不需要花费任何费用用于实验目的的工具.
Tom*_*ato 23
简单的答案是肯定的,你应该选择正确的工具.
我不知道开源是否可以在这些图像上获得接近100%的准确度,但基于这里的答案可能是的,如果你花一些时间进行训练和解决表格分析问题和类似的东西.
当我们谈论像ABBYY或其他的纪念性OCR时,它将为您提供99%以上的开箱即用精度,它将自动检测表格.没有训练,没有任何东西,只是工作.缺点是你必须为它支付$$.有些人会反对,对于开源来说,你需要花时间来设置和维护 - 但每个人都在这里自己决定.
但是,如果我们谈论纪念工具,实际上还有更多的选择.这取决于你想要什么.像FineReader这样的盒装产品实际上是将输入文档转换为Word或Excell等可编辑文档.由于您实际上想要获取数据,而不是Word文档,您可能需要查看不同的产品类别 - 数据捕获,基本上是OCR以及一些在页面上查找必要数据的附加逻辑.如果是发票,可以是公司名称,总金额,截止日期,表格中的行项目等.
数据捕获是一个复杂的主题,需要一些学习,但正确使用可以在从文档中捕获数据时保证准确性.它使用不同的规则进行数据交叉检查,数据库查找等.必要时,它可以发送数据进行手动验证.企业广泛使用Data Capture应用程序,每月输入数百万个文档,并严重依赖于每天工作流程中提取的数据.
还有OCR SDK ofcourse,它将为您提供识别结果的API访问,您将能够编程如何处理数据.
如果您更详细地描述您的任务,我可以为您提供建议更容易的方向.
UPDATE
所以你所做的基本上是数据捕获应用程序,但不是完全自动化的,使用所谓的"点击索引"方法.市场上有许多类似的应用程序:您扫描图像和操作员点击图像上的文本(或在其周围绘制矩形),然后将字段填充到数据库.当处理的图像数量相对较少,并且手动工作量不足以证明全自动应用程序的成本合理时,这是一种很好的方法(是的,有完全自动化的系统可以做不同字体,间距,布局,数量的图像表中的行等等).
如果你决定开发东西而不是购买,那么你需要的就是选择OCR SDK.你打算用自己写的所有UI,对吧?最大的选择是决定:开源还是商业.
据我所知,最好的开源是tesseract OCR.它是免费的,但表分析可能存在实际问题,但使用手动分区方法时,这应该不是问题.至于OCR准确 - 人们经常训练OCR字体以提高准确性,但这不应该是你的情况,因为字体可能不同.所以你可以尝试一下tesseract,看看你会得到什么准确性 - 这将影响手动工作量来纠正它.
Commertial OCR将提供更高的准确性,但会花费你的钱.我认为无论如何你应该看看它是否值得,或者tesserack对你来说已经足够了.我认为最简单的方法是下载像FineReader这样的盒子OCR产品的试用版.您将很好地了解OCR SDK的准确性.
Mur*_*ilo 19
如果表中始终有实线边框,则可以尝试以下解决方案:
- 找到每页上的水平和垂直线(黑色像素的长行)
- 使用线坐标将图像分割为单元格
- 清理每个单元格(删除边框,黑白阈值)
- 在每个单元上执行OCR
- 将结果汇总到2D阵列中
另外你的文档有一个无边框表,你可以尝试遵循这一行:
光学字符识别是非常了不起的东西,但它并不总是完美的.为了获得最佳结果,您可以使用最干净的输入.在我最初的实验中,我发现只要我删除了单元格边框(长水平线和垂直线),对整个文档执行OCR实际上工作得很好.但是,该软件将所有空白压缩为一个空白空间.由于我的输入文档有多列,每列中有多个单词,因此单元格边界会丢失.保留单元格之间的关系是非常重要的,因此一种可能的解决方案是在每个单元格边界上绘制一个独特的字符,如"^" - OCR仍然可以识别的东西,以后我可以用它来分割生成的字符串.
我在此链接中找到了所有这些信息,要求Google"OCR to table".作者使用Python和Tesseract发布了一个完整的算法,这两个都是开源解决方案!
如果您想尝试Tesseract功能,也许您应该尝试这个网站:
你在谈论哪种OCR?
您是否会根据该OCR开发代码,或者您将使用现成的东西?
仅供参考: Tesseract OCR
它已经实现了文档读取可执行文件,因此您可以将整个页面提供给它,它将为您提取字符.它很好地识别空白区域,它可能能够帮助制作标签间距.
自 98 年以来,我一直在对扫描的文档进行 OCR。这是扫描文档的一个反复出现的问题,特别是那些包含旋转和/或倾斜页面的文档。
是的,有几个很好的商业系统,有些可以提供,一旦配置良好,自动数据挖掘率非常好,只在那些非常退化的领域寻求操作员的帮助。如果我是你,我会依赖其中的一些。
如果商业选择威胁到您的预算,OSS 可以助您一臂之力。但是,“天下没有免费的午餐”。因此,您将不得不依靠一堆量身定制的脚本来构建一个负担得起的解决方案来处理您的一堆文档。幸运的是,您并不孤单。事实上,在过去的几十年里,很多人一直在处理这个问题。所以,恕我直言,这篇文章提供了这个问题的最佳和简洁的答案:
值得一读!作者提供了自己有用的工具,但文章的结论非常重要,可以让您对如何解决此类问题有一个良好的心态。
“没有银弹。” (弗雷德布鲁克斯,Mitical Man-Month)