美文网首页OC开发iOS 人工智能cocoa
iOS实现图像文字识别功能

iOS实现图像文字识别功能

作者: SuperZico | 来源:发表于2017-03-16 17:21 被阅读10099次

    最近在研究图像文字识别与图像对比的问题,遇到的一些坑和解决方案在这里记录一下

    首先使用的是Tesseract,一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,与Microsoft Office Document Imaging(MODI)相比,我们可以不断的训练的库,使图像转换文本的能力不断增强;如果团队深度需要,还可以以它为模板,开发出符合自身需求的OCR引擎。
    在github下载demo源码图像识别 Tesseract OCR,打开demo运行是可以的,但是自己放一张含有中文的图像时就会出现乱码,这时需要下载汉文包汉化包链接地址,在里面找到chi_sim.traineddata并下载。

    将chi_sim.traineddata放到项目下的tessdata文件夹,这里要特别注意,一定不要直接拖进Xcode,一定要在目录里面打开文件夹放进去。

    然后修改代码里的代码

    G8RecognitionOperation *operation = [[G8RecognitionOperation alloc] initWithLanguage:@"eng"];
    

    改为

    G8RecognitionOperation *operation = [[G8RecognitionOperation alloc] initWithLanguage:@"chi_sim"];
    

    问题1:改成chi_sim会报allow_blob_division
    解决方法是这个

    问题2:为什么改成汉化包OCR Result显示是空的或者是乱码
    暂时用原生的库只对黑体字识别率较高,如果图片中是其他字体或者有背景干扰就会显示为空,而且遇到复杂的黑体字就识别不了了,比如这样

    lALOsYP2kM0FNs0C7g_750_1334.png_620x10000q90g.jpg

    鑫被识别成了蠢

    想要有其他字体识别能力或者提高识别率需要进行字库训练,训练方法,这个需要大量的长时间的训练

    问题3:报"actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file tessdatamanager.cpp, line 53"错误
    这个是因为下载的 traineddata 版本不对,如果你报了这个错误应该下载这个版本的中文包,把之前的替换掉就可以了

    暂时我遇到的就是这三个问题,如果你使用此教程遇到更多问题欢迎留言

    相关文章

      网友评论

        本文标题:iOS实现图像文字识别功能

        本文链接:https://www.haomeiwen.com/subject/qoujnttx.html