周 鵬,楊 軍
(1.蘭州交通大學(xué) 電子與信息工程學(xué)院,甘肅 蘭州 730070;2.蘭州交通大學(xué) 測繪與地理信息學(xué)院,甘肅 蘭州 730070)
隨著激光雷達(dá)、RGB-D深度相機(jī)等三維掃描設(shè)備的廣泛應(yīng)用,點云數(shù)據(jù)獲取更加便捷,針對點云數(shù)據(jù)的高效識別和分類已成為計算機(jī)視覺領(lǐng)域亟待解決的問題。以卷積神經(jīng)網(wǎng)絡(luò)為代表的深度學(xué)習(xí)模型在二維圖像識別領(lǐng)域取得了巨大的成功。然而,由于點云模型具有無序性、稀疏性、數(shù)據(jù)有限性等特點,使得采用深度卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行處理存在一定難度。一些研究將其轉(zhuǎn)換為體素[1-2]后使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行處理,但轉(zhuǎn)換過程會帶來量化損失、局部特征信息丟失、計算效率低等問題。QI等[3]提出了可直接處理無序點云的PointNet模型,其采用多層感知機(jī)提取每個點的高維特征,在特征空間維度上使用最大池化進(jìn)行特征融合,進(jìn)而提取出點云的全局特征描述符用于三維模型分類。然而,PointNet僅關(guān)注點的全局特征,缺乏捕捉局部細(xì)粒度特征的能力。QI等[4]改進(jìn)了PointNet,提出的PointNet++模型,在局部點云范圍內(nèi)迭代使用PointNet提取多尺度特征。該網(wǎng)絡(luò)雖然考慮到點云的局部區(qū)域特征,但沒有考慮到點與點的位置關(guān)系,缺乏捕捉各個點之間幾何特征的能力,且PointNet++計算復(fù)雜度高,耗費更多的時間和硬件資源,限制了其在輕量化網(wǎng)絡(luò)環(huán)境中的應(yīng)用。
5G時代的來臨和移動互聯(lián)網(wǎng)的快速發(fā)展,為便攜設(shè)備提供了更為廣闊的應(yīng)用領(lǐng)域。對基于移動設(shè)備的三維模型識別與分類的應(yīng)用,不僅要求構(gòu)建的輕量級神經(jīng)網(wǎng)絡(luò)具有架構(gòu)精簡、訓(xùn)練參數(shù)少、運行速度快等特點,而且要確保具有良好的識別分類性能。為提高小型嵌入式設(shè)備的處理能力,需要同時滿足存儲空間、功耗和運算速度的要求,設(shè)計適用于便攜式設(shè)備的輕量化深度神經(jīng)網(wǎng)絡(luò)架構(gòu)是解決該問題的關(guān)鍵,也逐步得到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注[5]。閆林等[6]提出一種采用雙路神經(jīng)網(wǎng)絡(luò)的輕量級模型,避免了多尺度學(xué)習(xí)引入的復(fù)雜結(jié)構(gòu)和計算,挖掘了全局特征和局部細(xì)粒度特征,但該模型通過手動設(shè)置近鄰點參數(shù),限制了算法對不同數(shù)據(jù)的適配能力。白靜等[7]提出面向點云模型分類的深度網(wǎng)絡(luò)原型,通過控制變量法完成網(wǎng)絡(luò)參數(shù)設(shè)置及優(yōu)化,形成結(jié)構(gòu)緊湊、參數(shù)合理的網(wǎng)絡(luò)模型,但其無法很好地捕捉由度量空間引起的局部結(jié)構(gòu)問題,因而限制了該網(wǎng)絡(luò)對精細(xì)場景的識別和對復(fù)雜場景的泛化能力。文獻(xiàn)[8]采用全密集連接方法將網(wǎng)絡(luò)的所有卷積層互連,提高了特征的利用率,減少了每一層的參數(shù)大小,該網(wǎng)絡(luò)對大目標(biāo)點云分類效果較好,但對小目標(biāo)點云容易造成誤分類。文獻(xiàn)[9]提出一種無反饋的點跳躍框架PointHop,通過描述符來表示點及點上單跳鄰居之間的關(guān)系。為控制與點相關(guān)聯(lián)的屬性向量維度過快增長,引入Saab Transform[10]對每個PointHop單元的屬性降維。該架構(gòu)雖然在訓(xùn)練時間上大幅縮減,但網(wǎng)絡(luò)模型參數(shù)數(shù)量過多,易導(dǎo)致模型復(fù)雜度增加。文獻(xiàn)[11]提出了一種樹形結(jié)構(gòu)的無監(jiān)督的特征學(xué)習(xí)模型PointHop++,每個葉子節(jié)點對應(yīng)一個標(biāo)量特征,并根據(jù)特征的判別能力,引入交叉熵準(zhǔn)則對特征進(jìn)行自動排序,但該網(wǎng)絡(luò)將點云數(shù)據(jù)一次性輸入訓(xùn)練,導(dǎo)致內(nèi)存占用過大,訓(xùn)練時間過長,難以實現(xiàn)輕量化。文獻(xiàn)[12]通過度量相鄰點之間的距離關(guān)系,采用邊緣卷積(Edge Convolution,EdgeConv)操作,一定程度上提高了網(wǎng)絡(luò)識別性能,但它僅考慮一個差值特征,忽略了鄰居點與中心點的方向問題,無法捕捉更抽象的深層語義特征信息。
鑒此,筆者提出基于索引邊緣幾何卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行點云分類,該網(wǎng)絡(luò)在具有良好分類準(zhǔn)確率的同時實現(xiàn)了輕量化。主要創(chuàng)新點和貢獻(xiàn)有:
(1) 在PointNet網(wǎng)絡(luò)的基礎(chǔ)上,設(shè)計輕量化網(wǎng)絡(luò)結(jié)構(gòu)原型。對網(wǎng)絡(luò)原型中“非敏感層”結(jié)構(gòu)進(jìn)行裁剪,設(shè)置末尾卷積層的通道數(shù)為輸入層采樣點個數(shù),達(dá)到與復(fù)雜深度網(wǎng)絡(luò)模型接近的匹配準(zhǔn)確率。
(2) 考慮到不同特征空間之間的差異,在每一層定義新的局部區(qū)域。進(jìn)行邊卷積之前,先根據(jù)k近鄰確定新的局部區(qū)域,再加入相鄰點之間的向量方向,使局部信息損失進(jìn)一步降低。
(3) 構(gòu)建索引邊緣幾何卷積神經(jīng)網(wǎng)絡(luò),將不同卷積層的輸出特征映射并進(jìn)行索引跳躍連接,有效避免了深度神經(jīng)網(wǎng)絡(luò)的梯度消失和梯度爆炸的問題,得到信息豐富的邊緣向量。
傳統(tǒng)的點云特征提取方式,通常是為了解決特定領(lǐng)域的問題而設(shè)計的,很難推廣到新的特征提取任務(wù)?;谏疃葘W(xué)習(xí)的點云特征提取可分為基于點的提取方法和基于樹的提取方法[13]。 前者直接將原始點云作為深度學(xué)習(xí)的輸入;后者首先使用一個k維樹(kd-tree)結(jié)構(gòu)對點云進(jìn)行規(guī)則化處理,再將處理后的數(shù)據(jù)提供給深度學(xué)習(xí)模型。Geo-CNN[14]對每個點及其局部鄰域應(yīng)用一種稱為“GeoConv”的類卷積運算,在提取中心點與相鄰點的邊緣特征時,通過逐步擴(kuò)大卷積的接受域,以分層提取特征并保持沿層次的點的幾何結(jié)構(gòu)??紤]到點間的方向信息,計算點投影到極坐標(biāo)的值,再與兩點之間的距離進(jìn)行加權(quán)求和,解決了局部特征提取不全的問題。
基于邊緣卷積的特征提取使用k近鄰的方式定義離某點最近的k個點為鄰近區(qū)域。首先提取中心點與鄰近點之間的邊特征,然后在邊特征上進(jìn)行卷積操作。距離中心點Pxi最近的鄰域點集為{j:(i,j)∈ε},與之相關(guān)的有向邊集合為 {(i,ji1),…,(i,jik)}。邊緣特征定義為eij=hθ(Pxi,Pxj),其中,hθ是使用可學(xué)習(xí)參數(shù)θ構(gòu)成的非線性函數(shù),在hθ操作上添加一個非對稱聚合操作Ψ,得到邊緣卷積第i個頂點的特征輸出:
(1)
將中心點的特征、中心點與鄰域點的特征差串聯(lián)后輸入多層感知器(Multi Layer Perceptron,MLP),使邊特征融合點之間的局部關(guān)系和點的全局信息,即hθ(Pxi,Pxj)=hθ(Pxi,Pxj-Pxi)。在得到n個邊特征之后,進(jìn)行最大池化得到該局部區(qū)域的單一特征,通過這種方式疊加多層卷積,逐層提取、整合局部信息。
邊緣卷積層局部鄰域圖的構(gòu)造由多層感知機(jī)實現(xiàn)。對相鄰點的邊緣逐層卷積時,每一層都會輸出新的點云圖結(jié)構(gòu)和特征空間,得到新的局部區(qū)域。引入點間差的方法,考慮了點之間的幾何相關(guān)信息,解決了PointNet和PointNet++架構(gòu)中局部特征提取不全的問題,然而存在忽略點的方向信息的問題,所以筆者提出索引邊緣幾何卷積神經(jīng)網(wǎng)絡(luò)(Index Edge Geometric Convolutional Neural Networks,IEGCNN)。
圖1 點云的極坐標(biāo)表示
索引邊緣幾何卷積神經(jīng)網(wǎng)絡(luò)IEGCNN在邊緣卷積網(wǎng)絡(luò)中加入點的方向信息,用極坐標(biāo)系對三維點云進(jìn)行建模,將邊緣網(wǎng)絡(luò)架構(gòu)中點與點之間的關(guān)系投影到三維坐標(biāo)系。計算極坐標(biāo)投影到不同坐標(biāo)軸的值,并與兩點之間的距離進(jìn)行加權(quán)求和,得到當(dāng)前點的特征值。
如圖1所示,在極坐標(biāo)系中設(shè)Pxj的坐標(biāo)為(x,y,z),對點Pxj進(jìn)行三維坐標(biāo)投影運算,得到其所在卦限的投影長度和夾角:
(2)
其中,Plj表示向量(x,y,z)的模長度,Pd表示投影長度,Pθ表示夾角。
假設(shè)一個F維點云含n個點{Px1,Px2,…,Pxn}∈RF,在F維點云中,n表示點的個數(shù),F(xiàn)表示通道數(shù)。IEGCNN卷積層的輸入為n×?in,輸出為n×?out,?in和?out分別表示每一個點特征的輸入和輸出的維度。對于每個點,根據(jù)k近鄰(k-Nearest Neighbor,kNN)算法和網(wǎng)絡(luò)超參r構(gòu)造局部球形鄰域(r表示球形鄰域半徑式(3)),可構(gòu)造以Pxi為中心點的球形鄰域N(Pxi),得到若干個鄰域點后計算出中心點Pxi的特征輸出Pxi′(式(1)),再計算中心點的特征向量(式(4)),其中,權(quán)值矩陣MF的維度為?in×?out。
N(Pxi)={Pxj|‖Pxj-Pxi‖≤r} ,
(3)
(4)
其中,f(pi| (l))表示pi點在l層的特征向量,MF表示用來提取中心點特征的權(quán)值矩陣,w(Pxi,Pxj,r)表示中心點Pxi和不同的鄰域點Pxj之間的距離加權(quán),其隨‖Pxj-Pxi‖單調(diào)遞減。隨著半徑r的增大,球形鄰域的感受野逐漸增大,與中心點的權(quán)重函數(shù)w(·)的差異也會減小,其中w(Pxi,Pxj,r)=(r-‖Pxj-Pxi‖)2。h(Pxi,Pxj)表示邊特征,是該網(wǎng)絡(luò)架構(gòu)中最重要特征的提取部分。在3D歐式空間中,向量可以表示為3個正交基的投影,投影的模長表示在對應(yīng)方向上的“能量”,因而可將邊特征投影到3個正交基上,使用不同的權(quán)值矩陣提取各個方向的邊特征,再將3個方向的特征重新聚合以維持歐式幾何結(jié)構(gòu)?;跇O坐標(biāo)的邊特征計算公式如下:
(5)
其中,D表示Pxi與Pxj所在的象限的三個正交基的集合;Md表示與方向相關(guān)的權(quán)值矩陣,用來提取不同方向的邊緣特征;cos2(Pθ)為系數(shù),用以保證特征聚合時其和為1。
根據(jù)網(wǎng)絡(luò)輕量化的原則,在PointNet的基礎(chǔ)上,設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)原型如圖2所示。
通過簡化網(wǎng)絡(luò)結(jié)構(gòu),使網(wǎng)絡(luò)僅包含基本的卷積層、池化層和全連接層,實現(xiàn)網(wǎng)絡(luò)輕量化。為提取到點云的全局特征,采用最大池化層進(jìn)行特征提取,設(shè)置卷積核大小為1×1。由于全連接層的每一個點都與上一層的所有點相連,綜合了前幾層的特征,因而全連接層的參數(shù)個數(shù)在整個網(wǎng)絡(luò)架構(gòu)中最多,對全連接層參數(shù)個數(shù)和節(jié)點數(shù)的精簡是實現(xiàn)網(wǎng)絡(luò)輕量化的重要步驟。在網(wǎng)絡(luò)優(yōu)化過程中,為探究某一層的參數(shù)對網(wǎng)絡(luò)性能的影響,可保持其他層的參數(shù)與網(wǎng)絡(luò)原型一致。
本實驗以ModelNet40為基礎(chǔ)數(shù)據(jù)集,通過以下流程確定網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)。
圖2 網(wǎng)絡(luò)結(jié)構(gòu)原型
為精簡網(wǎng)絡(luò)結(jié)構(gòu),減少網(wǎng)絡(luò)參數(shù),去除了空間轉(zhuǎn)換網(wǎng)絡(luò)(STN)。設(shè)定R、T、S、K、M和P分別為64、64、128、1 024、512和256,得到原型實驗結(jié)果。首先固定全連接層節(jié)點參數(shù),調(diào)整T,S,K,M及P的參數(shù)值進(jìn)行測試,實驗共分為4組(表1)。第1組G1用來測試網(wǎng)絡(luò)敏感層與非敏感層,通過逐步降低T和S的取值,分析實驗結(jié)果的準(zhǔn)確率,發(fā)現(xiàn)T和S的取值對網(wǎng)絡(luò)整體性能影響很小,如圖3所示。
由式(6)得出,IEGCNN網(wǎng)絡(luò)通過多個卷積層計算h的值,τ的值由單個特征融合及最大池化操作計算,f的大小則與最大池化層和全連接層數(shù)量相關(guān)。通過逐層增加卷積層通道數(shù)實現(xiàn)對特征的深層提取。首層通道數(shù)的大小決定了整個網(wǎng)絡(luò)模型通道數(shù)的設(shè)置。這意味著首層卷積層、池化層和全連接層是網(wǎng)絡(luò)模型中的敏感層,直接影響著模型的整體性能。Block 3和Block 4在整個模型中的位置不與輸入層和最大池化層直接相連,其改變對網(wǎng)絡(luò)的整體性能影響不大,因而推斷其為非敏感層。實驗結(jié)果也驗證了推論的合理性。
經(jīng)過測試,精簡模型能達(dá)到與網(wǎng)絡(luò)原型相當(dāng)?shù)姆诸愋Ч?,在ModelNet40數(shù)據(jù)集上,訓(xùn)練42 min(0.7 h)時,準(zhǔn)確率已趨于穩(wěn)定,如圖4所示。
圖3 網(wǎng)絡(luò)原型中的非敏感層測試圖
圖5 全連接層數(shù)量與分類準(zhǔn)確率關(guān)系
全連接層在整個網(wǎng)絡(luò)中包含的參數(shù)最多,耗費更多的GPU資源。在卷積層確定后,通過調(diào)整全連接層個數(shù)和參數(shù)以確定最佳結(jié)構(gòu)。首先確定全連接層的個數(shù),通過對表1中G2組No.4與No.5、G1組No.3與G3組No.7進(jìn)行分析,當(dāng)全連接架構(gòu)層數(shù)取1層時的分類準(zhǔn)確率高于取2層時。圖5為全連接架構(gòu)分別為2層和1層的分類準(zhǔn)確率變化曲線,因而確定全連接層為1層。其次,確定全連接層取不同參數(shù)時網(wǎng)絡(luò)在訓(xùn)練集上的分類準(zhǔn)確率。
由表1中第4組數(shù)據(jù)G4可以看出,固定其他參數(shù),K過小,網(wǎng)絡(luò)不能有效地擬合訓(xùn)練數(shù)據(jù);當(dāng)通道數(shù)達(dá)到固定值后,再增加通道數(shù)并不能帶來新的性能提升,反而會造成網(wǎng)絡(luò)參數(shù)量的快速增加,當(dāng)K的取值與采樣點的個數(shù)保持一致時分類效果最佳,故設(shè)置K為1 024,如圖6所示。
表1 參數(shù)取值與分類結(jié)果(ModelNet40數(shù)據(jù)集)
圖6 參數(shù)K與分類準(zhǔn)確率關(guān)系
該模型輸入的點云為歐氏空間中點的子集,采用多層卷積對點云特征提取的過程,就是逐層抽象,不斷精煉知識的過程。通道數(shù)可以讓每一層學(xué)習(xí)到更加豐富的特征,其帶來的計算量是呈平方數(shù)增長的。對于任意一個模型來講,淺層的通道數(shù)是一個非常敏感的系數(shù),涉及到后續(xù)卷積層通道數(shù)的設(shè)置。首層通道數(shù)如果設(shè)置過小,特征的捕獲能力將大幅下降,單純增加網(wǎng)絡(luò)深度會導(dǎo)致梯度彌散或梯度爆炸,而通道數(shù)的增加會帶來計算量呈平方數(shù)的增長。
對第1層卷積層的通道數(shù)進(jìn)行實驗后發(fā)現(xiàn),當(dāng)通道數(shù)取值為64時效果最佳,取值32時分類性能較弱,取值128和256時分類性能不再提升。
第2層卷積層位于兩個卷積層之間,不與輸入層及池化層直接連接。為使點云特征維度逐步增大,架構(gòu)中各個卷積層通道數(shù)采取逐步增大的方式進(jìn)行,第2層的通道數(shù)設(shè)置應(yīng)大于等于第一層通道數(shù),小于等于第3層通道數(shù)。在該網(wǎng)絡(luò)框架中,通過網(wǎng)絡(luò)架構(gòu)精簡操作,去掉了第3、4層卷積層,第2層直接與第五層 Block 5 卷積層相連,因而第2層的通道數(shù)應(yīng)設(shè)置為64與1 024之間。通過實驗數(shù)據(jù)分析,準(zhǔn)確率Accuracy的值隨R的變化呈現(xiàn)出正態(tài)分布規(guī)律,當(dāng)R取值為128時,Accuracy達(dá)到最大值,這也符合點云特征提取過程中特征維度遞增的規(guī)律。從表1中G3組數(shù)據(jù)No.6至No.9,G4組數(shù)據(jù)No.13可以得出,當(dāng)R取128時,分類準(zhǔn)確率最高,如圖7所示。
圖7 參數(shù)R與分類準(zhǔn)確率關(guān)系
該網(wǎng)絡(luò)架構(gòu)以模塊化方式處理點云數(shù)據(jù),根據(jù)不同塊之間的幾何位置關(guān)系將特征進(jìn)行合并及傳遞。本文提出一種索引跳躍鏈接(Index Hop Link,IHL)來記錄各個層的位置信息,根據(jù)索引信息將不同層的輸出特征映射并進(jìn)行跳躍連接。為使網(wǎng)絡(luò)對點云輸入數(shù)據(jù)保證排列不變性,采用對稱函數(shù)方法,具體定義為
f(Px1,Px2,…,Pxn)=μ·λ·d·τ(h1(G1),h2(G2),…,hn(Gn),…h(huán)N(GN)) ,
(6)
其中,Pxn表示原始輸入的點云,μ表示對特征通道融合,λ表示最大池化操作,d表示進(jìn)行dropout操作,τ表示全連接操作;Gn表示第n層的特征輸出,GN表示網(wǎng)絡(luò)特征提取層的最后一層,Gn與GN在模型大小和排序方式上是不同的,通過hn進(jìn)行索引、排序以及池化操作。
網(wǎng)絡(luò)模型采用交叉熵(CrossEntropy Loss)計算損失函數(shù),它主要用來度量同一個隨機(jī)變量中兩個不同概率分布間的差異性,即真實概率分布與預(yù)測概率分布之間的差異。交叉熵值越小,說明模型的預(yù)測效果越好。交叉熵H(p,q)定義如下:
(7)
其中,p(x)表示樣本的真實分布;q(x)表示模型的預(yù)測分布,可以通過反復(fù)訓(xùn)練q(x),使得q(x)的分布逼近真實分布p(x)。
采用Adam法(Adaptive moment estimation)進(jìn)行優(yōu)化。該方法對每個參數(shù)梯度的一階矩陣估計和二階矩陣估計動態(tài)調(diào)整每個參數(shù)的學(xué)習(xí)率,利用動量和自適應(yīng)學(xué)習(xí)率來加快收斂速度;經(jīng)過偏置校正后,每一次迭代學(xué)習(xí)率都有確定范圍,模型參數(shù)規(guī)模穩(wěn)定。
綜上所述,筆者構(gòu)造的索引邊緣幾何卷積神經(jīng)網(wǎng)絡(luò)IEGCNN模型結(jié)構(gòu)如圖8(a)所示,共包含5層。
(1) 輸入層: 網(wǎng)絡(luò)輸入數(shù)據(jù)為包含有n個點的點云數(shù)據(jù),表示為一個N×3的矩陣。
(2) 卷積層:包括Block 1、Block 2和Block 3,共3層。第1層為(64,3,1),其中,64表示通道數(shù),卷積核尺寸為1×3,步長為1×1;第2層為(128,1,1);第3層為(1 024,1,1)。
(3) 池化層:位于第三層卷積之后,采用最大池化,得到一個1×1 024維的張量。
(4) 全連接層:以1×1 024維的張量為輸入,通過全連接層得到1×256維度張量輸出,為防止過擬合,在該池化層后加入DropOut層并設(shè)置大小為0.5。
(5) 輸出層:k維的輸出層和損失層(k表示輸出類的個數(shù)),將模型分類結(jié)果進(jìn)行輸出。
由于點云數(shù)據(jù)中每個點均由三維坐標(biāo)(x,y,z)構(gòu)成,相鄰點之間的關(guān)系是隨機(jī)的,沒有確切的關(guān)聯(lián),因此,將步長設(shè)置為1×1以保持點間關(guān)系的獨立性。
(a) 模型結(jié)構(gòu)
(b) 向量分解
圖8(b)描述了在三維坐標(biāo)系中通過向量分解對點之間的幾何結(jié)構(gòu)進(jìn)行建模的過程。首先將邊緣特征沿3個正交方向分解,采用與方向相關(guān)的權(quán)重來提取方向信息,然后根據(jù)向量的方向?qū)ζ溥M(jìn)行聚合,構(gòu)造點Pxi和點Pxj之間的邊緣特征,再通過聚合函數(shù)f(p| (l))計算p點在l層的特征向量。
根據(jù)模型結(jié)構(gòu),計算IEGCNN網(wǎng)絡(luò)的參數(shù)量,如表2所示。其中,n表示三維點的個數(shù),k表示模型分類的個數(shù)。包括偏置項在內(nèi),共有(404 096+257k)個參數(shù),在ModelNet40上約為0.61 M,在ModelNet10上約為0.41 M,其參數(shù)的數(shù)量和點云的輸入規(guī)模n沒有直接關(guān)系。該網(wǎng)絡(luò)具有較好的魯棒性,能適應(yīng)不同規(guī)模的點云數(shù)據(jù)。此外,該模型的訓(xùn)練時間與輸入點云的規(guī)模為線性關(guān)系,區(qū)別于MVCNN[15]網(wǎng)絡(luò)對應(yīng)的二次方增長和體素方法[17]隨尺寸的三次方增長。
表2 IEGCNN參數(shù)量計算
通過索引特征傳遞,使當(dāng)前索引從前一層的特性中提取新特性,結(jié)合前一層的特征計算邊緣,可以有效避免深度神經(jīng)網(wǎng)絡(luò)的梯度消失和梯度爆炸的問題,從而得到信息豐富的邊緣向量。
目前,處理點云的方法采用ModelNet40或ModelNet10數(shù)據(jù)集最為普遍。該模型直接處理點云數(shù)據(jù),對點云的采樣過程借鑒了PointNet,不同的是在特征提取過程中通過加入點的方向信息,引入索引邊緣卷積的方法,使特征提取更加充分。通過表1的多組實驗可以看出,所確定的模型參數(shù)在4組的實驗過程中均取得最佳表現(xiàn),在處理ModelNet點云過程中具有較好的普適性。該模型使用k近鄰方式采樣,模型參數(shù)在KITTI、SEMANTIC3D、D3DIS等實景數(shù)據(jù)集中普適性較弱;具體原因在結(jié)論部分進(jìn)行說明。
筆者選擇ModelNet作為分類實驗數(shù)據(jù)集。ModelNet是Princeton大學(xué)公開的三維模型分類標(biāo)準(zhǔn)數(shù)據(jù)集,共有662類12 715個分類模型,分為ModelNet10和ModelNet40兩類。ModelNet10包含10類共4 899個模型,其中3 991個訓(xùn)練樣本和908個測試樣本;ModelNet40包含40類共12 311個模型,其中9 843個用于訓(xùn)練模型,2 468個用于測試。使用該類劃分方式進(jìn)行測試的結(jié)果稱為實例準(zhǔn)確率。如果將每個類別測試目錄前20個模型作為測試集,訓(xùn)練目錄前80個作為訓(xùn)練集進(jìn)行劃分測試,則其測試結(jié)果稱之為類別準(zhǔn)確率。本實驗選取實例準(zhǔn)確率為測試結(jié)果。
本實驗的硬件環(huán)境為Intel Core i9-9900k CPU+GTX2080Ti (11GB顯存)GPU,軟件環(huán)境為Ubuntu18.04+CUDA 10.0.130+cuDNN7.4.2+Tensorflow1.13.2+Python2.7。實驗過程中,設(shè)置采樣點數(shù)為1 024,batch_size為16,learning_rate為0.001,momentum默認(rèn)值為0.9,decay_rate為0.7;為方便與其他網(wǎng)絡(luò)架構(gòu)進(jìn)行對比,設(shè)置最大迭代次數(shù)max_epoch為默認(rèn)的250次。
表3為不同模型分類方法的比較,下劃線“_”標(biāo)記數(shù)據(jù)的為參考文獻(xiàn)作者測試的分類結(jié)果,波浪線“~”表示近似值。文中方法在ModelNet40上取得了約92.78%的分類準(zhǔn)確率(表中用粗體字表示),在ModelNet10上的分類準(zhǔn)確率約為94.2%(表中用粗體字表示),參數(shù)個數(shù)為0.61M,在同等參數(shù)個數(shù)情況下,取得了最好的成績。高于所有的基于多視圖分類網(wǎng)絡(luò)和大部分基于體素和點云的分類網(wǎng)絡(luò)。以下對實驗結(jié)果進(jìn)行分析和討論:
1) 與基于多視圖融合網(wǎng)絡(luò)比較
基于多視圖融合的方法利用多個不同固定視角的投影將渲染圖輸入到卷積神經(jīng)網(wǎng)絡(luò)中,卷積神經(jīng)網(wǎng)絡(luò)從投影渲染圖中進(jìn)行單視角特征提取,輸入要求為連續(xù)模型。而文中的IEGCNN網(wǎng)絡(luò)模型以稀疏、無序的點云作為輸入,網(wǎng)絡(luò)模型更加輕量化,參數(shù)僅約占基于Multi-view的0.4%,在ModelNet40和ModelNet10上分類準(zhǔn)確率分別比Pairwise網(wǎng)絡(luò)提高了約2.08%和1.4%,這說明IEGCNN能很好地學(xué)習(xí)點云模型的本質(zhì)特征。
2) 與基于體素網(wǎng)絡(luò)比較
基于體素的網(wǎng)絡(luò)由于發(fā)揮了深度學(xué)習(xí)的優(yōu)勢,網(wǎng)絡(luò)層數(shù)可以搭建得更深,網(wǎng)絡(luò)結(jié)構(gòu)可以更加復(fù)雜,體素化實現(xiàn)了在三維模型上直接做卷積與池化操作,但是限于分辨率的問題,會丟失三維模型的局部細(xì)節(jié),卷積操作所消耗的時間資源更多。筆者提出的方法分類準(zhǔn)確率僅比眾多體素方法中的VRN Ensemble低,在ModelNet40和ModelNet10數(shù)據(jù)集上分類準(zhǔn)確率分別下降了約2.76%和2.94%。
VRN Ensemble訓(xùn)練基于體素的可變自動編碼器,該網(wǎng)絡(luò)在ResNet的基礎(chǔ)上進(jìn)行設(shè)計,深層的ResNet可以看做是不同深度的淺層神經(jīng)網(wǎng)絡(luò)的集成,ResNet通過跳躍連接,增強(qiáng)了梯度的流動?;隗w素的網(wǎng)絡(luò)充分發(fā)揮了深度學(xué)習(xí)的優(yōu)勢。該網(wǎng)絡(luò)層數(shù)深達(dá)45層,網(wǎng)絡(luò)架構(gòu)復(fù)雜,隨著深度的增加,網(wǎng)絡(luò)可以通過許多非線性映射和改進(jìn)的特征表示來更好地近似目標(biāo)函數(shù)。綜合以上原因,基于VRN Ensemble的網(wǎng)絡(luò)分類準(zhǔn)確率高于文中方法,但該網(wǎng)絡(luò)訓(xùn)練中需要對三維體素模型進(jìn)行編碼和解碼操作,訓(xùn)練時間最長,需要 6天。同時,基于體素的深度學(xué)習(xí)網(wǎng)絡(luò)均無法直接應(yīng)用于無序、稀疏的點云模型,需要繁雜的體素化操作。筆者設(shè)計的網(wǎng)絡(luò)模型僅包含3層卷積層和一個全連接層,可以快速地直接處理點云。網(wǎng)絡(luò)參數(shù)約占VRN Ensemble方法的0.7%。文中方法卷積層為3層,VRN架構(gòu)的卷積層為45層,在輕量級和實時性方面均占有優(yōu)勢。
3) 與PointNet的比較
筆者設(shè)計的網(wǎng)絡(luò)架構(gòu),網(wǎng)絡(luò)參數(shù)約占PointNet的1%。使用ModelNet40和ModelNet10數(shù)據(jù)集,分類準(zhǔn)確率分別提高了約3.58%和1.12%。IEGCNN比PointNet(Vanilla)的網(wǎng)絡(luò)參數(shù)約降低了0.19 M,但分類性能在ModelNet40和ModelNet10上分別提升了約5.58%和2.24%。實驗結(jié)果表明,本網(wǎng)絡(luò)架構(gòu)在以原始點云作為輸入的網(wǎng)絡(luò)中,能滿足分類準(zhǔn)確率和輕量化的需求。
4) 與LDGCNN和DGCNN的比較
IEGCNN相比DGCNN的分類準(zhǔn)確率提高了約0.58%,網(wǎng)絡(luò)參數(shù)約占DGCNN的30%。雖然在ModelNet40上分類準(zhǔn)確率比LDGCNN模型約低0.12%,但卷積層個數(shù)約占LDGCNN的60%,訓(xùn)練時間約為LDGCNN模型的1/3。所以,單純地增加通道數(shù)量和全連結(jié)層的個數(shù),并不一定能提高網(wǎng)絡(luò)架構(gòu)的整體性能。
5) 與3DmFV和Point2Sequences網(wǎng)絡(luò)的比較
3DmFV把費舍爾向量作為卷積神經(jīng)網(wǎng)絡(luò)的輸入,將點云體素化為標(biāo)準(zhǔn)的三維網(wǎng)格,解決了點云的無序性問題。由于費舍爾向量在計算的時候使用體素化網(wǎng)格,其計算量大,內(nèi)存消耗也大,通過人工特征提取的方式,會導(dǎo)致信息的損失。Point2Sequences是一種基于循環(huán)神經(jīng)網(wǎng)絡(luò)的模型,采用一種點云序列學(xué)習(xí)模型,通過捕獲點云局部區(qū)域內(nèi)不同區(qū)域之間的相關(guān)性,將所有局部區(qū)域的特征輸入到一個循環(huán)神經(jīng)網(wǎng)絡(luò)的編碼-解碼器中,實現(xiàn)區(qū)域特征的聚合。筆者提出的IEGCNN網(wǎng)絡(luò)在ModelNet40上,分類準(zhǔn)確率比3DmFV 提高約1.68%,比Point2Sequences提高約0.18%,但是在ModelNet10上,比3DmFV和Point2Sequences分別降低了約1%和1.1%,原因是本架構(gòu)舍棄掉了傳統(tǒng)的特征轉(zhuǎn)換層,卷積層個數(shù)、全連接層的個數(shù)和節(jié)點數(shù)大幅降低。在ModelNet10數(shù)據(jù)集中,由于訓(xùn)練樣本和測試樣本的分布模式、模型數(shù)量的限制,導(dǎo)致沒有充分提取點云模型的特征。
表3 不同算法在ModelNet數(shù)據(jù)集上的分類結(jié)果
6) 精簡模型普適性分析
該網(wǎng)絡(luò)模型的框架基于PointNet設(shè)計,考慮到PointNet及PointNet++網(wǎng)絡(luò)結(jié)構(gòu)中局部特征提取不充分的問題,提出引入點的方向信息的方法,結(jié)合邊緣索引跳躍鏈接,縮減網(wǎng)絡(luò)規(guī)模,減少模型中卷積層的個數(shù),逐步改變各個卷積層通道數(shù)量,確定最佳模型參數(shù)。網(wǎng)絡(luò)結(jié)構(gòu)的精簡,從理論上,對分類準(zhǔn)確率會造成一定降低。作為對卷積網(wǎng)絡(luò)裁剪造成準(zhǔn)確率降低的補(bǔ)償,文中將第2層卷積層(Block 2)的通道數(shù)由原模型的64提升到128,優(yōu)化特征提取流程,采用索引特征傳遞,使特征丟失減少,提取更加全面。由實驗數(shù)據(jù)分析,精簡后的網(wǎng)絡(luò)模型能快速處理整個點云模型,在降低參數(shù)量的同時,分類精度有所提高,具有很強(qiáng)的普適性。
筆者提出一種層級特征提取框架來解決點之間局部幾何結(jié)構(gòu)建模的問題。通過分析PointNet、PointNet++及DGCNN等點云模型及其在局部特征提取方面的特點,提出索引邊緣幾何卷積神經(jīng)網(wǎng)絡(luò)IEGCNN,從每個點及其鄰域提取特征,計算中心點和其鄰域范圍內(nèi)點的距離,并在邊緣卷積網(wǎng)絡(luò)中加入點的方向信息,將邊緣網(wǎng)絡(luò)架構(gòu)中點與點之間的關(guān)系投影到三維坐標(biāo)系,并分解為3個正交基,根據(jù)邊緣向量與基向量之間的夾角、中心點與鄰域點的距離進(jìn)行特征聚合,從而對兩點之間的幾何結(jié)構(gòu)進(jìn)行建模。IEGCNN將卷積層減少至3層,為每層的輸出建立索引并傳遞至其他所有層,在同等規(guī)模參數(shù)量和通道數(shù)的網(wǎng)絡(luò)架構(gòu)中取得了最好的分類效果。在訓(xùn)練和識別時間上大幅縮短,具有快速處理點云數(shù)據(jù)的能力。該工作不僅在分類任務(wù)上取得了較好的效果,也為解決目標(biāo)檢測網(wǎng)絡(luò)實時性問題提供了思路,在可移動設(shè)備部署及實時處理方面具有廣闊的應(yīng)用前景。實驗中發(fā)現(xiàn),筆者提出的方法存在以下不足:
(1) 使用的k近鄰采樣法,存在依賴訓(xùn)練樣本,很難適應(yīng)大規(guī)模數(shù)據(jù)集的問題,對k值的選擇還需進(jìn)一步優(yōu)化。
(2) 筆者采用基于均勻采樣的點云進(jìn)行訓(xùn)練,而實際場景中的點云往往是疏密不同的,這會導(dǎo)致實際場景點云中準(zhǔn)確率降低。這可通過動態(tài)調(diào)整局部區(qū)域采樣點數(shù)量來優(yōu)化。這都是需要繼續(xù)研究的方向。