張玉麒 陳 加 葉立志 田 元 夏 丹 陳亞松
(華中師范大學(xué)教育信息技術(shù)學(xué)院 湖北 武漢 430079)
從二維圖像中獲得三維信息并恢復(fù)三維模型是計(jì)算機(jī)視覺(jué)研究的主要方向之一。基于圖像的三維重建在諸如商品展示、文物三維修復(fù)、智慧城市建設(shè)、醫(yī)療器官重建等領(lǐng)域也具有重要的應(yīng)用價(jià)值[1-5]?;趫D像的三維重建問(wèn)題按照重建圖像的數(shù)量可以分為基于多幅圖像的三維重建方法[6-9]和基于單幅圖像的重建方法,按照重建的內(nèi)容可以分為對(duì)物體的重建和對(duì)場(chǎng)景的重建[10]。本文主要針對(duì)基于單幅圖像的物體重建方法展開(kāi)研究。
傳統(tǒng)方法按照重建方法的不同可以分為基于模型的重建方法和基于幾何外形恢復(fù)的重建方法。基于模型重建的方法通過(guò)匹配輸入圖像和模型,找到模型的最佳參數(shù)來(lái)進(jìn)行重建?;贑AD模型的方法[11-12],能夠大致地展現(xiàn)物體的近似外形,在找到一組對(duì)應(yīng)點(diǎn)后,可以很好地確定相應(yīng)實(shí)例的視點(diǎn),但是其獲得的模型和實(shí)際的模型仍然有很大偏差。形變模型(Morphable model)常用來(lái)重建人臉部分[13-14],其主要為一些可以變形的線(xiàn)性組合模型,通常由一些三維掃描的設(shè)備獲取。Cashman等[15]找到了降低三維數(shù)據(jù)獲取門(mén)檻的方式,通過(guò)三維模型和輔助的二維信息學(xué)習(xí)到相應(yīng)的形變模型來(lái)重建物體。Vicente等[16]先在圖像數(shù)據(jù)集中匹配一張和輸入圖像相同類(lèi)型相似視角的圖像,結(jié)合了可視外殼的方法,但是其無(wú)法應(yīng)用于真實(shí)拍攝的圖像。Kar等[17]在Vicente等的工作基礎(chǔ)上,通過(guò)物體的二維注釋來(lái)學(xué)習(xí)相應(yīng)的形變模型,不但可以重建真實(shí)拍攝的圖像,在重建效果上也有了一定的提升。基于模型的方法因?yàn)榇嬖谠O(shè)計(jì)好的模型,對(duì)固定類(lèi)別的物體能夠取得相對(duì)較好的重建效果,但是無(wú)法具有較好的泛化性?;趲缀瓮庑位謴?fù)的方法主要包括從陰影中恢復(fù)外形(Shape from shading)[18-19]和從紋理中恢復(fù)外形(Shape from texture)[20-21],基于幾何外形恢復(fù)的方法能重建較多種類(lèi)的物體,但其往往對(duì)灰度和光照等要求較高,對(duì)真實(shí)場(chǎng)景的物體圖片的重建效果欠佳。
近年來(lái),隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,出現(xiàn)了基于深度學(xué)習(xí)的物體重建方法。Choy等[22]提出了一套端到端的基于體素的重建網(wǎng)絡(luò)結(jié)構(gòu)(3D recurrent reconstruction neural network,3D-R2N2),與傳統(tǒng)方法通過(guò)匹配一個(gè)最近似的模型并不斷優(yōu)化其參數(shù)得到最佳模型不同,3D-R2N2利用大量的訓(xùn)練去學(xué)習(xí)二維圖像和三維模型之間的映射,其無(wú)需對(duì)圖像加入分類(lèi)標(biāo)簽。在以IoU(Intersection-over-Union)值作為評(píng)價(jià)指標(biāo)的對(duì)比實(shí)驗(yàn)中,3D-R2N2的重建效果優(yōu)于效果最好的傳統(tǒng)方法。但其在重建精度上仍無(wú)法達(dá)到可以使用的程度,且部分重建細(xì)節(jié)如桌腿等會(huì)存在缺失的問(wèn)題,相較于二維領(lǐng)域也存在著計(jì)算量大、訓(xùn)練時(shí)間長(zhǎng)的缺點(diǎn)。此外也出現(xiàn)了基于深度學(xué)習(xí)的點(diǎn)云重建方法[23-25]和網(wǎng)格重建方法[26-28],與傳統(tǒng)方法相比也取得了較好的重建效果。
本文采用與3D-R2N2相似的網(wǎng)絡(luò)結(jié)構(gòu)來(lái)做基于體素的單幅圖像物體重建,并針對(duì)相應(yīng)模塊作出改進(jìn)。
本文方法具有如下特點(diǎn):
(1) 針對(duì)Encoder模塊進(jìn)行了改進(jìn)。本文的Encoder模塊使用改進(jìn)的inception-resnet網(wǎng)絡(luò)結(jié)構(gòu),并使用全局平均池化來(lái)代替全連接層,與3D-R2N2的重建結(jié)果相比能夠得到更高的IoU值,重建精度更高。
(2) 針對(duì)單幅圖像信息量少的問(wèn)題,采用多種網(wǎng)絡(luò)結(jié)構(gòu)提取多特征并依次輸入3D-LSTM模塊中,從而增強(qiáng)單幅圖像的重建效果。
(3) 與3D-R2N2相比,本文提出的方法具有更低的計(jì)算開(kāi)銷(xiāo)。
3D-R2N2網(wǎng)絡(luò)采用監(jiān)督學(xué)習(xí)的方式,僅在邊界框信息(Bounding boxes)的輔助下,就可以端到端地從單幅或者多幅圖像中重建出圖像中物體的三維模型。其網(wǎng)絡(luò)結(jié)構(gòu)由三部分組成:卷積神經(jīng)網(wǎng)絡(luò)構(gòu)成的編碼器(Encoder)、三維卷積長(zhǎng)短期記憶網(wǎng)絡(luò)(3D convolutional LSTM)和解碼器(Decoder)。
Encoder模塊將輸入的圖像轉(zhuǎn)化為較低緯度的特征向量。其網(wǎng)絡(luò)結(jié)構(gòu)包含了12個(gè)卷積層,1個(gè)全連接層和5條殘余連接(Residual connection)。其中殘余連接是在每?jī)蓚€(gè)卷積層間添加,為了匹配卷積操作后的通道數(shù),殘余連接使用1×1卷積。Encoder模塊最終輸出一個(gè)維度為1 024的特征向量。
3D convolutional LSTM模塊通過(guò)Encoder模塊得到的特征向量去更新其中記憶單元的信息。該模塊由n×n×n個(gè)3D-LSTM單元組成,其中n為3D-LSTM網(wǎng)格的空間分辨率。3D-LSTM單元在空間上分布在3D網(wǎng)格結(jié)構(gòu)中,每個(gè)單元負(fù)責(zé)重建特定部分的最終輸出,其都對(duì)應(yīng)最終重建輸出矩陣的一個(gè)元素(i,j,k),單元中還伴隨著一個(gè)獨(dú)立的隱藏狀態(tài)ht。
Decoder模塊接收3D-LSTM傳來(lái)的隱藏狀態(tài)ht,并將它們轉(zhuǎn)化為體素塊存在與否的概率,最終通過(guò)得到每個(gè)體素塊概率的值為0或者1來(lái)確認(rèn)是否重建該體素塊。與Encoder模塊相同,Decoder模塊也由卷積神經(jīng)網(wǎng)絡(luò)和相應(yīng)的殘余連接組成,但這里使用了3×3×3的卷積核進(jìn)行三維卷積,同時(shí)在Decoder模塊會(huì)進(jìn)行三維上池化(3D unpooling)來(lái)對(duì)三維信息進(jìn)行處理。
盡管3D-R2N2的Encoder模塊使用了帶有殘余連接的卷積網(wǎng)絡(luò),但仍存在著特征提取效果差導(dǎo)致的重建精度問(wèn)題。GooleNet[29]首次提出的Inception模塊可以一次性使用多個(gè)不同尺寸的卷積核,能夠讓網(wǎng)絡(luò)自己選擇需要的特征,如選擇大尺寸的卷積核可以抓取到像素與周邊像素之間的關(guān)系。同時(shí),Inception模塊增大了網(wǎng)絡(luò)寬度,能夠?qū)τ性肼暤膱D片提取到更多的深度特征,讓含噪聲的圖片具有更好的泛化能力。受到Szegedy等[30]提出的方法的啟發(fā),本文在保存殘余連接的同時(shí)加入了Inception模塊,既能夠利用Resnet中的殘余連接解決梯度消失的問(wèn)題,又能夠利用Inception模塊提取更深更細(xì)節(jié)的圖像特征。本文設(shè)計(jì)了兩種改進(jìn)的Inception-resnet模塊,其中Inception-resnet-A結(jié)構(gòu)如圖1所示。
圖1 Inception-resnet-A的結(jié)構(gòu)
Inception-resnet-A模塊包括3個(gè)卷積分支,在第一個(gè)卷積分支中將3×3卷積替換為1×3和3×1兩種大小的卷積核,這種非對(duì)稱(chēng)卷積核能夠替代3×3卷積核的同時(shí)節(jié)省計(jì)算量,并提取到更多圖像的局部特征。放在3×3卷積核前的1×1卷積用于控制輸入特征的通道數(shù)。第三個(gè)卷積分支使用池化來(lái)增加整體的非線(xiàn)性特征。同時(shí)模塊仍保留著殘余連接,整體模塊使用較小的卷積核,但能夠較好地提取局部特征。
Inception-resnet-B模塊采用了更大的卷積核尺寸,5×1和1×5兩個(gè)卷積核由5×5的卷積核拆分得到,中間分支僅采用了1×1特征用來(lái)對(duì)不同通道的特征進(jìn)行統(tǒng)一。該結(jié)構(gòu)能夠更好地抓取像素與像素之間的關(guān)系。其結(jié)構(gòu)如圖2所示。
圖2 Inception-resnet-B的結(jié)構(gòu)
(1)
改進(jìn)后的Encoder模塊的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。與3D-R2N2相比,網(wǎng)絡(luò)在層數(shù)上沒(méi)有增加,網(wǎng)絡(luò)的前四層沒(méi)有變化,仍使用帶有殘余連接的卷積神經(jīng)網(wǎng)絡(luò)。但是從第五層開(kāi)始使用了改進(jìn)的Inception-resnet模塊替換了單純帶有殘余連接的卷積網(wǎng)絡(luò),每個(gè)Inception的分支后連接有1×1的線(xiàn)性卷積核,其主要用來(lái)統(tǒng)一跳躍連接后的通道維度。輸入的圖片經(jīng)過(guò)Inception-resnet模塊后,再經(jīng)過(guò)全局平均池化的處理,最終輸出一個(gè)維度為1 024的特征向量。
圖3 改進(jìn)的Encoder模塊網(wǎng)絡(luò)結(jié)構(gòu)
使用不同的Encoder網(wǎng)絡(luò)結(jié)構(gòu)會(huì)得到不同的重建結(jié)果,原因在于不同的網(wǎng)絡(luò)結(jié)構(gòu)的特征提取能力不同,某一種網(wǎng)絡(luò)結(jié)構(gòu)在特定的特征上表現(xiàn)出較好的能力,但可能在其他特征上表現(xiàn)較差。單幅圖像本身就包含較少的信息,如果只使用一種網(wǎng)絡(luò)結(jié)構(gòu)用作特征提取,則會(huì)限制重建的性能。
本文在Encoder模塊中使用多種網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行特征提取,采用的網(wǎng)絡(luò)結(jié)構(gòu)有AlexNet[31]、ResNet[32]、DenseNet[33]以及本文中改進(jìn)的Inception-resnet,幾種網(wǎng)絡(luò)結(jié)構(gòu)均為現(xiàn)有方法中具有開(kāi)創(chuàng)性且效果較好的網(wǎng)絡(luò)結(jié)構(gòu)。在本文提出的多特征重建網(wǎng)絡(luò)框架中,四種網(wǎng)絡(luò)結(jié)構(gòu)對(duì)同一張圖像提取到四種不同的特征,所提取的四種特征分別依次輸入3D-LSTM中并進(jìn)行整合,從而達(dá)到模擬多幅圖像的重建的過(guò)程,進(jìn)而增強(qiáng)單幅圖像的重建效果。多特征重建網(wǎng)絡(luò)的整體結(jié)構(gòu)如圖4所示。
圖4 多特征重建網(wǎng)絡(luò)結(jié)構(gòu)框架
本文使用Theano框架來(lái)實(shí)現(xiàn)相應(yīng)的網(wǎng)絡(luò)模型。實(shí)驗(yàn)在配置有 Intel Xeon E3 1230 V5 CPU(3.40 Ghz),Nvidia GeForce 1080 Ti GPU(11 GB)的硬件平臺(tái)上進(jìn)行。
本文采用ShapeNet數(shù)據(jù)集[34]作為網(wǎng)絡(luò)訓(xùn)練和測(cè)試所使用的數(shù)據(jù)集。該數(shù)據(jù)集包括了13個(gè)種類(lèi)共43 783個(gè)CAD模型,本文采用數(shù)據(jù)集中的37 192個(gè)CAD模型作為訓(xùn)練集,6 591個(gè)剩余的CAD模型作為測(cè)試集。
本文采用IoU值,也即網(wǎng)絡(luò)輸出結(jié)果與對(duì)應(yīng)真實(shí)模型的交疊率作為評(píng)價(jià)三維重建精度的評(píng)判標(biāo)準(zhǔn)。
網(wǎng)絡(luò)輸入的圖像大小為127×127,輸出體素大小為32×32×32,在網(wǎng)絡(luò)模型中使用了Adam算法[35]來(lái)優(yōu)化梯度下降過(guò)程,加速網(wǎng)絡(luò)的訓(xùn)練速度,其中的超參數(shù)β1值為0.9,β2值為0.999,權(quán)重衰減值為5×10-6。LeakyReLU中斜率設(shè)置為0.1,初始的學(xué)習(xí)率設(shè)置為了10-5。為了實(shí)現(xiàn)實(shí)驗(yàn)的公平對(duì)照,本文網(wǎng)絡(luò)的初始超參數(shù)值采用了和3D-R2N2一樣的設(shè)置。多特征重建網(wǎng)絡(luò)的四種網(wǎng)絡(luò)結(jié)構(gòu)均采用與3D-R2N2相同的12層。
本文針對(duì)ShapeNet數(shù)據(jù)集中13個(gè)種類(lèi)的物體分別進(jìn)行了實(shí)驗(yàn),并且針對(duì)Encoder模塊的改動(dòng)以及多特征重建網(wǎng)絡(luò)分別做了單一的對(duì)照實(shí)驗(yàn),僅使用改進(jìn)后的Inception-resnet模塊的網(wǎng)絡(luò)稱(chēng)為New encoder 3D-R2N2,使用多種網(wǎng)絡(luò)結(jié)構(gòu)作為Encoder的多特征網(wǎng)絡(luò)結(jié)構(gòu)稱(chēng)為Multi-feature 3D-R2N2。表1顯示New encoder 3D-R2N2在13個(gè)主要類(lèi)別中有7類(lèi)的重建效果優(yōu)于3D-R2N2,Multi-feature 3D-R2N2在13個(gè)主要類(lèi)別中有10類(lèi)優(yōu)于3D-R2N2,且兩者整體平均重建表現(xiàn)均優(yōu)于3D-R2N2,該結(jié)果證明了本文方法的有效性。實(shí)驗(yàn)分析可知,引入改進(jìn)后的Inception-resnet結(jié)構(gòu)的Encoder模塊能夠更好地提取圖像的細(xì)部特征及深度特征,在面對(duì)燈、電話(huà)等重建細(xì)節(jié)較多的物體時(shí)有相對(duì)較大的效果提升。但在面對(duì)諸如桌子、櫥柜等結(jié)構(gòu)相對(duì)簡(jiǎn)單的物體,其表現(xiàn)反而不如3D-R2N2,這也印證了本文提到的使用不同的網(wǎng)絡(luò)結(jié)構(gòu)提取特征,會(huì)對(duì)不同的特征產(chǎn)生不同的表現(xiàn)。而使用了多種網(wǎng)絡(luò)結(jié)構(gòu)來(lái)提取多特征的多特征重建網(wǎng)絡(luò),對(duì)重建效果的提升則是全面的,僅在飛機(jī)、燈和步槍三類(lèi)上IoU值與3D-R2N2近乎持平,其余10類(lèi)均優(yōu)于3D-R2N2。本文將多特征重建網(wǎng)絡(luò)的重建模型與3D-R2N2進(jìn)行了對(duì)比,其重建模型對(duì)比如圖5所示。通過(guò)模型對(duì)比可以看出,本文的重建結(jié)果擁有更多細(xì)節(jié),重建效果更好。
表1 不同重建方法的IoU值對(duì)比
種類(lèi)3D-R2N2New encoder 3D-R2N2Multi-feature 3D-R2N2飛機(jī)0.5130.5300.510長(zhǎng)凳0.4210.5470.450櫥柜0.7160.6380.740車(chē)0.7980.6950.804椅子0.4660.6950.497監(jiān)視器0.4680.5480.497燈0.3810.4960.350揚(yáng)聲器0.6620.6420.687步槍0.5440.5100.509沙發(fā)0.6280.6420.661桌子0.5130.4970.512電話(huà)0.6610.5570.669船舶0.5130.5590.569均值0.5600.5710.580
圖5 多特征重建網(wǎng)絡(luò)與3D-R2N2的重建效果對(duì)比
為了驗(yàn)證改進(jìn)Inception-resnet后的Encoder模塊對(duì)計(jì)算開(kāi)銷(xiāo)的提升,本文仍使用ShapeNet數(shù)據(jù)集對(duì)模型的訓(xùn)練時(shí)間及訓(xùn)練模型的參數(shù)數(shù)量進(jìn)行對(duì)比,其結(jié)果如表2所示。
表2 不同重建方法訓(xùn)練時(shí)間及參數(shù)數(shù)量比較
其中,由于全局平均池化取代了全連接層大量的參數(shù),使得參數(shù)數(shù)量減掉了60%,同時(shí)參數(shù)的減少也加快了訓(xùn)練的時(shí)長(zhǎng),Inception-resnet模塊中加入的非對(duì)稱(chēng)卷積核也能省去該模塊近1/3的訓(xùn)練時(shí)間,最終改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)在訓(xùn)練時(shí)間上也有了較大的改善。實(shí)驗(yàn)結(jié)果也證明了本文所提方法對(duì)計(jì)算開(kāi)銷(xiāo)的提升。
本文采用類(lèi)似于3D-R2N2的網(wǎng)絡(luò)結(jié)構(gòu),通過(guò)使用改進(jìn)的Encoder模塊及結(jié)合多特征的重建網(wǎng)絡(luò)結(jié)構(gòu),進(jìn)一步提高了特征的表達(dá)能力和網(wǎng)絡(luò)的優(yōu)化能力。通過(guò)實(shí)驗(yàn)對(duì)重建的輸出模型的IoU值計(jì)算,得到的結(jié)果證明了本文方法在重建精度上和計(jì)算開(kāi)銷(xiāo)上的提升。下一步的工作是添加一些人為設(shè)計(jì)的結(jié)構(gòu)信息和幾何信息作為網(wǎng)絡(luò)的輔助信息,從而提高該類(lèi)物體的重建精度。