?

基于無監督域適應的室外點云語義分割

2024-03-05 08:20胡崇佳劉金洲
計算機與現代化 2024年1期
關鍵詞:語義編碼特征

胡崇佳,劉金洲,方 立

(1.福州大學電氣工程與自動化學院,福建 福州 350108;2.中國科學院海西研究院泉州裝備制造研究中心,福建 泉州 362200)

0 引 言

大規模場景點云的語義分割是機器人場景感知并進一步加工處理的前提,3D 點云語義分割被廣泛用于自動駕駛、遙感等領域。隨著計算機性能的提升,深度學習算法正在逐漸取代傳統分割方法。

根據對點云數據的處理方法,大致可以把基于深度學習的點云語義分割方法分為基于投影的[1-3]方法、基于體素的[4-6]方法和直接基于點的方法。其中基于投影的方法將點云轉換為圖像,借助圖像分割技術進行分割后再重映射回點云空間,完成點云的分割,此方法降低了三維點云處理的難度?;隗w素的方法將點云轉化為體素,利用三維卷積進行分割,此方法保留了點云的三維幾何結構。這2 種方法在處理大規模點云時計算成本都很高,且需要額外的方法將點云轉化為某種中間表示,再將中間分割結構重映射回點云,此過程會丟失大量的點云空間信息。

基于點的方法直接處理3D 點云。2017 年,Qi等[7]提出了PointNet網絡,通過使用多層感知機(Multilayer Perceptron,MLP)來學習點特征,使用最大池化函數學習全局特征。雖然MLP 能高效提取點云信息,但是不能為每個點獲取廣泛的上下文信息。PointNet++[8]采用分層擴大感受野的方法逐步聚合點云局部特征。KPConv[9]設計了一種剛性或可變形的核卷積算子,通過模型訓練動態調整核算子的權重來聚合領域信息。PointMLP[10]提出了一種簡單的前饋殘差MLP 結構來學習點云特征,通過分層聚合MLP提取全局特征,并放棄使用精細的局部幾何提取器。但是這些方法只適用于小規模的點云集,無法處理大規模的點云。主要原因在于:它們的局部特征學習方法通常依賴于計算復雜的核化或圖構造方法或者受限于大規模點云接受域的大小。

為了能處理大規模點云,Xu等[11]提出了距離-點-體素融合網絡,通過充分利用不同視圖在分割任務中的優勢同時規避不足,來完成分割任務。Zhou等[12]考慮室外駕駛場景掃描的點云密度隨著傳感器的距離增加而下降,提出了Cylinder3D方法,使用柱面剖分和非對稱卷積。SPG[13]將點云分割后再建立超點圖,利用圖卷積進行上下文語義分割。Hu等[14]提出了一種高效的輕量化網絡RandLA-Net 用于大規模點云分割。該網絡使用隨機點采樣,在存儲和計算方面獲得十分高的效率。Shuai 等[15]在RandLA-Net 的基礎上結合不同尺度的上下文信息,并利用圖卷積處理全局特征。而蘇鳴方等[16]在其基礎之上,拋棄了特征增強模塊,將文獻[15]中的后向注意力融合傳播模塊進行擴展,以翻轉的方式構建了前向注意力融合模塊,將前向注意力融合模塊和后向注意力融合模塊組合,構建雙向上下文注意力融合模塊,充分利用各層信息。

訓練深度模型需要大量標注點云,但是采集與標注大規模點云數據所耗費的時間與人工成本都是昂貴 的。因 此STPLS3D[17]、SqueezeSegV2[18]和Xiao等[19]的方法合成虛擬激光點云,并將其作為額外的數據來源。通過無監督域自適應方法(Unsupervised Domain Adaption,UDA),將模型從有標簽源數據遷移到無標簽的目標數據。UDA 的核心思想是最小化源域和目標域的特征分布之間的差異,學習領域不變的特征。文獻[20]首次將UDA 應用于語義分割網絡,并通過全局特征對齊和標簽統計匹配來解決域適應問題。針對語義分割任務存在標記樣本數量不足的問題,SqueezeSegV2 使用GTAV 合成了虛擬點云,在文獻[21]的基礎上提出了一種領域自適應訓練方法,通過減少源域和目標域之間的分布差距來完成訓練。但SqueezeSegV2沒有完成端到端的訓練,也沒有考慮不同域之間的噪聲差異。Zhao 等[22]使用自監督的方法減小噪聲、學習領域間不變的特性和空間自適應特征對齊,通過像素計算和特征學習來縮小仿真數據和真實數據之間的域差距。

本文通過UDA 的方法,對少樣本、少標簽的點云數據進行分割。以SensatUrban[23]作為源域訓練集,SPTLS3D的真實數據集中的一部分作為目標數據集,改進的RandLA-Net 網絡先完成模型的預訓練,再進行網絡的遷移。

本文主要進行了以下2 個方面的工作:1)對RandLA-Net 網絡進行改進;2)提出通過UDA 和微調的辦法將源域模型遷移到目標模型上完成分割,以解決訓練需要大量點云數據的問題。

1 RandLA-Net改進和UDA方法

1.1 RandLA-Net模型

RandLA-Net 本身是一個基于點的網絡模型,采用類U-net[24]網絡的編碼-解碼結構。編碼階段有4個編碼層,每個編碼層有一個局部特征聚合模塊(Local Feature Aggregation,LFA)和一個下采樣操作,LFA 模塊通過K 最近鄰算法(K Nearest Neighbor,KNN)尋找點的K個最鄰近點,再進行相對位置編碼。LFA模塊用來提取點的高維特征,特征維度每一層都在上升(8->64->128->256->512),之后通過隨機下采樣保留1/4 的點云(N->N/4->N/16->N/64->N/256)。同時,將輸入點云送入一系列MLP 層提取點的高維特征,通過全局池化獲取全局信息再和每個點的局部信息堆疊起來,送入到模型解碼階段,如圖1 所示。在解碼階段,網絡使用最近鄰插值實現點云的上采樣過程,同時將解碼特征和對應的編碼特征堆疊起來,再進行解碼。網絡最后通過3 個全連接層和一個dropout層預測每個點的語義類別。

圖1 模型架構

1.2 局部特征聚合模塊

如圖2 所示,LFA 模塊由局部空間編碼(Local Spatial Encoding,LocSE)、注意力池化(Attention-Pooling)和擴張殘差塊(Dialted-Res-Block)組成。LocSE 用來獲取點云的鄰域特征。首先,模型搜尋鄰域點,對鄰域內的點進行相對位置編碼,將結果和原屬性堆疊。Attention-Pooling 聚合鄰域特征,在空間編碼后計算注意力權重,并將權重和特征相乘求和,得到新的特征向量。輸入點云經過,2 個LocSE 和Attention-Pooling 后,再通過殘差連接將初始輸入的點云特征和新的特征進行疊加,以此增加感受野,提升精度,防止過擬合。

圖2 局部特征融合模塊

1.3 注意力改進

PointNet++[2]、PointCNN[25]等通常使用最大、平均池化來整合相鄰特征,導致大部分信息丟失。RandLA-Net依賴強大的注意力機制來主動學習重要的局部特征。它的注意力池化單元由以下步驟組成。

圖3 原注意力模塊

圖4 改進注意力模塊

其中,W是共享MLP 的可學習權重,g()函數代表共享MLP網絡。

2)整合數據。注意力權重被視為網絡自動學習選擇重要特征的因素。該點的加權信息總和為:

總得來說,給定輸入點云P的第i個點pi,通過LocSE 和Attentive-Pooling 學習近鄰K2個點的幾何信息和特征,最終生成新的信息特征向量,其感受野在每一次的編碼過程中逐步擴大。

1.4 信息疊加

點云分割需要綜合局部和全局的信息。在RandLA-Net網絡中,點云每經過一次編碼層,就會損失部分點云數據。在此過程中,雖然點的感受野擴大了,但卻導致初始全局信息的損失,對復雜形狀的對象邊緣產生錯分割和過分割。當將點云降采樣方法從隨機下采樣改為最遠點降采樣時,可使模型效果得到很大的提升。但對于輸入數量達到萬級別的大規模點云,網絡使用最遠點降采樣的效率低于隨機降采樣,此方法背離了原RandLA-Net的思想。因此,本文嘗試在模型中額外補充全局信息。借鑒PointNet 分割網絡思路,接入point支路,將全局特征和單個點信息融合。對于每一個N×3(無RGB)/N×6(帶RGB)的點云輸入,保持與模型編碼層同維度變化的點云卷積操作,將特征最終編碼成N×512 的高維特征,再引入最大池化操作,將所有維的特征都只保留最大值,得到一個1×512 的全局特征。全局特征和編碼后單個點的特征連接,這樣每個點都擁有了局部和全局信息,再送入后續的解碼階段。

1.5 無監督域自適應

SqueezeSegV2 通過生成大量虛擬數據點云完成分割訓練。然而生成大量的虛擬點云數據是一個復雜的工程,SqueezeSegV2闡明了在合成數據上訓練的模型應用在真實數據上存在域轉移問題,虛擬點云與真實環境的集合結構、噪聲模式、采樣方法都有差別。STPLS3D 雖然通過大量較復雜的方法生成了可用于訓練的點云環境,但花費時間較長,耗費一個月的時間才能合成16 km2的點云數據。

本文使用圖5 的方法,以源模型為基礎,訓練目標模型。具體操作為首先將源模型權重全部凍結,以保證源模型分割效果的準確性,目標模型只訓練解碼模塊和語義分割層。其次通過微調這些層的網絡權重,計算源域和目標域之間的域間差異并縮小差異,將模型遷移到目標域。

圖5 UDA模型

本文使用Coral Loss[26]來評估域間損失。定義Coral Loss的源域和目標域的協方差距離為:

其中,源域樣本和目標域樣本量分別為nS、nT,CS、CT表示為特征協方差矩陣。2 個協方差表達式中,減號后為樣本均值。其中源域訓練樣本DS={xi},x∈Rd。目標域訓練樣本DT={ui},u∈Rd,d為網絡最終層的輸出個數。

2 實驗結果與分析

在本章中,本文測試改進網絡的有效性并且驗證其對少場景點云的分割效果。為了測試改進的RandLA-Net對點云分割的效果有提升,分別在2個大規模語義分割數據集Semantic3D[27]和SemanticKITTI[28]上評估網絡模型性能。在本文遷移實驗中,選擇在SensatUrban 數據集上將訓練好的模型遷移到SPTLS3D 的子集上。實驗時,本文在CPU 為AMD EPYC 7352 和顯卡為GeForce RTXA6000、操作系統為CentOS Linux 7.9 的環境上訓練模型。訓練過程參數設置與RandLA-Net 源碼的設定基本一致,采用Adam 優化器更新步長,初始學習率設置為0.01,每個epochs就下降5%。

本文以平均交并比(mean Intersection over Union,mIoU)和總體準確率(Overall Accuracy,OA)作為實驗結果的主要評估指標,其公式如式(5)、式(6)所示:

其中:c為類別總數,C為語義類別,表示正確識別為c類的點數;表示錯誤識別為c類的點數;表示錯誤識別為非c類的點數表示正確識別為非c類的點數。

2.1 語義分割評估

2.1.1 SemanticKITTI評估

SemanticKITTI 是KITTI Vision Benchmark 的 歷程計數據集,顯示了市中心的交通、住宅區以及德國卡爾斯魯厄周圍的高速公路場景和鄉村道路。原始歷程計數據集由22 個序列組成,每次掃描0.1 百萬點,并標注在19 個語義類中,將序列00 到10 拆分為訓練集,其余拆分為測試集。

表1 分別記錄了網絡訓練的OA、mIoU 和各類的IoU 值,其中RandLA-Net(tensorflow1.x 體系下)訓練SemanticKITTI 時mIoU 達到了53.9%,本文只達到了53.05%,尚有一些差距。本文改進的模型OA 達到了87.80%,mIoU 達到了54.28%。在19 個類別中的11個類別獲得了更好的分割精度結果,對于如自行車、卡車等的分割精度有普遍的提升,很遺憾,對于摩托騎手這個標簽依舊沒有效果??傮wmIoU 和OA 分別提升了1.23 個百分點和0.79 個百分點。本文算法通過額外提取全局信息,在稀疏性較大的大規模激光雷達點云數據中表現出良好的分割結果。復雜結構類別由于點云的稀疏性導致物體信息不充分,加大了網絡提取特征的難度,但本文特征融合過程中加強了全局信息和局部信息交流,增強了語義分割的效果。

表1 在SemanticKITTI數據集上的結果比較

2.1.2 Semantic3D評估

Semantic3D 數據集包含了8 個語義類,包含超過40 億個點,涵蓋了廣泛的城市戶外場景:教堂、街道、鐵軌、廣場、村莊、足球場和城堡。該數據集具有在線評估的2 個測試集:完整測試集(semantic-8)具有超過20 億個點的15 個場景,而其子集(reduced-8)具有采樣點為1億的4個選定場景。

在本文實驗中,使用點的3D 位置和顏色作為特征輸入進行訓練,推斷整個reduced-8 測試集的密集場景。RandLA-Net 原效果使用作者發布的代碼在tensorflow 2.0 上運行的結果作為參考對比。如表2所示,本文在8個類中有5個類超過了原RandLA-Net效果,其中建筑和硬景觀的效果提升最為明顯,其IoU 分別提升了2.62 個百分點和13.67 個百分點??傮wOA達到了90.57%,mIoU達到了71.91%。

表2 在Semantic3D數據集上的結果比較

2.2 消融實驗對比

為了驗證point 模塊(Point-Randlanet)和改進的Att 模塊(Att-Randlanet)的有效性,在SemanticKITTI上進行消融實驗,如表3 所示。單增加point 模塊后OA 提升1.03 個百分點,mIoU 提升1.06 個百分點。增加point 模塊后,19 類中有11 類中獲得更好的效果,但與本文方法效果提升的類別卻有些許不同。單改進的Att模塊后OA下降0.1個百分點,但是mIoU提升0.73 個百分點,19 類中有10 類出現了更好的效果,但導致部分類別的分割效果出現下降,并未出現整體性的效果提升。從實驗效果分析而言,2 個模塊并非整體性地提升網絡的性能,而是對于某一些類別產生了更為優化的效果,同時對另一些類起到了反優化的結果,如Fence的效果比原網絡效果更差。

表3 在SemanticKITTI數據集上的消融實驗

2.3 遷移學習實驗效果

SesatUrban 數據集包含了3個英國城市(伯明翰、劍橋以及約克)7.6 km2中的近30 億具有詳細語義標注的點,其中每個點都被標記為13 個語義類別之一。與DALES 數據集類似,將每個區域點云劃分成為一系列大小相似的點云塊,以確保能夠輸入到現有的GPU 中進行訓練和測試。其中每個點云塊約為400×400 m2。

STPLS3D[15]利用了一種合成數據生成方法,進一步構建了一個大規模攝影測量3D點云數據集。它由真實和合成環境的高質量、豐富注釋的點云組成,按照標準攝影流程重建了1.27 km2的點云景觀。此數據集在4 個真實的地點進行調查,包括南加州大學公園小區(USC)、位于卡特琳娜島的箭牌海洋科學中心(WMSC)、奧蘭治縣會議中心(OCCC)和一個住宅區(RA)。使用標準攝影測量過程重建3D 數據,并使用6 種語義類別標簽進行標注。本文使用USC 和RA 這2 個地區的點云數據作為目標數據,只用RA 點云的標簽進行驗證。

本文實驗在SensatUrban 數據集上進行預訓練,保存最優結果,再通過UDA 的方法對模型權重進行微調,對比遷移前和遷移之后的模型效果,并且在Pytorch 上實現只使用2 個地區的點云數據進行分割訓練作為基礎指標,結果如表4 所示。無論是原模型RandLA-Net還是本文方法遷移前后模型對地面的判別沒有太多變化,但對于植被和建筑的效果有了明顯的提升,其中RandLA-Net分別提升了19.23個百分點和9.64個百分點。而本文方法分別提升23.75個百分點和10.04個百分點。本文方法的最終分割效果比原模型高0.77 個百分點。而不使用遷移直接進行訓練的RandLA-Net 模型最終mIoU 的分割效果比使用遷移的RandLA-Net 要低8.06 個百分點,比本文方法要低8.83個百分點。最后,本文將預測結果還原到原始點云上,對比了2 個模型在遷移后對于2 個地區的分割效果,如圖6 所示??梢钥闯鍪褂昧吮疚姆椒ǖ姆指钚Ч萊andLA-Net要好。

表4 遷移實驗結果對比

圖6 預測結果

3 結束語

針對大型場景下點云語義分割數據量需求大、難獲取的問題,本文使用改進的網絡通過UDA 的模型遷移方法,利用在SensatUrban 數據集上學習到的先驗知識,遷移到數據量小、少標簽的STPLS3D 的數據子集上,從而解決點云獲取成本高,標注難的問題。與之前的SqueezeSegV2 通過生成大量的虛擬數據點云來進行分割相比,更為簡單方便。實驗結果表明,網絡的改進有效地提高了整體分割精度;在遷移對象只擁有源數據1/30的數據量時,依舊可以達到一個令人滿意的效果。誠然該方法也有很多弊端,如受到預訓練數據集的先天限制,只能選擇數據集之間相似的對象進行遷移。由于在完整激光點云掃描計算的統計數據偏向于最普遍的類別,例如道路和建筑物,從而導致代表性不足的類別的適應性較差。因此下一步將嘗試克服因數據樣本不均衡導致對某些類別分割效果不好的問題。

猜你喜歡
語義編碼特征
基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達圖像配準
《全元詩》未編碼疑難字考辨十五則
語言與語義
子帶編碼在圖像壓縮編碼中的應用
如何表達“特征”
不忠誠的四個特征
Genome and healthcare
抓住特征巧觀察
“上”與“下”語義的不對稱性及其認知闡釋
認知范疇模糊與語義模糊
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合