楊 柳,劉啟亮,袁浩濤
(中南大學地球科學與信息物理學院地理信息系,湖南 長沙 410083)
近年來,車載或地面激光掃描技術已成為城市三維信息快速獲取的重要手段,并廣泛用于智能交通、環境保護、智慧城市等領域[1,2]。點云語義分割旨在從雜亂無序的點云中識別與提取地物目標[3],是城市激光點云數據處理的核心任務之一[4,5]。由于城市激光點云數據中目標多樣、密度不均且存在缺失等[6,7],從中提取地物目標一直是一項具有挑戰性的難題[8-10]。長期以來,點云語義分割主要依賴人工設計的特征描述子[11-16],包括屬性特征[17-19](如顏色、高程、反射強度等)、局部幾何特征[20-22](如法向量、曲率、主方向等)以及宏觀特征[23,24](如形狀、特征值分布、離散度等)。基于上述特征描述子,國內外學者主要采用兩種策略提取點云目標[25]:1)逐點聚類或分割的策略,即逐點分析局部鄰域內特征描述子的差異,采用聚類分析法將點云分割為不同目標[26-30];2)面向對象的策略,即將點云分割為一系列均質的對象,依據對象特征通過聚類識別點云中的目標[31-36]。然而,人工設計的特征描述子僅能夠表達點云低層次的基礎特征,難以識別建模場景中高層次語義特征,嚴重影響了上述點云語義分割方法在復雜城市場景中的應用效果[37]。
近年來,深度學習在圖像模式識別領域的突破性進展為城市激光點云語義分割提供了新的研究思路,深度網絡可從數據中自動提取從底層到高層的特征,建立從低層次特征到高層次語義的映射關系[38]。當前,國內外學者嘗試將深度學習思想引入點云語義分割領域[39],研究方法主要分為以下3類:
(1)基于體素或多視圖的方法。為使深度網絡能夠適應散亂的點云數據,首先對點云數據進行規則化處理,再采用深度網絡進行點云語義分割。基于體素的方法利用固定大小的三維格網對空間進行劃分,落在同一格網中的點被視為一個體素,從而將點云數據轉化為三維規范數據并輸入3D CNN網絡中,以識別輸入對象的類別[40-42];多視圖方法通過選擇不同的方向將三維點云投影為二維圖片,并在二維圖片上應用2D CNN實現類別判斷[43,44]。上述方法對于原始點云數據的規則化處理不利于點云細節特征的提取。
(2)基于原始點云的方法。為避免體素化或投影帶來的信息損失,相繼提出了一些直接針對原始不規則點云數據的深度網絡。例如:PointNet[45]首次將散亂的三維坐標作為網絡的輸入,并引入對稱函數使得網絡對點云的輸入順序不敏感,但其對局部細節信息的學習能力不足;改進的PointNet++[46]通過將原始點云劃分為局部小區域,在小區域中迭代使用PointNet以實現局部細節信息的學習;PointCNN[47]使用卷積操作融合鄰域特征以得到局部特征的一維表示;為得到更有效的多尺度細節信息,Guo等[48]從不同層次的卷積操作中提取特征并進行融合,將融合后的特征輸入分類器進行點云目標識別。上述針對點云設計的深度網絡奠定了深度學習方法在點云語義分割中應用的理論基礎,但其僅針對單個點進行操作,難以適應城市大場景的語義分割任務。
(3)面向對象的方法。為提高點云語義分割的效率,在點云語義分割的深度網絡構建中引入了面向對象的策略。例如:基于超點圖的深度網絡(SPG)[49]首先對海量點云過分割得到超點,基于超點提取抽象特征并構建拓撲連接圖,然后引入長短期記憶網絡實現地物語義分割;Wang等[50]通過將原始點云劃分為點簇以縮減數據量,并利用卷積神經網絡學習點簇的特征進行地物提取,使得深度網絡在大場景的應用成為可能;羅海峰等[51]采用連通分支與基于體素的歸一化方法對原始點云分割得到目標對象,再利用深度網絡對目標對象的二值圖像進行語義分割。
綜上,基于深度學習的點云語義分割研究已成為近年來點云數據處理的熱點,但其在城市激光點云語義分割任務中的應用效果尚缺乏客觀的對比與評價,如PointNet、PointNet++、PointCNN等網絡僅在室內場景的點云語義分割中進行了驗證;此外,深度網絡是否能夠提取比人工設計的特征描述子更“高級”的特征尚缺乏驗證。為此,本文試圖通過實驗對比分析,探索如下問題:1)當前基于深度學習的點云語義分割方法是否真的優于基于特征描述子的方法?2)不同類型的點云語義分割深度網絡在不同類型城市激光點云數據中的表現存在多大程度的差異?
本文采用3組開放城市激光點云數據集——Semantic 3D[52]、Oakland[53]及TerraMobilita/iQmulus 3D urban (Paris數據集)[54],對當前4種代表性點云語義分割深度網絡(PointNet、PointNet++、PointCNN、SPG)以及一種基于特征描述子的方法(層次化點云語義分割方法)進行對比研究,分別采用總體精度、精度、召回率及F1指數對上述5種方法的應用效果進行定量評價,為實際應用中選擇點云語義分割方法及點云語義分割深度網絡的設計優化提供借鑒。
層次化點云語義分割方法[8]采用面向對象的策略提高點云語義分割的效率,融合點云的幾何、紋理和強度等多類型特征進行分割和分類,并借助層次化的語義分割策略,降低了不同類型目標相隔較近時的提取誤差。如圖1所示:首先利用點云的距離、顏色、強度等信息計算得到的綜合距離生成超級體素(一種內部均質但形狀大小均不固定的點云簇);進而依據不同地物幾何特征的差異性(如建筑物立面、地面等表現為法向量的一致性、桿狀地物表現為主方向一致性、樹冠等表現為顏色一致性等)將超級體素分為面狀、桿狀、球狀體素,分別采用法向量、主方向及顏色等信息聚類3種類型的超級體素;最后依據先驗知識計算分割區域的顯著性,對分割區域依據顯著度進行層次化排序,以顯著性最大的區域為中心區域與其鄰近區域聚類得到目標,直到所有目標均被識別。為判斷地物目標的類別,層次化點云語義分割方法利用人類先驗知識設置每種地物目標的幾何特征約束(如長度、寬度、拓撲關系等),對地物目標類別進行標記。

圖1 層次化點云語義分割方法流程Fig.1 Flow chart of hierarchical semantic segmentation of point clouds
PointNet[45]直接將原始點云數據作為輸入,解決了深度網絡應用于點云語義分割的兩大難點(圖2):1)無序性,點云本質上是一長串無序點集合,點的順序不影響點云對于物體形狀的表達;2)旋轉不變性,相同的點經過一系列剛性變換(如旋轉、平移等),坐標會發生變化,但其表達的形狀并未改變。PointNet通過引入對稱矩陣使得點云輸入順序不影響學習結果。具體地,PointNet將最大池化函數作為對稱函數,在使用對稱函數前,卷積操作僅在單個點上操作,可提高每個點的特征維度。經過若干卷積層后在每個維度上分別使用最大池化函數,得到每個維度上最顯著的特征信息,盡可能保留點云中最重要的高維特征,并使保留的特征與輸入順序無關,對稱函數的操作如圖3所示。針對旋轉不變性問題,PointNet在提取高維特征之前,通過網絡學習一個類似于仿射變換矩陣的變換矩陣,以規范點云的輸入方向,從而使網絡對點云的剛性變換不敏感。

圖2 PointNet整體框架(改自文獻[45])Fig.2 Overall framework of PointNet

圖3 對稱函數示意Fig.3 Illustration of symmetric function
PointNet采用對稱函數僅能獲取點云數據的全局特征,忽略了點云的局部結構,影響了其針對復雜場景的泛化能力。PointNet++[46]為一種層次化的深度網絡結構(圖4),可將點云劃分為相互重疊的局部區域,利用卷積算子從小區域中捕獲點云的局部特征,并將其作為下次分組的小單元,與其他特征構成高級別的小區域,從而實現更高級別的特征提取,直到得到整個點云的高級特征。PointNet++在小區域內迭代使用PointNet,充分考慮了點云的局部自相關,更有利于提取細節特征,可減少特征損失。

圖4 PointNet++整體框架(改自文獻[46])Fig.4 Overall framework of PointNet++
為解決點云數據的無序性問題,同時捕捉點云數據的局部相關性,Li等針對圖像數據的卷積算子在點云數據中進行了擴展,提出了PointCNN網絡[47]。PointCNN采用轉置矩陣(圖5)處理點云無序性問題,使得無序點云能夠規范到統一的抽象空間,從而避免輸入順序的影響。與PointNet采用對稱函數處理點云無序性相比,PointCNN可降低特征的損失。為學習點云的局部特征,PointCNN在圖像卷積算子的基礎上構建了X卷積算子(X-Conv),每次卷積時,X卷積算子尋找最鄰近中心點的K個點,將其特征融合。隨著網絡的加深,參與運算的點越來越少,但每個中心點上的特征逐漸增加,以此實現與卷積算子相同的信息融合效果。在網絡整體架構上,PointCNN首先通過學習變換矩陣消除點云無序性的影響,而后通過X卷積算子不斷融合局部信息,實現網絡對于局部信息的學習。在每次卷積中,X卷積算子尋找中心點的K鄰域,再通過加權求和融合K鄰域的特征,使其能達到與規則數據中卷積算子融合鄰域特征同樣的效果(圖6)。

圖5 轉置矩陣示意Fig.5 Illustration of transformation matrix

圖6 X卷積算子示意(改自文獻[47])Fig.6 Illustration of X-Conv operator
上述點云深度學習方法雖然解決了點云的無序性和旋轉不變性等問題,但網絡每次輸入的點數固定,要求點云數據輸入前必須人為劃分為統一大小,一定程度上切斷了部分點的拓撲關系;而且點云數據量大,直接基于單個點的操作降低了網絡處理的效率,限制了其在大場景中的應用。針對以上問題,Landrieu等引入基于對象和圖的思想,構建了一種基于超點圖的深度網絡(SPG)(圖7),實現了大規模場景地物目標識別[49]。

圖7 SPG網絡結構[49]Fig.7 Structure of SPG net
SPG首先采用一種弱監督分類方法,依據點的線性、平面性和散射特征將點云劃分為一系列幾何同質且富有意義的幾何形狀,即超點。超點的引入大大縮減了網絡處理的數據量,基于超點間的拓撲關系構圖很好地保留了點云間的拓撲關系。由于基于超點構建的圖遠小于基于單個點構建的圖,從而使得網絡處理大場景點云數據成為可能。對于每個超點,采用PointNet學習其抽象特征,并將該特征作為基于圖結構神經網絡的輸入。為同時學習更高級的語義特征和圖結構的拓撲信息,又將門控循環單元(GRU)通過圖的形式串聯,每個GRU的輸入特征由其對應的超點以及與其拓撲相鄰的超點對應的GRU的輸出共同組成,通過這種圖相連的形式進行信息傳遞,得到分割結果。
上述城市激光點云語義分割方法的異同與主要特點總結于表1。

表1 城市激光點云語義分割方法對比Table 1 Comparison of the five semantic segmentation methods for laser point clouds in urban areas
本文分別采用Semantic 3D數據集中的bildstein3、Oakland及Paris數據集,對以上5種方法進行測試。對于4種基于深度學習的方法,分別從原作者處獲取核心網絡代碼,修改后使其適用于3個基準數據集的語義分割任務;對于層次化點云語義分割方法,由于原作者未公布源代碼,本文獨立實現了該方法。所有算法均在一臺32 G內存、64位8核處理器(3.5 GHz)的工作站上測試,操作系統為ubuntu 16.4,深度學習環境在cuda 9.0和tensorflow 1.2下搭建,算法編程語言為Python 3.6。本文采用機器學習模型評估常用的“留出法”(hold-out)對基于深度學習方法進行評估。為平衡評估結果的保真性與訓練模型的可靠性, 依據當前機器學習領域的研究經驗,從每個數據集中隨機選取每種類別70%的數據進行訓練,剩余30%數據作為測試樣本[55]。對于層次化點云語義分割方法,選用與基于深度學習方法相同的測試樣本進行精度評價,評價指標包括總體精度、精度、召回率及F1指數。
為測試5種方法針對不同場景、不同形態目標的分割效果,本文選取了不同區域、不同采集方式、不同場景的3組點云基準數據進行測試。1)Semantic 3D數據集中的bildstein3數據是蘇黎世聯邦理工學院采用靜態掃描儀采集的城市郊區點云數據,包含樹木(點數:3 174 966)、建筑物(點數:592 462)、硬景觀(點數:540 129)、汽車(點數:92 875)4類地物,地物不規則且點密度較大。2)Oakland數據集是使用搭載了SICK LMS激光雷達掃描系統的智能車輛Navlab11在芝加哥大學校園收集的,包含樹木(點數:290 251)、線狀(點數:7 264)、桿狀(點數:10 460)、建筑物(點數:129 096)4類地物,地物較規則且點密度較低。3)Paris數據集由法國國家測繪局(IGN)開發的移動掃描系統在巴黎密集城市環境中獲得,去除噪聲、未標記點及地面點后,保留樹木(點數:207 454)、建筑物(點數:7 025 886)、汽車(點數:322 305)3類地物,地物數據差異較大,點密度也較大。
分析5種方法的實驗結果(圖8-圖10,彩圖見附錄1)及語義分割評價結果(表2-表4)可知:1)針對Semantic 3D數據集中的bildstein3數據集,層次化點云語義分割方法效果最佳,其識別精度為92.6%。對于每種地物而言,層次化點云語義分割方法除對樹木的提取精度、召回率、F1指數及硬景觀的精度低于SPG外,對其余地物的提取效果均優于其他方法;基于深度網絡的方法在該數據集上的識別精度從高到低依次為SPG(88.1%)、PointCNN(81.4%)、PointNet++(68.4%)、PointNet(61.3%),且這4種方法對數量較少的地物識別效果普遍較差。2)針對Oakland數據集,SPG識別精度高達96.3%,層次化點云語義分割方法精度為94.8%,PointNet、PointNet++及PointCNN的精度分別為68.7%、49.4%和69.3%。5種方法對線(桿)狀地物識別結果的F1指數均低于樹木和建筑物,PointNet和PointNet++幾乎無法識別線(桿)狀地物。3)針對Paris數據集,SPG識別精度最高(98.2%),其次為層次化點云語義分割方法(97.4%),但其對汽車和樹木的識別精度均高于SPG,而對建筑物立面的識別精度低于SPG,這主要是因為地物遮擋對建筑物造成了一定的空洞,導致點云結構與人工設置的語義參數不符;PointNet++和PointCNN整體效果較好,精度分別為95.0%和95.5%,但二者對樹木的識別精度較低;PointNet的地物識別效果最差,無法識別汽車和樹木。

表2 bildstein3數據集語義分割結果評價Table 2 Evaluation of semantic segmentation results of different methods for bildstein3 dataset %

表3 Oakland數據集語義分割結果評價Table 3 Evaluation of semantic segmentation results of different methods for Oakland dataset %

表4 Paris數據集語義分割結果評價Table 4 Evaluation of semantic segmentation results of different methods for Paris dataset %

圖8 bildstein3數據集實驗結果對比Fig.8 Semantic segmentation results of bildstein3 dataset

圖9 Oakland數據集實驗結果對比Fig.9 Semantic segmentation results of Oakland dataset

圖10 Paris數據集實驗結果對比Fig.10 Semantic segmentation results of Paris dataset
分析5種方法的運行效率(表5)可知:1)SPG的效率最高,雖然層次化方法也采用基于對象的思想,但其生成的超級體素的數量遠多于SPG構建的超點;此外,層次化方法生成超級體素、層次化提取目標過程耗時較多。2)PointCNN效率最低,主要是由于X卷積算子的計算效率較低。

表5 5種方法運行時間比較Table 5 Running time of the five methods min
(1)當前基于深度學習的點云語義分割方法是否真的優于基于特征描述子的方法?通過實驗對比,發現當前基于深度網絡的代表性方法(PointNet、PointNet++、PointCNN和SPG)雖然采用了大量訓練數據(數據集的70%),但其語義分割質量仍普遍低于基于特征描述子的層次化點云語義分割方法,雖然SPG在Oakland和Paris數據集上的識別總體精度略高于層次化方法,但考慮到SPG需要大量的訓練樣本,這種精度提升可以忽略。這一結論說明,基于深度學習的方法理論上的優勢并沒有真正在當前方法中得到充分體現,其主要原因可能在于:1)當前應用于點云語義分割的深度網絡尚難以提取能真正反映目標本質的“高級特征”,在單一數據集上訓練提取的特征可能不如當前廣泛采用的特征描述子穩健,深度網絡的架構設計還需進一步優化;2)現有深度網絡缺乏對地物目標語義信息和先驗知識的描述,這些信息和知識往往是基于大量的總結和歸納而得,僅通過一個或幾個數據集的訓練學習難以準確捕捉這些語義信息和先驗知識,尤其是當目標數量較少時(如bildstein3數據集),當前深度網絡結構的特征提取能力尚存在欠缺。3)層次化分割方法有效實現了地物的多尺度信息建模,可在一定程度上克服現有深度網絡普遍存在的“過平滑”問題,有利于識別不同大小的地物目標。
(2)不同類型的點云語義分割深度網絡在不同類型城市激光點云數據中的表現存在多大程度的差異?通過實驗發現SPG的地物語義分割質量最高,其主要原因在于:SPG與PointNet++和PointCNN相比,不僅能夠構建點云的局部特征,而且可通過圖的形式描述點云的空間關系,這種空間關系可能更有利于學習點云目標的語義信息。由于PointNet++與PointCNN能夠構建點云的局部特征,其語義分割質量大部分情況下優于PointNet。PointCNN比PointNet++效果更好,這主要是由于PointCNN能夠學習不同鄰域點對中心特征的貢獻權重,獲取的局部信息更全面,而PointNet++僅能獲得局部最顯著的特征。當目標數量較少時,當前基于深度學習方法的語義分割質量明顯降低,這亦表明訓練數據的數量和多樣性嚴重影響網絡的學習效果。雖然SPG網絡語義分割精度較高,但其相比層次化語義分割方法沒有優勢,主要原因可能在于超點降采樣與PointNet提取特征時(最大池化)導致信息損失。
針對深度學習方法在城市激光點云語義分割任務中的應用效果缺乏客觀的對比與評價的問題,本文選取4種代表性的點云語義分割深度網絡(PointNet、PointNet++、PointCNN、SPG)以及1種基于特征描述子的層次化點云語義分割方法,在3種公開數據集上進行對比分析,結果發現:1)當前基于深度學習的點云語義分割方法的實際效果不如基于特征描述子的層次化點云語義分割方法,尤其是當目標數量較少時,深度網絡的目標識別質量穩定性較差;2)在測試的4種深度網絡中,同時考慮點云局部特征與空間關系的SPG網絡在測試數據集中效果最佳,且運行效率最高。
通過本文的實驗與分析,未來基于深度網絡的點云語義分割研究在以下方面需要繼續深入:1)面向城市點云語義分割的基準數據集設計,深度網絡的語義分割效果嚴重依賴訓練樣本數量、質量和多樣性,雖然當前針對圖像分類的大規模基準數據集已經出現,但適用于城市點云語義分割的大規模基準數據集尚未構建;2)在深度網絡構建過程中融入先驗知識和語義約束,充分融合深度學習和基于特征描述子方法的優點,降低深度網絡的訓練成本;3)面向對象思想在點云深度網絡設計中具有一定的優勢,但是對象生成的誤差以及對象間特征融合過程中的過擬合等問題依然需要深入研究;4)地物間的空間關系以及地物的多尺度特征在深度網絡設計中需引起充分重視。