劉志偉
(四川大學計算機學院,成都 400000)
基于CNN網絡的漢字圖像字體識別
劉志偉
(四川大學計算機學院,成都 400000)
在傳統(tǒng)的OCR文字識別系統(tǒng)中,研究者主要關注的主要問題是文字的識別。但是由于現代印刷技術的發(fā)展與應用,對于印刷體文字版面的恢復成為當前一種重要應用需求。不僅需要識別出文字,還應該識別出文字的字體格式。目前針對漢字字體識別的研究較少,而且大部分基于特征提取方法,主要以局部特征,和全局特征為主。提出一種基于CNN的深度學習方法,來處理漢字字體識別。和以往的方法相比較,該方法識別率高,速度快,適用于復雜的應用環(huán)境,具有良好的實際使用價值。
OCR;CNN;識別;字體識別;特征提取
現代辦公要將紙質文檔轉換為電子文檔的需求越來越多,目前針對這種應用場景的系統(tǒng)為OCR系統(tǒng),也就是光學字符識別系統(tǒng),例如對于古老出版物的數字化。但是目前OCR系統(tǒng)[1]主要針對文字的識別上,對于出版物的版面以及版面文字的格式的恢復,并沒有給出相應的解決方案。對于版面恢復中主要遇到的困難是文字字體的恢復。對于漢字字體識別問題,目前主要有幾種方法,但是都是基于人工特征提取的方法。以往的方法主要分為兩大類,第一種為整體分析法,將一整片數據看做采用小波紋理分析抽取字體特征用于分類[2];使用濾波器提取文字的全局文字特征作為分類特征;使用小波包做多級分解,提取字體紋理特征的方法了[3];使用人工經驗方式提取特征??梢钥吹竭@些方法都有一個重要的缺陷,如果一個文字整個版面含有不同的字體信息,這種場景就不能采用整體分析法。第二種為個體分析法,個體分析法對象為單個字符圖像,依然采用小波分解提取特征。這種方法需要知道單個漢字的圖像,對于現代出版物的識別系統(tǒng)中,可以很容易得到單個漢字的圖像。很顯然這種方法可以解決整體法不能解決文字中夾雜其他字符比如英文的情況。另外有人提出特征點[4]的方法來處理漢字字體識別,但是特征點的提取也是有問題。因為定義提取的特征需要人為干預,
由此可見,在考察完整體法和個體法來看,個體法明顯更靈活并適用于多種情況。本文將采用個體法來實現漢字字體識別。但是應該看到傳統(tǒng)方法基本上都是采用圖像處理的方法,計算復雜度都很高。另外不同漢字的外形差異是不一樣的,而采用圖像處理的方法往往不能有效解決這個問題。
綜上所述,我們可以看到傳統(tǒng)漢字字體識別方法的不足,因為漢字字符的復雜性,特征提取方法不能處理多變的漢字外形,特征點提取方法需要人工專家定義重要的特征點位置。而且,對于哪些特征點重要也不能給出統(tǒng)一的標準。故而本文提出一種基于CNN[5]的字體識別方法。CNN網絡可以靠卷積核以及池化層,自動生成特征,這就避免人為特征提取上的不穩(wěn)定性以及盲點。我們通過計算機內嵌的字體生成實驗數據,然后訓練CNN深度學習網絡。最終實現結果顯示出了良好的穩(wěn)定性,較高的正確率,一次訓練多次使用等通用性好的優(yōu)點。
與傳統(tǒng)特征提取方法不同,卷積神經網絡通過卷積核提取特征,每一個神經元和前一層的局部感受區(qū)域相連,通過卷積核計算局部特征。以卷積窗口的移動生成特征平面,每一個特征平面共享一個卷積核,做到權值共享,降低了權值的數量的優(yōu)點。CNN網絡主要用于識別二維圖像,由于共享權值采用監(jiān)督學習的方式得到。所以避免了人為提取特征,故而CNN具備從訓練數據中學習共享權值的優(yōu)點。通常CNN網絡分為多層,其中一種叫卷基層,一種叫池化層,卷基層和池化層可以有多個。分別用于特征的提取和特征參數的處理。
如圖1所示,輸入數據為一張32x32的像素圖片。先看第一層卷基層,如果采用5x5的卷積核也就是25個權值。然后通過平移卷積窗口得到一個28x28的特征圖。上圖中我們采用6張?zhí)卣鲌D,也就是提取了6種不同的特征。然后進入第二層池化層,我們以第一層卷基層的輸出數據,作為池化層的輸入數據。采用2x2的均值化方法,得到6張14×14的池化層數據。接下來反復的采用這種方法,可以設置多層網絡來生成復雜的預測模型。CNN網絡最后一部分為直接相連部分,和傳統(tǒng)神經網絡一樣,最后采用損失函數來計算誤差值。通過誤差值采用向后傳導的方式修正權值,達到訓練網絡的目的。
在現代計算機中有各種truetype字體。所以我們通過獲取計算機內部的字體生成圖像數據。使用.NET編程生成數據,我們采用.NET提供的圖像繪制功能生成漢字圖片,核心代碼如下。輸入參數為需要生成圖像的漢字字符,輸出為一個bmp位圖。
圖1
圖2
我們把在實際生活中常用的8種字體,宋體、楷體、隸書、黑體、幼圓、華文行楷、華文新魏、華文舒體,作為我們研究的重點。我們使用7800多個漢字字庫中的數據,對每一個漢字生成一個64×64的圖片數據,對于這八種字體我們總共可以得到62400多個圖像數據,并對這些圖像數據根據字體的不同分別進行類標,宋體1、楷體2、隸書3、黑體4、幼圓5、華文行楷6、華文新魏7、華文舒體8。然后,隨機抽取10000個數據集作為驗證數據,剩下50000個數據作為訓練數據。實驗數據生成如圖2,分別是幼圓、隸書、黑體、宋體、華文行楷、華文舒體、華文新魏、楷體。
由于在實際的應用中,光學掃描件受到噪聲的干擾,圖像中會出現噪點扭曲以及旋轉的狀況。所以我們另外編制程序對計算機原始生成的圖像數據,進行隨機的噪點生成,旋轉,以及扭曲操作,這樣就可以生成更多的數據。我們對于每一個圖像采用這種方法生成新數據,數據量至少提高三倍。也就是187200個數據。對于采用不同的旋轉角度,不同的噪聲點生成方法以及扭曲算法的隨機生成。我們可以獲得更多的數據量。
我們選用流行的CNN網絡框架Caffe,深度學習Caffe框架是一個C++/CUDA架構,支持命令行以及Python和MATLAB接口,CPU和GPU可以切換的易用性框架。Caffe框架的優(yōu)點有,易用性,模型和優(yōu)化都是靠文本的方式。另外速度快,可以結合cuDNN運行海量數據,模塊化程度高,開放性好等點。
由于我們的輸入數據是64x64的位圖信息,第一層卷基層我們目前采用10x10的卷積核來提取特征。定義32張?zhí)卣髌矫孑敵?,窗口滑動步長為2。第一層代碼簡要示例如下所示。池化層的定義也采用類似的結構定義。而我們采用的CNN網絡定義,結構流程圖見圖3。
圖3
本文試驗環(huán)境搭配為,英特爾i5-4210處理器,英偉達GTX850M核心,內存12GB,在CUDA7.5下運行Caffe。實驗數據由180000個字符組成,其中150000作為訓練數據,30000作為驗證數據。Caffe網絡迭代60000次訓練,每1000此生成一次錯誤率與正確率的驗證結果,在Windows操作系統(tǒng)下運行10多個小時。得到錯誤率和正確率的結果如圖4。橫坐標代表,每1000此迭代縱坐標代表準確率以及錯誤率。由圖4可以清晰的看到CNN方法對于漢字字體識別的準確率非常高,而錯誤率很低。這是一種在實際應用中非常好的方法。
圖4
本文給出了基于CNN網絡的漢字字體識別方法。詳細說明CNN網絡的設置方法以及訓練數據的生成方法。該方法解決了以往字體識別體統(tǒng)的存在人為提取特征的不足,對于印刷體漢字的字體識別做到了很高的字體識別率,對于解決實際應用中的排版修復有一定的實際意義。
參考文獻:
[1]Xing Xiang-hua,Gu Guo-hua.Method of Quickly Recognizing Vehicle Plate Based on Pattern Matching and Characteristic Dot Matching.Optoelectronic Technology,2003,23(4):268-270.
[2]Zhu Yong,Tan Tie-niu,Wang Yun-hong.Font Recognition Based on Global Texture Analysis.IEEE Transactions on Pattern Analysis and Machine Intelligence,2001,23(10):1192-1200.
[3]王洪,汪同慶,劉建勝,朱永權,黃甫征聲.基于小波包紋理分析的字體識別方法.光電工程,2002,29(S1):62-65.
[4]王愷,靳簡明,史廣順,王慶人.基于特征點的漢字字體識別研究.天津:南開大學機器智能研究所.北京:NEC中國研究院,2008.2
[5]Jurgen Schmidhuber.Deep Learning in Neural Networks:An Overview,The Swiss AI Lab IDSIA Istituto Dalle Molle di Studi Sull'Intelligenza Artificiale University of Lugano&SUPSI Galleria 2,6928 Manno-Lugano Switzerland 2 July 2014.
Chinese Text Font Recognition Based on CNN
LIU Zhi-wei
(College of Computer Science,Sichuan University,Chengdu 610044)
In the traditional OCR character recognition system,the main problem is the recognition of characters.However,due to the development and application of modern printing technology,the restoration of printed text layout became an important application requirement.It is not only to recognize the text,but also recognize the text font style.At present,there are few studies on the character recognition of Chinese characters,and most of them are based on the feature extraction methods,especially on local features and global features.Proposes a CNN based depth learning method to deal with Chinese character font recognition.Compared with the previous methods,this method has high recognition rate and high speed,which is suitable for complex application environment,and has good practical application.
OCR;CNN;Recognition;Font Recognition;Feature Extraction
1007-1423(2017)05-0067-04
10.3969/j.issn.1007-1423.2017.05.016
劉志偉(1987-),男,重慶人,本科,研究方向為人機交互、模式挖掘
2016-12-06
2017-02-10