畢佳晶,李 敏,鄭蕊蕊,許 爽,賀建軍,黃 荻,2
(1.大連民族大學 信息與通信工程學院,遼寧 大連, 116605;2. 北方民族大學 數(shù)學與信息科學學院,寧夏 銀川,750021)
光學字符識別(Optical Character Recognition, OCR)主要采用機器學習方法實現(xiàn),而深度學習技術(shù)的發(fā)展為OCR的研究提供了更先進的解決方案[1]。深度學習技術(shù)給模式識別領域的很多方面帶來了顯著的改善[2],但需要海量訓練數(shù)據(jù)才能滿足深度學習模型的泛化條件。數(shù)據(jù)庫的采集和整理工作需要消耗大量人力物力來兼顧規(guī)模性和準確性[3],僅靠人工收集整理樣本效率非常低,難以滿足實驗對數(shù)據(jù)規(guī)模的要求。特別是在我國少數(shù)民族文字識別的研究中,樣本數(shù)據(jù)的匱乏問題尤為突出[4]。原因在于目前能夠讀寫少數(shù)民族文字的人數(shù)有限,公開的數(shù)字化少數(shù)民族文獻資源短缺。因此亟待解決訓練樣本數(shù)據(jù)匱乏的問題。
采用數(shù)據(jù)增廣技術(shù)(Data Argumentation)生成數(shù)據(jù)(Synthetic Data)是目前擴大樣本規(guī)模,擴展樣本多樣性的有效途徑。M Jaderberg[5]等人通過對原有Google字體庫中的樣本采用字符間距調(diào)整,添加下劃線和投影畸變的數(shù)據(jù)生成方法進行擴展,并使用擴展后的數(shù)據(jù)集研究自然場景下的文本識別,達到了90.8%的識別率。PatricceY.Simard[6]等人使用鏡像、旋轉(zhuǎn)、仿射變換和扭曲等數(shù)據(jù)生成方法對MNIST數(shù)據(jù)集進行擴展,使用擴展后的數(shù)據(jù)集研究手寫數(shù)字識別,達到了99.6%的識別率。采用上述幾何變形方法擴展少數(shù)民族文字數(shù)據(jù)是一種很好的借鑒[7]。本文以滿文字符識別為研究背景,針對滿文文檔的特點,提出一種融合字體幾何結(jié)構(gòu)形變與圖像質(zhì)量變換的數(shù)據(jù)增廣技術(shù)框架。
在滿文字符識別的研究中以《滿語365句》為藍本初步構(gòu)建印刷體滿文單詞數(shù)據(jù)集,包含671類共2130個規(guī)范的印刷體滿文單詞圖像樣本[8],因此樣本數(shù)據(jù)集字體單一,且數(shù)量難以滿足訓練深度學習模型的要求。
本文提出一種滿文單詞圖像數(shù)據(jù)增廣技術(shù)框架,由字體幾何結(jié)構(gòu)變形和圖像質(zhì)量變換兩個模塊組成,分別采用9種基本的數(shù)據(jù)生成方法,模擬滿文文檔采集時的常見情況見表1。除使用單一數(shù)據(jù)生成方法外,對同一訓練樣本混合2種及2種以上的數(shù)據(jù)生成方法以進一步增加訓練樣本的數(shù)量和形式。
表1數(shù)據(jù)增廣技術(shù)框架
滿文文字的印刷體,具有字體規(guī)整且字符筆畫的粗細較為一致的特點。利用圖像形態(tài)學處理中的膨脹和腐蝕對字符圖像進行處理以改變其筆畫的粗細,模擬不同粗細的筆觸[9]。對字符圖像進行腐蝕和膨脹處理時,核的大小和形狀都對結(jié)果有影響。首先固定核大小為4×4,以常用的3種形狀的核(十字交叉型、矩形和圓形)分別進行膨脹和腐蝕處理的結(jié)果如圖1。綜合考慮處理效果和運算復雜度,選擇矩形核。
因為所處理字符的類別、形狀、筆畫粗細等差異較大,核的大小無法用一個統(tǒng)一的適用標準定義,只能通過實驗獲得適用范圍。以不同大小的矩形內(nèi)核處理一張滿文字符圖像結(jié)果如圖1(c):當核大小為2×2像素時(像素為單位)的效果和原圖幾乎無差別,而核大小為7×7和8×8時處理結(jié)果所包含的字符信息已有丟失。因此合適的處理內(nèi)核大小應為kernel∈{3,4,5,6},即形態(tài)學變換核大小的經(jīng)驗值為kernel∈{1/3w, 1/2w}的整數(shù),其中w表示滿文中軸線寬度。
圖1 采用不同形狀及大小內(nèi)核的形態(tài)學變換結(jié)果
James McCaffrey在對MNIST數(shù)據(jù)庫的數(shù)據(jù)增廣研究中提出彈性形變法模擬手寫數(shù)字扭曲的形狀[9]。對圖像進行彈性形變的關(guān)鍵是如何對每一個像素進行移動,使得相鄰像素的移動距離和方向相似的同時在全局表現(xiàn)出一定的隨機性。彈性形變算法的偽代碼如下:
(1)輸入:源圖像M;
(2)以源圖像M的尺寸(w,h),定義大小為(w,h)維度的兩個偏移矩陣MatX,MatY分別對應圖片像素的x和y方向的偏移對MatX、MatY的每一元素隨機生成-1到1的偏移值,生成所需目標數(shù)量的偏移矩陣;
(3)將高斯矩陣分別和MatX和MatY進行卷積,使相鄰隨機的偏移值獲得一定的相關(guān)性;
(4)將自定義扭曲幅度a 與MatX和MatY的每一元素相乘,得到調(diào)整后的偏移矩陣;
(5)利用MatX和MatY矩陣作為偏移矩陣生成扭曲后的圖像R;
(6)輸出:結(jié)果圖像R。
使用彈性形變法,可在一定程度上模擬手寫滿文時因手部不規(guī)則的抖動而引起的字體形變現(xiàn)象。其結(jié)果如圖2。
圖2 彈性形變變換結(jié)果
(1)
在源圖像和結(jié)果圖像中預設3組對應點來構(gòu)建映射關(guān)系,仿射變換的流程如圖3。
圖3 仿射變換流程及結(jié)果
在原圖像中選取3個固定點P1、P2和P3;在結(jié)果圖像中的對應點分別是Q1、Q2和Q3。如果采用無限制隨機法選取Q點,則有極大概率產(chǎn)生類似于圖3(c)所示的結(jié)果,出現(xiàn)字符信息嚴重缺失的現(xiàn)象。為解決該問題,本文提出在特定區(qū)域內(nèi)隨機選取Q1、Q2和Q3的方法:設原圖像的高為h寬為w,則特定區(qū)域的高h1= 0.2 ×h,寬w1= 0.2 ×w,其中0.2是通過大量實驗獲得的經(jīng)驗值。采用上述規(guī)則標定的特定區(qū)域位置即圖3(a)中點Q1、Q2和Q3所處的陰影區(qū)域。采用特定區(qū)域內(nèi)的仿射變換結(jié)果如圖3(b)所示,在保持原有仿射變換隨機性的同時,避免了結(jié)果圖像字符信息缺失的現(xiàn)象。
造成印刷體滿文樣本數(shù)據(jù)單一的另一原因是樣本數(shù)據(jù)均為黑色字體襯以白色背景,而真實場景下的滿文大多具有復雜的背景。本文中采用將字符圖像與各種采集自真實場景下的背景圖像進行融合的方法來更好的模擬真實場景下的字符圖像。此方法可以進一步擴展樣本數(shù)據(jù)的多樣性。設背景圖像為n×m階矩陣Ib ,其中第i行j列處點的值表示為bi,j(i≤n,j≤m),字符圖像二值化后為n×m階矩陣It,其中第i行j列處點的值表示為ti,j(i≤n,j≤m),則融合結(jié)果圖像Ir可以由矩陣Ib與矩陣It求哈達瑪乘積所得,即Ir=bij*tij,其中*表示哈達瑪乘積。同一滿文字符與采自不同真實場景下的背景相融合的效果圖如圖4。
現(xiàn)存的滿文文檔大多已產(chǎn)生不同程度的褪色現(xiàn)象。因此本文中采用將單詞圖像與背景進行線性混合操作的方法來模擬真實情況下的文檔褪色現(xiàn)象。線性混合操作是一種二元的像素操作,其原理為
dst=(1-a)*src+a*srd。
(2)
式中:α∈(0,1),表示背景圖像在結(jié)果圖像中所占的比例;dst表示結(jié)果圖像;src表示字符圖像;srd表示背景圖像。在實際應用中調(diào)整α的值可以實現(xiàn)不用程度的褪色模擬。以α值為0.5進行模擬的結(jié)果如圖5。
圖4 滿文單詞圖像背景融合示例
圖5 滿文圖像褪色現(xiàn)象模擬
字符圖像模擬光照不均可以簡化為在字符圖像上疊加白色光斑,光斑的亮度從光斑中心向周圍逐漸減小。由于字符圖像樣本的底色多為白色,字體多為黑色,因此對光斑的疊加可表示為
y=Ro+I*W,
(3)
式中:Rb為一點經(jīng)過混色后的顏色;Ro為該點原始的像素值;W為RGB表示純白色。I為當前點處的光斑亮度,取值隨位置變化:設虛擬的光斑中心在圖像的(Ox,Oy) 處,光斑的半徑為R像素,則圖像任意點(x,y)處的混合I值為
(4)
通過設置光斑的中心坐標和半徑即可實現(xiàn)字符圖像的模擬光照不均效果。設置光斑中心坐標(Ox,Oy)為(w/2,h/2),光斑半徑R=w/2其光照不均模擬效果如圖6。
圖6 光照不均現(xiàn)象模擬
實驗以采集自《滿語365句》的真實圖像為基本數(shù)據(jù),在此基礎上分別采用9種字符數(shù)據(jù)生成方法之一獲得初步圖像樣本,然后以這些圖像樣本為基礎對其使用另外的8種方法進一步擴展數(shù)據(jù)的多樣性和數(shù)量,部分混合生成結(jié)果如圖7。數(shù)據(jù)生成過程由一個小組獨立完成,組員之間所采用的方法也保持相對獨立,每位組員對每種字符的生成都采用了隨機機制,以確保生成的樣本數(shù)據(jù)間有較大的差異,進一步降低了生成的樣本數(shù)據(jù)在特征空間上的重復率。在訓練集和測試集劃分上,采用隨機置亂的方法進一步消除主觀因素的影響。
圖7 部分混合生成結(jié)果示意圖
分別采用支持向量機和卷積神經(jīng)網(wǎng)絡模型對印刷體滿文單詞進行識別。在進行支持向量機實驗時所用的數(shù)據(jù)集中每類滿文單詞共有300個樣本,其中200個樣本用于訓練,100個樣本用于測試,在對40類滿文單詞的識別中達到了90%的識別率。在進行卷積神經(jīng)網(wǎng)絡實驗時所用的數(shù)據(jù)集中每類滿文單詞共有70 000個樣本,其中60 000個樣本用于訓練,10 000個樣本用于測試,在對671類滿文單詞的識別中達到了97.83%的識別率。實驗結(jié)果表明本文提出的數(shù)據(jù)增廣技術(shù)框架是一種擴充機器學習訓練樣本數(shù)據(jù)量的有效方法,能夠提供多樣化的訓練樣本。
為了解決滿文識別研究中遇到的樣本缺乏問題,本文提出了使用人工數(shù)據(jù)生成方法擴展樣本數(shù)據(jù)的技術(shù)框架,該框架由字體幾何結(jié)構(gòu)變形和字符圖像質(zhì)量變換兩個模塊構(gòu)成,共包含9種基本數(shù)據(jù)生成方法。實驗證明采用本文提出的數(shù)據(jù)增廣方法生成的訓練樣本能夠滿足機器學習方法對訓練樣本規(guī)模和多樣性的需求,是一種擴充光學字符識別數(shù)據(jù)規(guī)模的有效方法。
[1] FEDOROVICI L O, PRECUP R E, DRAGAN F, et al. Evolutionary optimization-based training of convolutional neural networks for OCR applications[C].tem Theory: Control and Computing, 2013:207-212.
[2] LECUN Y, BENGIO Y, HINTON G. Deep learning.[J]. Nature, 2015, 521(7553):436-44.
[3] 金連文,鐘卓耀,楊釗,等. 深度學習在手寫漢字識別中的應用綜述[J]. 自動化學報,2016 (8):1125-1141.
[4] 鄭蕊蕊,李敏,吳寶春. 基于MATLAB GUI的少數(shù)民族文字手寫體采集系統(tǒng)——以滿文為例[J].大連民族學院學報,2014(3):306-309.
[5] JADERBERG M, SIMONYAN K, VEDALDI A, et al. Synthetic data and artificial neural networks for natural scene text recognition[J]. EprintArxiv, 2014(1):1-8.
[6] SIMARD P Y, STEINKRAUS D, PLATT J C. Best practices for convolutional neural networks applied to visual document analysis[C]// International Conference on Document Analysis and Recognition. IEEE Computer Society, 2003:958-963.
[7] 王會靖. 基于局部特征的復雜背景圖像內(nèi)文本識別研究與實現(xiàn)[D].上海:上海交通大學,2010.
[8] 周興華,李敏,鄭蕊蕊,等. 印刷體滿文文字數(shù)據(jù)庫的構(gòu)建與實現(xiàn)[J].大連民族學院學報,2015(3):270-273.
[9] JAMES M C. Distorting the MNIST Image Data Set[EB/OL] (2014-07)[2016-12-13].https://msdn.microsoft.com/en-us/magazine/dn754573.aspx.
[10] RAFAEL C G, RICHARD E W . 數(shù)字圖像處理[M].阮秋琦,譯.北京:電子工業(yè)出版社,2011.