許 翔 帥 惠 劉青山 ,
隨著自動駕駛和機器人應(yīng)用技術(shù)的興起,3D點云數(shù)據(jù)分析引起了廣泛關(guān)注.近年來,由于基于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)在圖像分類[1-2]、目標(biāo)檢測[3-4]和圖像分割[5-6]等任務(wù)中取得了很大的成功,基于深度學(xué)習(xí)的點云數(shù)據(jù)分析也成為了研究的熱點[7].現(xiàn)有的基于深度學(xué)習(xí)的點云數(shù)據(jù)分析方法大體可以分為以下兩類:
一類是基于無序點云規(guī)則化的深度學(xué)習(xí)方法,這類方法先將3D 點云轉(zhuǎn)換為規(guī)則的體素結(jié)構(gòu)[8-9]或多視圖圖像[10-11],然后使用卷積神經(jīng)網(wǎng)絡(luò) (Convolutional neural network,CNN)方法來學(xué)習(xí)特征表示.由于體素化過程存在量化誤差,多視圖投影則壓縮了數(shù)據(jù)維度,這些都會不同程度上導(dǎo)致3D點云中幾何信息的丟失.另一類方法是直接基于點云的深度學(xué)習(xí)方法.這類方法又可以分為基于多層感知機(Multi-layer perceptron,MLP)的方法、基于卷積的方法和基于圖的方法.其中基于多層感知機的方法[12-14]的核心思想是通過參數(shù)共享的MLP獨立地提取每個點的特征,然后通過一個對稱函數(shù)聚合得到全局特征,這類方法往往不能充分考慮到3D 點之間的關(guān)系.基于卷積的方法[15-17]的核心思想是根據(jù)鄰域點之間的空間位置關(guān)系去學(xué)習(xí)點之間的權(quán)重參數(shù),并根據(jù)學(xué)習(xí)到的權(quán)重參數(shù)自適應(yīng)地聚合局部特征,這類方法已經(jīng)取得了極大的成功.基于圖的方法[18-20]在近年來也受到了廣泛的關(guān)注,它們將每個點都作為圖的頂點,通過學(xué)習(xí)頂點之間邊的權(quán)重來更新頂點的特征,這類方法通常在構(gòu)圖的過程中會產(chǎn)生相當(dāng)大的計算量.
在上述方法中,基于MLP 的方法是最直接簡單的方法.PointNet[12]是這類方法中的開創(chuàng)性工作,其核心思想是通過參數(shù)共享的多層感知機獨立地將每個點的坐標(biāo)信息映射至高維特征空間,再通過一個對稱函數(shù)聚合最終的高維特征以獲得全局表示,從而解決了點云的無序性問題;此外,PointNet 還使用T-Net 網(wǎng)絡(luò)[12]學(xué)習(xí)變換矩陣對點云進(jìn)行旋轉(zhuǎn)標(biāo)定,從而保證點云的旋轉(zhuǎn)不變性;在分割任務(wù)中,PointNet 將全局特征與每個點的局部特征級聯(lián),通過多層MLP 提取每個點的語義特征,實現(xiàn)對每個點的分類.雖然該方法簡單有效,但是由于其是對每個點進(jìn)行獨立地處理,因此該網(wǎng)絡(luò)并沒有有效提取點云的局部特征.對此,PointNet++[13]提出了一種層次化的網(wǎng)絡(luò)結(jié)構(gòu),通過在每一層級遞歸使用采樣、分組和PointNet 網(wǎng)絡(luò)來抽象低層次的特征;面對語義分割任務(wù),PointNet++提出基于歐氏距離的插值法對點進(jìn)行上采樣,并將通過插值計算所得語義特征與低層學(xué)習(xí)的語義特征進(jìn)行融合以更準(zhǔn)確地學(xué)習(xí)每個點的語義特征.但是在每一個子區(qū)域中,PointNet++仍然獨立地處理每個點的信息.PointSIFT[14]引入卦限約束來有效探索各個點周圍的局部模式,其主要思想是以每個點為原點,在周圍8 個卦限中找到特定范圍內(nèi)的最近點,然后沿著X,Y,Z軸使用三階段2D 卷積來提取局部模式,其三階段的卷積操作會受到因點云旋轉(zhuǎn)而造成的不同卦限順序的影響,從而使得提取的局部模式具有方向敏感性;此外,在下采樣階段,PointSIFT 沿用PointNet++的網(wǎng)絡(luò)結(jié)構(gòu),采用可學(xué)習(xí)的方式聚合局部特征,這為其引入額外的參數(shù),從而大大增加了其計算量.
為了克服上述問題,本文提出了一種新的卦限卷積神經(jīng)網(wǎng)絡(luò)(Octant-CNN)來提取點云的局部幾何結(jié)構(gòu).該網(wǎng)絡(luò)主要由卦限卷積模塊和下采樣模塊兩部分組成.具體來說,卦限卷積模塊首先搜索每個點在8 個卦限內(nèi)的最近鄰點,由于點云的密度特性可以通過近鄰點的距離來表征,為了使Octant-CNN 能更好地反映這一特性,本文取消了對搜索半徑的限制,從而保證遠(yuǎn)離中心點的近鄰點同樣可以被度量.卦限卷積模塊使用單階段卷積操作同時作用在8 個卦限的近鄰點,從而克服了三階段卷積操作對卦限順序敏感這一問題,并且配合T-Net 的使用,能夠?qū)c云旋轉(zhuǎn)具有更好的魯棒性.最后通過級聯(lián)各層的特征和殘差連接方式實現(xiàn)了多層次特征的融合.下采樣模塊根據(jù)空間分布對點云進(jìn)行分組聚合,擴大了中間特征的感受野,構(gòu)成了層次化的網(wǎng)絡(luò)連結(jié)結(jié)構(gòu),并且該模塊并沒有引入額外的可學(xué)習(xí)參數(shù),從而大大降低了Octant-CNN 的計算復(fù)雜度.通過對卦限卷積模塊和下采樣模塊的多層堆疊,Octant-CNN 實現(xiàn)了從局部模式中不斷抽象出全局特征.
Octant-CNN 的整體網(wǎng)絡(luò)框架如圖1 所示.以原始點云作為輸入,首先將點云送入T-Net 中進(jìn)行點云旋轉(zhuǎn),將點云標(biāo)定至規(guī)范空間,接著通過卦限卷積模塊(Octant convolution module)提取點云的局部幾何結(jié)構(gòu),其后采用下采樣模塊(Sub-sampling module)來減少點的數(shù)量,以設(shè)計一種分層式的層次化網(wǎng)絡(luò)結(jié)構(gòu),從而增加中間層特征的感受野.通過這兩個模塊的多層堆疊,Octant-CNN實現(xiàn)了對高層語義特征的抽象,為點云處理提供了一種高效的特征編碼方式.
圖1 網(wǎng)絡(luò)框架圖Fig.1 Illustration of network architecture
假設(shè)具有n個點的點云為S=(X;F)?R3+C,其中X={x1,x2,···,xn}?R3表示坐標(biāo)信息,F={f1,f2,···,fn}?RC表示點云的特征.對于每個點si,以該點為原點建立一個三維局部坐標(biāo)系,可以將空間劃分為8 個卦限,然后在8 個卦限中分別找到si的最近鄰點,即N(si)={si1,···,si8}.在卦限卷積模塊中,Octant-CNN 取消了搜索半徑上限的限制,這樣可以確保遠(yuǎn)離中心點的近鄰點同樣可以被捕獲到,從而可以更好地反映點云的局部密度特性.
對于8 個最近鄰點,PointSIFT[14]使用了具有三階段操作的2D 卷積,如圖2(a)所示.該卷積操作沿X,Y和Z軸分別使用卷積核大小為 1×2 的2D 卷積.這種三階段的卷積操作存在著先后順序,對于三維空間中的不同維度具有各向異性,而且PointSIFT 中沒有采用T-Net 對輸入點云進(jìn)行旋轉(zhuǎn),因此不同的卦限順序會造成不同的卷積結(jié)果.為了克服這個問題,本文采用T-Net 對點云進(jìn)行旋轉(zhuǎn)標(biāo)定,并通過單階段的卷積操作直接在8 個最近鄰點上進(jìn)行運算.如圖2(b)所示,Octant-CNN 先按照卦限的順序?qū)? 個鄰點進(jìn)行排序,接著利用一個卷積核大小為 1×8 的2D 卷積直接作用在這8個鄰點上.給定中心點si及其最近鄰點N(si),卷積的輸入通道包括中心點坐標(biāo)xi,中心點及其最近鄰點之間的殘差坐標(biāo)xi-xij,以及最近鄰點的特征fij,該操作過程如下:
圖2 三階段與單階段2D 卷積的對比Fig.2 Comparison of 2D CNN with three-stage and one-stage
其中,f(l)(si)表示點si在第l層學(xué)到的特征,concat表示級聯(lián)操作,wij表示si和sij之間的可學(xué)習(xí)權(quán)重.
由于Octant-CNN 先通過T-Net 對點云方向進(jìn)行預(yù)先標(biāo)定,其后采用一個二維卷積同等處理各卦限內(nèi)的點及其特征,使得單階段卷積對輸入點云具有各向同性,因此對于不同角度的同一點云輸入,Octant-CNN 總能得到相似的特征表示,具有旋轉(zhuǎn)不變性.
為了使每個點能夠提取更豐富的特征,Octant-CNN 在卦限卷積模塊中堆疊了多層卷積操作,并將各層的輸出特征通過MLP 進(jìn)行融合,以充分利用各層次特征信息,并且MLP 的輸出尺寸與最后一個卷積層相同,從而可以在最后一層添加殘差塊以緩解梯度消失問題.整個卦限卷積模塊可以表示為
卦限卷積模塊的架構(gòu)如圖3 所示.
圖3 卦限卷積模塊Fig.3 Octant convolution module
下采樣模塊的目的是為了擴大每個點特征學(xué)習(xí)的局部感受野.主要思路為:從輸入點集中選擇一系列種子點作為聚類中心點;然后,將這些中心點周圍的點的特征用對稱函數(shù)聚合在一起.由于Point-SIFT[14]在下采樣的過程中沿用了PointNet++[13]的結(jié)構(gòu)設(shè)計,這為PointSIFT 引入了可學(xué)習(xí)的參數(shù),從而增加了其計算量;不同于此,Octant-CNN在下采樣模塊中的核心操作是種子點的選擇和特征聚合,而在特征聚合時僅僅通過對稱函數(shù)即可實現(xiàn),這并沒有為Octant-CNN 帶來額外的可學(xué)習(xí)參數(shù),因此降低了Octant-CNN 的計算復(fù)雜度.
給定輸入點{x1,x2,···,xn},下采樣模塊迭代使用最遠(yuǎn)點采樣(Furthest point sampling,FPS)來選擇該點集的一個子集{x1,x2,···,xm},m<n,并將該子集作為聚類中心的種子點.與隨機采樣相比,FPS 通過最大化采樣點之間的距離來更好地覆蓋整個點集[13].
對于每一個采樣點,Octant-CNN 都可以在一定的半徑內(nèi)尋找它的鄰點.為了保持一致性,本文在實際操作中設(shè)置了一個上限K.該操作可以表示為:給定一個大小為N×C的原始點集,以及通過FPS 采樣得到的大小為M×C的子集,其中M和N表示集合中點的數(shù)量(M<N),C表示特征維度.對于每個采樣點,都可以在一定半徑內(nèi)從原始點集中選取K個鄰點,并輸出大小為M ×K×C的數(shù)據(jù).這些鄰點的特征都可以通過一個對稱函數(shù)聚合并輸出大小為M×C.在實際操作中,本文使用最大值來聚合局部特征.
為了詳細(xì)評估Octant-CNN 的性能,本文在對象分類、部件分割、場景語義分割、3D 目標(biāo)檢測四組任務(wù)中,對其進(jìn)行了實驗測試,并和相關(guān)方法進(jìn)行了比較.此外,本文還通過一系列消融實驗評估了卦限卷積和下采樣模塊的不同設(shè)置對網(wǎng)絡(luò)性能的影響.
首先在ModelNet40[9]分類基準(zhǔn)上評估Octant-CNN.該數(shù)據(jù)集包含40 個人工設(shè)計的對象類別,共有12 311 個CAD 模型,其中9 843 個用于訓(xùn)練集,2 468 個用于測試集.參照PointNet[12],本文均勻采樣1 024 個點并將其標(biāo)準(zhǔn)化到單位球體中,并僅將采樣點的坐標(biāo)作為模型的輸入.在訓(xùn)練過程中,本文與PointNet++[13]一樣,通過隨機旋轉(zhuǎn)和縮放對象并擾動對象點的位置來擴充數(shù)據(jù).
如圖1 所示,首先使用PointNet[12]設(shè)計的T-Net對點云進(jìn)行旋轉(zhuǎn)標(biāo)定.T-Net 首先通過三層共享的MLP 提取點的特征,然后通過最大值池化以獲取全局表示,最后通過兩個全連接層來計算一個轉(zhuǎn)換矩陣.Octant-CNN 在卦限卷積模塊中學(xué)習(xí)點的局部特征,然后在下采樣模塊中對點進(jìn)行分組聚合局部特征.在實際操作中,對于最后一個下采樣模塊,本文僅對原點進(jìn)行采樣,然后使用最大值獲取全局特征,最后通過兩層全連接層來輸出對象的類別概率.在訓(xùn)練過程中,本文在全連接層中使用了dropout[21]機制,并將該比率設(shè)置為50%.在測試階段,本文和PointNet++[13]一樣,使用投票機制將點云均勻旋轉(zhuǎn)12 個不同的角度后分別送入模型中預(yù)測,并對這12 個預(yù)測結(jié)果取平均獲取最終的分類結(jié)果.
表1 列出了Octant-CNN 與最新一些相關(guān)方法進(jìn)行的比較結(jié)果,包括PointNet[12],PointNet++[13],PAT[22]等.本文采用了整體準(zhǔn)確率(Overall accuracy,oAcc)和平均準(zhǔn)確率(Mean accuracy,mAcc)兩種指標(biāo)來衡量分類結(jié)果,它們的定義分別為
其中,pij表示真實標(biāo)簽為i,預(yù)測結(jié)果為j的數(shù)量,N表示類別數(shù).為了客觀分析比較,本文還實現(xiàn)了基于PointSIFT[14]的對象分類任務(wù).從表1 可以看到,Octant-CNN 取得了不錯的效果,這也說明了Octant-CNN 在一定程度上可以更好地學(xué)習(xí)到點云的局部幾何特征.
表1 ModelNet40 分類結(jié)果(%)Table 1 Classification results on ModelNet40 (%)
ShapeNet[28]數(shù)據(jù)集主要用于測試部件分割任務(wù).該數(shù)據(jù)集包含16 個對象類別的16 881 個不同形狀,總共被標(biāo)記為50 個部件.本文參照Point-Net[12]的方法對數(shù)據(jù)集進(jìn)行劃分,并隨機采樣2 048個點作為網(wǎng)絡(luò)輸入.Octant-CNN 僅使用坐標(biāo)信息作為網(wǎng)絡(luò)的輸入,而沒有采用PointNet++[13]中的法線信息.
但是,對于分割任務(wù),模型希望獲得每個點的語義特征以實現(xiàn)每個點的分類.PointSIFT[14]首先參照PointNet++[13]的方法,先使用基于歐氏距離的插值法對點進(jìn)行上采樣,并將內(nèi)插值與上一個卦限卷積模塊中學(xué)習(xí)的特征進(jìn)行級聯(lián),然后通過共享的多層感知機提取豐富的語義特征;緊接著,Point-SIFT 在此基礎(chǔ)上使用三階段卷積操作進(jìn)一步做特征變換.該三階段的卷積操作在原來多層感知機的基礎(chǔ)上又引入了額外的參數(shù).不同于此操作,考慮到計算量的問題,Octant-CNN 在上采樣的過程中僅通過多層感知機來抽象高層的語義特征.
在實際操作中,我們還將對象的one-hot 標(biāo)簽級聯(lián)到最后一層特征傳播層中,以進(jìn)行準(zhǔn)確的預(yù)測.為了更好地評測Octant-CNN 在部件分割上的性能,本文還和PointNet[12],PointNet++[13]等方法進(jìn)行了實驗比較,表2 中給出了實驗比較結(jié)果.本文采用平均交并比(Mean intersection over union,mIoU)作為衡量分割任務(wù)性能的指標(biāo),其定義為
表2 ShapeNet 部件分割結(jié)果(%)Table 2 Part segmentation results on ShapeNet (%)
其中,pij表示真實標(biāo)簽為i,預(yù)測結(jié)果為j的數(shù)量,N表示類別數(shù).可以看到,本文僅將坐標(biāo)信息用作輸入,就可以得到比使用法線信息的PointNet++[13]更好的性能.同時,PointSIFT[14]在部件分割任務(wù)中并不能取得很好的效果,主要由于其上采樣使用了三階段的卷積操作,這帶來了大量的參數(shù),對于ShapeNet[28]這種相對較小的數(shù)據(jù)集,很容易造成模型的過擬合.
為了進(jìn)一步證明Octant-CNN 的有效性,本文還在斯坦福大學(xué)大型3D 室內(nèi)空間數(shù)據(jù)集(3d semantic parsing of large-scale indoor spaces,S3DIS)[30]上評估了其性能.該數(shù)據(jù)集包含來自6 個室內(nèi)區(qū)域的272 個房間.每個點都用來自13 個類別(天花板,地板,墻壁,梁和其他)的語義標(biāo)簽進(jìn)行標(biāo)注.參照PointNet[12],本文將每個房間分成面積為1 m×1 m的塊,每個點都表示為9 維向量(XYZ,RGB 和歸一化坐標(biāo)).在訓(xùn)練過程中,Octant-CNN 在每個塊中隨機選取4 096 個點,并將所有的點用于測試.與PointNet[12]一樣,本文在6 個區(qū)域上使用了6 折交叉驗證的方式.
本文將Octant-CNN 與PointNet[12],Point-Net++[13],PointSIFT[14]進(jìn)行了比較.由于我們無法達(dá)到PointSIFT[14]中報告的結(jié)果,因此僅顯示根據(jù)作者提供的代碼而獲得的結(jié)果.結(jié)果總結(jié)在表3 中,本文提出的Octant-CNN 優(yōu)于其他方法.圖4 顯示了Octant-CNN 的一些可視化結(jié)果,可以發(fā)現(xiàn),Octant-CNN 可以更平滑地分割場景,這是由于Octant-CNN 在卦限卷積模塊中更好地學(xué)習(xí)局部幾何特征.
圖4 S3DIS 可視化結(jié)果Fig.4 Visualization of results on S3DIS
表3 S3DIS 語義分割結(jié)果Table 3 Semantic segmentation results on S3DIS
最后,本文將Octant-CNN 和PointSIFT[14]擴展到了KITTI[31]數(shù)據(jù)集上進(jìn)行3D 目標(biāo)檢測.KITTI 3D 目標(biāo)檢測數(shù)據(jù)集由7 481 個訓(xùn)練圖像和7 518 個測試圖像以及相應(yīng)的點云數(shù)據(jù)組成.它具有三個目標(biāo)類別:汽車、行人和自行車.對于3D 目標(biāo)檢測,本文遵循Frustum PointNets[32]的檢測流程,僅將PointNet 特征提取模塊替換成Octant-CNN以客觀比較.由于Frustum PointNets[32]僅公開了在訓(xùn)練集和驗證集上的2D 檢測框,因此本文評估的是Octant-CNN 及相關(guān)方法在驗證集上的檢測結(jié)果.
3D 目標(biāo)檢測的實驗結(jié)果如表4 所示,這些方法的檢測流程都是基于Frustum PointNets[32]實現(xiàn)的,主要不同之處在于點云的分割網(wǎng)絡(luò)以及3D 目標(biāo)檢測框的回歸網(wǎng)絡(luò),其中Frustum PointNet v1采用的是PointNet[12]的網(wǎng)絡(luò)結(jié)構(gòu),Frustum Point-Net v2 采用的是PointNet++[13]的網(wǎng)絡(luò)結(jié)構(gòu),可以發(fā)現(xiàn),本文提出的方法要優(yōu)于這些方法.尤其對于小目標(biāo)的檢測性能提升較為明顯,圖5 同時也展示了一些檢測的可視化結(jié)果.
圖5 KITTI 目標(biāo)檢測可視化結(jié)果Fig.5 Visualization of detection results on KITTI
表4 3D 目標(biāo)檢測對比結(jié)果(%)Table 4 Performance compression in 3D object detection (%)
本節(jié)在ModelNet40[9]數(shù)據(jù)集上進(jìn)行了實驗,詳細(xì)分析了網(wǎng)絡(luò)結(jié)構(gòu)中各個模塊的作用,并且分析了卦限卷積中不同特征融合方式、不同近鄰點選擇方法和不同特征輸入的效果.此外,本節(jié)還對卦限卷積與其他方法的旋轉(zhuǎn)魯棒性和計算復(fù)雜度進(jìn)行了比較.
1)結(jié)構(gòu)的設(shè)計.為了分析卦限卷積模塊中各個部件的重要性,通過將各個部件分別加入卦限卷積模塊中進(jìn)行實驗,結(jié)果如表5 所示.在卦限卷積模塊中,首先通過堆疊多層2D 卷積以獲取點云豐富的局部特征,此時該模型可以達(dá)到90.7%的準(zhǔn)確率.為了充分利用低層的幾何特征,接著將所有卷積層的輸出特征級聯(lián)起來,并通過一層MLP 實現(xiàn)多層特征的融合,此時的準(zhǔn)確率可以提升到91.2%.考慮到多層堆疊卷積可能帶來的過擬合問題,進(jìn)一步以殘差方式將融合特征與最后一層2D 卷積層的輸出特征相加,準(zhǔn)確率也進(jìn)一步提升到91.5%.最后,為了能夠客觀的與PointNet++[13]等方法對比,采用了投票機制,將輸入點云均勻旋轉(zhuǎn)12 個不同角度并分別送入模型中預(yù)測,并取平均值作為最終的結(jié)果,最終取得91.9%的準(zhǔn)確率.
表5 結(jié)構(gòu)設(shè)計分析Table 5 Analysis of the structure design
2)特征融合方式的選擇.為了比較2D 卷積和MLP 兩種特征融合方法對最終結(jié)果性能的影響,本組實驗對這兩種特征融合的方式進(jìn)行了對比,實驗結(jié)果如表6 所示.可以觀察到2D 卷積效果更佳,這是由于在使用MLP 時,其是對每個鄰點單獨處理,然后通過最大值操作聚合局部特征,該操作只保留了每個通道中最重要的信息,從而導(dǎo)致細(xì)節(jié)信息的丟失;而在使用2D 卷積時,其會考慮到所有鄰點各個通道的信息,充分利用了細(xì)節(jié)信息.
表6 2D 卷積和MLP 的對比Table 6 Comparisons of 2D CNN and MLP
3)近鄰點的選擇.K 近鄰(K-nearest neighbor,KNN)是最常見的一種近鄰選擇方式,本文提出了使用8 卦限搜索的方式來選擇近鄰點.對此,本組實驗對這兩種近鄰點的選擇進(jìn)行了對比,實驗結(jié)果如表7 所示.可以發(fā)現(xiàn),本文所使用的8 卦限搜索的性能要優(yōu)于KNN.這兩種近鄰點的區(qū)別如圖6 所示,其中方框表示選擇的近鄰點.當(dāng)使用KNN 時,選取的近鄰點會受到點云密度特性的影響而偏向某一特定方向;而使用8 卦限搜索時,所選取的近鄰點來自于不同的方向,從而更好地覆蓋在點云上.
表7 不同鄰點的比較Table 7 The results of different neighbor points
圖6 K 近鄰和8 卦限搜索的比較Fig.6 Comparison of KNN and 8 octant search
4)搜索半徑的設(shè)置:為了分析在使用8 卦限搜索近鄰點時,搜索半徑的限制對模型性能的影響,通過設(shè)置幾組不同的搜索半徑進(jìn)行實驗.由于在點云分類任務(wù)中,點云首先被標(biāo)準(zhǔn)化到單位球體中,因此最大搜索半徑設(shè)置為1.結(jié)果如表8 所示,我們觀察到,當(dāng)搜索半徑越大,分類準(zhǔn)確率也會隨之提升.這是由于在設(shè)置搜索半徑時,部分偏離中心點較遠(yuǎn)的近鄰點會被丟棄,從而導(dǎo)致幾何結(jié)構(gòu)的不完整.因此,我們?nèi)∠怂阉靼霃降南拗?
表8 不同搜索半徑的比較Table 8 Comparison of different search radius
5)不同輸入特征的比較:本組實驗對比了使用不同的輸入特征對模型最終性能的影響,實驗結(jié)果如表9 所示.從實驗結(jié)果可以看出來,當(dāng)僅使用鄰點的特征作為卷積的輸入時,由于缺少點云的空間位置信息,此時的效果不佳.隨著越來越多的坐標(biāo)信息,如中心點的坐標(biāo)、中心點與鄰點的殘差坐標(biāo)同時送入卷積中進(jìn)行運算,精度也會得到相應(yīng)的提升.
表9 不同輸入通道的結(jié)果比較Table 9 The results of different input channels
6)點云旋轉(zhuǎn)的魯棒性分析:在本組實驗中,將輸入點云分別旋轉(zhuǎn) 0°,30°,60°,90°,180°后送入Octant-CNN 和PointSIFT[14]中進(jìn)行預(yù)測,通過計算由不同角度得到的準(zhǔn)確率的均值和方差來比較這兩種方法對點云旋轉(zhuǎn)的魯棒性.由于Octant-CNN在一定程度上依賴于T-Net,為了更客觀地比較單階段卷積和三階段卷積對點云旋轉(zhuǎn)的魯棒性的影響,我們還將T-Net 加入PointSIFT 模型中,實驗結(jié)果如表10 所示.可以發(fā)現(xiàn),T-Net 在一定程度上提高了PointSIFT 的旋轉(zhuǎn)魯棒性,但是本文提出的單階段卷積對點云旋轉(zhuǎn)依然更具魯棒性,這是由于三階段卷積是存在先后順序的,對于三維空間不同維度具有各向異性,而單階段卷積同等處理各卦限的點,對輸入點云具有各向同性.
表10 點云旋轉(zhuǎn)魯棒性比較Table 10 Comparison of robustness to point cloud rotation
7)Octant-CNN 的復(fù)雜度:最后,我們對比了Octant-CNN 和其他一些方法在語義分割任務(wù)中的參數(shù)量和每秒的浮點運算量(Floating point operations per second,FLOPs),結(jié)果如表11所示.可以觀察到,相比于PointSIFT[14],Octant-CNN 的參數(shù)量和FLOPs 都得到了明顯的降低,這主要來自兩個方面:1)在下采樣階段,PointSIFT采用可學(xué)習(xí)的方式聚合局部特征,這為PointSIFT引入了額外的可學(xué)習(xí)參數(shù),而Octant-CNN 直接采用最大值池化聚合局部特征,這一操作不需要額外參數(shù);2)由于語義分割任務(wù)需要上采樣以恢復(fù)點的原始數(shù)量,PointSIFT 首先使用幾層MLP 抽象語義特征,緊接著使用三階段卷積進(jìn)一步豐富語義信息,這帶來了大量的參數(shù),Octant-CNN 則只使用了MLP 來抽象高層語義特征.同時可以發(fā)現(xiàn),對于部件分割和目標(biāo)檢測這兩個數(shù)據(jù)集相對較小的任務(wù),Point-SIFT 由于參數(shù)量過大,導(dǎo)致模型出現(xiàn)過擬合的情況,因此在這兩個任務(wù)上的效果不佳.
表11 點云語義分割的復(fù)雜度Table 11 Complexity in point cloud semantic segmentation
為了有效捕獲點云的局部幾何信息,本文提出了Octant-CNN,并在對象分類、部件分割、語義分割和目標(biāo)檢測上均取得顯著提升.Octant-CNN 具有三個關(guān)鍵點:首先,在近鄰空間中定位最近鄰點時,Octant-CNN 取消了搜索范圍的限制,這使得遠(yuǎn)離中心點的近鄰點可以被捕獲,從而更好地反映點云的密度特性.其次,Octant-CNN 使用單階段的卷積操作直接提取點的局部幾何結(jié)構(gòu),這克服了三階段卷積操作帶來的對卦限順序敏感的問題,從而對點云旋轉(zhuǎn)更具魯棒性.最后,通過下采樣模塊實現(xiàn)對原始點集的分組及特征聚合,從而增大了中間特征的感受野,并大大降低了卷積操作的計算量.