蘆新宇 楊 冰 葉海良 曹飛龍
隨著三維傳感器和采集技術(shù)的快速發(fā)展,以及點(diǎn)云在機(jī)器人操作[1]、自主駕駛[2]和虛擬現(xiàn)實(shí)[3]等方向的廣泛應(yīng)用,基于點(diǎn)云分析的各種任務(wù)(包括分類(lèi)[4],分割[5],識(shí)別[6]和補(bǔ)全[7]等)已成為活躍的研究課題.在點(diǎn)云分析中,點(diǎn)云分類(lèi)是一項(xiàng)基本且具有挑戰(zhàn)性的任務(wù),關(guān)鍵在于能否提取到豐富且具有較高判別能力的特征,這也受到學(xué)者們的廣泛關(guān)注.
事實(shí)上,點(diǎn)云是由一組點(diǎn)構(gòu)成,每個(gè)點(diǎn)由三維坐標(biāo)和可能的屬性(如顏色和法線等)表示.然而,由于點(diǎn)云不規(guī)則和無(wú)序的性質(zhì),現(xiàn)階段點(diǎn)云分析任務(wù)面臨如下挑戰(zhàn).1)點(diǎn)云的性質(zhì)導(dǎo)致常規(guī)的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)無(wú)法直接對(duì)其進(jìn)行處理.2)點(diǎn)云通常會(huì)經(jīng)歷較大的幾何變換,如何滿足變換不變性對(duì)于處理和分析3D點(diǎn)云也尤為重要.
為了解決上述問(wèn)題,學(xué)者們提出許多有效方法,主要分為如下4種.1)基于體素的方法.Maturana等[8]將3D點(diǎn)采樣到體素網(wǎng)格中,再使用3D CNN處理該網(wǎng)絡(luò).2)基于投影的方法.Su等[9]將點(diǎn)云投影成80個(gè)視圖,轉(zhuǎn)換為規(guī)則數(shù)據(jù),再使用2D CNN進(jìn)行處理.3)基于點(diǎn)的方法.Qi等[4]提出PointNet,使用逐點(diǎn)多層感知器(Multi-layer Perceptron, MLP)和最大池化操作聚合全局信息,執(zhí)行分類(lèi)任務(wù),但缺少局部信息.Qi等[5]又提出PointNet++,針對(duì)缺少局部信息的問(wèn)題應(yīng)用分層結(jié)構(gòu),采用k近鄰算法(k-Nearest Neighbor, KNN)分組,并在特征學(xué)習(xí)后緊跟著執(zhí)行最大池化操作,從而捕獲局部區(qū)域信息.然而PointNet++僅將局部特征的最大值進(jìn)行聚合,未能充分利用局部區(qū)域內(nèi)的信息.針對(duì)PointNet中缺少局部信息的問(wèn)題,侯向丹等[10]提出基于圖卷積網(wǎng)絡(luò)的三維點(diǎn)云分類(lèi)分割模型,融合鄰域信息與單個(gè)點(diǎn)信息,解決缺少局部信息的問(wèn)題,提高分類(lèi)與分割的準(zhǔn)確率.Xu等[11]提出SpiderCNN,Li等[12]提出PointCNN,都是基于局部幾何信息定義點(diǎn)云上的卷積運(yùn)算,而不是使用對(duì)稱(chēng)函數(shù)進(jìn)行處理.4)基于圖的方法.Simonovsky等[13]提出ECC(Edge-Condi-tioned Convolution),在點(diǎn)云特征學(xué)習(xí)的過(guò)程中加入圖方法,有效處理非結(jié)構(gòu)化數(shù)據(jù).Wang等[14]提出DGCNN(Dynamic Graph CNN),在保持排列不變性的同時(shí)捕獲局部幾何結(jié)構(gòu),并使用每層特征空間中的KNN重構(gòu)圖像.梁振明等[15]提出基于多尺度的動(dòng)態(tài)圖卷積網(wǎng)絡(luò),利用最遠(yuǎn)點(diǎn)采樣方法和不同尺度的聚合方式,降低模型的復(fù)雜度和參數(shù)量.杜子金等[16]提出基于殘差邊卷積的模塊,全面考慮點(diǎn)云的局部特征與全局特征的有機(jī)結(jié)合.
近年來(lái),人們對(duì)有效局部特征的學(xué)習(xí)也進(jìn)行大量研究.眾所周知,目前較優(yōu)的特征學(xué)習(xí)方法是圍繞每個(gè)采樣點(diǎn)查詢局部組,再構(gòu)建基于圖的學(xué)習(xí)方式或定義卷積運(yùn)算,其中也綜合考慮全局結(jié)構(gòu)和局部結(jié)構(gòu).盡管各種特征學(xué)習(xí)方法均已取得較優(yōu)的分類(lèi)性能,但它們大多只考慮相鄰區(qū)域中相似結(jié)構(gòu)點(diǎn)的局部信息交互,在交互中僅使用最大池化操作保留單一特征.這也說(shuō)明一個(gè)問(wèn)題,即在傳統(tǒng)方法中忽視遠(yuǎn)距離相似結(jié)構(gòu)點(diǎn)中的非局部幾何信息,而融合整體的幾何信息可有效為分類(lèi)任務(wù)提供辨別線索.
為了解決此問(wèn)題,受幾何共享網(wǎng)絡(luò)[17]的啟發(fā),本文提出基于局部-非局部交互卷積的3D點(diǎn)云分類(lèi)算法.首先,設(shè)計(jì)局部-非局部交互卷積模塊,通過(guò)兩個(gè)分支分別捕獲采樣點(diǎn)的局部特征和非局部特征.同時(shí),為了緩解單分支鄰域在表示封閉區(qū)域時(shí)存在的冗余問(wèn)題,穩(wěn)定點(diǎn)在高維特征下的泛化能力,將兩個(gè)分支進(jìn)行不同特征的交互增強(qiáng).再者,加入殘差連接[18],在層與層之間傳輸信息,進(jìn)行相同特征的交互增強(qiáng),訓(xùn)練更深入穩(wěn)定的網(wǎng)絡(luò),緩解因網(wǎng)絡(luò)層數(shù)加深而產(chǎn)生的網(wǎng)絡(luò)退化問(wèn)題.此外,考慮到原始數(shù)據(jù)的全局特征在學(xué)習(xí)過(guò)程中會(huì)受到損害,本文針對(duì)每個(gè)點(diǎn)自適應(yīng)地融合多層次特征,獲得一個(gè)全面表示,完成點(diǎn)云的分類(lèi)任務(wù).
本文提出局部-非局部卷積模塊為基本單元構(gòu)成的卷積神經(jīng)網(wǎng)絡(luò),框架如圖1所示.
圖1 局部-非局部交互卷積神經(jīng)網(wǎng)絡(luò)框圖
其中MLP(·)表示多層感知器.對(duì)融合后的特征Fout進(jìn)行一次MLP,獲得一個(gè)全局特征表示:
Fglobal=MLP(Fout).
然后對(duì)得到的Fglobal進(jìn)行最大池化(Max Pooling, Max)和平均池化(Mean Pooling, Mean)操作,并拼接池化操作后的兩個(gè)高維特征,得到最終的形狀描述子:
fglobal=[Max(Fglobal)‖Mean(Fglobal)],
其中‖表示矢量拼接操作.最后,將fglobal輸入全連接網(wǎng)絡(luò)中,預(yù)測(cè)最終的分類(lèi)得分.
給定一個(gè)具有N個(gè)點(diǎn)的點(diǎn)云X,記為
其中每個(gè)點(diǎn)含三維坐標(biāo)pi=(xi,yi,zi),并將
記為點(diǎn)云中每個(gè)點(diǎn)的特征,其中C為特征維度.對(duì)于每個(gè)點(diǎn),首先按照輸入的坐標(biāo)使用KNN尋找鄰域點(diǎn),計(jì)算兩點(diǎn)的距離:
DistanceX(pi,pj)=‖pi-pj‖,
Mi=(pi1-pi,pi2-pi,…,pik-pi).
然后,根據(jù)幾何共享網(wǎng)絡(luò)中的特征圖卷積構(gòu)造3D結(jié)構(gòu)張量
對(duì)Ci進(jìn)行特征值分解,得
DistanceE(pi,pj)=‖λi-λj‖.
F1=MLP([pi‖λi‖Re(Qi)]),
其中Re(·)表示Reshape維度打平操作.
圖2 局部-非局部交互卷積模塊結(jié)構(gòu)圖
其中,l=2,3,4,5,表示網(wǎng)絡(luò)層數(shù).
其中+表示逐點(diǎn)相加.當(dāng)且僅當(dāng)l=2時(shí),
值得注意地是,不同于DGCNN[14]等在卷積網(wǎng)絡(luò)中動(dòng)態(tài)更新圖結(jié)構(gòu),即每層都生成新的索引構(gòu)造新圖,但又考慮到每個(gè)卷積層都重新構(gòu)圖的復(fù)雜性,本文在保留所有輸入點(diǎn)的前提下僅構(gòu)圖一次,并在之后始終使用已得到兩種索引構(gòu)圖,通過(guò)加深網(wǎng)絡(luò)的方法達(dá)到盡可能讓每個(gè)點(diǎn)包含更多其余點(diǎn)的特征信息的目的,甚至效果更優(yōu).
然而,此做法可能不足以表示每個(gè)鄰域,原因如下:1)三維空間中固定約束下的特征學(xué)習(xí)會(huì)削弱點(diǎn)在高維特征空間中的泛化能力;2)鄰域在表示封閉區(qū)域時(shí)可能存在冗余問(wèn)題.
最后,拼接兩組交互后的特征,實(shí)現(xiàn)特征融合.但此時(shí)特征表示的依舊是整個(gè)鄰域的特征,所以本文使用MLP和Max操作,將鄰域點(diǎn)的特征聚合到中心點(diǎn)上,同時(shí)得到第l層的輸出,作為第l+1層的輸入:
在深度學(xué)習(xí)中,低層次的特征具有較強(qiáng)的幾何信息,而高層次的特征具有較強(qiáng)的語(yǔ)義信息,較好地融合不同層次的特征,可獲得更豐富且更具有區(qū)分度的特征,進(jìn)一步提高網(wǎng)絡(luò)的分類(lèi)性能.矢量拼接是一種經(jīng)典的特征融合方法,但忽略不同層次特征的重要性區(qū)別.為了更合理地融合不同層次的特征,本文設(shè)計(jì)自適應(yīng)特征融合方法,用于點(diǎn)云分類(lèi).首先分別為不同層次的特征分配初始影響權(quán)重,然后自適應(yīng)地調(diào)整權(quán)重,使各層次特征可得到更有效的融合,具體做法如下.
經(jīng)過(guò)之前的操作,網(wǎng)絡(luò)通過(guò)卷積模塊共輸出5組特征:F1,F2,F3,F4,F5,并且具有不同的通道維度.
其中ω在訓(xùn)練過(guò)程中通過(guò)梯度反向傳播算法學(xué)習(xí).最后,將權(quán)重與對(duì)應(yīng)特征相乘,得到融合特征:
在訓(xùn)練階段,本文使用與DGCNN[14]相同的訓(xùn)練策略,基于標(biāo)簽平滑策略(平滑因子為0.2),使用交叉熵?fù)p失函數(shù)計(jì)算損失,并使用整體精度(Overall Accuracy, OA)和類(lèi)平均精度(mean Accu-racy, mAcc)作為分類(lèi)的評(píng)價(jià)指標(biāo).
在NVIDIA GeForce RTX 2080Ti GPU上進(jìn)行實(shí)驗(yàn),并使用隨機(jī)梯度下降(Stochastic Gradient De-scent, SGD)優(yōu)化器進(jìn)行優(yōu)化.局部-非局部交互卷積神經(jīng)網(wǎng)絡(luò)各層中參數(shù)的尺寸如表1所示.訓(xùn)練輪數(shù)為500輪,初始學(xué)習(xí)率為0.1,隨后通過(guò)余弦退火函數(shù)衰減到0.001,批量大小為12,隨機(jī)種子數(shù)為1,動(dòng)量系數(shù)為0.9.
本文選擇ModelNet40[19]、ScanObjectNN[20]數(shù)據(jù)集進(jìn)行實(shí)驗(yàn).ModelNet40數(shù)據(jù)集是3D形狀分類(lèi)任務(wù)中常用的基準(zhǔn)數(shù)據(jù)集,主要由40個(gè)類(lèi)別的12 311個(gè)CAD生成網(wǎng)格組成,其中9 843個(gè)用于訓(xùn)練,其余2 468個(gè)用于測(cè)試.此外,從網(wǎng)格表面均勻采樣相應(yīng)的數(shù)據(jù)點(diǎn),再通過(guò)移動(dòng)到原點(diǎn)并縮放到單位球體進(jìn)行進(jìn)一步預(yù)處理.對(duì)于文中每個(gè)點(diǎn)云樣本,只輸入1 024個(gè)點(diǎn)的三維坐標(biāo).
ScanObjectNN數(shù)據(jù)集是一個(gè)新發(fā)布的現(xiàn)實(shí)世界對(duì)象數(shù)據(jù)集,包含15個(gè)類(lèi)別約15 000個(gè)對(duì)象.盡管類(lèi)別少于ModelNet40數(shù)據(jù)集,但由于復(fù)雜的背景、缺失的部分和各種變形,比合成的同類(lèi)數(shù)據(jù)集更具有實(shí)際挑戰(zhàn)性.
為了在訓(xùn)練階段增加樣本數(shù)量并提高樣本的多樣性,本文采用如下兩種數(shù)據(jù)增強(qiáng)方式:1)在[-0.8,1.25]范圍內(nèi)對(duì)已有數(shù)據(jù)進(jìn)行隨機(jī)各向異性縮放;2)對(duì)已有數(shù)據(jù)增加服從N(0,0.01)分布的隨機(jī)抖動(dòng).
本文選取如下對(duì)比方法:PointNet[4]、PointNet++[5]、SpiderCNN[11]、PointCNN[12]、ECC[13]、DGCNN[14]、SO-Net(Self-Organizing Network)[21]、Kd-Network[22]、ConvPoint(Continuous Convolutions for Point Cloud Processing)[23]、PCNN(Point CNN)[24]、PointConv[25]、A-CNN(Annularly CNN)[26]、RS-CNN(Relation-Shape CNN)[27]、GAPointNet(Graph Attention Based Point Neural Network for Exploiting Local Feature of Point Cloud)[28]、DRNet(Dense-Resolution Network)[29]、PointASNL(Robust Point Clouds Processing Using Nonlocal Neural Networks with Adaptive Samp-ling)[30]、Geo-CNN(Geometric-Induced CNN)[31]、3DmFV(3D Modified Fisher Vector)[32]、PointGLR(Point Global-Local-Bidirectional Reasoning)[33].
各方法在ModelNet40、ScanObjectNN數(shù)據(jù)集上的分類(lèi)精度如表2和表3所示,表中黑體數(shù)字表示最優(yōu)結(jié)果.
表2 各方法在ModelNet40數(shù)據(jù)集上的分類(lèi)精度
表3 各方法在ScanObjectNN數(shù)據(jù)集上的分類(lèi)精度
由表2可看出,在ModelNet40數(shù)據(jù)集上,本文算法的OA值達(dá)到93.4%,超過(guò)大多數(shù)方法或與其持平,mAcc值處于對(duì)比算法中的次優(yōu)水平.同時(shí)值得注意地是,本文算法輸入僅為1 024個(gè)點(diǎn)的坐標(biāo)信息,而部分持平或被超越的方法采用輸入更多的點(diǎn)數(shù)甚至選擇輸入更多的信息.這在一定程度上也體現(xiàn)本文算法優(yōu)勢(shì).
由表3可看出,在ScanObjectNN數(shù)據(jù)集上,本文算法在采用相同輸入格式和點(diǎn)數(shù)的情況下,mAcc值和OA值分別超出次優(yōu)方法0.8%和1.3%,大幅提高點(diǎn)云分類(lèi)的性能.
除了對(duì)比分類(lèi)精度之外,本文也進(jìn)行復(fù)雜性分析.為了公平起見(jiàn),在相同的條件(NVIDIA GeForce RTX 2080Ti)下進(jìn)行測(cè)試.各方法的性能對(duì)比如表4所示.由表可看出,本文算法在參數(shù)量上處于中等偏高的水平.雖然訓(xùn)練耗時(shí)相對(duì)較多,但推理速度較快,精度也較高.總之,本文算法在復(fù)雜度和性能之間實(shí)現(xiàn)良好的權(quán)衡.
表4 各方法在ModelNet40數(shù)據(jù)集上的性能對(duì)比
本文采用T-SNE(T-distributed Stochastic Neigh-bor Embedding)[34]對(duì)網(wǎng)絡(luò)得到的部分形狀描述子進(jìn)行可視化,更好地展示本文算法得到的形狀描述子具有的判別能力,具體如圖3所示.
(a)ScanObjectNN
由圖3可看出,本文算法得到的形狀描述子具有良好的判別能力,能有效地對(duì)不同類(lèi)別進(jìn)行分類(lèi),即同一類(lèi)別之間的距離較小,不同類(lèi)別之間的距離較大.這也從一定程度上體現(xiàn)局部-非局部交互卷積模塊可提取到更豐富且具有更深層次結(jié)構(gòu)的形狀特征.
本節(jié)主要討論局部-非局部卷積神經(jīng)網(wǎng)絡(luò)中不同組件對(duì)分類(lèi)性能的影響,結(jié)果如表5和表6所示,在表中,-表示網(wǎng)絡(luò)中不添加該組件,√表示網(wǎng)絡(luò)中使用該組件.
由表5可看出,單獨(dú)使用局部特征和非局部特征的效果并不如兩者結(jié)合使用后理想,而兩個(gè)不同特征分支之間的交互也提高性能.由表6可看出,單獨(dú)使用殘差連接和自適應(yīng)融合對(duì)網(wǎng)絡(luò)的分類(lèi)性能都有所提升,同時(shí)使用時(shí)效果更佳.這也證實(shí)本文算法中各組件的可行性和優(yōu)勢(shì)性.
表5 局部-非局部交互卷積模塊中組件的消融實(shí)驗(yàn)結(jié)果
表6 局部-非局部卷積神經(jīng)網(wǎng)絡(luò)中組件的消融實(shí)驗(yàn)結(jié)果
為了降低超參數(shù)不可控的影響,本文網(wǎng)絡(luò)中僅有兩個(gè)超參數(shù):聚合鄰域點(diǎn)的數(shù)量k和卷積模塊數(shù)量t.本節(jié)通過(guò)兩組對(duì)比實(shí)驗(yàn),分析k、t對(duì)分類(lèi)性能的影響,結(jié)果如表7和表8所示.
表7 在ModelNet40數(shù)據(jù)集上k對(duì)本文算法的影響
表8 在ModelNet40數(shù)據(jù)集上t對(duì)本文算法影響
由表7可見(jiàn),在一定范圍內(nèi),k對(duì)性能的影響作用并不大,即網(wǎng)絡(luò)本身提取的結(jié)構(gòu)特征已較充分.同時(shí)也證實(shí):當(dāng)k過(guò)小時(shí),會(huì)導(dǎo)致特征提取不充分,分類(lèi)結(jié)果顯著降低;當(dāng)k過(guò)大時(shí),也會(huì)由于信息冗余使分類(lèi)性能有所降低.因此,當(dāng)k=20時(shí),本文算法的分類(lèi)性能達(dá)到最優(yōu).
由表8可知,只使用一次卷積模塊時(shí)分類(lèi)精度最低,這主要是因?yàn)樵邳c(diǎn)云的每個(gè)頂點(diǎn)周?chē)豢紤]一個(gè)小的感受野.所以如果不考慮多個(gè)局部-非局部交互卷積模塊,特征信息將無(wú)法聚合更大范圍的信息,感受野也會(huì)受限.同時(shí)可看到,當(dāng)局部-非局部交互卷積模塊的數(shù)量逐漸增加時(shí),精度會(huì)先增加后降低,并且在t=4時(shí)精度達(dá)到最優(yōu).這可能是因?yàn)樯窠?jīng)網(wǎng)絡(luò)太深時(shí),訓(xùn)練難度會(huì)大幅增加,而當(dāng)層數(shù)特別深時(shí),網(wǎng)絡(luò)需要的內(nèi)存和時(shí)間都會(huì)大幅增加.
本文提出基于局部-非局部交互卷積的3D點(diǎn)云分類(lèi)算法.算法關(guān)鍵在于構(gòu)造局部-非局部交互卷積模塊,通過(guò)兩個(gè)分支分別捕獲采樣點(diǎn)的局部特征和非局部特征,并對(duì)這兩個(gè)分支進(jìn)行不同特征的交互增強(qiáng),有效緩解單分支鄰域在表示封閉區(qū)域時(shí)存在的冗余問(wèn)題,穩(wěn)定點(diǎn)在高維特征下的泛化能力.同時(shí),本文算法在層與層之間加入殘差連接,作為同一分支前后的交互作用,在改善信息傳遞的同時(shí)能訓(xùn)練更深入、穩(wěn)定的網(wǎng)絡(luò).此外,自適應(yīng)特征融合方法合理有效地融合不同層次的特征,減緩全局特征在學(xué)習(xí)過(guò)程中受到的損害.最后通過(guò)最大池化和平均池化操作獲得形狀描述子,用于分類(lèi)任務(wù).大量實(shí)驗(yàn)驗(yàn)證本文算法的優(yōu)越性.本文也通過(guò)T-SNE對(duì)得到的形狀描述子進(jìn)行可視化,驗(yàn)證分類(lèi)性能.
總之,本文算法具有較優(yōu)的分類(lèi)性能,但在個(gè)別種類(lèi)上的分類(lèi)性能還較差,在具有背景的現(xiàn)實(shí)數(shù)據(jù)集上分類(lèi)精度略有不足,主要原因是涉及類(lèi)別的數(shù)量較少.所以今后可設(shè)計(jì)合理的損失,在保證大多數(shù)類(lèi)別分類(lèi)能力的前提下,增強(qiáng)數(shù)量較少類(lèi)別的分類(lèi)能力.