詹 雁, 張 娟, 金昌基
(1.上海工程技術(shù)大學 電子電氣工程學院,上海 201620;2.韓國科學技術(shù)院,韓國 大田 12580)
深度信息一直被廣泛應(yīng)用[1~3]。近年來,隨著卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)技術(shù)的發(fā)展,單目深度估計任務(wù)也取得了良好的效果?;诰矸e神經(jīng)網(wǎng)絡(luò)的方法層出不窮[4~7]。早期使用CNN解決深度估計任務(wù)的方法均為監(jiān)督式訓練[5,6],需提供大量真實場景的圖像和對應(yīng)的深度真值,實際獲取真實場景的深度信息成本非常昂貴且得到的深度圖存在一定的誤差。為了克服監(jiān)督式訓練的弊端,有人提出了使用無監(jiān)督式訓練[7~9],在訓練過程中不需要場景的深度真值,而是使用幾何信息進行約束。這種方法克服了訓練過程中對真值的依賴,但容易受到其它因素影響,例如光照、遮擋、模糊等。相較于真實世界數(shù)據(jù),合成數(shù)據(jù)的深度圖更容易獲取。因此,國內(nèi)外一些學者提出使用合成圖像解決真實世界場景的深度估計問題[10],取得了一定的效果。文獻[10]聯(lián)合訓練了圖像轉(zhuǎn)換網(wǎng)絡(luò)和單目深度估計網(wǎng)絡(luò),但在轉(zhuǎn)換網(wǎng)絡(luò)過程中,沒有考慮真實圖像和合成圖像的語義和幾何結(jié)構(gòu)差異。
針對以上文獻中的不足,本文提出基于域適應(yīng)方法解決真實場景的深度估計問題,引入感知損失加強域轉(zhuǎn)換的穩(wěn)定性。同時,融入了空間梯度損失優(yōu)化深度圖的細節(jié)信息。
本文的主要目標是訓練得到一個深度估計模型fT。圖1是整體流程圖,系統(tǒng)架構(gòu)由轉(zhuǎn)換網(wǎng)絡(luò)和深度估計網(wǎng)絡(luò)組成。真實域的數(shù)據(jù)為一組真實世界的圖像,標記為xr。合成域的數(shù)據(jù)為合成圖像和對應(yīng)的深度圖,標記為(xs,ys)。
如圖 1 所示,轉(zhuǎn)換網(wǎng)絡(luò)由生成模型G和判別模型Dr組成。生成模型G將合成域S中的圖片映射到真實域R中,即G∶S→R;為了擴大網(wǎng)絡(luò)的泛化能力,生成模型既能輸入合成圖像也可以輸入真實圖像。理想狀態(tài)下,輸入合成圖像時,生成模型輸出圖像和真實場景圖像的非常相似;輸入真實圖像時,輸出圖像不發(fā)生改變或者改變非常小。
轉(zhuǎn)換網(wǎng)絡(luò)生成的圖片輸入深度估計網(wǎng)絡(luò)。合成域的深度估計使用對應(yīng)的深度真值作為監(jiān)督信號;真實域圖像深度估計時不使用深度真值,是通過對比合成域和真實域在深度特征圖上的特征分布對其進行約束,判別模型Df判斷真實圖像的深度特征的特征分布是否和合成域的相似。理論上,真實域的特征分布和合成域的特征分布越相似,則深度估計的效果越好[10]。
圖1 網(wǎng)絡(luò)結(jié)構(gòu)圖
1.1.1 網(wǎng)絡(luò)結(jié)構(gòu)
轉(zhuǎn)換網(wǎng)絡(luò)由生成模型和判別模型組成。參考文獻[10],生成模型G采用的是和Sim GAN[11]相似的ResNet[12]。圖像判別模型Dr網(wǎng)絡(luò),本文借鑒使用Sim GAN。其作用是判斷生成的圖像的真假性,從而約束生成器G,生成更好的和真實圖片接近的圖像。
1.1.2 感知模型
在圖像風格轉(zhuǎn)換過程中,如果僅僅使用像素級上的重建損失,最終得到的圖像將會缺少高頻信息,出現(xiàn)過度平滑現(xiàn)象。重建的高分辨率圖像與真實的高分辨率圖像無論是低層次的特征上,例如:顏色,紋理等;還是高層的語義特征和整體幾何結(jié)構(gòu)上,都應(yīng)該盡可能相似。本文使用感知損失改進轉(zhuǎn)換網(wǎng)絡(luò)。在使用重構(gòu)損失的同時,加入高層全局信息,使轉(zhuǎn)換后的圖像和真實圖像在感知特征上更接近。
感知網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,試驗過程中使用分類數(shù)據(jù)集預(yù)訓練VGG—16[13]網(wǎng)絡(luò),然后基于預(yù)訓練模型提取的特征圖之間的歐氏距離定義損失函數(shù)。
圖2 感知網(wǎng)絡(luò)結(jié)構(gòu)圖
1.1.3 轉(zhuǎn)換網(wǎng)絡(luò)損失函數(shù)
對于生成模型G以及它對應(yīng)的判別模型Dr,本文采用對抗損失,損失函數(shù)定義如下
Lgl(G,Dr)=Exr~XR[logDr(xr)]+
Exs~XS[log(1-Dr(G(xs)))]
(1)
式中xr為真實圖像,xs為合成圖像。生成模型和判別模型的參數(shù)分步更新。
生成模型不僅僅將合成圖像轉(zhuǎn)換成真實圖像,也會將真實圖像轉(zhuǎn)換成真實圖像。轉(zhuǎn)換前后的差異很小,甚至是不發(fā)生改變。出于這個目的,本文使用逐像素的重構(gòu)損失。函數(shù)定義如下
(2)
為了保證輸入和輸出圖像在語義和幾何結(jié)構(gòu)上更相似,本文引入感知損失,對輸入及生成圖像進行特征上的對比,首先將輸入和輸出圖像分別經(jīng)過預(yù)訓練模型提取特征圖,將提取到的特征圖作為目標函數(shù)輸入。通過特征層上的距離度量,使得待生成的圖片與目標圖片在語義和結(jié)構(gòu)上更相似。感知損失定義如下
(3)
1.2.1 深度估計網(wǎng)絡(luò)結(jié)構(gòu)
深度估計模塊,使用了目前被廣泛應(yīng)用的U-Net[14]。網(wǎng)絡(luò)由編碼器和解碼器組成。上采樣部分會融合特征提取部分的特征,將不同尺度的特征融合在一起。這樣既能得到卷積的同尺度特征,也能得到上采樣輸出的大尺度特征。結(jié)構(gòu)圖如圖3所示。
圖3 深度估計網(wǎng)絡(luò)結(jié)構(gòu)
1.2.2 深度估計網(wǎng)絡(luò)損失函數(shù)
(4)
同時,引入平滑損失函數(shù)解決深度圖局部不平滑,邊界不連續(xù)的和梯度消失的問題。允許直接從較大的空間區(qū)域?qū)С鎏荻?,使得到的深度圖局部更平滑。函數(shù)定義如下
Lsl(fT)=‖?xfT(xs)|e-|?xxs|+|?yfT(xs)|e-|?yxs|
(5)
深度估計器fT的主要任務(wù)是估計真實場景的深度圖。本文引用特征分布相似性函數(shù)。當真實和合成的特征分布越相似,提取的特征就越相似。特征分布相似性函數(shù)定義如下
(6)
同樣的,當fT訓練真實圖片時,為了更好約束真實場景圖像的深度估計,也加入了平滑損失,定義如式(5)所示。
最終的目標函數(shù)如下
L(G,fT,D1,D2)=Lgl(G,D1)+αcLcl(G)+αpLpl(G)+
αfLfl(fT,D2)+αtLtl(fT)+αsLsl(fT)
(7)
實驗過程中,真實域的數(shù)據(jù)集為KITTI[15],合成域的數(shù)據(jù)集為VKITTI[16],兩種數(shù)據(jù)集場景相似,均為城市街道場景,本文選取21 260張圖像進行訓練。VKITTI的深度最大值為655.35 m,KITTI數(shù)據(jù)集的深度最大值為80 m。實驗過程中,需將VKITTI的深度限制為80 m。
本文實驗操作系統(tǒng)為Ubuntu16.04。算法基于PyTorch框架,編程語言為Python 3.6,實驗均在顯卡GTX1080Ti下進行。
為和目前最新的方法進行效果比較,本文選用由文獻[5]提出的697張圖像的測試標準。評價函數(shù)包括絕對值相對偏差(Abs relative difference,Abs)、相對平方差(squared relative difference,Sq)、均方誤差(RMSE)、RMSE (log)、準確率(acuracy),評價函數(shù)定義如下
表1中的K代表KITTI數(shù)據(jù)集,CS表示Cityscapes[17]數(shù)據(jù)集,V為VKITTI數(shù)據(jù)集,I為圖像,D為深度,L為左視圖,R為右視圖。
本文方法的定量對比結(jié)果如表1,這里將本文方法和最新方法[5,8~10]進行對比。和文獻[5,9]結(jié)果相比,本文的結(jié)果具有一定的優(yōu)勢,文獻[5]是采用監(jiān)督式學習進行訓練的,且使用Alex Net初始化網(wǎng)絡(luò)參數(shù),本文的網(wǎng)絡(luò)權(quán)重隨機初始化。在深度估計精確度方面,本文估計所得的深度圖與深度真值圖像有著更高的相似度。和文獻[10]的結(jié)果相比,體現(xiàn)了感知損失和平滑損失的作用。相比之下,本文的結(jié)果占據(jù)了一定的優(yōu)勢,各項指標上有一定的提升,由于評估參數(shù)的特殊定義,數(shù)值的小幅度變化也可以代表性能的顯著提升。
表1 各種方法在KITTI數(shù)據(jù)集上性能對比
本文方法的結(jié)果和文獻[8]對比沒有優(yōu)勢,主要是因為該方法采用了左右視圖進行訓練,在訓練時需要矯正對齊立體圖像,這種方法不能在單目數(shù)據(jù)集上進行訓練,這限制了其應(yīng)用性。本文方法不要求左右視圖,數(shù)據(jù)來源更充足,應(yīng)用領(lǐng)域更為廣泛。
圖4是本文結(jié)果的定性比較,可見在紋理細節(jié)上效果有一定的提升,與原始圖像具有更高的感知相似性。表1的數(shù)據(jù)也表明,本文的結(jié)果優(yōu)于部分現(xiàn)有的方法,包括使用真實深度數(shù)據(jù)進行訓練的方法。
圖4 各算法效果圖對比
本文提出了一種語義感知的域適應(yīng)框架估計深度,網(wǎng)絡(luò)分為圖像轉(zhuǎn)換網(wǎng)絡(luò)和深度估計網(wǎng)絡(luò)。轉(zhuǎn)換網(wǎng)絡(luò)能生成和真實圖更相似的轉(zhuǎn)換圖,在對抗損失和重構(gòu)損失的基礎(chǔ)上融入了感知損失,使得到的轉(zhuǎn)換圖像在語義上和真實圖像更相似。此外,還融入了平滑損失,對深度圖進行優(yōu)化。