楊軍,黨吉圣
(蘭州交通大學(xué)電子與信息工程學(xué)院,甘肅 蘭州 730070)
點(diǎn)云是三維模型最重要的數(shù)據(jù)表示形式之一,其能夠準(zhǔn)確、直觀地描述三維模型。隨著三維成像技術(shù)的飛速發(fā)展,三維點(diǎn)云數(shù)據(jù)呈海量增長趨勢,對(duì)其進(jìn)行分析和處理顯得尤其重要。語義分割作為三維點(diǎn)云數(shù)據(jù)分析處理的前提與基礎(chǔ),已廣泛應(yīng)用于醫(yī)學(xué)成像、自動(dòng)駕駛、機(jī)器人導(dǎo)航、虛擬現(xiàn)實(shí)、遙感測繪等領(lǐng)域,成為計(jì)算機(jī)視覺和計(jì)算機(jī)圖形學(xué)領(lǐng)域的一個(gè)重要研究課題。由于卷積神經(jīng)網(wǎng)絡(luò)[1]的飛速發(fā)展以及GPU(graphics processing unit)計(jì)算能力的顯著提高,傳統(tǒng)的手工設(shè)計(jì)描述符[2-4]的方法已漸漸被基于深度學(xué)習(xí)的方法所取代,一些研究者開始設(shè)計(jì)針對(duì)大規(guī)模、多種類的復(fù)雜三維點(diǎn)云模型語義分割的深度學(xué)習(xí)框架。目前,基于深度學(xué)習(xí)的三維點(diǎn)云模型語義分割方法主要有:基于投影的方法、基于多模態(tài)的方法、基于體素化的方法和基于點(diǎn)云表示的方法。
基于投影的方法。受二維圖像語義分割方法的啟發(fā),Ku 等[5]將三維點(diǎn)云投影為二維鳥瞰圖,然后使用經(jīng)典的二維深度學(xué)習(xí)網(wǎng)絡(luò)提取特征用于三維點(diǎn)云語義分割。Yang 等[6]設(shè)計(jì)了一個(gè)單級(jí)檢測器,從像素級(jí)神經(jīng)網(wǎng)絡(luò)輸出點(diǎn)云分割結(jié)果。Kalogerakis等[7]提出了投影卷積神經(jīng)網(wǎng)絡(luò),首先對(duì)三維模型進(jìn)行多方位拍照,然后將二維視圖輸入VGG(visual geometry group)[8]中提取特征,最后將特征反投影到三維點(diǎn)云表面預(yù)測每個(gè)點(diǎn)的語義類別。Huang 等[9]提出多視圖卷積神經(jīng)網(wǎng)絡(luò),從對(duì)應(yīng)關(guān)系中學(xué)習(xí)局部描述符,增強(qiáng)了網(wǎng)絡(luò)的泛化能力。然而,基于投影的方法的關(guān)鍵問題是在生成2D 投影圖時(shí),丟失了具有鑒別力的幾何結(jié)構(gòu)信息。
基于多模態(tài)的方法。Chen 等[10]提出MV3D(multi-view 3D)目標(biāo)檢測網(wǎng)絡(luò),把鳥瞰圖和點(diǎn)云同時(shí)作為輸入獲得多模態(tài)特征,進(jìn)一步融合用于點(diǎn)云語義分割任務(wù)。Qi 等[11]利用一個(gè)二維檢測網(wǎng)絡(luò)構(gòu)建截錐體點(diǎn)云。然而,基于多模態(tài)的方法通常計(jì)算效率較低。
基于體素化的方法。Wu 等[12]將不規(guī)則的三維點(diǎn)云模型轉(zhuǎn)化為規(guī)則的體素網(wǎng)格,這樣便可以使用三維卷積神經(jīng)網(wǎng)絡(luò)處理體素模型提取特征,但是體素方塊大小的選擇會(huì)影響網(wǎng)絡(luò)性能,太大會(huì)丟失細(xì)節(jié),太小會(huì)增加計(jì)算負(fù)擔(dān)。改進(jìn)算法提出了空間劃分方法,如Kd 樹[13]或者八叉樹[14],解決了一些分辨率低的問題,但仍然依賴于邊界體的細(xì)分,沒有考慮局部幾何結(jié)構(gòu)。
基于點(diǎn)云表示的方法。為了避免多方位投影、體素化等方法的煩瑣操作,Qi 等[15]提出了可以直接作用于無序點(diǎn)云數(shù)據(jù)的PointNet 模型,利用多層感知機(jī)(MLP,multi-layer perceptron)學(xué)習(xí)每個(gè)獨(dú)立點(diǎn)的高維表征,然后采用一個(gè)最大池化層對(duì)所有點(diǎn)的高維特征進(jìn)行聚合得到全局特征描述符。PointNet是深度學(xué)習(xí)框架可以直接作用于不規(guī)則三維點(diǎn)云數(shù)據(jù)的先驅(qū)性工作,然而,PointNet 只關(guān)注每個(gè)點(diǎn)的全局特征,缺乏捕捉局部特征的能力。Qi 等[16]提出了PointNet++,通過劃分局部點(diǎn)云分層提取多尺度特征。該網(wǎng)絡(luò)雖然考慮了點(diǎn)云局部特征,但是沒有考慮點(diǎn)對(duì)之間的關(guān)聯(lián)信息,缺乏捕捉幾何特征的能力。Wang 等[17]通過建立和更新動(dòng)態(tài)圖,在保證置換不變性的同時(shí)捕獲局部幾何特征,取得了較先進(jìn)的分割結(jié)果。Chen 等[18]建立局部區(qū)域加強(qiáng)對(duì)相鄰點(diǎn)的關(guān)注,以充分提取點(diǎn)云的局部幾何特征。Liu 等[19]提出一種點(diǎn)云序列學(xué)習(xí)模型,采用注意力機(jī)制來突出不同尺度區(qū)域的重要性。Wang 等[20]提出了相似分組提議網(wǎng)絡(luò)(SGPN,similarity group proposal network)模型,引入相似矩陣作為輸出,表征嵌入特征空間中每對(duì)點(diǎn)之間的相似度,從而預(yù)測每個(gè)點(diǎn)的語義標(biāo)簽。Jiang 等[21]設(shè)計(jì)了PointSIFT模塊,該模塊可以對(duì)不同方向的信息進(jìn)行編碼,并且通過堆疊幾個(gè)方向編碼單元來實(shí)現(xiàn)多尺度表示,最后將解碼器的輸出連接到全連接層,用于預(yù)測每個(gè)點(diǎn)的語義類別。Ye 等[22]提出利用超點(diǎn)圖來有效捕捉點(diǎn)云的組織結(jié)構(gòu),然后通過圖卷積神經(jīng)網(wǎng)絡(luò)從超點(diǎn)圖中提取特征來完成語義分割任務(wù)。Landrieu 等[23]提出了一種新的端到端語義分割方法,首先研究了利用多尺度鄰域捕獲不同密度局部結(jié)構(gòu)特征的金字塔池化模型,然后利用雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN,recurrent neural network)學(xué)習(xí)點(diǎn)云的空間相關(guān)性來捕捉空間結(jié)構(gòu)信息,最后輸出每個(gè)點(diǎn)的語義標(biāo)簽。
相對(duì)于三維目標(biāo)識(shí)別任務(wù),三維點(diǎn)云語義分割需要預(yù)測每個(gè)點(diǎn)的語義類別,提取更精細(xì)的點(diǎn)特征,因此是一項(xiàng)需要結(jié)合上下文信息的更具挑戰(zhàn)性的細(xì)粒度點(diǎn)云分析任務(wù),但由于點(diǎn)云存儲(chǔ)在不規(guī)則和無序的結(jié)構(gòu)中,提取點(diǎn)云的上下文細(xì)粒度特征信息仍然具有很大的挑戰(zhàn)性?,F(xiàn)有方法在三維點(diǎn)云語義分割過程中對(duì)于整體幾何形狀極其相似、局部細(xì)節(jié)結(jié)構(gòu)略有不同的語義類不能進(jìn)行有效區(qū)分,造成的欠分割問題一直沒有得到很好的解決。本文提出一種基于上下文注意力卷積神經(jīng)網(wǎng)絡(luò)(CACNN,contextual attention convolutional neural network)的三維點(diǎn)云語義分割算法,充分挖掘三維模型的多尺度上下文細(xì)粒度特征信息,改善了三維點(diǎn)云語義分割的過分割問題,提高了三維點(diǎn)云語義分割的準(zhǔn)確率。主要貢獻(xiàn)和創(chuàng)新點(diǎn)如下。1) 構(gòu)建上下文注意力卷積層。通過在局部點(diǎn)云中引入圖注意力機(jī)制來對(duì)鄰域特征進(jìn)行自適應(yīng)篩選,更好地學(xué)習(xí)點(diǎn)云的細(xì)粒度局部特征。2) 通過上下文RNN 編碼每個(gè)采樣點(diǎn)的不同尺度鄰域特征來學(xué)習(xí)每個(gè)采樣點(diǎn)的多尺度上下文幾何特征,并與細(xì)粒度局部特征相互補(bǔ)償增強(qiáng)特征描述符的語義豐富性。3) 采用多頭部機(jī)制聚合不同的單頭部上下文注意力卷積層的特征,使網(wǎng)絡(luò)具有良好的泛化能力,同時(shí)在網(wǎng)絡(luò)中引入殘差學(xué)習(xí)以充分挖掘三維點(diǎn)云的深層隱含特征信息,進(jìn)一步提高網(wǎng)絡(luò)特征學(xué)習(xí)的能力。
在實(shí)際應(yīng)用(如自動(dòng)駕駛)中,點(diǎn)云的數(shù)目非常大,為了減少計(jì)算成本,需要構(gòu)建一個(gè)k近鄰圖G=(V,E)來表示點(diǎn)云的一個(gè)局部區(qū)域。其中,V={1,2,…,N}為點(diǎn)的集合,E?V×αi表示連接相鄰點(diǎn)對(duì)的邊,αi為點(diǎn)xi的鄰域點(diǎn)的集合。為了使點(diǎn)集的特征學(xué)習(xí)不受旋轉(zhuǎn)、平移等變換的影響,將每個(gè)局部區(qū)域點(diǎn)的坐標(biāo)xij轉(zhuǎn)換為中心點(diǎn)xi的相對(duì)坐標(biāo),即得到邊的特征為
其中,xi∈V,xij∈αi。
為了充分挖掘點(diǎn)云的細(xì)粒度細(xì)節(jié)和多尺度上下文信息,在PointNet[15]的基礎(chǔ)上,本文構(gòu)建上下文注意力卷積(CAC,contextual attention convolutional)層,采用注意力編碼和上下文RNN 編碼2 個(gè)并行編碼機(jī)制分別學(xué)習(xí)局部區(qū)域內(nèi)細(xì)粒度特征和局部區(qū)域之間的多尺度上下文幾何特征,上下文注意力卷積層網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。其中,MLP{}表示多層感知機(jī)操作,{ }中的數(shù)字表示卷積核的數(shù)目。
注意力編碼機(jī)制首先采用輸出通道為F1的MLP 將原始點(diǎn)特征和邊特征映射到高維特征空間,如式(2)和式(3)所示。
其中,λ為參數(shù)化的非線性激活函數(shù),Θ為卷積核中可學(xué)習(xí)的參數(shù)集合,BN 為批歸一化處理,c為卷積操作,其下標(biāo)F1×1 表示卷積核大小。實(shí)驗(yàn)中F1取16,即特征通道數(shù)為16。對(duì)分別采用一個(gè)MLP 生成描述點(diǎn)xi自注意力系數(shù)和鄰域注意力系數(shù),并將兩者進(jìn)行融合得到描述點(diǎn)xi到其鄰域內(nèi)k個(gè)鄰近點(diǎn)的注意力系數(shù)bij,如式(4)所示。
圖1 上下文注意力卷積層網(wǎng)絡(luò)結(jié)構(gòu)
其中,Selu()為非線性激活函數(shù)。為了提高模型收斂速度,采用Softmax 函數(shù)對(duì)注意力系數(shù)進(jìn)行歸一化處理,如式(5)所示。
為了挖掘細(xì)粒度局部特征,將注意力系數(shù)aij與局部圖特征相乘,則細(xì)粒度局部特征li為
此時(shí),注意力系數(shù)作為一個(gè)特征選擇器,自適應(yīng)地對(duì)描述點(diǎn)xi具有鑒別力的鄰域特征進(jìn)行增強(qiáng),抑制無意義的鄰域特征(如噪聲)充分挖掘點(diǎn)云局部區(qū)域內(nèi)的細(xì)粒度細(xì)節(jié)信息。
上下文RNN 編碼機(jī)制首先采用迭代最遠(yuǎn)點(diǎn)采樣算法從輸入點(diǎn)云中選取R(R<N)個(gè)點(diǎn)作為R個(gè)局部區(qū)域的中心點(diǎn)。對(duì)于每個(gè)采樣點(diǎn),采用k最近鄰算法分別搜索距離采樣點(diǎn)最近的[K1,···,Kt,···,KT]個(gè)點(diǎn)來構(gòu)建T個(gè)不同尺度的局部鄰域。然后,分別采用卷積核數(shù)目為32、64、128 的3 個(gè)MLP 提取每個(gè)局部鄰域的幾何特征,第一個(gè)MLP 卷積核大小為F×1,由于1×1 卷積核[24]可以增強(qiáng)網(wǎng)絡(luò)的非線性擬合能力,減少參數(shù)的同時(shí)可以聚合各通道信息,因此,網(wǎng)絡(luò)中其余MLP 的卷積核大小均采用1×1。最后,采用一個(gè)最大池化層分別將不同尺度的鄰域特征聚合到每個(gè)采樣點(diǎn)上,得到每個(gè)采樣點(diǎn)的不同尺度的特征序列。其中,為采樣點(diǎn)的kt鄰域的幾何特征向量。
為了獲得采樣點(diǎn)的不同尺度鄰域之間的相關(guān)性,把采樣點(diǎn)的特征序列輸入RNN 編碼器,并用一個(gè)隱藏層d依次編碼采樣點(diǎn)不同尺度的鄰域特征向量來充分挖掘上下文幾何信息。RNN 在編碼采樣點(diǎn)xi的不同尺度鄰域的特征向量時(shí),依次更新隱藏層狀態(tài),如式(7)所示。
其中,p為非線性激活函數(shù),實(shí)驗(yàn)中采用LSTM 單元;dt-1為編碼上一個(gè)鄰域特征向量sk-1的隱藏層狀態(tài)。在RNN 編碼采樣點(diǎn)的第t個(gè)鄰域的特征向量sk時(shí),編碼器的輸出ot為
其中,Wa是一個(gè)可學(xué)習(xí)的權(quán)重矩陣。當(dāng)網(wǎng)絡(luò)學(xué)習(xí)完成整個(gè)特征序列后,得到隱藏層狀態(tài)dT,和Wa相乘得到采樣點(diǎn)的多尺度上下文幾何特征oT。
注意力編碼雖然引入注意力機(jī)制增強(qiáng)了網(wǎng)絡(luò)捕捉局部區(qū)域內(nèi)細(xì)粒度細(xì)節(jié)的能力,但是忽略了對(duì)于點(diǎn)云語義分割至關(guān)重要的局部區(qū)域之間的上下文幾何信息。上下文RNN 編碼機(jī)制充分挖掘了點(diǎn)云的多尺度上下文高級(jí)特征,因此低級(jí)別的細(xì)粒度局部特征和高級(jí)別的多尺度上下文幾何特征可以相互補(bǔ)償。采用Selu 非線性激活函數(shù)將采樣點(diǎn)的不同層次的細(xì)粒度局部特征和上下文幾何特征融合,可以得到采樣點(diǎn)的大小為N×F2的上下文細(xì)粒度幾何特征。在特征融合前,采用插值操作[16]在R×128的點(diǎn)云上采樣N×128 的點(diǎn)云。特征融合計(jì)算式為
為了獲得豐富的特征信息以進(jìn)一步增強(qiáng)網(wǎng)絡(luò)的泛化能力,本文引入多頭部機(jī)制。在計(jì)算CAC層的上下文細(xì)粒度特征和圖特征時(shí)引入隨機(jī)丟棄(dropout)算法,通過隨機(jī)丟棄一些權(quán)重得到M個(gè)不同的單頭部(single-head)CAC 層。然后,把M個(gè)單頭部CAC 層連接到一起得到特征信息更加豐富的多頭部上下文注意力卷積(M-CAC,multi-heads contextual attention convolutional)層。多頭部CAC層網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示,計(jì)算式如式(10)所示。
圖2 多頭部CAC 層網(wǎng)絡(luò)結(jié)構(gòu)
為了進(jìn)一步挖掘點(diǎn)云的深層隱含語義特征信息,本文在構(gòu)建的上下文注意力卷積神經(jīng)網(wǎng)絡(luò)中引入殘差學(xué)習(xí),網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示。其中,空間轉(zhuǎn)換網(wǎng)絡(luò)為一個(gè)3×3 的矩陣。
對(duì)于網(wǎng)絡(luò)輸入的N×F點(diǎn)云矩陣,首先采用一個(gè)空間轉(zhuǎn)換網(wǎng)絡(luò)對(duì)其進(jìn)行規(guī)范化,實(shí)現(xiàn)點(diǎn)云矩陣的空間變換不變性。然后,采用M-CAC 層提取輸入點(diǎn)云的上下文細(xì)粒度幾何特征和圖特征,將得到的特征維度為N×176 的上下文細(xì)粒度幾何特征與區(qū)域中心點(diǎn)的三維坐標(biāo)特征相結(jié)合,獲得維度為N×179 的點(diǎn)云矩陣輸入堆疊的MLP層進(jìn)行二次特征提取。此外,為了挖掘深層隱含語義特征,引入殘差連接,在避免梯度消失的同時(shí)加深了網(wǎng)絡(luò)深度,各層卷積層的具體參數(shù)設(shè)置如表1 所示。最后一層卷積層Layer6輸出的N×1 024 特征矩陣通過一個(gè)最大池化層進(jìn)行特征聚合得到1×1 024 的全局特征描述符。為了從全局形狀特征描述符中獲取點(diǎn)級(jí)別的特征,在網(wǎng)絡(luò)中引入2 個(gè)插值層[16],通過上采樣將特征從形狀級(jí)別傳播到點(diǎn)級(jí)別。本文采用三維空間中點(diǎn)與點(diǎn)之間的歐氏距離來實(shí)現(xiàn)特征傳播過程χ,由點(diǎn)q與其k最近鄰點(diǎn)qi的歐氏距離插值而成,計(jì)算式如下
其中,q-qi表示點(diǎn)q與qi的歐氏距離。為了引導(dǎo)插值過程,將插值后的特征與對(duì)應(yīng)的點(diǎn)特征連接起來,并在網(wǎng)絡(luò)中引入多個(gè)MLP 層和Selu 層促進(jìn)點(diǎn)級(jí)別特征的提取。最后網(wǎng)絡(luò)輸出分割結(jié)果N×S點(diǎn)云矩陣,表示每個(gè)點(diǎn)的語義類別。
圖3 CACNN 的網(wǎng)絡(luò)結(jié)構(gòu)
表1 卷積層參數(shù)設(shè)置
為了驗(yàn)證本文算法的語義分割性能和泛化性,實(shí)驗(yàn)選用3 個(gè)標(biāo)準(zhǔn)公開數(shù)據(jù)集,分別為部件語義分割數(shù)據(jù)集ShapeNet Parts[25]、室內(nèi)場景語義分割數(shù)據(jù)集 S3DIS[26]和戶外場景語義分割數(shù)據(jù)集vKITTI[27]。ShapeNet Parts 數(shù)據(jù)集包含16 個(gè)類別的16 881 個(gè)CAD 模型,其中9 843 個(gè)模型用于訓(xùn)練,2 468 個(gè)模型用于測試,定義了50 個(gè)部件語義標(biāo)簽。S3DIS 數(shù)據(jù)集是一個(gè)大規(guī)模室內(nèi)RGB-D 數(shù)據(jù)集,共有6 個(gè)區(qū)域271 個(gè)房間,定義了地板、窗戶、門、橫梁等13 個(gè)語義類別。實(shí)驗(yàn)設(shè)置和文獻(xiàn)[15]一樣,采用6 個(gè)區(qū)域交叉驗(yàn)證。vKITTI 數(shù)據(jù)集是一個(gè)模擬現(xiàn)實(shí)世界的可應(yīng)用于自動(dòng)駕駛的戶外大規(guī)模點(diǎn)云數(shù)據(jù)集,將5 個(gè)不同城市場景的視頻序列分為互不重疊的6 個(gè)區(qū)域,定義了車、樹木、馬路、建筑物等13 個(gè)語義類別。
本文算法CACNN 的訓(xùn)練和測試過程的實(shí)驗(yàn)環(huán)境基于Linux Ubuntu 16.04 操作系統(tǒng)、Intel i7 8700k CPU、內(nèi)存32 GB、GeForce RTX 2080 GPU,運(yùn)算平臺(tái)為CUDA-Toolkit 9.0,采用Cudnn 7.13 作為網(wǎng)絡(luò)的GPU 加速庫,深度學(xué)習(xí)框架為Tensorflow-GPU,版本號(hào)為1.9.0。在實(shí)驗(yàn)中,CACNN 的訓(xùn)練過程采用基于動(dòng)量的隨機(jī)梯度下降(SGD,stochastic gradient descent)優(yōu)化算法,設(shè)置動(dòng)量為0.9,權(quán)重衰減為0.000 5,初始學(xué)習(xí)率為0.001,學(xué)習(xí)率衰減系數(shù)為0.5,衰減速度為300 000,全連接層中dropout的參數(shù)保留率為0.5。優(yōu)化器采用Adam,網(wǎng)絡(luò)參數(shù)初始化采用Xavier 優(yōu)化器。
為了驗(yàn)證本文算法在處理三維點(diǎn)云語義分割任務(wù)上的優(yōu)越性,在ShapeNet Parts 數(shù)據(jù)集上與其他先進(jìn)算法在識(shí)別準(zhǔn)確率和效率兩方面進(jìn)行了對(duì)比,評(píng)估準(zhǔn)則采用前向傳播時(shí)間和平均交并比mIoU(mean intersection-over-union),實(shí)驗(yàn)結(jié)果如表2 所示。可以看出,本文算法以85.4%的mIoU 和39.0 ms的前向傳播時(shí)間獲得了較好的分割性能。本文算法相比于當(dāng)前主流算法 DGCNN(dynamic graph convolutional neural network),在分割準(zhǔn)確率和計(jì)算效率方面都具有一定優(yōu)勢。圖4為本文算法CACNN與PointNet[15]在ShapeNet Parts 數(shù)據(jù)集上幾個(gè)類別的模型分割結(jié)果對(duì)比,其中 PointNet_diff 和CACNN_diff 分別標(biāo)出了PointNet 和CACNN 的預(yù)測結(jié)果與真實(shí)體的不同之處。與PointNet 相比,本文算法總體分割錯(cuò)誤率明顯減少,糾正了PointNet在細(xì)粒度邊界處的欠分割問題,如桌子的底部、臺(tái)燈的底端等,進(jìn)一步驗(yàn)證了本文算法通過構(gòu)建CAC層能夠捕捉對(duì)于點(diǎn)云語義分割至關(guān)重要的上下文細(xì)粒度信息。
表2 不同算法在ShapeNet Parts 數(shù)據(jù)集上的網(wǎng)絡(luò)性能比較
圖4 本文算法與PointNet 在ShapeNet Parts數(shù)據(jù)集上的模型分割結(jié)果對(duì)比
此外,為了探究本文構(gòu)建的CAC 層中采用注意力編碼和上下文RNN 編碼機(jī)制的有效性,在實(shí)驗(yàn)中依次引入這2 種編碼機(jī)制以驗(yàn)證每一種編碼機(jī)制的作用,實(shí)驗(yàn)結(jié)果如表3 所示。PointNet 算法采用自編碼機(jī)制對(duì)獨(dú)立的點(diǎn)提取特征,本文算法通過引入注意力編碼方式對(duì)三維點(diǎn)云語義分割的mIoU比PointNet 提高了0.7%,原因在于注意力編碼機(jī)制通過對(duì)每個(gè)點(diǎn)的鄰域特征進(jìn)行區(qū)分,能夠充分挖掘局部點(diǎn)云的細(xì)粒度局部特征信息。注意力編碼和上下文RNN 編碼相結(jié)合的方式對(duì)三維點(diǎn)云語義分割的mIoU 比PointNet 提高了1.7%,因?yàn)樯舷挛木幋a可以結(jié)合每個(gè)采樣點(diǎn)的多尺度上下文幾何信息,和注意力編碼提取到的細(xì)粒度特征進(jìn)行相互補(bǔ)償,得到特征信息更加豐富的細(xì)粒度多尺度上下文特征。
表3 不同編碼機(jī)制的有效性分析
本文繼續(xù)探究了CAC 層、M-CAC 層和殘差學(xué)習(xí)對(duì)網(wǎng)絡(luò)性能的影響。通過構(gòu)造不同的網(wǎng)絡(luò)進(jìn)行訓(xùn)練并測試,對(duì)比實(shí)驗(yàn)結(jié)果如表4 所示??梢钥闯觯赑ointNet 基礎(chǔ)上加入CAC 層后mIoU 提高了1.4%,因?yàn)镃AC 層中聚合了多尺度上下文細(xì)粒度特征。采用M-CAC(M=3,dropout=0.7)后mIoU提高了0.2%,原因在于多頭部機(jī)制提高了特征的豐富性,增強(qiáng)了網(wǎng)絡(luò)的泛化能力。引入殘差學(xué)習(xí)后mIoU 又提高了0.1%,因?yàn)闅埐顚W(xué)習(xí)在避免梯度消失問題的同時(shí)加深了網(wǎng)絡(luò)容量,能夠充分挖掘點(diǎn)云的深層語義特征信息。
表4 不同組件的有效性分析
為了驗(yàn)證本文算法對(duì)于大規(guī)模點(diǎn)云分析的有效性,在室內(nèi)數(shù)據(jù)集S3DIS 和戶外場景分割數(shù)據(jù)集vKITTI 上進(jìn)行了訓(xùn)練和測試,并與主流算法進(jìn)行了對(duì)比,實(shí)驗(yàn)結(jié)果如表5 和表6 所示??梢钥闯?,本文算法語義分割的總體準(zhǔn)確率(OA,overall accuracy)和mIoU 都優(yōu)于其他主流方法,取得了較理想的分割準(zhǔn)確率。除了定量分析外,圖5 和圖6 展示了定性的分割可視化結(jié)果。
表5 S3DIS 數(shù)據(jù)集上不同方法的分割準(zhǔn)確率對(duì)比
表6 vKITTI 數(shù)據(jù)集上不同算法的分割準(zhǔn)確率對(duì)比
圖5 S3DIS 數(shù)據(jù)集上模型語義分割可視化
圖6 vKITTI 數(shù)據(jù)集上模型語義分割可視化
從圖5 中可以看出,CAC 層能夠改善PointNet存在的欠分割問題,獲得更準(zhǔn)確的分割結(jié)果。例如,PointNet 對(duì)于椅子腿這類細(xì)粒度語義類識(shí)別能力有限,而本文算法能夠很好地分割出椅子腿的邊界腿梢,總體上以更少的錯(cuò)誤分割整個(gè)場景,證明了本文算法的注意力編碼機(jī)制能夠挖掘局部點(diǎn)云的細(xì)粒度細(xì)節(jié)信息的能力。此外,相比于PointNet 的粗預(yù)測,本文算法對(duì)Board 的預(yù)測準(zhǔn)確率也有所提高。原因在于Board 和Wall 的幾何形狀十分相似,只有上下文細(xì)節(jié)信息有所差異,本文算法能夠結(jié)合Board 的上下文信息和Wall 的特征,可以更好地確定其邊界,改善了欠分割問題,進(jìn)一步證明了本文算法的上下文RNN 編碼機(jī)制能夠有效結(jié)合點(diǎn)云上下文幾何信息的能力。在圖6 中,本文算法對(duì)于幾何形狀極其相似的Terrain和Road 這兩類語義的識(shí)別能力明顯提高,總體分割錯(cuò)誤率也相對(duì)較少,原因在于本文算法能夠結(jié)合每個(gè)點(diǎn)的上下文細(xì)粒度信息,對(duì)于識(shí)別Terrain,能夠結(jié)合其上下文Tree 的細(xì)粒度細(xì)節(jié)信息以便于確定其邊界,可以減少與Road 的混淆。
本文提出了一種基于上下文注意力卷積神經(jīng)網(wǎng)絡(luò)的三維點(diǎn)云語義分割算法。首先將注意力機(jī)制引入CAC 層來挖掘點(diǎn)云的局部細(xì)粒度特征,其次通過RNN 編碼不同尺度鄰域特征以捕捉點(diǎn)云的多尺度上下文特征,與局部細(xì)粒度特征進(jìn)行優(yōu)勢互補(bǔ),并采用多頭部機(jī)制增強(qiáng)了網(wǎng)絡(luò)的泛化能力。同時(shí)在網(wǎng)絡(luò)中引入殘差學(xué)習(xí)進(jìn)一步充分挖掘點(diǎn)云的深層隱含語義特征。定性和定量實(shí)驗(yàn)結(jié)果表明,本文算法有效改善了三維點(diǎn)云語義分割中存在的欠分割問題,總體分割準(zhǔn)確率得到了提升,且本文算法在3 個(gè)標(biāo)準(zhǔn)公開數(shù)據(jù)集上都表現(xiàn)優(yōu)異,充分證明了其具有良好的泛化性。然而,本文網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,訓(xùn)練參數(shù)較多,難以適用于實(shí)時(shí)點(diǎn)云分割任務(wù),如何構(gòu)建一個(gè)可部署到嵌入式設(shè)備中的輕量級(jí)實(shí)時(shí)點(diǎn)云分割網(wǎng)絡(luò)是需要進(jìn)一步研究的問題。