許嘉麟,姚 雙,張蕊華,許 浩,沈 洋,
(1.寧波大學(xué) 信息科學(xué)與工程學(xué)院,浙江 寧波 325211;2.麗水學(xué)院 工學(xué)院,浙江 麗水 323000)
三維點(diǎn)云模型研究是計算機(jī)圖形學(xué)、計算機(jī)視覺與模式識別領(lǐng)域共同關(guān)注的熱點(diǎn)話題之一。二維圖像丟失了現(xiàn)實(shí)世界中2 個或多個物體間的深度信息,不適用于需要深度信息和定位信息的領(lǐng)域,如機(jī)器人、自主駕駛等。為了用深度信息捕捉三維世界,早期常見的方法是使用立體視覺技術(shù),即用2 個或更多校準(zhǔn)的數(shù)碼相機(jī)來提取三維信息。點(diǎn)云是圍繞場景中物體曲面采樣的三維數(shù)據(jù)點(diǎn)集,可以由點(diǎn)的X、Y、Z坐標(biāo)表示,也可以加入諸如曲面法線、RGB 值等附加特性,可見點(diǎn)云是一種用于表示三維幾何體的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)。
保證特征旋轉(zhuǎn)不變是計算機(jī)視覺與模式識別領(lǐng)域的重要技術(shù)之一,例如在處理圖像時提取的特征要保證旋轉(zhuǎn)不變。不同于圖像的二維平面結(jié)構(gòu),點(diǎn)云的結(jié)構(gòu)為三維空間,進(jìn)行點(diǎn)云數(shù)據(jù)處理要保證其繞X、Y、Z這3 個坐標(biāo)軸旋轉(zhuǎn)時所提取的特征不變,因此點(diǎn)云空間旋轉(zhuǎn)不變性的實(shí)現(xiàn)比二維圖像實(shí)現(xiàn)旋轉(zhuǎn)不變性更具挑戰(zhàn)。點(diǎn)云數(shù)據(jù)是一個包含三維坐標(biāo)信息的無序點(diǎn)集合,對數(shù)據(jù)順序不敏感,相同的一個點(diǎn)云數(shù)據(jù)模型完全可以有多種不同的存儲順序,這意味著處理點(diǎn)云數(shù)據(jù)時需要保持?jǐn)?shù)據(jù)的不同排列不變性,即點(diǎn)云的置換不變性。處理點(diǎn)云無序性的一般方法包括用對稱函數(shù)來保證置換不變性、將無序的數(shù)據(jù)進(jìn)行重新排序及對數(shù)據(jù)的所有排列進(jìn)行數(shù)據(jù)增強(qiáng)后使用RNN 模型。
本文提出一種基于親疏度矩陣的點(diǎn)云置換不變特征提取方法,在M-Conv 模型第1 層輸入時將點(diǎn)坐標(biāo)映射到曲率特征空間以實(shí)現(xiàn)空間旋轉(zhuǎn)不變性?;跉W式內(nèi)積構(gòu)建K鄰域內(nèi)的親疏度矩陣,以反映點(diǎn)之間的親疏關(guān)系。根據(jù)親疏度矩陣計算得到變換矩陣,對輸入的數(shù)據(jù)進(jìn)行變換以實(shí)現(xiàn)置換不變性。此外,采用代數(shù)計算的方式獲取變換矩陣,提高模型訓(xùn)練的效率,并在常規(guī)卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,設(shè)計一套用于處理點(diǎn)云空間旋轉(zhuǎn)不變性和置換不變性問題的框架。
針對點(diǎn)云空間旋轉(zhuǎn)不變性和置換不變性問題,研究人員已提出諸多方法,總體而言可以分為基于多視圖的方法[1-3]、基于體素的方法[4-5]和基于點(diǎn)的深度學(xué)習(xí)方法?;诙嘁晥D的方法將點(diǎn)云投影到多視圖表示來學(xué)習(xí)特征,基于體素的方法將點(diǎn)云放入體素網(wǎng)格中進(jìn)行處理,但這些方法的計算量和內(nèi)存占用非常龐大,無法很好地應(yīng)用到密集的3D 數(shù)據(jù)中。基于點(diǎn)的深度學(xué)習(xí)方法包括點(diǎn)對點(diǎn)MLP 網(wǎng)絡(luò)[6-8]、基于卷積的網(wǎng)絡(luò)[9-11]、基于圖的網(wǎng)絡(luò)[12-13]及基于數(shù)據(jù)索引的網(wǎng)絡(luò)[14-15],這些方法會對點(diǎn)進(jìn)行特征學(xué)習(xí)。除此之外,還有一些方法如基于徑向基函數(shù)的DeepRBFNet[16]、將膠囊網(wǎng)絡(luò)引入到點(diǎn)云中的3DPointCapsNet[17]、使用自注意力模塊的RMFPDNN[18]等。
針對點(diǎn)云空間旋轉(zhuǎn)不變性問題,PointNet[6]通過訓(xùn)練T-Net 得到K×K矩陣,并對輸入進(jìn)行空間對齊以保證空間旋轉(zhuǎn)不變性。文獻(xiàn)[9]提出3D 球面卷積神經(jīng)網(wǎng)絡(luò)Spherical CNN 來學(xué)習(xí)3D 形狀的旋轉(zhuǎn)不變性,其以多值球面函數(shù)為輸入,通過在球形諧波域中使用錨點(diǎn)對頻譜進(jìn)行參數(shù)化來獲得局部卷積濾波器。借鑒于Spherical CNN,文獻(xiàn)[10]介紹了構(gòu)建球面CNN 的基本要素,其卷積定義為在球形互相關(guān)上使用通用快速傅里葉變換算法實(shí)現(xiàn)。SRINet[19]首先投影1 個點(diǎn)云以獲得旋轉(zhuǎn)不變表示,然后利用基于PointNet 的主干來提取全局特征,并利用基于圖的聚合來提取局部特征,但先進(jìn)行投影的方式會大幅增加計算量。文獻(xiàn)[20]提出張量場網(wǎng)絡(luò),將點(diǎn)卷積運(yùn)算定義為可學(xué)習(xí)的徑向函數(shù)和球諧函數(shù)的乘積,其局部等價于點(diǎn)的3D 旋轉(zhuǎn)、平移和置換。SPHNet[21]通過在體積函數(shù)的卷積過程中合并球形諧波核來實(shí)現(xiàn)旋轉(zhuǎn)不變性。ConvPoint[22]將卷積核分為空間和特征兩部分,從單位球體中隨機(jī)選擇空間部分的位置,并使其通過簡單的MLP 學(xué)習(xí)加權(quán)函數(shù)。這些基于球形卷積的方法同樣會增加計算量,其學(xué)習(xí)方式也無法很好地被應(yīng)用于非監(jiān)督性方法中。本文方法將點(diǎn)坐標(biāo)映射到曲率特征空間,以實(shí)現(xiàn)空間旋轉(zhuǎn)不變性。
關(guān)于如何解決點(diǎn)云置換不變性問題,PointNet 使用最大池化對稱函數(shù)來提取數(shù)據(jù)的特征,但基于最大池化的方法忽略了點(diǎn)之間的局部結(jié)構(gòu)信息。QI等[7]在PointNet 的基礎(chǔ)上提出層次網(wǎng)絡(luò)PointNet++來捕獲每個點(diǎn)附近的幾何結(jié)構(gòu),取得了更好的結(jié)果。ZAHEER 等[8]從理論上證明實(shí)現(xiàn)置換不變性的關(guān)鍵是對所有表示求和的應(yīng)用進(jìn)行非線性變換,他們還為包括形狀分類在內(nèi)的各種應(yīng)用設(shè)計了一種基本架構(gòu)DeepSets。PointCNN[11]通過學(xué)習(xí)的方式獲得一個變換矩陣,對無序的數(shù)據(jù)進(jìn)行變換使之轉(zhuǎn)變?yōu)橛行蜉斎?。文獻(xiàn)[17]提出一種無監(jiān)督的自動編碼器3DPointCapsNet 用于3D 點(diǎn)云的通用表示,使用逐點(diǎn)MLP 和卷積層學(xué)習(xí)點(diǎn)獨(dú)立特征,并使用多個最大池化層提取全局特征。文獻(xiàn)[23]提出的RS-CNN 以RS-Conv 為核心層,將某個點(diǎn)周圍的局部點(diǎn)子集作為輸入,然后通過學(xué)習(xí)映射并使用MLP 進(jìn)行卷積,將低級關(guān)系(例如歐氏距離和相對位置)轉(zhuǎn)換為局部子集中點(diǎn)之間的高級關(guān)系來獲得變換矩陣。PointConv[24]中的卷積定義為蒙特卡洛估計,這是一個關(guān)于重要性采樣的連續(xù)3D 卷積,卷積核由權(quán)重函數(shù)(通過MLP 層學(xué)習(xí))和密度函數(shù)(通過核化密度估計和MLP 層學(xué)習(xí))組成。WU 等[25]提出的RCNet 利用標(biāo)準(zhǔn)的RNN 和2D CNN 來構(gòu)建用于3D 點(diǎn)云處理的置換不變網(wǎng)絡(luò),先將點(diǎn)云劃分為平行波束,并沿特定維度進(jìn)行分類,然后將每個波束送入共享的RNN中進(jìn)行處理,再將所學(xué)習(xí)的特征進(jìn)一步反饋并送到2D CNN 中進(jìn)行分層特征聚合。本文方法將基于點(diǎn)與點(diǎn)之間的歐式內(nèi)積構(gòu)建親疏度矩陣,計算并得到相應(yīng)的變換矩陣,對輸入進(jìn)行變換,使之從無序狀態(tài)轉(zhuǎn)變?yōu)橛行驙顟B(tài)。
本文將基于點(diǎn)與點(diǎn)之間的歐式內(nèi)積構(gòu)建K鄰域內(nèi)的親疏度矩陣,并計算親疏度矩陣特征值,對其進(jìn)行排序后將對應(yīng)的特征向量矩陣作為變換矩陣M,對輸入的數(shù)據(jù)進(jìn)行變換使無序輸入轉(zhuǎn)變?yōu)橛行蜉斎?。此外,進(jìn)行M-Conv 操作,即通過卷積操作提取置換不變的特征,通過代數(shù)計算獲取變換矩陣,減少額外的參數(shù),并加快模型的迭代及訓(xùn)練。
本文方法的輸入是一系列點(diǎn)與特征的集合F1={(p1,i,f1,i):i=1,2,…,N1},其中:{p1,i}是點(diǎn)的集合;{f1,i:f1,i∈C1}是每個點(diǎn)對應(yīng)的特征;N1是點(diǎn)與對應(yīng)特征數(shù)量;C1為特征通道數(shù)量。和基于網(wǎng)格卷積神經(jīng)網(wǎng)絡(luò)相同,本文對F1使用M-Conv 操作獲得更高級的表示:F2={(p2,i,f2,i):f2,i∈C2,i=1,2,…,N2},其中{p2,i}是{p1,i}的一系列代表點(diǎn),F(xiàn)2與F1相比,代表點(diǎn)數(shù)量減少,但是特征通道數(shù)量增大,即N2
其中:Q是卷積核;M是變換矩陣。輸入的點(diǎn)與特征的集合被M-Conv 處理,點(diǎn)的數(shù)量變少(9→5→2),但是特征卻越來越豐富(如圖1 所示)。
圖1 M-Conv 分層卷積Fig.1 Hierarchical convolution of M-Conv
通過M-Conv 的處理,代表點(diǎn){p2,i}成為系列信息更豐富的點(diǎn)。在本文實(shí)驗(yàn)中,它們通過最遠(yuǎn)點(diǎn)采樣從{p1,i}中采樣而來,該采樣方法能使采樣點(diǎn)均勻分布在數(shù)據(jù)模型的各個角落,以保證每次M-Conv 操作均能獲取充足的特征信息。
為保證置換不變性的實(shí)現(xiàn),本文通過找出與代表點(diǎn)最近的K個點(diǎn)形成K鄰域,根據(jù)K鄰域內(nèi)點(diǎn)的相對關(guān)系構(gòu)建1 個K×K的親疏度矩陣L,再計算親疏度矩陣L的特征值,對其進(jìn)行排序后將對應(yīng)的特征向量矩陣作為變換矩陣,并對輸入的數(shù)據(jù)進(jìn)行變換來解決置換不變性問題。在親疏度矩陣L的構(gòu)建過程中,本文采用兩點(diǎn)之間的歐氏內(nèi)積來反映點(diǎn)之間的親疏關(guān)系,定義親疏度矩陣L的表達(dá)式如式(2)所示:
其中:p1,p2,…,pK是K鄰域中的各個點(diǎn);*代表內(nèi)積運(yùn)算;K是鄰域大小??梢钥吹剑H疏度矩陣L依賴于點(diǎn)之間的內(nèi)積關(guān)系,與各點(diǎn)之間的位置狀態(tài)沒有關(guān)系,因此親疏度矩陣L是空間旋轉(zhuǎn)不變的。
交換點(diǎn)與點(diǎn)之間的存儲順序是點(diǎn)云無序性的重要體現(xiàn),但并不改變其本質(zhì)歸屬。2.2 節(jié)基于歐式內(nèi)積構(gòu)建了K×K的親疏度矩陣L,并取親疏度矩陣L的絕對值得到矩陣L',以此來計算特征值與特征向量。特征值及特征向量的計算式如式(3)所示:
計算矩陣L'的K個特征值(λ1,λ2,…,λK)及對應(yīng)的K個特征向量(x1,x2,…,xK),將特征值從小到大進(jìn)行排序,同時將每個特征值對應(yīng)的特征向量按對應(yīng)順序排列組成變換矩陣M。例如某三階矩陣L'的3 個特征值分別為λ1、λ2、λ3,其對應(yīng)的特征向量為x1、x2、x3,且λ2<λ3<λ1,則對應(yīng)的特征向量組合而成的變換矩陣為:
根據(jù)親疏度矩陣計算得到的變換矩陣M是空間旋轉(zhuǎn)不變的,同時也是置換不變的,證明如下:
在式(2)中交換pi與pj的位置順序,親疏度矩陣L變?yōu)長1,如式(5)所示:
交換L1的第i行和第j行得到,交換的第i列和第j列得到,且有,即:
L1可由矩陣初等變換轉(zhuǎn)變?yōu)長,則L1與L的特征值與特征向量相同,因此在K鄰域內(nèi)交換點(diǎn)之間的順序,始終會得到相同的變換矩陣M。對特征值按照從小到大的順序進(jìn)行排序,并將對應(yīng)的特征向量組成變換矩陣M,在卷積之前對輸入數(shù)據(jù)進(jìn)行變換,如式(1)所示,以此來獲得置換不變的特征。
M-Conv 是本文處理點(diǎn)云數(shù)據(jù)方法的核心操作。本小節(jié)將介紹M-Conv 操作的整體算法流程,并解釋其基本原理。
在算法1 中:Q是卷積核;p是代表點(diǎn);P是無序的點(diǎn)集;Fp是P對應(yīng)的特征集合。和基于網(wǎng)格的卷積神經(jīng)網(wǎng)絡(luò)類似,為利用空間局部相關(guān)性,在局部區(qū)域內(nèi)進(jìn)行M-Conv 操作。由于其輸出的特征與代表點(diǎn){p2,i}相關(guān)聯(lián),M-Conv 將它們在點(diǎn){p1,i}(即P)中的鄰域點(diǎn)及相關(guān)特征作為輸入進(jìn)行卷積操作。代表點(diǎn){p2,i}是從上一層的代表點(diǎn){p1,i}采樣而來,以{p2,i}中的每一個點(diǎn)為中心,找出其在{p1,i}中最鄰近的K個點(diǎn)形成K鄰域,在卷積K鄰域內(nèi)的點(diǎn)及相關(guān)特征中得到輸出,采用一般化的公式來表示M-Conv 操作,如式(7)所示:
進(jìn)一步可得:
其中:MLPα()是一個多層感知機(jī),與PointCNN 類似,將多層感知機(jī)應(yīng)用于每個點(diǎn);Cal_L()是構(gòu)建親疏度矩陣的操作;Cal_M()是計算變換矩陣的操作。值得注意的是,M-Conv 的第1 層輸入與后面不相同,因?yàn)榈? 層無法拼接來自上一層的特征。為保證點(diǎn)云的空間旋轉(zhuǎn)不變性,第1 層輸入時將點(diǎn)坐標(biāo)映射到曲率特征空間,且不用變換矩陣M對其進(jìn)行變換,第1 層的M-Conv 操作可以表示為:
其中:Cal_C()是將點(diǎn)坐標(biāo)映射到曲率特征空間的操作,詳細(xì)過程請參考2.6 節(jié)細(xì)節(jié)補(bǔ)充。
算法1 的第3 行~第5 行是M-Conv 的關(guān)鍵操作,能夠保證其實(shí)現(xiàn)置換不變的特性。M-Conv 是在局部區(qū)域工作的,其輸出不需要依賴于p及鄰域點(diǎn)的絕對位置,僅依賴于其相對位置。圖2 所示為局部坐標(biāo)系建立,本文將局部坐標(biāo)系的原點(diǎn)定位在每個代表點(diǎn)處,將鄰域點(diǎn)的信息匯聚到代表點(diǎn)處,其局部坐標(biāo)及相關(guān)特征定義了代表點(diǎn)的輸出特征。
圖2 局部坐標(biāo)系建立Fig.2 Establishment of local coordinate system
本文參考PointCNN,通過逐點(diǎn)MLPα()將點(diǎn)坐標(biāo)提升為特征要素。不同的是,PointCNN 通過監(jiān)督學(xué)習(xí)的方式獲得變換矩陣,并對輸入進(jìn)行變換。而本文方法通過M-Conv 操作完成這一過程,M-Conv會根據(jù)輸入點(diǎn)的順序計算并得到變換矩陣M及排列Fβ,將無序的數(shù)據(jù)進(jìn)行變換從而解決點(diǎn)云置換不變性問題。對于沒有任何附加特征的輸入(即Fp為空),為保證實(shí)現(xiàn)點(diǎn)云空間旋轉(zhuǎn)不變性,在第1 層輸入時將點(diǎn)坐標(biāo)映射到曲率特征空間,僅使用MLPα()對其進(jìn)行處理且不拼接來自上一層的特征,如式(9)所示。因此,本文的方法可以穩(wěn)健有效地處理附帶有或不附帶有特征的點(diǎn)云。關(guān)于MLPα()及Cal_C(),可參考2.6 節(jié)的細(xì)節(jié)補(bǔ)充。
基于網(wǎng)格的卷積神經(jīng)網(wǎng)絡(luò)的Conv 層和M-Conv層在特征提取的局部區(qū)域(K×K的局部塊和代表點(diǎn)周圍的K鄰域)以及局部區(qū)域特征學(xué)習(xí)方式(Conv 和M-Conv)2 個方面有所不同??傮w來說,使用M-Conv 搭建深度網(wǎng)絡(luò)的過程與使用卷積神經(jīng)網(wǎng)絡(luò)搭建網(wǎng)絡(luò)模型的過程非常相似。
圖3 所示為一個簡單的由M-Conv 組成的網(wǎng)絡(luò)模型,其中:H代表點(diǎn)數(shù)量;C是輸出特征通道數(shù)量。該模型能夠?qū)⑤斎朦c(diǎn)(附帶有或不附帶有特征)轉(zhuǎn)換為更少的代表點(diǎn),每個代表點(diǎn)都將聚合來自上一層自身鄰域點(diǎn)的特征,因此自身所附帶的特征會變得更加豐富,感受野也逐步擴(kuò)大。由最后一層M-Conv 處理得到的特征F依舊是無序的,本文方法將對其使用變換矩陣M進(jìn)行變換,使之轉(zhuǎn)變?yōu)橛行驙顟B(tài)。隨后連接完全連接層,然后是計算損失并優(yōu)化,用于訓(xùn)練網(wǎng)絡(luò)模型。在完全連接層之后,應(yīng)用Dropout 層以減少過擬合現(xiàn)象的產(chǎn)生。測試時,來自多個代表點(diǎn)的輸出在softmax 之前被平均化,以進(jìn)行穩(wěn)定的預(yù)測,該設(shè)計類似于Network in Network[26]。
圖3 M-Conv 網(wǎng)絡(luò)模型的結(jié)構(gòu)Fig.3 M-Conv network model structure
在訓(xùn)練模型時,對于特定的代表點(diǎn),以相同的順序連續(xù)使用相同的一組鄰近點(diǎn)顯然沒有任何好處,因此隨機(jī)采樣并打亂點(diǎn)的輸入順序,代表點(diǎn)的鄰近點(diǎn)集和順序就會因批次而異,如此可以加強(qiáng)模型穩(wěn)定性。實(shí)驗(yàn)發(fā)現(xiàn),經(jīng)最后一層M-Conv 處理所得到的特征依舊是無序的,因此連接完全連接層之前,將最后一層的特征進(jìn)行變換,可以得到更好的結(jié)果。算法1 的第1 行實(shí)現(xiàn)了MLPα(),它由2 個完全連接層組成,每一個完全連接層后面都連接ELU 激活函數(shù)和批歸一化(Batch Normalization,BN),即FC(3,Cα)→ELU→BN→FC(Cα,Cα)→ELU→BN。式(9)實(shí)現(xiàn)了Cal_C(),具體步驟如下:
1)在代表點(diǎn)K鄰域內(nèi)組成K×3 的矩陣A;
2)對矩陣A進(jìn)行中心化,減去每一列的均值得到矩陣;
4)計算協(xié)方差矩陣C的特征根。
使用MLPα()對協(xié)方差矩陣C的特征根進(jìn)行處理,并獲取特征要素,將其作為第1 層的輸入,使點(diǎn)坐標(biāo)映射到曲率特征空間中實(shí)現(xiàn)空間旋轉(zhuǎn)不變性。
經(jīng)過實(shí)驗(yàn)研究,得到M-Conv 模型最優(yōu)參數(shù)如表1 所示,其中K、P、C分別表示鄰域大小、代表點(diǎn)數(shù)量及輸出特征通道數(shù)量。本文采用表1 所示的M-Conv 最優(yōu)參數(shù)模型結(jié)構(gòu),在公開的數(shù)據(jù)集ModelNet40 上進(jìn)行分類實(shí)驗(yàn),并與其他方法所得結(jié)果進(jìn)行比較。ModelNet40 數(shù)據(jù)集是一個包含40 個類別三維點(diǎn)云模型數(shù)據(jù)集,共9 840 個訓(xùn)練模型,2 468 個測試模型。實(shí)驗(yàn)平臺為搭載GeForce RTX 3090 GPU 的服務(wù)器,配置環(huán)境為Python3.8 及Tensorflow2.4-GPU。
表1 M-Conv 最優(yōu)參數(shù)模型結(jié)構(gòu)Table 1 M-Conv optimal parameter model structure
使用ModelNet40 數(shù)據(jù)集及M-Conv 最優(yōu)參數(shù)模型結(jié)構(gòu)進(jìn)行實(shí)驗(yàn),使用總體準(zhǔn)確率和類別平均準(zhǔn)確率兩大指標(biāo)進(jìn)行表征,結(jié)果如表2 所示,本文方法在這2 個指標(biāo)上均有一定提高??傮w準(zhǔn)確率雖只略高于PointCNN 及RS-CNN,但與其他方法相比有較大提升。在類別平均準(zhǔn)確率的比較上,本文方法有明顯提升,可見該方法在每個類別的識別上均具有較強(qiáng)的能力,針對不同類別物體所提取的特征更準(zhǔn)確,能更好地區(qū)分與識別不同物體所帶有的不同特征信息。
表2 ModelNet40 數(shù)據(jù)集實(shí)驗(yàn)結(jié)果對比Table 2 Comparison of experimental results of ModelNet40 dataset %
與其他現(xiàn)有的方法相比,本文方法具有其獨(dú)特的優(yōu)勢。現(xiàn)有方法在變換矩陣的獲取上一般采用監(jiān)督學(xué)習(xí)的方式,例如PointCNN、RS-CNN 等,其采用學(xué)習(xí)的方式得到變換矩陣,因此產(chǎn)生額外的參數(shù),并占用大量資源如CPU、GPU 等。本文方法不需要通過學(xué)習(xí)獲得變換矩陣,而是直接根據(jù)所構(gòu)建的親疏度矩陣計算得到所需要的變換矩陣,這種方式不會產(chǎn)生額外的參數(shù),因此在同等情況下,本文方法的參數(shù)更少,占用資源更少,訓(xùn)練更快捷迅速且達(dá)到相同準(zhǔn)確率所需的迭代次數(shù)更少。設(shè)置數(shù)據(jù)集批次大小128,在GeForceRTX 3090 GPU 上進(jìn)行實(shí)驗(yàn)時,本文的方法訓(xùn)練一個批次只需0.33 s,明顯快于PointCNN 訓(xùn)練一個批次所需的0.43 s。
為進(jìn)一步證明M-Conv 方法的有效性及穩(wěn)定性,本文在MNIST 和CIFAR10 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)驗(yàn)證,實(shí)驗(yàn)結(jié)果如表3 所示。在總體準(zhǔn)確率的比較上,本文方法展現(xiàn)出了與其他方法相當(dāng)?shù)哪芰Γ梢娫摲椒ú粌H適用于點(diǎn)云的識別與分類,而且適用于圖像處理。
表3 MNIST 和CIFAR10 數(shù)據(jù)集實(shí)驗(yàn)結(jié)果比較Table 3 Comparison of experimental results between MNIST and CIFAR10 datasets %
3.3.1 參數(shù)K,P,C對實(shí)驗(yàn)結(jié)果的影響
本文旨在保持網(wǎng)絡(luò)結(jié)構(gòu)深度的同時,使更深的代表點(diǎn)能表達(dá)整個形狀的更大部分。為探究各參數(shù)對實(shí)驗(yàn)結(jié)果造成的影響,本文在ModelNet40 數(shù)據(jù)集上進(jìn)行了一系列對比實(shí)驗(yàn)。
保持M-Conv 模型前5 層最優(yōu)參數(shù)值及第6 層P、C值不變,設(shè)置第6 層的K值分別為8、10、12、14、16 進(jìn)行對比實(shí)驗(yàn),結(jié)果如圖4 所示。研究發(fā)現(xiàn),當(dāng)?shù)? 層K值為12 時會取得最好的實(shí)驗(yàn)結(jié)果。當(dāng)K值選取小于12 的值時,總體準(zhǔn)確率和類別平均準(zhǔn)確率均呈現(xiàn)上升趨勢,當(dāng)K值選取大于12 的值時,總體準(zhǔn)確率和類別平均準(zhǔn)確率均呈現(xiàn)下降趨勢。因此最終選取12 作為本層K值,前5 層K值亦通過此方法得出,第1 層~第5 層的K值分別為8、16、8、8、8。
圖4 M-Conv 模型第6 層參數(shù)K 值對實(shí)驗(yàn)結(jié)果的影響Fig.4 Influence of the K value of the sixth layer of M-Conv model on experimental results
保持M-Conv 模型前5 層最優(yōu)參數(shù)值及第6 層K、C值不變,設(shè)置第6 層P值分別為12、18、24、30、36進(jìn)行對比實(shí)驗(yàn),結(jié)果如圖5 所示。研究發(fā)現(xiàn),當(dāng)?shù)? 層P值為24 時會取得最好的實(shí)驗(yàn)結(jié)果。當(dāng)P值選取小于24 的值時,總體準(zhǔn)確率呈現(xiàn)上升趨勢,類別平均準(zhǔn)確率在P值為12~18 時呈下降趨勢,在P值為18~24 處呈上升趨勢,但總體呈現(xiàn)上升趨勢。當(dāng)P值選取小于24 的值時,總體準(zhǔn)確率和類別平均準(zhǔn)確率均呈現(xiàn)下降趨勢。最終選取24 作為本層P值,前5 層的P值亦通過此方法得出,第1 層~第5 層的P值分別為1 024、512、256、128、72。
圖5 M-Conv 模型第6 層參數(shù)P 值對實(shí)驗(yàn)結(jié)果的影響Fig.5 Influence of the P value of the sixth layer of M-Conv model on experimental results
保持M-Conv 模型前5 層最優(yōu)參數(shù)值及第6 層K、P值不變,設(shè)置第6 層的C值分別為384×3、448×3、512×3、576×3、640×3 進(jìn)行對比實(shí)驗(yàn),結(jié)果如圖6 所示。研究發(fā)現(xiàn),當(dāng)?shù)? 層的C值為512×3 時會取得最好的實(shí)驗(yàn)結(jié)果。當(dāng)C值選取小于512×3 的值時,總體準(zhǔn)確率和類別平均準(zhǔn)確率均呈現(xiàn)上升趨勢;當(dāng)C值選取大于512×3 的值時,總體準(zhǔn)確率呈現(xiàn)下降趨勢,類別平均準(zhǔn)確率在576×3~640×3 處略微上升,但總體呈現(xiàn)下降趨勢。最終選取512×3作為本層C值,前5層的C值亦通過此方法得出,第1 層~第5 層的C值分別為16×3、64×3、96×3、128×3、256×3。
圖6 M-Conv 模型第6 層參數(shù)C 值對實(shí)驗(yàn)結(jié)果的影響Fig.6 Influence of the C value of the sixth layer of M-Conv model on experimental results
3.3.2 模型調(diào)整
為解決點(diǎn)云空間旋轉(zhuǎn)不變的問題,本文方法在第1 層輸入時將點(diǎn)坐標(biāo)映射到曲率特征空間,這會比單純地將X、Y、Z坐標(biāo)作為輸入更有效。最后一層M-Conv 處理所得到的特征依舊是無序的,現(xiàn)有的方法不會在連接完全連接層之前將卷積得到的特征進(jìn)行變換,而本文方法在連接完全連接層之前會對最后一層的特征再做一次變換,使之由無序狀態(tài)轉(zhuǎn)變?yōu)橛行驙顟B(tài)。表4 所示為模型調(diào)整實(shí)驗(yàn)結(jié)果,表4 中的M代表輸入時將點(diǎn)坐標(biāo)映射到曲率特征空間,X代表輸入時使用點(diǎn)云三維坐標(biāo),T代表對最后一層M-Conv 處理后得到的特征進(jìn)行變換。在使用本文核心方法M-Conv 的基礎(chǔ)上,在輸入時將點(diǎn)坐標(biāo)映射到曲率特征空間,并對最后一層M-Conv 處理得到的特征進(jìn)行變換,以取得更好的效果。若直接將點(diǎn)云X、Y、Z坐標(biāo)作為輸入,總體準(zhǔn)確率和類別平均準(zhǔn)確率均有小幅下降。若輸入時將點(diǎn)坐標(biāo)映射到曲率特征空間,但不對最后一層M-Conv 處理得到的特征進(jìn)行變換,總體準(zhǔn)確率和類別平均準(zhǔn)確率均有較大幅度的下降,類別平均準(zhǔn)確率更是下降1 個百分點(diǎn)以上,可見對最后一層的特征進(jìn)行變換可以使準(zhǔn)確率得到有效提升。
表4 模型調(diào)整實(shí)驗(yàn)結(jié)果Table 4 Experimental results of model adjustment %
零部件分割是點(diǎn)云形狀分析中一項(xiàng)具有挑戰(zhàn)性的任務(wù),為驗(yàn)證M-Conv 模型針對分割任務(wù)的有效性及可行性,本文在ShapeNet 數(shù)據(jù)集上進(jìn)行了分割實(shí)驗(yàn)。ShapeNet 數(shù)據(jù)集是點(diǎn)云零部件分割數(shù)據(jù)集,包含16 個類別和50 個分割實(shí)例,每個對象有2~6 個零部件標(biāo)簽,例如飛機(jī)的機(jī)翼。在16 881 個點(diǎn)云模型中,將14 007 個模型用于訓(xùn)練,另外2 874 個模型用于測試。
使用ShapeNet 數(shù)據(jù)集進(jìn)行零部件分割實(shí)驗(yàn),結(jié)果如表5 所示,其中IoU 代表總體交并比。由表5 可知,M-Conv 模型的實(shí)驗(yàn)結(jié)果與其他方法的水平相當(dāng),甚至在某些類別上實(shí)現(xiàn)了超越。表5 列舉了每個類別的交并比,M-Conv 模型在帽子、耳機(jī)、刀、電腦、杯子、火箭及滑板7 個類別上均取得了最佳結(jié)果。圖7 展示了上述7 個類別的分割效果,其中第1行為M-Conv 模型分割預(yù)測結(jié)果的可視化圖,第2 行為真實(shí)結(jié)果可視化圖
表5 ShapeNet 數(shù)據(jù)集實(shí)驗(yàn)結(jié)果對比Table 5 Comparison of experimental results of ShapeNet dataset %
圖7 ShapeNet 數(shù)據(jù)集分割實(shí)例Fig.7 ShapeNet dataset segmentation example
表6 總結(jié)了M-Conv 模型的時間復(fù)雜度和空間復(fù)雜度。M-Conv 模型的參數(shù)數(shù)量略多于其他方法,但浮點(diǎn)運(yùn)算數(shù)指標(biāo)遠(yuǎn)勝于其他方法,展示了其巨大的優(yōu)勢及潛力。
表6 不同方法的復(fù)雜度對比Table 6 Complexity comparison of different methods
本文提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的模型,利用點(diǎn)云數(shù)據(jù)的空間局部相關(guān)性,將點(diǎn)云坐標(biāo)映射到曲率特征空間以提取旋轉(zhuǎn)不變的特征。使用K鄰域內(nèi)的點(diǎn)集合構(gòu)建基于歐式內(nèi)積的親疏度矩陣,對親疏度矩陣特征值進(jìn)行排序后,將對應(yīng)的特征向量組成變換矩陣,從而對特征進(jìn)行變換,以實(shí)現(xiàn)置換不變性。實(shí)驗(yàn)結(jié)果表明,該方法在分類任務(wù)和分割任務(wù)上均取得了較好的結(jié)果。但該方法在鄰域點(diǎn)的選擇上采用了KNN 算法,并不能很好地計算三維物體表面點(diǎn)與點(diǎn)之間的真實(shí)距離。下一步考慮把一些在幾何處理上表現(xiàn)良好的方法如Deep Points[28]、Deep Geodesic Networks[29]等與本文方法相結(jié)合,并在鄰域點(diǎn)的選擇上進(jìn)行優(yōu)化,從而得到更好的分類及分割效果。