王寶樂,霍占強
河南理工大學 計算機科學與技術學院,河南 焦作 454000
近年來隨著深度學習在計算機視覺領域的快速發(fā)展,三維點云處理技術也取得了較大進展。相比于二維(2D)圖像數(shù)據(jù),三維(3D)點云數(shù)據(jù)有著更多優(yōu)勢。但點云數(shù)據(jù)的無序性、不規(guī)則性和稀疏性,為三維點云數(shù)據(jù)的處理帶來較大的挑戰(zhàn)。使用深度學習方法高質量地提取原始三維點云數(shù)據(jù)的局部或者全局特征,為后續(xù)點云數(shù)據(jù)應用(如物體分類、語義分割等)提供準確、可靠的輸入,是一項具有挑戰(zhàn)性且有重應用價值的任務。
三維點云特征描述[1-5]就是獲得點云數(shù)據(jù)本身所具有的幾何特征信息。點云臨界點的幾何特征描述了點云的輪廓形狀,能夠表示某類點云形狀的關鍵點,基于這些關鍵點能夠識別出點云的類別。點云特征描述有助于提高三維數(shù)據(jù)的處理效率,降低計算成本。三維視覺應用的快速高效離不開有效的特征描述。
傳統(tǒng)三維點云特征提取部分主要采取手工設計特征[6-8]方法來實現(xiàn),受實際應用場景中點云數(shù)據(jù)稀疏性等因素的影響,三維點云識別算法的整體性能不能滿足應用需求。隨著深度學習方法的興起和廣泛應用,數(shù)據(jù)驅動模式下的神經網絡顯示了強大的學習能力,從最初的圖像識別任務快速拓展到更多的領域,在圖像分類、圖像檢測、圖像識別等領域都展示了其強大的表征能力?;谏疃葘W習的點云特征提取方法可主要分為三類,即多視角方法、體素化方法、直接處理點云的方法。
(1)基于多視角的方法:文獻[9]將三維點云數(shù)據(jù)投影到多個視角的二維圖像空間,進而在投影圖像上采用二維卷積神經網絡[10-11]模型進行特征學習,其優(yōu)勢在于:存在海量圖像數(shù)據(jù)供深度學習模型進行預訓練。雖然這類方法[12-16]通過投影變換能一定程度地保留點云的形狀信息,但變換過程本身改變了點云的局部和全局結構,使得特征鑒別力下降。此外,將點云進行投影損失了大量的3D結構信息。
(2)基于體素化的方法:文獻[16]將三維點云轉化為三維體素網格形式,再利用三維卷積神經網絡(3D CNN)來處理這種體素數(shù)據(jù),該方法可以保留點云數(shù)據(jù)的局部和全局結構,學習到大量的三維結構信息。但該類方法[17-18]的不足為:①為避免網絡訓練過于復雜,三維體素的分辨率不能太高,從而限制了所學特征的鑒別力;②三維形狀表面所占的體素比例不高,使得體素化結果較稀疏,又因為3D 卷積的計算代價和搜索空間比較大,使得內存消耗嚴重。
(3)直接處理點云的方法:文獻[19]提出一種直接處理點云數(shù)據(jù)的方法PointNet,該方法解決輸入點云無序性、不規(guī)則性問題的思路為:采用一個對稱函數(shù)融合每個點的信息,該對稱函數(shù)以多層感知器網絡和最大池化(max pooling)來近似,輸出對點序不敏感的特征表示。在此基礎上,為解決PointNet因無法很好地捕捉由度量空間限制了網絡對精細場景的識別以及對復雜場景的泛化能力的局部結構問題,該團隊又提出了改進版本PointNet++[20]。這兩種方法成功應用于三維點云物體分類和目標識別等任務。
PointNet++沒有使分組中的內部特征映射大小保持不變,且未考慮不同特征通道的差異性,為所有通道分配相同的權重,在一定程度上影響了算法的精度。針對以上問題,本文提出一種多分組表征和注意力機制相結合的三維點云分類方法。
本文的主要貢獻為:
(1)將特征描述方法中特征分組的思想引入到點云特征提取中,提出并設計了多分組表征模塊,保證點云內部特征提取維數(shù)不變,為點云局部信息和全局信息融合,提供可行有效的方法。
(2)針對現(xiàn)有點云特征提取方法均忽略了不同通道的重要性,本文引入通道注意力機制強調對分類重要的通道,抑制對分類不重要的通道,達到更好的特征學習目的。
PointNet[19]的輸入為點云數(shù)據(jù)的集合,在每個點上單獨使用一個共享的多層感知機(MLP),該MLP 作為一組可學習的空間編碼計算輸入點云的全局特征;然后,連接一個全局最大池化操作,在特征的各個維度上執(zhí)行max pooling操作來得到最終的全局特征。該方法不受輸入點云排序的影響,可以直接處理點云數(shù)據(jù),避免了信息的損失和額外的計算負擔。但該方法也存在局限性,即沒有考慮原始點云數(shù)據(jù)中的局部空間關系。
針對PointNet 的不足,Qi 等人[20]又提出了PointNet的進階版本,即PointNet++。PointNet++在局部區(qū)域多次迭代使用PointNet 生成新的點,實現(xiàn)多級的特征學習。針對輸入點集采樣密度不均的問題,PointNet++設計了點集抽象模塊,即采用層次結構來多次應用PointNet聚合局部鄰域信息,利用局部點集來近似局部結構,動態(tài)查詢每個位置的最近點。這些層次結構在訓練和推理過程中都引入了較大的計算量。通過PointNet++網絡模型學習到的點云特征描述子具有較好的全局特征和局部特征,但點云特征描述子的可鑒別性和魯棒性有待進一步提高。
文獻[21]采用逐點金字塔池化(pointwise pyramid pooling,3P)模塊捕獲不同密度的局部結構,使用循環(huán)神經網絡提取空間信息,提出了3P-RNN,取得了良好的3D語義分割的效果。此外,文獻[22]提出了更為簡單高效的點云特征提取模型PointCNN。PointCNN 提出一種帶X 變換的卷積(X-Conv),即X-transformation 空間變換矩陣,利用它來實現(xiàn)與點相關聯(lián)的輸入特征的加權,并且將點排列成潛在的規(guī)范順序,然后對變換后的特征進行典型卷積,進一步提高了三維點云物體識別的準確率。
上述研究中,一方面,網絡模型表征能力有待進一步提高;另一方面,相關網絡模型的最終輸出通道數(shù)量均為1 024個,所有通道被同等重要地處理,即每個通道作為后續(xù)分類網絡的輸入信號具有相同的權重,這種處理方式未考慮不同通道對后續(xù)應用的重要性,限制了三維點云特征分類網絡的表征能力。
目前主要有兩種類型的注意力模塊:空間注意力模塊[23]和通道注意力模塊[24]??臻g注意力模塊(spatial attention map)[25]是沿著空間方向對特征圖(feature map)進行注意,生成一個空間注意力映射(spatial attention map),該注意力模塊提高了ImageNet-1k 數(shù)據(jù)集[26]和MS COCO數(shù)據(jù)集[27]的網絡精度。通道注意力模塊的代表之一是壓縮擴展網絡(squeeze-and-excitation net,SENet)[28],如圖1 所示。SENet 對每個通道獨立使用全局平均池化,然后使用兩個的全連接層和一個Sigmoid函數(shù)來生成每個通道的權值。這兩個全連接層的設計是為了捕捉非線性的跨通道交互作用,同時降低維度以避免過大的模型復雜性。
圖1 壓縮擴展塊的結構圖Fig.1 Architecture of compressed expansion block map
空間注意力模塊注重于每個位置的學習,使得模型關注到感興趣的區(qū)域上;而通道注意力模塊是分配每個通道上的權重,關注的是網絡模型通道上的依賴關系,在通道層面上完成對初始點云特征的學習。
在三維點云處理中,PointNet 網絡提取特征的方式是對所有點云數(shù)據(jù)提取一個全局特征,忽略了點云局部特征的描述,增加了網絡的學習難度,降低了網絡的分類性能。受CNN的啟發(fā),PointNet++在不同尺度提取局部特征,通過多層網絡結構得到深層特征。該網絡通過學習局部特征的上下文依賴,提高了網絡的特征表達能力。盡管學習局部特征的上下文信息也有助于特征表示,但兩種方法均忽略了特征通道的差異性,可能導致具有相同標簽的點云對應特征之間存在潛在差異。
針對上述問題,本文提出一種新的網絡結構MANet(multi-group representation and attention mechanism network)。首先,使用最遠點采樣方法選擇一定數(shù)量的點,然后對得到的點,通過球查詢(ball query)方式,找到各自相鄰的點形成不同的分組,設計多分組表征模塊聯(lián)合每個分組中的點特征,將學到的感知信息應用到具有不同分組的分組層。然后設計MLP提取每個分組的特征。接著,對最后一層每個分組的特征進行最大池化操作,得到初始點云特征。隨后,將該初始特征輸入通道注意力模塊(attention block,AB),生成新的特征表示。最后,將AB 塊強調的特征用于MLP,得到最終的點云分類結果。如圖2給出了所提MANet的網絡結構。
圖2 MANet網絡結構圖Fig.2 MANet network architecture map
本文在PointNet++網絡基礎上引入多分組表征模塊和通道注意力模塊,在提取點云特征的同時強調了對分類重要的通道,提升了網絡的分類能力。一方面,通過前者融合輸入點云的局部特征和全局特征,提升網絡的特征表達能力;另一方面,使用AB模塊建立特征通道與注意力機制之間的關聯(lián),考慮了局部感知信息和上下文信息,強調與模型分類更相關的特征,學習更關鍵的類別信息,提高點云識別的性能。
本文所采用的多分組表征模塊對卷積層進行分組卷積。首先,將輸入的點云數(shù)據(jù)進行采樣分組。然后,使用MLP提取每個分組的特征,獲得下一個分組;重復特征提取和分組的過程,獲得多個分組;最后,使用最大池化獲得初始特征表示,如圖3所示。
圖3 多分組表征模塊Fig.3 Multi-group representation module
多分組表征模塊內部使用分組串聯(lián)的方式,以便更好的融合分組中的特征圖信息,有利于學習點云的局部特征;最后的最大池化操作有利于感知全局信息,提高網絡的特征描述能力,使網絡擁有充分的能力去處理點云數(shù)據(jù)。另外,通過分組處理點云目標有助于構建深度網絡進行訓練,獲取不同分組之間的特征映射,更高效地處理所學習到的特征圖。該模塊可以改變每個點的特征維數(shù),但不影響點云數(shù)據(jù)的結構,如空間幾何信息。
本文多分組表征模塊與提出的點集抽象模塊的不同之處在于本文所用模塊的分組層中每個分組不使用最大池化操作,其目的是為了確保多分組表征模塊每個分組內的特征映射大小相同。
眾所周知,在現(xiàn)有的直接處理點云的方法中,往往在特征提取過程中忽略通道的差異性,針對這一問題,本文設計了一個新的注意力模塊,即AB模塊,如圖2所示,該模塊通過1×1 卷積操作和Sigmoid 函數(shù)計算得到通道加權向量,進而提取重要的通道信息,同時,使用卷積層代替全連接層可以使得網絡使用更少的參數(shù)量來提取特征。通過AB模塊所學習到的權重,可以使得不同的點云物體對某些重要通道保持可鑒別、有區(qū)別的權重,即不同的點云物體之間有不同的結構信息,
該重要通道信息是能夠使得網絡能識別出不同的點云物體。由于不同點云之間也會存在相同的局部特征,因此,對有些通道保持相似的權重;但若只考慮單個點云物體的自身結構,其對不同的通道具有不同的權重。
由于點云物體之間的特征具有很高的相關性,如沙發(fā)和鋼琴等物體,對于特征高度相關的物體來說,網絡中所有的通道都以相同方式處理,會影響到分類的準確率。通過強調對分類重要的通道,抑制對分類不重要的通道,會有利于提高分類的準確率。本文提出在點云處理網絡中引入強調通道差異性的注意力模塊,挖掘全局上下文信息,建立通道注意力網絡模型,顯式學習特征通道上的差異性,即利用注意力模塊根據(jù)網絡中通道的重要程度對特征分配相應的權重。每個通道圖的高層特征可以看作是一個類特有的響應,可以學習到通道的差異性,改善特定類別的特征表示。
其中,α1、α2和α3函數(shù)是優(yōu)化點云特征表示的多層感知器,函數(shù)f對輸入點排列保持不變性,且能夠無限逼近任何一個連續(xù)函數(shù),最后將輸入點映射為一個特征向量,記作V。
隨后,將該向量V輸入到本文所提的注意力模塊,生成一個新的特征映射來強調通道的差異性。該過程可以概括為公式(2):
其中,E是新特征映射后的增強特征向量,A()· 是注意力映射,即將β乘以中間特征V。因此,不同的特征通道根據(jù)它們的差異性被賦予不同的權重。
不同于SENet,AB模塊使用1×1卷積操作和激活函數(shù)來學習通道信息重要性。引入1×1 卷積有助于通過增加非線性來更好地學習多種特征通道之間的復雜關系,并且可以減少參數(shù)的數(shù)量,減少過擬合。最后,使用激活函數(shù)Sigmoid 來進一步來優(yōu)化對分類重要的特征,這樣可以保證所學習到的特征的高效性和可鑒別性。
網絡模型在訓練過程中采用交叉熵損失[29]進行優(yōu)化。該損失函數(shù)的定義如公式(4):
3.1.1 ModelNet10數(shù)據(jù)集
在ModelNet10[30]數(shù)據(jù)集上評估所提方法在分類任務上的有效性。ModelNet10數(shù)據(jù)集由Stanford發(fā)布,旨在為計算機視覺、機器人和認知科學的研究人提供全面的物體3D模型。ModelNet10包含有10個類別的樣本,部分點云可視化結果如圖4 所示,其中有3 991 個訓練樣本和908個測試樣本。原始ModelNet數(shù)據(jù)集提供了代表的CAD模型的頂點和面。
圖4 ModelNet10數(shù)據(jù)集部分可視化結果Fig.4 Some visualization results of ModelNet10 dataset
ModelNet10 數(shù)據(jù)集中樣本的類別分別為浴缸、床、椅子、服務臺、梳妝臺、監(jiān)控、床頭柜、沙發(fā)和桌子。其中,由于床頭柜、桌子和梳妝臺這類物體的點云分布較為集中,所以這類物體的結構上較為相似,具有相同的局部信息,很難得到能夠識別物體的關鍵信息,為點云的分類帶來了挑戰(zhàn)。而對于其他類別,如床、浴缸等,這些物體在結構具有較明顯的差異信息,如浴缸的內側結構對稱,可以利用對稱信息來進行識別,同時,為點云的分類提供了關鍵差異信息。
3.1.2 ModelNet40數(shù)據(jù)集
在ModelNet40[30]數(shù)據(jù)集上評估所提方法在分類任務上的有效性。ModelNet40 數(shù)據(jù)集是由Stanford 發(fā)布的ModelNet10 數(shù)據(jù)集的擴展版本,部分點云可視化結果如圖5 所示。ModelNet40 共有662 種目標分類,包含40 種對象的12 311 個CAD 模型,其中用于訓練的有9 843個,用于測試的有2 468個。輸入的三維點云數(shù)據(jù)是對ModelNet40中的原始物體模型的網格面上均勻采樣1 024個點所得,并將其歸一化到一個單位球面。
如圖5所示,給出了ModelNet40數(shù)據(jù)集較為復雜的點云物體,部分物體自身結構上沒有較大的區(qū)別,如玻璃盒和花瓶等。另外,有些物體之間存在相似的部分,如花盆、植物等物體。特別是當植物在花盆里,很容易分類錯誤。此外,部分數(shù)據(jù)之間整體存在較大的相似性結構,如沙發(fā)和鋼琴等。隨著不同類別樣本數(shù)量的增加,樣本類別的結構和信息也逐漸復雜,與上述的ModelNet10相比而言,ModelNet40的分類難度較大。
圖5 ModelNet40數(shù)據(jù)集部分可視化結果Fig.5 Some visualization results of ModelNet40 dataset
3.1.3 ScanNet數(shù)據(jù)集
ScanNet[31]是帶標注的室內場景的大規(guī)模3D 數(shù)據(jù)集,它所覆蓋的場景范圍廣泛,具有豐富的語義標注。ScanNet 數(shù)據(jù)集由1 513 個掃描和重建的室內場景所組成,其中共有21 個類別的物體,有1 201 個場景進行訓練,312 個場景進行測試。ScanNet 包含多種場景,常見較小的場景如浴室、壁櫥、辦公室等,也包括較大的場景如公寓、教室和圖書館等各種場景。
3.1.4 SHREC15數(shù)據(jù)集
SHREC15[32]數(shù)據(jù)集是由50個類別的1 200個形狀所組成的非剛性三維點云數(shù)據(jù)集。每個類別包含24個形狀,其中用于訓練的形狀有19個,其余形狀用于測試。
與剛性三維點云數(shù)據(jù)集ModelNet40相比,SHREC15數(shù)據(jù)集中的非剛性形狀種類較多,如多種姿態(tài)的貓、狗等點云類別,且在紋理和拓撲結構上更加多樣化。
3.1.5 評估指標
延續(xù)PointNet系列網絡的評價指標,本文使用總體準確率(OA)和單個類別準確率(Acc)作為評價指標。公式(5)為OA的計算公式:
其中,SP是單個類別所對應正確樣本的數(shù)量,TE是單個類別總的樣本數(shù)量,即單個類別中所有正確樣本所對應的準確率為Acc。
實驗環(huán)境:Python 3.7,PyTorch 1.1.0,GTX 1080Ti,CUDA 10.0,Ubuntu 18.04。實驗參數(shù):Epoch設為101,Batchsize 設為8,每個Batch 中包含1 024 個點,優(yōu)化器為ADAM,初始學習率為0.001。
所有實驗設置如優(yōu)化方法,學習率和所用的損失函數(shù)都與PointNet++網絡使用相同的超參數(shù)。
網絡相關參數(shù)的確定均在ModelNet40分類數(shù)據(jù)集上進行。為了確定所提出網絡模型MANet訓練周期的最佳值,將訓練周期值分別設置為41、61、81、101、121共5個不同的值,實驗結果如圖6所示。由圖6可知,隨著訓練周期的增加,網絡的準確性不斷提高,在周期值設置為101時,實驗效果最好;繼續(xù)增加訓練周期,不但延長了訓練時間,網絡的準確性也下降,所以在后續(xù)實驗中將周期值設置為101。
圖6 訓練周期數(shù)對準確率的影響Fig.6 Effect of epoch on accuracy
對于Batchsize 的選擇,在周期值為101 時,選擇不同的Batchsize 值:4、6、8、10,網絡的準確性如圖7 所示。Batchsize由4增加到6,網絡準確性有明顯的提升;當Batchsize值為4時,由于三維點云本身的數(shù)據(jù)比較稀疏,且此時輸入到網絡中的點云較小,既不能提高點云特征描述子的可鑒別性,也不能提高網絡模型的性能。隨后,Batchsize繼續(xù)增加,準確性明顯提升,在Batchsize為8 時準確性最高,Batchsize 為10 時準確性略微下降。因此,本文Batchsize的值設定為8。
圖7 Batchsize對準確率的影響Fig.7 Effect of Batchsize on accuracy
為了驗證多分組表征模塊的有效性,對比了MANet網絡與僅在PointNet++中加入AB 塊而生成的ANet 網絡性能,對比結果如表1所示。相較于ANet,MANet網絡性能提升了0.78個百分點,證明了多分組表征模塊的有效性。
表1 在ModelNet40數(shù)據(jù)集上MANet與ANet作比較Table 1 MANet compared with ANet on ModelNet40 dataset單位:%
為了驗證AB 模塊設計的合理性,對比了ANet、MANet 網絡與在PointNet++中加入壓縮擴展塊而生成的SE-PointNet++網絡性能,對比結果如表2所示。相較于原有的SE 模塊,本文提出的AB 模塊使ANet 網絡的性能提升了0.92 個百分點,MANet 網絡性能提升了1.7個百分點。證明了AB塊使用1×1卷積的優(yōu)勢。
表2 在ModelNet40數(shù)據(jù)集上MANet與SE-PointNet++作比較Table 2 MANet compared with SE-PointNet++ on ModelNet40 dataset單位:%
另外,實際應用中,伴隨著輸入點云數(shù)據(jù)量的減少,必然導致算法的泛化能力變差。因此,為了分析所提出MANet 網絡在輸入點云數(shù)量減少時的魯棒性,分別設置Batchsize 為10、8、6、4 的4 種模型,周期設置為101。實驗結果如圖8所示,隨著點數(shù)的減少,與PointNet++相比,MANet的準確性并沒有明顯的降低。因此,添加注意力模塊后,網絡可以有效應對稀疏數(shù)據(jù)。
圖8 調整MANet的BatchsizeFig.8 Adjusting Batchsize of MANet
目前點云分類的主要方法有Subvolume[33]、MVcnn[9]、PointNet 和PointNet++等。MANet 與相關方法在ModelNet10 數(shù)據(jù)集上各類別網絡的比較結果如表3 所示??梢钥闯觯疚腗ANet 得到的OA 超過了PointNet 和PointNet++模型,本文方法在ModelNet10數(shù)據(jù)集對單個類別進行了實驗,其中,其所對應的6 個類別準確率都優(yōu)于PointNet++網絡,有2 個類別準確率與PointNet++網絡結果相同,只有2 個類別準確率低于PointNet++網絡,通過多分組表征和強調對特定點云目標有響應的重要通道,提高了分類結果,驗證了本文方法的有效性。
表3 ModelNet10數(shù)據(jù)集上的單個類別MANet與現(xiàn)有方法比較Table 3 Comparison between MANet and existing methods on each class of ModelNet10 dataset單位:%
MANet與相關方法在ModelNet40數(shù)據(jù)集上的比較結果如表4所示。本文方法在分類任務上準確性最高,總體分類準確率比基于體素輸入的Subvolume 提高3.3個百分點,比基于投影圖輸入的MVCNN 提高2.5 個百分點,與基于點云輸入的PointNet和PointNet++相比,分別提高3.3個百分點和1.8個百分點。然后在ScanNet數(shù)據(jù)集上與相關方法的比較結果如表5 所示。由表5 可知,MANet 總體分類準確率比PointNet++網絡提高2.5個百分點。接著又在SHREC15數(shù)據(jù)集上與相關方法進行比較,結果如表6 所示。由表6 可知,MANet 的總體分類準確率比PointNet++網絡提高2.8個百分點。
表4 ModelNet40數(shù)據(jù)集上MANet與現(xiàn)有方法比較Table 4 Comparison between MANet and existing methods on ModelNet40 dataset單位:%
表5 ScanNet數(shù)據(jù)集上MANet與PointNet++比較結果Table 5 Comparison results between MANet and PointNet++ on ScanNet dataset單位:%
表6 SHREC15數(shù)據(jù)集上MANet與PointNet++比較結果Table 6 Comparison results between MANet and PointNet++ on SHREC15 dataset單位:%
本文在ModelNet40 分類數(shù)據(jù)集對MANet 網絡和PointNet++網絡的訓練時間進行比較,以評價網絡模型的計算代價。結果如表7 所示。由表7 可知,與PointNet++相比,MANet在各個分組內學習時保持完整的組內特征信息,同時在學習點云特征過程中強調對分類重要的通道,可以更高效地處理點云。因此,本文所提方法能夠使用更少的模型訓練時間,來獲到更好的識別結果。
表7 ModelNet40上訓練時間比較結果Table 7 Comparison results of training time on ModelNet40單位:h
本文提出一種基于多分組表征和注意力機制的MANet 網絡用于提取三維點云特征,并將其應用于三維點云分類任務。首先利用多分組表征模塊學習點云特征,確保獲得完整的特征信息,挖掘最能表征模型類別的幾何特征。然后,引入通道注意力機制描述了初始點云特征的重要通道,即通過強調點云不同通道的重要性,進一步提高網絡模型識別性能。在ModelNet10/40、ScanNet 和SHREC15 數(shù)據(jù)集上的實驗結果驗證了該方法的有效性。由于MANet 是對點云特征的信息綜合,對PointNet++的改進有助于提高點云識別技術的準確率,這種改進使MANet能夠在具有挑戰(zhàn)性的3D點云基準上實現(xiàn)更好的性能。未來將進一步研究多分組表征和注意力機制對不同算法的適用性和有效性,深入挖掘多分組表征和注意力機制在點云識別算法中扮演的重要角色。