李文舉, 姬倩倩, 沙利業, 儲王慧, 崔 柳
(1.上海應用技術大學 計算機科學與信息工程學院,上海 201418;2.上海普利森配料系統有限公司,上海 201108)
隨著三維采集技術的飛速發展,點云分類與分割任務作為三維場景理解中重要的基礎性問題,被廣泛地應用在自動駕駛、機器人導航、醫學成像、室內場景分析等實際場景中[1-3]。
由于點云具有無序性、稀疏性及非結構化特性,使用傳統的神經網絡模型處理點云時需要將不規則的點云形式轉換為高度規則的輸入格式,例如使用投影、體素格劃分等方法,這種間接的轉換過程不僅會造成數據的幾何信息丟失,還會增加額外的計算量,因此,后續的模型主要使用直接基于點云的方法[4-5]。
PointNet[6]網絡直接基于原始點云進行特征處理,該網絡通過多層感知機(multi-layer perceptron,MLP)學習單個點的特征并用對稱函數編碼全局信息,解決了點云的無序性與置換不變性等問題,缺點在于只捕捉到單個點與全局點的特征信息,忽略了局部特征信息。針對其缺點改進的PointNet++[7]模型利用最遠點采樣和球查詢的方法構建局部鄰域以提取局部特征,在一定程度上緩解了上述問題,但忽略了點云鄰域關系和空間特征信息,不利于獲取語義信息。
為了更有效地分析點云這類不規則數據,越來越多的研究開始使用圖神經網絡(graph neural network, GNN)將圖學習應用到點云數據上。在圖結構中,每個節點都含有豐富的特征信息,邊代表節點之間的依賴關系。基于圖神經網絡的點云處理方法可以將點云中的每個點及其鄰接點構建成圖結構,進而直接對點云進行卷積,可以充分利用點云的結構特點,有效減少空間幾何信息的損失。DGCNN[8]將圖神經網絡應用到點云處理的過程中,使用K近鄰(K-NN)算法構建每個點的局部鄰域,并使用邊緣卷積算子替換了PointNet網絡中疊加的多層感知機,實現了在保持置換不變性的基礎上捕捉局部幾何信息,但由于忽略了點云的幾何形狀信息導致丟失了部分有效特征。DeepGCNs[9]集成殘差連接、密集連接和空洞卷積構建一個深層次的GCN(graph convolution network)模型。該網絡在不損失分辨率的情況下捕獲到了較大的感受野,實現了較高性能的點云語義分割,但由于網絡層次較深,會造成過多的內存開銷。SNEDA[10]模型基于圖注意力方法學習符號網絡節點嵌入,有效捕獲了不同鄰居節點對中心節點的貢獻和影響。GACNet[11]根據不同相鄰點和特征通道的空間位置以及特征差異為每個鄰接點分配注意力權值,充分學習和聚合了局部結構信息,但忽略了遠程點信息和空間幾何信息。GAPointNet[12]將自注意力機制與GCN結合,提供了一種基于多頭注意力機制的點云分割的網絡,但其對點云的泛化能力較差。PointMLP[13]是一種僅使用殘差MLP模塊進行點云分析的模型,避免了由復雜的局部特征提取引起的高額計算開銷,但分割精度有待提升。
針對上述問題,本文提出了一種基于圖游走與圖注意力的點云分類與分割網絡。首先,通過構造點云同構圖,進而在圖上進行有導向的游走,聚集出一系列固定數量和長度的游走曲線,以此捕獲遠距離的點云特征和額外的幾何信息。其次,結合圖注意力算法自適應地學習圖拓撲結構來聚合鄰域特征,從而實現不同節點間有區分度的特征表示。最后,對初始點云提取距離特征作為初始殘差進行殘差連接,利用連接后的特征進行后續的分類與分割任務。本文的主要貢獻如下。
(1)通過引入圖游走技術,解決了特征提取過程中3D點云的幾何特征和長距離特征匱乏的問題;對游走得到的節點使用圖注意力機制,增強了對重要節點的特征提取能力,實現了更高效地聚合鄰域信息來更新節點特征。
(2)設計了一種嵌入初始殘差的三維點云分類與分割網絡,通過在初始點云中提取距離特征計算初始殘差,解決了網絡圖卷積層數過多時出現的過平滑的問題。
(3)在合成數據集和真實世界數據集上對點云分類、分割,進行了多次實驗,結果驗證了所提網絡模型的有效性。
基于圖游走和圖注意力的點云分類與分割網絡模型主要由多個GWA(graph walk and attention)層構成,GWA層由最遠點下采樣模塊(farthest point sampling, FPS)、初始殘差模塊、圖游走模塊和圖注意力模塊組成。其中,最遠點下采樣模塊獲取非局部特征和縮放圖模型;初始殘差模塊主要用于獲取特征表達更豐富的初始殘差以緩解網絡的過平滑問題;圖游走模塊主要用于提取點的遠距離特征和幾何形狀特征來得到豐富的上下文信息;圖注意力模塊主要用來獲取節點間的局部鄰域特征;最后通過最大池化層和平均池化層來獲取點云的全局特征,并使用全連接層獲取用于預測的特征向量。
當圖神經網絡堆疊多層時,網絡會出現過平滑問題使得性能急劇下降。過平滑問題是指經過多次圖卷積操作后節點的特征表示變得無法區分的現象。因此,大多數圖神經網絡只有2~3層的淺層架構,這限制了它們的表達能力和對深層鄰域的利用。為了解決這一問題,受GCNII[14]的啟發,在網絡的特征融合過程中嵌入了初始殘差模塊,如圖1所示。

圖1 初始殘差模塊
初始殘差的連接可以確保在網絡中堆疊了多個圖卷積層的情況下,每個節點的最終表示仍保留輸入層的部分特征信息,可緩解節點特征趨于一致的過平滑問題。
計算初始殘差的步驟如下。
步驟1 將原始點云P中的每個點pi看作中心節點,利用K-NN算法尋找離中心節點最近的K個鄰居節點pj來構建局部鄰域。
步驟2 計算鄰居節點與中心節點的距離特征,融合鄰居節點、中心節點的空間信息及距離信息得到初始殘差p,數學描述為
(1)

步驟3 將初始殘差p和當前特征f融合以更好地聚集上下文信息,計算公式為
f′=max(MLP(p⊕f))。
(2)
式中:⊕表示向量的拼接操作;MLP表示多層感知機。
由于離散的點云對象缺乏足夠的三維幾何圖形的形狀描述符,受CurveNet[15]的啟發,引入一種圖游走方法來捕獲點云中的幾何信息和遠距離特征,即對原始點云建立同構圖,通過在圖上進行有導向的游走采樣出不同的游走曲線,然后對曲線進行聚合以增強其點云中逐個點的特征。
1.2.1 圖構建

1.2.2 分組
(1)選擇起始點。采用TOP-K選擇策略,通過MLP學習每個點的特征,并使用sigmoid門控得到每個點的得分,得分最高的M個點作為游走的起始點S={s1,s2,…,sM},由此引出M條游走曲線。
(2)構建游走策略。在得到起始點集后,對每個節點si使用式(3)中的可學習的π(·)策略找到下一個要游走的點si+1。即對M個起始點計算K近鄰,并使用MLP學習K個鄰接點的特征分布,為了便于梯度回傳,使用gumbel-softmax進行歸一化并計算出每個點的概率得分,選出概率最大的點作為下一個要游走的點,數學表達如式(4)所示。對預定義的π(·),通過反復執行等式(3)L次,對曲線進行分組。游走曲線如圖2所示。

圖2 游走曲線示意圖
si+1=π(si);
(3)

(4)

1.2.3 聚合


圖3 游走特征聚合模塊
圖游走機制的偽代碼如下。
輸入:節點特征F,節點集合V;
輸出:游走后各節點更新后的特征向量f。
① for eachVi∈V:
x= torch.sigmoid(self.MLP(Vi));
start= torch.topk(x,curve_num);
end for
② 由start找到游走起始點S={s1,s2,…,sM};
③sj= KNN(s,k); /*找到s節點的K近鄰*/


⑥ 與N(s)相乘后求和加得到下一個游走點si+1;
⑦curves.append(si);/*得到曲線特征*/
⑧ for eachxi∈curves:
f= self.attpool(xi);
end for

⑩ 結束。
由于點云屬于非規則化數據,之前大多數方法往往使用固定的核函數來更新節點的特征信息,忽略了屬于同一對象的點之間的結構聯系和不同鄰居節點對中心節點的重要程度不同等問題。圖注意力可以動態學習不同節點的特征,選擇性地關注其中最相關的部分,為鄰居節點分配不同的注意力權重,動態適應對象的結構。
該模塊實現了一個可學習的函數:RD→RD′,即假設給定的輸入是D維特征,通過自適應地聚合節點的K鄰域特征將特征映射到D′維空間,能夠實現比以往的圖卷積更準確地反映局部幾何特征,具體每個相鄰頂點的注意力權重計算方法為
eij=a(Mg(Δp),Δf)。
(5)
式中:a代表共享注意力機制;Δp=pj-pi表示原始點云中相鄰頂點之間的空間關系;Mg為多層感知機MLP,目的是將輸入空間的空間位置關系映射到特征空間;Δf=fj-fi表示特征空間的點云特征值差異,以促進注意力更多分配給相似的鄰居。
為了使注意力權重系數適應不同節點和空間尺度上大小不一的鄰居,使用softmax函數對其進行歸一化,如式(6)所示。
(6)
將歸一化后的注意力系數和鄰接點特征相乘得到加權鄰居特征并求和,得到更新后的節點特征,計算方法為
(7)

點云分類任務的側重點在于捕捉點云的整體抽象特征,堆疊多個GWA模塊,這有助于在捕獲點云全局特征的同時保留更多的局部細節特征。GWA模塊的作用是將維度為n×d的輸入特征轉換為n×dout的輸出特征,其詳細架構如圖4所示。每一層GWA使用最遠點采樣方法對上一層的輸出特征進行均勻下采樣。首先,在GWA模塊的首尾處使用多層感知機捕獲點云的上下文信息;其次,使用圖游走方法聚合遠距離特征及點云的幾何形狀信息;最后,利用K-NN算法搜索每個節點的K鄰域并結合圖注意力機制聚合鄰域特征來更新點特征。如圖5所示,分類網絡的最后一個GWA層的輸出特征維度為512,使用MLP將其升維到1 024,進行最大池化和平均池化得到全局特征,并將其輸入到一個3層的全連接網絡里得到最終的分類結果。其中,c表示點云分類的數據集中物體的類別數。

圖4 GWA模塊

圖5 點云分類網絡模型結構
本文提出的點云分割模型如圖6所示,由多個GWA層和FP層(feature propagation)構成,網絡采用Encoder-Decoder架構模式。首先,對點云下采樣并進行特征編碼,壓縮原始輸入點云的空間分辨率并逐步提取更高級的抽象語義特征;其次,通過特征傳播和上采樣恢復原始輸入分辨率以進行像素級的預測。其中,編碼器部分與分類網絡相似,使用多個GWA層提取點云特征并降低點云的分辨率;解碼器部分中的上采樣模塊使用線性插值的方法逐層恢復特征的分辨率,并利用注意力模塊抑制無關特征,關注重要特征。

圖6 點云分割網絡模型結構
本文在ModelNet40數據集[16]和ScanObjectNN數據集[17]上進行點云分類實驗,在ShapeNetPart數據集[18]上進行點云部件分割實驗,在Toronto-3D數據集[19]上進行點云語義分割實驗,以此驗證所提出方法的有效性。實驗在如下環境下進行:顯卡型號NVIDIA RTX2080Ti,Pytorch版本1.10.0,python版本3.8,CUDA版本11.3。
2.1.1 點云分類數據集
ModelNet40是一個含有40個類別的12 311個網格CAD模型的數據集,其中9 843個模型用于訓練,2 468個模型用于測試。對于每個模型,按照與PointNet中相同的實驗設置,從網格面上均勻采樣1 024個點作為網絡的輸入,并使用隨機縮放和擾動來進行數據增強。batchsize設置為48,其中,32個用于訓練,16個用于測試,epoch為300,使用SGD優化器優化模型,動量系數設置為0.9。初始學習率設置為0.1,并使用余弦退火衰減策略來動態調整學習率。
ModelNet40數據集雖然作為點云分析的規范基準,但在訓練過程中有著極大的不穩定性和隨機性,故本文還在ScanObjectNN數據集上進行實驗,該數據集包含了背景、噪聲和遮擋的干擾,故在該基準上測試可以得到一個更穩健且公平的實驗結果。該數據集包含15 000個對象,分為15個類別和2 902個獨特的實例對象。除epoch數量為200外,其他實驗設置與ModelNet40上的設置相同。
2.1.2 點云部件分割數據集
ShapeNetPart數據集是一個用于細粒度形狀識別的點云部件分割數據集,包含16 881個預先對齊的點云形狀,可以分為16個形狀類和總共50個分割類。形狀類包含飛機、包、車、椅子、耳機等,每個形狀類被劃分為5個以內的分割類,如飛機形狀的點云會被劃分為機身、機翼、尾翼、發動機這4個零件分割類。在訓練和測試時遵循和PointNet一樣的分割方案,將12 137個模型用作訓練樣本,其余的用作驗證和測試,從每個模型中統一采樣2 048個點作為網絡的輸入。實驗設置與ScanObjectNN數據集上的參數設置一致。
2.1.3 點云語義分割數據集
Toronto-3D數據集是由車載MLS系統采集的大型城市室外點云數據集,由大約7.83×107個點組成,該數據集被手動標記為8個類別,包括道路、路標、樹木、建筑、電線、電線桿、汽車和圍欄。參數設置與部件分割時的設置一致。
2.2.1 分類結果分析
本文在ModelNet40數據集上的測試結果如表1所示。由表1可以看出,分類的總體精度OA達到了94.2%,平均分類精度mAcc達到了91.6%,與基準網絡DGCNN相比,本文算法的GWA層融合了遠距離特征和幾何關系特征,得到了更為豐富的語義信息,使得總體分類精度提高了1.3百分點,平均分類精度提高了1.4百分點。相比于近期提出的SimpleView和Diffconv網絡,本文網絡的分類性能也具有顯著優勢。

表1 不同模型在ModelNet40數據集上的實驗結果
本文在真實數據集ScanObjectNN上的實驗結果如表2所示,將數據劃分為3組進行測試,分別為有背景干擾(OBJ_BG)、無背景干擾(OBJ_ONLY)及帶有數據擾動(T50RS)的對象。其中,T50RS代表邊界框被平移(translate)、旋轉(rotate)、縮放(scale)了50%。采用基于DGCNN架構的基準模型,共有4個GWA卷積塊,輸出維度為64、128、256、512,鄰居個數為24,epoch為250。

表2 不同模型在ScanObjectNN數據集上的實驗結果
由表2可以看出,與現有方法相比,本文在無背景干擾、有背景干擾及數據擾動的情況下的分類效果都優于其他網絡,總體分類精度分別達到了86.8%、87.7%、83.7%,在數據擾動的情況下,較基準網絡DGCNN提升了5.6百分點,取得了良好的分類效果。
2.2.2 部件分割結果分析
在ShapeNetPart數據集上進行點云部件分割實驗,本文實驗結果和近年來其他模型的實驗結果如表3所示。由表3中數據可以計算出本文實驗、基準模型DGCNN及經典模型PointNet++的平均交并比mIoU分別為86.4%、85.2%和85.1%,相比之下,本文方法的mIoU較DGCNN和PointNet++分別提高了1.2百分點、1.3百分點。如表3所示,本文模型在飛機、車和吉他等8個類別上的分割性能最好,可見本文方法對細粒度較高的語義類別具有更好的分割性能,充分驗證了本文模型在點云部件分割任務中具有較強的競爭力。

表3 不同模型在ShapeNetPart數據集上的實驗結果
為了更好地展示本文方法在點云部件分割上的效果,如圖7所示,對物體部件分割進行可視化,可以看出本文網絡能夠非常清晰、準確地分割出物體的各個部件。將本文網絡與基準網絡DGCNN及真實標簽值(ground truth,GT)進行可視化對比分析,如圖8所示,從左到右分別是對同一個包、帽子、刀和杯子的部件分割效果圖,標記的黑框處代表分割時存在點的語義標簽分割混亂及錯誤的情況。可以看出,與基準網絡DGCNN相比,本文網絡語義標簽邊界處的分割效果有了大幅度提升,基本接近真實標簽的分割效果。

圖7 分割效果可視化

圖8 分割結果對比圖
2.2.3 語義分割結果分析
表4為本文方法在Toronto-3D數據集上與其他經典方法的語義分割定量結果對比。由表4中數據可以計算出本文算法分割的mIoU為82.7%,DGCNN的mIoU為49.6%,較DGCNN提升了33.1百分點。分割效果較基準網絡DGCNN有了顯著提升,并且在路標、建筑、電線、電線桿、汽車等5個類別上也取得了最好的分割結果。由于道路、圍欄和樹木的細節信息較少,本文方法對其分割效果沒有顯著提高,但仍取得了與近年來其他網絡相當的分割效果。

表4 不同模型在Toronto-3D數據集上的實驗結果
為了進一步說明本文引入的圖游走與圖注意力模塊的有效性,在ModelNet40數據集與ShapeNetPart數據集上進行了消融實驗,結果如表5所示。其中,為了避免圖卷積層過多導致的網絡過平滑現象,所有網絡模型均在融入初始殘差特征的基礎上進行。

表5 不同模塊的消融實驗
由表5可以看出,以DGCNN網絡為基準網絡模型添加圖游走模塊后,即對點云特征補充幾何語義特征和長距離特征,使點云分類的平均準確率、總體準確率和分割的平均交并比都得到了不同程度的提升,分別提升了1.2百分點、0.5百分點和0.8百分點;添加圖注意力模塊后,即僅選擇性地強調重要特征信息,使得網絡在OA指標上有0.9百分點的提升,在mIoU指標上有0.7百分點的提升;在同時加入圖游走模塊和圖注意力模塊后,網絡模型的表現更加突出,與基準網絡模型相比,其mIoU提升1.2百分點,OA提升1.3百分點,mAcc提升1.4百分點,優于消融實驗中的其他各個網絡。
由上述模塊間的消融實驗可知,本文網絡對點云數據具有較好的學習能力,對點云幾何結構特征和長距離特征與重要點特征都實現了有效補充與增強,對點云分類、分割任務起到了關鍵作用,有效地提升了網絡的性能。
本文提出的圖注意力模塊在提取點云局部特征的過程中采用K-NN算法搜集K個近鄰點構建局部有向圖,近鄰點的個數K在一定程度上會影響網絡提取到的局部特征。現有的主流網絡模型通常將K值設置為16、24、32、40,本文分別在ModelNet40數據集與ShapeNetPart數據集上進行了對比實驗,測試了不同K值對模型性能的影響,如表6所示。

表6 不同K值的對比實驗
從表6可以看出,網絡的分類性能在K為24時表現最為優秀,分割精度在K為32時最高。當K值較小時,構建的鄰域范圍過小會使模型的感受野有限,導致模型不能全面地學習到點云的幾何特征,分類精度與分割精度都偏低;當K值過大時,近鄰點過多會使不同鄰域內的點特征信息重疊冗余,分類、分割精度均有所下降,因此,選擇合適的K值會使模型性能表現更為優異。
鑒于3D點云數據的收集在現實生活中存在不確定性,如遮擋情況下只能獲取部分可見的點云。故本文采用帶有場景擾動的ModelNet40-C[26]失真點云數據集,對所提出的點云識別模型進行全面的魯棒性測試,測試結果如表7所示,其中損壞錯誤率CER越低代表模型的魯棒性越好,可以看出本文模型的CER較低,取得了較為穩健的結果,模型魯棒性較好。

表7 不同模型在ModelNet40-C數據集上的實驗結果
為了提高深度學習網絡直接對點云數據分類與分割的性能,本文提出了一種基于圖游走與圖注意力的點云分類與分割網絡。該網絡模型采用圖游走機制來提升對點云的遠距離特征和幾何結構特征的表達能力,并在特征提取過程中使用圖注意力機制,使模型聚焦于重要的特征通道和點云區域,增強了關鍵點的特征表示。通過在公共數據集上進行點云分類與分割對比實驗,取得了較好的精度效果。同時研究了在失真點云數據上的點云分類效果,實驗結果表明,網絡具有較好的魯棒性。由于圖特征收集使得模型的計算量及參數量有所上升,今后的工作重心將放在如何使模型的參數量減少的同時不損失或提升精度,進而使網絡可以更高效地處理更復雜的點云任務。