徐 鵬, 徐方勇, 陳 輝
(上海電力大學(xué) 自動(dòng)化工程學(xué)院,上海 200090)
近年來,基于深度神經(jīng)網(wǎng)絡(luò)直接對(duì)原始室外場(chǎng)景點(diǎn)云分割技術(shù)被廣泛應(yīng)用。Qi R C等[1,2]提出了一種新型端到端的深度學(xué)習(xí)網(wǎng)絡(luò)體系結(jié)構(gòu)PointNet,結(jié)構(gòu)簡(jiǎn)單,分割效果良好,但該模型提取點(diǎn)云局部特征的能力不足,其改進(jìn)的PointNet++通過增加對(duì)局部特征的提取結(jié)構(gòu),增強(qiáng)網(wǎng)絡(luò)對(duì)點(diǎn)云場(chǎng)景局部信息的利用,實(shí)現(xiàn)點(diǎn)云數(shù)據(jù)場(chǎng)景分割并提高分割精度。文獻(xiàn)[3]使用PointNet及PointNet++獲取點(diǎn)云的全局和局部特征,在特征的基礎(chǔ)上計(jì)算三個(gè)屬性矩陣:相似矩陣、置信度矩陣、語義分割矩陣,綜合多個(gè)結(jié)果實(shí)現(xiàn)實(shí)例分割。文獻(xiàn)[4,5]對(duì)現(xiàn)有PointNet和NetVLAD進(jìn)行組合/修改,實(shí)現(xiàn)端到端的訓(xùn)練和引導(dǎo),從給定的三維點(diǎn)云中提取全局描述子,實(shí)現(xiàn)基于點(diǎn)云檢索的場(chǎng)景識(shí)別。
三維模型的采集過程也是數(shù)字化重建過程,該過程可通過三維掃描儀完成,也可通過立體視覺采集設(shè)備來完成[6]?;诙嘁晥D立體視覺的三維重建技術(shù)能夠獲取精確的三維模型信息[7]。室外場(chǎng)景下,激光掃描儀在采集數(shù)據(jù)過程存在遮擋現(xiàn)象,使得點(diǎn)云數(shù)據(jù)會(huì)損失掉場(chǎng)景的部分三維結(jié)構(gòu)。隨著三維激光掃儀的掃描精度不斷提升,采集到的點(diǎn)云密度一般大于10,這種高密度點(diǎn)云的地物幾何結(jié)構(gòu)往往更加豐富,較完整地保留了原始場(chǎng)景的空間拓?fù)浣Y(jié)構(gòu)。如何構(gòu)建更大規(guī)模的點(diǎn)云場(chǎng)景,進(jìn)而對(duì)其進(jìn)行語義分割已成為研究重點(diǎn)。
本文提出了一種基于PointNet++的室外點(diǎn)云大場(chǎng)景分割方法。首先,使用FARO FocusS 350激光掃描儀采集場(chǎng)景數(shù)據(jù),分別在上海電力大學(xué)長(zhǎng)陽校區(qū)5個(gè)站點(diǎn)采集到三維彩色激光點(diǎn)云數(shù)據(jù),并依次對(duì)每?jī)蓚€(gè)視角下掃描得到的有重復(fù)區(qū)域的點(diǎn)云場(chǎng)景進(jìn)行配準(zhǔn),由此提出一種基于采樣一致性初始配準(zhǔn)和迭代最近點(diǎn)精確配準(zhǔn)的配準(zhǔn)方案,構(gòu)建出完整的室外點(diǎn)云大場(chǎng)景數(shù)據(jù);然后,使用公共室外點(diǎn)云場(chǎng)景數(shù)據(jù)集Semantic3D訓(xùn)練基于PointNet++的點(diǎn)云場(chǎng)景分割模型,并將其做持久化存儲(chǔ);最后調(diào)用該模型,輸入待分割數(shù)據(jù),獲取其預(yù)測(cè)結(jié)果,并進(jìn)行可視化結(jié)果分析。其工作流程如圖1所示。
圖1 基于PointNet++的激光點(diǎn)云場(chǎng)景分割工作原理
激光點(diǎn)云場(chǎng)景的多視角配準(zhǔn)[8]與通常的兩個(gè)視角配準(zhǔn)問題相比需要求解更多的參數(shù),因此難度大,很難有一個(gè)通用性的配準(zhǔn)方法,對(duì)此,本文以第一幀點(diǎn)云場(chǎng)景坐標(biāo)作為基準(zhǔn),對(duì)剩余幀場(chǎng)景依次進(jìn)行雙視角自動(dòng)配準(zhǔn),算法流程如下:首先,基于八叉樹編碼的點(diǎn)云精簡(jiǎn)方法[9]降低原始點(diǎn)云數(shù)據(jù)量,提高后續(xù)配準(zhǔn)計(jì)算效率,并手動(dòng)選取重疊區(qū)域多的兩組建筑點(diǎn)集;然后,使用基于采樣一致性配準(zhǔn)算法(sample consensus initial alignment, SAC-IA)[10]和迭代最近點(diǎn)(iterative closest point, ICP)[11]算法的配準(zhǔn)方案計(jì)算出兩點(diǎn)集之間的剛體變換矩陣;最后,對(duì)原始數(shù)據(jù)轉(zhuǎn)換坐標(biāo)系,如圖2所示。
圖2 雙視角場(chǎng)景自動(dòng)配準(zhǔn)算法流程圖
SAC-IA算法先提取點(diǎn)的快速點(diǎn)特征直方圖(fast point feature histograms, FPFH)[12]特征,然后根據(jù)特征匹配原則進(jìn)行配對(duì)點(diǎn)的選取,在減少運(yùn)算量的基礎(chǔ)上保證整體配準(zhǔn)的精度,該算法取得大量的特征對(duì)應(yīng)關(guān)系,從而快速得到較為準(zhǔn)確的變換參數(shù)。假設(shè)源點(diǎn)云,目標(biāo)點(diǎn)云,初始配準(zhǔn)過程如下:
(1)對(duì)點(diǎn)云P選取n個(gè)采樣點(diǎn),且保證采樣點(diǎn)之間的距離大于預(yù)先給定的閾值dmin,然后計(jì)算這批采樣點(diǎn)的FPFH特征。
(2)針對(duì)(1)中選取到的每個(gè)采樣點(diǎn),在點(diǎn)云Q中搜索有相近FPFH特征的一系列點(diǎn)。
(3)計(jì)算點(diǎn)云P和點(diǎn)云Q對(duì)應(yīng)特征點(diǎn)的剛體變化矩陣,此時(shí)距離誤差函數(shù)用Huber函數(shù)來衡量,其計(jì)算公式為
(1)
式中:ei為點(diǎn)云P和點(diǎn)云Q中第i點(diǎn)的誤差;te為所設(shè)定的超參數(shù)。
重復(fù)上述3個(gè)步驟,當(dāng)誤差函數(shù)值將至最低時(shí),該變換矩陣就是最優(yōu)變換矩陣。FPFH特征實(shí)質(zhì)是針對(duì)局部點(diǎn)特征直方圖(point feature histograms, PFH)[13]改進(jìn)的快速簡(jiǎn)化模型,如圖3所示。
圖3 PFH的k鄰域運(yùn)算示意圖
選定點(diǎn)云某一點(diǎn)pq,先搜索其附近范圍內(nèi)的k個(gè)點(diǎn),將pq與所有選取的點(diǎn)進(jìn)行兩兩配對(duì),假設(shè)任意兩點(diǎn)pi和pj,其法向量分別為ni和nj,依據(jù)以上向量定義局部坐標(biāo)系uvw,可表示為:
(2)
根據(jù)該坐標(biāo)系,可以計(jì)算每?jī)蓚€(gè)點(diǎn)之間的空間角度及距離關(guān)系如下:
α=v*nj
(3)
d=‖pj-pi‖
(4)
(5)
(6)
α、d、φ、θ參數(shù)描述點(diǎn)與點(diǎn)之間的幾何關(guān)系,PFH特征即是對(duì)其每個(gè)參數(shù)統(tǒng)計(jì)直方圖。為了提升其計(jì)算效率,并且不損失其特征描述能力,使用降低復(fù)雜度的FPFH快速算法,不僅運(yùn)算速度更快,還能提取到更廣闊的鄰域特征。FPFH特征提取算法步驟如下:
(1)對(duì)點(diǎn)云中每一個(gè)點(diǎn)pn采用PFH算法計(jì)算,但不必計(jì)算兩點(diǎn)之間的距離d,求得pn點(diǎn)與其所屬鄰域點(diǎn)的PFH特征,由于統(tǒng)計(jì)參數(shù)缺少距離信息,稱為簡(jiǎn)單點(diǎn)特征直方圖(Simplified PFH),記作SPFH(pn)。
(2)重新確定每個(gè)點(diǎn)pq的k鄰域,按1)法計(jì)算該點(diǎn)及其k鄰域點(diǎn)的SPFH(pn)特征,并根據(jù)這些特征計(jì)算待求點(diǎn)pq的FPFH特征,見圖4。假定第i個(gè)鄰域點(diǎn)SPFH特征的加權(quán)值為wi,取為兩點(diǎn)距離的倒數(shù),根據(jù)下式計(jì)算FPFH特征:
圖4 FPFH的k鄰域運(yùn)算示意圖
(7)
經(jīng)過SAC-IA初始配準(zhǔn)后,兩組點(diǎn)云已基本重疊在一個(gè)位置,但誤差仍然較大,所以需要繼續(xù)選用適合的精確配準(zhǔn)算法,使得兩點(diǎn)云能完全重合。本文選用ICP配準(zhǔn)算法,其原理簡(jiǎn)單,效果良好。假設(shè)有源點(diǎn)云P和目標(biāo)點(diǎn)云Q,配準(zhǔn)的具體步驟如下:
(1)從源點(diǎn)云P采樣得到子集P0;
(2)在目標(biāo)點(diǎn)云Q中搜索與子集P0空間距離最近的點(diǎn)集Q0,此時(shí)能初步確定兩點(diǎn)集間的對(duì)應(yīng)關(guān)系;
(3)設(shè)定距離閾值Lmax,當(dāng)兩個(gè)點(diǎn)集的對(duì)應(yīng)點(diǎn)距離大于Lmax時(shí),視作錯(cuò)誤點(diǎn)對(duì)并剔除;
室外點(diǎn)云場(chǎng)景在采集過程中會(huì)產(chǎn)生區(qū)域點(diǎn)密度大小不一的問題,使得一般深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)在密集區(qū)域內(nèi)學(xué)習(xí)到的特征可能無法適用于稀疏區(qū)域?;谶@點(diǎn),本文選擇使用PointNet++網(wǎng)絡(luò),它是一個(gè)可以根據(jù)區(qū)域點(diǎn)密度來自我選擇特征的點(diǎn)云深度學(xué)習(xí)分割網(wǎng)絡(luò),對(duì)點(diǎn)云稀疏性具備自適應(yīng)能力,其網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 PointNet++語義分割網(wǎng)絡(luò)圖
PointNet++設(shè)計(jì)出set abstraction結(jié)構(gòu),不同層級(jí)逐級(jí)使用該結(jié)構(gòu),使得局部區(qū)域的抽象程度提升,單個(gè)層級(jí)獨(dú)立處理一部分點(diǎn)集合。set abstraction的輸入結(jié)構(gòu)為N×(d+C),表示N個(gè)點(diǎn)的d維坐標(biāo)和C維特征,輸出結(jié)構(gòu)為N1×(d+C1),表示N1個(gè)點(diǎn)的d維坐標(biāo)和C1維特征,其中N>N1,C>C1,說明點(diǎn)集的數(shù)據(jù)量在逐步減少,抽象程度在上升。其中,采樣層使用迭代最遠(yuǎn)點(diǎn)算法選取一批輸入點(diǎn)的子集,該類選點(diǎn)方法比隨機(jī)抽取點(diǎn)更加有利于后續(xù)劃分區(qū)域的全局覆蓋,分組層的輸入是N×(d+C)的一組點(diǎn)和尺寸為N1×d質(zhì)心坐標(biāo),輸出是大小為后繼續(xù)進(jìn)入到PointNet層,輸入結(jié)構(gòu)為N1×(d+C1),表示每個(gè)局部區(qū)域的局部抽象特征。set abstraction本質(zhì)是將輸入點(diǎn)不斷減少,從中抽象出分層次的多個(gè)局部高維特征,而語義分割任務(wù)需要對(duì)場(chǎng)景中每個(gè)點(diǎn)做對(duì)應(yīng)區(qū)分,這就需要還原所有點(diǎn),PointNet++基于距離插值和跳躍連接的分層傳播方法還原點(diǎn)的初始數(shù)量,最后輸出每個(gè)點(diǎn)的分類的得分。
本實(shí)驗(yàn)使用Faro S350地面激光掃描儀對(duì)上海電力大學(xué)長(zhǎng)陽校區(qū)圖書館附近進(jìn)行多視角采集,真實(shí)場(chǎng)景見圖6,圖書館的5個(gè)位置分別為S1、S2、S3、S4和S5。由于其各自坐標(biāo)系不同,當(dāng)將其全部置于MeshLab軟件中時(shí),5站場(chǎng)景呈錯(cuò)亂排布,見圖7。
圖6 數(shù)據(jù)采集場(chǎng)景
圖7 5站場(chǎng)景未配準(zhǔn)狀態(tài)
實(shí)驗(yàn)前首先對(duì)場(chǎng)景進(jìn)行數(shù)據(jù)精簡(jiǎn),同時(shí),為快速驗(yàn)證算法有效性,對(duì)實(shí)驗(yàn)中的各視角場(chǎng)景進(jìn)行數(shù)據(jù)精簡(jiǎn),選取更小的八叉樹分層數(shù),精簡(jiǎn)程度更高,以便更快選取較理想的配準(zhǔn)參數(shù)。
待配準(zhǔn)點(diǎn)云場(chǎng)景共有5個(gè),以S1的坐標(biāo)系作為世界坐標(biāo)系,求取其余4站點(diǎn)云的變換矩陣,從而將5個(gè)場(chǎng)景依次置于一個(gè)坐標(biāo)系下。每組配準(zhǔn)實(shí)驗(yàn)都挑選兩組場(chǎng)景中重疊部分較多的建筑體作為配準(zhǔn)對(duì)象。本文配準(zhǔn)實(shí)驗(yàn)運(yùn)行在windows10系統(tǒng)上,使用VS2017基于PCL 1.8.0點(diǎn)云庫開發(fā)實(shí)驗(yàn)程序,其配準(zhǔn)誤差見表1。
表1 配準(zhǔn)實(shí)驗(yàn)誤差
4組場(chǎng)景配準(zhǔn)如圖8所示。實(shí)驗(yàn)中人工選取每組重疊區(qū)域較多的建筑點(diǎn)集,保證配準(zhǔn)對(duì)象的共同性,使得算法更容易收斂,另外建筑物的三維點(diǎn)云有著突出的幾何外形,利于ICP算法中對(duì)應(yīng)點(diǎn)對(duì)的正確選取。然后,4組配準(zhǔn)對(duì)象在未配準(zhǔn)時(shí),如圖8(a)所示,兩點(diǎn)集在同一坐標(biāo)系下的位置相差較遠(yuǎn),從圖8(b)和圖8(c)看出,初始配準(zhǔn)后,2組點(diǎn)集確實(shí)較配準(zhǔn)前靠近許多,其中第2組實(shí)驗(yàn)幾乎完全配準(zhǔn),與后續(xù)精確配準(zhǔn)結(jié)果差異不大。
圖8 4組場(chǎng)景配準(zhǔn)
采用旋轉(zhuǎn)平移矩陣算法,最終得到4個(gè)場(chǎng)景,構(gòu)建完整點(diǎn)云場(chǎng)景,如圖9所示。
圖9 場(chǎng)景配準(zhǔn)結(jié)果圖
圖10是模型預(yù)測(cè)結(jié)果圖。從圖10(a)看出:場(chǎng)景中的幾個(gè)主要建筑都得到準(zhǔn)確識(shí)別,但部分建筑中帶有高植被的識(shí)別顏色,這是由于點(diǎn)云場(chǎng)景在室外場(chǎng)景時(shí)存在遮擋現(xiàn)象,大樹的陰影偶爾會(huì)落在建筑物上,使其顏色采集不準(zhǔn),零散的點(diǎn)被識(shí)別為高植被。場(chǎng)景中的樹木都有一定的識(shí)別能力,但是本文訓(xùn)練標(biāo)準(zhǔn)是將樹木劃分為高植被和低植被,圖中表現(xiàn)的有些混亂。圖10(b)是場(chǎng)景分割結(jié)果的圖書館近景,可看出圖書館附近的道路得到準(zhǔn)確分割。
圖10 模型分割結(jié)果圖
點(diǎn)云數(shù)據(jù)的完整性影響三維場(chǎng)景分割效果,本文提出一種基于SAC-IA粗配準(zhǔn)和ICP精配準(zhǔn)的自動(dòng)配準(zhǔn)方案來構(gòu)建幾何結(jié)構(gòu)完整的室外點(diǎn)云場(chǎng)景,其中,SAC-IA算法對(duì)重疊率較小的點(diǎn)集不敏感,所以進(jìn)行人工處理,即選取每個(gè)站點(diǎn)中點(diǎn)云數(shù)據(jù)重疊區(qū)域較大的建筑點(diǎn)集,這樣為后續(xù)精確配準(zhǔn)提供良好初值。使用semantic3D數(shù)據(jù)集訓(xùn)練出基于PointNet++的深度學(xué)習(xí)點(diǎn)云分割模型,能對(duì)完整場(chǎng)景進(jìn)行分割,實(shí)驗(yàn)證明:本文提出的方法有助于點(diǎn)云場(chǎng)景分割效果的提升。