陳 奔,謝曉堯,劉 嵩
(貴州師范大學(xué) 貴州省信息與計算科學(xué)重點實驗室,貴州 貴陽 550001)
點云模型通常由通過專業(yè)設(shè)備對物體表面采樣得到的離散點集構(gòu)成,一般由各離散點的三維坐標(biāo)表示,部分點云數(shù)據(jù)還包含法向量、顏色特征等信息。因為包含信息豐富,基于點云數(shù)據(jù)的點云模型在自動駕駛、醫(yī)學(xué)成像、遙感測繪、虛擬現(xiàn)實等領(lǐng)域[1-2]均有廣泛應(yīng)用。傳統(tǒng)方法手工設(shè)計幾何形狀[3]或簽名描述符[4]的方法對研究人員的專業(yè)知識和針對性設(shè)計能力要求頗高,逐漸難以適應(yīng)當(dāng)下快速發(fā)展的需要,因此深度學(xué)習(xí)被引入點云處理領(lǐng)域以解決這些問題[5]。
面對三維點云的空間分布特點,深度學(xué)習(xí)主要有兩個大的研究方向:
(1)先對點云數(shù)據(jù)進行預(yù)處理,得到規(guī)則結(jié)構(gòu)化的數(shù)據(jù),再使用圖像處理中成熟的卷積神經(jīng)網(wǎng)絡(luò)模型進行操作[6-8]。
例如多視圖投影[9]和體素網(wǎng)絡(luò)[10]兩個最具代表性的技術(shù)路線。這些方法通過將不規(guī)則、非結(jié)構(gòu)化的點云數(shù)據(jù)轉(zhuǎn)化為規(guī)則、結(jié)構(gòu)化的圖像或體素網(wǎng)絡(luò),隨后使用二維或三維CNN提取點云的局部和全局特征。這些方法雖然解決了點云的無序分布問題,但也帶來了很多計算上的挑戰(zhàn)和額外的內(nèi)存消耗問題。
(2)不對原始數(shù)據(jù)進行過多干預(yù),直接送入深度學(xué)習(xí)網(wǎng)絡(luò)中處理。通過針對原始點云數(shù)據(jù)設(shè)計特殊的卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)點云的特征表示[11]。這種方法由于內(nèi)存消耗較低、結(jié)構(gòu)簡單越來越受到研究人員的關(guān)注。
其中PointNet[12]在點云分類和分割任務(wù)上取得了很好的效果,其通過多層感知機MLP逐點提取高維特征再通過池化操作得到全局特征。整個過程與點云數(shù)據(jù)的輸入順序無關(guān),可以很好地適應(yīng)點云數(shù)據(jù)的置換不變特性,但由于PointNet網(wǎng)絡(luò)沒有劃分點云區(qū)域以及針對性提取區(qū)域特征,這對其處理局部細(xì)節(jié)的性能影響較大。
PointNet++[13]在PointNet的基礎(chǔ)上采用多層次結(jié)構(gòu)提取特征,應(yīng)用KNN分組和層次化結(jié)構(gòu)將點云劃分為多個局部區(qū)域,允許重復(fù)捕獲局部信息并多次疊加得到最終效果,一定程度上彌補了PointNet在局部細(xì)節(jié)方面的不足。然而這種方法至少簡單地劃分局部區(qū)域,并沒有能夠進一步發(fā)掘局部點之間存在的內(nèi)在關(guān)系。同時提取局部特征的過程是相互獨立的,點云子區(qū)域之間沒有信息交換導(dǎo)致部分點云結(jié)構(gòu)信息的丟失。也由于它只是將局部特征簡單地聚合,所以區(qū)域信息還沒有被充分利用。
DGCNN[14]為代表的圖卷積技術(shù)路線[15]則提出了一種邊緣卷積的方法,在特征空間的近鄰點中通過KNN采樣構(gòu)建局部圖結(jié)構(gòu),得到鄰邊特征。通過共享權(quán)重的MLP對圖結(jié)構(gòu)的鄰邊特征進行卷積操作從鄰邊集合中提取特征信息,隨后使用最大池化的方式進行聚合進一步得到局部特征,隨后在網(wǎng)絡(luò)結(jié)構(gòu)的每一層中動態(tài)更新局部圖結(jié)構(gòu)。這種方法強化了局部結(jié)構(gòu)中點與點之間的聯(lián)系,然而DGCNN只針對特征空間中的領(lǐng)域,因此具有一定的局限性。同時由于點云的稀疏性和非均勻分布特點,鄰域內(nèi)每個節(jié)點和中心節(jié)點的關(guān)聯(lián)度都是不同的,而DGCNN卻平等地處理每一條鄰邊。這種提取方法有一定局限性,導(dǎo)致盡管DGCNN能夠很好地采集低級語義信息,卻無法很好地描述高級語義信息和隱式高級語義特征。
綜上所述,目前點云深度學(xué)習(xí)領(lǐng)域需求旺盛,然而現(xiàn)有主流點云深度學(xué)習(xí)網(wǎng)絡(luò)[16-17]在設(shè)計上存在對坐標(biāo)空間中各區(qū)域間信息傳遞的不夠重視、區(qū)域內(nèi)近鄰點聚合方式單一的問題,導(dǎo)致模型對區(qū)域信息、高級語義信息未能充分利用,限制了深度學(xué)習(xí)網(wǎng)絡(luò)提取更多特征信息進行點云分類分割任務(wù)的能力。
近年來,在NLP等領(lǐng)域大火的注意力機制[18]為點云深度學(xué)習(xí)網(wǎng)絡(luò)的設(shè)計帶來了新的思路。注意力機制的核心設(shè)計理念是在眾多輸入信息中提高對當(dāng)前任務(wù)更為重要的信息的關(guān)注度,相對降低對其他信息的關(guān)注度,甚至直接過濾無關(guān)信息,以此解決龐大信息量帶來的信息過載問題,同時提高任務(wù)處理的效率和準(zhǔn)確性。
綜上所述,為了更好地應(yīng)對現(xiàn)有主流點云深度學(xué)習(xí)網(wǎng)絡(luò)在設(shè)計上存在的問題,該文提出了一種新的三維點云分析網(wǎng)絡(luò)EDANet,嘗試通過在特征空間和坐標(biāo)空間中分別引入特征通道注意力和局部區(qū)域注意力機制,在坐標(biāo)空間中以更廣泛的視角提煉點云特征信息,同時有區(qū)別地對待同一區(qū)域內(nèi)不同近鄰點所提供的點云信息。以此增強點云特征的表達能力,實現(xiàn)點云模型的高精度形狀分類和部件分割。同時由于沒有點云下采樣過程,讓分割任務(wù)避免在上采樣過程中的信息損失,進一步提高了點云分割精度。
如圖1所示,EDANet由多層EdgeDualAttention模塊組成。輸入原始點云集合Pin={P1,P2,…,Pn},Pin∈Rn×c,其中n是原始點云的點數(shù)量,c是每個點的初始維度,一般為三維坐標(biāo)參數(shù),個別情況下還包含顏色或法向量等額外維度的信息。EDANet首先使用一層特征嵌入通過MLP將輸入原始點云數(shù)據(jù)的維度c向更高的維度d映射,方便后續(xù)處理的同時增強點云的信息表達能力。

圖1 EDANet架構(gòu)
其中,EdgeDualAttention從局部和全局兩個方面綜合計算了注意力權(quán)重,通過對這兩個模塊得到的權(quán)重信息進行加權(quán)求和來深入挖掘每個點的上下文表示。逐層聚合不斷提煉積累特征信息,得到不同尺寸的點云特征矩陣,最終將不同尺寸的逐點特征拼接通過max-pooling與avg-pooling相結(jié)合的池化手段得到全局特征用于完成形狀分類任務(wù)。
分割模型與分類模型基本一致,但由于部件分割需要獲取逐點特征,因此分割網(wǎng)絡(luò)需要在分類模型得到的全局特征基礎(chǔ)上repeat并與之前各層得到的不同尺寸的逐點特征拼接,以此補全得到同時具備全局特征信息與局部特征信息的逐點特征,用于完成部件分割任務(wù)。
如圖2所示,EdgeDualAttention由三個主要部分構(gòu)成:Edge Create模塊負(fù)責(zé)構(gòu)建一個邊緣特征集合,Dual Attention模塊負(fù)責(zé)從全局和局部兩個方面綜合考慮點對之間的相關(guān)性,以獲得更豐富的上下文信息,Feature Aggregation模塊負(fù)責(zé)聚合采集得到的特征信息并送入下一層網(wǎng)絡(luò)。

圖2 EdgeDualAttention模塊
Edge Create:輸入點云數(shù)據(jù)Pin∈Rn×d,通過KNN采集每個點的k個近鄰點組成近鄰點集分類模型接收n個點作為輸入,為每個點采集其在特征空間中的k個近鄰點組成邊緣特征集L={L1,L2,…,Ln},L∈Rn×k×d,其中{Li∈Rk×d|i=1,2,…,n}表示每個局部鄰域,通過Li與K可以唯一確定一個區(qū)域的某一個點。
Dual Attention:如圖3所示,為了更好地表述高維語義信息同時增加特征之間的區(qū)分度,該文構(gòu)建了特征通道注意力模塊Channel Attention Module(CAM)和局部區(qū)域注意力模塊Local Region Attention Module(LRAM)(將在后續(xù)詳細(xì)描寫)。這兩個模塊基于多頭自注意力構(gòu)成,主要功能分別是對任意通道之間的相互依賴進行建模以及計算任意區(qū)域之間的相互依賴權(quán)重。

圖3 Dual Attention子模塊組成
自注意力機制作為注意力機制的改進[19],其減少了對外部信息的依賴,更擅長捕捉數(shù)據(jù)或特征的內(nèi)部相關(guān)性。常規(guī)卷積層通過卷積核和原始特征的線性組合得到輸出特征,由于卷積核通常是局部的,導(dǎo)致許多任務(wù)因語義信息不足影響了最終性能。而自注意力機制通過捕捉全局的信息來獲得更大的感受野和上下文信息,對不同的特征和點進行了針對性的處理,為處理不同類型的信息提供了額外的靈活性,擴展了CNN的表達能力。同時為了克服局部感受野的極端數(shù)值感染,為了更全面地獲取不同層次的特征信息,Dual Attention引入了多頭注意力的架構(gòu)。
多頭注意力定義如下:
Multihead(E)=(head1⊕…⊕headn)Wo
其中,⊕表示矩陣拼接操作,Wo表示一個可學(xué)習(xí)參數(shù),以更好地聚合多頭注意力所采集的信息。headi代表多頭注意力架構(gòu)中的第i個CAM頭或者LRAM頭。通過引入多頭注意力的架構(gòu)使得輸入每個CAM或LRAM模塊的向量集合E的特征維度d下降為d/h。這在一定程度上可以降低模塊的計算復(fù)雜度,增加并行運算效率。
通道注意力模塊CAM:如圖4所示,首先通過卷積運算處理輸入的向量集合E,通過不同的可學(xué)習(xí)參數(shù)Wq,Wk,Wv將其特征維度從d投影到d',分別得到矩陣Q∈Rn×k×d',K∈Rn×k×d',V∈Rn×k×d'。然后將Q矩陣轉(zhuǎn)置,再通過QT與K矩陣相乘以及歸一化得到特征維度層面的相似度矩陣A∈Rn×d'×d',將A與V矩陣相乘得到最終的經(jīng)過權(quán)重縮放的目標(biāo)矩陣Z∈Rn×k×d'。通過使用所有特征維度映射的加權(quán)和更新每個特征維度的映射來捕獲任意兩個特征維度映射之間的依賴關(guān)系,以此達成對區(qū)域內(nèi)信息的更高效聚合。

圖4 通道注意力
當(dāng)前大多數(shù)點云分析網(wǎng)絡(luò)在對鄰域信息采樣聚合時選擇了所有節(jié)點共享相同的卷積核參數(shù),然而近鄰點對于中心點的影響是各不相同的,這必然會限制模型的能力。通過引入特征注意力機制重新構(gòu)建相鄰節(jié)點的關(guān)系,對鄰域節(jié)點信息做到有區(qū)別的聚合,實際上可以視作為鄰域的每個節(jié)點隱式分配不同的卷積核參數(shù)。
局部區(qū)域注意力模塊LRAM:如圖5所示,首先通過與CAM相同的操作得到矩陣QKV,重構(gòu)QKV,得到Q'∈RN*lr,其中l(wèi)r=k*d',K'、V'同理。然后將Q'矩陣轉(zhuǎn)置與K'矩陣相乘歸一化得到局部區(qū)域?qū)用娴南嗨贫染仃嘇'∈RN*N,將A'與V'矩陣相乘得到最終的經(jīng)過權(quán)重縮放的目標(biāo)矩陣Z'∈RN*lr,經(jīng)過重構(gòu)得到Z''∈Rn×k×d'。通過使用所有區(qū)域映射的加權(quán)和更新每個區(qū)域的映射對各區(qū)域之間的依賴關(guān)系加以捕獲,以此加強區(qū)域信息之間的流動。

圖5 局部區(qū)域注意力
當(dāng)前大多數(shù)點云分析網(wǎng)絡(luò)只是孤立地學(xué)習(xí)每個點的特征信息,未能充分探索上下文表示,變相地放棄了開發(fā)每個點之間的相關(guān)信息,這直接導(dǎo)致具有較強上下文表示的點及區(qū)域權(quán)重過大主導(dǎo)整個場景。通過引入局部區(qū)域注意力機制重新評估相關(guān)區(qū)域的關(guān)系,改進非優(yōu)勢目標(biāo)的上下文表示,有意識地增加非優(yōu)勢目標(biāo)的權(quán)重。
Dual Attention可以總結(jié)為:
Fout=CAM(Fin)⊕LRAM(Fin)
通過構(gòu)建CAM和LRAM模塊計算每個特征圖通道在全局點和局部區(qū)域之間的相互依賴權(quán)重來更新特征信息,確保所需提取的特征具有更高的特征區(qū)分度。因為特征通道與局部區(qū)域的權(quán)重需要隨客觀變化而變化,所以最后通過兩個可學(xué)習(xí)參數(shù)WCAM與WLRAM,對CAM得到的特征矩陣Z以及LRAM得到的特征矩陣Z''分別將其特征維度從d'映射回d,得到FCAM∈Rn×k×d,FLRAM∈Rn×k×d,再將FCAM與FLRAM拼接得到輸出特征矩陣Fout∈Rn×k×2d,以此增強局部鄰域特征矩陣的靈活性。
Feature Aggregation:特征聚合公式可以表示為:
Gnext=max-avg-pool(MLP(concat(pi;α(pj)-pi)))
其中,α函數(shù)表示Dual attention模塊,輸入代表局部鄰域信息的邊向量集合,輸出經(jīng)過通道及局部區(qū)域注意力權(quán)重加成的鄰域信息集合,將其與中心點pi相減得到區(qū)域內(nèi)的鄰域特征。最后將中心點pi與其拼接送入MLP處理,經(jīng)過maxpool和avgpooling相結(jié)合的池化操作處理聚合得到一個融合了全局形狀信息以及局部鄰域信息的新的全局特征值Gnext送入下一層網(wǎng)絡(luò)。
實驗環(huán)境為ubuntu18.04、PyTorch 1.7.0、Python3.8、Cuda11.0,使用兩個NVIDIA RTX 3080 Ti GPU訓(xùn)練所有模型。所有任務(wù)的batchsize大小設(shè)置為24,迭代200次,初始學(xué)習(xí)率lr=0.002,權(quán)重衰減10-4,采用AdamW[20]優(yōu)化器和CrossEntropyLoss訓(xùn)練。并在每個FC層后都加入比例為0.5的dropout,以抑制過擬合。
實驗采用ModelNet40[21]數(shù)據(jù)集評估相關(guān)模型的形狀分類任務(wù)性能,在訓(xùn)練分類任務(wù)時每次采樣1 024個點送入模型。ModelNet40由包含40個類別的12 331個CAD模型組成。數(shù)據(jù)集分成了9 843個訓(xùn)練模型和2 468個測試模型。
形狀分類任務(wù)采用的評價指標(biāo)為:mAcc (mean Accuracy)和OAcc (Overall Accuracy)。mAcc是所有類別的平均準(zhǔn)確率,所有Class Accuracy 取平均值。而OAcc表示不分類別的全體數(shù)據(jù)的準(zhǔn)確性。
對比算法包括經(jīng)典逐點特征信息聚合方法PointNet、PointNet++;基于樹狀結(jié)構(gòu)重新設(shè)計了點云信息分析架構(gòu)的Kd-Net[22];經(jīng)典的體素化點云信息的網(wǎng)絡(luò)架構(gòu)Subvolume[23];通過多視角轉(zhuǎn)化為二維圖像再使用CNN進行分析的MVCNN;通過SOM直接將高維數(shù)據(jù)降維而后處理的SO-Net[24];SpiderCNN[25]則在CNN與點云的結(jié)合方面做出了卓越貢獻、動態(tài)圖卷積代表DGCNN。
EDANet與基于深度學(xué)習(xí)各技術(shù)路線上的諸多經(jīng)典網(wǎng)絡(luò)模型使用數(shù)據(jù)集ModelNet40進行了性能對比,如表1所示。EDANet在與這些經(jīng)典網(wǎng)絡(luò)模型對比中,無論是mAcc還是OAcc均具有較高性能提升,由此可見引入通道特征注意力以及局部區(qū)域注意力的雙重注意力機制顯著地提高了分類效果,相關(guān)分析將在后續(xù)消融實驗中詳細(xì)介紹。

表1 MobenNet40上各模型性能對比 %
點云分割是一項具有挑戰(zhàn)性的任務(wù),旨在將3D模型劃分為多個有意義的部分。為了進行細(xì)粒度的3D分割,實驗最終選取數(shù)據(jù)集ShapeNet[26]進行實驗評估,該數(shù)據(jù)集是一個用于零件分割的對象級數(shù)據(jù)集,注釋豐富,規(guī)模較大,由16種不同大類組成,每個大類包含2~6個零件,下屬合計50個零件標(biāo)簽。作者將包含16 881個模型的數(shù)據(jù)集分成14 006個訓(xùn)練模型和2 875個測試模型。在訓(xùn)練分割任務(wù)時每次采樣2 048個點送入模型。
部件分割任務(wù)采用的評價指標(biāo)為:IoU(Intersection over Union),表示某一類的預(yù)測結(jié)果和真實值的交集與其并集的比值。cIoU(category IoU),表示平均所有類的預(yù)測結(jié)果交并集。mIoU(mean IoU),表示取出所有類別中每一項的預(yù)測結(jié)果交并集取平均值。ShapeNet上各模型性能對比如表2所示。

表2 ShapeNet上各模型性能對比 %
可見與近期相關(guān)研究相比,EDANet方法也達到較高水平。
為了驗證CAM以及LRAM組成Dual attention在EDANet網(wǎng)絡(luò)中的有效性,嘗試在ModelNet40數(shù)據(jù)集上進行了消融實驗。除了包含完整CAM和LRAM的EDANet,還設(shè)計了三組額外模型進行對比,不包含Dual attention的模型EDANet-Dual,包含CAM但不包含LRAM的模型EDANet-LRAM,包含LRAM但不包含CAM的模型EDANet-CAM。比較結(jié)果如表3所示。

表3 不同模塊在EDANet中的影響 %
可見當(dāng)LRAM與CAM均加入EDANet時,分類準(zhǔn)確率將達到最大值。
當(dāng)前大多數(shù)點云分析網(wǎng)絡(luò)只是從增強區(qū)域特征提取的角度來增強網(wǎng)絡(luò)模型的表達能力,卻忽略了子區(qū)域之間特征信息的交換。EDANet嘗試通過局部區(qū)域注意力機制以自適應(yīng)的學(xué)習(xí)特征權(quán)重并獲取子區(qū)域之間局部特征的相關(guān)性。同時特征通道注意力模塊專門對每個點的特征的相互依賴關(guān)系進行建模,而局部區(qū)域注意力模塊則將每個局部鄰域視為一個整體,并通過捕獲每個局部領(lǐng)域之間的特征映射的相互依賴關(guān)系來更新權(quán)重。EDANet在多個數(shù)據(jù)集上的實驗結(jié)果表明,其在點云分類分割任務(wù)上成功實現(xiàn)了高性能。同時通過消融實驗證明了文中網(wǎng)絡(luò)模型的有效性。