譚臺哲,黃永耀,楊 卓,劉 洋
廣東工業大學 計算機學院,廣州 510006
深度學習已經在圖像相關的領域取得了很好的效果。其中的卷積神經網絡(CNN)在圖像分類任務[1]、語義分割任務[2]、目標檢測任務[3]中都達到了行業領先的成果。由于三維點云處理在自動駕駛、機器人空間理解領域具有重要意義[4],最近有許多研究致力于將神經網絡應用到三維點云數據處理中,但原始的三維點云是非規則數據,每個點只包括了三維坐標(x,y,z)和RGB信息,無法用處理圖像的規則卷積核進行特征提取。早期的方法通常是先將原始三維點云預處理成網格狀數據,然后直接采用規則的三維卷積核進行特征提取,這種方法通常具有較高的計算復雜度。PointNet[5]的提出為基于神經網絡的三維點云處理帶來了一種全新的思路,它不需要額外的預處理,且通過疊加多層感知機(MLP)的方法直接對原始三維點云進行特征提取,大幅減少了計算消耗,在當時達到了比較領先的精度。從此之后,有許多面向三維點云的神經網絡方法被提出,這些方法主要可以分為三種:基于圖的方法[6-7]、結構化表示方法[8-9]、基于點卷積的方法[5,10-12]。
然而,在不同類型的數據集中(如經過激光雷達采集、D-RGB 攝像頭采集的點云數據集),點云分布情況并不統一,所以在現實應用場景中仍需要面向不同類型的數據集進行神經網絡的人工調整以達到較好的擬合度,但是這樣的工作通常需要較高的人工成本,并且要求相關人員具有豐富的深度學習領域相關知識。最近得到大力發展的自動神經網絡架構搜索(neural architecture search,NAS)技術,則可以最大程度地減少神經網絡設計中人工介入的影響,并能高效率地優化神經網絡。但是目前在計算機視覺領域中,大量的NAS 技術研究只聚集在圖像數據上,面向三維點云數據的NAS技術仍處于初始階段,本文的工作則是在這個方向上的一個探索。
NAS技術主要包括兩個關鍵問題,即搜索空間和搜索算法。搜索空間中定義了各種用于組成搜索單元的候選操作(比如3×3 卷積、最大池化等),以及由這些候選操作結合而成的搜索單元。由多個搜索單元疊加而成的神經網絡將作為搜索空間,搜索算法則是用于迭代地從搜索空間中搜索出最優的神經網絡,搜索算法可以大致分為進化算法[13]、強化學習算法[14-15]。文獻[14]提出的基于強化學習算法雖然表現出良好的效果,但仍然需要大量計算資源。在這之后提出的方法DARTS[16]以及其變體[17]將網絡架構搜索設計為一個可微分的方式,允許搜索算法使用梯度下降進行網絡架構搜索,從而大幅降低計算復雜度。2020年提出的SGAS[18]則實現了更進一步的改進,其能在少量樣本的數據集中搜索出具有優秀泛化能力的神經網絡。同時,SGAS 也是第一個將NAS技術應用到三維點云處理的方法,其采用了圖卷積核(graph convolution)組成搜索空間,并以此搜索出圖卷積神經網絡(graph convolution network,GCN),這在三維點云處理方法分類中屬于基于圖卷積的方法。相比基于點卷積的方法,這種方法在反向傳播中需要保存更多的中間變量,會占用更多的顯存空間,導致這類方法難以適用于大規模點云數據中。針對這個問題以及高效的三維點云特征提取問題,本文提出了一種基于點卷積的神經網絡架構搜索方法,對于搜索算法,則沿用了SGAS的工作。對于搜索空間的組成,本文提出了一種新的基于點卷積的搜索單元。
由于點云數據下采樣的特殊性,不同尺度點云之間的語義信息會產生較大的差異,直接采用面向圖像的搜索單元結構的方案無法獲得理想的效果。為了增強不同尺度點云的信息融合,本文提出了一種基于注意力機制的多尺度融合模塊,取代標準搜索單元中原有的輸入節點處理模塊。另外,本文采用了兩個基于點卷積的特征提取器,其中包括了多層感知機形式的特征提取器(MLP點卷積核)和多層分離卷積核構成的特征提取器(shell點卷積核),并設計了特殊的面向點云的下采樣模塊與之相結合,用以構成候選操作并組合成一個搜索單元。本文的主要貢獻如下:
(1)提出了一種基于注意力機制的多尺度融合模塊,其增強了兩個尺度點云的信息融合,改善了直接下采樣導致不同尺度點云之間的語義信息差異過大的問題。另外,由于引入了注意力機制,增強了全局語義信息,從而提高了模型的特征提取能力。
(2)通過采用該多尺度融合模塊以及設計一系列候選操作組成搜索單元,提出了一種基于點卷積的搜索空間。相比基于圖卷積的搜索空間,其計算效率有較大提升。
(3)采用SGAS搜索算法在搜索空間中搜索出最優的神經網絡,在ModelNet公開數據集[9]上的對比實驗表明,相比于傳統人工設計的神經網絡,該方法可以在很短時間內自動搜索出具有很少可學習參數的神經網絡,并且能獲得比較領先的性能。相比基于圖卷積的SGAS方法,本文提出的基于點卷積的方法搜索得到的神經網絡,減少了約70%的可學習參數量,并且能維持相近的性能。消融實驗也證明了采用本文提出的基于注意力機制的多尺度融合模塊可以帶來1.1%的精度提升。另外,本文首次提出用基于點卷積的搜索空間進行面向點云的神經網絡架構搜索。
1.1.1 結構表示方法
早期提出的三維數據處理方法是將不規則的三維點云轉換成規則結構的數據,比如體素(voxel)[8]、多視圖[9]、層次數據結構[19],再用標準卷積神經網絡進行特征提取。其中多視圖方法將三維點云投影成多個視點的圖像,對于單個目標的分類任務,這類方法有一定的效果,但對于語義分割等任務,這類方法會由于物體遮擋問題而丟失部分物體信息,導致性能不佳。層次數據結構方法通常將點云采樣為層次結構數據,比如八叉樹(OC-tree),再利用特殊的層次結構對這種數據進行學習,這類方法需要大量的數據預處理,通常會導致過多的計算消耗。基于體素的方法則是在預處理過程中,將三維點云等距離采樣成三維網格狀數據,并輸入到由規則的三維卷積核構成的卷積神經網絡中,這些方法通常不考慮點云數據的稀疏性,會對空間中的大量空白區域進行卷積運算,產生了大量的額外計算量。本文提出的是基于點卷積的方法,只對空間中存在的點進行卷積運算,而且不需要預處理過程,從而減少了計算量。
1.1.2 基于圖的方法
通過建立三維點云中各點之間的關系,基于圖的方法可以對這些圖結構數據進行圖卷積計算,并逐層提取高層特征。對一個圖結構進行卷積,可以被定義為在其頻域上的卷積,比如ChebNet[6]采用Chebyshev多項式基來模擬譜濾波器(spectral filters),從而減少圖的傅里葉變換時的計算消耗。另外,文獻[7]專注于研究流形曲面表征,從而避免了譜域(spectral domain)計算。雖然圖卷積能夠在局部曲面點集上聚集特征并維持了點云的平移不變性,但是很難合理有效地定義任意兩個點之間的關系。
1.1.3 基于點卷積的方法
PointNet[5]是第一個用神經網絡直接處理原始點云的方法。通過將每個點輸入到一個共享權值的多層感知機(MLP),PointNet 可以維持點云的平移不變性,這是因為多層感知機具有逼近任何連續函數的能力。延續PointNet 的思想,后續的一些研究工作[10-11]專注于用多層感知機來設計對局部聚合點進行特征提取的神經網絡,這些研究都獲得了很好的效果。這類方法會將多個局部點集的三維坐標信息和上下文語意特征一同輸入到共享權值的多層感知機中進行特征提取,實現一種類似卷積的計算,所以可以看成是一種基于點卷積的方法。為了能讓神經網絡更好地學習空間特征和上下文語義特征,一些最近的研究工作[12,20]則采用了空間濾波器(spatial filter)來處理點云組成的特征圖。這些方法用點的三維坐標來定義一個局部空間濾波器,用這個濾波器來處理相應點的上下文語意特征。這類方法充分利用了點云的三維坐標信息,從而提高了預測精度。
人工設計的神經網絡在目前已經取得了很大的成功,但人工設計神經網絡的方法仍有相當大的局限性,不僅僅需要面向不同數據集重新調整神經網絡,投入大量的人力成本進行迭代優化,而且這些工作都要求設計人員具有一定的深度學習研究經驗。為了解決這些問題,神經網絡架構搜索(neural architecture search,NAS)被提出。文獻[14]最早提出用強化學習算法來自動化神經網絡架構搜索過程,此后提出的NASNet[15]則是基于一個起始細胞結構的搜索空間迭代地搜索神經網絡,并采用正則化和權重共享技術來提高搜索效率。最近的一些研究工作[21-22]通過訓練單個具有繼承或者共享權值的過度參數化(over-parameterization)網絡,以此來減少計算消耗。其中比較經典的是DARTS 方法[16],其將網絡的表示松弛到連續空間中并使搜索過程變成可微分形式,允許搜索算法使用梯度下降進行網絡結構搜索,從而大幅降低計算復雜度。此后提出的SGAS 方法[18]則延續了DARTS 的思想,以貪婪的方式來對候選的節點操作進行選擇和剪枝,并在搜索過程中提高了訓練集和測試集之間的關聯度,在最終測試集中達到較好的效果。為了讓提出的方法有更高的性能,本文采用了SGAS作為其中的搜索算法,但實際上本文提出的搜索空間適用于所有基于DARTS的搜索算法。

但是DARTS方法存在搜索階段和評估階段的最優網絡有一定結構差距的問題,以及DARTS 中權值共享帶來的問題,使得搜索階段得到的最優網絡無法在評估階段中達到最優效果,這個問題被稱為退化的搜索評估相關性(degenerate search-evaluation correlation)[18]。為了解決這個問題,SGAS提出在搜索階段以貪婪的方式逐步確定和修剪每個操作o(i,j),并加入了3個衡量指標和評估準則,使得SGAS搜索得到的神經網絡能在評估數據集有更好的表現。本文方法分別采用DARTS 和SGAS 搜索算法在基于點卷積的搜索空間中進行神經網絡架構搜索,并加上一個分類頭(classification head)模塊,最終得到一個可用于三維點云分類任務的神經網絡,并在實驗中對比了這兩種方法在點云數據上的性能。
基于點卷積的搜索空間是由多個搜索單元(cell)疊加而成,一個簡單的搜索空間如圖2 所示,下采樣搜索單元是在正常搜索單元的基礎上增加了下采樣步驟,從而輸出一個尺寸縮小的特征圖。對于每一個在下采樣搜索單元后的正常搜索單元,都是由一個基于注意力機制的多尺度融合模塊和基于點卷積的候選操作組成,下采樣搜索單元則不含基于注意力機制的多尺度融合模塊。

圖2 一個簡單的搜索空間Fig.2 A simple search space
面向圖像的搜索單元如圖3 所示,具有如下結構:兩個不同尺度的特征圖S0 和S1 輸入到搜索單元,其較大尺度的特征圖S0 會直接下采樣至特征圖S1 的大小,從而保持兩個輸入特征圖具有相同的分辨率,這兩個經過處理后的特征圖將輸入到候選操作組合模塊中。這個步驟在圖像數據上是可行的,但根據實驗觀察,在點云數據中使用這種思路設計的模型效果較差。這是由于點云的下采樣方式(如最遠點采樣、隨機采樣)是一種非均勻下采樣,這與使用等距離采樣的圖像下采樣方式相比更不穩定。

圖3 面向圖像的搜索單元Fig.3 Search cell for image
為了讓搜索單元能更好地融合這兩個不同尺度的點云數據,并使這兩個不同尺度的輸入數據轉化成同一個尺度。受文獻[23]的啟發,本文提出一種基于注意力機制的多尺度融合模塊。該模塊具體細節如圖4(a)所示,首先,較大尺度點云數據S0 作為關鍵點(key),較小尺度的點云數據S1作為注意力機制中的查詢點(query),經過一系列的基于注意力機制的矩陣運算之后將得到一個與S1 的尺度一致的點云數據S0′,代表經過處理后的S0 的數據。給定輸入的點云數據S0 和S1 的特征圖分別為F0和F1,其中F0∈RNl-2×Cl-2,F1∈RNl-1×Cl-1,且Cl-2和Cl-1代表F0和F1的特征通道數。這個過程可以用如下公式表示:

圖4 具有注意力機制的搜索單元Fig.4 Search cell with attention mechanism

其中,?代表矩陣叉乘;θ、φ、?、σ0都是非線性卷積層,可以采用1×1卷積代替;θ、φ、?是用于生成注意力圖,σ0則是用于融合全局語義信息和調整特征通道數。這個設計思想來自于自注意力結構(self-attention)[23],在自注意力結構中,鍵值矩陣(key)和查詢矩陣(query)由一個輸入特征圖經過兩組1×1卷積計算得到,之后鍵值矩陣和查詢矩陣進行點乘得到一個全局的特征圖注意力權重,最后與值矩陣(value)進行點乘并輸出,其中值矩陣也是由輸入特征圖經過1×1 卷積計算得到。而本文設計的唯一不同之處在于,鍵值矩陣(key)和值矩陣(value)來自一個較大尺度的點云數據,查詢矩陣(query)來自一個較小尺度的點云數據。由于較小尺度點云是由較大尺度點云經過下采樣得到的,其包含了原有點云的一部分幾何結構信息,將這個小尺度點云作為查詢矩陣來源,可以使自注意力模型更好地計算出原有點云的關鍵點位置,得到更好的注意力圖從而提高表征能力。另外,采用不同的下采樣方法也會對該注意力模塊造成不同影響,在實驗4.3.2 小節對比了采用不同的下采樣方式在不同規模的點云上所產生的效果。
其次,為了讓S1 實現同樣的全局上下文信息聚合,采用了一種簡單的注意力機制來處理點云數據S1。首先,S1 將輸入到一個非線性卷積層并進行softmax 計算,得到的數據再與原始S1 進行點乘計算,得到的輸出數據S1′代表經過處理后的S1 數據。這個過程可以用如下公式表示:

其中,⊙代表矩陣點乘,τ是用于生成注意力圖的非線性卷積層,σ1的作用與σ0類似。這個結構設計思想來自于通道空間注意力模塊(CBAM)[24]中的空間注意力模塊,其能在空間維度上重新校準點云特征圖,突出關鍵點信息。采用這個結構也能避免S0′和S1 兩個點云數據之間的關鍵點信息差距過大導致難收斂的問題,從而提升預測精度。
這個模塊增強了兩個尺度點云數據的融合,解決了直接下采樣導致點云數據之間的語義信息差異過大的問題,另外,由于對兩個尺度的點云數據中都采用了注意力機制,增強了全局語義信息,從而提高了模型精度。在消融實驗中也討論了這個模塊所帶來的效果。一個完整的具有注意力機制的搜索單元如圖4所示,經過基于注意力機制的多尺度融合模塊處理后,得到新的S0 和S1 點云數據將作為兩個輸入節點傳遞到基于點卷積的候選操作組合模塊,并輸出最終數據。
為了解決點云處理效率問題,本文采用了基于點卷積的特征提取器組成候選操作(operations)。每個搜索單元中都包含以下5 種候選操作:MLP 點卷積核(相鄰點數量設置為16、32、64),shell 點卷積核(層數設置為2、4,其中每層包含點數設置為16),恒同連接(skipconnect),空置操作(zero),1×1卷積。MLP點卷積核和shell 點卷積核是本文采用的面向三維點云的特征提取器,其他候選操作的功能則與面向圖像數據方法中的類似。
不同于圖像這種網格狀的規則數據,三維點云是稀疏分布的,其中每個點包括了三維坐標( )x,y,z和語義特征值(比如RGB 值),在本文中用x∈RN×3表示每個點的三維坐標信息,用f∈RN×C代表上下文語意特征。為了減少一個深層神經網絡的計算量,需要逐層地減少點云的數量。在本文中采用最遠點采樣(farthest point sample,FPS)[25]和隨機采樣(random point sample,RPS)來逐層減少點云數量,這類似于圖像卷積神經網絡中采用最大池化(max-pooling)等操作來逐層減少特征圖的分辨率。FPS 算法會迭代地尋找與當前選擇點相離最遠的點,其計算復雜度為O(N2)。采用FPS 算法得到的下采樣點云能保留更多的幾何結構信息。RPS算法則是隨機選擇一定數量的點,其計算復雜度為O(N),但對點云密度分布不平衡的情況十分敏感,適用于點數量較多的點云數據。這兩種下采樣算法將作為一個在搜索過程中的超參數,搜索算法將使用其中一種方式進行神經網絡架構搜索。在實驗4.3.2小節也對這個超參數進行了對比實驗。
為了能讓點卷積核更好地學習點云的局部特征,點云中的點需要聚合成多個點集,每個點集都會被輸入到點卷積核中。由于點云數據通常規模較大,對近鄰點聚合方法的計算效率有較高要求,目前點云處理領域中比較主流的近鄰點聚合方法有K-最近鄰點搜索(K-nearest neighbors,KNN)和球搜索(ball-query),文獻[20]證明了采用球搜索方法會導致輸入到卷積核中點的數量不穩定,從而影響模型收斂,而采用KNN能維持固定的點數量,使得模型能夠獲得更好的預測精度,而且KNN有更快的計算速度,因此在本文中也采用KNN 算法實現該近鄰點聚合過程。
對于點卷積核,采用了基于多層感知機(MLP)的MLP點卷積核和基于可分離卷積的shell點卷積核兩種。
MLP 點卷積核具有計算效率高的特點,而且由于MLP 能夠擬合任意連續函數,所以這種點卷積核被證明有一定的特征提取能力[12]。借鑒了這個思路,本文重新設計了一種簡單的MLP 點卷積核,其中包含了一個三層的全連接神經網絡,輸入層節點數和輸出層節點數分別等于輸入特征圖和輸出特征圖的通道數。一個支持點p和其K-1個近鄰點所構成點集為{x1,x2,…,xk},xi∈R3+C,則一個MLP 點卷積運算可以描述成如下的公式:

其中h代表全連接神經網絡。具體流程如圖5所示,對于第l層的點云中的某一個點集,將這個點集中所有點的上下文特征矩陣與對應的點云三維坐標矩陣(形狀為[Nl+1,K,3])進行拼接(concatenate),得到形狀如[Nl+1,K,3+Cin]的矩陣,并將其輸入到MLP 點卷積核中,得到形狀如[Nl+1,Cout]的特征圖矩陣,作為第l+1層的輸入。由于點云的三維坐標與上下文信息是結合起來輸入到MLP 點卷積核,所以MLP 點卷積核能夠從中學習到三維坐標與上下文之間的關系。

圖5 MLP點卷積核的具體細節Fig.5 Details of MLP point convolution kernel
shell點卷積核則是使用了ShellNet[20]中的設計。在深層的卷積神經網絡中通常會逐層地減少特征圖分辨率,同時增加特征圖的通道數,通過使用疊加卷積核的方法來獲得足夠大的感受野,MLP 點卷積核就是延續了這種想法,而shell點卷積核則是利用多個同心環區域劃分不同權值,從而使用少量卷積核疊加即可獲得足夠大的感受野,具有一定的計算效率優勢。
每個搜索單元中都包括了6 個節點(圖4(b)),即3個中間節點,2個輸入節點(輸入數據為S0′和S1′)和1個輸出節點,一個節點的數據會經過候選操作處理后輸出給下一個節點。一個搜索單元的2 個輸入節點的輸入數據來自前兩個搜索單元的輸出,輸出節點則是由所有中間節點的最終輸出經過拼接得到的。
4.1.1 實驗數據集
ModelNet[9]系列數據集是一種三維點云分類任務數據集,其包括兩個子數據集,即含有10個類別的Model-Net10 和含有40 個類別的ModelNet40。ModelNet10 含有4 899個物體模型的三維點云數據,其中包括3 991個測試樣本和908個訓練樣本,對于每個模型的點云都將采樣出固定的1 024個點。ModelNet40含有12 311個物體模型的三維點云數據,其中包括9 843 個訓練樣本和2 468個測試樣本,同樣對每個模型的點云都采樣出固定的1 024個點。這里面的每個點都只包含了三維坐標。
本文延續了SGAS的搜索階段的思路,即首先在小型數據集ModelNet10中搜索出一個包含正常單元和下采樣單元的小型神經網絡。然后采用增加通道數量和疊加多個單元的方式得到一個大型神經網絡,作為面向大型數據集ModelNet40的模型。
4.1.2 參數設置
一個小型的神經網絡有4個單元疊加而成,其中會在第1/3和2/3層的位置(即第1和第3層)使用下采樣單元。正常單元中的點卷積核不會進行下采樣計算,而下采樣單元中的點卷積核則會進行下采樣計算,經過下采樣步驟之后,點數量減少至Nl,其中Nl=Nl-1/4,并且每個點的特征通道數將擴展成2 倍。這樣設計的小型的神經網絡相當于有4個層,而且第一層的特征通道數設定為32。
首先用ModelNet10小型數據集對這個小型神經網絡進行訓練。采用16 的批大小(batch size)訓練40 遍(epochs),采用隨機梯度下降(SGD)優化器來優化模型的權重W。采用Adam 優化器來優化網絡參數A,A={α(i,j)}。需要注意的是對于SGAS搜索算法,本文只采用了第一種準則(Criterion 1)來選擇操作o(i,j),對于DARTS 搜索算法則延續文獻[16]中的標準。本文的全部實驗都在一個有11 GB顯存的NVIDIA GTX 1080Ti顯卡上進行。
4.1.3 實驗結果
對于每一個搜索算法,都完成了10個獨立的搜索過程,得到10個不同的小型神經網絡,然后分別對小型神經網絡中的單元進行疊加,得到10個大型神經網絡,其中每個大型神經網絡的單元數都由4個正常單元和2個下采樣單元組成,并且第一層的特征通道數設定為48。批大小設定為16,并使用Adam 優化器訓練80 epochs,且初始學習率為0.001,權值衰減(weight decay)為1×10-4。10 個大型神經網絡在ModelNet10 數據集上的平均精度、最高精度以及與其他方法對比如表1 所示。相比一些經典的人工設計神經網絡,本文提出的方法在這個小型數據集上有領先的準確率,而且采用SGAS 搜索算法在本文提出的搜索空間中搜索效果更好,相比用DARTS搜索算法的準確率提升了約0.6個百分點。

表1 分類任務數據集ModelNet10上的模型結果對比Table 1 Comparison of model results on classification task ModelNet10 dataset
4.2.1 參數設置
這里只選擇前面10個大型神經網絡中最高精度的3個,并重新進行訓練。批大小設定為16,使用Adam優化器訓練150 epochs,且初始學習率為0.001,權值衰減(weight decay)為1×10-4。
4.2.2 實驗結果
訓練結果對比如表2所示,其中列出了4.2.1小節中選定的3 個大型神經網絡在ModelNet40 數據集的測試樣本集上的最高準確率和平均準確率,可以看到本文提出的基于SGAS搜索算法或者基于DARTS搜索算法都比其他一些人工設計的神經網絡有更高的精度,說明本文提出的基于點卷積的搜索空間有一定的效果。同時,這些表現良好的大型神經網絡都只用了0.18~0.20 個GPU-day(約4 h)即完成了神經網絡構建的過程,相比人工設計和微調神經網絡的方式,大幅減少了人力和時間成本。

表2 分類任務數據集ModelNet40上的模型結果對比Table 2 Comparison of model results on classification task ModelNet40 dataset
采用SGAS 搜索算法在本文提出的基于點卷積的搜索空間進行搜索,相比基于圖卷積的搜索空間(SGAS原文方法),其搜索耗時減少0.01個GPU-day(約0.24 h),搜索得到的網絡可學習參數數量減少約70%,但準確率相比略低,可能的原因是本文使用的一些超參數(比如近鄰點數量K、疊加的單元數量等)沒有做詳細的優化挑選。
本文提出了一種基于點卷積的搜索空間,可以采用任意基于可微分的搜索算法對其進行神經網絡架構搜索,且采用不同的搜索算法得到的神經網絡通常具有不同的收斂性。如圖6和圖7所展示的分別是采用兩種搜索算法在ModelNet10和ModelNet40數據集上的訓練驗證曲線。從圖6(b)和圖7(b)可以看出,采用SGAS搜索算法得到的神經網絡在兩個數據集的驗證集上均獲得較低的誤差,而且通過圖6 和圖7 可看出SGAS 得到的神經網絡具有更快的收斂速度,即誤差更早地降至最低水平。這是因為DARTS比較容易搜索出有較差表征能力的網絡結構,而SGAS中以貪婪的方式逐步確定每個候選操作的方案則可以改善這種情況,而且根據在實驗中的觀察發現,采用SGAS得到的神經網絡通常有更多的參數量,由于較復雜的網絡結構通常有更好的泛化能力,所以采用SGAS得到的神經網絡會有更高的準確率。另外,采用這兩種搜索算法得到的神經網絡都可以較好地收斂,表明本文提出的搜索空間具有一定的可行性。

圖6 在ModelNet10數據集上的訓練和驗證誤差Fig.6 Train and valid loss on ModelNet10 dataset

圖7 在ModelNet40數據集上的訓練和驗證誤差Fig.7 Train and valid loss on ModelNet40 dataset
4.3.1 分析不同單元數和特征通道數的影響
由于構成一個神經網絡的單元(cell)數和第一層特征通道數是人工設定的,為了觀察這個設定對實驗結果的影響,本文針對這兩個超參數進行了消融實驗。即是在搜索階段,使用不同的單元數和第一層特征通道數組成小型神經網絡,并使用SGAS搜索算法進行搜索。如表3 所示的是采用不同的單元數和第一層特征通道數進行神經網絡搜索,最終得到的神經網絡在Model-Net40數據集上的預測精度。可以看到隨著單元數和通道數增加,搜索耗時也會隨之增加,而且通道數對搜索耗時有更大的影響。其次,采用更多的單元和更多的特征通道數,搜索得到的神經網絡具有更好的準確率,但需要留意的是,當通道數達到64時,準確率提升相比通道數為32 時變化不大,這表明小型神經網絡的最優通道數是32。

表3 由不同單元數和特征通道數搜索得到的神經網絡對比Table 3 Comparison of neural networks searched by different number of cells and feature channels
4.3.2 不同的下采樣方法效果對比
對于下采樣方法,本文采用了最遠點采樣(FPS)和隨機采樣(RPS)兩種,為了對比這兩種下采樣方法對模型的影響,在本實驗中分別采用FPS和RPS組合成兩種搜索空間,然后分別在不同點云數量的數據集中進行神經網絡架構搜索,其他實驗設定與4.1節和4.2節中的一致。最后驗證搜索得到的神經網絡性能,并對比其推斷時間。
性能對比結果如圖8 所示,在1 024 個點數量的點云數據中,采用RPS 方式得到的神經網絡準確率為91.9%,而采用FPS 方式的準確率相比略高,為92.4%。隨著點數量減少,采用RPS方式得到的神經網絡準確率下降幅度不斷增大,而采用FPS方式的準確率則是平穩下降。這是因為采用RPS 方式得到的點云很容易丟失幾何信息,下采樣率越大,對準確率影響也會不斷加大。而經過FPS 得到的下采樣點云仍能保留較準確的幾何信息,采用這種下采樣點云作為查詢點(query),使得本文3.2節節中的注意力模塊能更好地計算出原有點云中關鍵點的位置,從而更好地融合多尺度點云信息,提高預測精度。

圖8 采用RPS和FPS搜索到的神經網絡性能對比Fig.8 Comparison of networks performance searched with RPS and FPS
推斷時間對比如圖9所示,相比采用RPS下采樣的方式,采用FPS 的神經網絡單個樣本的推斷時間多了4 ms,隨著點數量減少,采用FPS 和RPS 兩種方式之間的推斷時間沒有拉開較大差距,這是因為在整個神經網絡中下采樣的計算量占比不大,所以這兩種方式沒有表現出明顯差距。

圖9 采用RPS和FPS搜索到的神經網絡推斷時間對比Fig.9 Comparison of networks inference time searched with RPS and FPS
4.3.3 基于注意力機制的多尺度融合模塊對比
為了讓搜索單元能更好地融合兩個不同尺度的輸入點云數據,提出了一種基于注意力機制的多尺度融合模塊。為了對比這個模塊帶來的性能提升,本文同樣在ModelNet40 數據集上進行了消融實驗,其中的基線模型采用類似于面向圖像的搜索單元(圖3),其結果如表4所示,相對于基線模型,加入了多尺度融合模塊之后,可學習參數量增加了0.22×106,推斷時間增加3 ms,準確率提升了1.1 個百分點,由此證明這個模塊能帶來一定的精度提升,同時不會增加過多的計算消耗。因為在一個神經網絡中,只有下采樣單元后面的一個普通單元中會采用多尺度融合模塊,而整個神經網絡只包含了兩個下采樣單元,所以多尺度融合模塊也只計算了兩次。另外,在多尺度融合模塊中只有6個1×1 卷積具有可學習參數,總參數量與一個shell點卷積接近,所以加入多尺度融合模塊所增加的計算消耗十分有限。

表4 基于注意力機制的多尺度融合模塊的對比結果Table 4 Comparison results of attention mechanism-based multi-scale fusion module
4.3.4 采用不同候選操作的對比
本文采用了shell點卷積核和MLP點卷積核作為主要的特征提取器加入到候選操作組合中,為了對比這兩個候選操作帶來的性能提升,本文采用不同的候選操作組合重新進行網絡架構搜索和訓練驗證過程,結果如表5 所示,其中基線模型是由恒同連接(skip-connect),空置操作(zero),1×1 卷積作為候選操作搜索得到的神經網絡。可以看到基線模型的準確率很低,因為只有1×1卷積導致模型缺乏足夠的特征提取能力。單獨加入MLP點卷積核或者shell點卷積核都能帶來一定的準確率提升,同時也能看出MLP 點卷積核的可學習參數量比shell點卷積核少。另外值得注意的是,單獨加入shell點卷積核的可學習參數量比同時加入MLP點卷積核和shell 點卷積核的多,但準確率卻有所下降,這是因為在神經網絡中加入MLP點卷積核來替換一部分shell點卷積核,可以在減少神經網絡參數量的同時增加網絡結構的復雜度,一定程度上緩解過擬合的問題,從而提升準確率,這也證明了同時采用shell 點卷積核和MLP 點卷積核作為候選操作的必要性。

表5 由不同候選操作組合搜索得到的神經網絡對比Table 5 Comparison of neural networks searched by different combinations of candidate operations
4.3.5 搜索結果可視化
經過搜索得到的神經網絡由多個搜索單元疊加而成,其中搜索得到效果最優的搜索單元中的候選操作組合如圖10 和圖11 所示,需要注意的是因為基于注意力機制的多尺度融合模塊是固定的結構,所以圖中沒有畫出這一部分。mlpconv_k32 代表近鄰點設置為32 的MLP 點卷積,shellconv_s2 代表近鄰點為32 且含有2 層的shell 點卷積,shellconv_s4 代表近鄰點為64 且含有4層的shell 點卷積,skip_connect 代表恒同連接。可以看到在下采樣搜索單元中,shell 點卷積的數量占比較多,這是因為下采樣過程通常需要更大的感受野,而shell點卷積相比MLP 點卷積擁有更大的感受野。另外,在一個神經網絡中正常搜索單元數量更多,所以在正常搜索單元中具有更多的恒同連接(skip-connect)和1×1 卷積,這樣能夠在維持一定學習能力的同時減少神經網絡參數量。

圖1 DARTS搜索算法流程Fig.1 Process of DARTS search algorithm

圖10 正常搜索單元中的候選操作Fig.10 Candidate operations in normal search cell

圖11 下采樣搜索單元中的候選操作Fig.11 Candidate operations in subsample search cell
本文提出了一種面向三維點云的基于點卷積的搜索空間,組成該搜索空間的搜索單元中,包含了由MLP點卷積核和shell點卷積核構成的候選操作和一種基于注意力機制的多尺度點云融合模塊。使用任意基于DARTS的搜索算法對這個搜索空間進行神經網絡架構搜索,即可得到能直接處理原始三維點云的點卷積神經網絡。本文借助了基于DARTS的搜索算法SGAS在一個小型三維點云數據集ModelNet10上進行神經網絡架構搜索,最終得到基于點卷積的神經網絡可以在大型三維點云數據集ModelNet40上獲得比較領先的精度。同時在消融實驗中證明了提出的多尺度融合模塊能在基線模型上帶來一定的精度提升。同樣采用SGAS 搜索算法,相比在圖卷積搜索空間中搜索神經網絡的方式,在本文提出的點卷積搜索空間中搜索神經網絡的方式能在維持相近精度的同時有更快的網絡搜索速度,且搜索出的神經網絡具有更少的可學習參數。由于整個搜索過程是全自動的,相比于人工設計神經網絡的方法,本文提出的方法可以在很少的人工介入情況下,自動搜索出性能優秀的神經網絡。關于后續的工作,計劃是設計出更多的具有高計算效率的三維點云特征提取器,并作為候選操作加入到搜索空間中,以求搜索出的神經網絡具有更高的特征提取能力,以及針對點云數據的特性繼續對搜索空間進行優化。