霍智勇,喬璐
(南京郵電大學通信與信息工程學院 南京 210023)
從單目圖像中獲取深度信息是理解場景幾何關系的重要方法,也是三維重建[1]和視點合成[2-3]的關鍵性技術。傳統(tǒng)的基于光流或運動恢復結構(structure from motion,SfM)[4]的算法可以獲取單目運動圖像序列或單目視頻的深度信息,卻無法預測單幀靜止圖像的深度。近年來,利用深度學習的方法預測單目靜止圖像的深度圖成為研究熱點。文獻[5]首次提出采用卷積神經網(wǎng)絡進行單目深度估計,運用神經網(wǎng)絡獲取全局粗略深度圖以及改善局部細節(jié)。文獻[6]提出了一種包含殘差網(wǎng)絡模塊的全卷積網(wǎng)絡對單目圖像和深度圖之間的模糊映射進行建模的方法,為了提高輸出分辨率,再提出了特征上采樣的學習方法以及引入反向Huber 損失進行優(yōu)化。文獻[7]對未作標記的單目圖像序列,采用無監(jiān)督的方式實現(xiàn)對單目深度估計網(wǎng)絡和相機姿態(tài)估計網(wǎng)絡的訓練。文獻[8]將卷積神經網(wǎng)絡與連續(xù)條件隨機場相結合,估計單目圖像深度。文獻[9]提出了采用相對深度進行深度預測的方法,即對輸入圖像中由人工標注的相對深度注釋點對之間的相對關系進行排序估計。之后,文獻[10]又通過采用質量評價網(wǎng)絡識別出基于SfM 方法獲得的高質量重構圖像,作為監(jiān)督視圖以獲取估計深度。文獻[11]對由雙目圖像獲得的GT(ground-truth)深度圖和由深度卷積網(wǎng)絡生成的預測深度圖進行隨機采樣,從而訓練出相對深度預測網(wǎng)絡模型。上述提到的相對深度方法均采用排序損失,僅針對輸入圖像中的全局相對深度信息進行訓練,忽略了圖像中的幾何信息以及局部邊緣信息,在幾何形狀以及深度不連續(xù)處不能獲得準確的預測結果。因此,本文提出了一種基于多尺度結構相似度和梯度匹配的聯(lián)合損失函數(shù),對輸入的單目圖像獲得更準確的深度預測,深度不連續(xù)處也更加清晰。
本文在訓練中采用了基于文獻[12]的多尺度編碼器?解碼器神經網(wǎng)絡架構,其網(wǎng)絡架構如圖1所示。編碼器部分是在ResNet50 網(wǎng)絡基礎上,刪除了ResNet50 網(wǎng)絡的最后一個池化層、全連接層以及softmax 層,使編碼器更好地應用于密集的每像素預測任務;解碼器部分采用多尺度融合模塊,每個融合模塊由兩個殘差卷積塊和一個雙線性上采樣層組成;在解碼器的最后添加一個自適應輸出模塊,該模塊由兩個卷積層和一個雙線性上采樣層組成。
圖1 深度估計網(wǎng)絡架構
輸入圖像通過編碼器網(wǎng)絡生成一系列具有不同語義的特征圖,根據(jù)特征圖的分辨率將編碼器分為4 個不同的構建模塊。由于ResNet 包含步長為2 的卷積序列和池化操作,因此增大了卷積的接受域以捕獲更多的上下文信息,但同時降低了輸出特征圖的分辨率。在解碼器部分,考慮到若直接使用簡單的上采樣和反卷積會生成粗略的預測圖像,若使用空洞卷積生成的深度圖會帶有棋盤偽影,所以為了獲取準確的預測深度圖,本文采用多尺度特征融合模塊。
解碼器中特征融合部分的前向傳播過程為:首先對ResNet50 生成的最后一組特征圖進行上采樣;然后將編碼器部分獲取到的特征圖與上層融合特征圖通過多尺度特征融合模塊得到下層融合特征圖,具體如圖2 所示:對由編碼器獲取到的特征圖使用一個殘差卷積塊,再將其與上層融合特征圖進行合并,最后將合并的結果再通過一個殘差卷積塊以及上采樣,以生成與下一個輸入塊的分辨率相同的特征圖。為了生成最終的深度預測結果,將通過3 個特征融合模塊后的得到的特征結果輸入到自適應輸出模塊,此模塊包括兩個3×3 卷積層和一個雙線性上采樣層,得到最終的深度預測圖像。
圖2 特征融合模塊
本文提出的聯(lián)合損失函數(shù)為:
式中,第一項損失Lrank為排序損失,用來訓練圖像中的相對深度以及懲罰預測深度圖中像素對之間錯誤的排序關系;α、β為平衡因子。
對于每張輸入圖像I,隨機采樣N個相對深度點對(i,j),其中i和j分別代表點對中第一個和第二個點的位置,總排序損失Lrank可表示為:
深度點對(i,j)在相應預測深度圖像上的深度值為(pi,pj),用?(pi,pj)表示預測深度中成對排序損失:
式中,lij為排序標簽。為了獲取每對點對之間的排序標簽,首先從GT 深度圖中獲取深度值,然后獲得GT 點對深度排序標簽,有:
式中,τ為閾值。
聯(lián)合損失函數(shù)中第二項(Lms?ssim)為多尺度結構相似度損失[13],是一種方便的融合不同分辨率圖像細節(jié)的損失。該損失在結合圖像分辨率和查看條件的變化方面比單尺度相似度損失提供了更大的靈活性。多尺度結構相似度損失用于預測輸入圖像中的幾何形狀,從而提高深度估計的準確度:
式中,cj(p,p?)、sj(p,p?)分別表示在尺度為j時,預測深度與GT 深度在對比度和結構上的比較;lM(p,p?)表示僅在最高尺度M時在亮度上的對比;參數(shù) αM、βj、γj用于調整不同成分的相對重要性。為了簡化參數(shù)選擇,在尺度j的情況下,設置αj=βj=γj。
聯(lián)合損失函數(shù)中第三項(LMGM)為尺度不變梯度匹配損失,用于改善僅使用排序損失帶來的邊緣模糊問題,實現(xiàn)與GT 中的不連續(xù)處相一致以及梯度平滑,將梯度匹配項定義為[14]:
式中,M表示GT 深度圖的像素值;表示在不同尺度s下預測深度值p和GT 深度值p?之間的差值,s設置為4 個尺度。本文的訓練實驗中設置α= β=0.5。
本文基于深度學習框架Pytorch,計算用CPU為NVIDIA GTX1080ti,操作系統(tǒng)為Centos7.0。實驗過程中,訓練網(wǎng)絡參數(shù)采用隨機梯度下降(stochastic gradient descent,SGD)優(yōu)化算法。
本文在訓練深度預測網(wǎng)絡時用高分辨率網(wǎng)絡雙目圖像(HR-WSI)數(shù)據(jù)集,這是從網(wǎng)上收集的高分辨率雙目圖像的多樣化集合。此數(shù)據(jù)集使用FlowNet2.0生成的視差圖作為數(shù)據(jù)集中ground-truth 部分,并且使用前后向流一致性屏蔽圖像中的異常值。此外,通過預訓練的網(wǎng)絡計算高質量的天空分割掩模,并將天空區(qū)域的視差設置為最小觀測值。通過手工剔除不良GT 數(shù)據(jù)后,此數(shù)據(jù)集包括20378 張圖像用于訓練,400 張圖像用于驗證。
為了適應深度估計網(wǎng)絡的輸入,將圖片尺寸隨意裁剪成為384×384,并且對裁剪后的圖片進行歸一化處理。網(wǎng)絡訓練時的批大小選為4,訓練周期設為80。訓練時編碼器部分的學習率設置為10?5,解碼器部分的初始學習率為10?4。
為了測試深度估計模型的準確性與泛化能力,本文選擇了4 種數(shù)據(jù)集進行測試:Ibims[15]、NYUDv2[16]、DIODE[17]、Sintel[18]。以下簡要概述這4 種數(shù)據(jù)集。
2.2.1 Ibims 數(shù)據(jù)集
Ibims 為一組室內數(shù)據(jù)集,包含高分辨率和低分辨率的各種室內場景的100 組RGB-D 圖像對。由數(shù)字單鏡頭反射相機和高精度激光掃描儀組成的定制采集,用于采集各種室內場景的高分辨率圖像和高度精確的深度圖。與相關的RGB-D 數(shù)據(jù)集相比,Ibims 數(shù)據(jù)集具有噪聲非常低、ground-truth 深度清晰、無遮擋以及范圍廣等優(yōu)點。
2.2.2 NYU Depth 數(shù)據(jù)集
NYU Depth 數(shù)據(jù)集由來自各種室內場景的視頻序列組成,這些視頻序列由來自Microsoft Kinect的RGB 和Depth 攝像機記錄。其中包含1449 個密集標記的RGB 和深度圖像對,該數(shù)據(jù)集中被標記的數(shù)據(jù)集為視頻數(shù)據(jù)的子集,并帶有密集的多類標記。標記數(shù)據(jù)集是原始NYU Depth 數(shù)據(jù)集的子集,由成對的RGB 幀和深度幀組成,并為每個圖像標注了密集標簽。
2.2.3 DIODE 數(shù)據(jù)集
DIODE 數(shù)據(jù)集為一組包含各種高分辨率彩色圖像的數(shù)據(jù)集,具有準確、密集、遠距離深度測量的特點,是第一個包含由一個傳感器組獲得的室內和室外場景RGBD 圖像的公共數(shù)據(jù)集。
2.2.4 Sintel 數(shù)據(jù)集
由于ground-truth 光流很難以自然運動在真實場景中進行測量,所以光流數(shù)據(jù)集在尺寸大小、復雜性和多樣性方面受到限制,使得光流算法難以在實際數(shù)據(jù)上進行訓練和測試。文獻[18]引入了一個新的光流數(shù)據(jù)集,該數(shù)據(jù)集來自開源3D 動畫短片Sintel,具有在流行的Middlebury 流評估中不具備的長序列、大運動、鏡面反射、運動模糊、散焦模糊和大氣影響等重要特征。由于生成電影的圖形數(shù)據(jù)是開源的,因此能夠在復雜度不同的情況下渲染場景,以評估現(xiàn)有流算法失敗的地方。
4 種數(shù)據(jù)集在數(shù)值比較實驗中采用了排序誤差[19]來評價深度預測的準確性,深度邊界誤差(depth boundary error,DBE)[15]來評價預測深度圖的邊緣準確性。
1)深度預測的準確性對比
本文算法結果同ReDWeb、Youtube3D、HRWSI深度估計方法的結果進行了對比試驗;同時,為了研究在不同損失函數(shù)下預測深度圖的準確性,實驗也對Ours_MS-SSIM、Ours_MGM 和Ours_ALL方法進行了數(shù)值比較。其中,Ours_MS-SSIM 采用HR-WSI 作為訓練集,在排序損失上再添加一項多尺度結構相似度損失;Ours_MGM 采用排序損失與多尺度尺度不變梯度匹配損失;Ours_ALL 采用本文提出的基于結構化的聯(lián)合損失,將排序損失、多尺度結構相似度損失以及梯度匹配損失相結合作為損失函數(shù)。
在4 個數(shù)據(jù)集下排序誤差的數(shù)值結果如表1 所示。算法對數(shù)據(jù)集中的每張圖像隨機采樣50000對相對深度點對來計算排序誤差,排序誤差的表達式為:
表1 4 種數(shù)據(jù)集下排序誤差數(shù)值比較 %
式中,ωi設置為1,并且使用式(2)獲得li和(p)之間的排序標簽。
根據(jù)表1 中的實驗結果可以看出,在4 種測試集下本文算法的排序誤差均低于前3 種方法。①由于Ibims、NYUDv2 僅包含室內場景數(shù)據(jù)集,場景中多為剛性物體,深度預測時對場景中物體的幾何形狀和邊緣要求都很高,由表中二、三列可以看出,本文采用的基于多尺度結構相似度和梯度匹配的算法得到的排序誤差最小,能夠更準確地預測幾何形狀以及深度不連續(xù)處,從而預測的準確性最高;②數(shù)據(jù)集DIODE 主要包含以建筑物為主的室外靜態(tài)場景,所以在預測深度時更關注這些建筑物的幾何結構,所以表1 的第四列中使用Ours_MSSSIM 方法,在排序損失上僅添加結構相似度損失,更準確地預測圖像中的幾何形狀,從而得到最好的數(shù)值結果;③Sintel 為3D 動畫短片視頻幀數(shù)據(jù)集,這些視頻幀的前景大多為非剛性的運動的人物,對幾何形狀要求不高,更著重于深度點對的排序準確性和深度不連續(xù)處的一致性,所以第五列中僅在排序損失上添加多尺度梯度匹配損失的Ours_MGM 方法獲得了最低的排序損失結果。
2)深度圖邊緣準確性對比
為了評價預測深度圖的邊緣準確性,本文采用了深度邊界誤差(DBE)[15]作為度量標準,通過比較預測深度圖與GT 深度圖中的邊緣,檢查預測的深度圖是否能夠以準確的方式表示所有相關的深度不連續(xù)性,在測試Ibims 數(shù)據(jù)集上分別計算了準確誤差以及考慮缺失邊緣的完整誤差。兩種誤差公式分別為:
式中,ybin表示使用結構化邊緣提取出的邊緣;表示通過二值邊緣圖像的截短倒角距離獲取的GT 邊緣。
根據(jù)表2 中的實驗結果可以看出,Ours_MGM和Ours_ALL 兩種方法得出的明顯小于其他方法。主要是由于這兩種方法均在損失函數(shù)中添加了一項尺度不變梯度匹配損失,提高了與GT 中不連續(xù)性處的一致性,從而改善僅使用排序損失帶來的邊緣模糊問題。
表2 Ibims 數(shù)據(jù)集下深度邊界誤差(DBE)數(shù)值比較
圖3~圖6 通過主觀比較更直觀地體現(xiàn)出不同單目深度估計方法下預測深度圖的結果。
圖3 是在數(shù)據(jù)集Ibims 上的對比,輸入圖像顯示走廊上方吊燈數(shù)為3 盞,圖3b、圖3c 只能預測出一盞燈的深度,圖3d 也只能隱約預測出第二盞燈,而圖3e、圖3g 可以在預測圖像上呈現(xiàn)3 盞燈的深度。由于Ours_MS-SSIM、Ours_ALL 方法的損失函數(shù)中均包含多尺度結構相似度損失,所以可以更準確地預測圖像中的幾何形狀。
圖3 Ibims 測試集上的主觀比較
圖4 是在室內場景數(shù)據(jù)集NYUDv2 上的對比,相比于圖4b、圖4c、圖4d,使用本文算法預測出的圖4g 中,靠近沙發(fā)的桌子邊緣以及沙發(fā)自身邊緣都更加清晰。同樣的,圖5 為DIODE 測試集上的比較,圖5g 中欄桿的清晰程度優(yōu)于其他僅使用排序誤差的深度預測方法。由圖4 和圖5 可以得出:本文算法在訓練函數(shù)中添加一項梯度匹配損失,可以改善圖像邊緣的清晰程度,使得深度不連續(xù)處與GT 圖像更加具有一致性。
圖4 NYUDv2 測試集上的主觀比較
圖5 DIODE 測試集_上的主觀比較
圖6 是在視頻幀Sintel 上的比較,左邊女孩和右邊男士的上身與下身的深度是一致的,表現(xiàn)在深度圖上應該是深淺顏色幾近相同,圖6f、圖6g 符合這一要求,可以看出使用本文的算法可以提高深度預測的準確性。
圖6 Sintel 測試集上的主觀比較
為了提高單目深度估計精度,本文提出了基于多尺度結構相似度和梯度匹配的單目深度估計算法。針對圖像中幾何形狀無法準確預測以及邊緣模糊的問題,在排序損失基礎上添加了多尺度結構相似度和尺度不變梯度匹配損失,在單目深度估計過程中明顯降低了排序誤差和深度邊界誤差,有效提高了深度預測的準確性。實驗對Ibims、NYUDv2、DIODE、Sintel4 個不同類型的數(shù)據(jù)集進行了評估,數(shù)值實驗和主觀評測結果表明,本文方法在定量和定性上都取得了更優(yōu)的結果,并具有一定的泛化性能。