陳 奔,謝曉堯,劉 嵩
(貴州師范大學(xué) 貴州省信息與計(jì)算科學(xué)重點(diǎn)實(shí)驗(yàn)室,貴州 貴陽(yáng) 550001)
點(diǎn)云模型通常由通過專業(yè)設(shè)備對(duì)物體表面采樣得到的離散點(diǎn)集構(gòu)成,一般由各離散點(diǎn)的三維坐標(biāo)表示,部分點(diǎn)云數(shù)據(jù)還包含法向量、顏色特征等信息。因?yàn)榘畔⒇S富,基于點(diǎn)云數(shù)據(jù)的點(diǎn)云模型在自動(dòng)駕駛、醫(yī)學(xué)成像、遙感測(cè)繪、虛擬現(xiàn)實(shí)等領(lǐng)域[1-2]均有廣泛應(yīng)用。傳統(tǒng)方法手工設(shè)計(jì)幾何形狀[3]或簽名描述符[4]的方法對(duì)研究人員的專業(yè)知識(shí)和針對(duì)性設(shè)計(jì)能力要求頗高,逐漸難以適應(yīng)當(dāng)下快速發(fā)展的需要,因此深度學(xué)習(xí)被引入點(diǎn)云處理領(lǐng)域以解決這些問題[5]。
面對(duì)三維點(diǎn)云的空間分布特點(diǎn),深度學(xué)習(xí)主要有兩個(gè)大的研究方向:
(1)先對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行預(yù)處理,得到規(guī)則結(jié)構(gòu)化的數(shù)據(jù),再使用圖像處理中成熟的卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行操作[6-8]。
例如多視圖投影[9]和體素網(wǎng)絡(luò)[10]兩個(gè)最具代表性的技術(shù)路線。這些方法通過將不規(guī)則、非結(jié)構(gòu)化的點(diǎn)云數(shù)據(jù)轉(zhuǎn)化為規(guī)則、結(jié)構(gòu)化的圖像或體素網(wǎng)絡(luò),隨后使用二維或三維CNN提取點(diǎn)云的局部和全局特征。這些方法雖然解決了點(diǎn)云的無(wú)序分布問題,但也帶來了很多計(jì)算上的挑戰(zhàn)和額外的內(nèi)存消耗問題。
(2)不對(duì)原始數(shù)據(jù)進(jìn)行過多干預(yù),直接送入深度學(xué)習(xí)網(wǎng)絡(luò)中處理。通過針對(duì)原始點(diǎn)云數(shù)據(jù)設(shè)計(jì)特殊的卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)點(diǎn)云的特征表示[11]。這種方法由于內(nèi)存消耗較低、結(jié)構(gòu)簡(jiǎn)單越來越受到研究人員的關(guān)注。
其中PointNet[12]在點(diǎn)云分類和分割任務(wù)上取得了很好的效果,其通過多層感知機(jī)MLP逐點(diǎn)提取高維特征再通過池化操作得到全局特征。整個(gè)過程與點(diǎn)云數(shù)據(jù)的輸入順序無(wú)關(guān),可以很好地適應(yīng)點(diǎn)云數(shù)據(jù)的置換不變特性,但由于PointNet網(wǎng)絡(luò)沒有劃分點(diǎn)云區(qū)域以及針對(duì)性提取區(qū)域特征,這對(duì)其處理局部細(xì)節(jié)的性能影響較大。
PointNet++[13]在PointNet的基礎(chǔ)上采用多層次結(jié)構(gòu)提取特征,應(yīng)用KNN分組和層次化結(jié)構(gòu)將點(diǎn)云劃分為多個(gè)局部區(qū)域,允許重復(fù)捕獲局部信息并多次疊加得到最終效果,一定程度上彌補(bǔ)了PointNet在局部細(xì)節(jié)方面的不足。然而這種方法至少簡(jiǎn)單地劃分局部區(qū)域,并沒有能夠進(jìn)一步發(fā)掘局部點(diǎn)之間存在的內(nèi)在關(guān)系。同時(shí)提取局部特征的過程是相互獨(dú)立的,點(diǎn)云子區(qū)域之間沒有信息交換導(dǎo)致部分點(diǎn)云結(jié)構(gòu)信息的丟失。也由于它只是將局部特征簡(jiǎn)單地聚合,所以區(qū)域信息還沒有被充分利用。
DGCNN[14]為代表的圖卷積技術(shù)路線[15]則提出了一種邊緣卷積的方法,在特征空間的近鄰點(diǎn)中通過KNN采樣構(gòu)建局部圖結(jié)構(gòu),得到鄰邊特征。通過共享權(quán)重的MLP對(duì)圖結(jié)構(gòu)的鄰邊特征進(jìn)行卷積操作從鄰邊集合中提取特征信息,隨后使用最大池化的方式進(jìn)行聚合進(jìn)一步得到局部特征,隨后在網(wǎng)絡(luò)結(jié)構(gòu)的每一層中動(dòng)態(tài)更新局部圖結(jié)構(gòu)。這種方法強(qiáng)化了局部結(jié)構(gòu)中點(diǎn)與點(diǎn)之間的聯(lián)系,然而DGCNN只針對(duì)特征空間中的領(lǐng)域,因此具有一定的局限性。同時(shí)由于點(diǎn)云的稀疏性和非均勻分布特點(diǎn),鄰域內(nèi)每個(gè)節(jié)點(diǎn)和中心節(jié)點(diǎn)的關(guān)聯(lián)度都是不同的,而DGCNN卻平等地處理每一條鄰邊。這種提取方法有一定局限性,導(dǎo)致盡管DGCNN能夠很好地采集低級(jí)語(yǔ)義信息,卻無(wú)法很好地描述高級(jí)語(yǔ)義信息和隱式高級(jí)語(yǔ)義特征。
綜上所述,目前點(diǎn)云深度學(xué)習(xí)領(lǐng)域需求旺盛,然而現(xiàn)有主流點(diǎn)云深度學(xué)習(xí)網(wǎng)絡(luò)[16-17]在設(shè)計(jì)上存在對(duì)坐標(biāo)空間中各區(qū)域間信息傳遞的不夠重視、區(qū)域內(nèi)近鄰點(diǎn)聚合方式單一的問題,導(dǎo)致模型對(duì)區(qū)域信息、高級(jí)語(yǔ)義信息未能充分利用,限制了深度學(xué)習(xí)網(wǎng)絡(luò)提取更多特征信息進(jìn)行點(diǎn)云分類分割任務(wù)的能力。
近年來,在NLP等領(lǐng)域大火的注意力機(jī)制[18]為點(diǎn)云深度學(xué)習(xí)網(wǎng)絡(luò)的設(shè)計(jì)帶來了新的思路。注意力機(jī)制的核心設(shè)計(jì)理念是在眾多輸入信息中提高對(duì)當(dāng)前任務(wù)更為重要的信息的關(guān)注度,相對(duì)降低對(duì)其他信息的關(guān)注度,甚至直接過濾無(wú)關(guān)信息,以此解決龐大信息量帶來的信息過載問題,同時(shí)提高任務(wù)處理的效率和準(zhǔn)確性。
綜上所述,為了更好地應(yīng)對(duì)現(xiàn)有主流點(diǎn)云深度學(xué)習(xí)網(wǎng)絡(luò)在設(shè)計(jì)上存在的問題,該文提出了一種新的三維點(diǎn)云分析網(wǎng)絡(luò)EDANet,嘗試通過在特征空間和坐標(biāo)空間中分別引入特征通道注意力和局部區(qū)域注意力機(jī)制,在坐標(biāo)空間中以更廣泛的視角提煉點(diǎn)云特征信息,同時(shí)有區(qū)別地對(duì)待同一區(qū)域內(nèi)不同近鄰點(diǎn)所提供的點(diǎn)云信息。以此增強(qiáng)點(diǎn)云特征的表達(dá)能力,實(shí)現(xiàn)點(diǎn)云模型的高精度形狀分類和部件分割。同時(shí)由于沒有點(diǎn)云下采樣過程,讓分割任務(wù)避免在上采樣過程中的信息損失,進(jìn)一步提高了點(diǎn)云分割精度。
如圖1所示,EDANet由多層EdgeDualAttention模塊組成。輸入原始點(diǎn)云集合Pin={P1,P2,…,Pn},Pin∈Rn×c,其中n是原始點(diǎn)云的點(diǎn)數(shù)量,c是每個(gè)點(diǎn)的初始維度,一般為三維坐標(biāo)參數(shù),個(gè)別情況下還包含顏色或法向量等額外維度的信息。EDANet首先使用一層特征嵌入通過MLP將輸入原始點(diǎn)云數(shù)據(jù)的維度c向更高的維度d映射,方便后續(xù)處理的同時(shí)增強(qiáng)點(diǎn)云的信息表達(dá)能力。
圖1 EDANet架構(gòu)
其中,EdgeDualAttention從局部和全局兩個(gè)方面綜合計(jì)算了注意力權(quán)重,通過對(duì)這兩個(gè)模塊得到的權(quán)重信息進(jìn)行加權(quán)求和來深入挖掘每個(gè)點(diǎn)的上下文表示。逐層聚合不斷提煉積累特征信息,得到不同尺寸的點(diǎn)云特征矩陣,最終將不同尺寸的逐點(diǎn)特征拼接通過max-pooling與avg-pooling相結(jié)合的池化手段得到全局特征用于完成形狀分類任務(wù)。
分割模型與分類模型基本一致,但由于部件分割需要獲取逐點(diǎn)特征,因此分割網(wǎng)絡(luò)需要在分類模型得到的全局特征基礎(chǔ)上repeat并與之前各層得到的不同尺寸的逐點(diǎn)特征拼接,以此補(bǔ)全得到同時(shí)具備全局特征信息與局部特征信息的逐點(diǎn)特征,用于完成部件分割任務(wù)。
如圖2所示,EdgeDualAttention由三個(gè)主要部分構(gòu)成:Edge Create模塊負(fù)責(zé)構(gòu)建一個(gè)邊緣特征集合,Dual Attention模塊負(fù)責(zé)從全局和局部?jī)蓚€(gè)方面綜合考慮點(diǎn)對(duì)之間的相關(guān)性,以獲得更豐富的上下文信息,Feature Aggregation模塊負(fù)責(zé)聚合采集得到的特征信息并送入下一層網(wǎng)絡(luò)。
圖2 EdgeDualAttention模塊
Edge Create:輸入點(diǎn)云數(shù)據(jù)Pin∈Rn×d,通過KNN采集每個(gè)點(diǎn)的k個(gè)近鄰點(diǎn)組成近鄰點(diǎn)集分類模型接收n個(gè)點(diǎn)作為輸入,為每個(gè)點(diǎn)采集其在特征空間中的k個(gè)近鄰點(diǎn)組成邊緣特征集L={L1,L2,…,Ln},L∈Rn×k×d,其中{Li∈Rk×d|i=1,2,…,n}表示每個(gè)局部鄰域,通過Li與K可以唯一確定一個(gè)區(qū)域的某一個(gè)點(diǎn)。
Dual Attention:如圖3所示,為了更好地表述高維語(yǔ)義信息同時(shí)增加特征之間的區(qū)分度,該文構(gòu)建了特征通道注意力模塊Channel Attention Module(CAM)和局部區(qū)域注意力模塊Local Region Attention Module(LRAM)(將在后續(xù)詳細(xì)描寫)。這兩個(gè)模塊基于多頭自注意力構(gòu)成,主要功能分別是對(duì)任意通道之間的相互依賴進(jìn)行建模以及計(jì)算任意區(qū)域之間的相互依賴權(quán)重。
圖3 Dual Attention子模塊組成
自注意力機(jī)制作為注意力機(jī)制的改進(jìn)[19],其減少了對(duì)外部信息的依賴,更擅長(zhǎng)捕捉數(shù)據(jù)或特征的內(nèi)部相關(guān)性。常規(guī)卷積層通過卷積核和原始特征的線性組合得到輸出特征,由于卷積核通常是局部的,導(dǎo)致許多任務(wù)因語(yǔ)義信息不足影響了最終性能。而自注意力機(jī)制通過捕捉全局的信息來獲得更大的感受野和上下文信息,對(duì)不同的特征和點(diǎn)進(jìn)行了針對(duì)性的處理,為處理不同類型的信息提供了額外的靈活性,擴(kuò)展了CNN的表達(dá)能力。同時(shí)為了克服局部感受野的極端數(shù)值感染,為了更全面地獲取不同層次的特征信息,Dual Attention引入了多頭注意力的架構(gòu)。
多頭注意力定義如下:
Multihead(E)=(head1⊕…⊕headn)Wo
其中,⊕表示矩陣拼接操作,Wo表示一個(gè)可學(xué)習(xí)參數(shù),以更好地聚合多頭注意力所采集的信息。headi代表多頭注意力架構(gòu)中的第i個(gè)CAM頭或者LRAM頭。通過引入多頭注意力的架構(gòu)使得輸入每個(gè)CAM或LRAM模塊的向量集合E的特征維度d下降為d/h。這在一定程度上可以降低模塊的計(jì)算復(fù)雜度,增加并行運(yùn)算效率。
通道注意力模塊CAM:如圖4所示,首先通過卷積運(yùn)算處理輸入的向量集合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)和更新每個(gè)特征維度的映射來捕獲任意兩個(gè)特征維度映射之間的依賴關(guān)系,以此達(dá)成對(duì)區(qū)域內(nèi)信息的更高效聚合。
圖4 通道注意力
當(dāng)前大多數(shù)點(diǎn)云分析網(wǎng)絡(luò)在對(duì)鄰域信息采樣聚合時(shí)選擇了所有節(jié)點(diǎn)共享相同的卷積核參數(shù),然而近鄰點(diǎn)對(duì)于中心點(diǎn)的影響是各不相同的,這必然會(huì)限制模型的能力。通過引入特征注意力機(jī)制重新構(gòu)建相鄰節(jié)點(diǎn)的關(guān)系,對(duì)鄰域節(jié)點(diǎn)信息做到有區(qū)別的聚合,實(shí)際上可以視作為鄰域的每個(gè)節(jié)點(diǎn)隱式分配不同的卷積核參數(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)和更新每個(gè)區(qū)域的映射對(duì)各區(qū)域之間的依賴關(guān)系加以捕獲,以此加強(qiáng)區(qū)域信息之間的流動(dòng)。
圖5 局部區(qū)域注意力
當(dāng)前大多數(shù)點(diǎn)云分析網(wǎng)絡(luò)只是孤立地學(xué)習(xí)每個(gè)點(diǎn)的特征信息,未能充分探索上下文表示,變相地放棄了開發(fā)每個(gè)點(diǎn)之間的相關(guān)信息,這直接導(dǎo)致具有較強(qiáng)上下文表示的點(diǎn)及區(qū)域權(quán)重過大主導(dǎo)整個(gè)場(chǎng)景。通過引入局部區(qū)域注意力機(jī)制重新評(píng)估相關(guān)區(qū)域的關(guān)系,改進(jìn)非優(yōu)勢(shì)目標(biāo)的上下文表示,有意識(shí)地增加非優(yōu)勢(shì)目標(biāo)的權(quán)重。
Dual Attention可以總結(jié)為:
Fout=CAM(Fin)⊕LRAM(Fin)
通過構(gòu)建CAM和LRAM模塊計(jì)算每個(gè)特征圖通道在全局點(diǎn)和局部區(qū)域之間的相互依賴權(quán)重來更新特征信息,確保所需提取的特征具有更高的特征區(qū)分度。因?yàn)樘卣魍ǖ琅c局部區(qū)域的權(quán)重需要隨客觀變化而變化,所以最后通過兩個(gè)可學(xué)習(xí)參數(shù)WCAM與WLRAM,對(duì)CAM得到的特征矩陣Z以及LRAM得到的特征矩陣Z''分別將其特征維度從d'映射回d,得到FCAM∈Rn×k×d,FLRAM∈Rn×k×d,再將FCAM與FLRAM拼接得到輸出特征矩陣Fout∈Rn×k×2d,以此增強(qiáng)局部鄰域特征矩陣的靈活性。
Feature Aggregation:特征聚合公式可以表示為:
Gnext=max-avg-pool(MLP(concat(pi;α(pj)-pi)))
其中,α函數(shù)表示Dual attention模塊,輸入代表局部鄰域信息的邊向量集合,輸出經(jīng)過通道及局部區(qū)域注意力權(quán)重加成的鄰域信息集合,將其與中心點(diǎn)pi相減得到區(qū)域內(nèi)的鄰域特征。最后將中心點(diǎn)pi與其拼接送入MLP處理,經(jīng)過maxpool和avgpooling相結(jié)合的池化操作處理聚合得到一個(gè)融合了全局形狀信息以及局部鄰域信息的新的全局特征值Gnext送入下一層網(wǎng)絡(luò)。
實(shí)驗(yàn)環(huán)境為ubuntu18.04、PyTorch 1.7.0、Python3.8、Cuda11.0,使用兩個(gè)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)練。并在每個(gè)FC層后都加入比例為0.5的dropout,以抑制過擬合。
實(shí)驗(yàn)采用ModelNet40[21]數(shù)據(jù)集評(píng)估相關(guān)模型的形狀分類任務(wù)性能,在訓(xùn)練分類任務(wù)時(shí)每次采樣1 024個(gè)點(diǎn)送入模型。ModelNet40由包含40個(gè)類別的12 331個(gè)CAD模型組成。數(shù)據(jù)集分成了9 843個(gè)訓(xùn)練模型和2 468個(gè)測(cè)試模型。
形狀分類任務(wù)采用的評(píng)價(jià)指標(biāo)為:mAcc (mean Accuracy)和OAcc (Overall Accuracy)。mAcc是所有類別的平均準(zhǔn)確率,所有Class Accuracy 取平均值。而OAcc表示不分類別的全體數(shù)據(jù)的準(zhǔn)確性。
對(duì)比算法包括經(jīng)典逐點(diǎn)特征信息聚合方法PointNet、PointNet++;基于樹狀結(jié)構(gòu)重新設(shè)計(jì)了點(diǎn)云信息分析架構(gòu)的Kd-Net[22];經(jīng)典的體素化點(diǎn)云信息的網(wǎng)絡(luò)架構(gòu)Subvolume[23];通過多視角轉(zhuǎn)化為二維圖像再使用CNN進(jìn)行分析的MVCNN;通過SOM直接將高維數(shù)據(jù)降維而后處理的SO-Net[24];SpiderCNN[25]則在CNN與點(diǎn)云的結(jié)合方面做出了卓越貢獻(xiàn)、動(dòng)態(tài)圖卷積代表DGCNN。
EDANet與基于深度學(xué)習(xí)各技術(shù)路線上的諸多經(jīng)典網(wǎng)絡(luò)模型使用數(shù)據(jù)集ModelNet40進(jìn)行了性能對(duì)比,如表1所示。EDANet在與這些經(jīng)典網(wǎng)絡(luò)模型對(duì)比中,無(wú)論是mAcc還是OAcc均具有較高性能提升,由此可見引入通道特征注意力以及局部區(qū)域注意力的雙重注意力機(jī)制顯著地提高了分類效果,相關(guān)分析將在后續(xù)消融實(shí)驗(yàn)中詳細(xì)介紹。
表1 MobenNet40上各模型性能對(duì)比 %
點(diǎn)云分割是一項(xiàng)具有挑戰(zhàn)性的任務(wù),旨在將3D模型劃分為多個(gè)有意義的部分。為了進(jìn)行細(xì)粒度的3D分割,實(shí)驗(yàn)最終選取數(shù)據(jù)集ShapeNet[26]進(jìn)行實(shí)驗(yàn)評(píng)估,該數(shù)據(jù)集是一個(gè)用于零件分割的對(duì)象級(jí)數(shù)據(jù)集,注釋豐富,規(guī)模較大,由16種不同大類組成,每個(gè)大類包含2~6個(gè)零件,下屬合計(jì)50個(gè)零件標(biāo)簽。作者將包含16 881個(gè)模型的數(shù)據(jù)集分成14 006個(gè)訓(xùn)練模型和2 875個(gè)測(cè)試模型。在訓(xùn)練分割任務(wù)時(shí)每次采樣2 048個(gè)點(diǎn)送入模型。
部件分割任務(wù)采用的評(píng)價(jià)指標(biāo)為:IoU(Intersection over Union),表示某一類的預(yù)測(cè)結(jié)果和真實(shí)值的交集與其并集的比值。cIoU(category IoU),表示平均所有類的預(yù)測(cè)結(jié)果交并集。mIoU(mean IoU),表示取出所有類別中每一項(xiàng)的預(yù)測(cè)結(jié)果交并集取平均值。ShapeNet上各模型性能對(duì)比如表2所示。
表2 ShapeNet上各模型性能對(duì)比 %
可見與近期相關(guān)研究相比,EDANet方法也達(dá)到較高水平。
為了驗(yàn)證CAM以及LRAM組成Dual attention在EDANet網(wǎng)絡(luò)中的有效性,嘗試在ModelNet40數(shù)據(jù)集上進(jìn)行了消融實(shí)驗(yàn)。除了包含完整CAM和LRAM的EDANet,還設(shè)計(jì)了三組額外模型進(jìn)行對(duì)比,不包含Dual attention的模型EDANet-Dual,包含CAM但不包含LRAM的模型EDANet-LRAM,包含LRAM但不包含CAM的模型EDANet-CAM。比較結(jié)果如表3所示。
表3 不同模塊在EDANet中的影響 %
可見當(dāng)LRAM與CAM均加入EDANet時(shí),分類準(zhǔn)確率將達(dá)到最大值。
當(dāng)前大多數(shù)點(diǎn)云分析網(wǎng)絡(luò)只是從增強(qiáng)區(qū)域特征提取的角度來增強(qiáng)網(wǎng)絡(luò)模型的表達(dá)能力,卻忽略了子區(qū)域之間特征信息的交換。EDANet嘗試通過局部區(qū)域注意力機(jī)制以自適應(yīng)的學(xué)習(xí)特征權(quán)重并獲取子區(qū)域之間局部特征的相關(guān)性。同時(shí)特征通道注意力模塊專門對(duì)每個(gè)點(diǎn)的特征的相互依賴關(guān)系進(jìn)行建模,而局部區(qū)域注意力模塊則將每個(gè)局部鄰域視為一個(gè)整體,并通過捕獲每個(gè)局部領(lǐng)域之間的特征映射的相互依賴關(guān)系來更新權(quán)重。EDANet在多個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,其在點(diǎn)云分類分割任務(wù)上成功實(shí)現(xiàn)了高性能。同時(shí)通過消融實(shí)驗(yàn)證明了文中網(wǎng)絡(luò)模型的有效性。