OCR纠错算法



我正致力于将大量扫描文档数字化,使用Tesseract 3作为我的OCR引擎。它的输出质量一般,因为它经常在实际文本之前和之后产生垃圾字符,以及文本中的拼写错误。

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

对于拼写错误问题,大多数错误源于字母的一些错误分类(例如,将l, 1I替换为另一个),并且似乎应该有猜测哪些单词拼写错误的方法(因为英语中没有太多单词中间有"1"),并猜测适当的更正是什么。

这个领域的最佳实践是什么?有没有免费/开源的算法实现这类事情?谷歌发表了大量论文,但没有多少具体成果。如果没有可用的实现,那么众多论文中的哪一篇将是一个好的起点?

对于"确定哪些文本实际上是文本,哪些文本不是",您可能需要查看来自开发Tesseract (ISRI)的同一部门的rmgarbage。我写了一个Perl实现,还有一个Ruby实现。对于1 vs. 1的问题,我正在试验ocrspell(同样来自同一个部门),他们的原始源代码是可用的。

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

  • rmgarbage:搜索"自动清除OCR文本中的垃圾字符串:一个实现"
  • ruby实现:搜索"docsplit textcleaner"

一些可能对你有用的是尝试这个免费的在线OCR,并将其结果与你的比较,看看是否通过玩图像(例如缩放/缩小)你可以改善结果。

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

最新更新