?

基于注意力機制的高效點云識別方法

2020-08-17 13:59林欽壯何昭水
計算機與現代化 2020年8期
關鍵詞:殘差注意力準確率

林欽壯,何昭水

(廣東工業大學自動化學院,廣東 廣州 510006)

0 引 言

點云數據是一種幾何數據格式基本類型,可以理想地表現空間流形的幾何特征[1]。因此,隨著云計算和人工智能算法的發展,點云數據在自動駕駛[2-3]、3D物體識別和檢索[4-6]、機器人視覺[7],甚至災害破壞檢測[8]等諸多方面有日漸廣泛的應用。然而,由于點云數據具有非結構化、排列不變性以及點云數量不確定等特點,使得現有的很多深度學習方法[9]在點云識別上的運用具有效率低、計算量大、場景通用性差等諸多缺點。為此,研究深度神經網絡如何高效地進行點云識別對自動駕駛等現實場景應用具有重要的研究意義。

深度學習方法以神經網絡為基礎,運用在點云數據上面臨以下幾點挑戰:1)點云數據是非結構化數據,即點云是分布在空間中、以坐標xyz呈現的點,這使得典型的結構化網絡的卷積神經網絡(CNN)難以直接使用;2)點云具有排列不變性,即點云數據中點的順序是無序的,不同順序的點可以表示一個相同的物體或場景,這使深度神經網絡在獲取特征時更加困難;3)點云數據具有數量變化的不確定性,這是激光雷達等傳感器在現實場景下常遇到的問題。

1 點云識別的挑戰與研究現狀

針對點云的特點,目前深度學習方法在點云識別上的運用大致可以分為3類。一類是將三維點云數據映射成多個角度的二維圖片,再采用深度神經網絡對映射成的結構化的圖片進行處理,典型的如MVCNN[10]、RotationNet[11]等。這種方式雖然可以方便地使用在圖片識別取得良好效果的神經網絡模型上,但需要獲取點云數據在不同角度的映射圖片,在自動駕駛等多種現實場景下并不適用。另一類是將三維點云還原成三維空間,再采用空間的3D卷積神經網絡進行處理,典型的如VoxNet[12]、3D ShapeNet[13]等。這類方法計算了整個立體空間,大量為空的空間也參與了計算,使得整個模型計算量很大,通常需要通過降低分辨率等方式來減少計算,但這也在一定程度丟失了數據空間聯系的細節特征。第三類則是直接處理點云數據,通過在網絡中計算變換矩陣或者近鄰點來獲取特征,從而實現點云識別,典型的如PointNet[14]、PointNet++[15]等。PointNet通過一個子網絡學習點云數據及其特征的變換矩陣,從而達到直接處理點云數據,但該方法卻忽略了點云數據間點與點的關系,參數量較大。PointNet++可以看作是在PointNet基礎上加以提升,通過采樣局部近鄰內的點來獲取點云局部點的關系,進而提高識別率,該方法雖然減少了參數量并提高了識別精度,但方法具有計算量大、時間消耗大等缺點。

綜上所述,由于點云數據自身特點給深度神經網絡解決方法帶來的困難,目前的研究方法有著計算量大、參數量大、場景通用性差的缺點。針對現有深度學習算法在點云上應用存在的問題,本文提出一種結合注意力機制(Attention Mechanism)與深度殘差神經網絡的方法,直接處理點云數據進行高效識別。研究對比了不同的處理點云方式的深度學習方法,包括映射成二維圖片的方法、基于空間立體的方法以及直接處理點云的方法,并在MNIST、ModelNet40等數據集上對比不同方法對2D點云和3D點云的識別效果。實驗結果表明,本文提出的方法在保證高識別精度的同時,具有參數量小、計算量小、更高效等優點。

2 基于注意力機制的點云識別方法

2.1 注意力機制與殘差學習結合

注意力機制的研究源于人體視覺對環境的注意力[16]。近年來,隨著深度學習的運用,注意力機制在自然語言處理[17]和圖片識別[18]等多個領域均有研究和應用。圖1(a)為注意力機制的結構示意圖,其中FCN為多層全卷積層,包括卷積層、Batch Normalization層[19]以及ReLU激活層[20]等。對于給定輸入x,通過網絡學習得到特征T(x),特征之間權重W(x),則通過注意力機制后輸出為:

Fi,c=Wi(x)·Ti,c(x)

其中,i為第i個點(或特征),c∈{1,…,C}為通道索引,特征與權值間的運算為Hadamard乘積。注意力機制通過網絡學習獲得特征及其相關權值,使得重要的點或特征凸顯出來。

(a) 注意力機制

(b) 結合殘差學習的注意力模塊

為了進一步有效地學習點云的整體分布,本文方法結合殘差學習的方式。殘差學習源于殘差網絡[21],用于解決深度學習中由于梯度消失帶來的性能下降問題。由于點云數據具有無序的特點,而殘差學習的網絡可以通過顯式地學習多個堆疊的殘差映射,有利于擴大網絡的容量,提高網絡對數據的擬合能力,提高對點云數據的識別精度。本文方法采用圖1(b)所示的結合殘差學習的注意力機制模塊。對給定輸入x,通過該模塊后輸出為:

H(x)=F(x)+x

=Wi(x)·Ti,c(x)+x

2.2 整體學習框架

本文方法可以直接處理輸入的點云數據。該方法的整體框架示意圖如圖2所示,輸入點云的形式為(n×d×1),其中n為點云點的數量,d為點云的維度,圖中其他模塊的大小設置也與此類似。點云數據流經Conv層后流入多個結合殘差學習的注意力模塊堆疊而成的網絡結構,其中Conv層由卷積層、Batch Normalization層以及ReLU激活層組成。由殘差注意力模塊學習得到的特征,經過最大池化層(Max Pooling)后,再通過多層感知機(MLP),最后輸出分別隸屬于k個類別的分數,得到輸入點云數據所屬的類別。對于網絡輸出,采用Softmax計算,將輸出轉化為屬于每個類別的概率:

其中v為輸出向量。網絡經過Softmax計算后,再使用Cross-Entropy計算整體的損失(loss):

其中,y′i為標簽中的第i個值,yi為經過Softmax歸一化后輸出向量的第i個分量。最后對同個batch中的樣本的loss計算平均值,獲得最后的反饋損失。

圖2 基于注意力機制的高效點云識別方法的整體框架

3 實驗與結果分析

本文實驗采用MNIST數據集和ModelNet40數據集,對比分析在2D點云和3D點云數據上不同方法的表現。實驗運行的硬件環境CPU為Intel Xeon E5-1650 v4, GPU為NVIDIA TITAN Xp,實驗運行的軟件環境為64位的Ubuntu 16.4 LTS并采用TensorFlow 1.4進行實驗。實驗采用準確率作為評價指標,即:

3.1 2D點云識別

對于2D點云識別,本文采用了典型的手寫數字數據集MNIST[22]。該數據集包含60000個手寫數字圖像樣本作為訓練集和10000個手寫數字圖像樣本作為測試集。在預處理階段,以128作為閾值,將手寫數字圖像中灰度值大于該閾值的像素點轉換為二維點云,點云中的點以二維坐標(x,y)的形式組成。實驗設置了點云集合的大小為256,對于點云數量大于256的樣本,采用隨機采樣的方式,對于點云數量小于256的樣本,則使用其全部的點,并從該樣本中隨機采樣點補足到256個。

本文將實驗的batch大小設置為128,將dropout層的神經元失活概率設置為0.3,將學習率初始化為0.05并以每30個epoch乘以0.7的速率遞減。實驗結果如表1所示,本文方法在2D點云識別上展現了優于其他方法的準確率。

表1 各方法在MNIST上進行2D點云識別的準確率比較

3.2 3D點云識別

針對3D點云識別,本文采用了典型的3D數據集ModelNet40[13]。該數據集包含了40類物體,一共12311個三維網格化的3D模型。其中,訓練集包含9843個樣本,測試集包含2468個樣本。本文采用PointNet方法處理數據,通過對于每一個3D模型進行均勻隨機采樣1024個點,將網格化的3D模型轉換成三維點云的形式,即模型的三維點云以(x,y,z)三維坐標存在,并將整個模型的三維點云歸一化到單位空間。

本文實驗采用了Adam優化方法,將學習率設置為0.001,將動量(momentum)設置為0.9,將batch大小設置為32。為了提高對數據的利用,使網絡學習到本質的特征,本文在訓練過程同時采用了2種數據增強操作。一種是隨機讓3D模型選擇繞x軸、y軸或z軸旋轉一定角度,即點云數據乘以一個0~2π之間隨機角度的旋轉矩陣。另一種數據增強操作是對點云數據中的點進行隨機抖動,實驗將抖動范圍設置在[-0.05, 0.05]區間。圖3(a)為實驗過程中損失函數收斂曲線,圖3(b)為隨著訓練epoch增加的測試準確率曲線,可見該網絡模型具有快速、良好的收斂性能。

(b) 測試準確率曲線

實驗結果如表2所示,本文方法在3D點云識別上達到了與前沿算法近似甚至超過的準確率。

表2 各方法在ModelNet40上進行3D點云識別的準確率比較

3.3 算法對比分析

在2D點云識別和3D點云識別實驗中,本文方法表現出了高識別準確率。為了更全面地分析本文方法的特點,驗證該網絡算法的優勢和實際可應用性,選擇了同樣直接處理點云數據且具有良好識別率的算法來比較其模型大小與運行效率。

表3 各方法在3D點云識別實驗中的網絡參數量及運行速度比較

以3D點云識別為例,各方法網絡參數量和運行速度對比如表3所示。從網絡大小而言,本文方法對比PointNet模型減少了50%以上的參數量,對比PointNet++減少了17%以上的參數量,這是由于本文方法采用注意力機制的方式直接獲取點云特征,避免了采用子網絡學習變換矩陣的方式,從而使模型更加簡單,更有利于實際應用。從網絡運行速度而言,本文方法略快于PointNet,對比PointNet++運行時間減少60%以上,這是由于通過注意力機制與殘差學習的結合方式可以獲取點云之間關系,減少了顯式查找點云局部關系,使得網絡模型更為快速和高效。通過對比分析可知,本文方法具有更加簡單、更加高效的特點,也使得其在實際應用中更有優勢。

4 結束語

針對當前深度學習方法在點云識別上的運用具有效率低、計算量大、場景通用性差等諸多缺點,本文提出了一種高效的點云識別方法。通過結合注意力機制與殘差學習,該方法直接處理點云數據,并獲取其重要特征,從而達到對點云數據的高效識別。實驗結果表明,該方法在2D與3D點云數據中都具有良好的識別準確率,并且具有模型簡單、參數量小、計算量小、更高效等諸多優點。

猜你喜歡
殘差注意力準確率
基于雙向GRU與殘差擬合的車輛跟馳建模
讓注意力“飛”回來
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
2015—2017 年寧夏各天氣預報參考產品質量檢驗分析
基于殘差學習的自適應無人機目標跟蹤算法
基于遞歸殘差網絡的圖像超分辨率重建
高速公路車牌識別標識站準確率驗證法
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合