OCR纠错算法

时间:2011-04-13 22:32:35

标签: algorithm ocr error-correction

我正在努力将大量扫描文档数字化,使用Tesseract 3作为我的OCR引擎。其输出的质量是平庸的,因为它通常在实际文本之前和之后产生垃圾字符,并且在文本中产生拼写错误。

对于前一个问题,似乎必须有策略来确定哪些文本实际上是文本而哪些文本不是(大部分文本都是人的名字,所以我正在寻找除了查找以外的解决方案字典中的单词)。

对于拼写错误问题,大多数错误源于一些错误的字母分类(例如,将l1I替换为彼此,似乎就像应该有猜测哪些单词拼写错误的方法(因为英语中没有太多单词在其中间有“1”),并猜测适当的纠正是什么。

这个领域的最佳实践是什么?是否存在执行此类操作的算法的免费/开源实现?谷歌已经收到了很多论文,但并不是很具体。如果没有可用的实施,那么许多论文中的哪一篇会是一个很好的起点呢?

2 个答案:

答案 0 :(得分:11)

对于“确定哪些文本实际上是文本而哪些文本不是”,您可能希望查看来自开发Tesseract(ISRI)的相同部门的rmgarbage。我写了一个Perl implementation,还有一个Ruby实现。对于1对l问题,我正在尝试ocrspell(同样来自同一部门),their original source可用。

我只能发布两个链接,所以缺少的链接是:

  • ocrspell:在dx.doi.org输入“10.1007 / PL00013558”
  • rmgarbage:搜索“在OCR文本中自动删除垃圾字符串:实现”
  • ruby implementation:搜索“docsplit textcleaner”

答案 1 :(得分:0)

对您有用的一点是尝试this free online OCR并将其结果与您的结果进行比较,看看是否通过播放图片(例如放大/缩小)可以改善结果。

我使用它作为我自己使用tesseract时应该获得的结果的“上限”(在使用OpenCV修改图像之后)。