鄭 游,王 磊,楊紫文
武漢工程大學電氣信息學院,湖北 武漢 430205
單目深度估計是在單一視角下采集的彩色圖像上估計圖像中每個像素點相對于拍攝源的距離[1],是計算機視覺中的一個重要課題,廣泛應(yīng)用于機器人導(dǎo)航、三維重建、自動駕駛等領(lǐng)域。近年來,基于深度學習的單目深度估計已經(jīng)取得了很大的進步。最早是Eigen 等[2]通過實驗證明可以利用卷積神經(jīng)網(wǎng)絡(luò)獲得圖像的相對深度。此外,He 等[3]提出使用不同速率的卷積同時提取特征圖,然后通過通道將所有特征連接起來,得到一個融合的特征圖。Wu 等[4]將空間金字塔池應(yīng)用于深度估計任務(wù),使用不同大小的空洞卷積核來獲取不同尺度的特征信息,取得了很好的估計效果。Wu 等[5]提出了多級上下文和多模態(tài)融合網(wǎng)絡(luò)融合多尺度多級上下文特征圖,并從深度信息中學習對象邊緣。盡管大多數(shù)基于深度學習的單目深度估計都表現(xiàn)出了很好的性能,但仍存在著一些挑戰(zhàn)。
大多數(shù)深度估計模型都是基于深度神經(jīng)網(wǎng)絡(luò)提取圖像的特征。然而,經(jīng)過多次卷積和池化操作后會導(dǎo)致信息的丟失,特別是小物體的深度信息和結(jié)構(gòu)細節(jié)。雖然減少卷積層可以保留較多的對象信息,但卻無法獲得高層次語義信息。為了解決這些問題,文獻[6-7]引入了跳躍連接,為解碼器模塊添加低尺度特征,但大多數(shù)情況下,跳躍連接只包括單一尺度的特征圖。此外,很多前期工作參考U-NET[8]架構(gòu)來設(shè)計網(wǎng)絡(luò),然而逐步解碼的方式使得U-NET 在多尺度特征融合任務(wù)中表現(xiàn)不佳。
針對以上問題,本文在編碼階段引入注意力機制[9],使用壓縮與激勵殘差網(wǎng)絡(luò)(squeeze-andexcitation residual network,SE-ResNet)進行編碼,提取不同尺度的特征圖,并增加了特征之間關(guān)聯(lián)度。通過多尺度特征融合網(wǎng)絡(luò)(mlti-scale feature fusion network,MSFFN)對不同尺度的特征圖進行融合,以獲得信息豐富的特征圖。通過多尺度自適應(yīng)深度圖融合網(wǎng)絡(luò)(multi-scale adaptive depth map fusion network,MADFN)對特征圖進行解碼,并通過可學習的權(quán)重對不同尺度的深度圖進行加權(quán)融合,得到包含豐富場景信息的深度圖。
整體網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,主要由MSFFN 和MADFN 兩個模塊組成,網(wǎng)絡(luò)整體采用編碼器-解碼器的結(jié)構(gòu)。
圖1 網(wǎng)絡(luò)總體結(jié)構(gòu)Fig.1 Overall network structure
1.1.1 MSFFN 在特征提取過程中,低尺度層特征圖提供了大量的細節(jié)信息,但存在背景噪聲。高尺度層特征圖具有豐富的語義信息和抽象特征,但丟失了許多對象信息,導(dǎo)致深度預(yù)測的結(jié)果不夠準確。針對這一問題,本文利用MSFFN 將不同尺度的特征圖與拉普拉斯殘差特征圖融合,豐富了特征圖的語義信息和幾何特征。
首先,利用公式(1)計算輸入彩色圖像S的拉普拉斯殘差特征圖Li。
其中,i表示拉普拉斯金字塔中的層級索引,Si是通過原始輸入圖像下采樣到1 2i-1尺度來獲得,Si的大小為S2i-1,U(?)表示采樣倍數(shù)為2 的上采樣函數(shù),在該方法中所有縮放過程都采用雙線性插值。
然后,利用公式(2)將卷積得到的特征圖xi、殘差特征圖Li和從第i+1 層的深度圖上采樣的結(jié)果級聯(lián),將級聯(lián)的特征輸入堆疊的卷積塊Bi中,并將輸出結(jié)果與Li逐像素相加,得到第i層深度圖Ri。其中,R5經(jīng)過空洞空間卷積池化金字塔(atrous spatial pyramid pooling,ASPP)處理得到。
通過這種策略,可以準確還原各個尺度下的局部特征細節(jié)。
1.1.2 MADFN 傳統(tǒng)的深度圖融合大多采用逐級相加的方式,在多尺度深度融合中表現(xiàn)較差[10]。受文獻[11]的啟發(fā),本文提出了一種MADFN 模塊,通過上采樣將多尺度的深度圖調(diào)整到相同大小,并為每個深度圖dk設(shè)置一個可學習的權(quán)重wk。自適應(yīng)融合后的深度圖Df可以表示為式(3):
其中,k表示尺度層級,l= 1,2,3,4,5。圖像中坐標(i,j)位置的深度Yi,j可以表示為式(4):
首先,輸入彩色圖像,如圖2(a)所示。然后,經(jīng)過MSFFN 處理后得到不同尺度下的深度圖,如圖2(b-f)所示。最后,經(jīng)過MADFN 融合后得到的深度圖如圖2(g)所示。
圖2 不同尺度深度圖與自適應(yīng)深度融合結(jié)果:(a)輸入圖像,(b)第5 尺度得到的深度圖,(c)第4 尺度得到的深度圖,(d)第3 尺度得到的深度圖,(e)第2 尺度得到的深度圖,(f)第1 尺度得到的深度圖,(g)自適應(yīng)融合得到的深度圖Fig.2 Depth maps at different scales and adaptive depth fusion results:(a)input image,(b)depth map obtained at the 5th scale,(c)depth map obtained at the 4th scale,(d)depth map obtainedthe at 3rd scale,(e)depth map obtained at the 2nd scale,(f)depth map obtained at the 1st scale,(g)depth map obtained by adaptive fusion
從圖2 中可以看出,經(jīng)過MADFN 處理使融合后得到的深度圖能夠預(yù)測出較多的物體,且物體結(jié)構(gòu)信息清晰。
1.1.3 損失函數(shù) 為了緩解數(shù)據(jù)集中近距離深度數(shù)據(jù)密集和遠距離深度數(shù)據(jù)稀疏產(chǎn)生的不平衡問題,對文獻[2]中使用的損失函數(shù)求平方根,得到損失函數(shù)的計算公式如下:
1.2.1 實驗設(shè)置 本文所設(shè)計的網(wǎng)絡(luò)結(jié)構(gòu)使用Pytorch 框架實現(xiàn)。硬件配置為16 GiB 內(nèi)存的i7-11800H 處理器和12 GiB 顯存的NVIDIA GeForce RTX3060顯卡。在訓練階段,批處理大小設(shè)置為8,初始學習率設(shè)置為0.000 1,權(quán)重衰減率為0.000 5,網(wǎng)絡(luò)參數(shù)采用動量為0.9 的AdamW[12]優(yōu)化器進行優(yōu)化。
1.2.2 數(shù)據(jù)集 本文使用的深度估計數(shù)據(jù)集NYU Depth V2[13],包含249 個訓練場景以及215個測試場景的RGB 圖像和深度圖像。通過對訓練場景中的原始圖片做左右翻轉(zhuǎn)和尺度變換等預(yù)處理,選擇了36 253 個樣本進行訓練,并從測試場景中選擇654 個樣本進行測試。
1.2.3 評價指標 為了評價不同方法的深度估計效果,通常采用以下4 個度量指標[2]:
(1)絕對相對誤差:
(2)均方根誤差:
(3)對數(shù)均方根誤差:
(4)精確度:
在NYU Depth V2 數(shù)據(jù)集上將本文方法與其他單目深度估計方法進行對比實驗,實驗結(jié)果如表1 所示。其中,誤差指標數(shù)值越小,表示深度估計誤差越??;精確度指標數(shù)值越接近1,表示深度估計越準確。
表1 NYU Depth V2 數(shù)據(jù)集上的評價指標表Tab.1 Evaluation indicators on NYU Depth V2 dataset
從表1 中可以看出,本文方法的EA為0.115,ER為0.525,精確度最高為0.993,與大部分算法相比,具有更小的誤差,以及更高的精確度。其中,文獻[18]中采用序數(shù)回歸的損失函數(shù)訓練網(wǎng)絡(luò),得到了更小的誤差值,但導(dǎo)致了計算量比本文方法要大,占用內(nèi)存資源更多與耗時更久。
NYU Depth V2 數(shù)據(jù)集上深度圖可視化結(jié)果對比圖如圖3 所示,從圖3 中可以看出,在室內(nèi)數(shù)據(jù)集的表現(xiàn)上,本文方法預(yù)測的場景深度更連續(xù),并且場景中物體的邊緣輪廓也更加清晰。
圖3 NYU Depth V2 數(shù)據(jù)集上深度圖可視化結(jié)果對比圖:(a、b)輸入的2 幅圖像,(c、d)真值深度圖,(e、f)文獻[18]預(yù)測的深度圖,(g、h)文獻[19]預(yù)測的深度圖,(i、j)文獻[20]預(yù)測的深度圖,(k、l)本文方法預(yù)測的深度圖Fig.3 Comparison of depth map visualization results on NYU Depth V2 dataset:(a,b)two input images,(c,d)ground truth depth map,(e,f)depth map predicted by reference[18],(g,h)depth map predicted by reference[19],(i,j)depth mappredicted by reference[20],(k,l)depth map predicted by the proposed method in this paper
為了進一步分析網(wǎng)絡(luò)中各模塊的作用,在NYU Depth V2 數(shù)據(jù)集上進行了消融實驗,以傳統(tǒng)的編碼-解碼網(wǎng)絡(luò)為基準(Baseline),主要分析多尺度特征融合模塊和多尺度自適應(yīng)深度融合模塊的效果。實驗結(jié)果如表2 所示。
表2 各模塊性能分析Tab.2 Performance analysis of each module
由表2 可以看出,單獨加入MSFFN 模塊,EA、ER和EL分別減少了約9.9%、5.0%和10.7%;閾值分別取1.25,1.252和1.253時,精確度分別提高了約3.2%、0.4%和0.2%。單獨加入MADFN 模塊,EA、ER和EL分別減少了約8.4%、5.3%和8.9%;精確度分別提高了約2.3%、0.5%和0.4%。2 個模塊都添加后,EA、ER和EL分別減少了約12.2%、7.8%和10.7%;精確度分別提高了約4%、0.5%和0.6%。由此可見本文提出的2個網(wǎng)絡(luò)模塊起到了顯著作用。
消融實驗的可視化結(jié)果如圖4 所示。從圖4中可以看出,加入了MSFFN 和MADFN 模塊后,預(yù)測的深度圖質(zhì)量有明顯提升。例如:第一個場景中兩個相鄰座椅之間的空隙也能精確地預(yù)測;第二個場景中書桌上的罐子與座椅上的扶手等細節(jié)地方輪廓也十分清晰。
圖4 消融實驗結(jié)果圖:(a、b)輸入的2 幅圖像,(c、d)Baseline 預(yù)測的深度圖,(e、f)添加MSFFN 模塊預(yù)測的深度圖,(g、h)添加MADFN 模塊預(yù)測的深度圖,(i、j)添加MSFFN 和MADFN 模塊預(yù)測的深度圖Fig.4 Images of ablation experiment results:(a,b)two input images,(c,d)depth map predicted by Baseline,(e,f)depth map predicted by adding the MSFFN module,(g,h)depth map predicted by adding the MADFN module,(i,j)depth map predicted by adding the MSFFN and MADFN modules
本文提出了一種多尺度深度圖自適應(yīng)融合的單目深度估計方法。通過在編碼過程中引入注意力機制,提取到了更多特征細節(jié)。同時利用多尺度特征融合網(wǎng)絡(luò),融合不同尺度的特征圖,得到具有豐富幾何特征和語義信息的特征圖。最后,利用多尺度自適應(yīng)深度融合網(wǎng)絡(luò),自適應(yīng)地融合不同尺度的深度圖,增加了預(yù)測深度圖中的目標信息,解決了預(yù)測深度時丟失物體信息和邊緣深度估計不準確的問題。在NYU Depth V2 數(shù)據(jù)集上測試的大量實驗結(jié)果證明,本文提出的模型預(yù)測的深度圖與其他方法相比具有更多的對象信息、更低的誤差和更為準確的深度精度。后續(xù)研究中,考慮增加網(wǎng)絡(luò)的泛化能力,提高在不同場景下預(yù)測深度的準確性。