我正在将大量扫描的文档数字化,使用Tesseract 3作为我的OCR引擎。它的输出质量一般,因为它经常在实际文本之前和之后生成垃圾字符,以及文本中的拼写错误。
对于前一个问题,似乎必须有一些策略来确定哪些文本实际上是文本,哪些文本不是(这些文本的大部分是人名之类的东西,所以我正在寻找解决方案,而不是在字典中查找单词)。
对于拼写错误问题,大多数错误源于一些字母的错误分类(例如,将l
、1
和I
相互替换),而且似乎应该有一些方法来猜测哪些单词拼写错误(因为在英语中中间有"1“的单词并不多),并猜测适当的更正是什么。
这一领域的最佳实践是什么?有没有做这类事情的算法的免费/开源实现?谷歌已经发表了很多论文,但没有多少具体的内容。如果没有可用的实现,那么众多论文中的哪一篇将是一个很好的起点?
发布于 2012-04-24 12:14:38
对于“确定哪些文本实际上是文本,哪些文本不是文本”,您可能希望查看来自开发Tesseract ( ISRI)的同一部门的rmgarbage
。我已经写了一个Perl implementation,还有一个Ruby实现。对于1vs.l的问题,我尝试使用their original source可用的ocrspell
(同样来自同一个部门)。
我只能发布两个链接,所以缺少的是:
发布于 2011-05-24 14:03:58
可能对你有用的是尝试this free online OCR,并将其结果与您的结果进行比较,看看是否可以通过播放图像(例如,放大/缩小)来改善结果。
我使用它作为我自己使用tesseract时应该得到的结果的“上限”(在使用OpenCV修改图像之后)。
https://stackoverflow.com/questions/5656462
复制