周銳闖,田 瑾,閆豐亭,朱天曉
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
目前,三維點(diǎn)云數(shù)據(jù)在多個(gè)實(shí)際應(yīng)用領(lǐng)域中具有重要的應(yīng)用價(jià)值,例如自動(dòng)駕駛[1]、虛擬現(xiàn)實(shí)[2]以及機(jī)器人[3-4]等領(lǐng)域。這是因?yàn)槿S點(diǎn)云數(shù)據(jù)可以較好地保留三維模型的幾何信息,而三維點(diǎn)云的分類則成為以上實(shí)際應(yīng)用中的關(guān)鍵步驟之一。但是,三維點(diǎn)云數(shù)據(jù)具有無(wú)序性、稀疏性以及高維性等特點(diǎn),因此采用卷積神經(jīng)網(wǎng)絡(luò)處理點(diǎn)云數(shù)據(jù)是當(dāng)前備受關(guān)注的研究領(lǐng)域,也是一個(gè)具有高難度的挑戰(zhàn)。
近年來(lái),三維成像技術(shù)逐漸成熟,三維點(diǎn)云的數(shù)據(jù)量急劇增加,手工提取點(diǎn)云特征的方式變得難以實(shí)現(xiàn)。目前針對(duì)點(diǎn)云分類任務(wù)的神經(jīng)網(wǎng)絡(luò)方法主要分為三類:基于體素化的方法、基于多視圖的方法和基于點(diǎn)的方法。基于體素化的方法是將無(wú)序的點(diǎn)云分成一系列占用一定空間的體素(Occupancy Voxels)的方法,再利用三維卷積進(jìn)行體素級(jí)別的特征學(xué)習(xí)。第一個(gè)利用體素化方式進(jìn)行點(diǎn)云分類任務(wù)的是Maturana等人[5]提出的VoxNet,通過(guò)三維卷積神經(jīng)網(wǎng)絡(luò)提取體素?cái)?shù)據(jù)的空間局部特征信息,但使用三維卷積造成計(jì)算空間和內(nèi)存大量消耗的問(wèn)題?;诙嘁晥D的方法是將三維對(duì)象按多個(gè)角度投影成二維圖像,MVCNN[6]網(wǎng)絡(luò)模型通過(guò)將點(diǎn)云中提取的視圖投影到二維空間,并利用二維卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取。這種方法通過(guò)二維卷積降低了內(nèi)存和計(jì)算資源的消耗,但多角度投影只能獲取外部結(jié)構(gòu)信息,從而造成大量三維點(diǎn)云數(shù)據(jù)的丟失。基于多視圖或體素化的方法都是將三維點(diǎn)云數(shù)據(jù)轉(zhuǎn)換為其他形式,導(dǎo)致有價(jià)值的信息丟失,影響分類任務(wù)的精度。
基于點(diǎn)的方法將三維點(diǎn)云數(shù)據(jù)直接作為模型的輸入,可以充分利用點(diǎn)云數(shù)據(jù)的空間幾何特征,降低數(shù)據(jù)預(yù)處理過(guò)程中的信息損失。Qi等人[7]提出了PointNet網(wǎng)絡(luò)框架,首次將原始點(diǎn)云數(shù)據(jù)作為輸入,該模型使用T-Net結(jié)構(gòu)解決點(diǎn)云數(shù)據(jù)的旋轉(zhuǎn)不變性問(wèn)題,通過(guò)共享的多層感知機(jī)(Multilayer Perceptron,MLP)提取每個(gè)點(diǎn)的特征,最后使用最大池化進(jìn)行信息聚合得到全局特征。但是,該方法沒(méi)有考慮點(diǎn)與點(diǎn)之間的結(jié)構(gòu)關(guān)系,因此對(duì)局部特征的提取不充分。Qi等人在PointNet基礎(chǔ)上進(jìn)行了改善,提出了PointNet++[8]模型,通過(guò)層級(jí)下采樣的方式增強(qiáng)局部幾何信息的捕獲能力,但是仍無(wú)法提取到點(diǎn)對(duì)間的特征關(guān)系。梁振華等人[9]在PoinNet網(wǎng)基礎(chǔ)上提出注意力加權(quán)特征聚合模塊,改善了最大池化損失次要特征的問(wèn)題,對(duì)局部特征信息的捕獲能力仍有不足。Te等人[10]提出了正則化圖卷積神經(jīng)網(wǎng)絡(luò)RGCNN,該網(wǎng)絡(luò)模型利用了譜圖理論,可以進(jìn)一步提高了局部特征的獲取能力。為了能夠更好地獲取點(diǎn)對(duì)的關(guān)系特征,Wang等人[11]提出了一種動(dòng)態(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從中心點(diǎn)及中心領(lǐng)域上提取局部特征,將不同層次的特征連接起來(lái),計(jì)算出點(diǎn)對(duì)間的局部特征,但忽略了不同領(lǐng)域間的特征信息。王江安等人[12]提出結(jié)合殘差網(wǎng)絡(luò)[13]思想,通過(guò)搭建更深的圖卷積層來(lái)進(jìn)行更深層局部特征的學(xué)習(xí)。田晟等人[14]提出結(jié)合注意力機(jī)制與圖卷積神經(jīng)網(wǎng)絡(luò)的點(diǎn)云分類模型,利用注意力機(jī)制獲取更具代表性的局部特征。梁志強(qiáng)等人[15]提出使用圖卷積和注意力機(jī)制分別提取點(diǎn)云低維和高維特征,通過(guò)多個(gè)特征融合的方式來(lái)提高點(diǎn)云分類精度。利用圖卷積結(jié)構(gòu)提取局部特征的方法已經(jīng)成主流,然而,使用固定參數(shù)卷積核對(duì)不同語(yǔ)義區(qū)域點(diǎn)對(duì)的特征提取能力有限,此外,目前網(wǎng)絡(luò)都采用一次最大池化聚合特征,這會(huì)丟棄大量由復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)到的特征集合。
針對(duì)以上問(wèn)題,本文提出了一種基于動(dòng)態(tài)自適應(yīng)圖卷積和多層池化的三維點(diǎn)云分類模型。該模型首先采用KNN算法將輸入的點(diǎn)云組成局部有向圖,然后利用動(dòng)態(tài)自適應(yīng)圖卷積學(xué)習(xí)不同語(yǔ)義區(qū)域點(diǎn)的特征信息,生成多樣的自適應(yīng)卷積核,動(dòng)態(tài)更新點(diǎn)對(duì)間邊的權(quán)重,獲取更精確的局部特征。最后采用多層最大池化聚合特征,利用第一次最大池化丟棄的特征重復(fù)最大池化操作,收集更豐富的高維特征,從而提高點(diǎn)云分類任務(wù)精度。
傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)在處理固定尺寸的二維圖像分類任務(wù)中取得了很好的效果,但無(wú)法直接應(yīng)用于無(wú)序數(shù)據(jù)的特征提取。Scarselli等人[16]提出圖卷積神經(jīng)網(wǎng)絡(luò),將圖結(jié)構(gòu)與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,可以有效處理無(wú)序的數(shù)據(jù)。將圖卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于處理無(wú)序的點(diǎn)云數(shù)據(jù),利用圖結(jié)構(gòu)學(xué)習(xí)點(diǎn)對(duì)間的依賴關(guān)系,可以提取更豐富的局部結(jié)構(gòu)特征。
利用圖卷積神經(jīng)網(wǎng)絡(luò)處理點(diǎn)云分類任務(wù)是將n個(gè)點(diǎn)F維的點(diǎn)云數(shù)據(jù)直接輸入,表示為X={x1,x2,…,xn}?RF,當(dāng)F=3時(shí),每個(gè)點(diǎn)的空間三維坐標(biāo)表示為:Xi=(xi,yi,zi)。局部特征提取過(guò)程如圖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é)點(diǎn)和邊。
圖1 圖卷積局部結(jié)構(gòu)示意圖
然后需要提取邊特征,邊特征的函數(shù)定義為eij=hθ(pi,pij),其中θ為一組可學(xué)習(xí)參數(shù),hθ(·)表示學(xué)習(xí)邊特征的非線性函數(shù)。邊函數(shù)的選擇對(duì)局部特征提取有重要的影響,公式(1)為PointNet模型邊函數(shù)的定義,只提取了每個(gè)獨(dú)立點(diǎn)的特征,沒(méi)有考慮點(diǎn)對(duì)間的關(guān)聯(lián);公式(2)中只對(duì)局部信息進(jìn)行編碼,卻沒(méi)有考慮原始的全局特征信息;公式(3)是DGCNN網(wǎng)絡(luò)模型中邊函數(shù)的定義,該函數(shù)既考慮到每個(gè)中心點(diǎn)構(gòu)成的全局信息,又考慮了點(diǎn)對(duì)間的局部關(guān)系,提高了獲取的局部特征信息的精度:
eij=hθ(pi)
(1)
eij=hθ(pj-pi)s
(2)
eij=hθ(pi,pj-pi)
(3)
最后使用最大池化函數(shù)聚合每個(gè)圖結(jié)構(gòu)的特征信息,公式定義如(4)所示:
(4)
式中,Bn(Batch Normalization)是數(shù)據(jù)歸一化處理函數(shù);ReLU(Rectified Linear Activation Function)是非線性激活函數(shù),經(jīng)過(guò)最大池化函數(shù)后得到局部特征向量li。
面對(duì)復(fù)雜且數(shù)量龐大的三維點(diǎn)云數(shù)據(jù),構(gòu)建更深層的網(wǎng)絡(luò)結(jié)構(gòu),可以提取不同層次的信息。然而,普通網(wǎng)絡(luò)結(jié)構(gòu)中隨著卷積層數(shù)的增加,會(huì)出現(xiàn)梯度消失或梯度爆炸的問(wèn)題。傳統(tǒng)的解決方案是采用數(shù)據(jù)出初始化和標(biāo)準(zhǔn)化技術(shù),但這些方法會(huì)導(dǎo)致網(wǎng)絡(luò)性能的退化問(wèn)題。使用殘差結(jié)構(gòu)搭建深層網(wǎng)絡(luò)可以有效地解決這些問(wèn)題。
殘差網(wǎng)絡(luò)是由多個(gè)殘差元組成,每個(gè)殘差塊由兩個(gè)卷積層、一個(gè)快捷連接和一個(gè)恒等映射構(gòu)成,如圖2所示。
圖2 殘差結(jié)構(gòu)
快捷連接通過(guò)跨越卷積層的直通路徑將輸入直接連接到卷積層的輸出上,這種方式可以使網(wǎng)絡(luò)從淺層的特征直接傳遞到深層,避免深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)梯度過(guò)度衰退的問(wèn)題,從而更好地學(xué)習(xí)到特征。在快捷連接后,使用非常簡(jiǎn)單的恒等函數(shù),將殘差的輸出直接傳遞到下一層的輸入中,不會(huì)改變特征分布,這樣能夠保留輸入信息,稱為恒等映射,這樣使得網(wǎng)絡(luò)可以更深,同時(shí)避免網(wǎng)絡(luò)性能的退化。通過(guò)快捷連接和恒等映射的組合,殘差塊可以更靈活的設(shè)計(jì)深層網(wǎng)絡(luò),提高網(wǎng)絡(luò)的表達(dá)能力和性能。
本文提了一種基于改進(jìn)圖卷積和多層池化的點(diǎn)云分類模型,整體網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。該模型直接將無(wú)序的點(diǎn)云數(shù)據(jù)(N×3)作為輸入,其中N表示輸入的點(diǎn)數(shù),3表示點(diǎn)云的三維坐標(biāo)(x,y,z)。數(shù)據(jù)進(jìn)入局部特征提取模塊中的動(dòng)態(tài)自適應(yīng)調(diào)整卷積層(Dynamics Adaptive Graph Conv,DAGraphConv)后,首先利用KNN算法構(gòu)建以K個(gè)節(jié)點(diǎn)為一組的有向圖結(jié)構(gòu),然后提取圖結(jié)構(gòu)中每個(gè)點(diǎn)的特征,通過(guò)殘差結(jié)構(gòu)的深層卷積對(duì)點(diǎn)的特征進(jìn)行學(xué)習(xí),生成可適用不同語(yǔ)義區(qū)域點(diǎn)對(duì)的動(dòng)態(tài)調(diào)整卷積核,并利用根據(jù)點(diǎn)的特征生成的卷積核處理圖結(jié)構(gòu)中對(duì)應(yīng)點(diǎn)對(duì),獲得更精確的特征向量,最后使用最大池化進(jìn)行聚合,得到局部特征向量。本文模型的局部特征提取模塊由2個(gè)DAGraphConv和2個(gè)GraphConv組成,局部特征的維度設(shè)置為(64,64,128,256)。局部特征提取模塊提取到的特征會(huì)被拼接,并通過(guò)MLP(1024)對(duì)特征向量進(jìn)行更深層的學(xué)習(xí)。隨后,通過(guò)多層最大池化模塊,利用前一次最大池化丟棄的部分再進(jìn)行多層最大池化,更高效的利用特征信息且減少冗余信息的產(chǎn)生,得到全局特征向量。最后,將得到的全局特征向量經(jīng)過(guò)全連接層進(jìn)行分類,獲得最終的分類結(jié)果。
圖3 點(diǎn)云分類模型總體架構(gòu)
在圖卷積神經(jīng)網(wǎng)絡(luò)中,固定參數(shù)的卷積層僅能提取點(diǎn)云數(shù)據(jù)中片面的幾何信息,無(wú)法充分考慮組成圖結(jié)構(gòu)的不同語(yǔ)義區(qū)域點(diǎn)所攜帶的特征信息。因此,使用圖卷積神經(jīng)網(wǎng)絡(luò)提取特征存在一定程度的局限性。為此,本文提出了一種動(dòng)態(tài)自適應(yīng)圖卷積方法,該方法通過(guò)學(xué)習(xí)不同點(diǎn)對(duì)之間的獨(dú)特關(guān)系,形成動(dòng)態(tài)自適應(yīng)調(diào)整卷積核,以便精確提取每一點(diǎn)對(duì)的特征信息。過(guò)程如圖3所示,步驟描述如下:
首先通過(guò)KNN算法將無(wú)序的點(diǎn)云構(gòu)成以K個(gè)點(diǎn)為集合的有向圖結(jié)構(gòu)G=(V,E)。然后通過(guò)殘差結(jié)構(gòu)的卷積層學(xué)習(xí)圖中點(diǎn)對(duì)特征關(guān)系,生成動(dòng)態(tài)自適應(yīng)調(diào)整卷積核,公式如下:
(5)
式中,(fi,fj)分別表示圖中心點(diǎn)特征及鄰居點(diǎn)特征;g(·)表示特征映射函數(shù),將第一層卷積學(xué)習(xí)到的特征信息結(jié)果歸一化處理,再使用ReLU激活函數(shù)進(jìn)行進(jìn)一步優(yōu)化,最終,通過(guò)將第二層卷積后的結(jié)果與初始傳入的特征進(jìn)行拼接,得到動(dòng)態(tài)自適應(yīng)調(diào)整卷積核DAconvk。如圖4所示,通過(guò)動(dòng)態(tài)自適應(yīng)調(diào)整卷積核處理圖中點(diǎn)對(duì),更新每對(duì)獨(dú)特點(diǎn)對(duì)間邊的權(quán)重,如式(6)所示:
(6)
圖4 DAGraphConv局部結(jié)構(gòu)示意圖
最后通過(guò)最大池化函數(shù)聚合更新后每個(gè)圖的特征信息,得到局部特征,如式(7):
(7)
由于點(diǎn)的特征會(huì)隨著卷積層深度變化,每次提取局部特征后重新使用KNN算法更新圖結(jié)構(gòu),這樣可以讓信息在相似的結(jié)構(gòu)之間更好的傳播,加快局部語(yǔ)義信息的學(xué)習(xí)能力。
目前主流點(diǎn)云分類網(wǎng)絡(luò)模型采用一次最大池化聚合局部特征,以獲得全局特征集合,然后,這種方式存在局部特征利用率低的問(wèn)題,因?yàn)橹挥猩俨糠志植烤植刻卣鞅挥糜谌痔卣鞯纳伞A硪环N解決方式是將一次最大池化和平均池化得到的特征向量拼接,但這會(huì)產(chǎn)生冗余信息,影響分類精度。為了解決以上問(wèn)題,本文提出了多層最大池化(Multi-layer Max Pooling,MMPooing)方法,該方法利用前一次最大池化丟棄的特征集合進(jìn)行多層最大池化,可以更高效地利用經(jīng)過(guò)復(fù)雜計(jì)算學(xué)習(xí)到的特征集合,同時(shí)降低了冗余信息的產(chǎn)生,提高點(diǎn)云分類模型的精度。具體步驟如下:
首先將每個(gè)卷積層提取的局部特征進(jìn)行并聯(lián),再經(jīng)過(guò)MLP(1024)將特征維度提升到1024維,得到一個(gè)整體的高維特征,公式定義如式(8):
f=MLP1024[l1⊕l2⊕l3⊕l4]
(8)
式中,⊕為特征向量的拼接。然后將拼接的N×M高維特征矩陣作為輸入,分別使用多層的最大池化,第一層最大池化提取1×M維特征后,將剩下的(N-1)×M作為下一層最大池化的輸入,得到的F1,F2,…,Fn表示每層最大池化聚合后的特征矩陣,每層聚合函數(shù)對(duì)應(yīng)的分類損失函數(shù)定義如式(9):
Li=Φ(yi,φ(Fi))
(9)
式中,yi表示真實(shí)標(biāo)簽值;φ(·)表示soft-max激活函數(shù);Φ(·)表示交叉熵?fù)p失函數(shù)。整體的分類損失定義如式(10):
(10)
僅僅將每個(gè)池化層得到的損失串聯(lián)或者相加并不能得到最優(yōu)的實(shí)驗(yàn)結(jié)果,本文引入了修正損失函數(shù),如圖5所示。
圖5 多層最大池化結(jié)構(gòu)圖
通過(guò)F2,F3,…,Fn的損失來(lái)修正F1,讓L1在其中保持是最小的值,維持網(wǎng)絡(luò)的穩(wěn)定,修正損失函數(shù)定義如式(11):
LCR=|1-e(Li-(βi·γ)L1)|
(11)
(12)
公式(12)中n表示類別數(shù)量。在訓(xùn)練早期,收集到的特征并不是十分可靠,修正損失函數(shù)獲得的收益不大,隨著迭代次數(shù)增加,每一層的預(yù)測(cè)逐漸穩(wěn)定,修正損失函數(shù)發(fā)揮作用,保證Li>L1,第一次池化得到的特征信息保持最佳利用。
最后聯(lián)合修正損失函數(shù)以及分類損失函數(shù),得到整體損失表達(dá)式:
Loss=ρLCR+(1-ρ)LC
(13)
其中ρ表示為可學(xué)習(xí)參數(shù)。
本文算法的實(shí)驗(yàn)硬件環(huán)境為Intel Core i5-12400F、16 GB內(nèi)存,GPU為NVIDIA GE-FORCE RTX 3060;軟件環(huán)境為L(zhǎng)inux Ubuntu 18.04操作系統(tǒng)、CUDA 10.1、Pytorch 1.6、Python 3.7。
訓(xùn)練和測(cè)試的實(shí)驗(yàn)參數(shù)設(shè)置為:訓(xùn)練迭代次數(shù)為250次,Batch Size設(shè)置為32或16,Batch Size的大小會(huì)影響顯存的消耗以及模型訓(xùn)練的收斂速度,本文實(shí)驗(yàn)中Batch Size會(huì)根據(jù)整體參數(shù)進(jìn)行對(duì)應(yīng)的調(diào)整。選擇隨機(jī)梯度下降法[17]作為網(wǎng)絡(luò)的優(yōu)化器,將動(dòng)量設(shè)置為0.9,采用余弦退火法[18]將學(xué)習(xí)率從0.1降低到0.001。每個(gè)全連接層后都加入了dropout層,比例設(shè)置為0.5,使用ReLU激活函數(shù),防止訓(xùn)練過(guò)程中出現(xiàn)過(guò)擬合。
經(jīng)過(guò)訓(xùn)練的模型在測(cè)試集中進(jìn)行測(cè)試得出最終的總體準(zhǔn)確率以及平均準(zhǔn)確率,整體準(zhǔn)確率Aoacc(overall accuracy)和平均準(zhǔn)確率Amacc(mean accuracy)表示如下:
(14)
(15)
其中,TP為真陽(yáng)性,表示實(shí)際為真,預(yù)測(cè)也為真的樣本數(shù);FP為假陽(yáng)性,表示實(shí)際為假但預(yù)測(cè)為真的樣本數(shù);TN為真陰性,表示實(shí)際為假預(yù)測(cè)也為假的樣本數(shù);FN為假陰性,表示實(shí)際為真但是卻預(yù)測(cè)為假的樣本數(shù)。
為了方便文中提出的點(diǎn)云分類模型實(shí)驗(yàn)數(shù)據(jù)與其他主流模型作對(duì)比,本文選擇在ModelNet40數(shù)據(jù)集[18]上進(jìn)行訓(xùn)練和測(cè)試。該數(shù)據(jù)集共有40個(gè)類別,含12311個(gè)CAD模型,其中有9842個(gè)物體用于訓(xùn)練,2469個(gè)物體用于模型測(cè)試,該數(shù)據(jù)集中每個(gè)物體都有2048個(gè)點(diǎn)的三維坐標(biāo)。其中部分實(shí)例展示在圖6中,圖中的飛機(jī)、鋼琴和汽車等三維模型特征明顯,在網(wǎng)絡(luò)模型中較容易被區(qū)分。但長(zhǎng)椅和椅子的模型相似度較高,需要能提取更精確特征信息的網(wǎng)絡(luò)模型才能準(zhǔn)確的區(qū)分。本文實(shí)驗(yàn)僅使用采樣點(diǎn)的(x,y,z)坐標(biāo)作為輸入,采用隨機(jī)旋轉(zhuǎn)、縮放以及逐點(diǎn)抖動(dòng)的方式進(jìn)行數(shù)據(jù)增強(qiáng)。
圖6 三維點(diǎn)云模型可視化
4.3.1 分類結(jié)果分析
為了驗(yàn)證本文提出算法的優(yōu)勢(shì),在ModelNet40數(shù)據(jù)集上與目前主流的點(diǎn)云分類模型DGCNN、PoinNet++、PointCNN等進(jìn)行分類精度的對(duì)比,結(jié)果如表1所示。表中不同模型的輸入的數(shù)據(jù)形式不同,其中Voxels表示使用體素作為輸入,View表示使用多視圖作為輸入,Points+Noraml表示使用三維坐標(biāo)和法線向量作為輸入,本文實(shí)驗(yàn)僅使用點(diǎn)的三維坐標(biāo)信息作為輸入。從實(shí)驗(yàn)結(jié)果可以看到,本文提出算法整體的分類精度達(dá)到93.3 %,平均分類精度為90.4 %,相比于其他點(diǎn)云分類模型,本文模型在分類精度上有明顯提升。
表1 不同模型在ModelNet40數(shù)據(jù)集上的分類精度
對(duì)比使用多視圖或體素作為輸入的MVCNN和VoxNet模型,本文提出的方法直接將原始點(diǎn)作為輸入,可以更高效的提取點(diǎn)云特征,減少了將數(shù)據(jù)轉(zhuǎn)化為二維圖像或體素形式造成的信息丟失,使整體準(zhǔn)確率有3.2 %~8.8 %的提升。相比于同樣使用點(diǎn)作為輸入的PointNet++和PointNet模型,本文模型不僅提取了每個(gè)單獨(dú)點(diǎn)的特征信息,還考慮到了點(diǎn)與點(diǎn)之間的關(guān)聯(lián)信息,加強(qiáng)了對(duì)局部特征信息的提取,在總體精度上有1.6 %~3.3 %提升。對(duì)比于DGCNN算法模型,本文模型考慮到不同語(yǔ)義部分點(diǎn)對(duì)差異性,使用固定參數(shù)卷積無(wú)法提取到準(zhǔn)確的特征信息,本文中使用根據(jù)點(diǎn)對(duì)特征學(xué)習(xí)獲得的自適應(yīng)卷積進(jìn)行特征提取,進(jìn)一步增強(qiáng)了提取局部特征的能力,使整體精度有0.7 %的提升。對(duì)比于增加了法向量信息作為輸入的SpiderCNN以及融入了注意力機(jī)制的Point Transformer和DTNet模型,本文模型沒(méi)有通過(guò)增加輸入或采用更復(fù)雜且更耗費(fèi)計(jì)算資源的特征提取方法來(lái)提高分類精度,而是采用多層最大池化更高效的利用特征信息,提高分類精度的同時(shí)不會(huì)額外增加模型復(fù)雜度,讓整體精度有0.4 %~0.9 %的提升。通過(guò)對(duì)比實(shí)驗(yàn)表明,本文提出的模型與經(jīng)典模型或當(dāng)前主流的點(diǎn)云分類模型比較,都有著突出的表現(xiàn),充分說(shuō)明本文模型的實(shí)際可行性。
4.3.2 消融實(shí)驗(yàn)
為了驗(yàn)證本文提出的動(dòng)態(tài)自適應(yīng)圖卷積及多層最大池化模塊在三維點(diǎn)云分類任務(wù)中的有效性,構(gòu)建了4組模型的自身消融對(duì)比實(shí)驗(yàn)進(jìn)行驗(yàn)證,使用不同模塊的研究結(jié)果如表2所示。
表2 不同模塊的消融實(shí)驗(yàn)
表中“√”表示該方法被采用,“×”表示沒(méi)有采用該方法。模型A作為對(duì)比實(shí)驗(yàn)的基礎(chǔ)模型,采用圖卷積提取特征,僅使用一次最大池化聚合特征信息。模型B在模型A的基礎(chǔ)上增加了本文提出的動(dòng)態(tài)自適應(yīng)圖卷積進(jìn)行特征提取。模型C在模型A的基礎(chǔ)上增加了多層最大池化模塊,增加卷積層提取的局部特征的利用率。模型D在模型A的基礎(chǔ)上同時(shí)增加了動(dòng)態(tài)自適應(yīng)圖卷積和多層最大池化模塊。通過(guò)對(duì)比實(shí)驗(yàn)可以得到,采用可以提取更精確局部特征的動(dòng)態(tài)自適應(yīng)圖卷積模塊后,模型的整體精度提高了0.3 %,平均精度提高了0.8 %。采用多層最大池化后,將提取的特征更高效的利用,模型整體精度提高了0.4 %。同時(shí)加入動(dòng)態(tài)自適應(yīng)圖卷積及多層最大池化模型,模型的整體精度提高了0.9 %,平均精度提高了2.1 %。實(shí)驗(yàn)結(jié)果表明,本文提出的2個(gè)模塊均可明顯提升模型的分類精度。
4.3.3 池化層數(shù)測(cè)試
為了研究多層最大池化(MMPooling)模塊中使用不同層數(shù)對(duì)模型分類精度的影響,本文在ModelNet40數(shù)據(jù)集上分別使用(1、2、3、4)層最大池化,實(shí)驗(yàn)結(jié)果如表3所示。
表3 最大池化層數(shù)測(cè)試
表中層數(shù)為1表示未使用多層最大池化模塊,僅用一次最大池化聚合特征,僅保留一組特征信息,無(wú)法充分利用經(jīng)過(guò)復(fù)雜計(jì)算得到的局部結(jié)構(gòu)信息。當(dāng)使用最大池化層數(shù)增到2層,可以用于分類的特征信息增加,模型的整體精度提高了0.2 %。當(dāng)采用3層最大池化聚合特征,進(jìn)一步提高由復(fù)雜卷積計(jì)算得到的特征信息的利用率,對(duì)比僅使用一層最大池化,整體精度提高了0.7 %。但當(dāng)使用的最大池化層數(shù)繼續(xù)增加,會(huì)造成聚合過(guò)多冗余信息,從而干擾最后的分類結(jié)果,無(wú)法提高模型的分類精度。實(shí)驗(yàn)結(jié)果表明,使用最大池化的層數(shù)不同會(huì)對(duì)實(shí)驗(yàn)結(jié)果產(chǎn)生影響,合適的層數(shù)可以顯著提高模型性能,實(shí)驗(yàn)中三層效果最佳,因此本文使用三層最大池化。
4.3.4 超參數(shù)實(shí)驗(yàn)
本文使用KNN算法構(gòu)建有向圖結(jié)構(gòu),其中的超參數(shù)K值決定有向圖中節(jié)點(diǎn)個(gè)數(shù),為了研究K大小對(duì)點(diǎn)云分類模型準(zhǔn)確率的影響,本文設(shè)置了在同樣參數(shù)環(huán)境下,選擇不同K值(K為10、15、20、25、30、35)在ModelNet40數(shù)據(jù)集上進(jìn)行測(cè)試,分類精度如圖7所示。由圖中的數(shù)據(jù)可以發(fā)現(xiàn),當(dāng)K值較小時(shí),構(gòu)建的有向圖中節(jié)點(diǎn)個(gè)數(shù)少,導(dǎo)致無(wú)法充分提取中心點(diǎn)與其相鄰節(jié)點(diǎn)的特征。但當(dāng)K值過(guò)大時(shí),鄰居節(jié)點(diǎn)的數(shù)量過(guò)多會(huì)產(chǎn)生大量冗余信息,局部領(lǐng)域的幾何結(jié)構(gòu)被破壞,導(dǎo)致點(diǎn)云模型分類精度下降,同時(shí)還會(huì)增加網(wǎng)絡(luò)模型的訓(xùn)練時(shí)間。當(dāng)K=20時(shí),本文模型的性能達(dá)到最優(yōu),因此一個(gè)合適的K值對(duì)模型的分類精度有至關(guān)重要的影響。
圖7 K值對(duì)分類精度的影響
4.3.5 模型魯棒性實(shí)驗(yàn)
為了驗(yàn)證本文網(wǎng)絡(luò)模型對(duì)稀疏輸入和遮擋問(wèn)題的魯棒性,在ModelNet40數(shù)據(jù)集上采用隨機(jī)依次減少25 %的采樣點(diǎn)(1024、768、512、256)。稀疏三維點(diǎn)云模型可視化如圖8所示,圖8(a)不減少輸入點(diǎn)數(shù),物體的結(jié)構(gòu)特征可以充分地展現(xiàn)出來(lái),圖中8(b)、(c)、(d)依次減少輸入點(diǎn)數(shù),物體的結(jié)構(gòu)逐漸模糊,因此需要網(wǎng)絡(luò)模型有更強(qiáng)提取特征信息的能力,才能在減少采樣點(diǎn)情況下可以準(zhǔn)確分類。
圖8 稀疏點(diǎn)云可視化
實(shí)驗(yàn)中使用表2中模型D與DGCNN等模型進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果如圖9所示。從圖中可以看出,與同樣使用圖卷積的DGCNN模型比較,隨著采樣點(diǎn)數(shù)減少,本文模型的整體精度從93.3 %下降到91.5 %,下降了1.8 %,下降趨勢(shì)較平緩,DGCNN模型從92.6 %下降到47.1 %,下降趨勢(shì)較明顯。對(duì)比針對(duì)單個(gè)點(diǎn)提取特征PointNet和PointNet++網(wǎng)絡(luò)模型,減少采樣點(diǎn)數(shù)對(duì)獲取局部特征影響較小,PointNet++模型整體精度從91.7 %下降到89.9 %,PointNet模型整體精度從90.0 %下降到85.8 %,本文模型整體精度始終高于PoinNet和PointNet++模型,且隨著采樣點(diǎn)減少,分類精度差距逐漸增加。這說(shuō)明在面對(duì)遮擋和稀疏點(diǎn)輸入問(wèn)題時(shí),能夠識(shí)別不同語(yǔ)義點(diǎn)信息和高效利用提取的局部特征可以使網(wǎng)絡(luò)具有較強(qiáng)的魯棒性。
圖9 采樣點(diǎn)密度對(duì)分類精度的影響
為了提高點(diǎn)云分類模型對(duì)不同語(yǔ)義區(qū)域點(diǎn)對(duì)特征的提取能力,本文提出了一種集改進(jìn)圖卷積和多層池化的點(diǎn)云分類模型。該模型通過(guò)學(xué)習(xí)不同點(diǎn)的特征,生成可動(dòng)態(tài)調(diào)整點(diǎn)對(duì)關(guān)系的卷積核,以處理圖結(jié)構(gòu)中不同語(yǔ)義區(qū)域的點(diǎn)對(duì),捕獲更精確的局部特征信息。此外,該模型使用多層最大池化來(lái)聚合高維特征以得到全局特征,從而更高效地利用局部特征,同時(shí)減少冗余信息的產(chǎn)生,提高模型的分類準(zhǔn)確度。在公共數(shù)據(jù)集ModelNet40上的實(shí)驗(yàn)結(jié)果表明,相較于目前經(jīng)典的點(diǎn)云分類模型,本文模型的分類精度提高了0.7 %~3.3 %。消融實(shí)驗(yàn)、超參數(shù)實(shí)驗(yàn)以及逐漸減少采樣點(diǎn)數(shù)實(shí)驗(yàn)進(jìn)一步驗(yàn)證了本文對(duì)圖卷積和池化層的改進(jìn)可以提高點(diǎn)云分類任務(wù)的精度,并增加模型的魯棒性。然而,更有效的卷積層和池化層會(huì)使網(wǎng)絡(luò)模型更加復(fù)雜,模型的參數(shù)數(shù)量也會(huì)隨之增加。因此,未來(lái)的研究將注重于在不降低分類精度的前提下,實(shí)現(xiàn)模型更輕量化的目標(biāo)。