陶志勇,李 衡*,豆淼森,林 森
1 遼寧工程技術(shù)大學電子與信息工程學院,遼寧 葫蘆島 125100;
2 沈陽理工大學自動化與電氣工程學院,遼寧 沈陽 110159
隨著激光雷達等3D 掃描技術(shù)的快速發(fā)展[1-2],點云的獲取變得容易,近年來,點云分析已經(jīng)成為3D視覺任務的熱門話題,在自動駕駛[3-4]、醫(yī)學影像[5]、機器人[6]、三維重建[7]等領(lǐng)域得到了廣泛應用。盡管深度學習在點云處理方面取得了不錯的成果,但是由于點云無序且不規(guī)則的特性,有效處理點云的數(shù)據(jù)仍然具有挑戰(zhàn)性。
將神經(jīng)網(wǎng)絡適用于點云數(shù)據(jù)并非易事。早期的點云處理主要分為基于體素的方法和基于多視圖的方法。前者將點云轉(zhuǎn)換為體素,通過規(guī)則的3D 網(wǎng)格結(jié)構(gòu)表征點云。如:Maturana 等人[8]提出了VoxNet,通過體素化點云以實現(xiàn)3D 形狀的識別任務;Riegler 等人[9]提出了OctNet,對八叉樹結(jié)構(gòu)進行有效編碼,并對每個體素的特征向量進行簡單的算法索引;文獻[10]針對傳統(tǒng)體素網(wǎng)格降采樣存在采樣點不均勻的問題,提出了一種新的體素網(wǎng)格降采樣方式,提高了計算效率。但隨著分辨率的增加,這類方法的計算量和內(nèi)存占用量會以立方形式增長?;诙嘁晥D的方法是將點云從不同角度投影至多個平面,使其適用于2D 卷積。如:Su 等人[11]提出了MVCNN,將多視圖特征最大池化為一個全局描述符,但是最大池化操作只保留了特定視圖中的最大元素,不可避免地導致信息缺失。為了不引入中間表示(體素和多視圖)來直接處理點云數(shù)據(jù),基于點的方法得到了發(fā)展。Qi 等人[12]提出的PointNet 是該類方法的先驅(qū),通過幾個多層感知機(MLP)獨立地學習逐點特征,克服了點云的無序性,但同時卻忽略了點對之間的局部關(guān)系。為此,Qi 等人[13]擴展了PointNet,提出新的網(wǎng)絡PointNet++,通過在不同的層次上使用PointNet 提取特征,但是本質(zhì)上還是在獨立地處理局部區(qū)域的每一個點,點對之間的幾何聯(lián)系仍然被忽略。點云作為一種不規(guī)則的非歐式數(shù)據(jù),類圖結(jié)構(gòu)能對其進行有效地表征。Simonovsky 等人[14]是點云圖論的先驅(qū),將每一個點視為圖的頂點,通過有向邊將頂點和其鄰域點進行連接,然后基于濾波器和MLP 提出了邊緣條件卷積(edge-conditioned convolution,ECC)。Wang 等人[15]在DGCNN 中提出一種邊緣卷積算子(edge convolution,EdgeConv),通過在特征空間中構(gòu)造局部圖結(jié)構(gòu)表示點云的局部聯(lián)系,并在網(wǎng)絡的每一層之后動態(tài)更新圖特征。Zhang 等人[16]基于DGCNN 提出了LDGCNN,刪去DGCNN 中的變換網(wǎng)絡并將不同層次的特征進行連接,以提高網(wǎng)絡的性能。文獻[17]通過引入位置關(guān)系改進DGCNN,強化局部特征的提取能力。此外,一些方法通過引入注意力機制來提升網(wǎng)絡性能。如:Sun 等人[18]提出了基于雙向注意力機制的殘差圖卷積網(wǎng)絡,以更好地區(qū)分任務相關(guān)特征;Gou 等人[19]基于transformer 提出了名為PCT 的網(wǎng)絡執(zhí)行點云分析任務;Liu 等人[20]將SENet 和注意力機制引入PointNet++,優(yōu)化了網(wǎng)絡對于重要特征的學習能力。
為了能更有效地提取點云局部特征,提高網(wǎng)絡分類與分割性能,提出一種融合多分辨率特征的圖卷積網(wǎng)絡。首先考慮到點云的無序不規(guī)則特性,通過k-最近鄰算法(k-nearest neighbor,kNN)在特征空間中構(gòu)造局部圖結(jié)構(gòu),通過圖結(jié)構(gòu)表征點云局部區(qū)域中點對之間的幾何聯(lián)系。其次,通過最遠點采樣算法(farthest point sampling,FPS)對點云進行多級下采樣操作,以獲得不同分辨率的點云,考慮其局部區(qū)域的幾何關(guān)系,采用kNN 算法進行分組;為克服點云的稀疏性質(zhì),引入幾何映射模塊將分組點集正態(tài)化。最后,為了實現(xiàn)良好的分類與分割性能,提出一種特征融合方式,用點云多分辨率特征對局部圖特征進行補償。通過在ModelNet40[21]、ScanObjectNN[22]和ShapeNet Part[23]數(shù)據(jù)集上對網(wǎng)絡的分類、分割性能進行評估,驗證本文方法的有效性。所提出的多分辨率圖卷積模塊(multi-resolution graph convolution module,M-R GCM)算法流程如圖1 所示。
圖1 多分辨率圖卷積模塊算法流程圖Fig.1 Multi-resolution graph convolution module algorithm flow chart
網(wǎng)絡框架如圖2 所示,輸入是點數(shù)為N,維度為3 的點云數(shù)據(jù)。受啟發(fā)于DGCNN 模型[15],并以其為基線網(wǎng)絡,去除變換網(wǎng)絡,通過融合多分辨率特征對EdgeConv 進行改進。分類網(wǎng)絡用四個多分辨率圖卷積模塊學習點云上下文局部信息,為克服點云的無序特性,從而引入池化策略(pooling strategy),其中最大池化(max pooling)和平均池化(avg pooling)分別保留特征圖中的最顯著特征以及整體特征,然后對其進行拼接后獲得全局特征作為分類器的輸入。最后由全連接層(fully connected layer)作為分類器輸出分類得分C;分割網(wǎng)絡主干包含三個多分辨率圖卷積模塊,池化策略選擇max pooling,最終輸出P個語義標簽作為每個點的得分。
圖2 網(wǎng)絡框架。(a)分類網(wǎng)絡;(b)分割網(wǎng)絡Fig.2 Network framework.(a) Classification network;(b) Segmentation network
與基于圖方法的DGCNN[15]類似,將類圖結(jié)構(gòu)應用于點云特征學習可以更為有效地處理點云這類非結(jié)構(gòu)化數(shù)據(jù),其核心在于選取點云表面的點作為節(jié)點,并與鄰域點之間建立邊,從而構(gòu)建局部點對之間的幾何聯(lián)系。圖卷積即為對該圖結(jié)構(gòu)進行卷積操作,具體過程如圖3 所示。
圖3 圖卷積操作過程Fig.3 The operation procedure of graph convolution
首先,定義輸入的點云為包含n個點的點集P={p1,p2,...,pi}i=1,2,...,n?RF,其中R為實數(shù)集合,F(xiàn)為點云的維度,一般取F=3,即每一個點pi用其空間坐標(xi,yi,zi)表示,此外還可以包括RGB 信息、法線等額外的維度信息。由于在神經(jīng)網(wǎng)絡中,下一層的輸入一般為上一層的輸出,因此一般而言F表示給定的特征維度。
然后,在點云的表面構(gòu)建有向圖G,表示為
其中:V={p1,p2,...,pn}和E?V×V分別為有向圖的頂點和邊。在圖卷積模塊中,采用kNN 算法對每一個頂點pi進行檢索,找到其周圍的k個鄰域點構(gòu)成鄰域點集,表示為
其中,pi,j為節(jié)點pi的第j個鄰域點,通過計算pi與{pi,j}j=1,2,...,k之間的歐幾里得距離作為圖G的邊,表示為
由式(3)計算邊特征為
其中,hΘ是一個包含一組可學習參數(shù)Θ 的非線性函數(shù),可實現(xiàn)特征維度RF×RF→RF。此外,由于對h的選擇方式不同,邊特征的計算方式也不同,其余計算方式如
式(5)為PointNet[12]的方式,只考慮每一個點,忽視點云的局部結(jié)構(gòu),式(6)為只考慮了點云的局部關(guān)系卻忽視全局結(jié)構(gòu)。因此本文采用式(4)所示的方法,由pi和 {pi-pi,j}同時兼顧全局和局部結(jié)構(gòu)。
最后,通過聚合函數(shù)對特征 {ei}i=1,2,...,n進行操作,將更新后的圖特征fG表示為
其中:□ 表示Max pooling 策略,hΘ為MLP 操作,表示為hΘ(pi,ei,j)=LeakyReLU(θi·pi+φi·ei,j),可學習參數(shù)Θ=(θ1,...,θn,φ1,...,φn)。
考慮到圖卷積網(wǎng)絡的性能受限于預定義鄰域的大小(kNN 中k的取值,實驗部分將進行驗證),本文考慮用不同分辨率的點云特征對其進行融合補償,從而提高網(wǎng)絡的性能。
在圖像處理任務中,神經(jīng)網(wǎng)絡層數(shù)的增加能更為有效地提取復雜特征,但往往會以犧牲空間分辨率的方式來換取特征通道數(shù)的增加。本文從彌補空間分辨率的角度,設(shè)計多分辨率分支對基線網(wǎng)絡DGCNN 的圖卷積策略進行改進,從而提高模型性能。多分辨率點云特征的學習過程如圖4 所示。
圖4 多分辨率點云特征學習過程Fig.4 The process of learning multi-resolution point cloud features
該分支對點云的處理分為三個階段,第一個階段為基于FPS 算法的下采樣階段(down sampling)。當輸入為包含n個點的點云X?Rd,其中d為點云的特征維度,每一個點表示為 {xi}i=1,2,...,n∈X,選擇其中的一個點x1作為起始點得到第一個采樣點集合,表示為S={x1};然后計算所有點與x1的距離,用數(shù)組L=(l1,l2,li,...)進行儲存,選擇其中距離最遠的點x1,更新采樣點集合為S={x1,x2};再計算所有點與x1的距離,若其中的一個點xi與其的距離小于li,則將li進行更新,數(shù)組L始終記錄最小距離;選擇其中距離最遠的點x3更新采樣點集合為S={x1,x2,x3},重復采樣n′次后,得到的采樣點集表示為
上述操作在改變點云分辨率的同時,新的采樣點集S仍然能夠較好地表征點云的表面形狀。第二個階段為局部分組階段(local grouping),在對不同分辨率點云進行處理時,考慮其局部幾何關(guān)系,采用kNN算法對式(8)的點集進行局部組劃分,每一個局部組點集表示為
考慮點云的稀疏特性,為提高網(wǎng)絡的性能,在第三個階段(normalization)中,對每一個局部組Si正態(tài)化,具體操作如下
其中:mean 為求均值操作,bias表示局部組中元素的方差,k為局部組中鄰域點數(shù)量。因此,多分辨率特征表示為
式中:a∈Rd和b∈Rd是兩個可學習參數(shù),⊙表示Hadamard 乘積。
并且,多分辨率分支作為并行分支而不是串行分支連接進網(wǎng)絡。在每個多分辨率圖卷積模塊輸出特征之前,特征融合模塊基于圖卷積分支和多分辨率分支的特征,通過網(wǎng)絡計算獲得一個自適應權(quán)重系數(shù)對兩路特征進行加權(quán)輸出,并作為下一個多分辨率圖卷積模塊的輸入,在之后的每一層網(wǎng)絡中動態(tài)更新,直至進入全連接層進行分類。在整個過程兩個分支不斷進行特征交互,以此實現(xiàn)特征圖更新。
為了使多分辨率特征更有效地對圖特征進行補償,提出了一種特征融合模塊,相比較于線性特征聚合方式(如加法運算),該融合模塊更具特征的自適應性。特征融合原理如圖5 所示。
圖5 特征融合Fig.5 The operation of feature fusion
在每一個多分辨率圖卷積模塊中,通過兩個分支的網(wǎng)絡分別學習到圖特征fG與多分辨率特征fMR,為更有效地集成特征,首先將兩路特征進行逐元素求和,以緊湊地表示點云特征f:
接著基于該特征矩陣生成一個權(quán)重向量,表示為
式中:σ為Sigmoid 激活函數(shù),Φ為MLP 操作。最終由該權(quán)重向量對兩個分支的特征進行加權(quán)輸出,特征圖表示為
其中:1為全元素為1 的向量,⊙表示Hadamard乘積。
實驗參數(shù)設(shè)置如表1 所示。為驗證本文方法的有效性,在ModelNet40[21]、ScanObjectNN[22]數(shù)據(jù)集上進行分類實驗,在ShapeNet Part[23]數(shù)據(jù)集上進行部分分割實驗。實驗參數(shù)設(shè)置如表1 所示,所有實驗均基于Linux Ubuntu 系統(tǒng),訓練所用GPU 為GeForceRTX 3090,學習框架為Python3.7+Pytorch-1.7.1。
表1 實驗參數(shù)設(shè)置Table 1 Experimental parameter setting
3.2.1 數(shù)據(jù)集描述
ModelNet40 數(shù)據(jù)集包含40 個類別的12311 個CAD 模型,其中9843 個用于訓練,2468 個用于測試。在訓練和測試期間沒有執(zhí)行任何數(shù)據(jù)預處理操作,保證實驗的有效性。
3.2.2 分類結(jié)果與分析
在ModelNet40 數(shù)據(jù)集上的分類結(jié)果如表2 所示,評價指標為總體準確率(overall accuracy,OA)和類平均準確率(mean class accuracy,mAcc)。
表2 不同方法在ModelNet40 數(shù)據(jù)集上的分類精度對比Table 2 Comparison of classification accuracy with different methods on ModelNet40 dataset
其中:TP表示正確預測正樣本的數(shù)目,F(xiàn)N為錯誤預測正樣本的數(shù)目,而TPi和FNi分別表示每一個類別中正樣本被預測正確和錯誤的樣本數(shù)。
從表2 中可以看出,對比基于體素的經(jīng)典方法VoxNet 和基于多視圖的MVCNN,本文的方法在OA 這個指標上提升了7.5%和2.7%;與PointNet 和PointNet++相比也有4.2%和1.5%的提升,并和基于圖的網(wǎng)絡DGCNN、LDGCNN、DGANet 相比分別提升了0.5%、0.5%和1.1%。與新穎的方法如PCT、AFM-Net 以及文獻[31]相比,也有一定的精度提升。實驗結(jié)果表明,改進后的多分辨率圖卷積網(wǎng)絡在分類任務中具有一定的優(yōu)越性。
3.3.1 數(shù)據(jù)集描述
ScanObjectNN 數(shù)據(jù)集是一個以真實世界對象為模型的數(shù)據(jù)集,包含15 個類別的15000 個對象,其中有2902 個唯一對象實例。由于模型中存在復雜背景、噪聲以及遮擋,該數(shù)據(jù)集對于現(xiàn)有點云分類任務更具有挑戰(zhàn)性。
3.3.2 分類結(jié)果與分析
基于ScanObjectNN 數(shù)據(jù)集的分類結(jié)果如表3 所示,所有模型的輸入均為坐標形式,本文模型的OA和mAcc 分別達到了83.3%、81.7%。從表3 中可以看出,本文的方法在評估指標上比PointNet 提高了15.1%(OA)、18.3%(mAcc);與基線網(wǎng)絡DGCNN 相比提高了5.2%(OA)、8.1%(mAcc);與新穎的方法GBNet 相比提高2.8%(OA)、3.9%(mAcc)。實驗結(jié)果表明,當數(shù)據(jù)集處于噪聲干擾的情況下,本文提出的方法通過彌補一定的空間分辨率,能夠更好地識別形狀特征,比起其它方法具有更強的形狀分類能力。
表3 不同方法在ScanObjectNN 數(shù)據(jù)集上的分類精度對比Table 3 Comparison of classification accuracy with different methods on ScanObjectNN dataset
3D 點云的部分分割是一項具有挑戰(zhàn)性的細粒度識別任務。簡單而言,分割任務需要為每個點分配類別標簽,如機翼、機身等。為驗證模型的分割性能,在ShapeNet Part 數(shù)據(jù)集上進行部分分割實驗。
3.4.1 數(shù)據(jù)集描述
ShapeNet Part 數(shù)據(jù)集由16 個類別的16881 個模型組成,共標記了50 個零件標簽,其中13998 個模型用于訓練,2874 個用于測試,每一個模型分為2到6 個不同的部分進行標注。訓練時從每個形狀中采樣2048 個點。
3.4.2 分割結(jié)果與分析
以ShapeNet Part 為基準數(shù)據(jù)集,部分分割的結(jié)果如表4 所示,分割實驗的評價指標為平均交并比(mean intersection over union,mIoU)。
表4 ShapeNet Part 數(shù)據(jù)集上的部分分割結(jié)果Table 4 Part segmentation results on the ShapeNet Part dataset
其中:TP表示對正樣本預測正確的數(shù)目,F(xiàn)P為對負樣本預測錯誤的數(shù)目,F(xiàn)N為對正樣本預測正確的數(shù)目。本文模型在部分分割任務中,達到了85.4%的精度。對比經(jīng)典算法PointNet、PointNet++分別提高了1.6%和0.2%。并且與基于圖結(jié)構(gòu)的算法DGCNN、LDGCNN 和DGANet 相比,多分辨率圖卷積網(wǎng)絡的精度分別提高了0.1%、0.2%和0.1%。在該實驗中,有10 個類別的物體分割精度較于基線網(wǎng)絡DGCNN均有所改善(“↑”代表有改善的物體類別),實驗結(jié)果表明,多分辨率圖卷積網(wǎng)絡在分割任務中也實現(xiàn)了一定的優(yōu)化。
為了能更直觀地展示本文模型的分割效果,將16 個類別的物體進行分割結(jié)果可視化如圖6 所示。同時,將DGCNN 作為基線網(wǎng)絡,展示了經(jīng)本文方法改進后部分分割的細節(jié)對比如圖7 所示,紅色方框內(nèi)效果差異。
圖6 部分分割可視化結(jié)果。(a)真實值;(b)本文的分割結(jié)果Fig.6 The results of the part segmentation visualization.(a) Groud truth;(b) Ours
圖7 分割細節(jié)對比。(a)真實值;(b)本文方法;(c)基線Fig.7 Comparison of segmentation details.(a) Groud truth;(b) Ours;(c) Baseline
通過上述定量、定性分析比較,融合多分辨率特征的圖卷積網(wǎng)絡能正確分割大部分點,并且對比基線網(wǎng)絡,本文方法在目標邊界處的分割能力也有所提升,相較于改進之前的網(wǎng)絡有一定的優(yōu)越性。
為驗證網(wǎng)絡的有效性和魯棒性,以ModelNet40為基準數(shù)據(jù)集,對模型各模塊及超參數(shù)的選擇進行分析驗證。
回顧2.2 小節(jié),局部圖結(jié)構(gòu)基于kNN 算法構(gòu)造,該預定義鄰域的大小影響模型的性能,通過改變k的取值進行實驗以尋找合適的鄰域大小。實驗結(jié)果如表5 所示。
表5 不同k 值對模型性能的影響Table 5 Effect of different k values on model performance
實驗表明,當k值過小或過大都會導致網(wǎng)絡性能下降,取值為20 的時候性能最佳。并且由表5 可以看出,當引入多分辨率分支對圖特征進行補償后,網(wǎng)絡的性能都得到了提升,證明了多分辨率分支的有效性。
在本節(jié)中設(shè)置四組實驗以驗證多分辨率圖卷積模塊各部分對網(wǎng)絡性能的影響,實驗結(jié)果如表6 所示。
表6 多分辨率圖卷積模塊消融實驗Table 6 Ablation experiments of multi-resolution GCN module
實驗1:基線網(wǎng)絡,僅使用圖卷積分支進行特征學習;
實驗2:僅使用多分辨率分支進行特征學習;
實驗3:使用兩個分支進行特征學習,但特征集成方式采用線性組合方式;
實驗4:在實驗3 的基礎(chǔ)上將特征集成方式替換為所提出的特征融合模塊。
實驗結(jié)果表明,同時使用兩個分支的網(wǎng)絡性能均優(yōu)于使用單一分支,并且當采用所提出的特征融合模塊來聚合兩個分支的特征后,網(wǎng)絡的精度進一步獲得提升。
在本文方法中,點云的空間分辨率影響網(wǎng)絡的性能,每一個多分辨率圖卷積模塊中都存在圖特征與不同分辨率特征的交互,表7 展示了不同分辨率的點云對網(wǎng)絡性能的影響。
表7 不同分辨率點云對網(wǎng)絡性能的影響Table 7 The effect of different resolution point cloud on network performance
實驗結(jié)果表明,當四個多分辨率圖卷積模塊中不同分辨率點云的點數(shù)為[896,768,640,512]時,模型的性能達到最優(yōu)。
現(xiàn)實生產(chǎn)應用中,通過掃描設(shè)備所獲取的點云數(shù)據(jù)往往存在噪聲干擾,為測試網(wǎng)絡對于噪聲的魯棒性,對初始點云添加不同水平的隨機噪聲模擬實際生產(chǎn)應用的情況,實驗結(jié)果如圖8 所示。
圖8 噪聲魯棒性測試Fig.8 Noise robustness testing
圖8 展示了在不同水平噪聲干擾下本文方法與基線網(wǎng)絡 DGCNN 以及基于圖方法的3D-GCN、AdaptConv[35]的精度對比,可以看出在噪聲干擾下,本文方法的性能總體上優(yōu)于DGCNN,與其它兩種模型對比也有一定優(yōu)勢。表8 展示了兩種方法在噪聲干擾下精度下降的程度,下降程度的計算公式如式(19):
結(jié)合圖表分析,多分辨率圖卷積網(wǎng)絡的噪聲魯棒性對比基線網(wǎng)絡得到了提高,在抗噪能力上具有一定的優(yōu)越性。
在圖2 的分類網(wǎng)絡框架中,由四個局部特征提取模塊(多分辨率圖卷積模塊)組成,在本節(jié)實驗中,將使用不同數(shù)量的模塊以尋找最優(yōu)的模型框架,實驗結(jié)果如表9 所示。
在上述實驗中,使用三個模塊時的點云分辨率為[896,768,640],四個模塊為[896,768,640,512],五個模塊為[896,768,640,512,384],分析實驗結(jié)果可知特征提取模塊的數(shù)量越多,網(wǎng)絡的性能并不會一直上升,反而導致模塊復雜度與所需的內(nèi)存占用增加。因此,為兼顧精度與效率,選擇四個特征提取模塊最為合適。
本文在圖卷積網(wǎng)絡DGCNN 的基礎(chǔ)上提出了一種融合多分辨率特征的圖卷積模塊,通過引入不同分辨率的點云特征對傳統(tǒng)的圖結(jié)構(gòu)信息進行補償,克服傳統(tǒng)圖結(jié)構(gòu)信息受限于預定義鄰域規(guī)模的問題,用空間分辨率豐富了點云的局部特征。并且相較于一般的特征線性聚合方式,所提出的特征聚合模塊更具有自適應性,能更加有效地進行點云特征學習。通過在ModelNet40、ScanObjectNN 以及ShapeNet Part 三個具有挑戰(zhàn)性的基準數(shù)據(jù)集上進行分類分割實驗,證明融合多分辨率特征的圖卷積網(wǎng)絡性能相比于其它模型均有一定提升。此外,大量消融實驗也驗證了多分辨率圖卷積網(wǎng)絡在點云分析任務中的有效性和魯棒性。
雖然,融合多分辨率特征的圖卷積網(wǎng)絡在基準數(shù)據(jù)集上取得了令人滿意的結(jié)果,但在實際應用中,樣本的分布并不總是均勻的,并且該網(wǎng)絡在分割實驗中,樣本邊界的識別能力也有所欠缺,這些都是本文網(wǎng)絡將來的優(yōu)化方向。今后的工作將聚焦于捕獲點云細粒度特征的研究前沿,進一步提高網(wǎng)絡在復雜場景下的識別能力,并與實際生產(chǎn)應用相結(jié)合。