湯敏麗,謝少敏,劉向榮*
(1.廈門大學(xué)信息學(xué)院,福建 廈門 361005;2.凱里學(xué)院大數(shù)據(jù)工程學(xué)院,貴州 凱里 556011;3.廈門大學(xué)閩臺非遺文化數(shù)字化保護與智能處理文化和旅游部重點實驗室,福建 廈門 361005)
“水書”是水族用其語言“泐睢”記載水族古代天文歷算、原始宗教信仰、道德倫理等諸多內(nèi)容的文化典籍,是水族民間知識綜合記錄的反映,它在水族社會中影響深遠(yuǎn),具有實用的操作性,廣泛運用于民間喪葬嫁娶、娛樂節(jié)慶等方面.2006年,水書習(xí)俗經(jīng)國務(wù)院批準(zhǔn)列入第一批國家級非物質(zhì)文化遺產(chǎn)名錄.隨著社會的發(fā)展和歷史的變遷,同時受外來文化的影響,水書及其傳統(tǒng)文化面臨著被逐漸邊緣化甚至失傳的威脅.因此,有必要利用信息數(shù)字化技術(shù)對水書文化遺產(chǎn)進行保護[1].圖1為珍貴水書原件.
圖1 水書古籍原件Fig.1 Original of ancient Shuishu
水書通常由水書先生手寫并代代相傳,只傳本族少數(shù)男性,目前統(tǒng)計只有300多人能夠識讀,導(dǎo)致水書文字保護和傳承壓力巨大.近年來,經(jīng)水族學(xué)者研究,水書文字能夠被識讀的單字只有500余字,含異體字在內(nèi)也僅有2 000余字[2].目前針對水書手寫文字識別的成果較少,尚沒有公開的用于信息數(shù)字化技術(shù)的水書數(shù)據(jù)集.楊秀璋等[3]提出了一種改進的圖像增強及圖像識別方法,并將其應(yīng)用于水書文字圖像中,經(jīng)過灰度轉(zhuǎn)換、中值濾波去噪、直方圖均衡化等處理,之后再通過Sobel算子銳化文字邊緣,最終提取了水族刺繡圖像及建筑圖像中的水書文字,該研究主要是提取圖像中的文字圖像,并未對文字進行識別.中央民族大學(xué)的翁彧等[4]設(shè)計了一個輕量級網(wǎng)絡(luò)結(jié)構(gòu),在5萬個水書字符型樣本上進行了分類實驗,得到了93.3%的識別準(zhǔn)確率,該研究沒有涉及頁面的水書文字識別,主要是單個水書文字的分類研究.此外,夏春磊[5]提出了一個用于水書識別的卷積神經(jīng)網(wǎng)絡(luò)模型,并通過一種基于種群進化的超參數(shù)優(yōu)化算法進行訓(xùn)練,實現(xiàn)水書文字識別任務(wù),但該研究注重的是單字分類,經(jīng)過訓(xùn)練和測試,該模型只能識別單字,沒有研究檢測識別文本圖像上的小目標(biāo)文字.趙洪帥等[6]將拉普拉斯金字塔與對抗性神經(jīng)網(wǎng)絡(luò)相結(jié)合,對水書古籍圖像進行數(shù)據(jù)清晰度處理;再使用基于信息熵的無監(jiān)督密度聚類算法,研究水書古籍圖像文字的自動標(biāo)注;在6 230 個水書字符樣本上進行實驗.其結(jié)果表明:拉普拉斯金字塔結(jié)構(gòu)的生成對抗網(wǎng)絡(luò)對水書文字的圖像樣本具有更高的分辨率,且能增加少量的樣本,但自動標(biāo)注方法存在一些問題,即自動標(biāo)注的準(zhǔn)確率不高,影響了水書文字的識別準(zhǔn)確率.丁瓊[7]提出采用YOLO(You only look once)[8]模型對水書文字進行識別檢測,經(jīng)測試識別率穩(wěn)定在98%以上,但其采用的數(shù)據(jù)樣本來源于水書文字和漢字混編的書籍中,并非水書卷本原件圖像或影印件圖像資料,且未具體介紹所使用的數(shù)據(jù)集及規(guī)模.這些研究中,多數(shù)側(cè)重水書單字符的分類,鮮少進行水書古籍頁面級的文字檢測與識別.
為了解決水書數(shù)據(jù)集資源匱乏的問題,本文首先建立了一個來源可靠、標(biāo)注良好、規(guī)模較大的水書古籍手寫文字?jǐn)?shù)據(jù)集;并利用數(shù)據(jù)擴增的方法進一步解決水書數(shù)據(jù)集樣本不均衡的問題;將Faster-RCNN(faster region-based convolutional neural networks)[9]算法應(yīng)用到水書古籍手寫文字識別研究上,以實現(xiàn)頁面級的端到端的水書手寫文字的檢測與識別,從而為后續(xù)水書研究做鋪墊,以期實現(xiàn)幫助讀者認(rèn)識水書文字和閱讀水書古籍.
深度學(xué)習(xí)方法最大的特點是自主學(xué)習(xí)特征,無需人工干預(yù).深度學(xué)習(xí)方法中的目標(biāo)檢測算法能在對輸入圖像進行分類的同時,檢測圖像中是否包含特定目標(biāo),并對這些目標(biāo)進行準(zhǔn)確識別和定位.目標(biāo)檢測中的熱門算法分為兩類:一類稱為“兩步”檢測算法,即首先在特征圖上抽樣產(chǎn)生密集的候選區(qū)域,然后對候選區(qū)域進行分類及回歸,檢測精確度高,典型的算法有RCNN (region based convolutional neural networks)[10],F(xiàn)ast-RCNN(fast region based convolutional neural network)[11],F(xiàn)aster-RCNN等;另一類被稱為“一步”檢測算法,即在多層特征圖上直接抽樣并回歸,一步產(chǎn)生物體的類別概率和位置坐標(biāo)值并輸出,檢測速度快,典型算法有SSD(single shot multiBox detector)[12]、YOLO.
近年來,目標(biāo)檢測算法也被用于一些文本檢測中.2018年,Julca-Aguilar等[13]提出采用Faster-RCNN 作為檢測手寫圖形中符號的方法,在圖表和數(shù)學(xué)表達(dá)式數(shù)據(jù)集上進行了實驗評估,結(jié)果表明Faster-RCNN 可以有效地用于手寫符號的識別.2019年,楊宏志等[14]提出一種改進Faster-RCNN的自然場景文字檢測算法,經(jīng)實驗測試發(fā)現(xiàn)該模型對小目標(biāo)文字的檢測效果有所提升.本文關(guān)注的重點在于能否精確地定位和識別水書古籍頁面中出現(xiàn)的多類別、小目標(biāo)文字,所以目標(biāo)檢測算法較為適合應(yīng)用到本研究中.
RCNN由Girshick等[10]于2014年首次提出,是最早將深度學(xué)習(xí)技術(shù)應(yīng)用于目標(biāo)檢測的算法.RCNN先用選擇性搜索算法在每個網(wǎng)格上依次提取1 000~2 000個候選區(qū)域,使用卷積神經(jīng)網(wǎng)絡(luò)在其中依次提取每一個候選區(qū)域的特征后,用支持向量機來對這些候選區(qū)域的數(shù)據(jù)特征進行綜合分類.對比之前目標(biāo)檢測的一些傳統(tǒng)算法,RCNN用深度神經(jīng)網(wǎng)絡(luò)替換了特征提取部分,在準(zhǔn)確率、速度等方面都有著突破性的進展.但是,該方法計算量過大,是以大量的資源和運行時長為代價換取準(zhǔn)確率的提升.
Fast-RCNN是RCNN的升級版本.Fast-RCNN在卷積神經(jīng)網(wǎng)絡(luò)的最后一層卷積層后增加了ROI池化層(region of interest pooling),使得網(wǎng)絡(luò)的每一個輸入圖像可以是任意尺寸,并且對每一個圖像只進行一次特征提取,大大提高了效率.此外,F(xiàn)ast-RCNN采用Softmax代替支持向量機進行多任務(wù)的分類,使得目標(biāo)檢測的效率再次得到大幅提升,但是存在選取候選區(qū)域耗時大的問題.
Faster-RCNN的主要特點是改變了候選區(qū)域的提取方法,即使用了候選區(qū)域網(wǎng)絡(luò)RPN(region proposal networks),使得卷積神經(jīng)網(wǎng)絡(luò)直接產(chǎn)生候選區(qū)域,而放棄之前使用的選擇性搜索方法.Faster-RCNN的架構(gòu)相當(dāng)于是“RPN+Fast-RCNN”,RPN可以快速有效地自動提取候選區(qū)域,采用RPN和Fast-RCNN交替訓(xùn)練的方式,可以在大大縮短目標(biāo)檢測耗時的同時,有效提高目標(biāo)檢測的準(zhǔn)確率.
平均精度均值(mean average precision,mAP)是評估目標(biāo)檢測性能的重要指標(biāo),將在后續(xù)3.3節(jié)詳細(xì)描述.采用VOC2007數(shù)據(jù)集[15]對RCNN、Fast-RCNN以及Faster-RCNN模型進行實驗評估,結(jié)果如表1所示,經(jīng)對比,F(xiàn)aster-RCNN的目標(biāo)檢測性能最優(yōu).
表1 3種模型的評估實驗結(jié)果Tab.1 Evaluation experiment results of 3 models
YOLO和SSD為常用的“一步”檢測算法,因此本研究比較了兩者在頁面級水書手寫文字的識別與檢測中的應(yīng)用效果.對比發(fā)現(xiàn):
YOLO的訓(xùn)練和檢測均在一個單獨網(wǎng)絡(luò)中進行,待檢測圖像僅需經(jīng)過一次圖像預(yù)測,便能得到該預(yù)測圖像中所有置信目標(biāo)的類別、位置、相應(yīng)置信概率,計算速度快且有較高的準(zhǔn)確率.但是,YOLO算法直接將圖像分割為若干區(qū)域,需要提前設(shè)定候選區(qū)域,當(dāng)多個類別同時落在一個區(qū)域上時,無法將其區(qū)分,只會取置信度最高的一類.因此,該算法對于小目標(biāo)或目標(biāo)密集的檢測精度較差.
SSD結(jié)合了Faster-RCNN和YOLO的部分思想,對圖像不同位置的多種尺度的區(qū)域的不同特征進行回歸,對這些特征進行分層提取和分析,并依次進行邊框的尺度回歸和特征分類等計算操作,最終完成對多種不同尺度區(qū)域目標(biāo)的訓(xùn)練、檢測任務(wù).SSD算法在不影響速度的同時,提高了目標(biāo)檢測準(zhǔn)確率,但是該算法的默認(rèn)框形狀、網(wǎng)格尺寸都是預(yù)先設(shè)定的,因此對小目標(biāo)的檢測效果仍然不夠理想.
對Faster-RCNN、YOLO、SSD進行優(yōu)缺點對比,總結(jié)[16]如表2所示.
表2 Faster-RCNN、YOLO和SSD優(yōu)缺點對比Tab.2 The advantages and disadvantages comparison of Faster-RCNN,YOLO and SSD
頁面級的水書古籍手寫文字識別可歸屬于小目標(biāo)多類別的目標(biāo)檢測問題,本文關(guān)注的重點在于能否精確地檢測和識別各類別水書古籍手寫文字,對模型的運行速度無高要求,所以在后續(xù)研究中采用Faster RCNN對水書古籍手寫文字進行檢測識別.
本文使用的水書古籍圖像來源于《九星卷》《九噴卷》《陰陽五行卷》《寅申卷》《八探卷》《正七卷》等多卷水書影印卷本,對其中80個類別的水書文字進行人工標(biāo)注后,得到原始圖像數(shù)據(jù)集,包含水書古籍手寫文字圖像1 734張,均存儲為“.jpg”格式,圖像的平均寬×高為1 943×2 924(單位為像素,下同),共計49 875個帶標(biāo)簽的水書手寫字符.
在水書手寫文字原始數(shù)據(jù)集中,各水書文字類別的樣本數(shù)量呈現(xiàn)極大的不均衡性,例如:水書文字“”的樣本數(shù)量最多,有5 684個;水書文字“”的樣本數(shù)量最少,僅有1個,為水書生僻字.因此,為提高模型的魯棒性和擴展能力,需要對水書原始圖像數(shù)據(jù)集進行有針對性的數(shù)據(jù)擴增,考慮采用人工手寫、圖像合成以及圖像裁剪等方式進行擴增.
首先,對樣本數(shù)量低于300個的水書文字類別進行人工手寫數(shù)據(jù)擴增,經(jīng)過8個筆跡不同志愿者的手寫擴增,獲得39張水書手寫文字圖像,共計37個類別的水書文字12 021個字符樣本.人工手寫擴增方式雖然簡單,但其存在效率低、成本高等缺點.
采用圖像合成方式擴增數(shù)據(jù),在確定目標(biāo)樣本在文字方向變換后無歧義出現(xiàn)的情況下,對原始圖像中的60個樣本數(shù)量低于500的水書文字類別進行單字切片操作.之后,對字符切片進行二值化、旋轉(zhuǎn)、翻轉(zhuǎn)、添加噪聲等處理.最后,將經(jīng)過上述處理的字符切片以隨機的方式進行組合.經(jīng)圖像合成操作,共獲得圖像1 600張,圖像的平均寬×高為1 200×1 800,共計37 363個字符樣本,這些字符樣本包含了各種場景,例如不同的文字方向或者各種噪聲等,使數(shù)據(jù)呈現(xiàn)多樣性,可以增強模型的泛化能力,防止過擬合.
采用圖像裁剪方式擴增數(shù)據(jù),目標(biāo)對象是1 734張水書原始數(shù)據(jù)集圖像和39張人工手寫擴增的水書文字圖像,對這些圖像進行上、下、左、右及中心裁剪,最終獲得水書文字圖像9 053張,圖像的平均寬×高為989×1 459,共計73 247個字符樣本.
為驗證Faster-RCNN模型對水書手寫字符的檢測與識別效果,以及2.2節(jié)中的3種數(shù)據(jù)擴增方式對水書文字識別效果的影響,采用不同組合的數(shù)據(jù)集進行了消融實驗.其中,實驗一采用原始數(shù)據(jù)集,實驗二采用原始數(shù)據(jù)集加上人工手寫擴增的數(shù)據(jù),實驗三的數(shù)據(jù)集為實驗二的數(shù)據(jù)集加上圖像合成擴增的數(shù)據(jù),實驗四的數(shù)據(jù)集采用的是剪裁后的數(shù)據(jù)加上圖像合成擴增的數(shù)據(jù).各實驗的數(shù)據(jù)集規(guī)模如表3所示.
表3 各實驗的數(shù)據(jù)集規(guī)模Tab.3 Dataset size of each experiment
實驗采用的硬件平臺為Intel Core i7-8700K六核3.7 GHz的CPU,NVIDIAGeForce GTX 1080Ti 11 GB的GPU,內(nèi)存為32 GB.軟件平臺的操作系統(tǒng)為Ubuntu 18.04,深度學(xué)習(xí)工具采用TensorFlow、Pytorch,編程語言為Python.
實驗采用Faster-RCNN模型進行訓(xùn)練和測試,使用VGG16(visual graphics generator 16)[17]作為其框架中提取圖像特征的基礎(chǔ)網(wǎng)絡(luò).按8∶2的比例將數(shù)據(jù)集劃分為訓(xùn)練集和測試集進行實驗,初始學(xué)習(xí)率設(shè)置為0.001,訓(xùn)練60 000輪次,在10 000輪次之后學(xué)習(xí)率衰減為0.000 1.權(quán)重衰減和動量分別設(shè)置為0.000 1 和0.9.由于圖像的平均寬高為1 000以上,訓(xùn)練時將圖像縮放的寬高設(shè)置為900~2 200,以避免圖像被縮放過多,導(dǎo)致圖像信息的損失.考慮到一張圖像的文字?jǐn)?shù)量比較多,將RPN的batch size設(shè)置為512,提供更多的樣本用于Fast-RCNN的訓(xùn)練,在測試時,將非極大值抑制后的候選區(qū)域設(shè)置為400個.針對數(shù)據(jù)集中待檢測字符較小的問題,實驗中將錨框大小設(shè)置為(2,4,8).為了避免初始值太大,導(dǎo)致不收斂或者收斂緩慢,將所有樣本圖像按照對應(yīng)通道減去通道均值進行顏色均值統(tǒng)計,通道均值統(tǒng)計結(jié)果為(B,G,R)=(186.529 54, 193.935 09, 197.773 97).
實驗結(jié)果的評價采用各自收斂輪數(shù)的mAP進行比較.mAP用于評價模型的好壞,是目標(biāo)檢測中的重要評估指標(biāo),其公式如下:
(1)
(2)
其中,P(i)為能識別出的第i類別的準(zhǔn)確率,Δr(i)為能識別出的第i類別的召回率.
4次實驗獲得的mAP值如表4所示,具體分析如下:
1) 實驗一的mAP并不高,僅為62.21%.其中,單個類別字符樣本數(shù)量在30以下的mAP值為0,具體的水書文字如表5所示;單個類別字符樣本數(shù)量在(30,100]區(qū)間的mAP值為29.12%;單個類別字符樣本數(shù)在(100,500]區(qū)間的mAP值為57.39%;單個類別字符樣本數(shù)量在(500,1 000]區(qū)間的mAP值為85.39%;單個類別字符樣本數(shù)在1 000以上的mAP值為88.97%.由此可知,識別準(zhǔn)確率低的癥結(jié)在于樣本數(shù)大小,而非模型.
表4 各實驗的mAP值Tab.4 mAP value of each experiment
表5 未被識別的水書文字類別Tab.5 Unrecognized classes of Shuishu characters
2) 實驗二在實驗一的基礎(chǔ)上增加了人工手寫擴增的數(shù)據(jù),使得37個類別的水書文字的數(shù)據(jù)量得到了不同程度的增加,包含表5內(nèi)的10個類別,平均增加了300個左右的字符樣本,獲得的mAP較實驗一提升了2.26個百分點.其中,未能識別的水書文字類別減少為8個.仍存在目標(biāo)樣本無法識別的原因在于人工擴增的數(shù)據(jù)量仍然較少,一旦通過該方式獲得更多的樣本,水書文字的識別精度必然得到進一步的提升.雖然實驗二獲得的識別率的提升幅度較小,但是該結(jié)果證明了人工手寫方式進行數(shù)據(jù)擴增能有效提高識別率.
3) 實驗三在實驗二的基礎(chǔ)上增加了圖像合成的數(shù)據(jù),使得水書文字樣本的數(shù)據(jù)量得到進一步的增加,生僻字類別與常用字類別的數(shù)據(jù)量差距逐漸減小,獲得的mAP較實驗二提升了18.52個百分點,能夠識別出全部80個類別的水書文字.實驗一中未能被識別的10個類別的生僻字,經(jīng)過數(shù)據(jù)擴增,在實驗三中獲得的最高識別準(zhǔn)確率為90.91%,最低識別準(zhǔn)確率為71.54%.識別率獲得大幅提升得益于數(shù)據(jù)量的大幅增加,通過圖像合成增加了37 363個水書字符樣本,平均到60個類別上,相當(dāng)于每類文字在之前的基礎(chǔ)上再增加了600個左右的樣本.此外,合成的圖像中的字符樣本包含了各種場景,即其中的字符具有多樣性,增強了模型的泛化能力,這也是識別精度得以提高的原因之一.
4) 實驗四采用的是裁剪后的數(shù)據(jù)圖像,即先將原始數(shù)據(jù)集的圖像與人工手寫增加的圖像進行裁剪,之后與圖像合成的數(shù)據(jù)組成數(shù)據(jù)集,包含80個類別共計110 610個字符樣本,較實驗三的數(shù)據(jù)集增加了11 351個字符樣本.最終,實驗四獲得了91.95%的mAP,較實驗三增加了8.96個百分點,證明圖像裁剪的方式也能有效提升水書手寫文字的識別率.利用實驗四訓(xùn)練的模型進行圖像測試,其檢測與識別效果如圖2所示.
圖2 水書文字檢測和識別的結(jié)果Fig.2 Detecting and recognizing results of Shuishu characters
實驗結(jié)果表明,將Faster RCNN模型應(yīng)用于水書手寫文字的檢測與識別是可行的,且本文采用的數(shù)據(jù)擴增方式能明顯提升水書手寫文字的識別率,在全部80個目標(biāo)類別上獲得的mAP為91.95%,能準(zhǔn)確檢測到測試圖像中的水書文字并正確識別出來.
本文建立了水書手寫文字?jǐn)?shù)據(jù)集,探討了幾種數(shù)據(jù)擴增的方式,利用Faster-RCNN模型實現(xiàn)了頁面級的水書古籍文字的檢測與識別,為后續(xù)移動端水書識別系統(tǒng)的構(gòu)建奠定了基礎(chǔ),為水書文化的保護和傳承提供了新的思路,對于解決實際應(yīng)用場景中的水書文字識別問題具有重要意義.盡管水書文字的識別取得了上述進展,但相關(guān)研究仍需進一步的深入,考慮從數(shù)據(jù)集和模型兩個方面著手后續(xù)研究,一是收集更多的原始數(shù)據(jù),深入研究半監(jiān)督或無監(jiān)督的數(shù)據(jù)標(biāo)注方法,降低標(biāo)注成本,或者探索更有效率的數(shù)據(jù)擴增方式,進一步實現(xiàn)數(shù)據(jù)均衡;二是尋求模型上的改進和創(chuàng)新.