最近在研究圖像文字識別與圖像對比的問題,遇到的一些坑和解決方案在這里記錄一下
首先使用的是Tesseract毅该,一款由HP實驗室開發(fā)由Google維護的開源OCR(Optical Character Recognition , 光學字符識別)引擎呛牲,與Microsoft Office Document Imaging(MODI)相比欠拾,我們可以不斷的訓練的庫逊躁,使圖像轉(zhuǎn)換文本的能力不斷增強缅疟;如果團隊深度需要唆铐,還可以以它為模板,開發(fā)出符合自身需求的OCR引擎爹耗。
在github下載demo源碼圖像識別 Tesseract OCR,打開demo運行是可以的耙考,但是自己放一張含有中文的圖像時就會出現(xiàn)亂碼,這時需要下載漢文包漢化包鏈接地址潭兽,在里面找到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顯示是空的或者是亂碼
暫時用原生的庫只對黑體字識別率較高,如果圖片中是其他字體或者有背景干擾就會顯示為空,而且遇到復雜的黑體字就識別不了了,比如這樣
鑫被識別成了蠢
想要有其他字體識別能力或者提高識別率需要進行字庫訓練,訓練方法,這個需要大量的長時間的訓練
問題3:報"actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file tessdatamanager.cpp, line 53"錯誤
這個是因為下載的 traineddata 版本不對,如果你報了這個錯誤應該下載這個版本的中文包,把之前的替換掉就可以了
暫時我遇到的就是這三個問題,如果你使用此教程遇到更多問題歡迎留言