范道爾吉,高光來,武彗娟
(1. 內(nèi)蒙古大學 計算機學院,內(nèi)蒙古 呼和浩特 010021;2. 內(nèi)蒙古大學 電子信息工程學院,內(nèi)蒙古 呼和浩特 010021)
基于字素分割的蒙古文手寫識別研究
范道爾吉1,高光來1,武彗娟2
(1. 內(nèi)蒙古大學 計算機學院,內(nèi)蒙古 呼和浩特 010021;2. 內(nèi)蒙古大學 電子信息工程學院,內(nèi)蒙古 呼和浩特 010021)
隱馬爾科夫模型(HMM)對序列數(shù)據(jù)有很強的建模能力,在語音和手寫識別中都得到了廣泛的應用。利用HMM研究蒙古文手寫識別,首先需要解決的問題是手寫文字的序列化。從蒙古文的構詞和書寫特點看,蒙古文由多個字素從上到下串聯(lián)構成。選擇字素集合和詞的字素分割是手寫識別的基礎,也是影響識別效果的關鍵因素。該文根據(jù)蒙古文音節(jié)和編碼知識確定了蒙古文字母集合,共包括1 171個字母。通過相關性處理、HMM排序篩選等手段得到長字素集合,共包括378個字素。對長字素經(jīng)過人工分解,獲得了50個短字素。最后利用兩層映射給出了詞轉字素序列的算法。為了驗證長短字素在手寫識別中的效果,我們在HTK(hidden Markov model toolkit)環(huán)境下利用小規(guī)模字庫實現(xiàn)了手寫識別系統(tǒng),實驗結果表明短字素比長字素有更好的性能。文中給出的字素集合和詞轉字素序列的算法為后續(xù)基于HMM的蒙古文手寫識別研究奠定了基礎。
蒙古文;字素;HMM;手寫識別
各種語言的手寫體識別是人工智能領域最具有挑戰(zhàn)性的研究課題之一,主要包括脫機手寫體識別和聯(lián)機手寫體識別。國外在文字識別領域較早地開展了此項工作,由于西文(如英文、法文)大多是拼音文字,字母數(shù)量少且書寫規(guī)整,其印刷體和手寫體識別產(chǎn)品早已問世。在國內(nèi)許多大專院校及科研單位都開展了漢字識別技術的研究工作,且卓有成效。文獻[1]中回顧了漢字手寫識別發(fā)展,及近年來基于深度學習的手寫識別研究方法在漢字識別中的應用成果。蒙古語是古老的民族語言之一,屬于阿爾泰語系黏著語。在我國,蒙古語和蒙古文有廣泛的使用人群,但蒙古文手寫識別系統(tǒng)還處于研究階段。文獻[2-3]中最早研究了聯(lián)機蒙古文識別技術中的特征提取、切分、分類器設計等內(nèi)容。文獻[4]中主要研究了印刷體蒙古文識別中的傾斜校正、字素切分、特征匹配等內(nèi)容。
一般而言,手寫識別系統(tǒng)主要包括數(shù)據(jù)預處理、特征提取和分類識別三部分,其中識別方法根據(jù)語言特點和識別單位可分為基于切分策略和基于無切分策略兩種方式。例如漢字識別,如果識別單位是單個字,可采用無切分方法;對于文本行識別,切分和無切分策略都適用[5]。但蒙古文、阿拉伯文等詞長不等,只能采用基于切分的策略,即利用滑動窗口按一定步長滑窗,對窗口內(nèi)的圖形進行分類或建模[6-7],再結合統(tǒng)計語言模型得出識別結果[8]。
本文提出了基于字素的目標序列構建方案,并給出了兩種字素集合,同時在基于HMM的手寫識別系統(tǒng)上對兩種字素集合與Unicode編碼間進行了性能評估,最終短字素集合表現(xiàn)出了最優(yōu)性能。字素是構成蒙古文詞匯的最小公共圖形集合,也是文字序列化單位。通過串聯(lián)字素可表達任意蒙古文單詞,但字素集合的選擇沒有相關理論或統(tǒng)一的方法,在實際中,需要考慮識別系統(tǒng)的準確率、系統(tǒng)訓練規(guī)模和詞編碼轉字素序列的復雜度等因素。本文從蒙古文元音、輔音出發(fā),找出了全部的字母表。由于字母表包含相同形狀的字母,所以不能直接作為字素集合。我們把每個字母轉換成圖片,通過相關性刪除重復字母,并提出圖片排序等方法篩選出長字素集合。在長字素基礎上又提出了短字素集合,并利用長、短字素構建基于HMM的蒙古文手寫識別系統(tǒng),驗證了基于字素分割手寫識別系統(tǒng)的可行性,并為基于深度學習的蒙古文手寫識別研究奠定了基礎。
本文后續(xù)章節(jié)安排如下: 第二部分介紹了蒙古文編碼、字素、構成等內(nèi)容;第三部分介紹了字素選擇方法和過程;第四部分提出了詞轉字素序列的算法;最后通過實驗驗證了字素分割在手寫識別系統(tǒng)中的效果。
蒙古文有獨特的構詞和書寫方法,由7個元音、17個輔音及用于外來語書寫的1個元音和9個輔音構成。國際標準編碼Unicode把0x1820~0x1842的范圍分配給了蒙古文[11]。元音和輔音根據(jù)在詞中的不同位置和不同上下文會有不同的形狀,稱之為顯現(xiàn)字符。因為不同的顯現(xiàn)字符在Unicode中沒有單獨的編碼,所以文字顯示時從名義字符轉顯現(xiàn)字符需要文字引擎,并依靠上下文進行處理。
音節(jié)是構成蒙古文單詞的最大單元。音節(jié)可以由單獨的元音、元音+輔音、輔音+元音、輔音+元音+輔音等多種形式構成。圖1為蒙古文詞、音節(jié)、顯現(xiàn)字符、名義字符、Unicode編碼的示意圖。
圖1 蒙古文構成元素
圖1所示文字由2個音節(jié)構成,2個音節(jié)都由3個字符構成,形式為輔音+元音+輔音。名義字符出現(xiàn)在詞的不同位置具有不同的顯現(xiàn)形式,整詞由6個編碼表示。在手寫識別中,最小建模單元的選擇至關重要。由于蒙古語構詞靈活,所以詞的數(shù)量非常巨大,整詞作為建模對象對于實用系統(tǒng)幾乎不可能。我們把由單元音、單輔音、輔音+元音構成的所有組合,以及它們在詞首、詞中、詞尾和獨立出現(xiàn)時的不同變體構成的集合定義為蒙古文字母表。按8個元音、26個輔音、4個位置計算,字母表中至少應該包括942個字母。同一個字母在同一個位置也有不同的變體。最終我們確定了1 171個字母。對于上下文關聯(lián)模型,字母數(shù)量也非常巨大,且字母表中有相同形狀的字母。
蒙古文屬于黏著語,構詞靈活,詞匯量非常巨大。由于詞匯量大,手寫識別無法對整詞建模,因此必須采用基于分割的識別方式。在大詞匯量連續(xù)語音識別中,采用音素作為最小的建模單位,類似地在大詞匯量手寫識別中,我們定義字素為最小的建模單位。本節(jié)主要研究字素的選擇方法,最終給出了兩套字素集合。
3.1 形同字母消除
通過相關性篩選后獲得的字素集合中有481個圖像,但其中還有很多相似圖像。由于長度和位置上的偏差相關性會變得很小,所以算法1無法消除全部類似圖片。
3.2 字素排序
為了便于查找相同或相近的圖像,提出了基于HMM模型的圖像排序思想。首先,對每個字素圖像做分幀和特征提取處理,然后把圖像變成序列;其次,利用序列數(shù)據(jù)為每個字素建立HMM建模;最后,計算各個序列在各個HMM模型中的生成概率并排序。
如圖2所示的幀,從上到下,每幀4×24大小,幀重疊長度2個像素(圖中沒有表示重疊效果)。由于原始數(shù)據(jù)各維度之間的相關性很大,所以用稀疏編碼器[12]進行了維度壓縮和解相關處理。稀疏編碼器輸入層有96個神經(jīng)元,隱含層有24個神經(jīng)元,輸出層也有96個神經(jīng)元。稀疏編碼器屬于無監(jiān)督學習的神經(jīng)網(wǎng)絡,通過訓練使輸入數(shù)據(jù)為X時輸出也為X,則隱含層的輸出即可看作是輸入數(shù)據(jù)的特征。在訓練數(shù)據(jù)量為20萬幀、稀疏參數(shù)sparsity Param=0.2、稀疏權值beta=1、權值懲罰量lambda=6.7000e-006時,獲得較好的效果。
HMM模型對連續(xù)變化的隨機過程有較好的建模能力。文中定義了如圖3所示具有三狀態(tài)的HMM模型,其中每個狀態(tài)可以自轉移,也可以轉移到下一個或下下一個狀態(tài)。
圖2 圖形分幀圖3 HMM結構
算法2每次需要選擇一個基準字素,然后把與基準字素相近的其他字素排序到最前面,以便人工篩查。通過該方法可以提高尋找相似字素的準確率。圖4顯示了一次排序的效果,從中可以看出與第一個相似的圖像都排到了最前面。
圖4 基元排序效果
3.3 字素集合
最終我們選出了378個字素,將其定義為長字素集合,如圖5所示。長字素中涵蓋了蒙古文構詞的所有元素,任意詞都可以由長字素的串聯(lián)表達。長字素集合的數(shù)量還是比較大,如果做上下文相關建模,模型數(shù)量可能會非常龐大。為了進一步減少字素數(shù)量,我們對長字素進行了人工分解,定義出了短字素集合,如圖6所示。短字素中只有50個元素,但可以串聯(lián)表達出任意一個長字素。
圖5 長字素集合
圖6 短字素集合
HMM模型訓練時,為了省去煩瑣的字素邊界標注,把整個詞序列作為輸入數(shù)據(jù),但同時需要另一個輔助信息,即詞與字素序列對應關系。人工生成對應關系是一項非常耗時的工作,因此下面介紹一種自動生成的算法。長字素來自于字母表,把每個字母映射到長字素上獲得“字母長字素映射表”。一個長字素可以由多個短字素串聯(lián)構成,把每個長字素映射到短字素序列上獲得“長短字素映射表”?!白帜搁L字素映射表”按兩級排序,第一級按字母的屬性(獨立、詞首、詞中、詞尾)排序,第二級按字母編碼長度的倒序排序。每個字母都有唯一的位置屬性: 獨立、詞首、詞中或詞尾。長度倒序排序的目的是優(yōu)先匹配長字母。算法3給出了偽代碼描述的算法。
為了驗證長短字素集合在手寫識別中的效果,我們搭建了基于小規(guī)模手寫字庫的蒙古文手寫識別系統(tǒng)。系統(tǒng)利用HMM為字素建模,并用字典和語言模型構建了解碼網(wǎng)絡。整個系統(tǒng)在小規(guī)模手寫數(shù)據(jù)上進行了訓練,并在測試集上進行了長短字素的性能比較。實驗中我們使用HTK實現(xiàn)了HMM訓練和解碼功能。
5.1 數(shù)據(jù)準備
實驗用小規(guī)模手寫字庫的文字來自于小學一年級課本,共包括939個單詞。我們?yōu)槊總€單詞采集了30人次的手寫文本。書寫團隊由50人組成。書寫者在A4紙的固定位置書寫蒙古文。最后所有的紙張被掃描成圖片,并經(jīng)過一系列預處理后生成寬度48像素,高度自適應的手寫字庫。共采集到了28 484個有效手寫樣本,其中80%作為訓練數(shù)據(jù),20%當作測試數(shù)據(jù)。
我們利用4×48大小的滑動窗口對每個文字圖片做了分幀處理,其中幀重疊長度為2像素。由于原始幀各個維度之間相關性過大,所以不利于直接訓練HMM模型。我們利用稀疏編碼器對每個原始幀做了解相關和降維處理。最終每個文字圖片變成了32維特征序列,并被轉換成了HTK格式文件。其中訓練用數(shù)據(jù)文件輸出到trainfeature目錄中,共有22 787個文件;測試用數(shù)據(jù)文件輸出到testfeature目錄中,共有5 697個文件;為了方便使用蒙古文,在實驗中,蒙古文采用ASCII碼表示,且ASCII碼和Unicode編碼間可以相互轉換。訓練數(shù)據(jù)和測試數(shù)據(jù)的標注文本分別記錄在trainprompts.txt和testprompts.txt文件中。這兩個文件也需要手動生成。
利用HTK實現(xiàn)語音識別時需要發(fā)音詞典,即記錄單詞和音素序列對應關系的文件。同理,手寫識別時也需要單詞和字素序列對應的文件,這里我們叫做“構成詞典”。構成詞典通過算法3可以自動生成。由于我們要比較長短字素性能,所以要生成兩套構成詞典。本實驗的任務目標是每次只識別一個單詞,即每次只輸入一個手寫圖片。所以這里我們使用了1-gram語言模型。詞匯集大小固定為939個單詞。任務語法信息記錄到gram.txt文件中。內(nèi)容為:
$WORD = hele | biqig | ... | degegur;( [ $WORD ] )
準備好上述文件之后,其他的一些重要文件可以通過HTK命令或腳本自動生成。例如HTK用任務語法文件net.slf可以由gram.txt文件通過HParse命令轉換獲得。文字級標注文件trainwords.mlf可以由trainprompts.txt通過prompts2mlf腳本轉換獲得。字典文件dict.txt和單字素列表文件monophones.txt可以由 “生成字典”通過HDMan命令獲得。字素級標注文件可以由字典文件和文字級標注文件通過HLEd命令獲得。
每個字素用7狀態(tài)(2個不發(fā)射)left-right結構HMM描述。每個狀態(tài)可以自轉移,也可轉移到下一個狀態(tài)。每個狀態(tài)觀察數(shù)據(jù)分布用混合高斯分布(GMM)描述,混合數(shù)定為5。初始HMM定義采用HTK格式描述并保存到proto.txt。GMM的均值和方差用全部訓練數(shù)據(jù)進行初始化。
5.2 模型訓練及解碼
利用HERest命令對所有HMM模型進行參數(shù)估計,并把參數(shù)重建后的HMM模型輸出到 model rain1 目錄中。再用HERest對model rain1中的HMM進行再次參數(shù)估計,并輸出到model rain2目錄中。同理再重復一次,獲得最終的單字素HMM模型,輸出到model rain3目錄中。其中HERest的參數(shù)“-t” 被設置為“250.0 150.0 1000.0”。
為了得到三字素模型,需要準備三字素級標注文件。它可通過單字素級標注文件使用HLEd命令增加參數(shù)“WB sil; TC;DE sil”獲得。三字素HMM定義文件可以在單字素模型基礎上通過共享一些狀態(tài)或轉移概率獲得。三字素通常用“A-B+C”形式表示,意為特指出現(xiàn)在A后C前的字素B。這里我們并沒有使用復雜的決策樹,而采用簡單的一種共享策略。所有類似“*-B+*”三字素的HMM共享轉移概率矩陣。有了三字素HMM模型后,同單字素訓練一樣用HERest命令做3次參數(shù)估計,最終的模型輸出到model rain7目錄中。
HMM模型、字典和語言模型逐層合并后構成龐大的解碼網(wǎng)絡。HVite命令可以在解碼網(wǎng)絡上根據(jù)輸入利用“token”傳遞算法查找最優(yōu)解碼路徑。解碼結果與正確結果通過HResults命令計算出識別準確率。
5.3 實驗結果及討論
我們分別使用Unicode編碼、長基元和短基元構建了單字素和三字素系統(tǒng),識別準確率如表1所示。其中“N”是數(shù)據(jù)集中全部單詞數(shù)、“D”是錯誤識別單詞中屬于“刪除錯誤”個數(shù)、“S”是錯誤識別單詞中屬于“替換錯誤”個數(shù)、“I”是錯誤識別單詞中屬于“插入錯誤”個數(shù)。ACC代表準確率,利用式(2)計算。
表1 實驗結果
單Unicode系統(tǒng)在測試集上的準確率只有12.90%,遠遠低于基于字素的系統(tǒng),主要原因就是Unicode不表示顯現(xiàn)字符,系統(tǒng)對不同形狀建模困難。長短單字素系統(tǒng)在訓練集和測試集上準確率幾乎一致,且識別率比較低,說明單字素的建模能力有限,且蒙古文字素之間的關聯(lián)性比較嚴重。這與蒙古文的實際情況比較吻合。但在單字素系統(tǒng)中,短字素模型的準確率在訓練集和測試集上都比長字素模型提高了將近8%。三字素模型普遍優(yōu)于單字素模型,其中長字素模型在訓練集和測試集上分別提高了46.57%和11.43%,短字素模型在訓練集和測試集上分別提高了38.27%和21.98%。在訓練集上長、短三字素模型的準確率幾乎一致,但在測試集上短字素模型比長字素模型提高了19.82%,說明在上下文關聯(lián)建模中短字素集合有更好的建模能力。其原因在于短字素集合數(shù)量較少,三字素數(shù)量也比較少,因此可以得到充分的訓練。在短字素集合中,各個字素獨立性強,而在長字素集合中,字素間還有很多相似部分。三Unicode系統(tǒng)的性能比單Unicode系統(tǒng)有了非常大的提升,主要原因是利用三Unicode系統(tǒng)后根據(jù)上下文已經(jīng)能確定部分顯現(xiàn)字符,因此系統(tǒng)的建模能力也有所提升,但在測試集上的識別率還是比短字素低14.2%。
在基于HMM模型的手寫識別系統(tǒng)中 “構成詞典”是非常重要的輔助信息。通過本文定義的字素和詞轉字素序列算法可以自動生成“構成詞典”,這可以節(jié)省大量的人力勞動,同時保證信息的正確性。文中定義了兩套字素集合,實驗結果表明短字素集合有更好的性能。文中我們在小規(guī)模字庫上單獨利用HMM模型實現(xiàn)了基于分割的蒙古文手寫識別系統(tǒng),在后續(xù)研究中我們將致力于大詞匯量和HMM+深度神經(jīng)網(wǎng)絡混合模型的蒙古文手寫識別研究。
[1] 金連文, 鐘卓耀, 楊釗,等. 深度學習在手寫漢字識別中的應用綜述[J]. 自動化學報, 2016, 42(8):1125-1141.
[2] 吳偉.聯(lián)機手寫蒙古文字識別技術的研究與實現(xiàn)[D].呼和浩特: 內(nèi)蒙古大學碩士學位論文,2005.
[3] 白文榮.聯(lián)機手寫蒙古文字識別技術的研究[D].呼和 浩特: 內(nèi)蒙古大學碩士學位論文,2007.
[4] 魏宏喜.印刷體蒙古文字識別中關鍵技術的研究[D].呼和浩特: 內(nèi)蒙古大學碩士學位論文,2006.
[5] Su T H, Zhang T W, Guan D J, et al. Off-line recognition of realistic Chinese handwriting using segmentation-free strategy[J]. Pattern Recognition, 2009, 42(1):167-182.
[6] El-Hajj R, Likforman-Sulem L, Mokbel C. Arabic handwriting recognition using baseline dependant features and hidden Markov modeling[C]//Proceedings of the Eighth International Conference on Document Analysis and Recognition, 2005:893-897.
[7] Al-Hajj R, Mokbel C, Likforman-Sulem L. Combination of HMM-based classifiers for the recognition of Arabic handwritten words[C]//Proceedings of the 12th International Conference on Document Analysis and Recognition. IEEE Computer Society, 2007:959-963.
[8] 馬志強, 張澤廣, 閆瑞,等. 基于N-Gram模型的蒙古語文本語種識別算法的研究[J]. 中文信息學報, 2016, 30(1):133-139.
[9] Espana-Boquera S, Castro-Bleda M J, Gorbe-Moya J, et al. Improving offline handwritten text recognition with hybrid HMM/ANN Models[J]. IEEE Transactions on Pattern Analysis amp; Machine Intelligence, 2011, 33(4):767-79.
[10] Graves A, Schmidhuber J. Offline handwriting recognition with multidimensional recurrent neural networks[C]//Proceedings of the Conference on Neural Information Processing Systems, Vancouver, British Columbia, Canada, December. DBLP, 2012:545-552.
[11] 王震, 劉匯丹, 吳健. 新標準體系下蒙古文變形顯現(xiàn)模型的設計與實現(xiàn)[J]. 中文信息學報, 2013, 27(1):108-114.
[12] Baldi P, Guyon G, Dror V, et al. Autoencoders, unsupervised learning, and deep architectures editor: I [J]. Journal of Machine Learning Research, 2012.
范道爾吉(1980—),博士研究生,講師,主要研究領域為人工智能,模式識別與蒙古文信息處理。
E-mail:fandaoerji@126.com
高光來(1964—),教授,主要研究領域為人工智能,模式識別與蒙古文信息處理。
E-mail:csggl@imu.edu.cn
武慧娟(1981—),碩士,講師,主要研究領域為模式識別,蒙古文信息處理。
E-mail:wuhj@imu.edu.cn
GraphemeSegmentationBasedMongolianHandwritingRecognition
FAN Daoerji1,GAO Guanglai1,WU Huijuan2
(1. College of Computer Science, Inner Mongolia University, Hohhot, Inner Mongolia 010021,China;2. College of Electronic Information Engineering, Inner Mongolia University, Hohhot, Inner Mongolia 010021,China)
Hidden Markov Models(HMM) has strong modeling capabilities for sequence data, and it is widely used in speech recognition and handwriting recognition task. HMM-based Mongolian handwriting recognizers require the data to be analyzed sequentially. According to Mongolian word formation and writing style, it is evident that a Mongolian word consists of grapheme seamless connected from top to down. The selection of grapheme and segmentation word to grapheme is a preliminary work for handwriting recognition with substantial effects on recognition accuracy. In this paper, according to knowledge of syllables and coding, we collect a Mongolian letters set of 1 171 letters. The long grapheme set which contain 378 grapheme is then extracted from letters set by correlation process and HMM based sorting method. The short grapheme set which contain 50 shapes is extracted from long grapheme set via decompose long grapheme by hands. We present an algorithm to decompose a word to grapheme by two layers mapping. Experimental results show that the short grapheme get better performance than long grapheme.
Mongolian; grapheme; HMM; handwriting recognition
1003-0077(2017)05-0074-07
TP391
A
2016-08-30定稿日期2017-03-27
內(nèi)蒙古自治區(qū)自然科學基金(2016MS0603)