周銳闖,田 瑾,閆豐亭,朱天曉
(上海工程技術(shù)大學 電子電氣工程學院,上海 201620)
目前,三維點云數(shù)據(jù)在多個實際應(yīng)用領(lǐng)域中具有重要的應(yīng)用價值,例如自動駕駛[1]、虛擬現(xiàn)實[2]以及機器人[3-4]等領(lǐng)域。這是因為三維點云數(shù)據(jù)可以較好地保留三維模型的幾何信息,而三維點云的分類則成為以上實際應(yīng)用中的關(guān)鍵步驟之一。但是,三維點云數(shù)據(jù)具有無序性、稀疏性以及高維性等特點,因此采用卷積神經(jīng)網(wǎng)絡(luò)處理點云數(shù)據(jù)是當前備受關(guān)注的研究領(lǐng)域,也是一個具有高難度的挑戰(zhàn)。
近年來,三維成像技術(shù)逐漸成熟,三維點云的數(shù)據(jù)量急劇增加,手工提取點云特征的方式變得難以實現(xiàn)。目前針對點云分類任務(wù)的神經(jīng)網(wǎng)絡(luò)方法主要分為三類:基于體素化的方法、基于多視圖的方法和基于點的方法。基于體素化的方法是將無序的點云分成一系列占用一定空間的體素(Occupancy Voxels)的方法,再利用三維卷積進行體素級別的特征學習。第一個利用體素化方式進行點云分類任務(wù)的是Maturana等人[5]提出的VoxNet,通過三維卷積神經(jīng)網(wǎng)絡(luò)提取體素數(shù)據(jù)的空間局部特征信息,但使用三維卷積造成計算空間和內(nèi)存大量消耗的問題。基于多視圖的方法是將三維對象按多個角度投影成二維圖像,MVCNN[6]網(wǎng)絡(luò)模型通過將點云中提取的視圖投影到二維空間,并利用二維卷積神經(jīng)網(wǎng)絡(luò)進行特征提取。這種方法通過二維卷積降低了內(nèi)存和計算資源的消耗,但多角度投影只能獲取外部結(jié)構(gòu)信息,從而造成大量三維點云數(shù)據(jù)的丟失。基于多視圖或體素化的方法都是將三維點云數(shù)據(jù)轉(zhuǎn)換為其他形式,導致有價值的信息丟失,影響分類任務(wù)的精度。
基于點的方法將三維點云數(shù)據(jù)直接作為模型的輸入,可以充分利用點云數(shù)據(jù)的空間幾何特征,降低數(shù)據(jù)預處理過程中的信息損失。Qi等人[7]提出了PointNet網(wǎng)絡(luò)框架,首次將原始點云數(shù)據(jù)作為輸入,該模型使用T-Net結(jié)構(gòu)解決點云數(shù)據(jù)的旋轉(zhuǎn)不變性問題,通過共享的多層感知機(Multilayer Perceptron,MLP)提取每個點的特征,最后使用最大池化進行信息聚合得到全局特征。但是,該方法沒有考慮點與點之間的結(jié)構(gòu)關(guān)系,因此對局部特征的提取不充分。Qi等人在PointNet基礎(chǔ)上進行了改善,提出了PointNet++[8]模型,通過層級下采樣的方式增強局部幾何信息的捕獲能力,但是仍無法提取到點對間的特征關(guān)系。梁振華等人[9]在PoinNet網(wǎng)基礎(chǔ)上提出注意力加權(quán)特征聚合模塊,改善了最大池化損失次要特征的問題,對局部特征信息的捕獲能力仍有不足。Te等人[10]提出了正則化圖卷積神經(jīng)網(wǎng)絡(luò)RGCNN,該網(wǎng)絡(luò)模型利用了譜圖理論,可以進一步提高了局部特征的獲取能力。為了能夠更好地獲取點對的關(guān)系特征,Wang等人[11]提出了一種動態(tài)卷積神經(jīng)網(wǎng)絡(luò)(Dynamic Graph CNN,DGCNN),借鑒了圖卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),利用共享參數(shù)的K近鄰算法(K Nearest Neighbors,KNN)和MLP從中心點及中心領(lǐng)域上提取局部特征,將不同層次的特征連接起來,計算出點對間的局部特征,但忽略了不同領(lǐng)域間的特征信息。王江安等人[12]提出結(jié)合殘差網(wǎng)絡(luò)[13]思想,通過搭建更深的圖卷積層來進行更深層局部特征的學習。田晟等人[14]提出結(jié)合注意力機制與圖卷積神經(jīng)網(wǎng)絡(luò)的點云分類模型,利用注意力機制獲取更具代表性的局部特征。梁志強等人[15]提出使用圖卷積和注意力機制分別提取點云低維和高維特征,通過多個特征融合的方式來提高點云分類精度。利用圖卷積結(jié)構(gòu)提取局部特征的方法已經(jīng)成主流,然而,使用固定參數(shù)卷積核對不同語義區(qū)域點對的特征提取能力有限,此外,目前網(wǎng)絡(luò)都采用一次最大池化聚合特征,這會丟棄大量由復雜網(wǎng)絡(luò)結(jié)構(gòu)學習到的特征集合。
針對以上問題,本文提出了一種基于動態(tài)自適應(yīng)圖卷積和多層池化的三維點云分類模型。該模型首先采用KNN算法將輸入的點云組成局部有向圖,然后利用動態(tài)自適應(yīng)圖卷積學習不同語義區(qū)域點的特征信息,生成多樣的自適應(yīng)卷積核,動態(tài)更新點對間邊的權(quán)重,獲取更精確的局部特征。最后采用多層最大池化聚合特征,利用第一次最大池化丟棄的特征重復最大池化操作,收集更豐富的高維特征,從而提高點云分類任務(wù)精度。
傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)在處理固定尺寸的二維圖像分類任務(wù)中取得了很好的效果,但無法直接應(yīng)用于無序數(shù)據(jù)的特征提取。Scarselli等人[16]提出圖卷積神經(jīng)網(wǎng)絡(luò),將圖結(jié)構(gòu)與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,可以有效處理無序的數(shù)據(jù)。將圖卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于處理無序的點云數(shù)據(jù),利用圖結(jié)構(gòu)學習點對間的依賴關(guān)系,可以提取更豐富的局部結(jié)構(gòu)特征。
利用圖卷積神經(jīng)網(wǎng)絡(luò)處理點云分類任務(wù)是將n個點F維的點云數(shù)據(jù)直接輸入,表示為X={x1,x2,…,xn}?RF,當F=3時,每個點的空間三維坐標表示為:Xi=(xi,yi,zi)。局部特征提取過程如圖1所示,首先利用K近鄰算法構(gòu)建局部有向圖G=(V,E),其中V={pi|i=1,2…,n}和E={ei=(ei1,…,eik)|i=1,2,…,n}表示圖結(jié)構(gòu)中的中心節(jié)點和邊。

圖1 圖卷積局部結(jié)構(gòu)示意圖
然后需要提取邊特征,邊特征的函數(shù)定義為eij=hθ(pi,pij),其中θ為一組可學習參數(shù),hθ(·)表示學習邊特征的非線性函數(shù)。邊函數(shù)的選擇對局部特征提取有重要的影響,公式(1)為PointNet模型邊函數(shù)的定義,只提取了每個獨立點的特征,沒有考慮點對間的關(guān)聯(lián);公式(2)中只對局部信息進行編碼,卻沒有考慮原始的全局特征信息;公式(3)是DGCNN網(wǎng)絡(luò)模型中邊函數(shù)的定義,該函數(shù)既考慮到每個中心點構(gòu)成的全局信息,又考慮了點對間的局部關(guān)系,提高了獲取的局部特征信息的精度:
eij=hθ(pi)
(1)
eij=hθ(pj-pi)s
(2)
eij=hθ(pi,pj-pi)
(3)
最后使用最大池化函數(shù)聚合每個圖結(jié)構(gòu)的特征信息,公式定義如(4)所示:
(4)
式中,Bn(Batch Normalization)是數(shù)據(jù)歸一化處理函數(shù);ReLU(Rectified Linear Activation Function)是非線性激活函數(shù),經(jīng)過最大池化函數(shù)后得到局部特征向量li。
面對復雜且數(shù)量龐大的三維點云數(shù)據(jù),構(gòu)建更深層的網(wǎng)絡(luò)結(jié)構(gòu),可以提取不同層次的信息。然而,普通網(wǎng)絡(luò)結(jié)構(gòu)中隨著卷積層數(shù)的增加,會出現(xiàn)梯度消失或梯度爆炸的問題。傳統(tǒng)的解決方案是采用數(shù)據(jù)出初始化和標準化技術(shù),但這些方法會導致網(wǎng)絡(luò)性能的退化問題。使用殘差結(jié)構(gòu)搭建深層網(wǎng)絡(luò)可以有效地解決這些問題。
殘差網(wǎng)絡(luò)是由多個殘差元組成,每個殘差塊由兩個卷積層、一個快捷連接和一個恒等映射構(gòu)成,如圖2所示。

圖2 殘差結(jié)構(gòu)
快捷連接通過跨越卷積層的直通路徑將輸入直接連接到卷積層的輸出上,這種方式可以使網(wǎng)絡(luò)從淺層的特征直接傳遞到深層,避免深度神經(jīng)網(wǎng)絡(luò)訓練時梯度過度衰退的問題,從而更好地學習到特征。在快捷連接后,使用非常簡單的恒等函數(shù),將殘差的輸出直接傳遞到下一層的輸入中,不會改變特征分布,這樣能夠保留輸入信息,稱為恒等映射,這樣使得網(wǎng)絡(luò)可以更深,同時避免網(wǎng)絡(luò)性能的退化。通過快捷連接和恒等映射的組合,殘差塊可以更靈活的設(shè)計深層網(wǎng)絡(luò),提高網(wǎng)絡(luò)的表達能力和性能。
本文提了一種基于改進圖卷積和多層池化的點云分類模型,整體網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。該模型直接將無序的點云數(shù)據(jù)(N×3)作為輸入,其中N表示輸入的點數(shù),3表示點云的三維坐標(x,y,z)。數(shù)據(jù)進入局部特征提取模塊中的動態(tài)自適應(yīng)調(diào)整卷積層(Dynamics Adaptive Graph Conv,DAGraphConv)后,首先利用KNN算法構(gòu)建以K個節(jié)點為一組的有向圖結(jié)構(gòu),然后提取圖結(jié)構(gòu)中每個點的特征,通過殘差結(jié)構(gòu)的深層卷積對點的特征進行學習,生成可適用不同語義區(qū)域點對的動態(tài)調(diào)整卷積核,并利用根據(jù)點的特征生成的卷積核處理圖結(jié)構(gòu)中對應(yīng)點對,獲得更精確的特征向量,最后使用最大池化進行聚合,得到局部特征向量。本文模型的局部特征提取模塊由2個DAGraphConv和2個GraphConv組成,局部特征的維度設(shè)置為(64,64,128,256)。局部特征提取模塊提取到的特征會被拼接,并通過MLP(1024)對特征向量進行更深層的學習。隨后,通過多層最大池化模塊,利用前一次最大池化丟棄的部分再進行多層最大池化,更高效的利用特征信息且減少冗余信息的產(chǎn)生,得到全局特征向量。最后,將得到的全局特征向量經(jīng)過全連接層進行分類,獲得最終的分類結(jié)果。

圖3 點云分類模型總體架構(gòu)
在圖卷積神經(jīng)網(wǎng)絡(luò)中,固定參數(shù)的卷積層僅能提取點云數(shù)據(jù)中片面的幾何信息,無法充分考慮組成圖結(jié)構(gòu)的不同語義區(qū)域點所攜帶的特征信息。因此,使用圖卷積神經(jīng)網(wǎng)絡(luò)提取特征存在一定程度的局限性。為此,本文提出了一種動態(tài)自適應(yīng)圖卷積方法,該方法通過學習不同點對之間的獨特關(guān)系,形成動態(tài)自適應(yīng)調(diào)整卷積核,以便精確提取每一點對的特征信息。過程如圖3所示,步驟描述如下:
首先通過KNN算法將無序的點云構(gòu)成以K個點為集合的有向圖結(jié)構(gòu)G=(V,E)。然后通過殘差結(jié)構(gòu)的卷積層學習圖中點對特征關(guān)系,生成動態(tài)自適應(yīng)調(diào)整卷積核,公式如下:
(5)
式中,(fi,fj)分別表示圖中心點特征及鄰居點特征;g(·)表示特征映射函數(shù),將第一層卷積學習到的特征信息結(jié)果歸一化處理,再使用ReLU激活函數(shù)進行進一步優(yōu)化,最終,通過將第二層卷積后的結(jié)果與初始傳入的特征進行拼接,得到動態(tài)自適應(yīng)調(diào)整卷積核DAconvk。如圖4所示,通過動態(tài)自適應(yīng)調(diào)整卷積核處理圖中點對,更新每對獨特點對間邊的權(quán)重,如式(6)所示:
(6)

圖4 DAGraphConv局部結(jié)構(gòu)示意圖
最后通過最大池化函數(shù)聚合更新后每個圖的特征信息,得到局部特征,如式(7):
(7)
由于點的特征會隨著卷積層深度變化,每次提取局部特征后重新使用KNN算法更新圖結(jié)構(gòu),這樣可以讓信息在相似的結(jié)構(gòu)之間更好的傳播,加快局部語義信息的學習能力。
目前主流點云分類網(wǎng)絡(luò)模型采用一次最大池化聚合局部特征,以獲得全局特征集合,然后,這種方式存在局部特征利用率低的問題,因為只有少部分局部局部特征被用于全局特征的生成。另一種解決方式是將一次最大池化和平均池化得到的特征向量拼接,但這會產(chǎn)生冗余信息,影響分類精度。為了解決以上問題,本文提出了多層最大池化(Multi-layer Max Pooling,MMPooing)方法,該方法利用前一次最大池化丟棄的特征集合進行多層最大池化,可以更高效地利用經(jīng)過復雜計算學習到的特征集合,同時降低了冗余信息的產(chǎn)生,提高點云分類模型的精度。具體步驟如下:
首先將每個卷積層提取的局部特征進行并聯(lián),再經(jīng)過MLP(1024)將特征維度提升到1024維,得到一個整體的高維特征,公式定義如式(8):
f=MLP1024[l1⊕l2⊕l3⊕l4]
(8)
式中,⊕為特征向量的拼接。然后將拼接的N×M高維特征矩陣作為輸入,分別使用多層的最大池化,第一層最大池化提取1×M維特征后,將剩下的(N-1)×M作為下一層最大池化的輸入,得到的F1,F2,…,Fn表示每層最大池化聚合后的特征矩陣,每層聚合函數(shù)對應(yīng)的分類損失函數(shù)定義如式(9):
Li=Φ(yi,φ(Fi))
(9)
式中,yi表示真實標簽值;φ(·)表示soft-max激活函數(shù);Φ(·)表示交叉熵損失函數(shù)。整體的分類損失定義如式(10):
(10)
僅僅將每個池化層得到的損失串聯(lián)或者相加并不能得到最優(yōu)的實驗結(jié)果,本文引入了修正損失函數(shù),如圖5所示。

圖5 多層最大池化結(jié)構(gòu)圖
通過F2,F3,…,Fn的損失來修正F1,讓L1在其中保持是最小的值,維持網(wǎng)絡(luò)的穩(wěn)定,修正損失函數(shù)定義如式(11):
LCR=|1-e(Li-(βi·γ)L1)|
(11)
(12)
公式(12)中n表示類別數(shù)量。在訓練早期,收集到的特征并不是十分可靠,修正損失函數(shù)獲得的收益不大,隨著迭代次數(shù)增加,每一層的預測逐漸穩(wěn)定,修正損失函數(shù)發(fā)揮作用,保證Li>L1,第一次池化得到的特征信息保持最佳利用。
最后聯(lián)合修正損失函數(shù)以及分類損失函數(shù),得到整體損失表達式:
Loss=ρLCR+(1-ρ)LC
(13)
其中ρ表示為可學習參數(shù)。
本文算法的實驗硬件環(huán)境為Intel Core i5-12400F、16 GB內(nèi)存,GPU為NVIDIA GE-FORCE RTX 3060;軟件環(huán)境為Linux Ubuntu 18.04操作系統(tǒng)、CUDA 10.1、Pytorch 1.6、Python 3.7。
訓練和測試的實驗參數(shù)設(shè)置為:訓練迭代次數(shù)為250次,Batch Size設(shè)置為32或16,Batch Size的大小會影響顯存的消耗以及模型訓練的收斂速度,本文實驗中Batch Size會根據(jù)整體參數(shù)進行對應(yīng)的調(diào)整。選擇隨機梯度下降法[17]作為網(wǎng)絡(luò)的優(yōu)化器,將動量設(shè)置為0.9,采用余弦退火法[18]將學習率從0.1降低到0.001。每個全連接層后都加入了dropout層,比例設(shè)置為0.5,使用ReLU激活函數(shù),防止訓練過程中出現(xiàn)過擬合。
經(jīng)過訓練的模型在測試集中進行測試得出最終的總體準確率以及平均準確率,整體準確率Aoacc(overall accuracy)和平均準確率Amacc(mean accuracy)表示如下:
(14)
(15)
其中,TP為真陽性,表示實際為真,預測也為真的樣本數(shù);FP為假陽性,表示實際為假但預測為真的樣本數(shù);TN為真陰性,表示實際為假預測也為假的樣本數(shù);FN為假陰性,表示實際為真但是卻預測為假的樣本數(shù)。
為了方便文中提出的點云分類模型實驗數(shù)據(jù)與其他主流模型作對比,本文選擇在ModelNet40數(shù)據(jù)集[18]上進行訓練和測試。該數(shù)據(jù)集共有40個類別,含12311個CAD模型,其中有9842個物體用于訓練,2469個物體用于模型測試,該數(shù)據(jù)集中每個物體都有2048個點的三維坐標。其中部分實例展示在圖6中,圖中的飛機、鋼琴和汽車等三維模型特征明顯,在網(wǎng)絡(luò)模型中較容易被區(qū)分。但長椅和椅子的模型相似度較高,需要能提取更精確特征信息的網(wǎng)絡(luò)模型才能準確的區(qū)分。本文實驗僅使用采樣點的(x,y,z)坐標作為輸入,采用隨機旋轉(zhuǎn)、縮放以及逐點抖動的方式進行數(shù)據(jù)增強。

圖6 三維點云模型可視化
4.3.1 分類結(jié)果分析
為了驗證本文提出算法的優(yōu)勢,在ModelNet40數(shù)據(jù)集上與目前主流的點云分類模型DGCNN、PoinNet++、PointCNN等進行分類精度的對比,結(jié)果如表1所示。表中不同模型的輸入的數(shù)據(jù)形式不同,其中Voxels表示使用體素作為輸入,View表示使用多視圖作為輸入,Points+Noraml表示使用三維坐標和法線向量作為輸入,本文實驗僅使用點的三維坐標信息作為輸入。從實驗結(jié)果可以看到,本文提出算法整體的分類精度達到93.3 %,平均分類精度為90.4 %,相比于其他點云分類模型,本文模型在分類精度上有明顯提升。

表1 不同模型在ModelNet40數(shù)據(jù)集上的分類精度
對比使用多視圖或體素作為輸入的MVCNN和VoxNet模型,本文提出的方法直接將原始點作為輸入,可以更高效的提取點云特征,減少了將數(shù)據(jù)轉(zhuǎn)化為二維圖像或體素形式造成的信息丟失,使整體準確率有3.2 %~8.8 %的提升。相比于同樣使用點作為輸入的PointNet++和PointNet模型,本文模型不僅提取了每個單獨點的特征信息,還考慮到了點與點之間的關(guān)聯(lián)信息,加強了對局部特征信息的提取,在總體精度上有1.6 %~3.3 %提升。對比于DGCNN算法模型,本文模型考慮到不同語義部分點對差異性,使用固定參數(shù)卷積無法提取到準確的特征信息,本文中使用根據(jù)點對特征學習獲得的自適應(yīng)卷積進行特征提取,進一步增強了提取局部特征的能力,使整體精度有0.7 %的提升。對比于增加了法向量信息作為輸入的SpiderCNN以及融入了注意力機制的Point Transformer和DTNet模型,本文模型沒有通過增加輸入或采用更復雜且更耗費計算資源的特征提取方法來提高分類精度,而是采用多層最大池化更高效的利用特征信息,提高分類精度的同時不會額外增加模型復雜度,讓整體精度有0.4 %~0.9 %的提升。通過對比實驗表明,本文提出的模型與經(jīng)典模型或當前主流的點云分類模型比較,都有著突出的表現(xiàn),充分說明本文模型的實際可行性。
4.3.2 消融實驗
為了驗證本文提出的動態(tài)自適應(yīng)圖卷積及多層最大池化模塊在三維點云分類任務(wù)中的有效性,構(gòu)建了4組模型的自身消融對比實驗進行驗證,使用不同模塊的研究結(jié)果如表2所示。

表2 不同模塊的消融實驗
表中“√”表示該方法被采用,“×”表示沒有采用該方法。模型A作為對比實驗的基礎(chǔ)模型,采用圖卷積提取特征,僅使用一次最大池化聚合特征信息。模型B在模型A的基礎(chǔ)上增加了本文提出的動態(tài)自適應(yīng)圖卷積進行特征提取。模型C在模型A的基礎(chǔ)上增加了多層最大池化模塊,增加卷積層提取的局部特征的利用率。模型D在模型A的基礎(chǔ)上同時增加了動態(tài)自適應(yīng)圖卷積和多層最大池化模塊。通過對比實驗可以得到,采用可以提取更精確局部特征的動態(tài)自適應(yīng)圖卷積模塊后,模型的整體精度提高了0.3 %,平均精度提高了0.8 %。采用多層最大池化后,將提取的特征更高效的利用,模型整體精度提高了0.4 %。同時加入動態(tài)自適應(yīng)圖卷積及多層最大池化模型,模型的整體精度提高了0.9 %,平均精度提高了2.1 %。實驗結(jié)果表明,本文提出的2個模塊均可明顯提升模型的分類精度。
4.3.3 池化層數(shù)測試
為了研究多層最大池化(MMPooling)模塊中使用不同層數(shù)對模型分類精度的影響,本文在ModelNet40數(shù)據(jù)集上分別使用(1、2、3、4)層最大池化,實驗結(jié)果如表3所示。

表3 最大池化層數(shù)測試
表中層數(shù)為1表示未使用多層最大池化模塊,僅用一次最大池化聚合特征,僅保留一組特征信息,無法充分利用經(jīng)過復雜計算得到的局部結(jié)構(gòu)信息。當使用最大池化層數(shù)增到2層,可以用于分類的特征信息增加,模型的整體精度提高了0.2 %。當采用3層最大池化聚合特征,進一步提高由復雜卷積計算得到的特征信息的利用率,對比僅使用一層最大池化,整體精度提高了0.7 %。但當使用的最大池化層數(shù)繼續(xù)增加,會造成聚合過多冗余信息,從而干擾最后的分類結(jié)果,無法提高模型的分類精度。實驗結(jié)果表明,使用最大池化的層數(shù)不同會對實驗結(jié)果產(chǎn)生影響,合適的層數(shù)可以顯著提高模型性能,實驗中三層效果最佳,因此本文使用三層最大池化。
4.3.4 超參數(shù)實驗
本文使用KNN算法構(gòu)建有向圖結(jié)構(gòu),其中的超參數(shù)K值決定有向圖中節(jié)點個數(shù),為了研究K大小對點云分類模型準確率的影響,本文設(shè)置了在同樣參數(shù)環(huán)境下,選擇不同K值(K為10、15、20、25、30、35)在ModelNet40數(shù)據(jù)集上進行測試,分類精度如圖7所示。由圖中的數(shù)據(jù)可以發(fā)現(xiàn),當K值較小時,構(gòu)建的有向圖中節(jié)點個數(shù)少,導致無法充分提取中心點與其相鄰節(jié)點的特征。但當K值過大時,鄰居節(jié)點的數(shù)量過多會產(chǎn)生大量冗余信息,局部領(lǐng)域的幾何結(jié)構(gòu)被破壞,導致點云模型分類精度下降,同時還會增加網(wǎng)絡(luò)模型的訓練時間。當K=20時,本文模型的性能達到最優(yōu),因此一個合適的K值對模型的分類精度有至關(guān)重要的影響。

圖7 K值對分類精度的影響
4.3.5 模型魯棒性實驗
為了驗證本文網(wǎng)絡(luò)模型對稀疏輸入和遮擋問題的魯棒性,在ModelNet40數(shù)據(jù)集上采用隨機依次減少25 %的采樣點(1024、768、512、256)。稀疏三維點云模型可視化如圖8所示,圖8(a)不減少輸入點數(shù),物體的結(jié)構(gòu)特征可以充分地展現(xiàn)出來,圖中8(b)、(c)、(d)依次減少輸入點數(shù),物體的結(jié)構(gòu)逐漸模糊,因此需要網(wǎng)絡(luò)模型有更強提取特征信息的能力,才能在減少采樣點情況下可以準確分類。

圖8 稀疏點云可視化
實驗中使用表2中模型D與DGCNN等模型進行對比實驗,結(jié)果如圖9所示。從圖中可以看出,與同樣使用圖卷積的DGCNN模型比較,隨著采樣點數(shù)減少,本文模型的整體精度從93.3 %下降到91.5 %,下降了1.8 %,下降趨勢較平緩,DGCNN模型從92.6 %下降到47.1 %,下降趨勢較明顯。對比針對單個點提取特征PointNet和PointNet++網(wǎng)絡(luò)模型,減少采樣點數(shù)對獲取局部特征影響較小,PointNet++模型整體精度從91.7 %下降到89.9 %,PointNet模型整體精度從90.0 %下降到85.8 %,本文模型整體精度始終高于PoinNet和PointNet++模型,且隨著采樣點減少,分類精度差距逐漸增加。這說明在面對遮擋和稀疏點輸入問題時,能夠識別不同語義點信息和高效利用提取的局部特征可以使網(wǎng)絡(luò)具有較強的魯棒性。

圖9 采樣點密度對分類精度的影響
為了提高點云分類模型對不同語義區(qū)域點對特征的提取能力,本文提出了一種集改進圖卷積和多層池化的點云分類模型。該模型通過學習不同點的特征,生成可動態(tài)調(diào)整點對關(guān)系的卷積核,以處理圖結(jié)構(gòu)中不同語義區(qū)域的點對,捕獲更精確的局部特征信息。此外,該模型使用多層最大池化來聚合高維特征以得到全局特征,從而更高效地利用局部特征,同時減少冗余信息的產(chǎn)生,提高模型的分類準確度。在公共數(shù)據(jù)集ModelNet40上的實驗結(jié)果表明,相較于目前經(jīng)典的點云分類模型,本文模型的分類精度提高了0.7 %~3.3 %。消融實驗、超參數(shù)實驗以及逐漸減少采樣點數(shù)實驗進一步驗證了本文對圖卷積和池化層的改進可以提高點云分類任務(wù)的精度,并增加模型的魯棒性。然而,更有效的卷積層和池化層會使網(wǎng)絡(luò)模型更加復雜,模型的參數(shù)數(shù)量也會隨之增加。因此,未來的研究將注重于在不降低分類精度的前提下,實現(xiàn)模型更輕量化的目標。