梁家安,陳 科,季 錚,管海燕
(1.南京信息工程大學 遙感與測繪工程學院,南京 210044;2.武漢大學 遙感信息工程學院,武漢 430072)
三維點云數據能夠真實地反映目標在三維空間中的幾何形態、位置朝向以及大小尺寸等屬性,基本不存在扭曲和形變。因此,由于這種幾何不失真的優越性、三維空間信息的完整性,三維點云數據近些年在各行各業已受到了廣泛的關注。目前,三維點云數據已被廣泛地應用于道路橋梁規劃、地圖導航、自然災害監測、自動駕駛、基礎測繪、文化遺產數字化、影視動漫等領域[1-2]。三維點云數據所描述的自然場景具有數據量大、真三維、高冗余、非結構化、采樣粒度分布嚴重不均以及不完整等典型特點,這對點云數據的存儲和智能化解譯都帶來了嚴峻的挑戰。三維點云數據的高效處理以及智能化解譯方法的研發仍然處于相對滯后的狀態,同時也存在著一定的瓶頸,亟需進一步的研究和探索。近年來,深度學習方法取得了較大成效,解決了傳統機器學習方法無法準確表達顯著性、易區分性和空間幾何結構等特征,難以滿足復雜場景高精度三維點云分類問題。
2017年提出的第一個以原始點云作為輸入的網絡模型PointNet[3],在ShapeNet數據集實現了83.7%的點云分類綜合精度。該研究團隊隨后提出了PointNet++[4]網絡模型,采用分層級網絡架構設計,將下一網絡層的點視為上一網絡層的中心點搜索k近鄰點構建局部鄰域,利用PointNet提取局部特征,獲得多尺度局部幾何結構信息提高點云分類精度。后續開發的眾多網絡模型采用了類似的分層設計。此外,RS-CNN[5]、DensePoint[6]、PointConv[7]等采用三維連續卷積網絡架構進行點層面的特征提取與形狀分類;Geo-Conv[8]、PointCNN[9]、SFCNN[10]等采用三維離散卷積網絡架構提取點云網格化表示的形狀特征;DGCNN[11]、KCNet[12]、ClusterNet[13]、RGCNN[14]等則采用圖卷積網絡架構實現點特征地提取與目標的分類;2020年提出的RandLA-Net[15]模型創造性地提出了隨機采樣與局部特征整合模塊結合的網絡模型,在Semantic3D數據上實現了94.8%的點云分類精度,這無疑在網絡模型設計方面獲得巨大進步。目前深度學習的基礎性研究主要集中在網絡結構與模型設計,以及樣本庫的設計與標注這兩大部分。網絡結構與模型設計中涉及網絡類型、網絡層數、卷積核、池化函數、以及損失函數涉及等內容。要開展基于深度學習的三維點云分類和目標提取研究,需要高精度、大樣本訓練數據庫,很多學者人工標注、自動標注和人工標注結合,對已有遙感產品采用遷移學習等標注方法發布了相關開源數據集等。目前很多研究針對模型本身設計展開了眾多研究,如上述所提到的卷積網絡架構等,通過改進特征模塊以及模型結構來提高點云分類精度。研究發現這些設計復雜的模型算法在點云分類精度方面并沒有太大的飛躍,但是模型復雜性增加會導致其計算耗能提高、數據處理效率低下等問題。更為重要的是,盡管這些方法在小尺度公共數據集上取得了很大的成功,甚至根據公共數據集也給出了最優學習策略配置,但是這些方法在處理大尺度遙感數據時,特別是海量、不規則的三維點云數據,存在數據采樣中自然地物和人工地物幾何不完整性、地物多樣性造成算法泛化能力不強等問題,阻礙深度學習算法在遙感數據領域廣泛應用。
針對這樣的問題,文中選擇了網絡結構與模型設計中除模型本身外的訓練樣本生成、數據增強、損失函數、模型選擇以及測試方法等構建一組學習策略,擬以點云分類網絡模型PointNet++為基礎模型,構建一套通用的、可以提高三維點云深度學習方法實際應用性能的學習策略組合,提高其在點云數據中的適用性。本次學習策略構建工作主要以新一代機載多光譜 LiDAR 數據為例展開研究,提高LiDAR數據的智能化解譯水平與自動化程度。
深度學習中涉及諸多學習策略,有些學習策略需要按照模型設計、設備性能以及數據集特點來精細調整其參數,例如學習率、迭代次數等。這些學習策略是直接與特定設計模型緊密聯系,文中不考慮無通用性、不能提高大部分模型性能的學習策略。因此,文中研究的學習策略主要包括數據增強、損失函數、訓練樣本生成、模型選擇以及測試方法5個方面。這些學習策略皆是獨立于網絡模型之外,可以廣泛適用絕大多數的深度學習模型,替換其中任何一個學習策略內容對于網絡模型本身沒有影響,僅影響該網絡模型完成點云分類性能。因此,文中僅以PointNet++為基本網絡模型,重點研究和分析這5種學習策略內容對于點云分類所帶來的影響。表1為目前廣泛使用的學習策略。

表1 模型學習策略
基于深度學習的遙感目標提取和分類依賴于高精度、大樣本訓練數據庫。而對于三維點云數據,獲得相應的高質量、可靠的學習樣本通常費時費力,成本巨大。同時,由于三維點云數據通常受采集儀器,以及地形、環境等復雜自然因素影響,數據的通用性受到一定程度的制約。在處理三維點云數據過程中,通常采用數據增強(data augmentation)來增加模型訓練的泛化能力。抖動(添加高斯噪聲)、沿y軸旋轉、隨機縮放和隨機平移方法是常用的幾種點云數據增強方式。如圖1所示,紅色的點為原始點云,綠色點是采用其數據增強方式獲得的點云。目前流行的深度學習點云分類模型采用其中一種或者幾種數據增強方法來擴增訓練數據集,如PointNet、PoinNet++、DPAM[16]和SpiderCNN[17]等模型采用了抖動、沿y軸旋轉、隨機縮放和隨機平移等數據增強方法;DGCNN,RSCNN,PointCNN和PointASNL[18]等模型則僅僅使用了隨機縮放和隨機平移兩種數據增強方法。

圖1 數據增強策略示意圖
交叉熵(cross-entropy)損失函數是目前學習模型中較為常用網絡參數,主要用來判定實際輸出與期望輸出的差異,利用這種差異經過反向傳播去更新網絡參數。在點云分類中即多分類任務中,一次迭代的交叉熵損失L可以表示為:
(1)
式中:N為一次迭代中的樣本數量;M為類別的數量;yij為符號函數,樣本i真實類別等于類別j取值1,否則取值0;Pij表示第i個樣本預測屬于類別j的概率。傳統的交叉熵損失函數鼓勵模型預測樣本為真實標簽的概率趨近于1,非真實標簽的概率趨近于0。但在訓練數據不足以覆蓋所有情況或者數據集中真實標簽出現錯誤點的情況下,交叉熵損失函數將會追求接近錯誤標簽的概率,導致網絡模型過擬合、泛化能力差。

(2)
式中:K為類別總個數,ε為平滑因子。平滑處理后的標簽數據相當于為真實標簽添加噪聲,使模型不過分依賴所給真實標簽,可提高網絡模型的泛化能力,加快模型訓練速度[19]。
為了讓基于點的深度學習方法適用于各種類型、場景的點云數據,許多研究不得不考慮如何將密度不均勻、分布不規則、點數不固定的點云數據處理生成為點數一致的訓練樣本數據這一問題。目前,針對三維點云數據進行訓練樣本生成方法主要有以下幾種方法:基于固定點方法、分塊后采樣策略、最遠采樣點-k鄰近點(FPS-KNN)采樣策略。
固定點樣本生成是不對點云數據集進行采樣操作,最大程度保留原始點云特征,僅對數據集進行歸一化處理。
分塊后采樣(如圖2所示)首先將原始點云數據集歸一化后,將其切割成一定尺寸的小點云塊[20-22], 在每個點云塊中采樣固定點數N的點作為網絡模型輸入數據,PointNet、PointNet++以及DGCNN深度模型中采用此分塊采樣策略。由于每個點云塊中包含不同數量的點,當塊中的點數超過設置的點數量N,則使用最遠采樣點(FPS)算法下采樣至N個點;反之則通過數據插值以獲得設置點數。

圖2 分塊采樣流程
FPS-KNN采樣(圖3)首先將原始點云數據集進行歸一化,對歸一化后V進行數據復制獲得參考云點,所有后續樣本生成操作在參考點云中進行。樣本生成具體步驟如下:

圖3 FPS-KNN輸入點策略流程
1)從參考點云中隨機選取一個點作為當前種子點;
2)利用KNN方法,從原始點云中尋找當前種子點的k個最近鄰點。k值的設置是根據其設定的樣本大小,即樣本點個數來確定[23];當前種子點與其k個最近鄰點作為一個點云樣本,并從參考點云中移除。
3)根據FPS原則[24],計算當前種子點到參考點云中剩余點的距離,并選擇最遠距離對應的點作為下一個種子點;
4)整合輸出樣本,檢查是否覆蓋整個場景,若完全覆蓋,則輸出點云樣本;若沒有完全覆蓋,迭代操作上述步驟2)和 3),直到參考點云為空。
在深度學習過程中,需要訓練集與驗證集,在每一次使用訓練集進行迭代訓練之后,需使用驗證集數據進行模型驗證,得出該次迭代訓練的預測樣本,通過其誤差反向傳播指導網絡參數學習。在迭代訓練以及驗證過程中,深度學習模型使用最佳模型策略或者最終模型策略兩種方式來得到最終訓練結果。
最佳模型策略是在每一次迭代后對驗證集進行精度評估,將最好的評估結果作為最終模型訓練,實現在測試集上較好分類結果,如DGCNN和RSCNN等采用此類模型策略。
最終模型策略使用最后一次迭代得到的權重作為模型訓練結果,如PointNet和PointNet++采用此模型策略。值得注意的是:最終模型策略并不是不需要驗證集,依然在每一次迭代中對驗證集進行精度評估,同樣使用驗證集反向傳播指導網絡參數學習。
為了進一步提高學習模型三維點云分類精度,很多研究在測試階段用到了可以提升分類或者目標提取精度的投票測試方法。投票測試主要包括抖動投票、旋轉投票、縮放投票以及平移投票。抖動投票是指在測試精度時將最終模型應用在多次抖動處理的點云上,然后將預測結果平均值作為最終精度。旋轉投票是指在測試精度時將最終模型應用在多次旋轉處理點云上;平移投票也是同理,是指在測試精度時將最終模型應用在多次平移處理點云上。PointNet和PointNet++模型采用旋轉投票提高點云分類精度;RSCNN和DensePoint是將模型應用在了多次隨機縮放的點云上。
本研究提出的數據增強投票,是在模型的投票測試中對點云測試集進行相應的數據增強,并在每個樣本批次(Batch)中重復10次數據增強操作,取預測結果平均值作為該批次結果,將整個測試過程重復100次,取平均精度作為最終點云分類精度。相對于投票測試,非投票測試在模型測試時不對測試集做任何操作,重復測試100次,取平均精度為最終點云分類精度。
為了確定最佳學習策略,采用PointNet++為基礎模型,以機載多光譜LiDAR數據為研究對象,進行三維點云分類研究。本研究實驗的硬件環境為Intel Core i7-9700 [CPU],RAM 16G,NVIDIA GeForce RTX 2070 6 GB [GPU]的工作站。軟件環境為裝有python3.7和Pytorch的Windows10系統。實驗中具體網絡參數主要包括:學習率(Learning Rate)為0.001,批次大小(Batch-size)為8,訓練迭代次數(Epoch)設為200,優化器為Adam[25]。
實驗數據相對于傳統單波段LiDAR系統,機載多光譜LiDAR系統不僅能夠快速獲取測區地形表面采樣點的空間坐標,而且同時可以采集到多個波段的地物光譜信息,其獲取的數據是對地形表面最直接的描述和表達。本文的研究區域是位于加拿大安大略省惠特徹奇-史托維爾的一個小鎮,如圖4(a)所示。實驗數據由加拿大Optech公司的Titan機載多光譜LiDAR系統采集,共采集了19條垂直交叉的航帶數據,覆蓋范圍大約為25 km2。其中Optech Titan系統包含3個獨立的300 kHz激光脈沖通道,分別是1 550 nm、1 064 nm和532 nm,并且這3個通道的激光脈沖以3.5°的偏轉角度被發送到同1個震蕩鏡上,生成3個獨立的點云數據集。本研究區域從多光譜LiDAR數據中裁剪1個面積為2 052 m×1 566 m的區域。

圖4 實驗數據
從實驗區域中選取了13個小場景(包含較為豐富的地物類別:建筑物、樹木、道路、草地、裸地、水體等)作為本論文的實驗數據采集場景,其中1~9場景為訓練數據,10~11場景為驗證數據,12~13場景為測試數據,每個場景的面積與點云數量,參見表2。并且根據實驗區域的地物分布情況,地物被標記為道路、建筑物、草地、樹木、裸地和電力線6種類型。最終每個場景數據都包含每個激光點的三維坐標信息(x,y,z)、3個波段(1 550 nm,1 064 nm,532 nm)的光譜信息和對應的標簽類別信息。

表2 實驗場景面積和點云數量
本節面向多光譜LiDAR數據,分析數據增強和損失函數兩個學習策略內容在點云分類中的影響。在數據增強中,抖動策略是在數據集上添加均值為0,標椎差為0.2的高斯噪聲;繞y軸旋轉的旋轉范圍設為180°;隨機縮放的范圍設置在[-0.66,1.5]之間;隨機平移的范圍設置為[-0.2,0.2]之間。損失函數中,標簽平滑損失函數中的平滑因子ε設置為0.2。此次試驗中,采用分塊后采樣訓練樣本生成方法和最佳模型,且所有的精度均為非投票測試100次的平均總體分類精度。
機載多光譜LiDAR點云分類結果如表3所示。由表3中實驗1與2可以看出,在使用抖動策略即高斯噪聲(均值為0、標準差為0.2)后,PointNet++從原來不使用任何數據增強策略的90.26%下降到了88.24%,抖動策略導致了模型的分類精度下降了2.02%。實驗1與實驗3對比得知旋轉策略(范圍為180°)也導致模型分類精度下降了2.43%。而進行隨機縮放(范圍:[-0.66,1.5])和隨機平移(范圍:[-0.2,0.2])操作后,模型點云分類精度分別提高了2.57%和1.13%。上述數據增強實驗結果表明:隨機縮放以及隨機平移的數據增強策略可以有效提高訓練模型的泛化能力,提高點云分類精度。

表3 PointNet++采用不同數據增強、損失函數的分類精度(綜合精度(OA)%)
對于標簽平滑,從表3中實驗1與6對比可以看出,PointNet++使用標簽平滑的點云分類精度比使用交叉熵損失函數的點云分類精度高了0.45%。由此可見,標簽平滑損失函數有利于模型的泛化能力,取得了更好的點云分類精度。
本節選擇不同的訓練樣本生成方法、模型選擇策略進行試驗。其余學習策略統一采用無數據增強、交叉熵損失和非投票測試,實驗結果如表5所示。其中,分塊后采樣策略中每個點云塊底部邊長設置為0.12 m,點云個數N設為4 096個;FPS-KNN和固定點同樣設置點的個數為4 096個。3種樣本生成方法統一對數據集進行[0,1]的歸一化處理。
通過表4中實驗1與3的對比可以看出,采用固定點采樣方法比采用FPS-KNN方法的分類精度提高了1.11%。實驗1與2對比可以看出采用固定點方法比采用分塊后采樣方法的分類精度提高了3.42%。由此可見:固定點方法可以大幅度提高點云分類精度。但是,該方法存在著兩個缺點:①訓練樣本過于龐大,訓練時間長。若訓練區域有上百萬個點云,直接輸入模型則會給計算機帶來巨大的損耗;②模型魯棒性較差。由于是直接對原始點云進行訓練,易使模型出現過擬合情況。FPS-KNN方法相比較固定點方法,模型點云分類性能稍差;FPS-KNN方法比固定點方法在訓練樣本制作上有一定程度的精簡,可以較好地保留訓練集數據特征,且訓練出的模型魯棒性較強,但樣本還是有一定程度的數據冗余并無法實現對輸入場景數據的完全覆蓋。分塊后采樣方法是3種方法中模型訓練速度最快、魯棒性最強的方法,該方法可以使用較少的點云進行訓練從而實現較好的分類精度,但是分塊方法不可避免地破壞地物幾何結構信息,導致分類精度較低。

表4 模型采用不同訓練樣本生成、模型選擇的分類精度(綜合精度(OA)%)
深度學習模型訓練是一個優化的過程,每一次訓練都是嘗試向最優解前進的過程。迭代次數作為一個超參數,由于數據、模型、優化器和損失函數等因素的不同,無法提前確定最優迭代次數,最后一次訓練出的模型不一定是獲得點云分類最佳性能。通過表4可以看出,使用最終模型策略的點云分類精度為89.36%,相比較最佳模型策略的點云分類精度低了0.90%。由此可見,最佳模型策略比最終模型策略訓練出的模型性能更好。主要是因為最佳模型策略在每一次迭代后,利用驗證集評估當前模型分類性能,盡可能模擬出模型在測試集上的分類效果,取分類精度最高的模型作為最終模型。因此,這種方法比最終模型策略要更加先進。
為了驗證測試方法對點云分類結果的影響,本節在進行數據增強的情況下訓練模型,對PointNet++模型分別采用非投票以及投票的測試方法進行點云分類,其他學習策略統一采用分塊后采樣樣本生成方法、交叉熵損失以及最佳模型選擇。
數據增強抖動和旋轉點云無法給模型帶來積極的效果,但是為了驗證投票測試對于點云分類模型影響的普遍性,仍然將帶有抖動和旋轉方法的投票測試加入了實驗。從表5可以看出,模型投票測試較非投票測試得出的點云分類精度高出約0.12%至0.23%。但是這種投票測試并無法提高模型本身分類性能,僅僅是在測試數據上進行對模型更加有利的處理,使點云分類精度有所提高。

表5 非投票測試與投票測試精度對比
通過2.1~2.4實驗分析可以看出:數據增強策略中隨機平移與隨機縮放、標簽平滑損失、固定點樣本生成策略以及最佳模型是基于PointNet++深度學習模型多光譜LiDAR點云分類的最優學習策略。為了進一步驗證其組合學習策略的通用性以及優越性,在模型PointNet++基礎上,本研究又選擇3個經典深度學習模型,即PointNet、DGCNN和RSCNN,對所構建的學習策略進行測試與驗證。這4個基本模型加入學習策略構建的新模型分別稱為PointNet-LS、PointNet++-LS、DGCNN-LS和RSCNN-LS模型。為了對比,將無數據增強策略、交叉熵損失、分塊后采樣輸入和最佳模型選擇這一套學習策略組合應用在PointNet、PointNet++、DGCNN和RSCNN上,稱為基準模型。為了更清楚分析這4種模型的分類結果,除綜合精度(OA)外,另外添加均交并比(mIoU)、綜合評價指標F1-score以及Kappa系數進行定量分析。其中mIoU代表標簽的真實值和預測值兩個集合的交集和并集之比,F1-score代表所有類別精確率和召回率的調和平均數,Kappa代表分類與完全隨機的分類產生錯誤減少的比例。
從表6可以看出:所構建的學習策略5個內容,即固定點樣本生成、隨機縮放、隨機平移、標簽平滑損失函數、最佳模型,沒有相互沖突,共同作用于PointNet、PointNet++、DGCNN和RSCNN模型中,綜合精度分別提高了6.18%、4.42%、5.31%和5.12%;均交并比分別提高了18.16%、17.45%、19.67%和12.29%;F1指標分別提高了20.14%、13.67%、16.66%和12.25%;Kappa值分別提高了0.137 3、0.115 0、0.130 3和0.130 8。這一套學習策略組合可以適用于大多數深度學習模型并有效地提高深度學習模型在完成機載多光譜LiDAR數據點云分類任務的性能。

表6 采用改進學習策略的模型與基準模型點云分類精度(綜合精度(OA)%)
本文以加拿大Optech公司的Titan 機載多光譜LiDAR點云數據為例,研究深度學習模型中學習策略對于點云分類精度的影響程度。研究結果表明:
1)學習策略對于模型本身性能的影響較大,在網絡模型設計時,獨立于網絡模型之外的學習策略應該得到重視;
2)訓練樣本生成在點云分類性能表現上最好;數據增強策略中隨機平移與縮放可提高模型分類性能;標簽平滑損失比交叉熵損失表現的更好;最佳模型是更好的模型選擇策略;投票測試可以得出更高的精度,但是不能提高模型本身的性能;
3)固定點方式的訓練樣本生成、隨機平移與縮放、標簽平滑損失、最佳模型選擇以及投票測試這一套學習策略組合課通用于絕大部分深度學習模型,并且可以有效地提高網絡模型的點云分類精度。