吳 楊,張海翔,馬漢杰,蔣明峰,馮 杰
(浙江理工大學(xué) 信息學(xué)院,浙江 杭州 310018)
三維形狀表達(dá)技術(shù)一直是計(jì)算機(jī)視覺(jué)領(lǐng)域的重要研究課題。與圖片相比,三維模型能夠傳遞出更多的信息,與用戶(hù)的交互也更加真實(shí)。另外,三維模型也應(yīng)用于無(wú)人駕駛、機(jī)器人的地圖重建上,在游戲和VR領(lǐng)域也有所涉及。因此,如何表達(dá)出高質(zhì)量的三維模型是一個(gè)重要的問(wèn)題。
與傳統(tǒng)的三維形狀表達(dá)工作相比,基于深度學(xué)習(xí)的三維形狀表達(dá)任務(wù),是一個(gè)重要的研究問(wèn)題,它能夠通過(guò)端到端的學(xué)習(xí)直接產(chǎn)生精細(xì)的三維模型。當(dāng)前,基于深度學(xué)習(xí)的三維表達(dá),根據(jù)表示方法的不同主要分為體素法、八叉樹(shù)法、隱函數(shù)法、點(diǎn)云法和網(wǎng)格法,其中體素形狀表達(dá)是三維形狀表達(dá)方法中的重要研究?jī)?nèi)容,具有很多優(yōu)勢(shì)。首先,體素?cái)?shù)據(jù)具有良好的結(jié)構(gòu),便于特征學(xué)習(xí)和計(jì)算,基于圖像的處理方法,可以應(yīng)用到三維模型的處理中來(lái),且體素表達(dá)形狀的結(jié)構(gòu)類(lèi)型不受限制。其次,三維表達(dá)中對(duì)體素的特征編碼,可以作為三維重建中圖片編碼器的學(xué)習(xí)目標(biāo),作為三維重建的中間過(guò)程。但是,體素表示也存在著很多問(wèn)題:① 現(xiàn)有的方法主要使用3DCNN來(lái)進(jìn)行編碼,僅利用了體素的層次特征,更高精度特征編碼方法有待進(jìn)一步研究;② 由于體素編碼的提高存在困難,大多數(shù)方法通過(guò)提高分辨率的方式來(lái)增加模型的效果;③ 體素表示的方法在訓(xùn)練時(shí)會(huì)占用大量?jī)?nèi)存,使得學(xué)習(xí)的成本變高。
針對(duì)這些問(wèn)題,本文提出了一種基于多尺度殘差特征的形狀表達(dá)編碼模型,利用3D形狀體素多尺度特征之間相關(guān)性,學(xué)習(xí)更有效的特征編碼。在此基礎(chǔ)上,在解碼器中引入自注意機(jī)制,進(jìn)一步提高解碼模型的精度。此外,還探索研究了一種體素殘差編碼的深度分離卷積方法,在精度下降不大的條件下有效降低了模型的參數(shù)。實(shí)驗(yàn)證明,所提出的網(wǎng)絡(luò)模型是有效的,并且通過(guò)與最近的工作對(duì)比,也取得了更好的結(jié)果。
重點(diǎn)介紹了最近工作中有關(guān)三維形狀表達(dá)及特征編碼的方法,對(duì)它們的貢獻(xiàn)和不足之處進(jìn)行了分析。同時(shí),對(duì)自注意力機(jī)制和深度分離卷積的相關(guān)工作,也展開(kāi)了討論。
基于體素的形狀表達(dá)大都是基于CNN來(lái)進(jìn)行體素的編碼。八叉樹(shù)法是將體素?cái)?shù)據(jù)轉(zhuǎn)化為八叉樹(shù)的存儲(chǔ)結(jié)構(gòu),采用類(lèi)似卷積的操作來(lái)處理數(shù)據(jù)。隱函數(shù)法編碼階段也都是使用CNN來(lái)提取特征。而CNN只利用了體素的層次特征,因此如何對(duì)體素特征編碼進(jìn)行優(yōu)化就成了一項(xiàng)有挑戰(zhàn)性的工作。
體素法:由于體素是圖像網(wǎng)格中像素的自然3D擴(kuò)展并允許3D卷積,因此它們常用于三維模型的生成。早期的體素表示方法的研究,受限于內(nèi)存大小,只能產(chǎn)生低分辨率的生成模型[1-2]。CNN-AE[3]可以直接對(duì)體素進(jìn)行卷積和反卷積運(yùn)算,實(shí)現(xiàn)體素的形狀表達(dá)。但是由于普通的CNN網(wǎng)絡(luò)難以提取完整的特征信息,所以學(xué)習(xí)到的生成模型雖然具有完整的結(jié)構(gòu)但往往缺乏細(xì)節(jié)。Shubham等人[4]提出一種學(xué)習(xí)物體的部件并裝配成完整物體的方法,這種方法也是通過(guò)CNN來(lái)進(jìn)行編碼。大部分體素表示的方法,通過(guò)三維卷積網(wǎng)絡(luò)來(lái)進(jìn)行編碼,由于淺層的CNN有限的特征提取能力,而無(wú)法得到有效的映射。
八叉樹(shù)法:目前基于體素的研究,通常從高分辨率的角度來(lái)獲得三維模型。如八叉樹(shù)法[5-6],就是將體素轉(zhuǎn)化為八叉樹(shù)的結(jié)構(gòu),通過(guò)多次迭代,獲得高分辨率的模型。這種方法是通過(guò)存儲(chǔ)結(jié)構(gòu)優(yōu)化的方式來(lái)減小內(nèi)存的消耗,但還是使用CNN來(lái)進(jìn)行編碼。
隱函數(shù)法:最近基于隱函數(shù)的IM-NET[3],通過(guò)預(yù)測(cè)體素中逐點(diǎn)占用來(lái)生成模型。雖然能夠獲得任意分辨率的輸出模型,但在編碼階段依然是通過(guò)卷積網(wǎng)絡(luò)對(duì)體素進(jìn)行特征提取。BAE-NET[7]、BSP-NET[8]與IM-NET結(jié)構(gòu)類(lèi)似,都是采用CNN來(lái)進(jìn)行編碼,而對(duì)不同的問(wèn)題進(jìn)行處理。這些網(wǎng)絡(luò)雖然能夠生成高分辨的模型,但在低分辨率下精度不高,與它們的編碼方式有很大的關(guān)系。
點(diǎn)云法:由于點(diǎn)云往往可以通過(guò)一些掃描設(shè)備直接獲取,所以點(diǎn)云上的深度學(xué)習(xí)一直吸引著研究者的關(guān)注。特別是在過(guò)去五年,一些公開(kāi)的數(shù)據(jù)集也被發(fā)布,如ModelNet[9],ScanNet[10]等,這些數(shù)據(jù)集進(jìn)一步推動(dòng)了深度學(xué)習(xí)在三維點(diǎn)云上的研究。PointsNet[11], PointsNet++[12]都是用來(lái)對(duì)點(diǎn)云進(jìn)行分類(lèi)以及語(yǔ)義分割的網(wǎng)絡(luò),它們將三維外形看作是無(wú)序的點(diǎn)云,使用對(duì)稱(chēng)函數(shù)來(lái)達(dá)到點(diǎn)的排列不變性。由于點(diǎn)云的無(wú)序性,對(duì)點(diǎn)云的特征提取存在困難。在PVCNN[13]中采用了點(diǎn)云和體素特征融合的方式來(lái)處理點(diǎn)云,利用了體素良好的表示結(jié)構(gòu),通過(guò)3DCNN來(lái)提取體素化點(diǎn)云的特征。也證明了對(duì)體素編碼的進(jìn)一步研究有廣泛的意義。
網(wǎng)格法:基于網(wǎng)格的方法大都以模板變形為基礎(chǔ)預(yù)測(cè)形狀,生成模型受限于模板[14]。T.Groueix[15]、A.Sinha[16]等人將曲面模板變形成目標(biāo)外形,但是許多三維外形不能用單個(gè)面片很好地表示,而來(lái)自多個(gè)面片集成的輸出通常包含由于間隙、折疊和重疊而產(chǎn)生的視覺(jué)偽影。總的來(lái)說(shuō),基于網(wǎng)格的表示方法有很大的限制。
體素的表示方法相對(duì)點(diǎn)云和網(wǎng)格,更適合于物體結(jié)構(gòu)的表達(dá),且表達(dá)形狀的結(jié)構(gòu)類(lèi)型不受限制。因此,本文采用體素的表示方法,致力于生成高精度三維模型的表達(dá),主要對(duì)編碼器進(jìn)行了深入的研究。與之前的網(wǎng)絡(luò)不同,受Hara等人[17]的啟發(fā),設(shè)計(jì)了多級(jí)殘差網(wǎng)絡(luò)作為編碼器,能夠保留更多有效的信息。通過(guò)與相關(guān)工作的對(duì)比,也證明了所提出方法的有效性。
注意力機(jī)制模仿生物觀察行為的內(nèi)部過(guò)程,即一種將內(nèi)部經(jīng)驗(yàn)和外部感覺(jué)對(duì)齊從而增加部分區(qū)域的觀察精細(xì)度的機(jī)制。而自注意機(jī)制是注意力機(jī)制的改進(jìn),其減少了對(duì)外部信息的依賴(lài),更擅長(zhǎng)捕捉數(shù)據(jù)或特征的內(nèi)部相關(guān)性。
自注意機(jī)制的提出是為了解決NLP領(lǐng)域?qū)υ~向量特征關(guān)注的問(wèn)題。Transformer[18]、BERT[19]等模型都充分運(yùn)用了自注意機(jī)制來(lái)解決翻譯任務(wù)。由于自注意機(jī)制在NLP領(lǐng)域的巨大成功,許多框架都將注意力引入了視覺(jué)任務(wù)中。Wang等人[20]提出了一種基于堆疊注意模塊的殘差注意算法用于圖像分類(lèi)。Zhang等人[21]設(shè)計(jì)了SAGAN,它使用自我注意進(jìn)行圖像生成。Guo等人[22]將Transformer與點(diǎn)云結(jié)合用于3D點(diǎn)云分類(lèi)、分割。Parmar等人[23]提出了一種圖像變換器模型,將自我注意力添加到用于圖像生成的自回歸模型中。Wang等人[24]將自我關(guān)注形式化為非局部操作,以模擬視頻序列中的時(shí)空依賴(lài)性。
基于自注意機(jī)制能夠捕捉全局特征的性質(zhì),在三維領(lǐng)域應(yīng)當(dāng)也有重要作用。受Wang等人[24]的啟發(fā),本文設(shè)計(jì)了基于自注意機(jī)制的全局關(guān)注模塊,應(yīng)用于解碼器中以提高模型精度。
深度分離卷積最早由Laurent Sifre[25]在其博士論文中提出,可以減少卷積操作中的參數(shù)數(shù)量和計(jì)算量。隨后應(yīng)用于InceptionNet[26]中,它首先對(duì)通道進(jìn)行多尺度的分組卷積,然后用1×1的卷積核逐點(diǎn)卷積。受InceptionNet的啟發(fā),XceptionNet[27]則先逐點(diǎn)卷積,再對(duì)每個(gè)通道進(jìn)行卷積。而同時(shí)提出的MobileNet[28]與XceptionNet的區(qū)別,僅在于MobileNet先進(jìn)行通道卷積再逐點(diǎn)卷積。XceptionNet和MobileNet幾乎同時(shí)提出,前者通過(guò)拆分普通卷積來(lái)減少參數(shù)數(shù)量,后者是通過(guò)對(duì)Inception的充分解耦來(lái)完成的。
本文中依據(jù)這種思想,在三維卷積中實(shí)現(xiàn)了深度分離卷積,通過(guò)先通道卷積再逐點(diǎn)卷積的方式,有效減小了模型參數(shù)和運(yùn)行內(nèi)存。
本文提出了一種形狀表達(dá)方法,主要是對(duì)多尺度殘差特征編碼方法進(jìn)行了研究。它是一種基于自編碼器的網(wǎng)絡(luò)架構(gòu),用于對(duì)物體的體素?cái)?shù)據(jù)編碼再恢復(fù)出三維形狀。整個(gè)網(wǎng)絡(luò)架構(gòu)包括一個(gè)編碼器和一個(gè)解碼器,編碼器使用多級(jí)殘差網(wǎng)絡(luò)結(jié)合深度可分離卷積提取三維的殘差特征,解碼器將提取到的特征解碼,即反卷積成與原有的三維模型。模型的輸入是單通道的643的體素網(wǎng)格,經(jīng)過(guò)編碼器得到一個(gè)256維的特征向量z,z作為解碼器的輸入再反卷積得到分辨率為643的三維模型。
本網(wǎng)絡(luò)的結(jié)構(gòu)如圖1所示,編碼器是多級(jí)殘差網(wǎng)絡(luò),由多個(gè)殘差塊組成。將殘差塊中的3D卷積修改為深度可分離卷積,以減少模型的參數(shù)數(shù)量。解碼器由多個(gè)轉(zhuǎn)置卷積組成,其中加入了自注意層,用以關(guān)注全局特征。通過(guò)將輸入的體素網(wǎng)格與生成的模型做平方差得到損失值,反向訓(xùn)練整個(gè)模型的參數(shù)。下面將詳細(xì)介紹網(wǎng)絡(luò)的各個(gè)部分。
圖1 網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Diagram of network structure
由于深度的3D卷積網(wǎng)絡(luò)參數(shù)過(guò)多難以訓(xùn)練,以往的三維表達(dá)方法,通常采用淺層的3D卷積網(wǎng)絡(luò),只能提取到不完整的特征。為了能夠在深層次的網(wǎng)絡(luò)中更準(zhǔn)確地學(xué)習(xí)到體素的編碼,本網(wǎng)絡(luò)在三維模型處理中使用了多級(jí)殘差網(wǎng)絡(luò)來(lái)提取編碼信息。多級(jí)殘差網(wǎng)絡(luò)的結(jié)構(gòu)如圖1中編碼器所示。
多級(jí)殘差網(wǎng)絡(luò)包括一個(gè)7×7×7的3D卷積層、3×3×3的最大池化層、多個(gè)殘差塊以及一個(gè)平均池化層。由于多個(gè)殘差塊的存在,能夠保留更多的信息,提取到多級(jí)特征。其中的block模塊包括2個(gè)卷積層和一個(gè)shortcut連接,每個(gè)卷積層后都有一個(gè)歸一化層和Relu激活函數(shù)。shortcut連接能夠?qū)⑸弦粚拥妮斎離和經(jīng)過(guò)2層卷積層的f(x)相加作為輸出。表示為:
y=x+f(x)。
(1)
殘差網(wǎng)絡(luò)解決了深度學(xué)習(xí)中網(wǎng)絡(luò)退化的問(wèn)題,使得深層的網(wǎng)絡(luò)更容易去學(xué)習(xí)。通過(guò)多級(jí)殘差網(wǎng)絡(luò)提取體素的特征,能夠獲得更完整的信息,更好地完成體素到隱向量的映射。在實(shí)驗(yàn)中,也得到了有效的驗(yàn)證。
由于體素網(wǎng)格在訓(xùn)練中內(nèi)存的占用率很大,深層網(wǎng)絡(luò)中的參數(shù)相對(duì)較多,本網(wǎng)絡(luò)修改了殘差塊中的卷積操作,設(shè)計(jì)了基于三維卷積核的深度可分離卷積,將原本的一層卷積改為2層分離的卷積,可以有效地減少模型中的參數(shù),如圖2所示。
圖2 深度可分離卷積結(jié)構(gòu)Fig.2 Depthwise separable convolution structure
深度可分離卷積就是將普通的卷積操作分解為深度卷積和逐點(diǎn)卷積。與標(biāo)準(zhǔn)卷積網(wǎng)絡(luò)不一樣的是,在網(wǎng)絡(luò)中將卷積核拆分成為單通道形式,在不改變輸入特征圖像的通道數(shù)的情況下,對(duì)每一通道進(jìn)行卷積操作,這樣就得到了和輸入特征圖通道數(shù)一致的輸出特征圖。逐點(diǎn)卷積就是1×1×1的卷積,主要作用是對(duì)特征圖進(jìn)行升維和降維。通過(guò)深度分離卷積,可以有效地降低模型的參數(shù)數(shù)量,減小網(wǎng)絡(luò)的大小。
通過(guò)對(duì)多級(jí)殘差網(wǎng)絡(luò)的block中的卷積進(jìn)行優(yōu)化,提出了一個(gè)輕量級(jí)的網(wǎng)絡(luò)架構(gòu),有效減少了模型的參數(shù)以及內(nèi)存占用。
在解碼器中主要使用了轉(zhuǎn)置卷積將提取到的特征恢復(fù)成三維模型。解碼器結(jié)構(gòu)如圖1所示。
解碼器中包含多個(gè)轉(zhuǎn)置卷積層和一個(gè)自注意模塊。轉(zhuǎn)置卷積是卷積操作的逆運(yùn)算,與上池化和上采樣層不同,能夠在訓(xùn)練中學(xué)習(xí)參數(shù)。為了提高生成模型的精度,提出了適用于三維模型處理的自注意機(jī)制。它可以學(xué)習(xí)特征圖的整體特征,獲得每一個(gè)位置上的關(guān)注度,保留重要的信息。自注意機(jī)制的結(jié)構(gòu)如圖3所示。
圖3 自注意模塊的結(jié)構(gòu)Fig.3 Structure of self-attention module
傳統(tǒng)的卷積核只能對(duì)特征圖的局部進(jìn)行加權(quán)計(jì)算,而不能獲得位置上的全局相關(guān)信息,自注意機(jī)制的提出就是為了彌補(bǔ)這一缺陷。θ,φ和g都是1×1×1的卷積核,實(shí)際上是為了降低通道數(shù),從而減少計(jì)算量。φ和g對(duì)特征圖卷積之后,為了減少參數(shù)會(huì)進(jìn)行池化操作。同時(shí)為了便于計(jì)算也會(huì)對(duì)張量的維度進(jìn)行變換。θ(xi),φ(xj)矩陣經(jīng)過(guò)點(diǎn)乘獲得每2個(gè)點(diǎn)之間的相關(guān)關(guān)系,softmax函數(shù)對(duì)點(diǎn)乘結(jié)果進(jìn)行歸一化和突出差異。將歸一化的結(jié)果與g(xj)相乘,即將空間注意力機(jī)制應(yīng)用到了所有通道的每張?zhí)卣鲌D對(duì)應(yīng)位置上,本質(zhì)就是輸出的每個(gè)位置值都是其他所有位置的加權(quán)平均值。
yi=softmax(θ(xi)Tφ(xj))g(xj),
(2)
(3)
式中,xi為特征圖中當(dāng)前關(guān)注位置的信息;xj為全局位置信息。
最后的1×1×1卷積核是對(duì)結(jié)果進(jìn)行維度的調(diào)整,將它與最初的輸入維度保持一致。并用殘差連接將最后的結(jié)果Wzyi與輸入的特征xi圖融合得到輸出zi。Wz的初始值為0,保證自注意模塊的嵌入性,即:
zi=Wzyi+xi。
(4)
通過(guò)在解碼器中加入自注意層,對(duì)特征圖的處理中保留了更多的信息,并且能夠?qū)W習(xí)到遠(yuǎn)距離位置間的相關(guān)性,大大提高了模型的精度,在實(shí)驗(yàn)中也得到了驗(yàn)證。
采用MSE損失函數(shù)來(lái)描述輸入數(shù)據(jù)和輸出模型間的差異:
(5)
使用的是Chen等人[3]處理過(guò)的ShapeNet數(shù)據(jù)集,包含飛機(jī)、汽車(chē)、椅子和桌子等13個(gè)類(lèi)別的三維模型,共50 000個(gè)643分辨率的體素模型。其中80%用于訓(xùn)練集,20%用于測(cè)試集,如圖4所示。
圖4 ShapeNet數(shù)據(jù)集Fig.4 ShapeNet datasets
實(shí)驗(yàn)過(guò)程中,在ShapeNet訓(xùn)練集的13個(gè)類(lèi)別上訓(xùn)練了本網(wǎng)絡(luò)。在 PyTorch 中實(shí)現(xiàn)了網(wǎng)絡(luò)模型的構(gòu)建。初始的學(xué)習(xí)率、eps分別設(shè)置為10-5,10-8,Adam用于優(yōu)化學(xué)習(xí)速率,批量大小為8。在 20 GB 內(nèi)存的 Nvidia RTX 3090 Ti GPU上訓(xùn)練本網(wǎng)絡(luò),迭代一次需要600多秒,大概迭代300次,網(wǎng)絡(luò)開(kāi)始收斂。
將在ShapeNet測(cè)試集上驗(yàn)證提出的網(wǎng)絡(luò)模型。為了與基準(zhǔn)保持一致,測(cè)試實(shí)驗(yàn)中只生成了測(cè)試集中每類(lèi)前100個(gè)模型,并計(jì)算它們的平均值。實(shí)驗(yàn)將倒角距離(CD)和交并比(IOU)作為結(jié)果的評(píng)價(jià)指標(biāo)。倒角距離描述的是預(yù)測(cè)的模型與真值之間的距離,其值越小越接近真值。交并比表示的是交集與并集的比值,其值越大交集越多。這2個(gè)指標(biāo)常用作三維重建的損失函數(shù)或評(píng)價(jià)指標(biāo),來(lái)衡量生成模型與真實(shí)值的距離。采用Marching Cubes獲得渲染模型,并引入3DPytorch[27]提取1 024個(gè)點(diǎn)來(lái)計(jì)算CD值,PyMesh來(lái)計(jì)算IOU指標(biāo)。在下列實(shí)驗(yàn)結(jié)果中,為了更好地比較,CD值乘以1 000,IOU值乘以100,作為最終結(jié)果,同時(shí)更好的結(jié)果以黑色加粗表示。下面通過(guò)實(shí)驗(yàn)確定了多級(jí)殘差網(wǎng)絡(luò)層數(shù)的超參數(shù),也設(shè)計(jì)了消融實(shí)驗(yàn)來(lái)證明所加模塊的有效性。最后將本網(wǎng)絡(luò)產(chǎn)生的結(jié)果與最新的方法比較,證明了本網(wǎng)絡(luò)的可比較性。
Resnets在多種任務(wù)中都證明了它的有效性,但在三維任務(wù)中還沒(méi)有突出的研究成果。為了取得更好的精度,本文對(duì)三維表達(dá)任務(wù)中的3D-Resnets的層數(shù)進(jìn)行了研究,并對(duì)多種層數(shù)的網(wǎng)絡(luò)進(jìn)行了實(shí)驗(yàn),來(lái)獲得最好的結(jié)果,如表1所示。
表1 不同層數(shù)的3D-Resnets與CNN-AE的CD值Tab.1 CD values of CNN-AE and 3D-Resnets with different layers
在本次實(shí)驗(yàn)中,比較了多層的多級(jí)殘差網(wǎng)絡(luò),用CNN-AE的解碼器作為解碼器。實(shí)驗(yàn)結(jié)果表明,在200次迭代下,18層的Resnets能在各個(gè)類(lèi)別上取得最好的結(jié)果,相比CNN-AE也獲得了顯著的提升。因此在接下來(lái)的網(wǎng)絡(luò)中都使用18層的Resnets網(wǎng)絡(luò)進(jìn)行比較。
將從實(shí)驗(yàn)上驗(yàn)證網(wǎng)絡(luò)中模塊的有效性。在消融研究中,將Light Res Sa(LRS)也就是加了深度卷積以及自注意機(jī)制的網(wǎng)絡(luò)與分別刪減這2個(gè)模塊的網(wǎng)絡(luò)進(jìn)行比較。采用18層的多級(jí)殘差網(wǎng)絡(luò)作為編碼器,3D反卷積網(wǎng)絡(luò)作為解碼器。將其與在block中修改為深度分離卷積的Light Res(LR)和在解碼器中加了自注意機(jī)制的Res Sa(RS)比較,并在 ShapeNet數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。本網(wǎng)絡(luò)可分為2部分:深度可分離卷積的多級(jí)殘差特征編碼器和自注意的解碼器。文中將重點(diǎn)介紹深度可分離卷積和自注意機(jī)制的有效性。
4.2.1 深度可分離卷積
為了減少模型的參數(shù)和內(nèi)存占用,在網(wǎng)絡(luò)中將Resnets的殘差塊中的卷積層調(diào)整為深度可分離卷積層。深度分離卷積是一種將卷積層分解的輕量級(jí)網(wǎng)絡(luò)結(jié)構(gòu),可以在保持精度的條件下,有效減小模型的大小,提高運(yùn)行效率。網(wǎng)絡(luò)的調(diào)整如圖3所示,對(duì)比結(jié)果如表2所示,更好的結(jié)果用黑色加粗表示。調(diào)整前后的參數(shù)大小(單位MB)、內(nèi)存大小(單位GB)和訓(xùn)練以及測(cè)試時(shí)間(單位s)對(duì)比如表3所示。
表2 消融實(shí)驗(yàn)的CD值對(duì)比結(jié)果Tab.2 Comparison results of CD value in ablation experiment
表3 模型大小、參數(shù)的對(duì)比結(jié)果Tab.3 Comparison results of model size and parameters
通過(guò)Res Sa網(wǎng)絡(luò)與Light Res Sa網(wǎng)絡(luò)比較,可以看到模型的參數(shù)數(shù)量減少了12.1%,內(nèi)存占用率下降了約2.52%。同時(shí),CD指標(biāo)平均值與只用Resnets相比,僅下降了約8%,但同時(shí)訓(xùn)練時(shí)間和測(cè)試時(shí)間有所加長(zhǎng)。因此,實(shí)驗(yàn)結(jié)果證明了加入深度可分離卷積可以對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化。
4.2.2 自注意機(jī)制
本文設(shè)計(jì)了適用于三維模型處理的自注意模塊,將其應(yīng)用于解碼器的部分。它的作用主要是學(xué)習(xí)特征圖中每2個(gè)位置之間的相關(guān)性,從而改善傳統(tǒng)卷積操作感受野不足的缺陷,得到特征圖整體的信息。本網(wǎng)絡(luò)在解碼器的反卷積層中加入自注意機(jī)制。
實(shí)驗(yàn)證明,加入自注意模塊后的確能夠優(yōu)化測(cè)試結(jié)果。實(shí)驗(yàn)結(jié)果如表2所示。Light Res Sa與Light Res相比較,CD值的平均結(jié)果提升了3%左右,并且在絕大多類(lèi)別上都有所提升,證明它的有效性。
將本網(wǎng)絡(luò)與最近的工作做了定性和定量的比較,并且也與最新的表示方法進(jìn)行了比較,證明了本網(wǎng)絡(luò)的有效性和可比較性。
4.3.1 定性比較
用不同的方法在ShapeNet數(shù)據(jù)集上產(chǎn)生的體素模型如圖5所示。定性結(jié)果顯示,基于體素的自編碼器相對(duì)于隱函數(shù)表示的方法,更能保持體素網(wǎng)格的完整性。IM-AE產(chǎn)生的模型往往會(huì)有殘缺或者多余的部分,而CNN-AE和Light Res Sa及Res Sa網(wǎng)絡(luò)在大部分類(lèi)別中都能重建出完整的體素網(wǎng)格。IM-AE的結(jié)果相對(duì)來(lái)說(shuō),表面更加平滑一些,這是因?yàn)镮M-AE是基于體素表面的點(diǎn)來(lái)恢復(fù)結(jié)構(gòu)的。與CNN-AE相比,Light Res Sa及Res Sa網(wǎng)絡(luò)能保留更多的細(xì)節(jié)和完整的結(jié)構(gòu),這正是3D-Resnets編碼器的能夠提取多級(jí)的殘差特征的緣故。
(a) Ground-truth
同時(shí),對(duì)于柜子、槍支和船艇這樣具有很多細(xì)節(jié)的物體,重建的效果不是很好,往往得到的是不完整的網(wǎng)格模型,它們只能學(xué)習(xí)到粗糙的形狀,這也是很多生成模型存在的問(wèn)題。
4.3.2 定量比較
為了評(píng)估生成模型,將實(shí)驗(yàn)結(jié)果與最新的研究做定量比較。將交并比(IOU)和倒角距離(CD)值作為評(píng)價(jià)指標(biāo)。
在5個(gè)類(lèi)別上進(jìn)行試驗(yàn),將Light-Res Sa和Res Sa與CNN-AE和IM-AE比較了CD和IOU結(jié)果,如表4所示。將計(jì)算的結(jié)果,與IM-AE發(fā)布的結(jié)果直接進(jìn)行了比較,可以看到Res Sa網(wǎng)絡(luò)的結(jié)果是最好的,輕量級(jí)的Light Res Sa也在所有類(lèi)別上超過(guò)了其他方法,僅次于Res Sa。本網(wǎng)絡(luò)的CD值在每個(gè)類(lèi)別上超過(guò)其他方法。而IOU指標(biāo)在大部分類(lèi)別以及平均值上都很有優(yōu)勢(shì)。對(duì)于aircraft和rifle兩個(gè)類(lèi)別上,本網(wǎng)絡(luò)相比CNN-AE在CD值上有一些降低。由圖5也可以看到,Light Res Sa及Res Sa網(wǎng)絡(luò)的結(jié)果中aircraft、rifle相對(duì)于CNN-AE,雖然都有整體的結(jié)構(gòu),但是缺少細(xì)節(jié)部分。因此可以認(rèn)為對(duì)于具有復(fù)雜細(xì)節(jié)且微小部件的模型,Resnets可能有一定局限性。總體上來(lái)說(shuō),本網(wǎng)絡(luò)的表示結(jié)果更加接近于真實(shí)模型。相對(duì)CNN-AE有很大提升。這證明了3D-Resnets在提取特征方面的重要作用,它可以在深度神經(jīng)網(wǎng)絡(luò)中有效地學(xué)習(xí)到三維特征,并將其映射到向量上。同樣也證明了Non-local block在保留全局信息上的有效性,因此模型的指標(biāo)才超過(guò)了其他網(wǎng)絡(luò)。
表4 所提出的方法與基準(zhǔn)方法IOU和CD指標(biāo)對(duì)比Tab.4 Comparison of IOU and CD indicators between proposed method and reference method
為了進(jìn)一步證明本網(wǎng)絡(luò)的有效性,在飛機(jī)、汽車(chē)、椅子等多個(gè)類(lèi)別上將Light Res Sa及Res Sa網(wǎng)絡(luò)與Volumetric Primitives (VP)[4],Super Quadrics (SQ)[30],Branched Auto Encoders (BAE)[7],BSP[8]進(jìn)行比較。其中BAE*[7]是BAE用隱函數(shù)生成的版本,這些網(wǎng)絡(luò)都是最近的三維模型生成方法。
結(jié)果如表5所示。由表中可以看到,與其他網(wǎng)絡(luò)相比, Res Sa網(wǎng)絡(luò)在所有類(lèi)別上都取得了最好的結(jié)果,而Light Res Sa僅次于Res Sa,在大部分類(lèi)別上超過(guò)其他方法。只在table和chair兩個(gè)類(lèi)別上次于其他方法。2種網(wǎng)絡(luò)平均的結(jié)果也超過(guò)了其他類(lèi)別。再次證明了本網(wǎng)絡(luò)與最新的方法相比,依然具有競(jìng)爭(zhēng)力,能夠獲得精細(xì)的生成模型。
表5 所提出的方法與最近的方法IOU值的對(duì)比Tab.5 Comparison of IOU values between proposed method and recent methods
本文提出了一種形狀表達(dá)中的多級(jí)尺度殘差特征編碼模型,利用體素的多尺度特征之間相關(guān)性,學(xué)習(xí)更有效的特征編碼。在此基礎(chǔ)上在解碼器中引入自注意機(jī)制,進(jìn)一步提高解碼模型的精度。此外,還探索研究了一種體素殘差編碼的深度分離卷積方法,在精度下降不大的條件下有效降低了模型的參數(shù)。通過(guò)消融實(shí)驗(yàn),證明了這些模塊的有效性。也通過(guò)定性以及定量實(shí)驗(yàn),證明了多級(jí)尺度殘差特征的編碼有效性。但在本文中只研究了形狀表達(dá)工作,在其他方向上有所不足。在以后的工作中,將探索形狀檢索、形狀分類(lèi)等其他任務(wù),以期得到更好的結(jié)果。