黨吉圣,楊 軍
蘭州交通大學電子與信息工程學院,蘭州730070
近年來,隨著三維建模技術以及深度傳感器的廣泛應用,三維模型的種類和數量呈現出爆炸式增長,如何有效提高大規(guī)模多種類復雜三維模型識別準確率成為一個亟待解決的問題。三維模型識別已成為機器視覺和計算機圖形學領域的一個熱點和難點問題。為了提高三維模型識別準確率,大量研究工作應運而生,主要方法分為傳統方法和基于深度學習的方法。其中傳統方法[1-2]是研究者利用已有領域知識手工設計特征描述符對三維模型類別進行預測,如熱核描述符[3]、三角區(qū)域描述符[4]等。雖然此類方法在小數據集上識別效果好,但是無法有效提取三維模型的高層語義特征,泛化能力較弱。
深度學習方法在二維圖像的特征學習上取得了突飛猛進的進步,極大地促進了機器視覺領域的飛速發(fā)展。但由于三維模型內在結構的復雜性,基于深度學習的三維模型識別還面臨著極大的挑戰(zhàn)。目前基于深度學習的三維模型識別方法主要分為三類:基于體素化的方法、基于多視圖的方法和基于幾何深度學習的方法?;诙S視圖的方法[5-6]可以直接利用經典的二維深度學習框架并融合多方向投影的視角信息來提取三維模型的類別特征用于識別分類,但該方法存在視圖特征冗余和三維模型幾何結構信息丟失的問題?;隗w素化的方法[7-10]是把不規(guī)則的原始點云數據體素化為規(guī)則的三維體素數據,然后在三維體素數據上設計三維卷積神經網絡提取特征,但三維體素模型的低分辨率導致了三維模型局部細節(jié)信息的丟失,同時三維卷積操作相比于二維卷積操作內存成本更高?;趲缀紊疃葘W習方法已成為三維模型識別的主流研究方法。幾何深度學習[11-19]是通過深度神經網絡來處理非歐幾里德結構數據(如點云)的算法。文獻[20]提出的圖卷積神經網絡可以直接處理點云等不規(guī)則結構數據,證明了圖表示方法在非歐幾里德數據處理任務中的優(yōu)勢。文獻[21]提出PointNet 模型采用多層感知機(multilayer perceptron,MLP)提取每個獨立點的特征,然后通過最大池化層把所有點的特征聚合得到全局特征描述符用于三維模型識別。
由于點云在非歐幾里德空間中的不規(guī)則性,挖掘點云的上下文細粒度局部特征仍然面臨著很大的挑戰(zhàn)?,F有方法對全局幾何結構極其相似,只有局部細粒度細節(jié)不同的類容易識別混淆。鑒于此,本文旨在探究一種深度圖注意力卷積神經網絡架構,充分挖掘三維點云模型的空間上下文細粒度局部特征,增強網絡細分類能力,總體上提高三維模型的識別準確率。細粒度局部特征有助于增強網絡的細粒度細節(jié)捕捉能力,空間上下文特征對三維模型的空間上下文結構信息更加敏感,二者各有優(yōu)勢,有很強的互補性,相互補償可以增強特征的完備性。本文的主要貢獻和創(chuàng)新點有:(1)構建圖注意力卷積層。通過在卷積層中引入鄰域選擇機制來學習每個點的細粒度局部特征,并融合空間上下文編碼機制學習到的空間上下文特征以獲取點云的更具鑒別力的空間上下文細粒度局部特征。(2)采用多頭部機制。單頭部圖注意力卷積(graph attention convolution,GAC)層從表示空間中并行獲取不同特征,并進一步聚合到一起,增強特征的豐富性。(3)在網絡中引入殘差連接加深網絡深度以充分挖掘三維模型更抽象的深層隱含特征。(4)提出選擇性丟棄(selectable dropout)算法對重要性不同的權重進行選擇性的丟棄,防止過擬合,增強網絡的魯棒性。
三維點云模型可以表示為空間中的一組無序點集X={xi∈RF,i=1,2,…,N}作為網絡的輸入,其中N為點的數目,xi為任意采樣點,F為特征維度,取值為3,即表示x、y、z三維坐標。把整個點云中的每個點和其他所有點連接會造成很高的計算成本。因此,本文構建一個k近鄰圖G=(V,E)表示點云的一個局部區(qū)域。其中,V={1,2,…,k+1}為點的數目,E?V×D表示xi與鄰域內相鄰點的連接邊,D為點xi的k鄰域內其他點的集合。
一個理想的三維模型識別算法,既要捕捉其全局空間上下文信息,也要充分挖掘局部細粒度信息,二者具有很強的互補性,缺一不可。為此,本文構建一個特征提取器GAC 層,分別采用鄰域選擇機制和空間上下文編碼機制分別學習點云的局部細節(jié)信息和全局空間上下文信息,網絡結構如圖1 所示。其中,N為點的數目,MLP{}表示多層感知機,大括號中的數字表示卷積核的數目。
鄰域選擇機制首先對每個點的三維坐標信息進行自編碼,即采用一個具有F1個卷積核的MLP 將點云原始特征映射到高維特征空間,計算公式如下:
式中,χ為參數化的非線性激活函數,θ為可學習的參數集合,B為批歸一化操作,C表示卷積操作,其下標F×1 為卷積核大小。
此外,為了加強網絡對局部特征的表征能力,對點云中的描述點xi采用k最近鄰算法搜索距離最近的k個點構建k鄰域圖,然后采用具有F1個卷積核的MLP 提取k鄰域高維圖特征得到N×k×F1維特征,計算公式為:
式中,xij為xi的鄰近點。對ui′和vij′分別采用一個MLP 計算出描述點xi的自注意力系數和鄰域注意力系數。將自注意力系數和鄰域注意力系數進一步融合得到描述點xi到其鄰域內k個鄰近點的鄰域選擇系數,計算公式為:
式中,LR()為非線性激活函數LeakyReLU。同時采用Softmax 函數進行規(guī)范化處理:
將歸一化后的鄰域選擇系數aij與其k鄰域圖特征vij′相乘得到大小為N×F1′的細粒度局部特征,即:
Fig.1 GAC layer圖1 GAC 層
鄰域選擇系數通過賦予不同的鄰域權重來學習為無意義的鄰域特征分配相對較低的權重,而為更具鑒別力的鄰域特征分配較高的權重。因此,鄰域選擇系數就像特征選擇器一樣,可以增強有意義的鄰域結構特征,拋棄無用的鄰域特征,比如噪聲,避免鄰域之間的特征污染。鄰域選擇機制有針對性地抑制冗余的鄰域特征,因此不會損害有效信息的完整性。由于局部區(qū)域內有效信息有限,設置F1為14,k為20。
鄰域選擇機制主要關注局部細節(jié)信息的捕捉,忽略了空間上下文結構信息。為此,GAC 層同時采用空間上下文編碼來增強特征的完備性。為了減少計算量,首先從三維點云中選取R(R<N)個采樣點,對每個采樣點采用k最近鄰算法搜索距離最近的k1個點構成采樣點xi的k1鄰域區(qū)域,在采樣點xi通過k最近鄰算法構建k鄰域時,按從小到大取T個不同的k值,可以得到采樣點xi的T個不同尺度的鄰域區(qū)域;然后分別采用三個MLP 依次對每個鄰域提取局部特征,得到采樣點xi的T個有序特征向量構成的特征向量序列把采樣點xi的特征向量序列輸入RNN(recurrent neural network)編碼器,用一個隱藏層依次進行編碼,提取采樣點xi的空間上下文高層特征。RNN編碼器由一個隱藏層l和一個Φ構成,當RNN 編碼采樣點xi的每個鄰域的特征向量時,RNN 編碼器的隱藏層狀態(tài)lt都要被更新,該過程如式(7)所示:
式中,f為一個非線性激活函數,實驗中采用LSTM 單元。為采樣點xi的kt鄰域的幾何特征向量,lt-1為編碼上一個鄰域的特征向量時的隱藏層狀態(tài)。
在RNN 編碼采樣點xi的第t個鄰域的特征向量時,編碼器的輸出Φt為:
式中,Wa是一個可學習的權重矩陣。當RNN 編碼采樣點xi的最后一個鄰域特征向量時,網絡已學習完成所有輸入特征向量,編碼器的最后一步隱藏層狀態(tài)lT被更新,lT和Wa相乘得到包含了整個特征序列的上下文高層幾何特征ΦT。空間上下文編碼機制通過依次編碼采樣點xi的所有不同尺度的k鄰域區(qū)域,可以獲取不同尺度鄰域區(qū)域之間的相關性,提取到采樣點xi的上下文高層幾何特征。
由于在計算細粒度局部特征時,雖然引入鄰域選擇機制增強了網絡在局部區(qū)域內細節(jié)捕捉的能力,但是忽略了三維模型的全局空間上下文結構信息,而空間上下文編碼機制通過結合局部區(qū)域之間上下文信息可以有效捕捉三維點云的全局空間上下文結構信息,因此細粒度局部特征和全局空間上下文特征有很強的互補性,將鄰域選擇機制和空間上下文編碼機制結合來構建GAC 層具有一定的合理性。因此,將采樣點的空間上下文特征通過插值層[12]上采樣后,采用LeakyReLU 非線性激活函數將采樣點xi的空間上下文特征和細粒度局部特征融合,可以得到采樣點xi的更具鑒別力的上下文細粒度局部特征。計算公式如下:
式中,ΦT為采樣點xi的空間上下文特征,為采樣點xi的細粒度局部特征。本文構建的GAC 層可以同時兼顧局部細節(jié)挖掘能力和全局空間上下文信息捕捉能力,能夠作為一個通用的點云特征提取器推廣到其他應用中。
為了獲得豐富的特征信息以增強網絡的泛化能力,在計算GAC 層的上下文細粒度局部特征和圖特征時,對歸一化后的鄰域選擇系數引入隨機丟棄(Dropout)算法,通過隨機丟棄一些權重得到M個不同的單頭部(Single-head)GAC 層,其中權重保留率設為0.7。把M個單頭部GAC 層連接到一起得到特征信息更加豐富的多頭部(Multi-head)GAC 層,網絡結構如圖2 所示,特征聚合公式為:
Fig.2 Multi-head GAC layer圖2 多頭部GAC 層
式中,是采樣點xi的第m個頭部的上下文細粒度局部特征,M是頭部數,||是特征通道的連接操作。
本文構建的深度圖注意力卷積神經網絡(deep graph attention convolution neural network,DGACNN)結構如圖3 所示。圖中Attention-aware spatial transform為一個3×3 的矩陣,矩陣中的每一個元素都是網絡通過學習得到的。MLP{512,256,C}表示神經元個數分別為512、256、C的三個全連接層,其中C為類別數目,本實驗中設為40。藍色箭頭表示殘差連接。除最后一層外,所有層都包含批處理規(guī)范化操作。
DGACNN 的輸入為N×3 維度的點云矩陣,首先為了使輸入點云對縮放、旋轉、平移等幾何變換具有不變性,采用注意力感知空間轉換網絡對不同姿態(tài)的點云進行規(guī)范化,然后采用GAC 層提取點云模型的多頭部上下文細粒度局部特征。為了充分挖掘點云更為抽象的深層隱含語義特征,采用殘差連接避免梯度消失問題的同時加深了網絡深度,各卷積層的具體參數如表1 所示。同時,把GAC層輸出的圖特征進行最大池化,并和Layer5輸出的特征融合后得到大小為N×1 024 的特征矩陣,通過最大池化層進行聚合,得到表征整個點云模型的全局特征描述符,輸入到三個全連接層進行降維轉換。最后,通過Softmax分類器對模型類別進行預測,得到最終的分類分數。
Table 1 Parameters of each convolution layer表1 卷積層各層參數
由于本文構建的DGACNN 網絡結構復雜,參數較多,有較高的過擬合風險。傳統方法使用Dropout正則化算法隨機丟棄一部分權重來增強網絡的泛化能力。然而,隨機丟棄算法可能會丟棄一些重要性高的權重而保留一些值接近于0 的權重。為了減少模型冗余性的同時增強網絡的魯棒性,設計一種Selectable Dropout 算法,將剪枝策略應用到神經網絡的訓練過程中,在網絡參數每次更新時,通過排序剪枝選擇一個候選丟棄組,把Dropout 算法應用于該候選組進行部分權重的隨機丟棄。
針對于網絡過擬合問題,文獻[22]提出了權重丟棄算法,在每一次網絡訓練時會隨機丟棄一部分權重,提高了神經網絡的泛化性。該操作如式(11)所示:
式中,X為輸入張量,W為權重矩陣,φ為修剪矩陣,Y為輸出張量,⊙為矩陣點乘操作。排序剪枝的核心思想是將前k個最大的權重視為最重要的權重將其保留下來。即對每層所有權重按照神經元權重的L1均值進行從大到小排序,采用argmax-k返回權重值最大的k個權重,計算公式為:
Fig.3 DGACNN network structure圖3 DGACNN 網絡結構
式中,Wi為第i個卷積核中的權重值,η為全連接層中神經元的個數,即權重的個數。將前k個最大權重的最小值作為閾值,小于閾值的權重歸入候選丟棄組,采用Dropout 算法對候選丟棄組中每個元素進行隨機丟棄以實現排序剪枝。
對于神經網絡中具有η個權重參數的一個全連接層,使用式(12)的排序剪枝策略進行修剪,Selectable Dropout 的目標是得到最優(yōu)參數η*使得損失函數ε(w(η*))最小。排序剪枝機制的任務是保留全連接層中值最大的k個權重,通過丟棄值最小的η-k個權重來實現。但由于值較小的權重在網絡訓練的過程中有可能變大,因此在網絡中引入兩個變量以實現時變性,能夠適時地根據迭代更新的權值進行排序剪枝。一個變量為靶向比例λ,另一個變量為丟棄概率σ。靶向比例λ是選擇權重值最低的λη個權重作為候選丟棄組,然后對候選丟棄組中的每個元素以丟棄概率σ進行丟棄,因此每一次參數更新后網絡中保留的權重數為(1-λ×σ)η。神經網絡80%以上的參數都來自于全連接層,本文將Selectable Dropout 算法嵌入到DGACNN 的前兩個全連接層來降低網絡的過擬合風險。通過在訓練過程中迭代地使用剪枝和再訓練這一循環(huán)來實現排序剪枝,在保證模型識別準確率的基礎上降低模型復雜度。與傳統的Dropout 正則化方案相比,Selectable Dropout 算法使網絡學習保留重要性高的權重,在權重值較小的分組內隨機丟棄權重,有效地防止了網絡的過擬合,增強了網絡的魯棒性,減少了網絡的冗余性。
本文算法實驗環(huán)境基于Linux Ubuntu 16.04 操作系統,硬件為英特爾i7 8700k CPU 和GeForce RTX 2080 GPU(8 GB 內存),運算平臺為CUDA-Toolkit 9.0,采用Cudnn 7.13 作為網絡的GPU 加速庫,深度學習框架為Tensorflow-gpu,版本號為1.9.0。
本實驗采用由Princeton University 公開的用于三維模型識別的標準數據集ModelNet40[23]。該數據集包含40 個類別的12 311 個CAD(computer-aided design)模型,實驗中將9 843 個模型用于訓練,2 468個模型用于測試。
實驗中采用基于動量的隨機梯度下降算法(stochastic gradient descent,SGD)來優(yōu)化網絡,設置動量因子為0.9,權重衰減為0.000 5,初始學習率為0.001,學習率衰減指數為0.7,衰減速度為200 000,采用Adam 算法來更新SGD 的步長,網絡參數初始化采用Xavier 優(yōu)化器,Selectable Dropout 算法的靶向比例為0.5,丟棄概率為0.5。
為了驗證本文算法的優(yōu)越性,在相同的實驗條件下分別與目前主流算法在ModelNet40 數據集上進行對比實驗,采用三維模型識別準確率和模型復雜度兩個評估準則,實驗結果如表2 所示。可以看出,本文算法識別準確率明顯優(yōu)于其他算法,相比于PointNet 識別準確率提高3.4 個百分點,相比于最先進的SpiderCNN 識別準確率提高0.2 個百分點。原因在于DGACNN 既能挖掘局部區(qū)域內細粒度特征,又能通過結合局部區(qū)域之間的相關性捕獲全局結構信息,增強了網絡對于幾何形狀相似的類的區(qū)分能力。模型復雜度用訓練完保存的模型大小進行評估,本文算法的參數存儲量僅大于PointNet++和DGCNN,但識別準確率比PointNet++和DGCNN 分別提高2.4 個百分點和0.4 個百分點。其他幾種算法的模型復雜度明顯高于本文算法,因為Selectable Dropout 算法可以有選擇地對網絡冗余參數進行丟棄,相比于現有方法,既增強了網絡的魯棒性,有利于識別準確率的提升,也減少了網絡的冗余性,降低了模型復雜度。綜上所述,本文算法在三維模型識別準確率和模型復雜度兩方面均有一定優(yōu)勢,達到最佳平衡。
Table 2 Network performance comparison of different algorithms on ModelNet40表2 ModelNet40 上不同算法的網絡性能比較
為了進一步證明DGACNN 算法的細分類能力,在ModelNet40 測試集上對實驗結果中每一類的識別準確率與PointNet 算法進行了對比分析,如表3 所示??傮w來看,對于測試集中絕大多數類,本文算法識別準確率相對于PointNet算法都有了明顯的提高,尤其改善了全局幾何結構極其相似,只有局部空間細節(jié)信息有所差別的類容易混淆的問題,如table 類和desk 類、chair 類和stool 類等。因為本文算法能充分提取到點云模型的更具鑒別力的空間上下文細粒度局部特征,所以才能有效區(qū)分易混淆的三維模型的類別信息。此外,為了對預測結果進行定性分析,圖4 給出了在ModelNet40 數據集上幾種典型的誤分類模型的可視化結果。圖中從左往右依次為真實標簽、本文算法預測結果、錯誤預測結果和真實標簽的共同結構、標簽說明Label。從實例中可以看出,真實三維模型和誤分類模型的一些共同局部結構導致了本文算法識別混淆,如flower_pot類和plant類的共同結構plant 導致本文算法把flower_pot 類預測為plant類。由此可見本文算法在如何忽略干擾特征,只關注顯著特征方面能力不足。未來可以考慮如何對不同尺度的局部區(qū)域引入注意力機制來排除局部干擾特征。
Table 3 Classification results for each class on ModelNet40 dataset表3 ModelNet40 數據集上每一類的分類結果
Fig.4 Visualization of misclassification models圖4 誤分類模型可視化
此外,實驗還探究了GAC 層、多頭部GAC 層和殘差連接對網絡性能的影響。通過構建不同的網絡進行訓練并測試,實驗結果如表4 所示。其中NC 表示鄰域選擇機制,SC 表示空間上下文編碼??梢钥闯觯谠季W絡PointNet 中引入鄰域選擇機制后識別準確率比PointNet 提高了2.3 個百分點,原因在于鄰域選擇注意力機制使每個描述點聚合了更具鑒別力的細粒度局部特征,在此基礎上繼續(xù)引入空間上下文編碼機制后識別準確率又提高了0.8 個百分點,總體識別準確率達到了92.3%。因為空間上下文編碼機制能夠有效獲取全局的空間上下文特征信息,并與細粒度局部特征進行相互補償,增強了特征的完備性。通過引入多頭部機制,識別準確率提高了0.2個百分點,因為多頭部圖注意力卷積層聚合了更豐富的特征信息,提高了網絡的泛化能力。最后引入殘差連接,識別準確率提高0.1 個百分點,因為通過殘差連接使特征重組可以加深網絡容量,能夠充分挖掘深層隱含語義信息。
Table 4 Effectiveness analysis of different components表4 不同組件的有效性分析
與此同時,本文繼續(xù)探究了不同的頭部數和編碼特征通道數對識別準確率的影響,結果如表5 所示??梢钥闯?,適當增加頭部數和編碼特征通道數能夠提高模型識別準確率,原因在于頭部數和編碼特征通道數的增加使網絡提取到的特征更加充足。當頭部數為3,編碼特征通道數為14 時識別準確率達到最佳,再增加頭部數目或編碼特征通道數都會使網絡性能降低,因為此時網絡提取到的特征已趨于飽和,再增加頭部數或編碼特征通道數不會提升網絡的學習能力,反而會增加過多的冗余參數,降低網絡性能。
Table 5 Different combinations of the number of headers and the number of coding feature channels表5 頭數目和編碼特征通道數目的不同組合
為了驗證本文設計的Selectable Dropout 正則化算法對網絡性能的影響,實驗選取不同的靶向比例λ、丟棄概率σ與傳統Dropout 正則化算法進行對比實驗,結果如表6 所示??梢钥闯觯捎肧electable Dropout 算法在靶向比例λ取0.50,丟棄概率σ取0.50 時識別準確率比傳統Dropout算法提高0.57 個百分點。原因在于Selectable Dropout 算法通過對權重值大小進行排序,能夠有選擇地保留重要性高的權重,增強網絡的魯棒性。
Table 6 Impact of Selectable Dropout on recognition accuracy表6 Selectable Dropout對識別準確率的影響
本文構建了一種基于深度圖注意力卷積神經網絡的三維模型識別方法。通過構建GAC 層捕捉點云的更具鑒別力的細粒度空間上下文特征,增強了網絡的細分類能力。同時引入多頭部機制和殘差連接進一步優(yōu)化網絡結構。此外,設計Selectable Dropout算法對模型進行排序剪枝,增強網絡魯棒性,減少網絡的冗余性。在ModelNet40 數據集上的實驗結果表明,本文算法對三維模型識別準確率達到了92.6%,與目前主流方法相比,在識別準確率和模型復雜度方面都具有較強優(yōu)勢。實驗中發(fā)現,本文算法對如何忽略局部干擾特征,只關注顯著特征還存在進一步改進的空間,這是未來需要繼續(xù)研究的方向。