孫一珺,胡 輝,李子鑰,陳 陽,吳少奕
華東交通大學 信息工程學院,南昌 330013
近年來,深度學習在圖像處理領域取得了顯著的成果,其中卷積神經網絡(convolutional neural network,CNN)對于規整的圖像數據[1]具有優異的效果。隨著無人駕駛需求的日益增加,激光雷達點云數據和圖像數據一樣,逐漸變成了一種深度學習的基本數據。然而,由于點云數據固有的非結構性與無序性特點[2],使得一些傳統的圖像領域的深度學習方法無法直接應用于點云領域。
為了將卷積的優勢發揮在點云處理領域,先前的研究者使用多視圖思想對三維數據的每一個角度單獨使用CNN并融合這些多角度信息實現數據處理[3],或是將三維CNN直接使用在點云領域[4]。但是這些方法均要求大量的計算資源且處理速度較慢,并不是點云處理領域的最優方法,如何直接使用三維點云數據作為網絡輸入因而成為了研究的熱點。PointNet[5]網絡作為直接使用點云數據的先驅者,有效地解決了點云特征獲取和無序性的問題。這為之后的研究者提供了方向指引,如PAT[6]、LightPointNet[7]、PointWeb[8]。然而不同于CNN,多層感知器(multilayer perceptron,MLP)具有不能包含鄰域信息,不能使用空洞卷積[9]等技巧的缺點,導致網絡特征提取能力仍具有較大的優化空間。PointNet++[10]和DGCNN[11](dynamic graph CNN)分別通過模仿多層CNN的層次特點和K近鄰算法構建鄰域使網絡具有了鄰域信息,RS-CNN[12](relation shape CNN)和Moment[13]則通過豐富網絡輸入從而使網絡性能提升。除了以上的方法,注意力機制的重要性在以往的文獻中已經被廣泛地研究,能夠幫助網絡明白應該關注哪些位置,提升網絡表達能力。不同于WDGCNN[14](weighted dynamic graph CNN)需要手動設計一種權重,注意力機制可以幫助網絡自適應地學習權重,使網絡自動關注重要的特征,抑制非必要的特征。然而由于點云數據的特點,以往的注意力機制同樣不能直接應用于點云領域。
針對這些問題,本文首先提出了一個簡單有效的直接應用于點云數據的注意力機制,通過對點云數據進行并行的最大池化與平均池化,采用共享權重的多層感知器訓練自適應注意力權重,并與輸入特征相乘以增強網絡特征表示能力,從而提升網絡性能,可以廣泛地應用于PointNet類網絡的特征提取階段,以提高網絡的表征能力;其次對本文所提出注意機制的最優設計和使用方案進行研究分析;最后嵌入設計的注意力機制,驗證了在不明顯提高網絡運算成本的前提下,多種三維點云處理任務(分類、分割、檢測)的性能相比于原始網絡有了很大提高。
由于CNN無法直接應用于點云領域,先前的研究者大多考慮使用間接法進行三維特征學習。MVCNN[3]的研究思路是通過多視圖法處理三維數據,使用CNN獲取某一角度的多視圖特征,最后使用最大池化對多角度特征進行特征融合。VoxNet[4]通過三維網格將點云進行體素轉換,并用三維CNN進行特征的學習。然而,受限于點云數據的稀疏性、計算成本以及間接轉化導致的信息損失,通過間接法研究三維數據受到了較大的阻礙。Qi等人是直接使用原始點云作為網絡輸入的先驅者,提出了PoinNet網絡,其網絡直接使用點云作為輸入而不需要任何間接變換,借助MLP獲取非結構的點云特征,采用對稱函數處理點云的無序性問題,使用變換網絡(transformer network,T-Net)來實現點的對齊,從而處理點云圖像的旋轉不變性問題,然而這種網絡缺少局部特征的構建能力。Qi等人之后提出的PointNet++網絡通過不斷使用基于最遠點采樣(farthest point sampling,FPS)的方法并逐層次地使用PointNet網絡,從而獲取了一定的點云局部特征。DGCNN通過K近鄰算法為每個點構建了一個鄰域圖,提出了邊緣卷積(edge convolution,EdgeConv)的概念,成功地為每個點構建了鄰域特征,但采用的仍是MLP進行每一條邊的特征學習。Point-GNN[15]明確地將圖卷積的概念引入點云特征學習領域,在網絡輸入前對點云進行建圖,之后采用圖卷積神經網絡(graph neural network,GCN)進行特征學習以進行物體檢測,網絡可以對一張點云同時進行多物體檢測。RandLA-Net[16]設計了一種輕量高效的可處理大規模場景點云的網絡,通過簡單高效的隨機采樣替換常用的FPS以極大地降低計算成本并通過設計有效的局部特征模塊增加網絡的感受野,在大場景點云語義分割問題上獲得了優異的成績。
Google團隊使用多頭注意力和縮放點積注意力的自注意力(self attention)機制進行學習[17],代替了傳統的編解碼模型必須結合CNN或者RNN(recurrent neural network)的固有模式,在不降低可靠性的前提下減少了計算成本,提高了有效性。Sun等人[18]提出了堆疊注意力網絡(stacked attention networks,SANs)來進行視覺問答任務(visual question answering,VQA),并通過實驗說明三個或更多注意力層并不一定提高性能。Luong等人[19]提出了兩種叫作局部和全局的注意力機制(local and global attention),全局注意力類似于傳統的軟注意力(soft attention)[20],局部注意力提供了網絡在計算效率和可微性之間的參數權衡。CBAM[21]采用多角度池化的方法生成自適應的注意力權重以產生通道與空間注意力,并通過串行的方式融合通道與空間注意力,從而提高網絡性能。與此不同,BAM[22]使用了空洞卷積的思想產生空間注意力權重,并與并行計算后的通道注意力相加激活后作為最終的注意力權重,最后與原始輸入相加得到細化后的特征圖。Chaudhari等人[23]總結出注意力的核心思想是對輸入特征引入注意力權重,這些工作為本文設計適用于點云的注意力機制研究提供了指導思路。
現有的增強點云網絡性能的方法一是設計新的網絡結構,二是在現有結構上豐富網絡輸入。不需要像WDGCNN一樣人為設計一種權重,注意力機制可以通過網絡自適應地生成優化網絡特征的權重,幫助網絡學習需要對哪些信息進行強調或抑制,從而幫助特征在網絡中的生成。本文設計了一種即插即用的適用于點云的輕量級注意力機制,可以隨意嵌入到PointNet類網絡的特征提取階段,在不明顯增加計算成本的情況下提升網絡性能。嵌入有點云注意力機制的網絡結構如圖1所示。

圖1 注意力機制嵌入圖Fig.1 Attention mechanism embedding map
在圖像處理領域,通道與空間注意力可以幫助網絡在通道和空間兩個分支上學習要注意“什么”和“哪里”,共用這兩種注意力機制可以有效地提升網絡性能。
對于圖像數據,其特征在神經網絡中可以表示為F∈?B×H×W×C,其中B、H、W、C分別表示Batch Size、圖像的長、寬、特征通道數。融合的通道與空間注意力可以表示為:

其中,Mc∈?B×1×1×C表示一維的通道注意力,Ms∈?B×H×W×1表示二維的空間注意力,?代表矩陣叉乘,F""表示最終的輸出特征。
對于通道注意力圖Mc的計算過程為:

其中,σ表示激活函數,W0和W1表示MLP的權重,表示沿著特征通道數C維度對特征F進行平均池化和最大池化。
對于空間注意力圖Ms的計算過程為:

其中,σ表示激活函數,f7×7表示核為7×7的卷積運算,表示沿著圖像的長、寬維度對特征F進行平均池化和最大池化。
不同于圖像數據,點云數據具有非結構性與無序性的特點,其特征在神經網絡中可以表示為F∈?B×N×1×C,其中B、N、C分別表示Batch Size、點云數目、特征通道數。
受到圖像領域通道與空間注意力機制的啟發,本文同樣設計了兩種注意力機制,分別沿著特征通道數C維度和點云數目N維度進行池化,可以表示為:

其中,Mc∈?B×N×1×C表示點云特征注意力機制,Fc表示點云特征注意力的輸出特征,Mn∈?B×1×1×C表示點云通道注意力機制,Fn表示點云通道注意力的輸出特征,?代表矩陣叉乘。
為了生成點云特征注意力機制Mc,借助CBAM的經驗,采用不同的池化方法意味著通過不同的角度收集特征的信息,能夠有效地提高網絡表達性能。首先沿著特征通道數C維度,使用并行的平均池化和最大池化對點云輸入特征F進行特征聚合,從而生成不同角度的特征表述符不同于圖像數據的空間注意力,受限于點云數據的非結構性,本文未使用卷積操作進行權重訓練,仍使用共享參數的單隱藏層MLP對聚合特征的特征通道數維度進行訓練,用來生成注意力權重,最后使用激活函數σ激活權重。點云特征注意力機制Mc可以表示為:

其中,σ表示sigmoid激活函數,W表示MLP的權重,表示沿著特征通道數C維度對特征F進行平均池化和最大池化。計算過程如圖2(a)所示。

圖2 注意力機制計算過程圖Fig.2 Attention mechanism computation process map
為了生成點云通道注意力機制Mn,沿著特征通道數N維度,同樣使用平均池化和最大池化對點云輸入特征F進行特征聚合,生成不同角度的特征表述符Fnavg和Fnmax。由于在點云領域無法直接使用CNN,本文仍采用MLP對點云特征進行精煉,使用共享參數的雙隱藏層MLP對聚合特征進行訓練,對點云特征通道C先縮減再恢復,縮減系數為r,用來生成注意力權重,最后使用激活函數σ激活權重。點云通道注意力機制Mn可以表示為:

其中,σ表示sigmoid激活函數,W0和W1表示MLP的權重,表示沿著點云數目N維度對特征F進行平均池化和最大池化。計算過程如圖2(b)所示。
實驗的硬件環境為Intel Core i7-6700 CPU、32 GB內存,GeForce GTX 1080ti顯卡、11 GB顯存。軟件環境為Ubuntu 16.04 x64操作系統、Anaconda 1.7.2、Cuda10.1、Cudnn 7.6.5、TensorFlow 1.14、Python 3.6.1。
本節通過對嵌入有適用于點云注意力機制的Point-Net網絡在ModelNet40[24]分類數據集上的分類效果研究,對不同的注意力機制設計進行了分析。ModelNet40點云分類數據集共有40種物體種類,12 311個點云模型,其中訓練集9 842個,測試集2 468個。
為研究多角度的池化特征融合順序對網絡性能的影響,本文設計了先融合后訓練的注意力機制Mc"、Mn",設計方案如圖3(a)、(b)所示。此外,受到CBAM的啟發,本文同樣對兩種注意力機制的融合效果進行了研究,根據特征和通道注意力機制的使用順序,分別設計了Mcn、Mnc兩種融合方案,設計方案如圖3(c)、(d)所示。

圖3 其他注意力機制設計方案圖Fig.3 Other attention mechanism design plans
在表1中給出了不同注意力設計方案在ModelNet40上的分類準確率(overall accuracy,OA)結果。PointNet(vanllia)相比于PointNet網絡減少了T-Net,—表示不使用注意力機制的原始網絡框架,PointNet(vanllia)和PointNet的Batch Size分別設置為64、32,其余設置遵循原網絡設置。

表1 注意力機制設計方案Table 1 Design of attention mechanism
點云特征注意力機制Mc和點云通道注意力機制Mn將OA提升至87.80%和87.48%,相比于原始的PointNet(vanllia)網絡分別提升了0.89和0.57個百分點,實驗結果表明本文設計的兩種注意力機制對點云數據的特征提取均發揮了積極的作用,驗證了機制設計的合理性。同時,相比于點云通道注意力機制Mn,點云特征注意力機制Mc具有更優的效果。當注意力機制Mc對點云特征沿著特征通道數維度進行池化,并通過MLP學習特征與注意力加權,可以在基礎網絡上進一步豐富點云特征信息,網絡性能提升更明顯。這表明僅具有(x,y,z)坐標信息的非結構點云數據,其特征信息單一仍是點云特征學習必須著重考慮的問題。
先融合后訓練的注意力機制Mc"和Mn"的OA分別為87.24%和87.16%,實驗結果雖然相比于原始網絡仍有提升,但提升效果均不如先訓練后融合的注意力機制Mc和Mn。平均池化和最大池化代表著不同角度的特征,實驗結果表明“先融合,后訓練”的策略導致多角度特征在融合過程中會產生一定的信息損失,因而對經過網絡訓練后的池化特征進行融合效果更優。對于兩種注意力機制的融合方案Mcn和Mnc,OA分別為86.71%和87.36%,不同于圖像注意力領域CBAM的經驗,串行融合使用本文設計的注意力機制并未對網絡特征提取性能做進一步提升。
最后,將Mc注意力機制應用于PointNet網絡,OA相比于原始網絡的88.90%提升至89.30%,同樣提升了網絡分類效果。同時,可以觀察到相比于原始網絡,注意力機制Mc分別僅使PointNet(vanllia)和PointNet的運行時間增加了27 min和15 min,并未明顯提高網絡計算成本,表明了本文設計注意力機制Mc的輕量級特點。下文中的實驗如無特殊說明,均用注意力機制Mc。
本實驗旨在研究所設計的注意力機制Mc在MLP網絡中的使用位置方案,實驗結果如表2所示,I、Ⅱ、Ⅲ、Ⅳ、V、Ⅵ分別表示在網絡特征維度為3、64、64、64、128、1 024時,在之后嵌入使用注意力機制,—表示不使用注意力機制的原始網絡框架。

表2 注意力機制使用方案Table 2 Usage of attention mechanism
本文設計了兩種注意力機制使用方案:僅使用單個注意力機制和使用多個注意力機制。當在原始點云后I直接使用注意力機制時,OA為87.12%,相比于原始網絡有一定提升;當在第一層Ⅱ和第二層Ⅲ的MLP后使用注意力機制時,OA分別為87.80%和87.72%,相比于原始網絡有了較大提升;當繼續在更深層網絡Ⅳ、V、Ⅵ后使用注意力機制時,OA均提升較少甚至有所下降。當在兩層Ⅱ、V的MLP網絡后使用注意力機制時,OA為87.24%,結果并未優于僅使用單個注意力機制的情況;更進一步,當在三層I、Ⅱ、V或者四層Ⅱ、Ⅲ、Ⅳ、V的MLP網絡后使用注意力機制,OA甚至相較于不適用注意力機制的原始網絡有所下降。
實驗結果表明,和PointNet網絡只使用了少量TNet網絡且只在淺層使用T-Net網絡的情況類似,本文設計的適用于點云的注意力機制更適合嵌入在網絡的淺層而非深層,且使用單次注意力機制的效果優于使用多次注意力機制,具有輕量級的優點。
本文中的實驗如無特殊說明,均僅使用單次注意力機制,并將注意力機制嵌入到第一層網絡提取的特征之后。
為驗證本文設計注意力機制的普適性,本節進行了對嵌入有點云注意力機制的PointNet零件分割網絡在ShapeNet[25]零件分割數據集上的效果研究。ShapeNet零件分割數據集共有16種物體類別,每個類別有2至5個零件,總計50種零件類別、2 874個物體、16 881個零件。
在圖4中給出了零件分割的可視化結果,左、中、右三列分別表示算法預測結果、真實標準、區別點。零件分割實驗結果如表3所示,—表示不使用注意力機制的原始網絡框架,網絡的Batch Size設置為16,其余設置遵循原網絡設置。可以看到,通過對PointNet零件分割網絡嵌入本文設計的注意力機制Mc,網絡的平均交并比(mean intersection over union,mIoU)由81.76%提升至83.14%,提升了1.38個百分點。此外,注意力機制Mc幫助16種物體類別中大多數類別交并比(intersection over union,IoU)的得分超過原始網絡。對于car、ear phone、rocket類別的IoU提升超過5個百分點,對于cap、motor、skate board類別的IoU提升超過10個百分點。可以看出,本文設計的注意力機制在零件分割領域有優秀的實驗結果,驗證了設計注意力機制的普適性。

圖4 零件分割可視化結果Fig.4 Visualization results for part segmentation

表3 基于注意力機制的零件分割結果Table 3 Results of part segmentation based on attention mechanism 單位:%
本文同樣對PointNet延伸網絡進行了注意力機制嵌入實驗,以進一步驗證設計注意力機制的普適性。Frustum-Pointnet[26]是PointNet網絡在點云三維檢測任務的延伸,是一種融合了圖片與點云數據的多源融合目標檢測網絡,其網絡可分為三個部分:使用圖片檢測結果生成視椎體點云候選區域,在候選區域使用PointNet分割網絡濾除非目標噪點,對去噪后的點云使用PointNet預測網絡生成三維目標邊框。
數據使用KITTI[27]數據集,分別將點云注意機制Mc應用于Seg分割網絡、Est預測網絡、Seg&Est分割和預測網絡。KITTI目標檢測結果如圖5所示,其中圖5(a)為2D目標檢測結果,圖5(b)為與其對應的3D目標檢測結果,該圖僅包含預測邊框與方向,不包含類別與真值。平均精度(average precision,AP)結果如表4所示,—表示不使用注意力機制的原始網絡框架,Easy為目標全部可見,Mod.為目標被部分遮擋,Hard為目標被嚴重遮擋,網絡的Batch Size設置為32,其余設置遵循原網絡設置。

表4 基于注意力機制的多源融合檢測結果Table 4 Results of multisource fusion detection based on attention mechanism

圖5 KITTI目標檢測結果Fig.5 Results for kitti target detection
可以看到,無論是將注意力機制單獨使用在分割網絡還是預測網絡,AP值在大多情況下相比于原始網絡有一定提升;在預測網絡使用注意力機制時,汽車這一類別的AP值取得了最優的結果;在分割和預測網絡均使用注意力機制時,汽車這一類大物體的AP值無明顯改變,但是對于行人和騎行者這種小物體,AP值有了明顯提升。實驗結果進一步證明了設計注意力機制的普適性,同時網絡運行時間僅增加了51 min,增加幅度不足5%,說明了所設計注意力機制的輕量級特性。
針對現有的點云特征提取網絡性能有待提高,傳統的注意力機制無法直接應用于點云數據的現狀,本文提出了適用于點云的注意力機制,通過注意力機制對網絡訓練特征生成自適應權重。以PointNet類網絡作為基礎網絡,對所設計的注意力機制學習過程進行了詳盡說明,并進行了廣泛的測試與實驗。實驗結果表明,所設計的注意力機制具有普適性和輕量級的特點,能夠提升多種三維點云處理任務的性能。但是,本文對于如何在網絡的多個層次中發揮注意力機制的優勢以及如何根據傳統注意力機制進一步優化點云注意力機制仍有不足,這是進一步研究的方向。