張 迪, 劉婷婷, 宋家友
(1.鄭州西亞斯學(xué)院計算機與軟件工程學(xué)院,鄭州 451000; 2.鄭州大學(xué)信息工程學(xué)院,鄭州 450000)
由于二維影像數(shù)據(jù)容易受到視角、光照、旋轉(zhuǎn)和尺度等因素的影響,在對復(fù)雜的結(jié)構(gòu)、地形和場景進行重建時,存在效率低和誤差大的問題[1-2],激光點云技術(shù)應(yīng)運而生,通過發(fā)射激光掃描目標,并接收反射激光的強度和回波次數(shù)等信息來獲取目標的三維坐標,完成對目標的模型重構(gòu),從而獲取三維空間中各類目標的分布情況,被廣泛應(yīng)用于測繪、三維重建、文物保護、產(chǎn)品質(zhì)量控制、智慧城市和無人駕駛等領(lǐng)域[3]。與二維影像建模相比,三維激光點云數(shù)據(jù)包含更符合真實目標的空間信息,具有測量效率高、數(shù)據(jù)精度高和便于非接觸式測量等優(yōu)勢。隨著計算機硬件性能的大幅提升和人工智能技術(shù)的飛速發(fā)展,以卷積神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)的深度學(xué)習算法在目標檢測、分類和語義分割等任務(wù)上取得了極好的效果[4-5]。然而,由于三維激光點云具有數(shù)據(jù)量大、排列散亂和無拓撲關(guān)系等特點,存在云語義分割準確率較低的問題,相關(guān)的研究仍然面臨著嚴峻的挑戰(zhàn)。
采用深度學(xué)習技術(shù)的三維激光點云語義分割通常有兩種方法[6]:第一種是將點云轉(zhuǎn)化為三維體素進行特征提取和分割預(yù)測,把非結(jié)構(gòu)化的點云數(shù)據(jù)轉(zhuǎn)化成結(jié)構(gòu)化三維體素,如同處理二維影像數(shù)據(jù),使用卷積神經(jīng)網(wǎng)絡(luò)提取特征,但會損失原始三維激光點云中的空間信息,導(dǎo)致檢測精度整體下降;第二種是基于三維激光點云的分割方法,直接從原始點云中提取特征,能夠保留三維空間中的位置信息,針對特征編碼的感受野大小也不會受到卷積核影響,可以實現(xiàn)較高的檢測精度。面向三維激光點云數(shù)據(jù)的語義分割任務(wù)旨在給點云中的每一個點分配一個語義標簽,類似圖像分割中逐一像素分類[7]。然而,由于三維空間中的點云密度不一致,不像二維圖像中的像素能夠均勻分布,會給局部區(qū)域點的判別帶來挑戰(zhàn)。其次,點云中的點是隨機排列,很難找到任意點之間的連續(xù)性,所以類似圖像中的卷積運算不適用于點云的深度學(xué)習任務(wù);另外,分割任務(wù)需要先提取點云的高層次語義特征,再通過特征解碼對每個點進行語義預(yù)測,但是如何整合全局特征并分配給逐一像素點是一個技術(shù)難點。PointNet作為一項開創(chuàng)性的方法[8],首次將深度網(wǎng)絡(luò)應(yīng)用于三維激光點云處理領(lǐng)域,以簡單的結(jié)構(gòu)、輕量的網(wǎng)絡(luò)參數(shù)以及高效的運算速率在點云分類和分割任務(wù)上取得了卓著的成果。但是,PointNet網(wǎng)絡(luò)設(shè)計的初衷沒有考慮到點云局部信息的提取,即前文中提到的點云連續(xù)性的問題,隨后其改進的模型PointNet++通過學(xué)習二維卷積神經(jīng)網(wǎng)絡(luò)中卷積疊加增大了感受野,并根據(jù)固定的半徑搜索任一點鄰域來提取局部特征,同時考慮點云鄰域關(guān)系和空間特征信息,成為了點云深度學(xué)習的通用框架。
在三維激光點云場景分割領(lǐng)域中,邊界預(yù)測的優(yōu)劣直接決定了分割效果的好壞,既需要對場景中復(fù)雜多樣的目標做出準確判別,又需要對緊挨的點云進行精準預(yù)測。一些相關(guān)研究已經(jīng)意識到邊界的重要性,嘗試采用顯示邊界預(yù)測或者局部聚合模塊來提升邊界分割的準確性[9]。但是這些方法在很大程度上增加了模型的復(fù)雜性,對整體性能的提升卻非常有限。本文以PointNet++網(wǎng)絡(luò)為基礎(chǔ)主干網(wǎng)絡(luò),引入了邊界對比學(xué)習(Boundary Contrastive Learning)框架,加強了三維激光點云場景分割任務(wù)中邊緣點云的特征提取和學(xué)習,通過耗費少量模型空間和時間資源,提升了三維激光點云場景分割模型的邊界預(yù)測精度。在大型場景的三維激光點云數(shù)據(jù)集上進行的廣泛評估表明,相較于其他幾種算法,本文算法的分割性能具有明顯的優(yōu)越性。
針對點云邊界模糊、分布密集以及語義類別難以區(qū)分的問題,本文設(shè)計了基于邊界對比學(xué)習的三維激光點云場景分割網(wǎng)絡(luò),它是一個端到端訓(xùn)練的模型,輸入為大場景激光掃描后的原始點云數(shù)據(jù),每個點的數(shù)據(jù)都是一個三維空間坐標,利用PointNet++作為主干網(wǎng)絡(luò)進行下采樣的特征編碼和上采樣的特征解碼,再輸出每個點的語義標簽,并逐點預(yù)測目標類別,實現(xiàn)場景整體分割。在下采樣階段,不同尺度的點云特征會先通過邊界點,并挖掘出模糊的邊界點,然后利用對比學(xué)習損失函數(shù)對邊界點的預(yù)測進行建模,設(shè)計了邊界預(yù)測分割效果的指標,增大了不同語義類別的邊界點距離,最終實現(xiàn)邊界點的精準分割。分割網(wǎng)絡(luò)框架如圖1所示。

圖1 提出的分割網(wǎng)絡(luò)框架Fig.1 Framework of the proposed segmentation network
由圖1可知,該框架以輕量級網(wǎng)絡(luò)PointNet++作為基礎(chǔ)主干網(wǎng)絡(luò),可以快速、高效地分割點云數(shù)據(jù),其中的分組采樣擴大了模型感受野來提取局部特征,進一步提升了網(wǎng)絡(luò)性能。
PointNet++借鑒了二維圖像分割網(wǎng)絡(luò)的設(shè)計思想,針對多層次的三維激光點云分割,以分組采樣形式處理在任一點鄰域空間中的一組點。本文通過底層鄰域空間的距離度量,把點集分割成重疊的局部區(qū)域,然后利用小鄰域的局部特征來獲取精細的空間結(jié)構(gòu),再分組到更大的單元繼續(xù)處理,從而生成更高層次的特征,最終獲得整個點集的高層語義特征。
PointNet++由大量具有層級結(jié)構(gòu)的集合抽象層構(gòu)成,分別為采樣層(Sampling Layer)、分組層(Grouping Layer)和點網(wǎng)層(PointNet Layer)。
1) 采樣層。給定輸入點{x1,x2,…,xn},使用迭代最遠點采樣法找出m個點,并組成輸入點的子集{xi1,xi2,…,xim},其中,xij是點集{xi1,xi2,…,xij-1}外距離最遠的點。
2) 分組層。輸入是大小為N×(d+C)的點集(N為點數(shù),d為點的維數(shù),C為每個點特征的維數(shù))和大小為N′×d的一組質(zhì)心的坐標,輸出是大小為N′×L×(d+C)點集組(N′為采樣后的點數(shù),L為質(zhì)心點鄰域的點數(shù)),每組對應(yīng)一個局部區(qū)域,L在不同的組之間會有所不同。
3) 點網(wǎng)層。輸入是大小為N′×L×(d+C)點的局部區(qū)域,輸出數(shù)據(jù)大小為N′×(d+C′)(C′為處理后的特征維數(shù))。該層能夠提取每個中心點附近聚集的三維激光點云的局部特征,再經(jīng)過集合抽象層提取特征后,通過解碼網(wǎng)絡(luò)與跳躍連接整合所有特征,最后獲取針對每個點的語義標簽預(yù)測。
當前邊界分割的研究方向大多集中在改進分割的整體指標,如平均交并比(mean Intersection over Union,mIoU)、整體準確度(Overall Accuracy,OA)和平均準確度均值(mean Average Precision,mAP),導(dǎo)致點云分割的邊界質(zhì)量通常被忽略。本文的思路與僅給出邊界定性結(jié)果的相關(guān)研究不同,而是引入了量化指標衡量邊界分割,在三維激光點云的標注數(shù)據(jù)中,如果在其鄰域中存在具有不同語義標簽的點,將其視為邊界點。類似地,對于模型預(yù)測,如果附近存在具有不同預(yù)測標簽的點,本文將一個點視為預(yù)測邊界點。具體來說,將點云記為χ,將第i個點記為xi,其局部鄰域為Θi=Θ(xi),對應(yīng)的真實標簽為li,模型預(yù)測標簽為pi。進一步將標注點云中的邊界點集記為Bl={xi∈χ|?xj∈Θi,lj≠li},將預(yù)測結(jié)構(gòu)中的邊界點集記為Bp={xi∈χ|?xj∈Θi,pj≠pi}。
本文將Θi的鄰域半徑設(shè)置為0.1。為了衡量邊界分割結(jié)果,一種直觀的方法是計算邊界區(qū)域內(nèi)的平均交并比,即mIoU@boundary。為了比較模型在邊界和非邊界(內(nèi)部)區(qū)域的性能,計算內(nèi)部區(qū)域的平均交并比,即mIoU@inner。平均交并比在整個點云χ上可計算為
(1)
式中:K為所有語義標簽的類別總數(shù);Η(·)為一個邏輯運算函數(shù)。
根據(jù)mIoU定義,計算邊界和內(nèi)部區(qū)域的平均交并比,即
MmIoU@boundary=mIoU(Bl)
(2)
MmIoU@inner=mIoU(χ-Bl)
(3)
其中,χ-Bl表示三維激光點云中某一目標內(nèi)部的點集,與邊界點集互補。
然而,mIoU@boundary和mIoU@inner沒有考慮模型預(yù)測分割中的錯誤邊界。受二維實例分割的邊界 IoU的啟發(fā),為了更好地進行評估,本文引入了分割預(yù)測邊界與標注數(shù)據(jù)邊界之間的對齊指標BIoU。需要先找到分割點集的邊界點集,其后進行交并比計算,具體定義為
(4)
對比學(xué)習是一種自監(jiān)督學(xué)習理論,在缺少標簽的情況下,通過讓模型學(xué)習數(shù)據(jù)點的相似或不同,從而得到數(shù)據(jù)集的一般特征。本文模型針對三維激光點云的邊界點進行對比學(xué)習,通過損失函數(shù)優(yōu)化網(wǎng)絡(luò)模型參數(shù),加強網(wǎng)絡(luò)在三維激光點云中不同語義類別邊界點的特征編碼。本文遵循了被廣泛使用的對比學(xué)習損失函數(shù)InfoNCE及其泛化來定義邊界點的對比優(yōu)化目標。具體而言,對于一個邊界點xi∈Bl,鼓勵學(xué)習到的表示方式與其來自同一類別的相鄰點更相似,并且不同于來自不同類別的其他相鄰點,損失函數(shù)定義為
(5)
式中:fi為任一xi的某一尺度特征;d(·,·)為距離測量函數(shù);τ為控制對比學(xué)習中的溫度。
損失函數(shù)定義的對比學(xué)習只關(guān)注邊界點。首先,本文考慮來自真實數(shù)據(jù)的所有邊界點Bl,如同前文描述。然后,對于每個點xi∈Bl,將其正、負點的采樣限制在其局部鄰域Θi內(nèi)。在強約束的空間限制下,可得到xi的正對,如{xj∈Θi∧lj=li},而其他相鄰點,即{xj∈Θi∧lj≠li},是負對。對比學(xué)習正是通過損失函數(shù)拉近了同類邊界點之間的距離,增大了異類邊界點的特征差異,從而實現(xiàn)邊界對比學(xué)習的效果。因此,對比學(xué)習增強了跨語義邊界的特征識別,對于改進邊界區(qū)域的分割具有重要意義。

(6)

(7)

激光雷達(LiDAR) 是利用發(fā)射激光束探測目標位置、外形和速度等信息的系統(tǒng)[10]。語義場景理解對于各種應(yīng)用都非常重要,需要對其附近的表面和物體有細粒度的了解,LiDAR能夠提供環(huán)境的精確幾何信息,是目前主流自動駕駛汽車傳感器套件的重要組成部分。本文所采用的三維激光點云場景分割數(shù)據(jù)集SemanticKITTI正是來自汽車LiDAR的完整360°視野下密集的點云標注,圖2展示了該數(shù)據(jù)集的示例場景。

圖2 SemanticKITTI數(shù)據(jù)集示例Fig.2 Example of SemanticKITTI dataset
SemanticKITTI是用于三維激光點云語義分割的大型戶外場景數(shù)據(jù)集,源自KITTI Vision Odometry Benchmark,使用激光雷達Velodyne-HDLE64 LiDAR進行收集。該數(shù)據(jù)集由22個序列組成,本文將分割序列00~10作為訓(xùn)練集,11~21作為測試集,分別提供了23201個用于訓(xùn)練的點云和20351個用于測試的點云。另外,如圖3所示,該數(shù)據(jù)集共有25個類,其中6個類是重復(fù)的,具有移動或非移動屬性。本文將不同移動狀態(tài)的類合并,并忽略分數(shù)很少的類,最后對剩下19個類進行訓(xùn)練和評估。

圖3 SemanticKITTI數(shù)據(jù)集類別示意Fig.3 Schematic diagram of SemanticKITTI dataset categories
在評價準則方面,本文使用交并比(IoU)對各類別三維激光點云場景的分割效果進行評價,并使用平均交并比(mIoU)和每秒處理的幀數(shù)(FPS)對分割算法的整體性能進行評估。
本文算法使用基于深度學(xué)習的Pytorch框架搭建網(wǎng)絡(luò)模型,訓(xùn)練和測試均在Ubuntu 20.04系統(tǒng)中進行,采用了Python 3.8環(huán)境,12 GiB的NVIDIA RTX2080Ti顯卡。在設(shè)置訓(xùn)練的相關(guān)超參數(shù)時,采用Adam優(yōu)化器作為網(wǎng)絡(luò)優(yōu)化方法,對參數(shù)進行優(yōu)化和更新[11]。設(shè)置動量值為0.9,初始學(xué)習率為0.001,采用指數(shù)衰減方法控制學(xué)習率變化,Batch size為2,迭代次數(shù)為1000。
為了驗證提出的基于邊界對比學(xué)習的三維激光點云場景分割算法的有效性,與PointNet++、SPLATNet[12]、 RangeNet++[13]、 SqueezeSegV3[14]以及Point-Voxel[15]這5種算法進行了對比實驗,給出了在19個不同語義類別的點云場景上分割的IoU,得到的實驗結(jié)果如表1所示;同時,通過mIoU和FPS來評估算法的整體性能,得到的實驗結(jié)果如表2所示。

表1 不同算法在19個類別點云場景上分割的實驗結(jié)果

表2 不同算法整體性能的實驗結(jié)果
從表1的分割結(jié)果可看出,在總計19個語義類別中,本文算法在11個類別的點云分割上的IoU達到了最高,5個類別的IoU次高,剩余3個類別的指標也是位列前三,且與最佳性能均非常接近,如 Road和Fence類別的點云,由于其他物體的遮擋,且邊界相對難以界定,所以本文算法的指標相較于其他對比算法,沒有突出的優(yōu)勢。但是,在一些完整和邊界清晰的類別上,如Car、 Truck和Parking等,本文算法的IoU提升十分明顯。從表2的實驗結(jié)果可看出,采用本文算法的精度均明顯優(yōu)于其他幾種對比算法,mIoU達到了59.4%,運算效率也較高,FPS達到了25.4 幀/s,在保證較高分割精度的前提下,依然表現(xiàn)出了較高的運算效率,突出了輕量級主干網(wǎng)絡(luò)PointNet++的優(yōu)勢,從而驗證了本文算法整體性能的優(yōu)越性。
為了直觀展示本文算法在邊界分割上的提升情況,圖4客觀地展示了場景1~3的三維激光點云場景分割真實標注與預(yù)測結(jié)果的對比。

圖4 實驗結(jié)果可視化展示Fig.4 Visualization display of experimental results
由圖4可知:場景1是點云分割整體較優(yōu)的結(jié)果,對各個類別的預(yù)測以及邊界的判斷都十分準確,肉眼上觀察與真實標注幾乎沒有差異;場景2的預(yù)測結(jié)果出現(xiàn)了部分偏差,針對汽車點云的類別預(yù)測錯誤,但從邊界上看,汽車整體的輪廓是精確分割的,說明本文算法針對類似完整的對象時,盡管會遇到類別錯分,但物體的三維輪廓建模依然準確;場景3的分割效果則不盡如人意,錯分物體的邊界難以界定,類別也出現(xiàn)了錯誤,說明本文算法依然存在局限和提升空間,針對場景點云中邊界難以界定的對象分割是未來研究的巨大挑戰(zhàn)。
為了進一步驗證所提邊界對比學(xué)習框架對三維激光點云分割網(wǎng)絡(luò)的提升效果,本文做了一組消融實驗進行對比,建立了基礎(chǔ)分割網(wǎng)絡(luò)PointNet++與在不同尺度增添邊界對比學(xué)習的消融模型,從最底層的特征尺度(5次下采樣后的子場景三維點云特征,記為S5)逐次向網(wǎng)絡(luò)最頂層(1次下采樣后的子場景三維點云特征,記為S1)添加邊界對比學(xué)習,得到的消融實驗結(jié)果如表3所示。

表3 消融實驗結(jié)果
從表3的結(jié)果可看出,隨著邊界對比學(xué)習在不同尺度進行特征加強,網(wǎng)絡(luò)的整體性能依次提高。在基礎(chǔ)的PointNet++網(wǎng)絡(luò)上添加S5尺度的邊界對比學(xué)習時,提升幅度最大,但整體指標相較于對比算法仍然沒有競爭力,主要是受到分割網(wǎng)絡(luò)編碼和解碼的影響,最底層的三維點云子場景特征增強很難對原始的點云空間和預(yù)測空間起到?jīng)Q定性作用。因此本文通過在不同尺度進行邊界對比學(xué)習,對不同語義類別點云的特征進行了充分區(qū)分,最終的性能也得到逐步提高,實驗結(jié)果也與理論分析相符。
針對傳統(tǒng)點云場景分割通常忽略邊界的問題,本文提出了一種基于邊界對比學(xué)習的三維激光點云場景分割網(wǎng)絡(luò),以PointNet++作為基礎(chǔ)主干網(wǎng)絡(luò),通過降采樣和分組卷積學(xué)習場景點云的高層語義特征,再結(jié)合跳躍連接進行上采樣輸出點云的整體分割預(yù)測。同時,針對不同尺度的點云特征,引入了邊界對比學(xué)習算法,以迭代的方式定義子場景的邊界點,再利用損失函數(shù)進行對比學(xué)習,增大不同類點的距離,增強了對場景中不同語義標簽對象的邊界學(xué)習,并提升了網(wǎng)絡(luò)的分割準確性。通過在大型公開的三維激光點云場景分割數(shù)據(jù)集上進行實驗,得到的實驗結(jié)果證明了本文算法在點云邊界分割上具有更優(yōu)的分割效果,最后的消融實驗也驗證了本文算法在性能上有大幅提升。