溫 靜,李智宏
(山西大學(xué)計算機與信息技術(shù)學(xué)院,太原 030006)
深度估計對理解三維場景具有重要作用,在機器人、增強現(xiàn)實、三維重建、自動駕駛、即時定位與地圖構(gòu)建(Simultaneous Localization and Mapping,SLAM)[1]等領(lǐng)域有著重要的應(yīng)用。傳統(tǒng)方法獲取目標深度信息主要通過深度傳感器實現(xiàn),包括激光雷達、基于結(jié)構(gòu)光的深度傳感器以及立體相機等。然而,這些方法獲取深度圖像成本較高,受環(huán)境影響較大,尚未大規(guī)模應(yīng)用。相比較而言,基于圖像信息進行深度估計[2]可以有效克服上述傳感器的不足。但是由于計算機很難像人類的大腦一樣從單目圖像中自動構(gòu)建或感知到充足的三維結(jié)構(gòu)信息,同時,從單幅圖像映射到深度圖存在大量不確定性,因此單目圖像的深度估計面臨著信息的“無中生有”的挑戰(zhàn),它的研究具有很大的困難同時也具有重要意義。
近些年來,隨著深度學(xué)習(xí)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[3]在圖像處理等領(lǐng)域發(fā)揮著越來越重要的作用。CNN 在特征提取、結(jié)果分類等方面無須人工干預(yù),大大提高了模型的通用性。因此,國內(nèi)外許多學(xué)者開始廣泛使用CNN 來研究單目圖像的深度估計問題。廖斌等[4]提出一種基于孔卷積神經(jīng)網(wǎng)絡(luò)的深度估計模型。隨著條件隨機場(Conditional Random Field,CRF)[5]在語義分割上表現(xiàn)優(yōu)異,Liu 等[6]提出將卷積神經(jīng)網(wǎng)絡(luò)與連續(xù)CRF 相結(jié)合;但是,文中提到的超像素分割仍然需要人工劃分。Eigen等[7]提出了一種基于多尺度網(wǎng)絡(luò)結(jié)構(gòu)的深度學(xué)習(xí)方法,通過兩個尺度對圖像分別進行全局與局部的特征采樣,獲得最終輸出,此方法無須提供任何人工分類特征,直接在原始圖片上進行訓(xùn)練并獲得像素級別的深度信息結(jié)果。在此基礎(chǔ)上,Laina 等[8]提出一種使用殘差網(wǎng)絡(luò)(Residual Network,ResNet)[9]的模型,該模型利用ResNet 特征前向傳播高效的特性,結(jié)合更深、更復(fù)雜的網(wǎng)絡(luò),有效提高了深度預(yù)測圖的精度。最近,Yang 等[10]進一步推導(dǎo)法線表示,并提出了管道內(nèi)密集的深度-法線一致性,這不僅可以更好地規(guī)范預(yù)測深度,而且還可以學(xué)習(xí)產(chǎn)生法線估計;但是,正則化僅在局部應(yīng)用,并且容易會受到圖像梯度的影響,從而在平滑表面內(nèi)產(chǎn)生錯誤的幾何不連續(xù)性。隨后,他們在文獻[11]中開始縮小單眼和基于立體信息的自我監(jiān)督之間的性能差距,并且通過強制邊緣一致性進一步提升性能。Godard等[12]提出一種利用左右眼視圖一致性的無監(jiān)督學(xué)習(xí)方法,通過最小化圖像重建損失和左右眼圖像一致性損失提高深度估計性能。但上述方法在特征提取過程中都只關(guān)注于特征的局部區(qū)域進行空間和通道維度的信息融合,缺乏對于特征通道之間相互關(guān)系的研究,且在精度上仍有提升空間。
針對上述問題,本文根據(jù)深度估計的問題特性,對ResNeXt[13]的網(wǎng)絡(luò)結(jié)構(gòu)進行了改進,并且引入文獻[14]中提出的SE-Module(Squeeze-and-Excitation Module),提出了一種SE-ResNeXt(Squeeze-and-Excitation-ResNeXt)的編碼器解碼器網(wǎng)絡(luò)結(jié)構(gòu),并將其應(yīng)用到單目圖像深度估計的研究中,從特征通道之間的全局信息關(guān)系方面提升性能。
本文提出了一種基于SE-ResNeXt 的單目圖像深度估計方法。本文采用了無監(jiān)督的方法,通過訓(xùn)練網(wǎng)絡(luò)生成視差圖像,然后從視差圖中恢復(fù)深度預(yù)測圖像。具體地,在訓(xùn)練過程中,將左眼圖像輸入到網(wǎng)絡(luò)中,同時輸出兩張分別對應(yīng)雙目左視圖和右視圖的視差圖,然后通過真實的右眼視圖和左眼視圖對應(yīng)視差圖得到重建后的左眼視圖,類似地也可以得到重建后的右眼視圖,并且通過最小化圖像重建損失和左右眼圖像一致性損失提高深度估計性能。網(wǎng)絡(luò)結(jié)構(gòu)采用編碼器解碼器網(wǎng)絡(luò),編碼器網(wǎng)絡(luò)基于ResNet50 結(jié)構(gòu)來設(shè)計,首先本文算法引入ResNeXt 模塊來代替ResNet 模塊的使用,并且根據(jù)深度估計任務(wù)的特性和需求,對ResNeXt 結(jié)構(gòu)進行了改進,獲得恰當(dāng)數(shù)量的網(wǎng)絡(luò)分支,以實現(xiàn)在不增加參數(shù)復(fù)雜度的前提下有效地提高模型的準確率。然后,在ResNeXt 塊后加入SEModule,通過壓縮操作、激勵操作以及權(quán)重的重新分配從特征通道之間的全局信息關(guān)系方面進一步提升網(wǎng)絡(luò)性能。在解碼器網(wǎng)絡(luò)部分,本文沿用了文獻[12]提出的網(wǎng)絡(luò)結(jié)構(gòu),通過一系列的上采樣操作得到最終的視差圖像,然后從視差圖像恢復(fù)深度圖。整體網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。其中,Upconv 表示雙線性插值上采樣操作,Disparity表示最終得到的視差圖像。
圖1 整體網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Overall network structure
ResNeXt 結(jié)構(gòu)最早應(yīng)用于圖像分類領(lǐng)域,其優(yōu)點是在不增加參數(shù)復(fù)雜度的前提下提高準確率?,F(xiàn)有大部分深度學(xué)習(xí)方法為了提高模型的準確率,通常的思路都是加深或加寬網(wǎng)絡(luò),但是隨著超參數(shù)數(shù)量的增加,網(wǎng)絡(luò)設(shè)計的難度和計算開銷也會增加。圖2 列出ResNet 和ResNeXt 的基本單元。其中,C表示分支數(shù),如1×1×64 的內(nèi)容分別表示卷積核大小為1×1,通道數(shù)為64。經(jīng)過消融實驗表明,與ResNet 圖2(a)所示相比,相同的參數(shù)個數(shù)條件下,ResNeXt 圖2(b)所示的結(jié)果更好。
圖2 ResNet和ResNeXt的基本單元Fig.2 Basic units of ResNet and ResNeXt
ResNeXt 結(jié)構(gòu)的具體計算公式如式(1)所示。x表示輸入特征,Ti可以是任意函數(shù),在此處為三個卷積層的堆疊,C表示網(wǎng)絡(luò)輸入寬度。
考慮到ResNeXt 結(jié)構(gòu)中分支數(shù)的選擇對于單目深度估計模型訓(xùn)練時間和實驗結(jié)果的影響,由于ResNeXt 結(jié)構(gòu)中分支數(shù)越多,會造成深度估計模型訓(xùn)練時間越長,而性能不會獲得顯著的提升。本文通過尋找ResNeXt 的合適分支數(shù)量,以提高估計任務(wù)中的模型準確性。經(jīng)過實驗對比發(fā)現(xiàn),當(dāng)分支數(shù)為8 時,可以在保證提高模型的準確率的同時不影響模型訓(xùn)練時間,圖3 所示為選擇不同的分支數(shù)時模型的性能表現(xiàn)和訓(xùn)練時間。具體地,本文采用2.1 節(jié)所述的均方根誤差(Root Mean Squared Error,RMSE)作為模型性能的評價標準,由于RMSE 越小,網(wǎng)絡(luò)性能越好,由圖3(a)可知,當(dāng)分支數(shù)為8 時,模型性能達到最佳;且由圖3(b)可以看出,隨著分支數(shù)增加到訓(xùn)練時長也逐漸變長,當(dāng)分支數(shù)增加到8 時訓(xùn)練時間變化不太明顯,此后分支數(shù)繼續(xù)擴大,模型性能不再提升,但是訓(xùn)練時間明顯變長。
圖3 模型不同分支數(shù)對比Fig.3 Comparison of the model with different branches
考慮到特征提取過程只是在局部區(qū)域進行信息融合,缺乏特征通道之間的全局信息關(guān)系,本文采用文獻[14]提出的SE-Module,通過建模特征通道間的動態(tài)、非線性關(guān)系來提高網(wǎng)絡(luò)的全局信息表示能力,然后采用特征重標定策略校準特征響應(yīng),以實現(xiàn)對原先卷積層不同通道的重新校準,改變不同通道的權(quán)重比值,從而使網(wǎng)絡(luò)能夠在通道信息中加入全局特征,進一步提升了深度圖像的質(zhì)量,并且場景中物體的邊緣結(jié)構(gòu)信息更加清晰、完整。
首先對于輸入的特征圖在空間維度上通過全局平均池化(Global Average Pooling,GAP)對特征進行壓縮,然后通過兩個全連接層以及激活函數(shù)對通道重新加權(quán)校準。最后,在Scale 層將重新校準后的權(quán)重作為特征選擇后的每個特征通道的重要性,然后通過乘法將權(quán)重逐個加權(quán)到之前的特征上,完成在通道維度上對原始特征的重標定。
SE-Module 結(jié)構(gòu)的示意圖如圖4 所示。GAP 表示全局平均池化,F(xiàn)C(Fully Connected Layer)表示全連接層,ReLU(Rectified Linear Unit)和Sigmoid 為激活函數(shù),Scale 為特征權(quán)重表示層,?表示逐元素相乘。
Fig.4 SE-Module結(jié)構(gòu)示意圖Fig.4 Structure of SE-Module
本文提出并設(shè)計了一種基于SE-ResNeXt 的單目深度估計網(wǎng)絡(luò)。如圖1 所示,在編碼器網(wǎng)絡(luò)部分不再使用原始的ResNet 結(jié)構(gòu),而在第1、2 層采用ResNeXt 模塊,第3、4 層采用SE-ResNeXt 網(wǎng)絡(luò)結(jié)構(gòu)。其中,SE-ResNeXt 的結(jié)構(gòu)就是采用2.2 節(jié)以及2.3 節(jié)介紹的兩個結(jié)構(gòu)級聯(lián)構(gòu)成。本文提出的ResNeXt 模塊級聯(lián)SE-Module 的這種網(wǎng)絡(luò)結(jié)構(gòu),可以從特征通道之間的全局信息關(guān)系方面提升網(wǎng)絡(luò)性能。
在第3、4 層采用SE-ResNeXt 網(wǎng)絡(luò)結(jié)構(gòu),是考慮到在單目深度估計網(wǎng)絡(luò)中淺層網(wǎng)絡(luò)提取的特征含有很多圖像局部細節(jié)信息,并且特征通道較少,而深層的網(wǎng)絡(luò)提取的特征包含更多表征圖像空間結(jié)構(gòu)的高級語義信息,因而所提取的特征重要性差別較大,且特征通道較多。因此,在編碼器網(wǎng)絡(luò)部分的第3、4 層采用SE-ResNeXt 網(wǎng)絡(luò)結(jié)構(gòu),最大限度地提升了特征的利用率。經(jīng)過實驗證明,SE-Module 在編碼器網(wǎng)絡(luò)部分的第3、4層ResNeXt模塊之后使用時效果最佳,具體實驗對比在消融實驗分析部分介紹。
此外,本文還通過實驗選取了ResNeXt 結(jié)構(gòu)中合適的分支數(shù),確保在不增加參數(shù)復(fù)雜度的前提下有效地提高模型的準確率。
在本文中,本文算法沿用了文獻[12]所提出的損失函數(shù)。總的損失Ssum由三部分組成:
在訓(xùn)練過程中,網(wǎng)絡(luò)通過從立體對圖像學(xué)習(xí)生成圖像。利用輸入左眼圖像和輸入圖像重建原圖像過程中的損失函數(shù)約束,提高視差圖的準確度。在本文中,采用L1 損失和結(jié)構(gòu)相似性(Structural SIMilarity,SSIM)的組合,它比較輸入圖像及其重建圖像來進行約束,其中N是像素值,SSIM使用3×3濾波器,α=0.85。
為了產(chǎn)生更準確的視差圖像,訓(xùn)練網(wǎng)絡(luò)只將左眼視圖作為網(wǎng)絡(luò)卷積部分的輸入,同時預(yù)測左右眼圖像的視差圖,為了確保左右眼視差的一致性,采用左右視差一致性損失函數(shù)
同時,為了使網(wǎng)絡(luò)生成的視差圖像在局部上保持平滑,對視差梯度?d采用L1損失,圖像視差平滑損失函數(shù)表示為
為了驗證本文算法的有效性,實驗采用KITTI2015[15]數(shù)據(jù)集。KITTI2015 數(shù)據(jù)集包含來自61 個場景的42 382 個立體對圖像,圖像大小為1 242×375 像素。實驗中,本文采用KITTI Split 分割來呈現(xiàn)KITTI 數(shù)據(jù)集的結(jié)果,網(wǎng)絡(luò)基于TensorFlow實現(xiàn),使用ResNet50作為網(wǎng)絡(luò)基本架構(gòu)。
本文將模型的實驗結(jié)果與同樣在KITTI 數(shù)據(jù)集上進行訓(xùn)練的相關(guān)工作進行對比,采用了常用的衡量指標評估結(jié)果,其中Di表示預(yù)測的深度值,Di*表示真實的深度值,N表示測試集中所有圖像的總像素點的個數(shù)。指標表達式如下。
1)絕對相對誤差(Absolute Relative error,AbsRel):
2)平方相對誤差(Squared Relative error,SqRel):
3)均方根誤差(Root Mean Squared Error,RMSE):
4)準確率:
本文算法包含兩個消融因素,即SE-Module和ResNeXt模塊。為了驗證本文算法的有效性,采用如下方式進行消融分析:
a)采用文獻[12]中的基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)作為基準網(wǎng)絡(luò)(Baseline)。
b)僅將Baseline中的ResNet替換為ResNeXt模塊。
c)僅對Baseline添加SE-Module模塊,并且在編碼器網(wǎng)絡(luò)中不同位置添加以得到最佳效果。
d)對b)中的網(wǎng)絡(luò)添加SE-Module 模塊即為本文最終算法。
部分實驗結(jié)果如表1 所示,其中f表示模塊添加在編碼器網(wǎng)絡(luò)的第1、2 層;l 表示模塊添加在第3、4 層。從表1 中結(jié)果可以看出,本文模型中兩個消融因素都可以提高網(wǎng)絡(luò)的性能,在多種評價指標中都有明顯提升;并且,實驗結(jié)果表明SEModule在編碼器網(wǎng)絡(luò)部分的第3、4層使用時效果最佳。
表1 網(wǎng)絡(luò)消融分析Tab.1 Ablation analysis of networks
通過實驗,將本文方法與文獻[10]、文獻[11]、文獻[12]、本文Baseline 中添加文獻[14]中提出的嵌入結(jié)構(gòu)的SEResNeX 以及文獻[16]的評估結(jié)果進行對比,其結(jié)果如表2 所示。首先,可以看出,本文提出的基于SE-ResNeXt 方法的深度估計結(jié)果明顯優(yōu)于最近相關(guān)工作,這主要得益于在訓(xùn)練過程中,通過建模特征通道間的動態(tài)、非線性關(guān)系來提高特征通道對全局信息的表示能力,然后通過特征重標定策略重新校準特征,進一步強調(diào)有用特征并抑制對任務(wù)用處不大的特征。相較于文獻[14]中提出的嵌入結(jié)構(gòu)SE-ResNeXt,本文所采用的結(jié)構(gòu)具有更良好的性能。
表2 KITTI數(shù)據(jù)集上實驗結(jié)果對比Tab.2 Comparison of experimental results on KITTI dataset
通過基于SE-ResNeXt 的深度估計模型中得到的深度圖明顯優(yōu)于目前常見方法,并且在細節(jié)處理方面,本文方法具有更強大的能力。
為驗證深度圖像的質(zhì)量,對不同方法生成的圖像進行主觀效果比較,圖5為彩色圖像及其真實深度圖像以及4種方法生成的深度圖像,按照從左到右依次命名為image1、image2和image3;從上到下依次為原圖、真實深度圖、文獻[10]、文獻[11]、文獻[12]、文獻[14]、文獻[16]以及本文方法生成的深度圖。
圖5 各模型深度預(yù)測結(jié)果Fig.5 Depth prediction results of different models
可以看出,本文方法深度圖像的質(zhì)量更高,細節(jié)以及場景結(jié)構(gòu)的表現(xiàn)更為細致。如image1 方框所示,相較于其他方法,本文方法的深度分辨率更高,對于深度更深的物體信息識別更為完整;如image2 方框所示,在光照不均勻的場景下,本文方法對于圖像左側(cè)建筑物以及旁邊的樹木保留了更為豐富的紋理信息,并且細節(jié)處理更加平滑;如image3 方框所示,對于環(huán)境嘈雜,分辨率和尺寸微小且相對深度對比度不清晰的場景下,本文方法識別樹木的輪廓更清晰完整,且不同物體間的區(qū)分度更大。
本文方法生成的深度圖像在細節(jié)處理方面更加清晰,并且邊緣結(jié)構(gòu)更加平滑,包含更豐富而完整的紋理信息,這主要得益于本文提出的深度估計網(wǎng)絡(luò)結(jié)構(gòu)可以有效聚合不同通道中包含的全局信息,進一步有效提高生成深度預(yù)測圖像的質(zhì)量,保證圖像中物體的完整性。然而,本文方法對于復(fù)雜環(huán)境下的深度估計效果仍有提升空間,對場景中距離較遠的物體識別效果不佳,這主要是由于深度大的目標受到光照的影響為網(wǎng)絡(luò)預(yù)測造成了不確定性。如圖6 深度圖白色方框所示,對于遠處的交通標志識別存在誤判,并且輪廓不夠清晰完整。
圖6 復(fù)雜環(huán)境下的深度估計結(jié)果Fig.6 Depth estimation results in complex environment
本文提出了一種基于SE-ResNeXt 的單目圖像深度估計方法,在特征提取階段采用殘差網(wǎng)絡(luò),從特征通道之間的全局信息關(guān)系方面考慮,提高網(wǎng)絡(luò)的全局信息表示能力;同時,引入ResNeXt 結(jié)構(gòu),在不增加參數(shù)復(fù)雜度的前提下有效地提高了模型的準確率。通過KITTI 數(shù)據(jù)集訓(xùn)練,使該模型可以對圖像進行有效的深度估計。相較于原有忽略了特征通道之間的全局信息關(guān)系的方法,本文方法得到更好的實驗數(shù)據(jù),對物體細節(jié)有更好的處理。
但目前此模型對于復(fù)雜環(huán)境的效果仍有提升空間,下一步的工作將在網(wǎng)絡(luò)深度和預(yù)測效率間尋求平衡,以及引入更多先驗信息和約束條件,提升深度估計的預(yù)測性能。