路夢瑤,李春樹
(寧夏大學物理與電子電氣工程學院,寧夏 銀川 750021)
早在文字產生之前,巖畫就已經出現,其是一種重要的記事方式。古代人民使用礦物質顏料、石材工具或金屬器具在巖石上繪畫或者鑿刻來對他們的生產方式、生活內容以及美好的想象和愿景進行描繪和記錄[1]。其不僅是人類社會早期的文化現象,還是人類祖先留給后人的寶貴文化遺產。中國是巖畫誕生最早、分布最廣、內容最豐富的國家之一,而賀蘭山又是華夏土地上遺存最集中、題材最廣泛、保存最完好的巖畫地區(qū)之一[2],是我國和世界巖畫的重要組成部分,在中國巖畫中具有一定的代表性。賀蘭山巖畫分布在賀蘭山東麓諸山口的山壁和山前的巖石上,其歷史悠久、數量繁多,真實生動地記載了大量的動物、類人首、狩獵、放牧、戰(zhàn)爭、舞蹈、勞動、祭祀等圖形和場面,再現了遠古時期賀蘭山地區(qū)游牧民族的生存經歷、生活習俗、原始觀念和審美情趣[3]。然而,由于賀蘭山巖畫產生歷史悠久,且是石材工具、金屬器具等制作在裸露的巖壁之上,面臨著風吹雨打、鹽堿侵蝕等物理、化學破壞。因此,保護工作刻不容緩[4]。
通過對賀蘭山巖畫進行檢測與識別,一方面,可以使其資料更加精準的保存下來,為之后的保護和研究工作提供數據支持,另一方面,可以幫助非專業(yè)人士更加便捷、快速、直觀的了解巖畫的內容,從而使得巖畫的學習和傳播更為有利。傳統(tǒng)的檢測識別方法是由相關領域專家通過目視來檢測識別,存在受人力影響大、耗時長、特征提取難和檢測識別準確率低等限制。因此,為了給保護巖畫爭取更多的時間,且更廣泛更深入的挖掘巖畫包含的文化內涵,將深度學習應用于賀蘭山巖畫檢測中,可以更加方便、快速、準確的獲取巖畫圖像中豐富的語義信息。
近些年,隨著深度學習良好的發(fā)展,目標檢測有了很大突破。目標檢測主要分為兩類:一類是基于候選區(qū)域的算法(即兩階段目標檢測器),該類算法首先對輸入圖像選取候選區(qū)域,然后對候選區(qū)域進行分類和位置回歸,從而實現目標檢測,如:R-CNN,Fast R-CNN,Faster R-CNN等,另一類是基于回歸的算法(即單階段目標檢測器),該類方法省略了候選區(qū)域生成步驟,直接將特征提取、目標的分類和位置回歸過程都整合到一個卷積神經網絡中完成,如:YOLO,SSD,RetinaNet等[5-6]。第一類算法的優(yōu)點是準確率高,但是該類算法規(guī)模較大、計算量較多,導致檢測速度較慢;第二類算法可達到實時檢測的效果,但是在檢測精度上還略遜一籌。
鑒于本實驗對物體檢測準確率的要求,選取Faster R-CNN作為檢測模型。然而,該檢測模型只在特征提取網絡最后一個特征圖上進行后續(xù)操作,而這一層由于經過多次下采樣導致分辨率較低,從而造成目標在特征圖上的有效信息減少,檢測性能受到影響。因此提出了一種改進的Faster R-CNN。該模型首先基于ResNet-101網絡,結合特征金字塔網絡(Feature Pyramid Networks,FPN),將淺層特征和深層特征融合,充分利用了不同層的優(yōu)勢[7];其次在特征提取網絡C5層的輸出后增加空間金字塔池化(Spatial Pyramid Pooling,SPP),通過多級池化獲取物體多尺度特征,之后將池化特征與原始特征進行合并,從而實現了局部特征和全局特征的融合,進一步豐富了特征圖的語義信息;最后將改進后的模型應用于賀蘭山巖畫的目標檢測中,以提高準確率。
Faster R-CNN目標檢測網絡主要由三部分組成:特征提取網絡、區(qū)域候選網絡(Region Proposal Network,RPN)和Fast R-CNN目標檢測網絡,如圖1所示。
特征提取網絡的輸入為任意大小的圖片,通過一系列的卷積池化操作得到輸入圖像的特征圖,該特征圖被后續(xù)的區(qū)域候選網絡和Fast R-CNN目標檢測網絡共用。區(qū)域候選網絡對輸入的特征圖進行候選區(qū)域劃分,并通過相關處理最終獲取有效的感興趣區(qū)域(Region of Interest,RoI)[8]。Fast R-CNN目標檢測網絡在特征圖上提取輸入的有效的RoI對應的特征,通過感興趣區(qū)域池化層形成固定維度的矢量特征,最后輸入到全連接層進行分類和邊界框回歸任務。
文章采取的特征提取網絡是ResNet-101,該網絡在增加深度的同時,采用殘差連接的方式,將輸入信息直接繞道傳送給輸出,保證了信息完整的同時,還避免了梯度消失或者梯度爆炸導致網絡性能退化或者無法訓練的情況。ResNet-101各卷積層的結構參數如表1所示。
表1 ResNet-101各卷積層結構參數
為充分利用不同層的特征信息,結合ResNet-101網絡構建特征金字塔結構。特征金字塔由三部分組成:自底而上、自頂向下和橫向連接[9],如圖2所示。自底向上部分是ResNet-101特征提取網絡,特征圖的分辨率從下到上不斷縮小。選取該網絡Conv2_x、Conv3_x、Conv4_x、Conv5_x層最后一個殘差塊的輸出作為FPN層的輸入,分別計為C2、C3、C4、C5。自頂向下部分采用上采樣處理將上一層的特征圖放大到和當前層特征圖分辨率一致[10],之后使用橫向鏈接,巧妙地將頂層的高級語義特征和底層的高分辨率信息進行相加[11],得到新的特征圖計為M2、M3、M4、M5,之后分別采用3×3的卷積核進行卷積操作,解決特征圖疊加后特征不連續(xù)的問題[12],得到P2、P3、P4、P5,最后將P5進行下采樣處理得到P6。
圖2 特征金字塔結構
改進的特征提取網絡是在C5層輸出后加入了空間金字塔池化結構,其目的是提取圖像的多尺度特征,提高對不同尺度目標的檢測精度[13]??臻g金字塔池化結構如圖3所示,對C5層輸出的特征圖進行多級最大池化操作,池化核的大小設置為3、5、7三種尺度,并且為了保證輸出特征圖大小不變,池化操作的步長設置為1并進行填充操作,之后將池化后的特征與原始特征進行合并[14],從而實現了局部特征與全局特征的融合,進一步豐富了特征圖中的語義信息[12]。
圖3 空間金字塔池化結構
區(qū)域候選網絡是Faster R-CNN的核心組成,其采用全卷積網絡來計算候選區(qū)域[15],其結構如圖4所示。首先,在特征提取網絡最后一層輸出的特征圖上采用尺寸為n×n大小的滑窗進行卷積操作,每個滑窗以特征點為中心生成k個候選區(qū)域(即錨箱),大小為 W×H的卷積特征圖(W為特征圖的寬度,H為特征圖的高度)共有W×H×k個候選區(qū)域[8],每次滑動都生成一個固定長度的特征向量;之后,將這些特征向量傳送到兩個并行的全連接層,該全連接層采用核尺寸為1×1的卷積實現。邊界框回歸層計算候選區(qū)域四個頂點的坐標值,分類層估計候選區(qū)域是前景還是背景的概率。因此,兩個全連接層的輸出個數分別為4×k和2×k。
圖4 區(qū)域候選網絡結構
文章結合特征金字塔后,在各個尺寸上進行單獨預測,從而提高模型的多尺度泛化能力。綜合考慮賀蘭山巖畫中目標的信息,P2到P6特征圖對應的錨箱尺寸分別設置為{322,642,1282,2562,5122},且每個尺寸的錨箱采取三種不同的長寬比,分別是{1:1,1:2,2:1},最終生成15種不同的錨箱,確??梢院w各類巖畫目標。
模型預測值和真實值間的差距利用損失函數來進行度量[16],且損失值大小和模型魯棒性呈負相關,即隨著損失值得減小模型魯棒性增加。文章所提網絡模型是一個多任務模型,由目標分類任務和邊界框回歸任務組成,其定義如下
(1)
分類損失Lcls定義為
(2)
回歸損失Lreg定義為
(3)
坐標向量,采用下列公式進行坐標的參數化
(4)
式中,(x,y)示預測框的中心坐標,(xa,ya)示錨箱的中心坐標,(x*,y*)表示標準框的中心坐標,w和h指預測框的寬和高。
鑒于賀蘭山巖畫沒有公開數據集,因此需要自己制作賀蘭山巖畫數據集。相關圖像獲取的渠道主要為以下三條:①使用攝影設備到賀蘭山巖畫景區(qū)進行實地拍攝,并且在拍攝過程中,注意相機的對焦、拍攝距離和拍攝角度,以保證圖像清晰,便于后期處理與識別;②通過對《賀蘭山巖畫》第一冊和第二冊中的圖片進行提取?!顿R蘭山巖畫》是西北第二民族學院重要的巖畫研究學術成果之一,第一冊中收錄了多幅巖畫彩色照片,第二冊中薈萃了巖畫拓片,這些巖畫資料全面系統(tǒng)的向世人展示了賀蘭山巖畫的風采全貌和細節(jié)信息,是極為珍貴的人文資料;③通過網絡搜索對相關圖片進行保存。通過上述三種方式獲取并進行篩選后共計獲得571張圖片。對其進行人工分類,主要分為4類,分別是:羊像、人面像、太陽神像和猴面像,其中羊像123張,人面像256張,太陽神像123張,猴面像15張。部分賀蘭山巖畫圖像如圖5所示。
圖5 部分賀蘭山巖畫圖像
為了得到較好的賀蘭山巖畫檢測與識別模型,使用深度神經網絡對數據集進行訓練。由于深度神經網絡參數較多且存在很多非線性處理,為避免由于數據集過小而導致的過擬合現象[17],基于有限數據利用數據增強技術生成更多等價的數據,豐富訓練數據的分布。本實驗具體使用的圖像增強方法有:裁剪、翻轉、歸一化和填充等。
為了獲取圖像中巖畫目標的位置和類別信息,采用LabelImg圖像標注軟件對賀蘭山巖畫的數據集進行標注[17]。本實驗巖畫目標標注分為四類,分別用:sheep、monkey_face、sun_spirit和human_face分別表示羊像、猴面像、太陽神像和人面像。整體數據集按照9:1的比例隨機分為測試集和訓練驗證集,訓練驗證集按照8:2的比例隨機分為訓練集和驗證集。
實驗環(huán)境配置參數如下:GPU為NVIDIA GTX1080Ti 11G顯存,操作系統(tǒng)是Ubuntu18.04,使用深度學習框架PyTorch1.4.0,并結合CUDA10.1和cuDNN7.6.3進行加速,代碼運行環(huán)境為Python3.6。
實驗采用隨機梯度下降法對網絡進行訓練,初始學習率為0.01,epoch設置為12,動量因子為0.9,學習率衰減速率為0.0001。在RPN階段正、負樣本閾值分別設置為0.7、0.3,處在兩個閾值之間的樣本不參與訓練。
本節(jié)基于ResNet-101+FPN特征提取網絡的Faster R-CNN做對比實驗,分別對原始賀蘭山巖畫數據集和隨機數據增強后的賀蘭山巖畫數據集進行訓練,且使用相同的測試集測試模型的識別精度。實驗過程中,使用的訓練參數保持一致,從而避免除數據集以外的其它因素對結果造成影響。如圖6所示,使用增強后的數據集訓練,其整體損失函數的損失值隨著epoch的增加,波動更小,收斂更快,且最終損失值更低。如表2所示,使用原始數據集訓練得到的模型的mAP為30.9%,使用數據增強后的數據集訓練得到的模型的mAP為81.4%,并且使用數據增強訓練得到的模型的每類賀蘭山巖畫的AP也比原始數據集訓練得到的模型高。由此可見,對數據集進行數據增強能夠顯著提升網絡模型的檢測精度,降低因數據量過小對網絡模型檢測效果的影響。
表2 數據集數據增強前后對比實驗
在目標檢測與識別領域,將Faster R-CNN中傳統(tǒng)的VGG16替換成殘差網絡可以提高模型性能。為確定賀蘭山巖畫檢測模型中ResNet的最佳層數,選取ResNet-50和ResNet101兩種結構,在Faster R-CNN模型上,將兩種不同的特征提取網絡融合FPN(ResNet-50+FPN和ResNet-101+FPN)進行訓練,所有的訓練均采用數據增強后的數據集。圖7為基于兩種不同特征提取網絡的Faster R-CNN模型的整體損失函數的損失情況。隨著epoch的增加,整體loss值均逐漸降低并逐漸收斂趨于穩(wěn)定,但是相比ResNet-50+FPN,ResNet-101+FPN網絡模型收斂更為迅速,且最終loss值較低。除此之外,由表3可得,使用ResNet50+FPN訓練得到的模型的mAP為76.5%,使用ResNet-101+FPN訓練得到的模型的mAP為81.4%,并且人面類和羊類的平均精度ResNet101+FPN比ResNet-50+FPN分別高7.9%和11.9%。由此可見,101層的ResNet特征提取網絡更適合賀蘭山巖畫檢測模型,其網絡更深,從而提取更多目標特征,導致有良好的檢測精度。
由表3可知,在特征提取網絡ResNet-101+FPN的基礎上,引入SPP模塊使得模型的mAP由81.4%提升至84.7%,其中人面像和羊像的AP分別提升了3.1%和10.1%。這是因為賀蘭山巖畫歷史悠久,有很多古代少數名族先后在此游牧、狩獵,賀蘭山北自石嘴山、南至中衛(wèi)的十多個山口,其上的巖畫內容雖然都是人面或者羊,但是由于作畫工具手法不同、人們對同一事物的不同認知以及遭到物理、化學等病害,導致其形態(tài)特征有所差異或者不完整,從而在識別上增加了難度。SPP的引入將具有更多高級語義信息特征圖中的局部特征與全局特征進行融合,進一步豐富了特征圖中所包含的語義信息,從而提高了模型的檢測精度。
圖6 整體損失曲線
圖7 不同特征提取網絡的整體損失曲線
圖8顯示了改進后的Faster R-CNN模型在不同種類賀蘭山巖畫中的識別結果。
圖8 改進Faster R-CNN的部分檢測結果
表3 特征提取網絡對比實驗
文章提出了基于改進Faster R-CNN的賀蘭山巖畫檢測與識別方法,采用裁剪、翻轉、歸一化和填充等方法對數據集進行增強,避免了由于數據集較小而在訓練過程中出現過擬合的現象。在特征提取階段,使用ResNet-101基礎網絡結構,構建特征金字塔,并在C5層的輸出后加入空間金字塔池化模塊,提升了模型的特征提取能力,從而提高了賀蘭山巖畫的檢測精度。通過實驗證明,文章提出的模型對4類賀蘭山巖畫檢測的平均精度均值可達84.7%,在賀蘭山巖畫檢測方面具有實用價值。