【问题标题】:Improve quality of tesseract text recognition提高 tesseract 文本识别的质量
【发布时间】:2014-12-21 16:09:05
【问题描述】:

我尝试构建一个可以扫描汽车 vin 号的 iOS 应用。我在扫描的准确性方面遇到了一些问题。

我使用 opencv 来查找文本的轮廓/边界框,到目前为止我得到了这个结果:

如您所见,我在找到文本框方面取得了很好的效果,并且在将图像发送到 tesseract 之前,我正在根据绿框裁剪图像。

Tesseract 然而并没有给出好的结果。有时我得到正确的文字,有时它给了我别的东西。

我使用来自以下 Pod 的 tesseract 3.03:https://github.com/kevincon/Tesseract-OCR-iOS/tree/tesseract3.03

我使用默认的英语培训字典,并设置 Tesseract,如下所示:

tesseract = [[Tesseract alloc] initWithLanguage:@"eng"];
[tesseract setVariableValue:@" 0123456789ABCDEFGHJKLMNPQRSTUVWXYZ" forKey:@"tessedit_char_whitelist"];
[tesseract setVariableValue:@"language_model_penalty_non_freq_dict_word" forKey:@"0"];
[tesseract setVariableValue:@"language_model_penalty_non_dict_word" forKey:@"0"];
[tesseract setVariableValue:@"load_system_dawg" forKey:@"0"];
[tesseract setVariableValue:@"load_freq_dawg" forKey:@"0"];

关于如何提高此扫描的准确性的任何想法?

更新 1: 我的下一步将是创建训练数据。我将尝试使用此图像: https://dl.dropboxusercontent.com/u/63179/ocr/traindoc.jpg 我使用的是 helvetica neue regular 字体,因为它看起来很相似。我知道我的文本只会包含数字和大写字符。

【问题讨论】:

    标签: ios objective-c opencv ocr tesseract


    【解决方案1】:

    您是否生成了 .traindata?我为信用卡号码识别做了类似的事情。但它并没有开箱即用。

    我使用 jTessBoxEditor 和 SerakTesseractTrainer 为用于信用卡的特定字体生成 .traindata。

    但无论如何 - 结果并不像我预期的那么好。如果我用稍微不同的字体扫描数字,准确性会很差。

    【讨论】:

    • 我的下一步将是创建训练数据。即使使用 traindata,您的结果也很糟糕?
    • 它非常适合在纸上打印相同字体的文本。但是如果字体略有不同 - 它有时会开始出错。此外,它取决于图像质量,它不会识别几乎不可见的文本。
    • 而且最重要的是,我没有达到我想要的结果(可能是因为不好的 .traindata 和缺少字体),所以我放弃了这个想法并开始使用 PayPal 的 card.io封闭图书馆
    猜你喜欢
    • 2015-02-19
    • 2018-02-11
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    相关资源
    最近更新 更多