我正在努力将大量扫描文档数字化,使用Tesseract 3作为我的OCR引擎。其输出的质量是平庸的,因为它通常在实际文本之前和之后产生垃圾字符,并且在文本中产生拼写错误。
对于前一个问题,似乎必须有策略来确定哪些文本实际上是文本而哪些文本不是(大部分文本都是人的名字,所以我正在寻找除了查找以外的解决方案字典中的单词)。
对于拼写错误问题,大多数错误源于一些错误的字母分类(例如,将l
,1
和I
替换为彼此,似乎就像应该有猜测哪些单词拼写错误的方法(因为英语中没有太多单词在其中间有“1”),并猜测适当的纠正是什么。
这个领域的最佳实践是什么?是否存在执行此类操作的算法的免费/开源实现?谷歌已经收到了很多论文,但并不是很具体。如果没有可用的实施,那么许多论文中的哪一篇会是一个很好的起点呢?
答案 0 :(得分:11)
对于“确定哪些文本实际上是文本而哪些文本不是”,您可能希望查看来自开发Tesseract(ISRI)的相同部门的rmgarbage
。我写了一个Perl implementation,还有一个Ruby实现。对于1对l问题,我正在尝试ocrspell
(同样来自同一部门),their original source可用。
我只能发布两个链接,所以缺少的链接是:
答案 1 :(得分:0)
对您有用的一点是尝试this free online OCR并将其结果与您的结果进行比较,看看是否通过播放图片(例如放大/缩小)可以改善结果。
我使用它作为我自己使用tesseract时应该获得的结果的“上限”(在使用OpenCV修改图像之后)。