田學(xué)東,楊瓊,楊芳
(1. 河北大學(xué) 網(wǎng)絡(luò)空間安全與計算機學(xué)院,河北 保定 071002;2. 河北大學(xué) 智能圖文信息處理研究所,河北 保定 071002)
漢字是中華民族歷史文化的重要載體,研究古籍漢字對于了解中華文明具有重要意義.信息技術(shù)的發(fā)展,為古籍漢字研究提供了更多有效的途徑和依據(jù).借助計算機實現(xiàn)古籍漢字圖像檢索,不僅可以有效解決人工查閱古籍文獻帶來的效率低、準確性差等問題,還可以避免對古籍文獻的二次損傷.
古籍漢字字形筆畫繁雜,結(jié)構(gòu)多樣,且包含大量未收入編碼字符集的漢字,難以利用現(xiàn)有的輸入關(guān)鍵詞查詢相關(guān)內(nèi)容的全文檢索技術(shù).將傳統(tǒng)的字形圖像檢索技術(shù)與識別技術(shù)應(yīng)用于古籍漢字圖像檢索是開展此類漢字研究的重要輔助手段.
實現(xiàn)古籍漢字圖像檢索的關(guān)鍵是特征的選擇與提取.常用的特征包括結(jié)構(gòu)特征和統(tǒng)計結(jié)構(gòu)2種[1].結(jié)構(gòu)特征主要是指漢字的筆畫、部件等特征.祁俊輝等[2]提出將漢字的筆畫順序進行編碼,再轉(zhuǎn)化為特征向量的方法,有效解決現(xiàn)代漢字形近字的準確性問題.馬海云等[3]提出將古漢字的部件特征與全局和局部點密度融合的識別方法,提高古漢字的識別準確率.統(tǒng)計特征對于字形符號而言是最常用的,如方向特征[4].針對手寫漢字字形多變問題,相關(guān)學(xué)者采用彈性技術(shù)對原漢字圖像進行網(wǎng)格劃分,提高了漢字圖像的筆畫[5]、方向[6]、Gabor[7]等特征的魯棒性.為解決漢字結(jié)構(gòu)關(guān)系不穩(wěn)定的問題,部分學(xué)者將模糊集理論引入到手寫圖像特征中,進一步提高手寫漢字圖像的表征性[8-9].同時,在與古籍漢字相似的書法字圖像檢索研究中,部分學(xué)者利用書法字的輪廓幾何形狀特征[10]、筆畫密度特征[11]、骨架信息[12]等,實現(xiàn)書法字圖像的快速檢索.
傳統(tǒng)人工提取漢字特征的適應(yīng)性較差.因此,利用深度卷積神經(jīng)網(wǎng)絡(luò)[13-14]自動提取漢字特征成為熱點.Zhong等[15]提出將傳統(tǒng)手寫漢字特征提取方法和GoogLeNet[16]相結(jié)合提高識別性能.Liu等[17]提出將字符圖像的方向分解特征與卷積網(wǎng)絡(luò)相結(jié)合,實現(xiàn)字符識別.相關(guān)研究者在改進inception結(jié)構(gòu)或利用殘差思想上,通過特征融合技術(shù)進行漢字特征的提取,保證漢字特征的完整性[18-20].Chen等[21]設(shè)計更深的卷積神經(jīng)網(wǎng)絡(luò),并結(jié)合三維隨機變形技術(shù)對手寫漢字進行筆畫輕重的模擬,提高識別準確度.徐清泉[22]提出了一種多對比通道注意力機制的方法,通過2個并行的通道注意區(qū)域豐富手寫漢字字符的局部特征信息,提高模型的魯棒性.Yang等[23]提出一種RNN(recurrent neural network)結(jié)合注意力的手寫漢字識別方法,通過不斷更新特征關(guān)注點來提高識別精度.近年來出現(xiàn)的VGGNet[24]、Inception系列[25-26]和Resnet[27]模型在ImageNet數(shù)據(jù)集上取得優(yōu)異的成績,這些經(jīng)典神經(jīng)網(wǎng)絡(luò)模型為古籍漢字圖像檢索提供了良好的方法基礎(chǔ)和借鑒.
上述深度學(xué)習(xí)算法主要利用漢字的整體特性,忽略了漢字部首和空間結(jié)構(gòu)信息[28],往往會導(dǎo)致圖像檢索準確性不高.本文提出一種基于注意力機制[29]的古籍漢字圖像檢索方法.該方法根據(jù)古籍漢字的多種空間結(jié)構(gòu),通過結(jié)合空間注意力[30]與通道注意力[31]提取古籍漢字的高低層特征,學(xué)習(xí)并融合多個注意力區(qū)域特征,提高古籍漢字圖像特征的表征性.同時,采用加權(quán)交叉熵函數(shù)代替交叉熵函數(shù),平衡了正負樣本不均衡問題,提高網(wǎng)絡(luò)性能和模型的魯棒性,實現(xiàn)古籍漢字圖像檢索.
古籍漢字字形結(jié)構(gòu)復(fù)雜,相似字形多,且相似字形之間的區(qū)別往往僅在于某些筆畫或筆畫的局部.若采用傳統(tǒng)的單一卷積神經(jīng)網(wǎng)絡(luò),由于缺乏對于古籍漢字字形結(jié)構(gòu)的針對性,對于古籍漢字字形相似部分的區(qū)分能力有所欠缺.因此,本文將注意力機制引入到古籍漢字圖像檢索模型中的特征提取階段,結(jié)合古籍漢字的特點,通過選取12種常見的古籍漢字字形結(jié)構(gòu)并將該信息融入到網(wǎng)絡(luò)模型中,提取古籍漢字圖像的整體和細節(jié)特征,增強特征魯棒性,解決難以找到古籍漢字圖像關(guān)鍵特征信息的問題.同時,本文從空間域和通道域上對古籍漢字圖像特征進行選擇性的關(guān)注,融合高層語義信息和低層信息,有效避免因?qū)Ρ榷鹊?、細?jié)特征丟失等對漢字提取特征的影響,出現(xiàn)錯檢漏檢等造成檢索精度不高的問題.
注意力機制如同人類視覺注意力一樣,在計算機視覺領(lǐng)域多用來捕捉信息依賴關(guān)系.本文采用CBAM(convolutional block attention module)[32]并進行適合于古籍漢字字形結(jié)構(gòu)特點的改進,通過并行融合通道和空間上的區(qū)域信息強化古籍漢字圖像關(guān)鍵特征.本文注意力融合機制分為2部分:第1部分將低層特征圖S∈C×H×W作為空間注意力模塊的輸入,生成二維空間注意力圖MSAt∈1×H×W;第2部分將高層特征圖C∈C×H×W作為通道注意力模塊的輸入,生成一維通道注意力MCAt∈C×1×1圖.完整的注意力過程如下:
S′=MSAt(S)?S,
(1)
C′=MCAt(C)?C,
(2)
N=Sigmoid(S′⊕C′),
(3)
其中,?表示矩陣中逐元素相乘[32]; ⊕表示對應(yīng)元素相加.古籍漢字圖像的中間特征圖沿著通道維度生成二維空間權(quán)重系數(shù)MSAt并與S相乘;高層特征映射沿著空間維度生成一維通道權(quán)重系數(shù)MCAt并與C相乘;最后將新的空間和通道注意力圖相加,得到新的特征信息N作為卷積層的輸入.通過對注意力機制進行雙重融合,獲得豐富的古籍漢字圖像語義信息.注意力融合機制方法如圖1所示.
圖1 注意力融合機制Fig.1 Attention fusion mechanism
與自然圖像不同的是,古籍漢字單字圖像沒有復(fù)雜的前景和背景信息.通過對數(shù)據(jù)去噪、歸一化等預(yù)處理,利用空間注意力模塊關(guān)注古籍漢字的輪廓、紋理、空間結(jié)構(gòu)等有用的細節(jié)信息部分,更加關(guān)注古籍漢字的多種二維結(jié)構(gòu),提取有效的空間特征.本文歸納12種古籍漢字字形結(jié)構(gòu)如圖2所示.
a. 上下結(jié)構(gòu);b.左右結(jié)構(gòu);c.上中下結(jié)構(gòu);d.左中右結(jié)構(gòu);e.全包圍結(jié)構(gòu);f.上包圍結(jié)構(gòu);g.下包圍結(jié)構(gòu);h.左上包圍結(jié)構(gòu);i.左下包圍結(jié)構(gòu);j.右上包圍結(jié)構(gòu);k.左包圍結(jié)構(gòu);l.獨體結(jié)構(gòu).圖2 古籍漢字字形結(jié)構(gòu)Fig.2 Spatial structure of ancient Chinese character
該注意力模塊采用非對稱卷積的思想,提取需要關(guān)注的古籍漢字空間結(jié)構(gòu)特征以及邊緣輪廓信息,以更好擬合空間上的相關(guān)性.最后使用Sigmoid激活函數(shù),獲取每個元素的二維空間特征映射,經(jīng)過式(1)獲取最終的空間注意力特征圖.空間注意力模塊如圖3所示,圖3中S、S′分別為低層中間特征圖和空間注意力特征映射圖.
圖3 空間注意力模塊Fig.3 Spatial attention module
通道注意力模塊幫助模型關(guān)注什么樣的特征是有意義的.利用通道之間的信息依賴關(guān)系,壓縮空間維度,但容易丟失有用信息,因此,本文在SE(squeeze-and-excitation)[31]中通道注意力模塊的基礎(chǔ)上進行面向古籍漢字字形特征的改進.為了減少判別信息的損失,對特征映射圖分別進行最大池化(Max-pool)、平均池化(Average-pool)、隨機池化(Stochastic-pool)的3種采樣方式,更多地保留圖像背景信息、紋理信息、細節(jié)語義信息,有效避免單一全局平均池化有可能造成的有用特征信息缺失問題.同時,為了捕獲完整的通道特征信息,采用了3個連續(xù)的全連接層.使用Leaky Relu規(guī)避了當輸入為負值時,學(xué)習(xí)速度降低導(dǎo)致一些神經(jīng)元無效的現(xiàn)象.通道注意力模塊如圖4所示,圖4中C、C′分別對應(yīng)高層特征圖和通道注意力特征圖.
網(wǎng)絡(luò)模型中還添加了BN(batch normalization)層,BN層作用于神經(jīng)網(wǎng)絡(luò)某層時,對每一批次的古籍漢字圖像作標準化處理,并將輸出歸一化為標準正態(tài)分布,避免發(fā)生梯度消失現(xiàn)象[33].
S1=Normal(x,α),
(4)
其中,x為任意給定的古籍漢字圖像訓(xùn)練集;α為古籍漢字圖像集合.
對于任意維度的輸入x=(x1,x2,…,xn),進行如下歸一化:
圖4 通道注意力模塊Fig.4 Channel attention module
(5)
通過式(5)加快網(wǎng)絡(luò)的訓(xùn)練速度.對任意xn,參數(shù)γ、β,經(jīng)過平移縮放后得到
S3=γ·S2+β.
(6)
將S3經(jīng)過激活函數(shù)激活之后作為下一層的輸入.同時,網(wǎng)絡(luò)模型選擇SGD(stochastic gradient descent)[34]優(yōu)化網(wǎng)絡(luò)參數(shù),把損失降到最低.當每層的輸入分布發(fā)生變化時,會通過BN層來解決該問題.
根據(jù)古籍漢字的空間結(jié)構(gòu)特點和模仿人類視覺特性的機制,將注意力機制應(yīng)用到古籍漢字圖像的特征提取階段,提高特征的有效性和豐富性;并引入1×1卷積,減少網(wǎng)絡(luò)參數(shù)量,提高網(wǎng)絡(luò)性能.采用融合空間和通道注意力機制的古籍漢字圖像特征提取網(wǎng)絡(luò)的古籍漢字圖像檢索模型如圖5所示.
圖5 古籍漢字圖像檢索模型示意Fig.5 Schematic diagram of ancient Chinese character image retrieval model
古籍漢字圖像檢索框架主要包括離線特征提取階段和在線檢索階段.離線特征提取階段:首先,構(gòu)建并訓(xùn)練融合空間和通道注意力機制的古籍漢字圖像檢索(spatial channel ancient image network,SCAINet)模型;然后,利用該模型從古籍漢字圖像數(shù)據(jù)集中提取特征并進行差異哈希編碼,建立哈希編碼特征向量庫.在線檢索階段:首先,利用訓(xùn)練好的模型提取待查詢的古籍漢字圖像特征并進行哈希編碼;然后,對待查詢圖像和特征庫中圖像的哈希編碼進行漢明距離匹配;最后,排序得到檢索結(jié)果.
圖5采用如圖6所示的基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)進行多尺度卷積核間的級聯(lián)操作,提高多級傳遞的古籍漢字圖像特征信息的多樣性,豐富語義信息,增強特征提取能力.
圖6 Inception_Residual結(jié)構(gòu)Fig.6 Inception_Residual structure
實驗采用GPU版本的PyTorch深度學(xué)習(xí)框架,開發(fā)語言為python3.6,在Intel(R)Core (TM)i5-9300HCPU@2.40 GHz處理器,GeForce GTX 1650 GPU顯卡上進行.所設(shè)計的方法將平均準確率MAP和模型準確率作為性能評價指標.MAP計算方法如下:
(7)
其中,AP1、AP2、…、APm分別是每次查詢圖像與查詢結(jié)果相對位置的平均檢索精度;m是查詢次數(shù);MAP越高表明模型檢索性能越好.
本實驗采用根據(jù)古籍文獻研究領(lǐng)域公認的典型文獻《四庫全書》建立的古籍漢字數(shù)據(jù)集GJHZ作為實驗數(shù)據(jù)集.按照1.1中的12種古籍漢字結(jié)構(gòu),將古籍漢字圖像數(shù)據(jù)集進行類別劃分,包括經(jīng)過數(shù)據(jù)增強(旋轉(zhuǎn)、翻轉(zhuǎn)、縮放等)生成的64×64像素古籍漢字圖像.經(jīng)過數(shù)據(jù)增強的方法,增加了訓(xùn)練樣本的多樣性,也有效避免了過擬合的現(xiàn)象.共包括48 000幅古籍漢字圖像,其中38 400幅圖像作為訓(xùn)練數(shù)據(jù)集,9 600幅圖像作為測試數(shù)據(jù)集,部分樣本如表1所示.
表1 部分古籍漢字樣本
訓(xùn)練過程中,將Batch Size設(shè)置為4,并行提高內(nèi)存的利用率.初始學(xué)習(xí)率的大小設(shè)置為0.000 1.優(yōu)化器采用Adam(adaptive moment estimation)[35]算法來更新模型參數(shù).
古籍漢字圖像因其結(jié)構(gòu)復(fù)雜,在制作數(shù)據(jù)集時會存在某些字的樣本數(shù)較少,出現(xiàn)類別不均衡問題,影響模型效果.因此,模型訓(xùn)練時采用加權(quán)交叉熵損失函數(shù)[36]作為優(yōu)化目標.加權(quán)損失函數(shù)計算方法為
(8)
其中,x∈RN;M為x的特征維度;n為古籍漢字圖像數(shù)據(jù)集對應(yīng)的標簽;λ為對應(yīng)標簽的權(quán)重.本文中對樣本少的漢字類別,將考慮適當增加權(quán)重大小,其中,λ=weight[n]·1{n1not_index}.
3.3.1 不同算法的檢索結(jié)果
分別構(gòu)造SE[31]、殘差注意迭代網(wǎng)絡(luò)[23]、CBAM[32]、傳統(tǒng)人工設(shè)計特征方法[6]、傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)[13]的仿真系統(tǒng),與本文方法進行對比實驗.隨機選取待查詢圖像“”(GJHZ_0000010030159),圖7為對比算法中檢索結(jié)果相似度最高的前5幅圖像.檢索結(jié)果分別對應(yīng)圖7中的a~f.
圖7 古籍漢字圖像“”的檢索結(jié)果Fig.7 Search results of ancient Chinese character image“”
圖7a為采用通道注意力機制方法進行古籍漢字圖像檢索的結(jié)果,可以看出,該方法雖然可以重點關(guān)注古籍漢字信息量最大的通道特征,但忽略了空間位置特征信息,易造成古籍漢字圖像空間信息的丟失,檢索效率較低;圖7b中設(shè)計殘差注意模塊迭代更新特征點,提高了網(wǎng)絡(luò)計算速度,但古籍漢字圖像結(jié)構(gòu)較復(fù)雜,因此檢索精度不高;圖7c中結(jié)合通道與空間的特征信息,豐富了古籍漢字圖像的語義信息,但忽略了淺層網(wǎng)絡(luò)的視覺信息,導(dǎo)致古籍漢字圖像的細節(jié)特征不夠完善,特征區(qū)分度不夠明顯;圖7d為傳統(tǒng)人工選擇與提取特征的方法,在特征全面性與適應(yīng)性方面的不足,導(dǎo)致采用此類特征的方法所得到的古籍漢字圖像檢索結(jié)果的相似度略低;圖7e為經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)方法,由于網(wǎng)絡(luò)層數(shù)較少,高層語義信息提取不夠豐富且未考慮低層特征,降低了有用信息使用率,導(dǎo)致此類方法提取的古籍漢字圖像特征信息不充分;圖7f為本文方法,融合了高低卷積層的特征信息,使古籍漢字圖像特征更具判別性,改進的注意力機制在保留語義信息的同時,豐富了特征的細節(jié)信息,檢索結(jié)果更符合古籍漢字字形的實際情況.需要注意的是,由于對文獻方法的理解和所采用的實驗數(shù)據(jù)樣本存在差異,本文在對比方法上的仿真實驗結(jié)果只在一定程度上反映文獻方法的效果.
3.3.2 不同模型結(jié)果分析
為了驗證本文方法的有效性,在相同訓(xùn)練方法下,與Googlenet、Alexnet、VGG16模型進行對比實驗,得到的損失(loss)與準確率(accuracy)結(jié)果如圖8所示.
a.損失;b.準確率.圖8 不同模型的損失與準確率Fig.8 Loss and accuracy of different models
從圖8可以看出,在相同迭代次數(shù)內(nèi),本文方法的訓(xùn)練損失值降低速率較快,并趨于穩(wěn)定,提高了模型的準確率,訓(xùn)練結(jié)果如表2所示.本文模型的準確率高于對比模型,可以獲取更多的古籍漢字細節(jié)信息和語義信息,能有效克服部分信息缺失的影響,表明SCAINet模型具有較好的魯棒性.
表2 各模型的損失與準確率
圖8表明本文模型在訓(xùn)練古籍漢字圖像數(shù)據(jù)集時存在一定優(yōu)勢.將本文方法與現(xiàn)有不同方法分別在古籍漢字圖像數(shù)據(jù)集上進行檢索.得到“上下”、“左右”、“包圍”、“獨體”4類結(jié)構(gòu)的評價結(jié)果,將全包圍結(jié)構(gòu)、上包圍結(jié)構(gòu)、下包圍結(jié)構(gòu)、左上包圍結(jié)構(gòu)、左下包圍結(jié)構(gòu)、右上包圍結(jié)構(gòu)、左包圍結(jié)構(gòu)歸類為包圍結(jié)構(gòu).4類結(jié)構(gòu)的MAP如表3所示.
由表3的實驗結(jié)果可以看出,基于CNN(convolutional neural network)模型的檢索算法的效果略優(yōu)于傳統(tǒng)方法;CNN中添加注意力機制的檢索算法效果在4類不同字形結(jié)構(gòu)上,整體略優(yōu)于只利用CNN的檢索算法.本文設(shè)計的SCAINet模型,其MAP基本略高于對比算法,是因為該方法考慮了古籍漢字的多種空間結(jié)構(gòu),提高了古籍漢字圖像特征在空間和通道映射的顯著性,增強了圖像語義特征的豐富性,可以聚焦輸入圖像的不同區(qū)域,以區(qū)分視覺上相似的古籍漢字.綜合分析檢索結(jié)果可知,本文方法對于不同字形的古籍漢字圖像的檢索效果優(yōu)于對比方法,說明本文方法更適合古籍漢字的特性,提取的特征對于古籍漢字字形更具表征性,對區(qū)分形近字的效果較好,提高了古籍漢字圖像檢索精度.
表3 字形結(jié)構(gòu)的MAP
在古籍漢字圖像檢索中引入空間和通道注意力機制,是提取古籍漢字細節(jié)特征和語義信息的有效手段.本文將空間域的通道特征信息與通道域的空間特征信息進行層級交互,充分提取古籍漢字圖像特征并重點關(guān)注古籍漢字圖像間的相似之處,加強了特征間的交互性,提高了古籍漢字間的辨別精度.同時,所設(shè)計的基于古籍漢字空間結(jié)構(gòu)的注意力網(wǎng)絡(luò)檢索模型,通過將空間與通道提取的高低特征進行融合,有效地捕捉古籍漢字圖像的細節(jié)特征,增加特征的區(qū)分度,也避免丟失部分有價值的信息.最后,采用加權(quán)交叉熵損失函數(shù)確保樣本的均衡性,提高模型性能.在古籍漢字圖像數(shù)據(jù)集中的實驗結(jié)果驗證了本文方法的有效性和可行性,且相比于其他方法,在訓(xùn)練準確度和檢索精度上都有所提高.該方法能為查閱古籍文獻的研究者帶來一定的幫助.可是本文訓(xùn)練樣本較小,且網(wǎng)絡(luò)結(jié)構(gòu)較復(fù)雜,今后工作中會繼續(xù)完善數(shù)據(jù)集,探索更好的特征提取與索引方法,增強網(wǎng)絡(luò)模型的泛化能力.