霍智勇,喬璐
(南京郵電大學(xué)通信與信息工程學(xué)院 南京 210023)
從單目圖像中獲取深度信息是理解場(chǎng)景幾何關(guān)系的重要方法,也是三維重建[1]和視點(diǎn)合成[2-3]的關(guān)鍵性技術(shù)。傳統(tǒng)的基于光流或運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)(structure from motion,SfM)[4]的算法可以獲取單目運(yùn)動(dòng)圖像序列或單目視頻的深度信息,卻無(wú)法預(yù)測(cè)單幀靜止圖像的深度。近年來(lái),利用深度學(xué)習(xí)的方法預(yù)測(cè)單目靜止圖像的深度圖成為研究熱點(diǎn)。文獻(xiàn)[5]首次提出采用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行單目深度估計(jì),運(yùn)用神經(jīng)網(wǎng)絡(luò)獲取全局粗略深度圖以及改善局部細(xì)節(jié)。文獻(xiàn)[6]提出了一種包含殘差網(wǎng)絡(luò)模塊的全卷積網(wǎng)絡(luò)對(duì)單目圖像和深度圖之間的模糊映射進(jìn)行建模的方法,為了提高輸出分辨率,再提出了特征上采樣的學(xué)習(xí)方法以及引入反向Huber 損失進(jìn)行優(yōu)化。文獻(xiàn)[7]對(duì)未作標(biāo)記的單目圖像序列,采用無(wú)監(jiān)督的方式實(shí)現(xiàn)對(duì)單目深度估計(jì)網(wǎng)絡(luò)和相機(jī)姿態(tài)估計(jì)網(wǎng)絡(luò)的訓(xùn)練。文獻(xiàn)[8]將卷積神經(jīng)網(wǎng)絡(luò)與連續(xù)條件隨機(jī)場(chǎng)相結(jié)合,估計(jì)單目圖像深度。文獻(xiàn)[9]提出了采用相對(duì)深度進(jìn)行深度預(yù)測(cè)的方法,即對(duì)輸入圖像中由人工標(biāo)注的相對(duì)深度注釋點(diǎn)對(duì)之間的相對(duì)關(guān)系進(jìn)行排序估計(jì)。之后,文獻(xiàn)[10]又通過(guò)采用質(zhì)量評(píng)價(jià)網(wǎng)絡(luò)識(shí)別出基于SfM 方法獲得的高質(zhì)量重構(gòu)圖像,作為監(jiān)督視圖以獲取估計(jì)深度。文獻(xiàn)[11]對(duì)由雙目圖像獲得的GT(ground-truth)深度圖和由深度卷積網(wǎng)絡(luò)生成的預(yù)測(cè)深度圖進(jìn)行隨機(jī)采樣,從而訓(xùn)練出相對(duì)深度預(yù)測(cè)網(wǎng)絡(luò)模型。上述提到的相對(duì)深度方法均采用排序損失,僅針對(duì)輸入圖像中的全局相對(duì)深度信息進(jìn)行訓(xùn)練,忽略了圖像中的幾何信息以及局部邊緣信息,在幾何形狀以及深度不連續(xù)處不能獲得準(zhǔn)確的預(yù)測(cè)結(jié)果。因此,本文提出了一種基于多尺度結(jié)構(gòu)相似度和梯度匹配的聯(lián)合損失函數(shù),對(duì)輸入的單目圖像獲得更準(zhǔn)確的深度預(yù)測(cè),深度不連續(xù)處也更加清晰。
本文在訓(xùn)練中采用了基于文獻(xiàn)[12]的多尺度編碼器?解碼器神經(jīng)網(wǎng)絡(luò)架構(gòu),其網(wǎng)絡(luò)架構(gòu)如圖1所示。編碼器部分是在ResNet50 網(wǎng)絡(luò)基礎(chǔ)上,刪除了ResNet50 網(wǎng)絡(luò)的最后一個(gè)池化層、全連接層以及softmax 層,使編碼器更好地應(yīng)用于密集的每像素預(yù)測(cè)任務(wù);解碼器部分采用多尺度融合模塊,每個(gè)融合模塊由兩個(gè)殘差卷積塊和一個(gè)雙線性上采樣層組成;在解碼器的最后添加一個(gè)自適應(yīng)輸出模塊,該模塊由兩個(gè)卷積層和一個(gè)雙線性上采樣層組成。

圖1 深度估計(jì)網(wǎng)絡(luò)架構(gòu)
輸入圖像通過(guò)編碼器網(wǎng)絡(luò)生成一系列具有不同語(yǔ)義的特征圖,根據(jù)特征圖的分辨率將編碼器分為4 個(gè)不同的構(gòu)建模塊。由于ResNet 包含步長(zhǎng)為2 的卷積序列和池化操作,因此增大了卷積的接受域以捕獲更多的上下文信息,但同時(shí)降低了輸出特征圖的分辨率。在解碼器部分,考慮到若直接使用簡(jiǎn)單的上采樣和反卷積會(huì)生成粗略的預(yù)測(cè)圖像,若使用空洞卷積生成的深度圖會(huì)帶有棋盤偽影,所以為了獲取準(zhǔn)確的預(yù)測(cè)深度圖,本文采用多尺度特征融合模塊。
解碼器中特征融合部分的前向傳播過(guò)程為:首先對(duì)ResNet50 生成的最后一組特征圖進(jìn)行上采樣;然后將編碼器部分獲取到的特征圖與上層融合特征圖通過(guò)多尺度特征融合模塊得到下層融合特征圖,具體如圖2 所示:對(duì)由編碼器獲取到的特征圖使用一個(gè)殘差卷積塊,再將其與上層融合特征圖進(jìn)行合并,最后將合并的結(jié)果再通過(guò)一個(gè)殘差卷積塊以及上采樣,以生成與下一個(gè)輸入塊的分辨率相同的特征圖。為了生成最終的深度預(yù)測(cè)結(jié)果,將通過(guò)3 個(gè)特征融合模塊后的得到的特征結(jié)果輸入到自適應(yīng)輸出模塊,此模塊包括兩個(gè)3×3 卷積層和一個(gè)雙線性上采樣層,得到最終的深度預(yù)測(cè)圖像。

圖2 特征融合模塊
本文提出的聯(lián)合損失函數(shù)為:

式中,第一項(xiàng)損失Lrank為排序損失,用來(lái)訓(xùn)練圖像中的相對(duì)深度以及懲罰預(yù)測(cè)深度圖中像素對(duì)之間錯(cuò)誤的排序關(guān)系;α、β為平衡因子。
對(duì)于每張輸入圖像I,隨機(jī)采樣N個(gè)相對(duì)深度點(diǎn)對(duì)(i,j),其中i和j分別代表點(diǎn)對(duì)中第一個(gè)和第二個(gè)點(diǎn)的位置,總排序損失Lrank可表示為:

深度點(diǎn)對(duì)(i,j)在相應(yīng)預(yù)測(cè)深度圖像上的深度值為(pi,pj),用?(pi,pj)表示預(yù)測(cè)深度中成對(duì)排序損失:

式中,lij為排序標(biāo)簽。為了獲取每對(duì)點(diǎn)對(duì)之間的排序標(biāo)簽,首先從GT 深度圖中獲取深度值,然后獲得GT 點(diǎn)對(duì)深度排序標(biāo)簽,有:

式中,τ為閾值。
聯(lián)合損失函數(shù)中第二項(xiàng)(Lms?ssim)為多尺度結(jié)構(gòu)相似度損失[13],是一種方便的融合不同分辨率圖像細(xì)節(jié)的損失。該損失在結(jié)合圖像分辨率和查看條件的變化方面比單尺度相似度損失提供了更大的靈活性。多尺度結(jié)構(gòu)相似度損失用于預(yù)測(cè)輸入圖像中的幾何形狀,從而提高深度估計(jì)的準(zhǔn)確度:

式中,cj(p,p?)、sj(p,p?)分別表示在尺度為j時(shí),預(yù)測(cè)深度與GT 深度在對(duì)比度和結(jié)構(gòu)上的比較;lM(p,p?)表示僅在最高尺度M時(shí)在亮度上的對(duì)比;參數(shù) αM、βj、γj用于調(diào)整不同成分的相對(duì)重要性。為了簡(jiǎn)化參數(shù)選擇,在尺度j的情況下,設(shè)置αj=βj=γj。
聯(lián)合損失函數(shù)中第三項(xiàng)(LMGM)為尺度不變梯度匹配損失,用于改善僅使用排序損失帶來(lái)的邊緣模糊問(wèn)題,實(shí)現(xiàn)與GT 中的不連續(xù)處相一致以及梯度平滑,將梯度匹配項(xiàng)定義為[14]:

式中,M表示GT 深度圖的像素值;表示在不同尺度s下預(yù)測(cè)深度值p和GT 深度值p?之間的差值,s設(shè)置為4 個(gè)尺度。本文的訓(xùn)練實(shí)驗(yàn)中設(shè)置α= β=0.5。
本文基于深度學(xué)習(xí)框架Pytorch,計(jì)算用CPU為NVIDIA GTX1080ti,操作系統(tǒng)為Centos7.0。實(shí)驗(yàn)過(guò)程中,訓(xùn)練網(wǎng)絡(luò)參數(shù)采用隨機(jī)梯度下降(stochastic gradient descent,SGD)優(yōu)化算法。
本文在訓(xùn)練深度預(yù)測(cè)網(wǎng)絡(luò)時(shí)用高分辨率網(wǎng)絡(luò)雙目圖像(HR-WSI)數(shù)據(jù)集,這是從網(wǎng)上收集的高分辨率雙目圖像的多樣化集合。此數(shù)據(jù)集使用FlowNet2.0生成的視差圖作為數(shù)據(jù)集中g(shù)round-truth 部分,并且使用前后向流一致性屏蔽圖像中的異常值。此外,通過(guò)預(yù)訓(xùn)練的網(wǎng)絡(luò)計(jì)算高質(zhì)量的天空分割掩模,并將天空區(qū)域的視差設(shè)置為最小觀測(cè)值。通過(guò)手工剔除不良GT 數(shù)據(jù)后,此數(shù)據(jù)集包括20378 張圖像用于訓(xùn)練,400 張圖像用于驗(yàn)證。
為了適應(yīng)深度估計(jì)網(wǎng)絡(luò)的輸入,將圖片尺寸隨意裁剪成為384×384,并且對(duì)裁剪后的圖片進(jìn)行歸一化處理。網(wǎng)絡(luò)訓(xùn)練時(shí)的批大小選為4,訓(xùn)練周期設(shè)為80。訓(xùn)練時(shí)編碼器部分的學(xué)習(xí)率設(shè)置為10?5,解碼器部分的初始學(xué)習(xí)率為10?4。
為了測(cè)試深度估計(jì)模型的準(zhǔn)確性與泛化能力,本文選擇了4 種數(shù)據(jù)集進(jìn)行測(cè)試:Ibims[15]、NYUDv2[16]、DIODE[17]、Sintel[18]。以下簡(jiǎn)要概述這4 種數(shù)據(jù)集。
2.2.1 Ibims 數(shù)據(jù)集
Ibims 為一組室內(nèi)數(shù)據(jù)集,包含高分辨率和低分辨率的各種室內(nèi)場(chǎng)景的100 組RGB-D 圖像對(duì)。由數(shù)字單鏡頭反射相機(jī)和高精度激光掃描儀組成的定制采集,用于采集各種室內(nèi)場(chǎng)景的高分辨率圖像和高度精確的深度圖。與相關(guān)的RGB-D 數(shù)據(jù)集相比,Ibims 數(shù)據(jù)集具有噪聲非常低、ground-truth 深度清晰、無(wú)遮擋以及范圍廣等優(yōu)點(diǎn)。
2.2.2 NYU Depth 數(shù)據(jù)集
NYU Depth 數(shù)據(jù)集由來(lái)自各種室內(nèi)場(chǎng)景的視頻序列組成,這些視頻序列由來(lái)自Microsoft Kinect的RGB 和Depth 攝像機(jī)記錄。其中包含1449 個(gè)密集標(biāo)記的RGB 和深度圖像對(duì),該數(shù)據(jù)集中被標(biāo)記的數(shù)據(jù)集為視頻數(shù)據(jù)的子集,并帶有密集的多類標(biāo)記。標(biāo)記數(shù)據(jù)集是原始NYU Depth 數(shù)據(jù)集的子集,由成對(duì)的RGB 幀和深度幀組成,并為每個(gè)圖像標(biāo)注了密集標(biāo)簽。
2.2.3 DIODE 數(shù)據(jù)集
DIODE 數(shù)據(jù)集為一組包含各種高分辨率彩色圖像的數(shù)據(jù)集,具有準(zhǔn)確、密集、遠(yuǎn)距離深度測(cè)量的特點(diǎn),是第一個(gè)包含由一個(gè)傳感器組獲得的室內(nèi)和室外場(chǎng)景RGBD 圖像的公共數(shù)據(jù)集。
2.2.4 Sintel 數(shù)據(jù)集
由于ground-truth 光流很難以自然運(yùn)動(dòng)在真實(shí)場(chǎng)景中進(jìn)行測(cè)量,所以光流數(shù)據(jù)集在尺寸大小、復(fù)雜性和多樣性方面受到限制,使得光流算法難以在實(shí)際數(shù)據(jù)上進(jìn)行訓(xùn)練和測(cè)試。文獻(xiàn)[18]引入了一個(gè)新的光流數(shù)據(jù)集,該數(shù)據(jù)集來(lái)自開(kāi)源3D 動(dòng)畫短片Sintel,具有在流行的Middlebury 流評(píng)估中不具備的長(zhǎng)序列、大運(yùn)動(dòng)、鏡面反射、運(yùn)動(dòng)模糊、散焦模糊和大氣影響等重要特征。由于生成電影的圖形數(shù)據(jù)是開(kāi)源的,因此能夠在復(fù)雜度不同的情況下渲染場(chǎng)景,以評(píng)估現(xiàn)有流算法失敗的地方。
4 種數(shù)據(jù)集在數(shù)值比較實(shí)驗(yàn)中采用了排序誤差[19]來(lái)評(píng)價(jià)深度預(yù)測(cè)的準(zhǔn)確性,深度邊界誤差(depth boundary error,DBE)[15]來(lái)評(píng)價(jià)預(yù)測(cè)深度圖的邊緣準(zhǔn)確性。
1)深度預(yù)測(cè)的準(zhǔn)確性對(duì)比
本文算法結(jié)果同ReDWeb、Youtube3D、HRWSI深度估計(jì)方法的結(jié)果進(jìn)行了對(duì)比試驗(yàn);同時(shí),為了研究在不同損失函數(shù)下預(yù)測(cè)深度圖的準(zhǔn)確性,實(shí)驗(yàn)也對(duì)Ours_MS-SSIM、Ours_MGM 和Ours_ALL方法進(jìn)行了數(shù)值比較。其中,Ours_MS-SSIM 采用HR-WSI 作為訓(xùn)練集,在排序損失上再添加一項(xiàng)多尺度結(jié)構(gòu)相似度損失;Ours_MGM 采用排序損失與多尺度尺度不變梯度匹配損失;Ours_ALL 采用本文提出的基于結(jié)構(gòu)化的聯(lián)合損失,將排序損失、多尺度結(jié)構(gòu)相似度損失以及梯度匹配損失相結(jié)合作為損失函數(shù)。
在4 個(gè)數(shù)據(jù)集下排序誤差的數(shù)值結(jié)果如表1 所示。算法對(duì)數(shù)據(jù)集中的每張圖像隨機(jī)采樣50000對(duì)相對(duì)深度點(diǎn)對(duì)來(lái)計(jì)算排序誤差,排序誤差的表達(dá)式為:

表1 4 種數(shù)據(jù)集下排序誤差數(shù)值比較 %

式中,ωi設(shè)置為1,并且使用式(2)獲得li和(p)之間的排序標(biāo)簽。
根據(jù)表1 中的實(shí)驗(yàn)結(jié)果可以看出,在4 種測(cè)試集下本文算法的排序誤差均低于前3 種方法。①由于Ibims、NYUDv2 僅包含室內(nèi)場(chǎng)景數(shù)據(jù)集,場(chǎng)景中多為剛性物體,深度預(yù)測(cè)時(shí)對(duì)場(chǎng)景中物體的幾何形狀和邊緣要求都很高,由表中二、三列可以看出,本文采用的基于多尺度結(jié)構(gòu)相似度和梯度匹配的算法得到的排序誤差最小,能夠更準(zhǔn)確地預(yù)測(cè)幾何形狀以及深度不連續(xù)處,從而預(yù)測(cè)的準(zhǔn)確性最高;②數(shù)據(jù)集DIODE 主要包含以建筑物為主的室外靜態(tài)場(chǎng)景,所以在預(yù)測(cè)深度時(shí)更關(guān)注這些建筑物的幾何結(jié)構(gòu),所以表1 的第四列中使用Ours_MSSSIM 方法,在排序損失上僅添加結(jié)構(gòu)相似度損失,更準(zhǔn)確地預(yù)測(cè)圖像中的幾何形狀,從而得到最好的數(shù)值結(jié)果;③Sintel 為3D 動(dòng)畫短片視頻幀數(shù)據(jù)集,這些視頻幀的前景大多為非剛性的運(yùn)動(dòng)的人物,對(duì)幾何形狀要求不高,更著重于深度點(diǎn)對(duì)的排序準(zhǔn)確性和深度不連續(xù)處的一致性,所以第五列中僅在排序損失上添加多尺度梯度匹配損失的Ours_MGM 方法獲得了最低的排序損失結(jié)果。
2)深度圖邊緣準(zhǔn)確性對(duì)比
為了評(píng)價(jià)預(yù)測(cè)深度圖的邊緣準(zhǔn)確性,本文采用了深度邊界誤差(DBE)[15]作為度量標(biāo)準(zhǔn),通過(guò)比較預(yù)測(cè)深度圖與GT 深度圖中的邊緣,檢查預(yù)測(cè)的深度圖是否能夠以準(zhǔn)確的方式表示所有相關(guān)的深度不連續(xù)性,在測(cè)試Ibims 數(shù)據(jù)集上分別計(jì)算了準(zhǔn)確誤差以及考慮缺失邊緣的完整誤差。兩種誤差公式分別為:

式中,ybin表示使用結(jié)構(gòu)化邊緣提取出的邊緣;表示通過(guò)二值邊緣圖像的截短倒角距離獲取的GT 邊緣。
根據(jù)表2 中的實(shí)驗(yàn)結(jié)果可以看出,Ours_MGM和Ours_ALL 兩種方法得出的明顯小于其他方法。主要是由于這兩種方法均在損失函數(shù)中添加了一項(xiàng)尺度不變梯度匹配損失,提高了與GT 中不連續(xù)性處的一致性,從而改善僅使用排序損失帶來(lái)的邊緣模糊問(wèn)題。

表2 Ibims 數(shù)據(jù)集下深度邊界誤差(DBE)數(shù)值比較
圖3~圖6 通過(guò)主觀比較更直觀地體現(xiàn)出不同單目深度估計(jì)方法下預(yù)測(cè)深度圖的結(jié)果。
圖3 是在數(shù)據(jù)集Ibims 上的對(duì)比,輸入圖像顯示走廊上方吊燈數(shù)為3 盞,圖3b、圖3c 只能預(yù)測(cè)出一盞燈的深度,圖3d 也只能隱約預(yù)測(cè)出第二盞燈,而圖3e、圖3g 可以在預(yù)測(cè)圖像上呈現(xiàn)3 盞燈的深度。由于Ours_MS-SSIM、Ours_ALL 方法的損失函數(shù)中均包含多尺度結(jié)構(gòu)相似度損失,所以可以更準(zhǔn)確地預(yù)測(cè)圖像中的幾何形狀。

圖3 Ibims 測(cè)試集上的主觀比較
圖4 是在室內(nèi)場(chǎng)景數(shù)據(jù)集NYUDv2 上的對(duì)比,相比于圖4b、圖4c、圖4d,使用本文算法預(yù)測(cè)出的圖4g 中,靠近沙發(fā)的桌子邊緣以及沙發(fā)自身邊緣都更加清晰。同樣的,圖5 為DIODE 測(cè)試集上的比較,圖5g 中欄桿的清晰程度優(yōu)于其他僅使用排序誤差的深度預(yù)測(cè)方法。由圖4 和圖5 可以得出:本文算法在訓(xùn)練函數(shù)中添加一項(xiàng)梯度匹配損失,可以改善圖像邊緣的清晰程度,使得深度不連續(xù)處與GT 圖像更加具有一致性。

圖4 NYUDv2 測(cè)試集上的主觀比較

圖5 DIODE 測(cè)試集_上的主觀比較
圖6 是在視頻幀Sintel 上的比較,左邊女孩和右邊男士的上身與下身的深度是一致的,表現(xiàn)在深度圖上應(yīng)該是深淺顏色幾近相同,圖6f、圖6g 符合這一要求,可以看出使用本文的算法可以提高深度預(yù)測(cè)的準(zhǔn)確性。

圖6 Sintel 測(cè)試集上的主觀比較
為了提高單目深度估計(jì)精度,本文提出了基于多尺度結(jié)構(gòu)相似度和梯度匹配的單目深度估計(jì)算法。針對(duì)圖像中幾何形狀無(wú)法準(zhǔn)確預(yù)測(cè)以及邊緣模糊的問(wèn)題,在排序損失基礎(chǔ)上添加了多尺度結(jié)構(gòu)相似度和尺度不變梯度匹配損失,在單目深度估計(jì)過(guò)程中明顯降低了排序誤差和深度邊界誤差,有效提高了深度預(yù)測(cè)的準(zhǔn)確性。實(shí)驗(yàn)對(duì)Ibims、NYUDv2、DIODE、Sintel4 個(gè)不同類型的數(shù)據(jù)集進(jìn)行了評(píng)估,數(shù)值實(shí)驗(yàn)和主觀評(píng)測(cè)結(jié)果表明,本文方法在定量和定性上都取得了更優(yōu)的結(jié)果,并具有一定的泛化性能。