朱天曉,閆豐亭
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
隨著深度傳感器和相關(guān)掃描軟件的發(fā)展,三維點(diǎn)云數(shù)據(jù)的類型和數(shù)量顯著增長。點(diǎn)云數(shù)據(jù)被廣泛應(yīng)用于定位繪圖[1]、醫(yī)學(xué)影像[2]等領(lǐng)域,因此基于三維點(diǎn)云的分類、分割等技術(shù)的應(yīng)用需求也大大提升。傳統(tǒng)的點(diǎn)云分類方法往往需要手工設(shè)計(jì)特征提取方式,為了有效識(shí)別點(diǎn)云,基于數(shù)據(jù)驅(qū)動(dòng)的深度學(xué)習(xí)方法[3]被提出用于點(diǎn)云特征學(xué)習(xí)。
Qi等[4]提出了一種深度學(xué)習(xí)網(wǎng)絡(luò)PointNet,直接處理點(diǎn)云數(shù)據(jù),有效解決了點(diǎn)云無序性問題。該方法使用T-Net模塊對點(diǎn)云數(shù)據(jù)進(jìn)行仿射變換,然后使用多層感知機(jī)(Multilayer Perceptron,MLP)對點(diǎn)云每個(gè)點(diǎn)進(jìn)行特征提取,并使用最大池化函數(shù)提取全局特征。由于PointNet只對每個(gè)點(diǎn)提取特征,沒有定義點(diǎn)云鄰域,因此該方法只考慮了點(diǎn)云的全局特征,沒有考慮局部特征。PointNet++[5]是對該方法的改進(jìn),該方法通過對點(diǎn)云進(jìn)行采樣并使用球查詢建立鄰域,在每個(gè)鄰域使用PointNet提取局部特征并與全局特征相結(jié)合,取得了更好的效果。Li等[6]提出了PointCNN,引入 X-Conv模塊實(shí)現(xiàn)無序點(diǎn)云的規(guī)則化,使常規(guī)的卷積操作可以應(yīng)用于點(diǎn)云數(shù)據(jù)。PointCNN證明了特征提取結(jié)構(gòu)對點(diǎn)云學(xué)習(xí)的重要性,獲得了較高的分類準(zhǔn)確率。但是該方法無法有效聚合全局特征,魯棒性較差。顧礫[7]等將PointCNN與MVCNN[8]相結(jié)合,提出了一種基于多模態(tài)特征融合的三維點(diǎn)云分類方法。該方法將點(diǎn)云數(shù)據(jù)與圖像數(shù)據(jù)作為輸入,對PointCNN 提取的點(diǎn)云特征與CNN 提取的圖像特征進(jìn)行加權(quán)融合,從而得到最終分類結(jié)果。該方法使用ResNext101[9]作為CNN 模型,參數(shù)量較大,并且只能選擇一個(gè)固定視圖的二維圖像作為輸入,無法適用于純點(diǎn)云數(shù)據(jù),泛化性不高。Wang等[10]提出了動(dòng)態(tài)圖卷積神經(jīng)網(wǎng)絡(luò)(Dynamic Graph CNN,DGCNN),在原始點(diǎn)云空間中構(gòu)造圖結(jié)構(gòu)用于特征提取,其核心模塊邊卷積可以動(dòng)態(tài)聚合鄰域邊的特征。但是DGCNN會(huì)構(gòu)造很多無意義的圖結(jié)構(gòu),計(jì)算復(fù)雜度較高,同時(shí)該方法在稀疏點(diǎn)云上性能下降嚴(yán)重,魯棒性不高。
為了提高點(diǎn)云深度學(xué)習(xí)分類模型對有效特征的提取能力,增強(qiáng)模型魯棒性,本文提出了一種結(jié)合偏移自注意力機(jī)制和殘差連接的點(diǎn)云分類網(wǎng)絡(luò)。本文在PointCNN方法的基礎(chǔ)上做出改進(jìn),引入了偏移自注意力模塊,更好地關(guān)注于X-Conv模塊輸出的有效特征。引入殘差網(wǎng)絡(luò)的思想,構(gòu)造殘差連接進(jìn)行特征融合,可以有效利用點(diǎn)云的多尺度特征。經(jīng)分類實(shí)驗(yàn)驗(yàn)證,本文方法在ModelNet40[11]數(shù)據(jù)集上取得了較好的分類效果,分類準(zhǔn)確率高于現(xiàn)有的大多數(shù)方法。經(jīng)魯棒性實(shí)驗(yàn)驗(yàn)證,本文方法對于稀疏點(diǎn)云和噪聲點(diǎn)云有較好的適應(yīng)性,相比于PointCNN,魯棒性有了顯著提升,并且優(yōu)于其他對比方法。
點(diǎn)云數(shù)據(jù)具有無序性,若不考慮點(diǎn)云的顏色、法向量等因素,只考慮坐標(biāo),則點(diǎn)云數(shù)據(jù)可以用一個(gè)n×3的矩陣表示。對n個(gè)點(diǎn)進(jìn)行讀入,一共有n!種組合情況。要想在點(diǎn)云數(shù)據(jù)上使用卷積操作,必須解決點(diǎn)云無序性問題。圖1中i與ii是一組讀入順序相同的點(diǎn),但是坐標(biāo)不同;ii與iii是一組坐標(biāo)相同的點(diǎn),但是讀入順序不同。因此,點(diǎn)云上理想的卷積操作需要提取出i、ii不同的特征,提取出ii、iii相同的特征。
圖1 點(diǎn)云無序性
PointCNN[6]可以一定程度上解決點(diǎn)云的輸入順序?qū)矸e操作的影響,提出的X-Conv模塊能將特定輸入順序的點(diǎn)云數(shù)據(jù)轉(zhuǎn)換為與順序無關(guān)的特征,PointCNN結(jié)構(gòu)如圖2所示。
圖2 PointCNN結(jié)構(gòu)
X-Conv模塊使用最遠(yuǎn)點(diǎn)采樣(Farthest Point Sampling,FPS)和K鄰近(K-nearest neighbor,KNN)算法計(jì)算點(diǎn)云鄰域,并將鄰域內(nèi)點(diǎn)的坐標(biāo)變換到該點(diǎn)的局部坐標(biāo)系。通過 MLP學(xué)習(xí)得到變換矩陣X,對特征矩陣進(jìn)行變換處理,可以對變換后的特征矩陣應(yīng)用典型的卷積運(yùn)算。X-Conv模塊使得點(diǎn)云數(shù)據(jù)變少,但每個(gè)點(diǎn)都包含了更豐富的高維信息。同時(shí)X-Conv模塊還引入了膨脹卷積的思想,降低點(diǎn)云數(shù)目的減少對特征提取的影響,可以保持網(wǎng)絡(luò)的深度和感受野的大小。X-Conv模塊中參數(shù)N為輸出點(diǎn)數(shù),C為輸出特征維度,K為鄰域大小,D為膨脹系數(shù),具體計(jì)算過程將在3.1節(jié)描述。
自注意力(Self Attention,SA)機(jī)制由Vaswani 等[12]提出,并迅速在自然語言處理領(lǐng)域取得了巨大進(jìn)展。為了增加感受野大小,Wang[13]等將自注意力機(jī)制引入計(jì)算機(jī)視覺領(lǐng)域,使用的SA模塊結(jié)構(gòu)如圖3所示。
圖3 自注意力模塊
以2D圖像為例,給定一個(gè)特征矩陣Fin∈C×H×W,自注意力機(jī)制首先通過線性變換得到查詢矩陣、鍵矩陣和值矩陣,Q,K,V∈C′×M,M=H×W。自注意力矩陣由下式計(jì)算得出:
A=(a)i,j=Softmax(Q·KT)
(1)
其中ai,j是第i個(gè)和第j個(gè)元素之間的注意力權(quán)重。最后可得注意力特征:
FSA=A·V
(2)
自注意力機(jī)制作為一種強(qiáng)大的全局特征學(xué)習(xí)機(jī)制,已經(jīng)發(fā)展出了多種變體[14],在很多深度學(xué)習(xí)網(wǎng)絡(luò)中都有應(yīng)用[15]。由于SA模塊中的查詢、鍵和值矩陣都是由輸入特征Fin線性變換得到的,它們都是順序無關(guān)的。因此,整個(gè)自注意力的計(jì)算過程是置換不變的,適用于點(diǎn)云數(shù)據(jù)。
隨著卷積神經(jīng)網(wǎng)絡(luò)的深度加深,網(wǎng)絡(luò)將會(huì)面臨性能退化的問題。針對該問題,He 等[16]提出的殘差網(wǎng)絡(luò)(Residual network,ResNet),引入了殘差連接,讓輸入特征可以跨越多個(gè)卷積層傳播,同時(shí)反向傳播的梯度也可以跨越多層傳播,有效避免了梯度消失現(xiàn)象,一定程度上解決了因深度加深引起的網(wǎng)絡(luò)性能退化的問題。ResNet中提出的兩種殘差模塊如圖4所示。
圖4 殘差模塊
模塊(a)的公式表達(dá)為H(X)=F(X)+X,因?yàn)樵撃K的輸入、輸出的維度相同,因此短連接的輸出為X。模塊(b)的公式表達(dá)為H(X)=F(X)+G(X),該模塊的輸入、輸出的維度不同,因此短連接的輸出為G(X),主要作用是變換特征矩陣的大小與維度,通過1×1卷積實(shí)現(xiàn)。
王江安等[17]在DGCNN的基礎(chǔ)上,引入殘差連接,提出了Linked-DGCNN。該方法通過增加卷積層數(shù),獲得更深層的點(diǎn)云特征;同時(shí)引入殘差連接,連接不同網(wǎng)絡(luò)層的輸出特征。該方法獲得了較高的分類準(zhǔn)確率,表明在點(diǎn)云網(wǎng)絡(luò)中引入殘差連接有利于提升網(wǎng)絡(luò)性能。
本文對PointCNN網(wǎng)絡(luò)進(jìn)行改進(jìn),提出了一種結(jié)合偏移自注意力機(jī)制和殘差連接的深度學(xué)習(xí)網(wǎng)絡(luò),結(jié)構(gòu)如圖5所示。在X-Conv模塊后引入了偏移自注意力模塊(Offset Attention,OA),可以更好地關(guān)注于特征矩陣的有效區(qū)域。同時(shí)引入了殘差網(wǎng)絡(luò)的思想連接不同層次特征進(jìn)行融合,可以有效利用點(diǎn)云的多尺度特征。
圖5 本文網(wǎng)絡(luò)結(jié)構(gòu)
X-Conv模塊是PointCNN[6]的核心模塊,可以一定程度上實(shí)現(xiàn)無序點(diǎn)云的規(guī)則化,使常規(guī)的卷積操作可以應(yīng)用在點(diǎn)云數(shù)據(jù)上。X-Conv模塊結(jié)構(gòu)如圖6所示。
圖6 X-Conv模塊
X-Conv模塊的輸入數(shù)據(jù)為坐標(biāo)矩陣Pin=[p1,1,…,p1,N1]T和特征矩陣Fin=[f1,1,…,f1,N1]T;p1,i為代表輸入數(shù)據(jù)第i個(gè)點(diǎn)的空間坐標(biāo)(x,y,z),p1,i∈3;f1,i代表第i個(gè)點(diǎn)的特征,f1,i∈C1;N1為輸入點(diǎn)個(gè)數(shù),C1為特征維度。
第一層X-Conv模塊會(huì)將輸入的坐標(biāo)矩陣Pin作為特征矩陣Fin輸入MLP(其他層的X-Conv模塊會(huì)將特征矩陣Fin輸入MLP),學(xué)習(xí)生成新的特征矩陣F:
F=MLP(Fin)
(3)
對坐標(biāo)矩陣Pin使用FPS計(jì)算采樣坐標(biāo)矩陣P′,采樣點(diǎn)數(shù)為P:
P′=FPS(Pin,P)
(4)
X-Conv模塊引入膨脹卷積的思想,使用KNN算法對矩陣P′、Pin計(jì)算膨脹鄰域,在膨脹鄰域內(nèi)采樣選擇最終鄰域的索引Index,鄰域大小為K,膨脹系數(shù)為D,膨脹鄰域大小為K×D:
Index=KNN(P′,Pin,K,D)
(5)
然后根據(jù)Index對坐標(biāo)矩陣Pin和特征矩陣F進(jìn)行采樣、變換得到局部矩陣Plocal和Flocal。對Flocal使用卷積和MLP學(xué)習(xí)得到變換矩陣X:
X=MLP(Conv(Plocal))
(6)
其中,Conv為卷積算子。
對矩陣Plocal使用MLP進(jìn)行學(xué)習(xí),同時(shí)將結(jié)果與Flocal進(jìn)行拼接;將拼接矩陣與變換矩陣X相乘,輸入卷積得到X-Conv模塊的輸出特征:
Fout=Conv(Cat(MLP(Plocal),Flocal)·X)
(7)
其中,Conv為卷積算子,Cat為拼接算子。
最后X-Conv模塊將P′作為Pout,并與Fout以out的形式一一對應(yīng)輸出。
在自注意力機(jī)制的基礎(chǔ)上,Guo等[18]提出了一種改進(jìn)的偏移自注意力模塊(Offset Attention,OA)。OA模塊計(jì)算注意力特征與輸入特征的差值,將其與輸入特征相加,作為輸出特征。
本文模型引入了4個(gè)OA模塊,在每個(gè)X-Conv模塊后都連接了OA模塊,其維度分別為48、96、192和384。OA模塊結(jié)構(gòu)如圖7所示。
圖7 偏移自注意力模塊
Q、K、V分別為輸入特征Fin∈N×de通過線性變換生成的查詢矩陣、鍵矩陣和值矩陣:
(Q,K,V)=Fin·(Wq,Wk,Wv)
(8)
其中,Q,K∈N×da,V∈N×de,Wq,Wk∈de×da,Wv∈de×de。Wq,Wk和Wv是共享的可學(xué)習(xí)的變換矩陣,da是查詢矩陣和鍵矩陣的維度,de是值矩陣的維度。
然后計(jì)算查詢矩陣和鍵矩陣的乘積,得到注意力權(quán)重:
(9)
對注意力權(quán)重進(jìn)行Softmax和l1正則化處理得到A=(α)i,j:
(10)
(11)
式(10)中,exp是以自然常數(shù)e為底的指數(shù)函數(shù)。將注意力權(quán)重與值矩陣相乘得到自注意力特征:
Fsa=A·V
(12)
最后,將輸入特征Fin與注意力特征Fsa相減,將差值輸入 LBR 網(wǎng)絡(luò)(分別為Linear、BatchNorm和ReLU層),再與輸入特征Fin相加,得到整個(gè)OA層的輸出特征Fout:
Fout=OA(Fin)=LBR(Fin-Fsa)+Fin
(13)
OA模塊對點(diǎn)云數(shù)據(jù)有較好的適應(yīng)性,相比于SA模塊,更有助于提升模型的分類準(zhǔn)確率。本文將在4.5節(jié)中證明該模塊的有效性。
本文引入的OA模塊中包含了可學(xué)習(xí)的LBR 層,相當(dāng)于增加了模型深度。因此,可以引入殘差連接,讓輸入特征跨越多個(gè)X-Conv模塊傳播,對不同尺度的特征進(jìn)行融合。
為了有效利用X-Conv模塊和OA模塊學(xué)習(xí)到的特征,可以在OA模塊上建立殘差連接。本文模型包含4個(gè)OA模塊,每個(gè)模塊的輸出特征數(shù)目和特征維度均不相同,特征數(shù)目分別為1024、384、128、128,特征維度分別為48、96、192、384。最多可以引入3個(gè)殘差連接,并且需要使用1×1卷積Conv1d模塊對特征進(jìn)行數(shù)目和維度的對齊。
可以使用的Conv1d模塊分別為Conv1d(48,384,stride=8)、Conv1d(96,384,stride=3)、Conv1d(192,384,stride=1)。經(jīng)4.6節(jié)對比實(shí)驗(yàn)驗(yàn)證,使用后兩個(gè)Conv1d模塊構(gòu)建殘差連接時(shí),模型分類效果最好。
本文的實(shí)驗(yàn)環(huán)境為Ubuntu 18.04 LTS,CPU為Intel Xeon Silver 4210R @ 2.40 GHz,GPU配置為NVIDIA GeForce GTX 3090,實(shí)驗(yàn)框架為Jittor[19],Python版本為3.8。
為了驗(yàn)證本文模型的分類效果,本文在ModelNet40[11]數(shù)據(jù)集上進(jìn)行訓(xùn)練和評(píng)估。ModelNet40有40個(gè)類別共計(jì)12311個(gè)CAD模型,使用9843個(gè)物體作為訓(xùn)練集,2468個(gè)物體作為驗(yàn)證集,該數(shù)據(jù)集中每個(gè)物體包含1024個(gè)點(diǎn)的三維坐標(biāo),即輸入數(shù)據(jù)是維度為1024×3的矩陣。對ModelNet40中部分點(diǎn)云數(shù)據(jù)進(jìn)行可視化處理,如圖8所示。
圖8 點(diǎn)云數(shù)據(jù)
在分類實(shí)驗(yàn)中,本文使用隨機(jī)梯度下降(SGD)進(jìn)行優(yōu)化,將批處理大小設(shè)為32,動(dòng)量設(shè)為0.9,初始學(xué)習(xí)率設(shè)為0.02,學(xué)習(xí)率調(diào)整策略為MultiStepLR,采用Soft Cross Entropy Loss損失函數(shù)作為損失函數(shù)。對訓(xùn)練數(shù)據(jù)進(jìn)行了一定程度的隨機(jī)平移和放縮,實(shí)現(xiàn)對數(shù)據(jù)的增強(qiáng)。整個(gè)模型一共訓(xùn)練了300輪,使用總體分類準(zhǔn)確率(overall accuracy,oAcc)對分類模型性能進(jìn)行評(píng)估。
本文將PointNet、PointCNN、DGCNN等模型在ModelNet40數(shù)據(jù)集上的測試結(jié)果加入對比,如表1所示。實(shí)驗(yàn)結(jié)果表明,本文模型的oAcc為92.9 %,相比與其他網(wǎng)絡(luò)模型,本文模型的獲得了最高的oAcc。可見本文模型相比其他模型在ModelNet40 數(shù)據(jù)集上具有更好的分類效果。
表1 分類實(shí)驗(yàn)準(zhǔn)確率
圖9和圖10分別給出了本文分類模型的訓(xùn)練準(zhǔn)確率曲線和訓(xùn)練損失曲線。從圖中可以看出,隨著迭代次數(shù)的增加,訓(xùn)練準(zhǔn)確率不斷提高,訓(xùn)練損失不斷下降。當(dāng)?shù)螖?shù)達(dá)到250次左右時(shí),訓(xùn)練準(zhǔn)確率和訓(xùn)練損失基本穩(wěn)定,網(wǎng)絡(luò)趨于收斂,說明網(wǎng)絡(luò)中的參數(shù)已經(jīng)達(dá)到最優(yōu)。
圖9 訓(xùn)練準(zhǔn)確率曲線
圖10 訓(xùn)練損失曲線
為驗(yàn)證引入的OA模塊以及殘差連接的有效性,本文對所提模型進(jìn)行了消融實(shí)驗(yàn),實(shí)驗(yàn)設(shè)置與4.3節(jié)相同。
消融實(shí)驗(yàn)通過分別刪除OA模塊以及殘差連接驗(yàn)證其對于分類任務(wù)的有效性。從表2可以看到,初始PointCNN的oAcc為92.2 %。當(dāng)增加OA模塊時(shí),相較原模型oAcc提升了0.5 %。當(dāng)增加殘差連接時(shí),相較原模型oAcc提升了0.1 %,由于沒有增加網(wǎng)絡(luò)深度,所以只增加殘差連接時(shí)分類效果提升不明顯。當(dāng)同時(shí)增加OA模塊和殘差連接時(shí),相較原模型oAcc提升了0.7 %。實(shí)驗(yàn)結(jié)果表明同時(shí)增加OA模塊和殘差連接對于模型分類性能有著明顯的提升作用,主要原因?yàn)镺A模塊可以更好地關(guān)注于有效特征,同時(shí)殘差連接可以有效利用點(diǎn)云的多尺度特征。
表2 消融實(shí)驗(yàn)準(zhǔn)確率
本文在PointCNN基礎(chǔ)上引入OA模塊,該模塊在SA模塊上進(jìn)行了改進(jìn)。為驗(yàn)證SA模塊、OA模塊的分類效果,本文設(shè)置了注意力模塊實(shí)驗(yàn),分別在PointCNN和引入殘差連接的PointCNN上進(jìn)行對比實(shí)驗(yàn),實(shí)驗(yàn)設(shè)置與4.3節(jié)相同。
實(shí)驗(yàn)結(jié)果如表3所示??梢?引入OA模塊的PointCNN的準(zhǔn)確率比引入SA模塊的oAcc高0.2 %,引入OA模塊和殘差連接的PointCNN的oAcc比引入SA模塊和殘差連接的準(zhǔn)確率高0.4 %??梢奜A模塊和殘差連接的適應(yīng)性優(yōu)于SA模塊,更有利于提升分類效果。
表3 引入不同注意力模塊的準(zhǔn)確率
同時(shí)可見,引入SA模塊和殘差連接的PointCNN的oAcc與只引入SA模塊的oAcc相近。其原因是SA模塊沒有可學(xué)習(xí)的LBR 層,相當(dāng)于沒有增加網(wǎng)絡(luò)深度,所以引入殘差連接時(shí)對于提升oAcc效果不明顯。因此,引入OA模塊和殘差連接的方案更為合適,同時(shí)其分類準(zhǔn)確率也更高。
為有效利用不同層次OA模塊的輸出特征,本文模型在OA模塊上引入殘差連接。本文模型包含4個(gè)OA模塊,最多可以引入3個(gè)殘差連接,如表4所示。
表4 殘差模塊
為確定殘差連接添加的最優(yōu)數(shù)目,本文在ModelNet40數(shù)據(jù)集上進(jìn)行對比實(shí)驗(yàn),引入數(shù)目分別為1、2、3的殘差連接,實(shí)驗(yàn)設(shè)置與4.3節(jié)相同,實(shí)驗(yàn)結(jié)果如表5所示??梢娫谝隦es1、Res2時(shí)分類準(zhǔn)確率最高,為92.9 %,只引入Res1時(shí)分類準(zhǔn)確率為92.8 %,引入全部3個(gè)殘差連接時(shí)分類準(zhǔn)確率為92.7 %。為了進(jìn)行特征維度對齊,Res3模塊的步長設(shè)置為8,步長過大,不利于特征的提取。因此本文最后引入的殘差連接為Res1、Res2。
表5 引入不同殘差連接的準(zhǔn)確率
驗(yàn)證本文模型對于點(diǎn)云分類的魯棒性,本文在ModelNet40數(shù)據(jù)集上測試稀疏點(diǎn)云和噪聲點(diǎn)云的分類效果。
在稀疏點(diǎn)云實(shí)驗(yàn)中,點(diǎn)云的采樣點(diǎn)數(shù)量分別被設(shè)置為896、768、640、512、384,本文將原始點(diǎn)云與部分稀疏點(diǎn)云進(jìn)行可視化對比,如圖11所示。
圖11 稀疏點(diǎn)云數(shù)據(jù)
在采樣點(diǎn)數(shù)分別為896、768、640、512、384的稀疏點(diǎn)云數(shù)據(jù)上,本文模型的oAcc分別為92.4 %、91.9 %、91.3 %、90.2 %、88.4 %??梢?隨著采樣點(diǎn)數(shù)的急劇減少,本文模型的oAcc并沒有大幅度下降。相比于PointCNN,本文模型在稀疏點(diǎn)云上的oAcc平均提升了2.4 %。
本文與PointNet、PointCNN、PointConv、DGCNN在稀疏點(diǎn)云數(shù)據(jù)上的分類效果進(jìn)行對比,結(jié)果如圖12所示??梢婋S著采樣點(diǎn)數(shù)的減少,PointConv和DGCNN的oAcc大幅度下降,PointCNN的oAcc也明顯下降。由于PointNet沒有定義點(diǎn)云鄰域,因此oAcc下降幅度很小。本文模型的oAcc也有一定下降幅度,但oAcc均高于其他對比方法??梢?本文模型對稀疏點(diǎn)云具有較好的適應(yīng)性,魯棒性較高。
圖12 不同網(wǎng)絡(luò)抗稀疏性對比
在噪聲點(diǎn)云的實(shí)驗(yàn)中,通過在初始點(diǎn)云中引入噪聲來生成噪聲點(diǎn)云,分別引入了均值為0,標(biāo)準(zhǔn)差分別為0.005、0.01、0.015、0.02、0.025、0.03的高斯噪聲。本文將高斯噪聲標(biāo)準(zhǔn)差定義為噪聲強(qiáng)度,并對部分噪聲點(diǎn)云進(jìn)行可視化對比,如圖13所示。
圖13 噪聲點(diǎn)云數(shù)據(jù)
在噪聲強(qiáng)度分別0.005、0.01、0.015、0.02、0.025、0.03的噪聲點(diǎn)云上,本文模型的oAcc分別為92.5 %、91.8 %、90.8 %、88.4 %、81.8 %、72.9 %。相比于PointCNN,本文模型在噪聲點(diǎn)云上的oAcc平均提升了11.6 %。
與PointNet、PointCNN、PointConv、DGCNN在噪聲點(diǎn)云數(shù)據(jù)上的分類效果進(jìn)行對比,結(jié)果如圖14所示??梢婋S著噪聲強(qiáng)度的增加,PointCNN和PointConv的oAcc大幅度下降,本文模型和DGCNN的oAcc也下降了一定幅度。在噪聲強(qiáng)度為0.005至0.02時(shí),本文模型的oAcc高于其他對比方法;在噪聲強(qiáng)度為0.02至0.03時(shí),本文模型的oAcc基本與DGCNN持平,高于PointCNN、PointConv,但低于PointNet。PointNet由于沒有定義點(diǎn)云鄰域,只對每個(gè)點(diǎn)使用MLP進(jìn)行特征提取,所以抗噪性較好,oAcc下降幅度很小。
圖14 不同網(wǎng)絡(luò)抗噪性對比
經(jīng)過稀疏點(diǎn)云和噪聲點(diǎn)云的魯棒性實(shí)驗(yàn)驗(yàn)證,結(jié)果表明本文網(wǎng)絡(luò)的魯棒性好于PointCNN、PointConv、DGCNN方法,主要原因是引入了偏移自注意力模塊,可以有選擇性地對有效特征進(jìn)行加強(qiáng),同時(shí)引入的殘差連接可以融合不同尺度的特征,減少信息的損失。
為了提高點(diǎn)云深度學(xué)習(xí)分類模型的特征提取能力,增強(qiáng)模型魯棒性,本文提出了一種結(jié)合偏移自注意力機(jī)制和殘差連接的點(diǎn)云分類網(wǎng)絡(luò)。分類實(shí)驗(yàn)結(jié)果表明,本文網(wǎng)絡(luò)在ModelNet40分類數(shù)據(jù)集上達(dá)到了較高的分類準(zhǔn)確率。同時(shí)本文消融實(shí)驗(yàn)表明,引入偏移自注意力機(jī)制和殘差連接是有效的,可以提高點(diǎn)云分類準(zhǔn)確率。本文魯棒性實(shí)驗(yàn)表明,本文模型對稀疏點(diǎn)云和噪聲點(diǎn)云有較好的適應(yīng)性。本文網(wǎng)絡(luò)相比于PointCNN,在稀疏點(diǎn)云上的總體分類準(zhǔn)確率提升了2.4 %,在噪聲點(diǎn)云上提升了11.6 %;與PointNet、PointConv、DGCNN網(wǎng)絡(luò)相比,本文模型也有較高的分類準(zhǔn)確率,表明本文模型魯棒性較好。
下一步的工作是完成點(diǎn)云分割任務(wù),PointCNN分割模型是基于編解碼架構(gòu)的,參數(shù)量較大,如何設(shè)計(jì)一個(gè)輕量級(jí)的結(jié)合注意力機(jī)制的分割模型是接下來的研究重點(diǎn)。