田鈺杰,管有慶,龔 銳
(南京郵電大學 物聯網學院,南京 210023)
點云是一種常用的三維圖形表示方式,許多場景都是基于點云進行三維環境感知和交互的,對點云進行分類和分割是目前深度學習領域的研究熱點。點云數據是傳感器最原始的數據形式,主要采用深度學習處理點云。點云具有無序性,可利用深度神經網絡強大的學習能力解決點云數據的排序問題。PointNet[1]和Deep Set[2]利用對稱函數處理無序的點云,從而對其進行優化。PointNet++[3]對PointNet 方法進行擴展,通過多尺度優化局部特征提取性能。DGCNN[4]深度神經網絡根據絕對坐標計算空間中的局部區域,通過計算點的邊緣特征學習邊緣特征與其他特征之間的關系。VoxNet[5]將采樣三維的點送入32×32×32 的三維網格,進而由三維卷積神經網絡(Convolutional Neural Network,CNN)進行處理,但該網絡計算量較大。曾碧等[6]提出一種聚類算法融合特征的方法,通過聚類算法對學習到的特征進行融合,用于解決點云室內場景分割。MVCNN[7]從點云中采樣80 個視圖,將它們投影到二維空間并進行二維的CNN 處理。楊曉文等[8]提出一種基于八叉樹的CNN,構造高效的八叉樹結構化來表示三維點云,將卷積計算限制在八叉樹節點上,不需要投影到二維空間且能減少一定的計算量。SO-Net[9]網絡結構使用自組織映射(Self-Organization Map,SOM)進行分層特征提取。
研究者利用多層感知機(Multilayer Perceptron,MLP)提取每個點的語義特征以處理點云數據,但這類方法不能很好地學習點的局部特征且魯棒性較差。在點云分類分割中,既要考慮輸入點的全局特征,也要考慮點與點之間的局部關系。楊軍等[10]提出一種基于上下文注意力的CNN 方法,通過上下文循環神經網絡編碼機制捕捉多尺度局部區域之間的上下文特征,增強了模型的泛化能力。白靜等[11]提出多尺度點云分類網絡(Multi-Scale Point Cloud Classification Network,MSP-Net),使用多尺度特征對點云進行分類,表明多尺度具有更好的感受野,與單尺度分類相比,其精度更高,但是沒有深入研究局部特征。文獻[12-13]在自然語言處理(Natural Language Processing,NLP)領域中引入注意力的概念。注意力方法主要有分組注意變換(GSA)[14]和多頭注意(Multi-Head Attention,MHA)[15],都是通過注意力來找到點云的局部聯系。
本文提出用于多特征點云分類分割的深度神經網絡RMFP-DNN。利用自注意力模塊提取點與點之間的局部特征,通過殘差結構結合GSA 與MLP 以加強對局部特征的學習。在此基礎上,采用特征融合方法將局部特征的特征向量和每個點的特征向量相互連接,從而得到整體特征。
本文主要介紹RMFP-DNN 深度神經網絡、RMFP-DNN 的自注意力模塊和特征融合處理過程,自注意力模塊通過殘差連接[16]結合GSA 和MLP,特征融合處理將MLP 提取的特征和自注意力模塊提取的特征連接得到整體特征。
點云的個數設為N,輸入點云為P∈RN×3。初始輸入為N×3(每個點的維度為3),由2 個分支結構構成特征提取,一個分支首先經過空間變換結構[1],將N×3 的輸入通過K 近鄰(K-Nearest Neighbor,KNN)算法[17]學習點云本身的位置信息,并學習到有利于分類分割的D×D的矩陣(PointNet采用3×3的矩陣),N×3和3×3經過矩陣相乘得到N×3的輸出。空間變換結構如圖1所示??臻g變換結構對點云進行調整,從而保證點云旋轉不變。

圖1 空間變換結構Fig.1 Spatial transformer structure

圖2 RMFP-DNN 深度神經網絡結構Fig.2 Structure of RMFP-DNN deep neural network
自注意力模塊在GSA 基礎上進行殘差連接,引入MLP 來保證原始點信息的完整性,殘差的深層次結構能加深對局部特征的學習。
1.2.1 自注意力模塊結構
自注意力模塊由MLP 和GSA 組成。PointNet中,MLP 學習每個點單獨的特征,忽略了點和點之間的局部特征。針對這個問題,自注意力模塊通過GSA 來學習相鄰點的特征。自注意力模塊結構如圖3 所示。首先將N×3 的輸入通過絕對和相對位置嵌入(Absolute and Relative Position Embedding,ARPE)[10]輸入特征集合X∈RN×c,c為特征通道數。然后通過殘差連接將輸入特征和GSA 分組變換后的特征連接起來送到MLP 中,將其結果與GSA 再做一次殘差連接送到MLP 中,最后得到輸出特征N×c。

圖3 自注意力模塊結構Fig.3 Structure of self-attention module
GSA 通過挖掘輸入點和點之間的關系來進行局部特征的學習,能準確地表示每個點的語義特征。但是原有的GSA 不能保留原始的輸入信息,所以為了保留原始信息,在RMFP-DNN 的自注意力模塊引入MLP。
1.2.2 分組注意變換
GSA 是自注意力模塊的重要組成部分。神經網絡通過GSA 在訓練時能學習點和點之間的局部特征。首先使用注意層[18]捕捉點之間的關系。將非線性變換σ加到注意層中,得到非線性注意層,如式(1)所示:

其中:X為輸入點的特征集合;Q為查詢參數,用于關注輸入的X,且X,Q∈RN×c;c為通道數;s為按比例縮小的點積運算[8]。損失函數σ使用的是指數線性單元(Exponential Linear Unit,ELU)[19]。
PC機上還可以提供比智能手機豐富的控制功能和更人性化的人機界面,通過Internet訪問農產品服務器上的視頻信息:一方面可以實時監控農產品長勢與營養需求,提供及時決策;另一方面可供農業專家系統對自然災害防御,農作物病蟲害分析,農產品后期可視化溯源提供依據。
在此基礎上,引入通道變換[20]和分組變換[21],設g是分組數,c是通道數,c被g整除,每組的通道數cg=c/g,分組注意(GAttn)的定義如式(2)所示:

其中:X按通道分成g組,Xi∈RN×cg,Wi為每組i的 可學習變換權重,所以每組的特征Xi=X(i)Wi|i=0,1,…,g-1。自注意力是使輸入特征注意到每個輸入本身,令式(1)中的Q等于X,即Atσ(Q,X)變為Atσ(X,X)。再通過concat 連接,將每組的Atσ(Xi,Xi)連接成GAttn(X)。但這樣得到的GAttn阻止了組與組之間信息交流,引入一個無參數通道轉變算子ψ[22],在分組的基礎上進行有效的分組變換。元素x∈Rc,重新定義分組x,每個x是不同通道的特征,x定義如式(3)所示:

其中:(xicg+j|j=1,2,…,cg)為通道分組中的第(i+1)組,因為i是從0 開始的。這樣通道轉變算子ψ定義如式(4)所示:

式(4)通過無參數通道轉變算子ψ(x)將式(3)進行了分組變換,將式(2)中的GAttn代入式(4)中,最后通過分組歸一化(GN)[23]得到GSA,GSA如式(5)所示:

通過以上分組變換,GSA 能夠很好地提取點與點之間的特征。
特征融合處理主要將MLP 提取每個點的特征和自注意力模塊提取點之間的局部特征進行concat連接。concat連接是一個更為通用的特征融合方法。設MLP提取每個點的特征得到特征向量v1∈Rn,設自注意力模塊提取局部特征得到特征向量v2∈Rc,通過concat連接得到融合的特征向量v=[v1,v2]∈Rn+c,concat連接是通道數的合并,也就是特征維度的增加,而每一維度下的特征不變。如特征向量[1,2]和特征向量[3,4]經過concat 連接后變為特征向量[1,2,3,4]。RMFP-DNN通過MLP提取每個點的特征得到N×1 024的輸出特征,2 個自注意力模塊提取點之間的局部特征得到N×1 024的輸出特征,經過concat 連接后得到N×(1 024+1 024)的輸出特征,這樣通道數的增加使得點云有了更多的特征表示。
融合不同尺度的特征可以提高點云的分類分割準確率,MLP 提取每個點的特征,但丟失了很多局部信息,包括點與點之間的關系,導致點的語義特征不夠準確。自注意力模塊學習點之間的局部特征,具有更強的語義信息,但對每個點的學習沒有MLP 準確。因此,RMFP-DNN 采用特征融合方法,將兩者進行融合,從而提升點云分類分割的準確率。因為融合了多個特征,在點云的稀疏性實驗上,RMFPDNN 展現了較好的魯棒性。
使用分類數據集ModelNet40[24]和部件分割數據集ShapeNet[25]驗證RMFP-DNN 的魯棒性和準確率。
ModelNet40 數據集包含40 個三維對象的類別,共有12 311 個計算機輔助設計(Computer Aided Design,CAD)模型。采用9 840 個訓練樣本,2 471 個測試樣本。為比較RMFP-DNN 和其他方法,使用與PointNet 等方法相同的數據預處理。對于每個3D 模型,從網格面上均勻采樣1 024 個點,只考慮點云的坐標。用三維坐標(x,y,z)作為每個點的原始屬性。在訓練過程中,隨機旋轉并擾亂點的位置。所有實驗均使用Tensorflow 框架[26]。
在分類任務中,使用與SpiderCNN[27]中相同的訓練設置。模型關鍵參數設置對性能有一定的影響。RMFP-DNN 的批處理大小設為16,批處理大小是每次訓練時送入神經網絡的樣本數量,數值設置較大可以使網絡收斂得更快,但是要根據GPU 設備的性能來選擇數值。本次實驗的GPU 為Nvidia GTX 1080 Ti,所以批處理設置為16 可以使網絡收斂更快。采用交叉熵損失函數進行訓練,使用Adam[28]優化算法,Adam 能夠更快速地找到最優解,網絡收斂后有較好的分類準確率。學習率設為0.001,學習率是指在優化過程中更新網絡權重的幅度,需要根據不同的優化算法選擇不同的學習率大小,學習率過大導致網絡不收斂,學習率過小導致網絡訓練時間長。所以自適應地調整學習率,每隔20 個訓練周期后學習率減半。批處理歸一化的衰減率為0.7。RMFP-DNN 模型共訓練250 個訓練周期,訓練周期又稱迭代次數,指數據集輸入到網絡需要訓練的次數。訓練錯誤率和測試錯誤率相差較小說明訓練周期的值較合適,如果測試錯誤率先小后大則說明訓練周期的值設置偏大,出現過擬合現象,需要調小再訓練。訓練時,對點云的坐標進行隨機變換用作對點的干擾,在訓練時可以提高RMFP-DNN 的抗干擾能力。
在ModelNet 40 的數據集上RMFP-DNN 和其他方法的分類準確率對比如表1 所示,所有方法在1 024 個點上進行訓練。

表1 在ModelNet 40數據集上不同方法的分類準確率對比Table 1 Classification accuracy comparison among different methods on ModelNet 40 data set %
整體分類準確率是模型在所有測試集上預測正確的數量與總體數量的比值;平均分類準確率是每個類別預測正確的數量與每個類別總體數量的比值。從表1可以看出,RMFP-DNN 的平均分類準確率為88.9%,整體分類準確率為92.6%,均優于其他方法。
此外,對預測結果進行更細致分析,ModelNet 40 數據集易錯模型分類的對比如表2 所示。在同一個易錯模型下,比較RMFP-DNN 與其他方法的差別。從 表2 可以看出,PointNet 與SpiderCNN 方法均不能很好地識別出相似模型桌子和凳子,對易混淆模型的識別準確率不高,而RMFP-DNN 方法學習了局部特征,能較好地識別這類相似性較大的模型。RMFP-DNN 可以準確識別出易混淆的燈和桌子模型,其他方法卻不能。

表2 不同方法的易錯模型分類對比Table 2 Error-prone models classification comparison among different methods
本文通過稀疏性實驗比較各方法的魯棒性,將點云從1 024 個點逐漸降到128 個點進行訓練,通過對輸入稀疏點地學習比較RMFP-DNN 和其他方法的魯棒性。不同方法的準確率對比如圖4 所示。從圖4 可以看出,當點的數量從1 000 降到200 時,RMFP-DNN 方法的準確率降得不明顯,表現出較好的魯棒性,因PointNet++方法采用多尺度分組,其魯棒性與RMFP-DNN 方法相差不大,而其他方法呈明顯下降的趨勢。

圖4 不同方法的準確率對比Fig.4 Accuracy comparison among different methods
三維場景的點云語義分割分為部件分割和場景分割。部件分割是采用ShapeNet 數據集驗證RMFP-DNN 的魯棒性和準確性。ShapeNet 是評估三維部件分割的數據集,包含16個類別,共有16 681個模型和50 個分割的實例。每個對象有2~6 個部件標簽(如桌子的桌腳、飛機的機翼等)。對2 048 個點進行訓練,數據集采用13 807 個模型用于訓練,2 874 個模型用于測試。使用交并比(Mean Intersection over Union,MIoU)作為所有實例的平均評估指標,MIoU用來計算真實值和預測值這兩個集合的交集和并集之比,語義分割中常用MIoU 作為評價方法的指標。通過50 個部件分割的實例來對比各個方法。
隨機丟棄率(droupout)的數值設置為0.6,dropout 是在訓練過程中,對神經網絡單元有一定概率將其從網絡中丟棄,dropout 是為了防止訓練時出現過擬合的現象。RMFP-DNN 的訓練設置與分類類似,因根據GPU 的性能來合理選擇批處理大小,批處理大小為8,與分類時批處理大小設置不同。學習率、優化算法和損失函數設置如同分類實驗,訓練周期設置為200。不同方法的部件分割準確率對比如表3 所示。

表3 不同方法的部件分割準確率對比Table 3 Component segmentation accuracy comparison among different methods %
在ShapeNet 數據集上,RMFP-DNN 的交并比為85.2%,與最優MVCNN 方法的交并比相比,降低了3 個百分點,但其帽子、汽車、吉他、電腦和浴缸5 個部件的交并比最高。由于RMFP-DNN 引入自注意力模塊,并且結合每個點的特征,所以能夠較好地學習局部特征和全局特征。
本文統一使用交叉熵損失函數,RMFP-DNN 與其他方法在分割訓練損失上的比較如圖5 所示??梢钥闯?,RMFP-DNN 的損失下降為較快且穩定的。當網絡收斂時,RMFP-DNN 的損失值是最小的,表明RMFP-DNN 在數據集的擬合能力上優于其他方法。

圖5 不同方法分割數據的訓練損失對比Fig.5 Training loss of segmentation data comparison among different methods
將分割結果做了可視化,RMFP-DNN 分割的部分可視化結果如圖6 所示。從圖6 可以看出,RMFPDNN 總體上具有較好的分割效果,但在部件細節部分的分割還有待提高。

圖6 RMFP-DNN 方法的分割可視化結果Fig.6 Segmentation visualization results of RMFP-DNN method
本文對部件分割進行稀疏性實驗,將點的個數盡可能降低,觀察RMFP-DNN 是否具有魯棒性,并且與PointNet 進行比較。RMFP-DNN 與PointNet 的分割情況如圖7 所示(彩色效果見《計算機工程》官網HTML 版)。將分割有誤差的點用紅色的點標出,藍色點即為與真實標簽沒有誤差的點。飛機模型中,PointNet 在細節部分沒有RMFP-DNN 分割的效果好,在飛機的機身和引擎部件中,PointNet 與真實的標簽誤差較大。椅子和手槍模型中,PointNet 在部件與部件連接地方的分割有較大誤差,尤其是椅子和椅子腳的連接處存在分割誤差。在摩托車模型中,RMFP-DNN 能保持和真實分割相近的分割結果,而PointNet 在摩托車車輪部分分割存在誤差。消融下的分割實驗可以表明RMFP-DNN 具有一定的魯棒性。

圖7 消融下不同方法的分割可視化結果對比Fig.7 Segmentation visualization results comparison among different methods under ablation
本文對部分殘缺點云進行分割實驗,并與PointNet 進行對比。殘缺點云的分割可視化結果對比如圖8 所示(彩色效果見《計算機工程》官網HTML 版),對所有數據集進行截取,每個模型只取256 個點進行測試,實驗比較了4 組模型,從圖8 可以看出,相比PointNet,RMFP-DNN 分割效果具有一定的魯棒性。綜合消融下分割實驗和殘缺的分割實驗結果可知,RMFP-DNN 具有較好的魯棒性。

圖8 殘缺點云的分割可視化結果對比Fig.8 Segmentation visualization results comparison of imperfect point cloud
本文提出一種魯棒的多特征點云分類分割深度神經網絡RMFP-DNN。采用殘差網絡結構對GSA改進得到自注意力模塊,通過自注意力模塊學習點與點之間的局部特征,并利用多層感知機提取點云全局特征。在此基礎上,利用特征融合方法,在全連接層將所有特征進行融合得到分類和分割的結果。實驗結果表明,RMFP-DNN 能夠有效提高分類和分割精度,且在點云稀疏的情況下具有較好的魯棒性。由于自動駕駛、VR 等真實的點云數據通常具有大量噪聲,因此后續將對神經網絡進行優化,進一步提高點云的抗噪聲能力并降低神經網絡的復雜度。