田鈺杰,管有慶,龔 銳
(南京郵電大學(xué) 物聯(lián)網(wǎng)學(xué)院,南京 210023)
點云是一種常用的三維圖形表示方式,許多場景都是基于點云進(jìn)行三維環(huán)境感知和交互的,對點云進(jìn)行分類和分割是目前深度學(xué)習(xí)領(lǐng)域的研究熱點。點云數(shù)據(jù)是傳感器最原始的數(shù)據(jù)形式,主要采用深度學(xué)習(xí)處理點云。點云具有無序性,可利用深度神經(jīng)網(wǎng)絡(luò)強大的學(xué)習(xí)能力解決點云數(shù)據(jù)的排序問題。PointNet[1]和Deep Set[2]利用對稱函數(shù)處理無序的點云,從而對其進(jìn)行優(yōu)化。PointNet++[3]對PointNet 方法進(jìn)行擴(kuò)展,通過多尺度優(yōu)化局部特征提取性能。DGCNN[4]深度神經(jīng)網(wǎng)絡(luò)根據(jù)絕對坐標(biāo)計算空間中的局部區(qū)域,通過計算點的邊緣特征學(xué)習(xí)邊緣特征與其他特征之間的關(guān)系。VoxNet[5]將采樣三維的點送入32×32×32 的三維網(wǎng)格,進(jìn)而由三維卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)進(jìn)行處理,但該網(wǎng)絡(luò)計算量較大。曾碧等[6]提出一種聚類算法融合特征的方法,通過聚類算法對學(xué)習(xí)到的特征進(jìn)行融合,用于解決點云室內(nèi)場景分割。MVCNN[7]從點云中采樣80 個視圖,將它們投影到二維空間并進(jìn)行二維的CNN 處理。楊曉文等[8]提出一種基于八叉樹的CNN,構(gòu)造高效的八叉樹結(jié)構(gòu)化來表示三維點云,將卷積計算限制在八叉樹節(jié)點上,不需要投影到二維空間且能減少一定的計算量。SO-Net[9]網(wǎng)絡(luò)結(jié)構(gòu)使用自組織映射(Self-Organization Map,SOM)進(jìn)行分層特征提取。
研究者利用多層感知機(Multilayer Perceptron,MLP)提取每個點的語義特征以處理點云數(shù)據(jù),但這類方法不能很好地學(xué)習(xí)點的局部特征且魯棒性較差。在點云分類分割中,既要考慮輸入點的全局特征,也要考慮點與點之間的局部關(guān)系。楊軍等[10]提出一種基于上下文注意力的CNN 方法,通過上下文循環(huán)神經(jīng)網(wǎng)絡(luò)編碼機制捕捉多尺度局部區(qū)域之間的上下文特征,增強了模型的泛化能力。白靜等[11]提出多尺度點云分類網(wǎng)絡(luò)(Multi-Scale Point Cloud Classification Network,MSP-Net),使用多尺度特征對點云進(jìn)行分類,表明多尺度具有更好的感受野,與單尺度分類相比,其精度更高,但是沒有深入研究局部特征。文獻(xiàn)[12-13]在自然語言處理(Natural Language Processing,NLP)領(lǐng)域中引入注意力的概念。注意力方法主要有分組注意變換(GSA)[14]和多頭注意(Multi-Head Attention,MHA)[15],都是通過注意力來找到點云的局部聯(lián)系。
本文提出用于多特征點云分類分割的深度神經(jīng)網(wǎng)絡(luò)RMFP-DNN。利用自注意力模塊提取點與點之間的局部特征,通過殘差結(jié)構(gòu)結(jié)合GSA 與MLP 以加強對局部特征的學(xué)習(xí)。在此基礎(chǔ)上,采用特征融合方法將局部特征的特征向量和每個點的特征向量相互連接,從而得到整體特征。
本文主要介紹RMFP-DNN 深度神經(jīng)網(wǎng)絡(luò)、RMFP-DNN 的自注意力模塊和特征融合處理過程,自注意力模塊通過殘差連接[16]結(jié)合GSA 和MLP,特征融合處理將MLP 提取的特征和自注意力模塊提取的特征連接得到整體特征。
點云的個數(shù)設(shè)為N,輸入點云為P∈RN×3。初始輸入為N×3(每個點的維度為3),由2 個分支結(jié)構(gòu)構(gòu)成特征提取,一個分支首先經(jīng)過空間變換結(jié)構(gòu)[1],將N×3 的輸入通過K 近鄰(K-Nearest Neighbor,KNN)算法[17]學(xué)習(xí)點云本身的位置信息,并學(xué)習(xí)到有利于分類分割的D×D的矩陣(PointNet采用3×3的矩陣),N×3和3×3經(jīng)過矩陣相乘得到N×3的輸出??臻g變換結(jié)構(gòu)如圖1所示??臻g變換結(jié)構(gòu)對點云進(jìn)行調(diào)整,從而保證點云旋轉(zhuǎn)不變。
圖1 空間變換結(jié)構(gòu)Fig.1 Spatial transformer structure
圖2 RMFP-DNN 深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Structure of RMFP-DNN deep neural network
自注意力模塊在GSA 基礎(chǔ)上進(jìn)行殘差連接,引入MLP 來保證原始點信息的完整性,殘差的深層次結(jié)構(gòu)能加深對局部特征的學(xué)習(xí)。
1.2.1 自注意力模塊結(jié)構(gòu)
自注意力模塊由MLP 和GSA 組成。PointNet中,MLP 學(xué)習(xí)每個點單獨的特征,忽略了點和點之間的局部特征。針對這個問題,自注意力模塊通過GSA 來學(xué)習(xí)相鄰點的特征。自注意力模塊結(jié)構(gòu)如圖3 所示。首先將N×3 的輸入通過絕對和相對位置嵌入(Absolute and Relative Position Embedding,ARPE)[10]輸入特征集合X∈RN×c,c為特征通道數(shù)。然后通過殘差連接將輸入特征和GSA 分組變換后的特征連接起來送到MLP 中,將其結(jié)果與GSA 再做一次殘差連接送到MLP 中,最后得到輸出特征N×c。
圖3 自注意力模塊結(jié)構(gòu)Fig.3 Structure of self-attention module
GSA 通過挖掘輸入點和點之間的關(guān)系來進(jìn)行局部特征的學(xué)習(xí),能準(zhǔn)確地表示每個點的語義特征。但是原有的GSA 不能保留原始的輸入信息,所以為了保留原始信息,在RMFP-DNN 的自注意力模塊引入MLP。
1.2.2 分組注意變換
GSA 是自注意力模塊的重要組成部分。神經(jīng)網(wǎng)絡(luò)通過GSA 在訓(xùn)練時能學(xué)習(xí)點和點之間的局部特征。首先使用注意層[18]捕捉點之間的關(guān)系。將非線性變換σ加到注意層中,得到非線性注意層,如式(1)所示:
其中:X為輸入點的特征集合;Q為查詢參數(shù),用于關(guān)注輸入的X,且X,Q∈RN×c;c為通道數(shù);s為按比例縮小的點積運算[8]。損失函數(shù)σ使用的是指數(shù)線性單元(Exponential Linear Unit,ELU)[19]。
PC機上還可以提供比智能手機豐富的控制功能和更人性化的人機界面,通過Internet訪問農(nóng)產(chǎn)品服務(wù)器上的視頻信息:一方面可以實時監(jiān)控農(nóng)產(chǎn)品長勢與營養(yǎng)需求,提供及時決策;另一方面可供農(nóng)業(yè)專家系統(tǒng)對自然災(zāi)害防御,農(nóng)作物病蟲害分析,農(nóng)產(chǎn)品后期可視化溯源提供依據(jù)。
在此基礎(chǔ)上,引入通道變換[20]和分組變換[21],設(shè)g是分組數(shù),c是通道數(shù),c被g整除,每組的通道數(shù)cg=c/g,分組注意(GAttn)的定義如式(2)所示:
其中:X按通道分成g組,Xi∈RN×cg,Wi為每組i的 可學(xué)習(xí)變換權(quán)重,所以每組的特征Xi=X(i)Wi|i=0,1,…,g-1。自注意力是使輸入特征注意到每個輸入本身,令式(1)中的Q等于X,即Atσ(Q,X)變?yōu)锳tσ(X,X)。再通過concat 連接,將每組的Atσ(Xi,Xi)連接成GAttn(X)。但這樣得到的GAttn阻止了組與組之間信息交流,引入一個無參數(shù)通道轉(zhuǎn)變算子ψ[22],在分組的基礎(chǔ)上進(jìn)行有效的分組變換。元素x∈Rc,重新定義分組x,每個x是不同通道的特征,x定義如式(3)所示:
其中:(xicg+j|j=1,2,…,cg)為通道分組中的第(i+1)組,因為i是從0 開始的。這樣通道轉(zhuǎn)變算子ψ定義如式(4)所示:
式(4)通過無參數(shù)通道轉(zhuǎn)變算子ψ(x)將式(3)進(jìn)行了分組變換,將式(2)中的GAttn代入式(4)中,最后通過分組歸一化(GN)[23]得到GSA,GSA如式(5)所示:
通過以上分組變換,GSA 能夠很好地提取點與點之間的特征。
特征融合處理主要將MLP 提取每個點的特征和自注意力模塊提取點之間的局部特征進(jìn)行concat連接。concat連接是一個更為通用的特征融合方法。設(shè)MLP提取每個點的特征得到特征向量v1∈Rn,設(shè)自注意力模塊提取局部特征得到特征向量v2∈Rc,通過concat連接得到融合的特征向量v=[v1,v2]∈Rn+c,concat連接是通道數(shù)的合并,也就是特征維度的增加,而每一維度下的特征不變。如特征向量[1,2]和特征向量[3,4]經(jīng)過concat 連接后變?yōu)樘卣飨蛄浚?,2,3,4]。RMFP-DNN通過MLP提取每個點的特征得到N×1 024的輸出特征,2 個自注意力模塊提取點之間的局部特征得到N×1 024的輸出特征,經(jīng)過concat 連接后得到N×(1 024+1 024)的輸出特征,這樣通道數(shù)的增加使得點云有了更多的特征表示。
融合不同尺度的特征可以提高點云的分類分割準(zhǔn)確率,MLP 提取每個點的特征,但丟失了很多局部信息,包括點與點之間的關(guān)系,導(dǎo)致點的語義特征不夠準(zhǔn)確。自注意力模塊學(xué)習(xí)點之間的局部特征,具有更強的語義信息,但對每個點的學(xué)習(xí)沒有MLP 準(zhǔn)確。因此,RMFP-DNN 采用特征融合方法,將兩者進(jìn)行融合,從而提升點云分類分割的準(zhǔn)確率。因為融合了多個特征,在點云的稀疏性實驗上,RMFPDNN 展現(xiàn)了較好的魯棒性。
使用分類數(shù)據(jù)集ModelNet40[24]和部件分割數(shù)據(jù)集ShapeNet[25]驗證RMFP-DNN 的魯棒性和準(zhǔn)確率。
ModelNet40 數(shù)據(jù)集包含40 個三維對象的類別,共有12 311 個計算機輔助設(shè)計(Computer Aided Design,CAD)模型。采用9 840 個訓(xùn)練樣本,2 471 個測試樣本。為比較RMFP-DNN 和其他方法,使用與PointNet 等方法相同的數(shù)據(jù)預(yù)處理。對于每個3D 模型,從網(wǎng)格面上均勻采樣1 024 個點,只考慮點云的坐標(biāo)。用三維坐標(biāo)(x,y,z)作為每個點的原始屬性。在訓(xùn)練過程中,隨機旋轉(zhuǎn)并擾亂點的位置。所有實驗均使用Tensorflow 框架[26]。
在分類任務(wù)中,使用與SpiderCNN[27]中相同的訓(xùn)練設(shè)置。模型關(guān)鍵參數(shù)設(shè)置對性能有一定的影響。RMFP-DNN 的批處理大小設(shè)為16,批處理大小是每次訓(xùn)練時送入神經(jīng)網(wǎng)絡(luò)的樣本數(shù)量,數(shù)值設(shè)置較大可以使網(wǎng)絡(luò)收斂得更快,但是要根據(jù)GPU 設(shè)備的性能來選擇數(shù)值。本次實驗的GPU 為Nvidia GTX 1080 Ti,所以批處理設(shè)置為16 可以使網(wǎng)絡(luò)收斂更快。采用交叉熵?fù)p失函數(shù)進(jìn)行訓(xùn)練,使用Adam[28]優(yōu)化算法,Adam 能夠更快速地找到最優(yōu)解,網(wǎng)絡(luò)收斂后有較好的分類準(zhǔn)確率。學(xué)習(xí)率設(shè)為0.001,學(xué)習(xí)率是指在優(yōu)化過程中更新網(wǎng)絡(luò)權(quán)重的幅度,需要根據(jù)不同的優(yōu)化算法選擇不同的學(xué)習(xí)率大小,學(xué)習(xí)率過大導(dǎo)致網(wǎng)絡(luò)不收斂,學(xué)習(xí)率過小導(dǎo)致網(wǎng)絡(luò)訓(xùn)練時間長。所以自適應(yīng)地調(diào)整學(xué)習(xí)率,每隔20 個訓(xùn)練周期后學(xué)習(xí)率減半。批處理歸一化的衰減率為0.7。RMFP-DNN 模型共訓(xùn)練250 個訓(xùn)練周期,訓(xùn)練周期又稱迭代次數(shù),指數(shù)據(jù)集輸入到網(wǎng)絡(luò)需要訓(xùn)練的次數(shù)。訓(xùn)練錯誤率和測試錯誤率相差較小說明訓(xùn)練周期的值較合適,如果測試錯誤率先小后大則說明訓(xùn)練周期的值設(shè)置偏大,出現(xiàn)過擬合現(xiàn)象,需要調(diào)小再訓(xùn)練。訓(xùn)練時,對點云的坐標(biāo)進(jìn)行隨機變換用作對點的干擾,在訓(xùn)練時可以提高RMFP-DNN 的抗干擾能力。
在ModelNet 40 的數(shù)據(jù)集上RMFP-DNN 和其他方法的分類準(zhǔn)確率對比如表1 所示,所有方法在1 024 個點上進(jìn)行訓(xùn)練。
表1 在ModelNet 40數(shù)據(jù)集上不同方法的分類準(zhǔn)確率對比Table 1 Classification accuracy comparison among different methods on ModelNet 40 data set %
整體分類準(zhǔn)確率是模型在所有測試集上預(yù)測正確的數(shù)量與總體數(shù)量的比值;平均分類準(zhǔn)確率是每個類別預(yù)測正確的數(shù)量與每個類別總體數(shù)量的比值。從表1可以看出,RMFP-DNN 的平均分類準(zhǔn)確率為88.9%,整體分類準(zhǔn)確率為92.6%,均優(yōu)于其他方法。
此外,對預(yù)測結(jié)果進(jìn)行更細(xì)致分析,ModelNet 40 數(shù)據(jù)集易錯模型分類的對比如表2 所示。在同一個易錯模型下,比較RMFP-DNN 與其他方法的差別。從 表2 可以看出,PointNet 與SpiderCNN 方法均不能很好地識別出相似模型桌子和凳子,對易混淆模型的識別準(zhǔn)確率不高,而RMFP-DNN 方法學(xué)習(xí)了局部特征,能較好地識別這類相似性較大的模型。RMFP-DNN 可以準(zhǔn)確識別出易混淆的燈和桌子模型,其他方法卻不能。
表2 不同方法的易錯模型分類對比Table 2 Error-prone models classification comparison among different methods
本文通過稀疏性實驗比較各方法的魯棒性,將點云從1 024 個點逐漸降到128 個點進(jìn)行訓(xùn)練,通過對輸入稀疏點地學(xué)習(xí)比較RMFP-DNN 和其他方法的魯棒性。不同方法的準(zhǔn)確率對比如圖4 所示。從圖4 可以看出,當(dāng)點的數(shù)量從1 000 降到200 時,RMFP-DNN 方法的準(zhǔn)確率降得不明顯,表現(xiàn)出較好的魯棒性,因PointNet++方法采用多尺度分組,其魯棒性與RMFP-DNN 方法相差不大,而其他方法呈明顯下降的趨勢。
圖4 不同方法的準(zhǔn)確率對比Fig.4 Accuracy comparison among different methods
三維場景的點云語義分割分為部件分割和場景分割。部件分割是采用ShapeNet 數(shù)據(jù)集驗證RMFP-DNN 的魯棒性和準(zhǔn)確性。ShapeNet 是評估三維部件分割的數(shù)據(jù)集,包含16個類別,共有16 681個模型和50 個分割的實例。每個對象有2~6 個部件標(biāo)簽(如桌子的桌腳、飛機的機翼等)。對2 048 個點進(jìn)行訓(xùn)練,數(shù)據(jù)集采用13 807 個模型用于訓(xùn)練,2 874 個模型用于測試。使用交并比(Mean Intersection over Union,MIoU)作為所有實例的平均評估指標(biāo),MIoU用來計算真實值和預(yù)測值這兩個集合的交集和并集之比,語義分割中常用MIoU 作為評價方法的指標(biāo)。通過50 個部件分割的實例來對比各個方法。
隨機丟棄率(droupout)的數(shù)值設(shè)置為0.6,dropout 是在訓(xùn)練過程中,對神經(jīng)網(wǎng)絡(luò)單元有一定概率將其從網(wǎng)絡(luò)中丟棄,dropout 是為了防止訓(xùn)練時出現(xiàn)過擬合的現(xiàn)象。RMFP-DNN 的訓(xùn)練設(shè)置與分類類似,因根據(jù)GPU 的性能來合理選擇批處理大小,批處理大小為8,與分類時批處理大小設(shè)置不同。學(xué)習(xí)率、優(yōu)化算法和損失函數(shù)設(shè)置如同分類實驗,訓(xùn)練周期設(shè)置為200。不同方法的部件分割準(zhǔn)確率對比如表3 所示。
表3 不同方法的部件分割準(zhǔn)確率對比Table 3 Component segmentation accuracy comparison among different methods %
在ShapeNet 數(shù)據(jù)集上,RMFP-DNN 的交并比為85.2%,與最優(yōu)MVCNN 方法的交并比相比,降低了3 個百分點,但其帽子、汽車、吉他、電腦和浴缸5 個部件的交并比最高。由于RMFP-DNN 引入自注意力模塊,并且結(jié)合每個點的特征,所以能夠較好地學(xué)習(xí)局部特征和全局特征。
本文統(tǒng)一使用交叉熵?fù)p失函數(shù),RMFP-DNN 與其他方法在分割訓(xùn)練損失上的比較如圖5 所示??梢钥闯觯琑MFP-DNN 的損失下降為較快且穩(wěn)定的。當(dāng)網(wǎng)絡(luò)收斂時,RMFP-DNN 的損失值是最小的,表明RMFP-DNN 在數(shù)據(jù)集的擬合能力上優(yōu)于其他方法。
圖5 不同方法分割數(shù)據(jù)的訓(xùn)練損失對比Fig.5 Training loss of segmentation data comparison among different methods
將分割結(jié)果做了可視化,RMFP-DNN 分割的部分可視化結(jié)果如圖6 所示。從圖6 可以看出,RMFPDNN 總體上具有較好的分割效果,但在部件細(xì)節(jié)部分的分割還有待提高。
圖6 RMFP-DNN 方法的分割可視化結(jié)果Fig.6 Segmentation visualization results of RMFP-DNN method
本文對部件分割進(jìn)行稀疏性實驗,將點的個數(shù)盡可能降低,觀察RMFP-DNN 是否具有魯棒性,并且與PointNet 進(jìn)行比較。RMFP-DNN 與PointNet 的分割情況如圖7 所示(彩色效果見《計算機工程》官網(wǎng)HTML 版)。將分割有誤差的點用紅色的點標(biāo)出,藍(lán)色點即為與真實標(biāo)簽沒有誤差的點。飛機模型中,PointNet 在細(xì)節(jié)部分沒有RMFP-DNN 分割的效果好,在飛機的機身和引擎部件中,PointNet 與真實的標(biāo)簽誤差較大。椅子和手槍模型中,PointNet 在部件與部件連接地方的分割有較大誤差,尤其是椅子和椅子腳的連接處存在分割誤差。在摩托車模型中,RMFP-DNN 能保持和真實分割相近的分割結(jié)果,而PointNet 在摩托車車輪部分分割存在誤差。消融下的分割實驗可以表明RMFP-DNN 具有一定的魯棒性。
圖7 消融下不同方法的分割可視化結(jié)果對比Fig.7 Segmentation visualization results comparison among different methods under ablation
本文對部分殘缺點云進(jìn)行分割實驗,并與PointNet 進(jìn)行對比。殘缺點云的分割可視化結(jié)果對比如圖8 所示(彩色效果見《計算機工程》官網(wǎng)HTML 版),對所有數(shù)據(jù)集進(jìn)行截取,每個模型只取256 個點進(jìn)行測試,實驗比較了4 組模型,從圖8 可以看出,相比PointNet,RMFP-DNN 分割效果具有一定的魯棒性。綜合消融下分割實驗和殘缺的分割實驗結(jié)果可知,RMFP-DNN 具有較好的魯棒性。
圖8 殘缺點云的分割可視化結(jié)果對比Fig.8 Segmentation visualization results comparison of imperfect point cloud
本文提出一種魯棒的多特征點云分類分割深度神經(jīng)網(wǎng)絡(luò)RMFP-DNN。采用殘差網(wǎng)絡(luò)結(jié)構(gòu)對GSA改進(jìn)得到自注意力模塊,通過自注意力模塊學(xué)習(xí)點與點之間的局部特征,并利用多層感知機提取點云全局特征。在此基礎(chǔ)上,利用特征融合方法,在全連接層將所有特征進(jìn)行融合得到分類和分割的結(jié)果。實驗結(jié)果表明,RMFP-DNN 能夠有效提高分類和分割精度,且在點云稀疏的情況下具有較好的魯棒性。由于自動駕駛、VR 等真實的點云數(shù)據(jù)通常具有大量噪聲,因此后續(xù)將對神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,進(jìn)一步提高點云的抗噪聲能力并降低神經(jīng)網(wǎng)絡(luò)的復(fù)雜度。