楊云航,閔連權
(中國人民解放軍戰略支援部隊信息工程大學 地理空間信息學院,河南 鄭州 450001)
草圖自古以來就是人與人溝通交流的重要手段。隨著電子技術的發展以及智能化水平的提高,人們通過草圖與電子設備進行交互的需求也越來越高,草圖識別[1]逐漸成為計算機應用領域的研究熱點。草圖識別就是將手繪草圖從筆觸端到空間認知端的概念轉換,即在特定的草圖應用領域背景下,將草圖圖像的非結構化信息賦予具體的形狀語義解析[2]。傳統的草圖識別依靠尺度不變特征變換算子(Scale-Invariant Feature Transform,SIFT)和方向梯度直方圖(Histogram of Oriented Gradient,HOG)等手工特征提取器提取特征并進行標注分類,但手工提取特征方法需要對圖像進行復雜的預處理,識別效果也一般。而深度學習在圖像識別、目標檢測[3]以及圖像分割等領域展現出巨大的潛力。但手繪草圖不同于一般的彩色圖像,它具有高度的語義抽象性和結構多樣性,以及特有的筆畫稀疏性,且缺少紋理和亮度信息。目前用于圖像識別的深度學習模型主要以卷積神經網絡(Convolutional Neural Networks,CNN)為基礎,但大多數CNN模型均是針對一般自然圖像的特點而設計,并不完全適用于具有筆畫稀疏性的手繪草圖識別工作。
文獻[4]提出了基于深度學習的草圖識別網絡Sketch-a-Net。在文獻[4]的基礎上,越來越多以深度學習方法為基礎的草圖識別模型不斷涌現。例如文獻[5]針對手繪草圖的形狀和結構特點,提出了以卷積神經網絡為基礎的草圖識別深度網絡模型;文獻[6]又在卷積神經網絡的基礎上提出了基于特征融合草圖識別方法;文獻[7]借助基于BPSO的反向傳播網絡來對草圖進行特征處理,進而實現草圖識別;文獻[8]將語義樹與深度學習相融合以實現手繪草圖的識別;也有借助于基循環神經網絡(Recurrent Neural Network,RNN)[9-10]和遞歸神經網絡[11]來進行草圖特征的提取工作,除了考慮草圖本身的結構特征,還利用草圖筆畫的時序信息對草圖進行初步分類。
然而,大多數主流的基于深度學習的草圖識別模型都是依靠傳統的卷積方式來提取草圖特征,而忽略了草圖對象的筆畫結構,將其直接當作自然圖像來獲取具有判別力的特征[8]。手繪草圖在二維空間中主要以曲線形式進行信息傳遞[12],而圖像的其他區域都是由空白信息組成,如果用較小尺寸的卷積核來對草圖特征進行提取,勢必導致曲線之間的空白區域的無效信息直接被提取,于是大多數基于深度學習的草圖特征提取模型,都在首層卷積層中使用較大的卷積核,以保證卷積核的感受野足夠大,進而能夠提取到更多、更加完整的有效特征信息。
在普通的卷積操作過程中,卷積核都是由相鄰的若干個權重不為0的卷積單位組成的,一方面,為了更好提取手繪草圖的形狀特征而增大卷積核大小的方式會造成計算量的增加;另一方面,大的卷積核也會提取到曲線包圍范圍內的空白無效特征,對于有效特征信息的提取和傳遞也會起到一定的干擾。考慮到這一情況,筆者將空洞卷積[13]引入到草圖識別中,利用空洞卷積不增加卷積核有效單元數量而擴大感受野的特性,來實現對草圖結構特征的提取,并將空洞卷積與普通卷積融合,以彌補空洞卷積提取特征過程中遠距離卷積得到的信息相關性弱的問題,通過這種多尺度融合特征提取方式來獲取更加完整的草圖特征信息。在此基礎上,筆者提出了基于空洞卷積的多尺度特征融合草圖識別模型(Dilated Convolution Sketch Net,DCSNet)。
在圖像分割領域,通常使用卷積和池化操作來增加感受野,同時也縮小了特征圖尺寸,然后再利用上采樣還原特征圖尺寸。特征圖縮小再放大的過程造成了分辨率的損失,空洞卷積的特點就是可以在增加感受野的同時保持輸出特征圖的大小不變,從而代替下采樣和上采樣操作。空洞卷積與普通卷積的不同之處在于“擴張率(dilation rate)”的引入,該參數定義了卷積核處理數據時各值的間距,具體含義就是在卷積核中填充了(dilation rate-1)個權重為0的卷積單元。相比原來的普通卷積,空洞卷積多了一個超參數,即有效卷積單位的間隔數量,而普通卷積核的擴張率為1,無0填充。當使用多個擁有不同擴張率的卷積核進行組合的時候,相當于將擁有不同的感受野卷積核進行組合,即可獲取多尺度上下文信息。
空洞卷積的工作原理就是將卷積核的擴張率設置為非1正整數,即在標準的卷積核里間隔注入(dilation rate-1)個權重為0的空洞,以此來增加卷積操作的感受野。實際上,大多數手繪草圖圖像包含的實際有效信息十分有限,草圖大多數區域都是由空白信息所填充,雖然大的首層卷積核能更好地提取草圖的形狀特征,但是相對于草圖識別模型,過大的卷積核不僅會增加大量的計算量,也會影響整個網絡模型的識別精度。故在文中提出的DCSNet模型中,考慮到實驗中使用的手繪草圖的實際尺寸,將基礎卷積核大小為 5×5、擴張率為2的空洞卷積作為草圖特征提取的首層卷積層中的部分卷積核。
因為輸出特征的尺寸和空洞數無關,因此可以利用空洞卷積不增加有效卷積單元數量而增大感受野,且輸出特征的尺寸保持不變的特性來進行特征提取。空洞卷積的卷積計算方式與普通卷積基本一致,對于輸入草圖數據F∈RH×W×m,生成的n個特征圖的任意卷積層的表達式為
Y′=Y×f′+b,
(1)
其中,Y′∈RH×W×n;f′∈Rm×k×k×n×d;b為偏置參數;m為輸入通道數,由于手繪草圖是單通道圖像,故m=1;n為輸出通道數;d表示卷積核的擴張率;k×k表示基礎卷積核的尺寸大小。例如,在文中構建的DCSNet模型的首層卷積層中,令k=5,d=2,其等效的普通卷積核大小為k1*k1,k1的計算公式可表示為
k1=k+(k-1)(d-1) 。
(2)
使用的卷積操作的具體運算過程為
(3)

空洞卷積提取草圖特征的具體操作過程如圖1所示。圖中左上角部分對應的是空洞卷積與草圖空白區域的卷積過程。與同等大小的普通卷積核相比,最終的結果都是提取到無效的特征信息,但是空洞卷積的計算量卻大大降低了(與權重為0的卷積單元發生的卷積可視為無效)。左下角對應的是空洞卷積與草圖中帶有筆畫信息的區域卷積的過程,因為草圖的稀疏性特性,由筆畫包圍的大部分區域也是由空白信息填充的,空洞卷積不僅能有效的提取到筆畫信息,也能將筆畫包圍的無效信息忽略,做到不遺漏特征信息的同時降低網絡參數。

圖1 空洞卷積提取草圖特征詳細過程
由空洞卷積操作得到的某一層的結果中,鄰近的像素是從相互獨立的子集中卷積得到的,相互之間缺少依賴,故會存在局部信息丟失等問題。而空洞卷積的稀疏采樣方式,也使得遠距離卷積得到的信息之間沒有相關性,對分類結果也有一定影響。為了解決以上問題,在DCSNet模型的部分卷積采樣層中,將空洞卷積和普通卷積組合進行使用,卷積層的輸出特征由兩部分組成。以首層卷積層輸出特征為例,一部分由擴張率為2的5×5空洞卷積與輸入草圖卷積操作后的特征組成,另一部分則由普通9×9卷積核與輸入草圖卷積后特征組成,兩部分特征在通道上進行拼接后,作為該層卷積層的輸出特征。這樣做的好處是:一方面解決了提取的特征信息相關性問題,同時也保留了對草圖形狀特征的稀疏采樣操作;另一方面,使用不同擴張率的卷積核,意味著可以擁有不同尺寸的感受野,即獲取了多尺度信息,充分利用了上下文多尺度信息在視覺任務中的優勢,且這樣的操作不會影響輸出特征的尺寸。經過多尺度融合采樣輸出特征的計算過程為
YC=Y1⊕Y2,
(4)
Y1=max{Y*f1+b1,0} ,
(5)
Y2=max{Y*f2+b2,0} ,
(6)
其中,YC為該層卷積層的最終輸出,YC∈RH×W×2n,Y是草圖輸入數據,Y1和Y2分別為空洞卷積和普通卷積操作的輸出結果,Y1∈RH×W×n,Y2∈RH×W×n,f1∈Rm×k×k×n×d,f2∈Rm×k×k×n。
為了對經過卷積處理的特征進行壓縮,并去除冗余信息,需要對其進行池化降維處理,這是一種非線性降采樣的信息傳遞方法。下采樣層也稱為池化層。池化層一般夾在連續的卷積層之間,用于壓縮上一層特征圖的參數量,過濾上層特征信息且保持輸出特征近似平移不變。最大池化、平均池化和隨機池化等都是常用的池化方法。在DCSNet模型中,選擇將最大池化和平均池化交替使用,對經過卷積處理的特征進行降維處理。使用的最大池化和平均池化的計算過程如式(7)和式(8)所示:
Mc=max(Ic(i,j)),i∈(1,H),j∈(1,W) ,
(7)
(8)
其中c表示第c個特征圖,Mc表示第c個特征圖經過最大池化操作的輸出;m表示第m個特征圖,Am表示第m個特征圖經過平均池化操作的輸出。
模型的全連接層一共3層,除了最后一層以外,其他層后都緊接著Dropout層。Dropout率為0.5,即舍棄50%輸出單元參數。然后通過Softmax函數得到輸入草圖樣本所屬種類的概率分布輸出,設網絡原始輸出為yi(y1,y2,…,yn),經過Softmax回歸函數處理之后的輸出可表示為
(9)
其中,c是分類數量,yc*表示c的訓練函數。Softmax對應的損失函數為
(10)
其中,yk的取值為0或者1,草圖訓練樣本的輸出為第i類,yi=1,其余的j≠i都有yj=0。
DCSNet模型主要包括8層,輸入數據由224×224像素大小的草圖圖像組成,其中采樣層由5層卷積層和5層池化層組成,模型結構和模型參數如圖2和表1所示。與主流的基于卷積神經網絡的草圖識別模型使用大尺度首層卷積核不同,在DCSNet模型的首層卷積層中,考慮到實際草圖的尺寸大小,使用的是k=9、d=1和k=5、d=2兩種卷積核,兩種卷積核的尺寸都相對較小。模型第2層和第4層使用的都是k=5、d=1和k=3、d=2組合卷積核,第3層和第5層分別使用k=5、d=2和k=5、d=1的卷積核。模型中所有卷積操作的步長都為1,每次卷積操作后面接著使用ReLU激活函數進行去線性化處理,卷積層后交替使用步長為2的最大池化和平均池化對輸出特征進行降維處理,縮小圖像的尺寸,并在最后去掉了局部相應歸一化(Local Response Normalization,LRN)操作。DCSNet模型各階段的輸入與輸出數據參數如表1所示,其中Conv-DC表示空洞卷積,Conv-C表示普通卷積。

圖2 DCSNet網絡模型結構

表1 DCSNet模型部分參數
實驗中選擇自適應學習率作為模型的優化算法。設全局學習率為λ,衰減速率為ρ,初始參數為θ,小常數δ=10-6,初始化累積變量r=0;從訓練集中采集m個樣本{x(1),…,x(m)}的小批量,x(i)對應y(i)。梯度、累計平方梯度、參數更新量的計算方法如下:
(11)
r←ρr+(1-ρ)g⊙g,
(12)
(13)
文獻[1]組織收集整理的手繪草圖集TU-Berlin Sketch,是目前草圖識別領域應用最廣泛的數據集之一,故將其作為有效性驗證的實驗數據。數據集包含250類常見的手繪草圖,每類草圖包含80幅由不同人群手繪完成的草圖,總計20 000幅。文中選擇PNG圖片格式的數據作為實驗對象,草圖的原始像素大小為1 111×1 111,數據集部分草圖如圖3所示。

圖3 TU-Berlin SKetch草圖樣例
由于深度學習方法需要大量數據支撐,訓練樣本數量過少模型可能會出現過擬合的問題,故文中采用旋轉、圖像平移、加噪、鏡像翻轉、隨機切割、尾部移除等數據增強方法對TU-Berlin SKetch數據集進行數據擴增。以上數據擴增策略讓草圖數據集的圖像數量擴增為原來的6倍。數據擴增的方法不僅可以增加訓練樣本數量,同時可以在一定程度上緩解模型過擬合,提高模型的泛化能力,也提升了實驗過程的穩定性以及實驗結果的魯棒性。例如,圖像平移的方法可以使得網絡學習到平移不變的特征;圖像旋轉的方法可以讓網絡學習旋轉不變的特征,在實際應用中,草圖可能有多種不同的姿態,旋轉正好可以彌補樣本中姿態較少的問題;而圖像鏡像和旋轉的功能類似;加噪、隨機切割、尾部移除都是草圖應用領域的常用數據擴增策略。
實驗中使用的深度學習框架為谷歌推出的Tensorflow,算法采用python編程語言實現,開發平臺為Pycharm。在CPU環境(Intel(R)Core(TM)i7-8750H CPU @2.20 GHZ CPU)和GPU環境(NVIDIA GeForce GTX 1660 Ti GPU)下進行訓練。實驗中使用的草圖數據集一共有120 000張草圖圖像,并按照3∶1∶1的比例將其劃分為訓練集、測試集和驗證集,三者的數量分別為72 000、24 000和24 000。為了減少實驗運算量,將所有圖像降維到224×224像素,訓練結果采用驗證集上的平均識別準確率作為評價指標。實驗使用的度量標準為網絡的驗證集樣本的識別準確率(Top1準確率)。準確率是指正確分類樣本的圖像數量在所有樣本中的比例:racc=a/y,racc代表驗證集中圖像識別準確率,a表示驗證集中識別結果正確的樣本數量,y表示驗證集總樣本數量。
實驗中,將筆者提出的方法與傳統手工特征提取再進行標注分類的草圖識別方法以及基于深度學習的識別方法進行對比分析。對比方法包括HOG-SVM[1]、SIFT-Fisher Vector[14]、AlexNet[15]、Sketch-a-Net[4]、Sketch-Net[16]、deep-CRNN-sketch[11]和DCSN[5],不同方法在TU-Berlin SKetch數據集上的最終識別準確率結果如表2所示。

表2 不同方法對應草圖識別準確率結果對比 %
與傳統的非深度學習方法HOG-SVM、SIFT-Fisher Vector相比,文中方法在TU-Berlin SKetch數據集上的識別準確率分別提升了16.6%和11.1%;與經典的卷積神經網絡模型AlexNet相比,文中方法的識別準確率提升了6.7%;與主流基于深度學習的草圖識別模型Sketch-a-Net、Sketch-Net、DCSN、deep-CRNN-sketch相比,文中方法的識別準確率分別提升了3.0%、2.2%、2.1%和0.8%。實驗結果表明:①基于深度學習的草圖識別方法在TU-Berlin SKetch數據集上的識別效果整體上都優于傳統的非深度學習方法;②針對草圖識別而專門設計的神經網絡模型的性能又優于針對自然圖片識別任務的神經網絡模型;③引入空洞卷積來進行草圖的形狀特征提取的方法是有效的,將空洞卷積和普通卷積組合的方式也能進一步提升模型在TU-Berlin SKetch數據集上的識別準確率。
為了探究空洞卷積對草圖形狀特征提取的有效性,將文中的模型的首層卷積核作為變量,做了以下3組對照實驗。第1組對照實驗是將首層卷積核尺寸設置為5×5,擴張率為1;第2組對照實驗是將首層卷積核尺寸設置為9×9,擴張率為1;第3組對照實驗是將首層卷積核尺寸設置為5×5,擴張率為2。3組對照實驗除了首層卷積核參數與DCSNet模型不同以外,其余部分與DCSNet模型一致。第1組對照實驗是為了驗證大尺寸首層卷積核與小尺寸空洞卷積核的性能差異,第2組對照實驗是為了驗證感受野相同的普通卷積核與空洞卷積核的性能差異,第3組對照實驗是為了驗證只使用空洞卷積和將空洞卷積與普通卷積組合使用兩種方式對草圖特征提取的影響程度。對照實驗是為了探究首層卷積核參數對模型的識別準確率的影響規律,不同首層卷積核參數對應的模型識別準確率隨迭代次數變化趨勢如圖4所示。表3是不同首層卷積核參數對應的最終草圖識別正確率對比,表中k表示卷積核實際有效尺寸,d表示擴張率大小。

表3 不同首層卷積核參數對應的草圖識別正確率

圖4 對照組實驗對應模型識別準確率
實驗結果表明,首層卷積核尺寸為5×5、擴張率為2的空洞卷積與卷積核尺寸為9×9、擴張率為1的普通卷積的組合方式,比首層卷積核大小為5×5、擴張率為1和卷積核大小為9×9、擴張率為1以及卷積核大小為5×5、擴張率為2的方式識別準確率分別提高了3.7%、2.3%和1.1%。可以得出:① 在首層卷積核中,使用空洞卷積和普通卷積融合的方式對草圖特征的提取效果優于對照實驗中的其它方式。② 對于擁有相同大小感受野的空洞卷積和普通卷積,空洞卷積能更好地提取草圖形狀特征。出現這種現象的原因有兩點,一是將空洞卷積和普通卷積融合,意味著可以擁有不同尺寸的感受野,即獲取了多尺度信息,提高了卷積核對草圖特征的提取能力;二是空洞卷積對于草圖的稀疏性特性擁有更好的適應能力,能更有效地提取到草圖的形狀特征。此外,空洞卷積的擴張率大小可能也會對草圖特征的提取效率產生影響,這也是下一步將要深入研究的方向。
筆者將空洞卷積引入手繪草圖的形狀特征提取中,并以經典的卷積神經網絡模型AlexNet為基礎,構建了采用空洞卷積的多尺度融合草圖識別模型。通過空洞卷積和普通卷積的組合,提高網絡對草圖形狀結構特征的提取能力,進而提高模型的草圖識別準確率。實驗結果表明,筆者提出的DCSNet模型相較于文獻中的草圖識別方法和模型,在TU-Berlin SKetch數據集上擁有更高的識別準確率。
在未來的工作中,將進一步擴展空洞卷積對草圖圖像結構特征的處理機制,探討卷積核尺寸以及擴張率大小對草圖特征提取能力的影響程度。