嚴璐 顧昕
(南京萊斯信息技術(shù)股份有限公司 江蘇省南京市 210000)
激光雷達在無人機/無人駕駛/文物修復(fù)/機器人等領(lǐng)域應(yīng)用越來越廣泛,視頻圖像數(shù)據(jù)易受光照變換的影響,激光雷達點云有效避免此問題,且數(shù)據(jù)量小。本算法應(yīng)用場景是泊位引導(dǎo)中基于點云檢測出航空器。點云數(shù)據(jù)量小,數(shù)據(jù)稀疏,機場環(huán)境下,雷達安裝位置和角度以及飛機本身相互遮擋,目標點云嚴重缺失。飛機為異形結(jié)構(gòu),無法采用規(guī)則圖形進行點云補全,這些對飛機目標的識別檢測和尺寸衡量造成很大障礙,因此需要需要合適的點云補全模型。
點云補全一直是深度學(xué)習和三維重建領(lǐng)域的一個重要的研究課題?;谏疃葘W(xué)習的三維點云修復(fù)技術(shù)主要有密集、補全、去噪三類重建方法。修復(fù)模型的關(guān)鍵技術(shù)有特征編碼/特征擴展和損失函數(shù)設(shè)計。點云修復(fù)目的是提升點云密度,補全點云形狀以及去除噪聲等,從而提高點云質(zhì)量,便于后期識別檢測點云中的目標,衡量目標大小。
現(xiàn)有技術(shù)利用激光雷達掃描獲取物體外形,通常對外形不做補全處理?,F(xiàn)有的點云補全方法很多,但是補全稠密均勻性不足,目標尺寸不夠準確,還需要深入研究改進。有些補全算法通過點云和圖像融合的方式,但是攝像頭受環(huán)境因素影響很大,如雨霧天,夜晚等。另外實際應(yīng)用中考慮到各種因素,并不能只為補全信息,同時架設(shè)雷達和攝像機。本文只基于PCN模型進行改進,優(yōu)化點云補全。
本文第2節(jié)介紹了點云補全相關(guān)技術(shù)點;第3節(jié)介紹了算法詳細細節(jié);第4節(jié)給出了測試實驗結(jié)果,最后給出本文的總結(jié)和后期工作展望。
基于深度學(xué)習的點云修復(fù)目前較為通用的基礎(chǔ)網(wǎng)絡(luò)模型有多層感知器(MLP),卷積神經(jīng)網(wǎng)絡(luò)(CNN),自編碼器(AE)和對抗生成網(wǎng)絡(luò)(GAN)等。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)基本結(jié)構(gòu)主要包括輸入層,卷積層,池化層,全連接層以及輸出層。各層級之間區(qū)別于MLP的全神經(jīng)元相連,CNN只有部分神經(jīng)元相連。卷積層是通過在輸入圖像上滑動卷積核并進行相應(yīng)計算得到特征圖,一個特征圖共享相同的權(quán)重和偏置項,共享權(quán)重減少參數(shù)的數(shù)量。池化層在卷積層后面,池化層與卷積層一般交替出現(xiàn),是一種非線性降采樣,減小數(shù)據(jù)的空間大小,降低參數(shù)數(shù)量和計算量。全連接層負責網(wǎng)絡(luò)中的高級推理。使用損失函數(shù)評價模型的預(yù)測值和真實值的相異程度。卷積層后連接激勵函數(shù),增強判定函數(shù)和整個神經(jīng)網(wǎng)絡(luò)的非線性特性,常用的激勵函數(shù)包括修正線性單元(rectified linear units,ReLU),雙曲正切函數(shù)和Sigmoid函數(shù)等。
自編碼器(AutoEncoder,AE)將輸入X編碼為一個新的表達Y,然后再將Y解碼回X,是一個無監(jiān)督機器學(xué)習算法。目的是對一組數(shù)據(jù)學(xué)習出一種編碼,然后通過這種編碼重構(gòu)輸出。自編碼器具有數(shù)據(jù)相關(guān)性/數(shù)據(jù)有損性和自動學(xué)習性等特點,常用于數(shù)據(jù)的去噪和降維。
2017年Qi等提出了第一個作用于點云的深度學(xué)習框架PointNet網(wǎng)絡(luò),實現(xiàn)三維點云分類,形狀部分分割和場景語義分析。PointNet分類網(wǎng)絡(luò)將n個點作為輸入,應(yīng)用輸入和特征變換,然后通過兩次的多層感知器獲取點云特征信息,通過最大池化層聚合點要素,輸出是k類的分類分數(shù)。此模型設(shè)計關(guān)鍵點是無序輸入的對稱函數(shù),本地和全局信息匯總以及聯(lián)合調(diào)整網(wǎng)絡(luò)。
上文提到的密集重建、補全重建和去噪重建三種方法,實際應(yīng)用中可根據(jù)點云修復(fù)任務(wù)的側(cè)重點差異選擇合適的方法。密集重建的目標是通過采集到的一組非均勻分布,密度與實際需求相較欠缺的點云,保持目標形狀特征完整性的前提條件下,輸出相對均勻、密集的補全數(shù)據(jù)。補全重建的目標是從目標殘缺的、被部分遮擋的點云數(shù)據(jù)中,還原目標完整形狀特性。用于補全重建的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)一般由點云編碼器和點云解碼器組成,編碼器提取出輸入的殘缺點云的形狀特征,解碼器利用形狀特征基于由粗到細遞增的策略恢復(fù)出完整的點云數(shù)據(jù)。點云去噪目標是從輸入的點云數(shù)據(jù)中,提取并過濾噪聲,恢復(fù)一個干凈的點云集,同時保留目標的三位幾何細節(jié)。
圖卷積網(wǎng)絡(luò)(GCN)是對圖數(shù)據(jù)進行深度學(xué)習,圖一般包含社交網(wǎng)絡(luò),通信網(wǎng)絡(luò)等,圖中的每個節(jié)點分別表示網(wǎng)絡(luò)中的每個個體。目前常用的方法有:
(1)通過Multi-branch GCN,Clone GCN,NodeShuffle三個新的模塊進行點云采樣,其中采用圖卷積網(wǎng)絡(luò)實現(xiàn)對于局部點信息的編碼,此外通過Inception-DenseGCN進行多尺度點的特征提取,通過坐標重建再現(xiàn)最終的密集點云。
(2)基于深度學(xué)習的點補全網(wǎng)絡(luò)(PCN)。PCN網(wǎng)絡(luò)模型包括編碼器和解碼器,編碼器使用基于MLP和最大池化操作的網(wǎng)絡(luò)模型,提取輸入點云的特征,得到特征向量;解碼器先通過全連接層得到較為稀疏的補全點云,在經(jīng)過折疊網(wǎng)絡(luò)獲得稀疏的點云坐標和平滑的密集點云。
(3)基于神經(jīng)網(wǎng)絡(luò)進行三維點云去噪,利用神經(jīng)網(wǎng)絡(luò)提取的點云特征估計噪聲點云的參考平面,然后將噪聲點投影到相應(yīng)的估計參考平面上,對點云進行降噪處理。Zhao等提出一種基于自動編碼器結(jié)構(gòu)的3D點膠囊網(wǎng)絡(luò),來實現(xiàn)稀疏點云的重建;
(4)基于生成對抗網(wǎng)絡(luò)框架,提出了一種自動修復(fù)補全三維點云形狀的神經(jīng)網(wǎng)絡(luò);
(5)結(jié)合強化學(xué)習代理控制生成對抗網(wǎng)絡(luò)(Generative adversarial network,GAN)進行點云的生成補全算法。
算法簡要流程是輸入原始點云,使用本算法模型進行點云補全,測量計算補全的點云并輸出結(jié)果。算法以飛機點云數(shù)據(jù)為例,飛機原始點云數(shù)據(jù)稀疏且殘缺不全,飛機輪廓難以判斷,更對飛機尺寸測量造成困難。
針對飛機這種異形結(jié)構(gòu)目標,在不同角度下,機翼機身缺失嚴重,對獲取目標點云特征要求較高,因此算法基于PCN網(wǎng)絡(luò)對編碼層進行改進,增加一層共享多層感知器(Shared MLP)和逐點最大池化層(Point-feature Maxpool)組合,并且將多層提取的特征串聯(lián)。
算法的基本思想:
PCN算法如圖1所示,采用深度學(xué)習方法。本算法基于PCN網(wǎng)絡(luò)做出改進,原始的PCN網(wǎng)絡(luò)編碼層網(wǎng)絡(luò)結(jié)構(gòu)采用兩層共享多層感知器(Shared MLP)與逐點最大池化層(Point-Wise MaxPool)組合,第二層輸入時第一層(Shared MLP)輸出與(Point-wise Maxpool)輸出串聯(lián)結(jié)果。
圖1:原始PCN網(wǎng)絡(luò)結(jié)構(gòu)
改進的PCN網(wǎng)絡(luò)模型如圖2所示:
圖2:PCN改進網(wǎng)絡(luò)結(jié)構(gòu)
(1)編碼階段:本方法將擴展增加一層共享多層感知器(Shared MLP)和逐點最大池化層(Point-feature Maxpool)組合,并且第一層獲得的點特征Point feature i與第二層獲得的點特征Point feature ii和逐點最大池化全局特征Global feature ii串聯(lián)作為該層輸入,但是新增層全局特征每點的維度不變,獲得最后全局特征Global feature iii。
(2)解碼階段:本方法與PCN模型結(jié)構(gòu)一致,即將獲得的特征Global feature iii通過全連接層解碼(fully-connected decoder),重采樣獲得飛機整體完整輪廓,通過基于折疊的解碼操作(folding-based operation)平滑物體表面。
PCN網(wǎng)絡(luò)改進:
PCN改進網(wǎng)絡(luò)結(jié)構(gòu):本方法將擴展增加一層共享多層感知器(Shared MLP)和逐點最大池化層(Point-feature Maxpool)組合,并且第一層獲得的點特征Point feature i與第二層獲得的點特征Point feature ii和逐點最大池化全局特征Global feature ii串聯(lián)作為該層輸入,但是新增層全局特征每點的維度不變,獲得最后全局特征Global feature iii。具體描述如下:
在解碼階段,本方法與PCN網(wǎng)絡(luò)結(jié)構(gòu)一致,即將獲得的特征Global feature iii通過全連接層解碼(fully-connected decoder),重采樣獲得飛機整體完整輪廓,通過基于折疊的解碼操作(folding-based operation)平滑物體表面。
算法實現(xiàn)采用的主機,內(nèi)核I7,英偉達1080Ti的顯卡,設(shè)備內(nèi)存4G,操作系統(tǒng)為Ubuntu16,采用python語言實現(xiàn)。
本方法輸出如圖3 output所示。改進之后,點云數(shù)據(jù)更加稠密均勻,物體輪廓特征細節(jié)部分補全效果更好。
圖3:左邊input為飛機原始點云數(shù)據(jù),右邊output為飛機點云補全輸出
測試部分,測量機翼寬度,準確補全機翼寬度對測量準確度影響很大,這就要求算法對物體輪廓細節(jié)部分還原效果要好。利用補全好的飛機外形測量機翼寬度,如圖4所示。由于激光束長度a,b,及角度c是可以直接測量,則利用數(shù)學(xué)知識可以求得機翼長度。
圖4:(a)(b)測量機翼寬度
由以上方法計算出機翼寬度,對進場泊位的飛機進行機型判別,確認泊位飛機信息。
本文基于改進的PCN算法實現(xiàn)點云補全,輸入稀疏的飛機點云,獲得完整飛機點云,并基于完整的飛機點云計算出飛機的機翼寬度。
機場、光伏、水利、學(xué)校、風景區(qū)等應(yīng)用場景,占地廣,重點位置需要實時監(jiān)測,需要在多個重點關(guān)注點安裝雷達獲取點云數(shù)據(jù),采用此算法補全缺失的點云,提高點云檢測識別模型的準確率。后期可以采用邊緣計算框架,將點云補全算法部署到邊緣服務(wù)器上,將經(jīng)過補全等處理的結(jié)果發(fā)送給總控,或者在邊緣服務(wù)器上實現(xiàn)點云的補全和識別檢測,將檢測結(jié)果發(fā)送給總控,實現(xiàn)邊緣部署和計算。