楊曉龍,高紅梅,高定國,達(dá) 措
(西藏大學(xué) 信息科學(xué)技術(shù)學(xué)院,西藏 拉薩 850000)
在敦煌藏經(jīng)洞出土的文獻中,藏文文獻的數(shù)量僅次于漢文。這些古籍是研究吐蕃統(tǒng)治時期西藏文明、藏漢關(guān)系的重要資料,對開拓藏學(xué)研究具有很高的學(xué)術(shù)價值[1]。出土的古籍僅有少部分古籍圖像較為清晰且保存完整,大多數(shù)古籍具有紙張風(fēng)化、污漬和霉變等問題,對文字識別工作造成背景干擾、文字模糊和手寫風(fēng)格不一等難點和挑戰(zhàn)。文獻中的藏文文字屬于古藏文,與現(xiàn)代藏文烏金體類似[2]。目前敦煌藏文文獻整理工作多數(shù)以圖像掃描形式保存,不利于文獻的檢索研究,需要進一步的整理和數(shù)字化。
早期的藏文識別工作多以印刷體識別為主,以不同方法進行特征提取、分類和識別[3-4]。在二十一世紀(jì)初,傳統(tǒng)藏文識別方法發(fā)展迅速并取得了許多優(yōu)異的成果。清華大學(xué)丁曉青教授團隊提出基于統(tǒng)計模式的多字體藏文識別方法[5],該方法綜合使用方向線素、LDA壓縮降維和分類器,在不同質(zhì)量的多字體數(shù)據(jù)集上達(dá)到99.79%的識別率。以清華大學(xué)為主研制的TH-OCR系列軟件大幅度提高了藏文錄入工作的效率和質(zhì)量。西藏大學(xué)歐珠教授團隊隨后提出了一系列在干擾條件下提高文字識別系統(tǒng)識別率的方法[6],包括自適應(yīng)閾值二值化算法、行/單字切分方法、基于網(wǎng)格的模糊筆劃及輪廓特征提取等。西北民族大學(xué)王維蘭教授團隊[7]提出基于部件位置的藏文字符識別方法,在缺乏大量訓(xùn)練樣本的情況下,指定數(shù)據(jù)庫的單部件字符識別率為98.4%,多部件字符識別率為97.2%。傳統(tǒng)的識別方法的識別對象主要為現(xiàn)代印刷體文獻,對藏文手寫體古籍文獻識別率不高。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,藏文文字識別在手寫體識別任務(wù)上取得了不錯的成果。青海師范大學(xué)黃鶴鳴教授團隊建立了基于脫機手寫的烏金體藏文字丁數(shù)據(jù)庫THCDB,并在該數(shù)據(jù)庫上進行了初步的識別研究,為脫機手寫藏文識別的進一步研究提供了基準(zhǔn)[8]。中科院馬龍龍研究員團隊著力研究聯(lián)機手寫藏文識別,針對數(shù)據(jù)庫建立問題,提出了基于部件及結(jié)構(gòu)位置信息的半自動標(biāo)注方法[9]。針對聯(lián)機手寫體識別問題,該團隊結(jié)合多上下文融合方法研究基于音節(jié)字的藏文識別,在包含827個類別的藏文數(shù)據(jù)庫上獲得了81.3%的音節(jié)字識別率[10]。為了降低采樣成本,王維蘭教授團隊提出了一種基于部件組合的“藏文-梵文”手寫樣本生成方法[11],解決了樣本數(shù)量少及多樣性的問題。該團隊先后提出基于CNN的字丁識別算法[12],有效利用基線信息[13],解決了多類別字符識別問題,并提高了藏文字符識別的準(zhǔn)確率,依此開發(fā)了藏文古籍識別系統(tǒng)。西安電子科技大學(xué)黃婷[14]首次采用CRNN網(wǎng)絡(luò)用于手寫體藏文字丁的識別任務(wù),提出CRNN與注意力相結(jié)合的方法,在有限訓(xùn)練樣本中的字丁識別準(zhǔn)確率達(dá)到了92%。西藏大學(xué)仁青東主[15]構(gòu)建了基于殘差網(wǎng)絡(luò)和雙向長短時記憶循環(huán)神經(jīng)網(wǎng)絡(luò)的模型,使用基于滑動窗的行識別技術(shù),解決了粘連文字識別和長文本行識別問題。目前這種兩階段式的識別方法較為普遍: 首先對文字區(qū)域進行檢測,然后把檢測區(qū)域的文字圖片識別為文字內(nèi)碼的形式。由于敦煌藏文文獻版面復(fù)雜,文字模糊粘連且風(fēng)格多樣,這種兩階段的識別方法會丟失古籍部分文字信息,同時誤差累積會導(dǎo)致識別精度下降。目前的敦煌藏文文獻的檢測識別中,兩階段的識別方法尚需改進,而使用整頁識別方法能夠省去文本檢測的步驟,直接對古籍文本進行識別,從而提高識別效率和準(zhǔn)確率。在整頁識別中,Wigington等人[16]首次提出通過行首位置逐步閱讀文本的方法。Yousef等人[17]提出在特征提取后使用上采樣將多行文本展開為單行送入CTC解碼的方法,此方法在IAM數(shù)據(jù)集上達(dá)到了較低的錯誤率。Wang 等人[18]提出將行數(shù)據(jù)進行拼接訓(xùn)練,使模型能夠進行整頁文本推理,從而提升模型的推理速度。
遷移學(xué)習(xí)主要通過特征提取網(wǎng)絡(luò)先對行文字特征進行提取,之后將具有行特征的編碼器權(quán)重導(dǎo)入整頁識別模型中進行訓(xùn)練。此方式能夠極大地加快編碼器在較少樣本下整頁識別的收斂速度,使得整頁識別模型能夠更專注于多行對齊。Coquenet等人[19]通過簡單的編解碼結(jié)構(gòu)進行無分割標(biāo)簽訓(xùn)練,在IAM、READ 2016和RIMES數(shù)據(jù)集上取得了不錯的效果。之后提出的垂直注意力網(wǎng)絡(luò)(Vertical Attention Network,VAN)[20]可以進行逐行迭代,實現(xiàn)段落級別的識別,通過遷移學(xué)習(xí)加快網(wǎng)絡(luò)收斂速度。
本文以《法國國家圖書館藏敦煌藏文文獻》[21]第一冊的319張原始藏文古籍圖片為研究對象開展研究。在較少的《法國國家圖書館藏敦煌藏文文獻》數(shù)據(jù)集圖片和行級標(biāo)注的基礎(chǔ)上,對基于遷移學(xué)習(xí)的整頁識別算法(垂直注意力網(wǎng)絡(luò))進行改進,同時使用合成數(shù)據(jù)集再次提升識別效果。研究推進了敦煌藏文文獻在復(fù)雜背景以及文字風(fēng)格各異條件下的整頁識別工作,對敦煌文獻系統(tǒng)性保護整理出版工作具有重要意義。
敦煌藏文古籍由于標(biāo)注和校對成本高昂,目前暫未發(fā)現(xiàn)統(tǒng)一公開的敦煌藏文古籍?dāng)?shù)據(jù)集。本文以《法國國家圖書館藏敦煌藏文文獻》第一冊的原始319張藏文古籍圖片為研究對象,對其中的藏文文字部分進行識別。因為原始圖像是由若干殘卷進行拼接得到的,故將原始圖像中的不同殘卷進行標(biāo)注分離,人工處理后得到1 000張殘卷段落圖像。由于敦煌藏文古籍文獻文字傾斜、粘連情況嚴(yán)重,普通的四點標(biāo)注方法無法將行信息進行完整的保留,故本文采用多點標(biāo)注的方法對數(shù)據(jù)集進行標(biāo)注。多點標(biāo)注方法不僅可以精確地標(biāo)注文本信息,還可以同時滿足文本檢測、行識別和段落識別這三種實驗需求。本文分別建立了整頁和行圖像的數(shù)據(jù)集,滿足本文不同類型的實驗。數(shù)據(jù)集裁剪分別為自定義裁剪和整體裁剪兩種方式,自定義裁剪不保留余下的背景部分而整體裁剪則進行保留。為了剔除印章等多余背景,本文采用自定義裁剪方式對數(shù)據(jù)集進行構(gòu)建。數(shù)據(jù)集難度劃分為三類: 困難、標(biāo)準(zhǔn)和簡單。部分文字頁面破損或文字部分侵蝕嚴(yán)重,需要對殘缺部分進行補全才能進行下一步工作的屬于困難級別數(shù)據(jù)集;背景較為復(fù)雜,文字風(fēng)格差距較大的屬于標(biāo)準(zhǔn)級別數(shù)據(jù)集;文字較為清晰,背景對文字影響較少的屬于簡單級別數(shù)據(jù)集。由于困難級別數(shù)據(jù)集文字殘缺導(dǎo)致無法正常識別,故本研究在標(biāo)準(zhǔn)數(shù)據(jù)集和簡單數(shù)據(jù)集下進行實驗。圖1為本實驗采用的數(shù)據(jù)集樣例。
圖1 《法國國家圖書館藏敦煌藏文文獻》數(shù)據(jù)集樣例
整頁文本識別網(wǎng)絡(luò)需要大量的訓(xùn)練圖片,而通過標(biāo)注得到的原始圖片樣本有限。為了充分學(xué)習(xí)背景噪聲和不同風(fēng)格的文字特點,本文采用印刷體合成方式對數(shù)據(jù)進行擴充。印刷體合成方法使用語料庫、背景庫和文字庫進行整頁文本圖片合成。通過此方法共合成1 367張整頁圖片和11 955張行圖片,按照7∶1∶2劃分為訓(xùn)練集、驗證集和測試集。印刷體合成樣例如圖2所示。
為了增加數(shù)據(jù)的多樣性,本文采用透視變換、網(wǎng)格拉伸變換、DPI放縮、單應(yīng)性變換、腐蝕、膨脹、對比度變換、亮度變換、顏色翻轉(zhuǎn)、顏色抖動、銳度變換、灰度值均衡、均值濾波、中值濾波和高斯濾波等方式進行數(shù)據(jù)增強。
由《法國國家圖書館藏敦煌藏文文獻》段落級別標(biāo)注的數(shù)據(jù)集命名為TDFD_pg,每頁圖像字符數(shù)量為45到689,行級別標(biāo)注的數(shù)據(jù)集命名為TDFD_li,每行字符數(shù)量為10到174。印刷體合成數(shù)據(jù)集段落級別標(biāo)注數(shù)據(jù)集命名為facang_pg,行級別標(biāo)注的數(shù)據(jù)集命名為facang_li。數(shù)據(jù)集字符類和劃分情況如表1所示。
表1 數(shù)據(jù)集樣本個數(shù)
垂直注意力網(wǎng)絡(luò)如圖3所示,模型首先通過編碼器提取敦煌藏文古籍圖片特征,然后通過注意力權(quán)重循環(huán)產(chǎn)生行特征表示,最后通過解碼器對行特征進行轉(zhuǎn)錄得到整頁文本。由于古籍背景雜亂,本文對注意力結(jié)構(gòu)中的行特征提取模塊進行改進,通過自適應(yīng)平均值池化保留圖像背景信息。為了降低錯誤率,加快網(wǎng)絡(luò)收斂速度,解碼器采用門循環(huán)單元(Gate Recurrent Unit,GRU)代替長短時記憶網(wǎng)絡(luò)(Long-Short Term Memory,LSTM)。
圖3 垂直注意力網(wǎng)絡(luò)結(jié)構(gòu)
ct被定義為先前所有注意力權(quán)重的總和,范圍是0~1,如式(2)所示。
st,i=tanh(Wf·f′i+Wj·jt,i+Wh·hWf·(t-1))
(3)
然后為每一行計算得分et,i,如式(4)所示。Wa代表全連接層權(quán)重,減少特征圖維度為1。
為解決段落文本行可變的問題,增加了段落結(jié)尾檢測,采用學(xué)習(xí)停止的方式使網(wǎng)絡(luò)能夠?qū)W習(xí)在何時結(jié)束,學(xué)習(xí)停止通過折疊st的維度來進行實現(xiàn)。首先通過一維卷積提取特征,之后通過自適應(yīng)最大值池化將高度降低為15,最后通過全連接進行維度坍塌后和LSTM的h0進行拼接。通過一個全連接層變?yōu)锽×2的形狀。之后通過交叉熵?fù)p失來判斷,如式(5)所示。
最終的loss函數(shù)為CTC損失和交叉熵?fù)p失之和,如式(6)所示。
解碼器將當(dāng)前的行特征lt識別為字符序列。由于縱向的維度被折疊為1,所以僅需要考慮行轉(zhuǎn)錄即可。本研究使用Ch=256個的門循環(huán)單元來代替VAN網(wǎng)絡(luò)中的長短時記憶網(wǎng)絡(luò),輸出相同維度的另一個水平軸表示。GRU初始狀態(tài)h0記錄從上一行到下一行的信息,這樣可以利用段落的上下文關(guān)系。之后補充一個維度進行二維卷積后降維,通道數(shù)由原來的256通道變成N+1個字符概率,使用CTC解碼算法去除連續(xù)相同的字符和blank符號并進行反向傳播。最后將所有識別的文本行連接起來得到段落級別的轉(zhuǎn)錄。
訓(xùn)練整頁識別模型是十分困難的,整頁識別模型的難點包括特征提取部分和注意力部分。本研究使用了行級預(yù)訓(xùn)練的方法,使用不同的特征提取網(wǎng)絡(luò)進行行級別的預(yù)訓(xùn)練。其中行預(yù)訓(xùn)練分成兩種策略: 一種是使用真正的古籍文本圖像行進行訓(xùn)練;另一種是通過古籍文本標(biāo)簽合成文本行圖像進行訓(xùn)練。實驗采用古籍文本行圖像進行訓(xùn)練,在遷移學(xué)習(xí)時由于基于內(nèi)容的部分被學(xué)習(xí)到了,所以模型更專注于學(xué)習(xí)基于位置的部分。
在行預(yù)訓(xùn)練階段分別選擇改進的VGG系列和ResNet系列作為其特征提取模塊。模型僅使用編碼器結(jié)構(gòu)和解碼器結(jié)構(gòu)進行預(yù)訓(xùn)練,通過行訓(xùn)練使得編碼器能夠較好地提取行文字特征。
整頁識別模型能夠?qū)⒄撐淖謭D片轉(zhuǎn)化為文字內(nèi)碼的形式。為了使整頁識別模型的編碼器具有提取文字特征的初始參數(shù),緩解編碼器壓力并提升整頁識別效果,遷移學(xué)習(xí)[23]使用行級別的預(yù)訓(xùn)練權(quán)重對整頁識別模型編碼器的權(quán)重進行初始化。本文使用整頁敦煌古籍?dāng)?shù)據(jù)集的子集TDFD_li數(shù)據(jù)集進行預(yù)訓(xùn)練。
由于將訓(xùn)練好的行特征提取網(wǎng)絡(luò)參數(shù)遷移到整頁識別模型中,使整頁識別模型的編碼器部分獲取到敦煌藏文古籍的部分特征。因此,使整頁識別模型能夠更專注于學(xué)習(xí)對齊每一行的特征,大大加快了網(wǎng)絡(luò)的收斂速度。
本次實驗環(huán)境系統(tǒng)為16GB的Ubuntu 20.04,顯卡型號為Nvidia 2070。采用的深度學(xué)習(xí)框架為Pytorch 1.9,CUDA版本為11.3以及使用cuDNN V8.2.1的加速庫。
為了加速模型訓(xùn)練,使用分布式多卡并行的訓(xùn)練策略和混合精度計算;為了緩解顯存壓力,使用梯度檢查點機制;為了解決模型過擬合問題,使用Mix Dropout對1D和2D信號隨機失活。實驗均采用Adam優(yōu)化器對網(wǎng)絡(luò)進行訓(xùn)練,初始學(xué)習(xí)率為0.000 1,行圖像批次大小為4,整頁圖像批次大小為2,最大訓(xùn)練輪數(shù)為50 000輪。
實驗采用字符錯誤率和單詞錯誤率為評價指標(biāo)。為了更全面地評估網(wǎng)絡(luò)的效果,對網(wǎng)絡(luò)推理消耗顯存和每張圖片前向推理時間進行記錄。行識別效果如表2所示,整頁識別效果如表3所示。
表2 行特征提取能力對比
表3 整頁識別模型在TDFD_pg數(shù)據(jù)集上的訓(xùn)練結(jié)果
最后在整頁識別模型的訓(xùn)練中加入合成樣本facang_pg數(shù)據(jù)集進行跨庫訓(xùn)練,進一步降低了網(wǎng)絡(luò)的字符錯誤率。
本文在TDFD_li數(shù)據(jù)集下進行實驗以驗證模型的有效性。在行數(shù)據(jù)集上分別使用了ResNet18、ResNet30、VGG16、VGG19、VAN_FCN和SPAN_FCN特征提取網(wǎng)絡(luò)對數(shù)據(jù)行特征進行提取,之后通過行解碼器滿足CTC輸入進行字符對齊。所有模型統(tǒng)一使用Adam優(yōu)化器,批大小為4,學(xué)習(xí)率為0.000 1,使用分布式并行計算。Mix DropOut中1D和2D信號反向失活概率都為0.2,解碼器用標(biāo)準(zhǔn)CTC函數(shù)為最后的損失函數(shù)。
圖4展示了不同特征提取網(wǎng)絡(luò)在驗證集中的字符錯誤率隨著迭代次數(shù)變化情況。在批大小為4的情況下,各個模型的特征提取能力較為接近,不同特征提取網(wǎng)絡(luò)的結(jié)果如表2所示。ResNet18在訓(xùn)練集單詞錯誤率最低,為7.83%。VGG19在訓(xùn)練集字符測試率最低,為1.58%。ResNet和VGG作為特征提取模型雖然在訓(xùn)練集上效果較好,但產(chǎn)生了過擬合現(xiàn)象,測試集錯誤率明顯高于訓(xùn)練集。SPAN網(wǎng)絡(luò)的特征提取模型SPAN_FCN達(dá)到最優(yōu)的字符錯誤率和單詞錯誤率,分別為4.28%和38.3%,雖然效果達(dá)到最優(yōu),但是推理速度和占用顯存也是最差的。VAN特征提取模型VAN_FCN在行特征提取收斂較為緩慢,在1 200輪左右字符錯誤率趨于穩(wěn)定,其他模型在200輪后模型趨于收斂。VAN_FCN有著更少的訓(xùn)練參數(shù),模型特征圖數(shù)量為256,比其他模型的512特征圖數(shù)量減少了一半,測試集效果和最優(yōu)的SPAN特征提取模型SPAN_FCN效果不相上下。VAN_FCN模型有更快的推理速度,每張圖像的前向推理時間僅為0.014s。顯存占用為0.35GB。因此,頁面級別的編碼器模塊采用VAN_FCN模型進行測試。
圖4 行特征提取模型的迭代曲線
如表3所示,后綴lipg代表行訓(xùn)練后經(jīng)過遷移學(xué)習(xí)到整頁識別的模型,后綴pg代表直接進行整頁識別的模型。遷移學(xué)習(xí)訓(xùn)練將編碼器模型進行了遷移,隨著整頁識別的訓(xùn)練對特征提取網(wǎng)絡(luò)的參數(shù)進行微調(diào)。圖5展示了整頁識別模型在驗證集中的字符錯誤率隨著迭代次數(shù)的變化情況。經(jīng)過遷移學(xué)習(xí)后SPAN網(wǎng)絡(luò)明顯有著更強的學(xué)習(xí)能力,錯誤率降低了將近3%,使用遷移學(xué)習(xí)進行整頁識別的優(yōu)勢顯著。在VAN網(wǎng)絡(luò)上,本研究首先測試原始版本經(jīng)過預(yù)訓(xùn)練的VAN網(wǎng)絡(luò),VAN_lipg模型字符錯誤率為5.57%。在此基礎(chǔ)上,為了降低模型的復(fù)雜度,VAN_GRU_lipg模型使用GRU網(wǎng)絡(luò)代替解碼器中的LSTM。由于減少了一個門函數(shù),模型參數(shù)相對較少且更容易收斂。為了增強行特征細(xì)節(jié)提取能力并減少模型參數(shù),VAN_avgpool_lipg模型對行特征提取使用了自適應(yīng)平均值池化。網(wǎng)絡(luò)的錯誤率相對于原版本網(wǎng)絡(luò)字符錯誤率減少了0.19%。
圖5 整頁識別模型的迭代曲線
在此基礎(chǔ)上,本研究對數(shù)據(jù)增強部分進行了消融實驗。不采用數(shù)據(jù)增強的VAN_noaug_lipg模型在測試集上的字符錯誤率為5.43%,相對于原模型降低了0.14%的錯誤率。
最后,模型VAN_merge_lipg引入了額外的facang數(shù)據(jù)集,使最后的識別效果再次提升,達(dá)到了4.84%的字符錯誤率。相對于原版的VAN_lipg模型降低了0.73%的錯誤率,在TDFD_pg數(shù)據(jù)集上的效果達(dá)到了最優(yōu)。
本文對399張行圖像和100張段落圖像進行了測試,部分誤識情況如圖6所示,經(jīng)分析后可主要歸納為四種類型。
圖6 敦煌藏文文獻部分字符的誤識情況
3.5.1 手寫風(fēng)格導(dǎo)致的錯誤
3.5.2 藏文相似字丁導(dǎo)致的錯誤
3.5.3 版面問題導(dǎo)致的錯誤
3.5.4 其他原因?qū)е碌腻e誤
本研究對訓(xùn)練數(shù)據(jù)有限的情況使用了印刷體擴充以及傳統(tǒng)數(shù)據(jù)增強的方法對原始數(shù)據(jù)進行了擴充。為了緩解特征提取模塊的壓力,使用遷移學(xué)習(xí)的方法將行特征提取模塊應(yīng)用到了整頁文本識別網(wǎng)絡(luò)中。在經(jīng)過改進的VAN模型中,行特征壓縮模塊能夠更精確地提取行特征信息,GRU模塊能夠有效減少參數(shù)并降低識別錯誤率。最后引入印刷體數(shù)據(jù)集后進一步提升模型效果,改進后的網(wǎng)絡(luò)錯誤率比原始的網(wǎng)絡(luò)降低了0.73%。通過與當(dāng)前主流整頁識別模型進行對比實驗以及消融實驗,驗證了本文提出的整頁識別模型對于敦煌古籍文獻的有效性。在敦煌古籍文獻和復(fù)雜背景多風(fēng)格文字的文檔識別等任務(wù)中具有一定的參考價值。