OCR 纠错算法

Posted

技术标签:

【中文标题】OCR 纠错算法【英文标题】:OCR error correction algorithms 【发布时间】:2011-08-05 02:46:04 【问题描述】:

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

对于前一个问题,似乎必须有策略来确定哪些文本是真正的文本,哪些不是字典中的单词)。

对于拼写错误,大多数错误源于字母的一些错误分类(例如,将l1I 相互替换),似乎应该有方法猜测哪些单词拼错了(因为英语中没有太多单词中间有“1”),并猜测正确的更正是什么。

该领域的最佳做法是什么?是否有做这种事情的算法的免费/开源实现?谷歌已经发表了很多论文,但并不具体。如果没有可用的实现,那么众多论文中的哪一个会是一个好的起点?

【问题讨论】:

@coffee 以下是一些:Non-interactive OCR Post-correction for Giga-Scale Digitization Projects、Low Cost Correction of OCR Errors Using Learning in a Multi-Engine Environment、A Statistical Approach to Automatic OCR Error Correction in Context 和 Diploma Thesis: Unsupervised Post-Correction of OCR Errors。 @coffee 不过,这些主要是处理拼写错误,而不是消除输出中的非文本。 【参考方案1】:

对于“确定哪些文本实际上是文本,哪些文本不是”,您可能需要查看来自开发 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”

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于OCR 纠错算法的主要内容,如果未能解决你的问题,请参考以下文章

二维码生成之纠错码算法

自然语言处理NLP之文本摘要机器翻译OCR信息检索信息抽取校对纠错

你也可以手绘二维码纠错码字算法:数论基础及伽罗瓦域GF(2^8)

蜂窝网络TDOA定位方法的Fang算法研究及仿真纠错

OCR算法改进

PC端车牌识别朱凯茵从事图像识别算法OCR算法