摘要:
圖片文字識別OCR(Optical Character Recognition,光學字符識別)應用非常廣泛。例如DNA序列圖片識別;PDF文字識別;車牌號碼自動識別;手機上的手寫輸入識別等。近年來該應用更加廣泛,必然出現在教育領域的一款手機應用,將手機把試卷拍照查詢答案,首先就是圖片文字識別處理。相信越來越有魔力的應用會繼續產生。而圖片文字識別唯一重要的標準就是識別率。現在的圖片文字識別沒有100%的識別率,這也成為了圖片文字識別應用發展的一大瓶頸,因此探索一個好的圖片文字識別算法很有意義。圖片文字識別涉及圖片處理技術、模式識別技術、數據庫存儲等。本文圖片文字識別基本流程一般是:獲得圖片、去噪處理、二值化處理、矯正圖片、行查找、文字定位、細化處理、文字特征掃描、查詢顯示文字等處理過程。主要使用了linux下的opencv圖像處理庫,該庫圖像處理豐富,性能良好;文字的特征碼存儲在Mysql數據庫中。圖片識別計算量大,占用存儲也比較多。因此性能和資源也是需要考慮的一個因素。文字識別結束后如果能根據上下文詞匯進行二次校驗將是提升準確率的一個好方法,由于本著著重研究識別算法的精確度,未包含該項步驟。在后續的工作中再考慮使用該方法進一步提升準確率。Opencv提供了圖片處理的基本函數,例如圖片存儲,數據矩陣的遍歷等,去噪處理中的平滑處理、二值化處理等。矯正圖片就是將圖片按照文字的行擺正,該步驟是比較關鍵的一步,后面的行定位等都依賴于圖片矯正。文字的行定位和文字定位即確定文字區域,方便文字特征掃描,細化處理是將文字細化為一個像素,而又不破壞連通性。細化處理是方便特征掃描而做的處理。數據庫中存儲文字特征碼和UTF8編碼對應起來。圖片文字識別中包含了標點符號識別、漢字識別、英文字母識別等。本著主要針對印刷體文字識別。該項識別應用占大多數。其中漢字識別比較復雜,本文采用了獨特的連通域掃描識別筆畫,并根據筆畫的位置產生特征碼。筆畫就是一筆不間斷的書寫而成的。在筆畫識別過程中本文使用了筆畫直線化概念,認為所有筆畫都可以簡單的分為直線和曲線,將文字簡化為直線和曲線以及交叉點組成可以即精準右簡化了文字特征碼的掃描。本文闡述了整個圖片文字識別系統的工作過程,以及使用的技術和算法。針對opencv的使用和數據庫的使用。每一個處理過程都是需要試驗來驗證的。通過展示變化圖片可以清晰的了解處理過程。經過大量試驗驗證了其準確性和穩定性。該圖片文字識別系統滿足了當初的設計意圖。
展開