王大方,尚 海,曹 江,王 濤,夏祥騰,韓雨霖
(1.哈爾濱工業(yè)大學(xué)(威海)汽車工程學(xué)院,威海 264200;2.陸軍裝甲兵學(xué)院,北京 100072)
語義分割是自動(dòng)駕駛技術(shù)環(huán)境感知環(huán)節(jié)重要的任務(wù)之一,其旨在將傳感器獲取的場景(圖片、點(diǎn)云等)進(jìn)行理解并標(biāo)注不同區(qū)域的語義信息,是目標(biāo)識(shí)別、分類等視覺任務(wù)的基礎(chǔ)[1]。全卷積神經(jīng)網(wǎng)絡(luò)(fully convolutional networks,F(xiàn)CN)[2]的提出使得深度學(xué)習(xí)的方法在2D圖像的語義分割領(lǐng)域有了突破性的進(jìn)展。但由于3D點(diǎn)云具有無序性、稀疏性、非結(jié)構(gòu)化[3]的特點(diǎn),使得許多已經(jīng)在圖像語義分割領(lǐng)域已經(jīng)很成熟的方法無法直接運(yùn)用到點(diǎn)云語義分割上,因此針對(duì)點(diǎn)云數(shù)據(jù)的語義分割任務(wù)更加困難,特別是在自動(dòng)駕駛場景下對(duì)于算法效率、內(nèi)存占用、魯棒性等方面的要求更加嚴(yán)格。針對(duì)以上困難,目前主流的點(diǎn)云語義分割方法主要有4種:基于投影的方法、基于體素化的方法、基于點(diǎn)的方法和多模態(tài)融合的方法。
在2D圖像分割領(lǐng)域許多算法如U-Net[4]、Mask R-CNN[5]、DeepLab[6]等已經(jīng)非常成熟,因此部分學(xué)者便考慮將3D點(diǎn)云投影轉(zhuǎn)化為2D圖像,然后再利用2D圖像的分割方法進(jìn)行處理。多視圖卷積神經(jīng)網(wǎng)絡(luò)(multi-view CNN,MVCNN)[7]通過多個(gè)視角將3D形狀進(jìn)行投影以得到多個(gè)2D視圖,對(duì)每個(gè)視圖使用卷積神經(jīng)網(wǎng)絡(luò)提取特征再進(jìn)行池化聚合得到最終的語義分割結(jié)果,但這種方式會(huì)因?yàn)橥队耙晥D不連續(xù)而丟失部分特征。為了解決這一問題,SqueezeSeg[8]將3D點(diǎn)云經(jīng)過球面投影得到前視圖,然后再使用基于SqueezeNet[9]的神經(jīng)網(wǎng)絡(luò)對(duì)投影圖像 進(jìn) 行 特 征 提 取 分 割。SqueezeSegV2[10]和SqueezeSegV3[11]是SqueezeSeg的改進(jìn)版,它們分別引入了域自適應(yīng)聚合模塊和空間自適應(yīng)卷積模塊來提高網(wǎng)絡(luò)的性能。RangeNet++[12]將激光雷達(dá)數(shù)據(jù)轉(zhuǎn)化為深度圖的形式表示,然后對(duì)深度圖進(jìn)行語義分割,最后再使用基于KNN搜索的方式來對(duì)點(diǎn)云進(jìn)行重建。以上方法雖然能夠通過轉(zhuǎn)換來利用2D語義分割的方法,但在投影的過程中不可避免地破壞了原始點(diǎn)云的空間結(jié)構(gòu)信息,從而影響分割的精度。
為了解決3D點(diǎn)云數(shù)據(jù)非結(jié)構(gòu)化的問題,一些研究通過體素化的方法將點(diǎn)云轉(zhuǎn)化為整體排列的體素網(wǎng)格,然后再使用3D CNN等方式進(jìn)行處理。3D UNet[13]使 用3D卷 積 替 換 了U-Net網(wǎng) 絡(luò) 中 的 卷 積 模塊,從而可以對(duì)三維數(shù)據(jù)進(jìn)行特征提取。SEGCloud[14]在3D全卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上引入了三線性插值和全連通條件隨機(jī)場來提高分割的準(zhǔn)確率。然而基于體素的方法會(huì)帶來內(nèi)存消耗增大的問題,體素網(wǎng)格越小,點(diǎn)云表示越精密,但內(nèi)存開銷就越大。VV-Net[15]使用徑向基函數(shù)代替體素的表示方法,并通過基于核的變分自編碼器對(duì)每個(gè)體素內(nèi)部幾何結(jié)構(gòu)進(jìn)行編碼。Cylinder 3D[16]設(shè)計(jì)了一種柱面劃分的點(diǎn)云表示方法,可以很好地適應(yīng)點(diǎn)云數(shù)據(jù)“近密遠(yuǎn)疏”的特點(diǎn),并且引入了非對(duì)稱殘差塊,增強(qiáng)了網(wǎng)絡(luò)的泛化能力。OctreeNet[17]使用八叉樹集合(Octree)來表示體素化后的點(diǎn)云,以減少體素網(wǎng)格的內(nèi)存占用,并提出了可以直接應(yīng)用于八叉樹的最小非平凡和非重疊內(nèi)核卷積以直接在構(gòu)建好的樹結(jié)構(gòu)上進(jìn)行卷積操作。
相較于投影和體素化等間接處理點(diǎn)云的方式,基于點(diǎn)的方法直接將點(diǎn)云送入神經(jīng)網(wǎng)絡(luò),避免了處理過程中的結(jié)構(gòu)損失和內(nèi)存占用,但這種方法的難點(diǎn)在于如何從非結(jié)構(gòu)化的點(diǎn)云中提取特征。PointNet[18]開創(chuàng)性地使用最大池化層(max-pooling)聚合特征,解決了直接輸入的點(diǎn)云無序性和置換不變性的問題。PointNet++[19]通過最遠(yuǎn)點(diǎn)采樣方法對(duì)點(diǎn)云進(jìn)行多尺度分組聚合,然后分別使用PointNet操作來捕獲點(diǎn)云空間中的上下文信息。PointSIFT[20]提出了一個(gè)基于SIFT算子(scale-invariant feature transform)的點(diǎn)云表示模塊,使網(wǎng)絡(luò)可以捕獲所有方向的信息,以提高局部特征捕獲能力。PointCNN[21]提出了一種X-Conv的卷積算子,該算子通過X變換矩陣解決了點(diǎn)云輸入無序性的問題。KPConv[22]構(gòu)造了一種核點(diǎn)卷積算子(kernel point convolution,KPC),并利用核函數(shù)計(jì)算中心點(diǎn)的權(quán)重矩陣以對(duì)提取到的局部特征進(jìn)行特征變換。
一些學(xué)者結(jié)合以上兩種或幾種方法提出了多模態(tài)融合的網(wǎng)絡(luò)對(duì)點(diǎn)云進(jìn)行語義分割。PVCNN[23]將基于點(diǎn)的方法和基于體素的方法相結(jié)合,提出了點(diǎn)體素卷積模塊,使網(wǎng)絡(luò)具有較小的內(nèi)存占用和良好的數(shù)據(jù)局部性、規(guī)律性的優(yōu)點(diǎn)。RPVNet[24]分別提取深度圖、點(diǎn)、體素的特征,然后將3個(gè)分支通過哈希映射融合以后送入編碼器-解碼器結(jié)構(gòu)進(jìn)行預(yù)測,顯著提高了分割精度。
在自動(dòng)駕駛場景中,點(diǎn)云語義分割的效率也是不可忽視的一個(gè)重要指標(biāo)。為提高點(diǎn)云分割的實(shí)時(shí)性,RandLA-Net[25]使用隨機(jī)降采樣替代點(diǎn)云處理中常用的最遠(yuǎn)點(diǎn)采樣方法,同時(shí)提出了局部特征聚合模塊(local feature aggregation,LFA)來彌補(bǔ)隨機(jī)降采樣過程中的信息丟失問題,使得大場景點(diǎn)云語義分割的效率大大提高。但該網(wǎng)絡(luò)的局部特征聚合模塊對(duì)局部特征提取的能力仍有限,而且對(duì)于大場景的點(diǎn)云,無法很好地捕獲全局上下文特征。鑒于此,本文中利用自注意力機(jī)制善于提取特征內(nèi)部相關(guān)性的特點(diǎn),設(shè)計(jì)了局部自注意力模塊和全局自注意力模塊來增強(qiáng)網(wǎng)絡(luò)局部特征提取和全局上下文聚合的性能。
自注意力機(jī)制通過對(duì)輸入變量自身進(jìn)行相關(guān)性運(yùn)算以得到不同特征之間的權(quán)重關(guān)系圖,然后再通過關(guān)系圖對(duì)特征按照權(quán)重進(jìn)行“賦分”編碼:
式中:Q、K、V分別是注意力機(jī)制里面的查詢(query)、鍵(key)、值(value)矩陣,它們都是由輸入特征通過線性變換得來;dk是特征線性變換后的維度數(shù),除以dk使得Q和K的內(nèi)積控制在一個(gè)范圍內(nèi)以避免數(shù)值過大;softmax是指數(shù)歸一化函數(shù),它將輸入映射成0到1之間的概率分布,從而得到輸入特征之間的注意力得分圖,注意力得分圖再與值矩陣V相乘即可得到按照注意力得分權(quán)重加權(quán)的最終輸出。對(duì)于一組點(diǎn)云來說,不同點(diǎn)之間的相關(guān)性是不同的,屬于同一個(gè)物體或結(jié)構(gòu)之間的點(diǎn)的相關(guān)性是大于不同類別點(diǎn)的。卷積的方法由于感受野較小,每次只能對(duì)輸入小部分點(diǎn)集進(jìn)行特征變換,欠缺對(duì)上下文語義進(jìn)行理解的能力。而自注意力機(jī)制對(duì)整個(gè)(或部分)輸入點(diǎn)云計(jì)算相關(guān)性分布圖,可以對(duì)全局信息(局部信息)進(jìn)行理解,從而更好地捕獲特征信息。本文以RandLA-Net為基礎(chǔ)框架構(gòu)造了基于注意力機(jī)制的語義分割網(wǎng)絡(luò),在原網(wǎng)絡(luò)基礎(chǔ)上設(shè)計(jì)了局部自注意力編碼器和全局自注意力編碼器,以提高網(wǎng)絡(luò)從稀疏點(diǎn)云中提取局部和全局特征的能力。
網(wǎng)絡(luò)整體結(jié)構(gòu)如圖1所示,本文中網(wǎng)絡(luò)采用“編碼器-解碼器”結(jié)構(gòu)。在編碼器階段通過降采樣和特征提取逐步減少點(diǎn)的數(shù)量、提升特征維度,聚合點(diǎn)云特征;在解碼器階段通過上采樣將點(diǎn)云數(shù)量還原回輸入點(diǎn)的數(shù)量,并通過線性變換將特征維度映射到最終的語義標(biāo)簽。
圖1 網(wǎng)絡(luò)整體結(jié)構(gòu)
編碼器的網(wǎng)絡(luò)基本層由隨機(jī)下采樣(random sampling,RS)和特征聚合模塊(feature aggregation module,F(xiàn)AM)組成。在編碼器階段,輸入點(diǎn)云首先通過全連接層將維度升為8,然后再逐步進(jìn)行下采樣和編碼。在每次隨機(jī)降采樣之后緊接著使用FAM提取特征。通過4次隨機(jī)降采樣將點(diǎn)云數(shù)量分別減少到N∕4、N∕16、N∕64、N∕256,為了對(duì)抗隨機(jī)降采樣導(dǎo)致的信息丟失,F(xiàn)AM逐步將維度數(shù)提升到32、128、256、512。在解碼器階段使用KNN算法查找點(diǎn)的近鄰點(diǎn),然后通過三線性插值對(duì)點(diǎn)云進(jìn)行逐步上采樣至輸入的點(diǎn)云數(shù)N。由于降采樣過程中被丟棄點(diǎn)的信息是不可逆的,為了減少損失,在上采樣過程中通過跳躍連接將網(wǎng)絡(luò)編碼器階段提取到的底層特征圖與解碼時(shí)的高層特征進(jìn)行融合。最后將融合后的特征向量通過全連接層將維度映射到輸出類別數(shù)class。
特征聚合模塊是語義分割網(wǎng)絡(luò)的基本單元,該模塊通過局部自注意力編碼器(local self-attention encoder,LSAE)和全局自注意力編碼器(global selfattention encoder,GSAE)對(duì)輸入點(diǎn)云進(jìn)行特征提取和聚合,其結(jié)構(gòu)如圖2(a)所示。對(duì)于輸入大小為N×din的點(diǎn)云首先使用MLP將維度變換dout∕2;然后通過兩個(gè)級(jí)聯(lián)的LSAE模塊提取局部特征信息,圖中綠色模塊代表點(diǎn)云坐標(biāo)信息,用于局部自注意力編碼器中的位置編碼δ操作;輸出的N×dout張量再送入GSAE模塊提取全局上下文信息;最后把輸入張量通過MLP將維度對(duì)齊到輸出維度以后與GSAE模塊得到的特征進(jìn)行殘差連接即可得到輸出。
RandLA-Net的局部空間編碼模塊通過中心點(diǎn)與鄰近點(diǎn)的特征合并進(jìn)行編碼,從而提取到了點(diǎn)云局部的結(jié)構(gòu)特征,但實(shí)際上同一組點(diǎn)云中心點(diǎn)與其鄰近點(diǎn)的相關(guān)性是不同的,受Point Transformer[26]啟發(fā),本文中設(shè)計(jì)了局部自注意力編碼器LSAE,通過自注意力機(jī)制計(jì)算中心點(diǎn)與各鄰近點(diǎn)的相關(guān)性權(quán)重進(jìn)行特征編碼。
相比于以像素為單位整齊排列的2D圖像,點(diǎn)云本質(zhì)上是嵌入在度量空間中的向量,其原始坐標(biāo)信息中包含點(diǎn)之間的關(guān)系,因此本文中使用中心點(diǎn)向量與鄰近點(diǎn)向量之差作為兩點(diǎn)之間的注意力關(guān)系,其計(jì)算公式如下:
式中:P(i)為pi點(diǎn)的k個(gè)鄰近點(diǎn)組成的點(diǎn)集;φ、ψ、α、γ均為MLP多層感知機(jī)操作;ρ為歸一化操作;⊙為哈達(dá)瑪積,即兩矩陣逐元素相乘;δ為位置編碼操作。
式中θ是MLP多層感知機(jī)操作,通過線性變換將中心點(diǎn)與鄰近點(diǎn)坐標(biāo)之差向量的維度與注意力關(guān)系矩陣的維度相同。
局部自注意力編碼器結(jié)構(gòu)如圖2(b)所示。對(duì)于輸入的每個(gè)點(diǎn)pi,通過KNN算法查找其k個(gè)鄰近點(diǎn)pj;然后對(duì)pi和pj分別進(jìn)行線性變換將維度映射到高維空間,再通過張量的廣播機(jī)制相減計(jì)算注意力關(guān)系;將求得的注意力關(guān)系與位置編碼向量相加后經(jīng)過softmax函數(shù)歸一化得到注意力圖;將注意力圖得分與鄰近點(diǎn)變換后的特征矩陣α逐元素相乘即可賦予不同鄰近點(diǎn)相應(yīng)的權(quán)重;最后再通過求和操作聚合鄰近點(diǎn)特征,即可得到局部注意力編碼器的輸出。
對(duì)于語義分割等場景理解任務(wù)來說,提取全局上下文信息也是影響分割性能的重要因素。由于卷積核感受野并不能覆蓋全部點(diǎn),所以僅通過卷積提取特征的方式并不能很好地提取全局信息。本文中基于自注意力機(jī)制設(shè)計(jì)了全局自注意力編碼器GSAE,全局自注意力模塊結(jié)構(gòu)如圖2(c)所示。與局部自注意力編碼器不同,全局自注意力編碼器將整個(gè)大小為N×d的點(diǎn)云作為輸入,其中N為點(diǎn)的個(gè)數(shù),d為輸入的維度數(shù);通過MLP變換分別得到查詢矩陣Q、鍵矩陣KT(需要對(duì)K進(jìn)行轉(zhuǎn)置操作以進(jìn)行矩陣相乘)和值矩陣V;Q與K通過矩陣相乘后再對(duì)特征維度進(jìn)行softmax歸一化得到大小為N×N的注意力圖;將注意力圖與值矩陣V相乘得到N×d'的注意力輸出特征,最后再通過MLP將維度變換到輸入的維度即為該模塊最終的輸出。
圖2 網(wǎng)絡(luò)基本層結(jié)構(gòu)
本文中選取了大規(guī)模車載場景點(diǎn)云數(shù)據(jù)集SemanticKITTI[27]和SemanticPOSS[28]作為實(shí)驗(yàn)數(shù)據(jù)。SemanticKITTI是Behley等人基于德國卡爾斯魯厄理工學(xué)院采集的KITTI[29]數(shù)據(jù)集中的激光雷達(dá)點(diǎn)云數(shù)據(jù)進(jìn)行語義標(biāo)注得到的。SemanticKITTI由22個(gè)點(diǎn)云序列組成,它包含了德國卡爾斯魯厄市中心的交通場景、住宅區(qū)、高速道路場景和鄉(xiāng)村道路。SemanticPOSS是由北京大學(xué)發(fā)布的數(shù)據(jù)集,它采用了與SemanticKITTI相同的數(shù)據(jù)格式,有6個(gè)點(diǎn)云序列,主要包含了北京大學(xué)校園內(nèi)多個(gè)場景的點(diǎn)云。SemanticPOSS每幀點(diǎn)云數(shù)據(jù)包含的行人、車輛等小目標(biāo)要比SemanticKITTI更加豐富,因此對(duì)于自動(dòng)駕駛場景點(diǎn)云語義理解任務(wù)來說更具有挑戰(zhàn)性。
語義分割任務(wù)常用平均交并比(mean intersection over union,MIoU)來評(píng)價(jià)分割精度:
式中:k表示總類別數(shù);i表示真實(shí)值;j表示預(yù)測值;pij表示將第i類預(yù)測為第j類的像素點(diǎn)數(shù)量。MIoU反映了對(duì)該場景所有類別預(yù)測的平均準(zhǔn)確程度,本文中也通過MIoU來比較算法的分割精度。
實(shí)驗(yàn)環(huán)境配置如下:硬件方面使用AMD Ryzen 9 3950X處理器,單塊NVIDIA RTX3090 24G顯卡;軟件、系統(tǒng)方面使用ubuntu18.04,CUDA版本11.1,PyTorch1.9深度學(xué)習(xí)框架;參數(shù)設(shè)置方面批處理大小設(shè)置為4,最大訓(xùn)練輪數(shù)設(shè)置為100,采用Adam優(yōu)化器,初始學(xué)習(xí)率設(shè)置為0.01,學(xué)習(xí)率衰減使用指數(shù)衰減方法,衰減指數(shù)設(shè)置為0.95,每訓(xùn)練完一輪進(jìn)行一次推理驗(yàn)證。
2.3.1 LSAE、GSAE模塊消融實(shí)驗(yàn)
為了驗(yàn)證LSAE、GSAE兩個(gè)模塊的串聯(lián)個(gè)數(shù)和方式對(duì)于整體分割精度的影響,以1個(gè)LSAE、1個(gè)GSAE模塊串聯(lián)順序?yàn)榫W(wǎng)絡(luò)基本結(jié)構(gòu),在此基礎(chǔ)上分別增加2個(gè)模塊個(gè)數(shù)、改變2個(gè)模塊串聯(lián)順序,在SemanticKITTI數(shù)據(jù)集進(jìn)行消融實(shí)驗(yàn),對(duì)19個(gè)物體類別的MIoU進(jìn)行驗(yàn)證,結(jié)果如表1所示。
表1 LSAE、GSAE消融實(shí)驗(yàn)結(jié)果
表中“1LSAE、1GSAE”表示特征聚合模塊先嵌入1個(gè)LSAE模塊、再嵌入1個(gè)GSAE模塊,“1GSAE、1LSAE”表示將2個(gè)模塊串聯(lián)順序互換,先嵌入1個(gè)GSAE模塊、再嵌入1個(gè)LSAE模塊。
從結(jié)果 可 以看出,按照1個(gè)LSAE模塊、1個(gè)GSAE模塊順序嵌入特征聚合模塊組成的網(wǎng)絡(luò)基本結(jié)構(gòu)語義分割MIoU為56.2%,這說明2個(gè)注意力模塊的加入使得本網(wǎng)絡(luò)相比于基準(zhǔn)網(wǎng)絡(luò)RandLA-Net具有更好的特征提取能力;當(dāng)把LSAE、GSAE的串聯(lián)順序互換,即先通過GSAE提取全局特征、后通過LSAE提取局部特征時(shí),MIoU降為37.5%,這是因?yàn)镚SAE模塊通過計(jì)算注意力得分提取全局特征以后破壞了各點(diǎn)之間原本的結(jié)構(gòu)信息,使得LSAE無法再捕獲局部特征,從而導(dǎo)致分割精度下降;當(dāng)按照“先LSAE,后GSAE”的串聯(lián)方式增加1個(gè)LSAE模塊時(shí)最終精度提升了3.4個(gè)百分點(diǎn)。分析可知,當(dāng)網(wǎng)絡(luò)中有2個(gè)LSAE模塊時(shí),網(wǎng)絡(luò)先通過1個(gè)LSAE提取特征維度為dout∕2的局部特征,然后再通過1個(gè)LSAE提取特征維度為dout的局部特征,從而提高了特征提取能力;而繼續(xù)將LSAE模塊增加到3個(gè)時(shí)精度反而有所下降,這是因?yàn)楫?dāng)使用3個(gè)LSAE模塊提取特征時(shí),相鄰2個(gè)LSAE模塊特征維度相差較小,網(wǎng)絡(luò)提取到了相似的特征,會(huì)使得網(wǎng)絡(luò)趨向于過擬合,從而導(dǎo)致分割精度下降;當(dāng)固定LSAE模塊為1個(gè),增加1個(gè)GSAE模塊時(shí),MIoU比原來下降了1.3個(gè)百分點(diǎn),這說明了1個(gè)GSAE模塊已經(jīng)很好地提取全局上下文信息,2個(gè)GSAE模塊使網(wǎng)絡(luò)提取到了多余的特征,產(chǎn)生了過擬合的現(xiàn)象。因此在最終的網(wǎng)絡(luò)實(shí)現(xiàn)中,選取“2LSAE、1GSAE”的串聯(lián)方式搭建FAM模塊。
2.3.2 LSAE模塊小目標(biāo)分割提升效果驗(yàn)證
車輛、行人等交通參與者是自動(dòng)駕駛場景語義理解的重點(diǎn),但受限于車載雷達(dá)采集的缺點(diǎn),車輛、行人等小目標(biāo)點(diǎn)云會(huì)出現(xiàn)部分缺失、遠(yuǎn)處點(diǎn)云密度稀疏等問題,這使得網(wǎng)絡(luò)對(duì)于小目標(biāo)物體的語義分割更加困難。為了驗(yàn)證本文設(shè)計(jì)的注意力模塊對(duì)于小目標(biāo)分割精度的提升效果,將RandLA-Net網(wǎng)絡(luò)中的局部聚合模塊分別替換為LSAE模塊、GSAE模塊和兩者組合搭建的FAM模塊,與原網(wǎng)絡(luò)一起分別在SemanticPOSS數(shù)據(jù)集上測試,除特征提取模塊不同以外,其他參數(shù)和超參數(shù)均與RandLA-Net原文中設(shè)置保持一致,選取數(shù)據(jù)集中汽車、行人、騎手3個(gè)交通參與者目標(biāo)進(jìn)行對(duì)比,結(jié)果如表2所示。
表2 小目標(biāo)分割提升效果驗(yàn)證
表中“+LSAE”表示將RandLA-Net中的局部聚合模塊替換為LSAE模塊,“+GSAE”模塊表示將局部聚合模塊替換為GSAE模塊,“+FAM”表示將局部聚合模塊替換為FAM模塊,即按照LSAE模塊、GSAE模塊的順序串聯(lián)后替換到原網(wǎng)絡(luò)中。
由表2可知,將局部聚合模塊替換為LSAE后,汽車、行人、騎手的分割精度均有提高,MIoU相比原網(wǎng)絡(luò)也提高了2.6個(gè)百分點(diǎn),分析可得,逐點(diǎn)的自注意力機(jī)制通過計(jì)算中心點(diǎn)與鄰近點(diǎn)的注意力關(guān)系賦予特征提取的權(quán)重,對(duì)于小目標(biāo),其內(nèi)部點(diǎn)的數(shù)量也比較少,LSAE模塊的感受野能夠覆蓋這些物體,從而可以更好地捕獲局部結(jié)構(gòu)信息;把原網(wǎng)絡(luò)局部聚合模塊替換為GSAE模塊后分割精度反而降低為48.5%,這是因?yàn)樵W(wǎng)絡(luò)中局部聚合模塊具有局部特征提取的能力,而GSAE無法對(duì)局部特征進(jìn)行提取,從而使分割精度有所下降;在加入FAM模塊后分割精度為56.8%,與僅加入LSAE模塊相比分割精度僅提升0.3個(gè)百分點(diǎn),由此可知GSAE模塊對(duì)于小目標(biāo)特征提取能力的提升效果并不明顯。
從圖3對(duì)SemanticPOSS數(shù)據(jù)集預(yù)測結(jié)果可視化中可以看到,添加LSAE模塊后本文網(wǎng)絡(luò)可以準(zhǔn)確預(yù)測出遠(yuǎn)點(diǎn)處有遮擋的行人、騎手等小目標(biāo)(圖中黃圈標(biāo)出),甚至還分辨出了真值語義中標(biāo)錯(cuò)的對(duì)象(圖中白圈標(biāo)出,在真值語義標(biāo)注中,將該對(duì)象標(biāo)注為行人,但通過動(dòng)作可以看出目標(biāo)為騎手),這也驗(yàn)證了本文方法的可靠性。
圖3 SemanticPOSS數(shù)據(jù)集02序列第472幀
在LSAE模塊中,影響感受野的參數(shù)是KNN最近鄰查找中的鄰近點(diǎn)個(gè)數(shù)k。為了探究鄰近點(diǎn)個(gè)數(shù)k對(duì)于語義分割的影響,在上面的網(wǎng)絡(luò)中改變鄰近點(diǎn)個(gè)數(shù)k進(jìn)行實(shí)驗(yàn),在SemanticPOSS上的實(shí)驗(yàn)結(jié)果如表3所示。
表3 鄰近點(diǎn)數(shù)量實(shí)驗(yàn)結(jié)果
從表中結(jié)果可以看出,當(dāng)鄰近點(diǎn)個(gè)數(shù)為8時(shí),由于單次局部自注意力聚合的點(diǎn)過少,LSAE模塊能夠?qū)W習(xí)到的局部特征信息很少,分割結(jié)果較差;當(dāng)鄰近點(diǎn)個(gè)數(shù)為16或32時(shí),語義分割結(jié)果表現(xiàn)最好,LSAE模塊能夠充分提取內(nèi)部特征;而當(dāng)鄰近點(diǎn)個(gè)數(shù)增加到64時(shí),分割結(jié)果反而變差,這是因?yàn)猷徑c(diǎn)個(gè)數(shù)過多,對(duì)于小目標(biāo)點(diǎn)云,更多的其他相鄰結(jié)構(gòu)(如地面)被LSAE模塊納入相關(guān)性計(jì)算過程,從而使提取到的特征變差。而且激光雷達(dá)點(diǎn)云具有近密遠(yuǎn)疏的特點(diǎn),遠(yuǎn)點(diǎn)處的小目標(biāo)物體點(diǎn)密度更低,這也使得網(wǎng)絡(luò)對(duì)鄰近點(diǎn)個(gè)數(shù)更加敏感??傮w來看,鄰近點(diǎn)個(gè)數(shù)為16或32時(shí)均可以獲得很好的分割效果,但當(dāng)鄰近點(diǎn)個(gè)數(shù)是16時(shí)網(wǎng)絡(luò)參數(shù)量少、內(nèi)存占用較小,因此在最終網(wǎng)絡(luò)實(shí)現(xiàn)中鄰近點(diǎn)個(gè)數(shù)選取為16。
2.3.3 語義分割網(wǎng)絡(luò)實(shí)時(shí)性驗(yàn)證
在自動(dòng)駕駛場景中,分割算法的實(shí)時(shí)性是必須考慮的重要指標(biāo)。為了驗(yàn)證本文算法的計(jì)算實(shí)時(shí)性,將本網(wǎng)絡(luò)、RandLA-Net和目前基于點(diǎn)的方法中分割精度最高的KPConv分別對(duì)SemanticKITTI數(shù)據(jù)集08序列(共有4 071幀點(diǎn)云數(shù)據(jù))進(jìn)行前向推理,將每幀的81 920個(gè)點(diǎn)輸入網(wǎng)絡(luò)中對(duì)比完成08序列點(diǎn)云前向推理所消耗的時(shí)間。3組實(shí)驗(yàn)均在同一塊NVIDIA RTX3090顯卡上進(jìn)行,除網(wǎng)絡(luò)結(jié)構(gòu)不同外其他設(shè)置均相同,實(shí)驗(yàn)結(jié)果如表4所示。
表4 前向推理消耗時(shí)間
表中MIoU一列標(biāo)注出了3組網(wǎng)絡(luò)在SemanticKITTI數(shù)據(jù)集上19類物體的語義分割交并比以便從分割精度和分割實(shí)時(shí)性上進(jìn)行對(duì)比。從表中可以看出KPConv消耗時(shí)間最長,處理4 071幀點(diǎn)云使用了656 s(約6FPS),KPConv使用網(wǎng)格下采樣方法以確保每次下采樣點(diǎn)云位置的空間一致性,這增加了點(diǎn)云處理的時(shí)間消耗;得益于隨機(jī)降采樣的計(jì)算效率,RandLA-Net和本文網(wǎng)絡(luò)所消耗時(shí)間相比于KPConv大大減少,RandLA-Net所用時(shí)間為149 s(約28FPS),本文網(wǎng)絡(luò)所用時(shí)間為177 s(約23FPS)。與RandLA-Net和KPConv對(duì)比分析可知,本文網(wǎng)絡(luò)在提高了分割精度的同時(shí)也保持了較高的分割效率。
2.3.4 最終結(jié)果分析
在SemanticKITTI數(shù)據(jù)集上對(duì)本文的網(wǎng)絡(luò)進(jìn)行測試驗(yàn)證,并將MIoU和19類物體分割交并比與現(xiàn)有網(wǎng)絡(luò)進(jìn)行對(duì)比,結(jié)果如表5所示。
表5 SemanticKITTI數(shù)據(jù)集語義分割結(jié)果
從表中可以看出,本文網(wǎng)絡(luò)的語義分割MIoU達(dá)到了59.6%,比目前基于點(diǎn)的最好的網(wǎng)絡(luò)KPConv提高了0.8個(gè)百分點(diǎn)。與同樣用局部特征聚合模塊進(jìn)行特征提取的RandLA-Net網(wǎng)絡(luò)相比,最終MIoU提高了5.7個(gè)百分點(diǎn)。進(jìn)一步對(duì)比分析可得,與RandLA-Net相比,本網(wǎng)絡(luò)每個(gè)類別的分割交并比均有不同程度地提升,這也進(jìn)一步驗(yàn)證了全局自注意力編碼器對(duì)于全局上下文信息提取的作用。在對(duì)SemanticKITTI數(shù)據(jù)集中第08序列第729幀點(diǎn)云可視化的圖4中可以看到,RandLA-Net將行人點(diǎn)云誤判為地面和植被,而本文算法可以準(zhǔn)確分割,這說明了本網(wǎng)絡(luò)相比于RandLA-Net具有更強(qiáng)的局部特征提取能力。通過橫向比較可以看到網(wǎng)絡(luò)對(duì)于摩托車騎手(motorcyclist)分割精度很低,這是因?yàn)樵跀?shù)據(jù)集中摩托車騎手的數(shù)量相比于自行車騎手(bicyclist)較低,且在稀疏的點(diǎn)云表示中這兩者結(jié)構(gòu)相似,在網(wǎng)絡(luò)特征提取時(shí)容易將兩者混淆。另外還可以看到,本文的方法相比于多模態(tài)融合的方法(FusionNet)還有差距,基于點(diǎn)的方法雖然在速度和存儲(chǔ)上具有很大優(yōu)勢,但在分割精度上僅僅通過提取稀疏點(diǎn)的信息相比于通過圖像、體素、深度信息等多模態(tài)的方法仍有差距。在本文方法的基礎(chǔ)上再通過融合圖像、體素等方式以提高分割精度也是未來改進(jìn)的重點(diǎn)方向。
圖4 SemanticKITTI數(shù)據(jù)集08序列第729幀
本文中基于自注意力機(jī)制的特點(diǎn),設(shè)計(jì)了局部自注意力編碼器和全局自注意力編碼器,將它們應(yīng)用到了自動(dòng)駕駛場景點(diǎn)云語義分割網(wǎng)絡(luò)中,綜合兩種不同的自注意力特征提取方式來增強(qiáng)點(diǎn)對(duì)于鄰域拓?fù)浣Y(jié)構(gòu)的學(xué)習(xí)能力,并在SemanticKITTI和SemanticPOSS兩個(gè)大型語義分割數(shù)據(jù)集上進(jìn)行測試。實(shí)驗(yàn)結(jié)果表明,本文方法超過了目前最優(yōu)的基于點(diǎn)的點(diǎn)云語義分割網(wǎng)絡(luò),并且具有較高的分割效率,驗(yàn)證了自注意力機(jī)制在點(diǎn)云語義理解任務(wù)中的有效性。
但由于稀疏點(diǎn)云本身的特點(diǎn),對(duì)于結(jié)構(gòu)相似的物體僅通過對(duì)于點(diǎn)的拓?fù)浣Y(jié)構(gòu)進(jìn)行特征提取無法保證準(zhǔn)確性,如何設(shè)計(jì)編碼器結(jié)構(gòu)使得網(wǎng)絡(luò)可以從更細(xì)粒度的結(jié)構(gòu)中學(xué)習(xí)到相似物體的不同特征也是基于點(diǎn)的語義分割方法需要重點(diǎn)研究的方向之一。