- 論文資訊
- 标題: Unsupervised Adversarial Depth Estimation using Cycled Generative Networks
- 作者:Andrea Pilzery, Dan Xu, Mihai Marian Puscasy, Elisa Ricciy, Nicu Sebey
- 機構:University of Trento; University of Oxford; Technologies of Vision
- 出處:3DV 2018
- 代碼連結
- https://github.com/andrea-pilzer/unsup-stereo-depthGAN
- 論文主要貢獻
- 第一個使用對抗學習政策在同一個深度網絡中進行不同視角圖像的合成,該網絡可以用于改進無監督深度估計問題
- 提出新的循環的生成網絡結構用于無監督深度估計,網絡可以學習前向和反向的視差圖,也可以在閉環中學習到不同視角的圖像合成,這添加了更強的來自不同視角圖像的限制,進而優化的生成器網絡
- 在兩個大資料集上的實驗結果說明了對抗圖像合成和循環的生成式網絡結構的有效性
- 論文要點翻譯
- 摘要
- 基于監督學習模型的單目深度估計方法已經取得較好的性能,但是真實标注資料的擷取需要一定代價,為了解決這個問題,本文提出新的無監督深度學習方法用于預測深度圖,本文提出的方法可以通過對抗學習架構有效地進行深度估計任務
- 本文提出一個深度生成網絡用于學習兩個校正的雙目立體相機得到的雙目圖像之間的視差,提出的架構包含兩個生成子網絡,兩個網絡通過對抗學習的方式進行聯合訓練,将視差圖重建的過程和圖像重建的過程組織為一個循環的網絡,以此提供彼此的監督信号
- 在 KITTI 和 CityScape 資料集上的實驗結果表明提出的模型能夠達到 SOTA 方法的性能
- 引言
- 深度估計是計算機視覺中的基礎研究問題,已經在機器人導航、三維重建、增強現實和自動駕駛等多個領域得到運用,深度學習方法的複興也使得深度估計任務性能得到顯著提升
- 之前的工作主要考慮監督學習場景的深度圖預測,通過卷積神經網絡進行回歸模型的建立,進而學習從 RGB 圖像到深度圖的映射關系,在此過程中,多尺度的 CNN 模型是非常有效的,基于這些模型引入諸如 CRF 這樣的機率圖模型也有助于網絡的訓練
- 但是,監督學習方法需要大量的真實标注的資料,而這些資料通常是難以采集的,這個問題和深度學習的架構結構有關,因為為了得到較好的性能,通常需要大量的資料去進行模型訓練,此外,監督學習條件的深度估計是病态的問題,因為具有尺度歧義的問題
- 為了解決這些問題,最近的研究提出了一些無監督的深度估計方法,這些方法通過學習校正的雙目立體圖像之間的視差關系,結合已知的相機參數條件,通過預測的視差關系預測深度圖,其中的典型方法包括使用左右一緻性作為監督信号将左視差圖和右視差圖的一緻性限制條件加以利用,限制網絡的學習;另外還有的工作聯合估計深度和相機姿态
- 這些無監督模型通過圖像合成的方式替換監督信号,品質通常受到估計的視差圖的品質的影響,而且這些工作隻考慮了重建損失,沒有使用對抗學習的方式改進合成圖像的生成過程
- 本文提出新的端到端的可訓練的深度網絡模型用于基于對抗學習的深度估計,網絡輸入為校正的立體圖像對,提出的方法包括兩個生成子網,分别預測從左到右的視差和從右到左的視差,兩個子網絡組成循環的方式,通過合成不同視角的圖像進行循環的組織,利用兩個生成器的聯合訓練,使用對抗學習的政策優化兩個生成器網絡
- 相關工作
- 有監督深度估計:監督學習的深度估計已經大大提高了深度估計的性能,給定大量訓練資料,可以達到較優的性能;資料集;監督學習存在的資料依賴問題
- 無監督深度估計:避免使用難以采集的真實深度資料,使用立體比對網絡,通過圖像合成的無監督深度估計、深度估計和相機姿态估計的多任務聯合訓練
- GAN:GAN 的興起;GAN 的成功運用;GAN 在圖像合成和域适應等問題中的使用
- 方法
- 本文提出了新的用于無監督對抗深度估計的方法,方法使用循環的生成網絡,網絡如圖所示
- 和傳統的立體比對方法不同,本文利用對抗學習政策,通過圖像合成的方式進行視差估計
- 問題描述
- 本文問題目标在于在給定校正的雙目相機拍攝的一對圖像的情況下,預測兩幅圖之間的視差關系,該問題可以描述為:給定左圖和右圖,需要得到視差圖,視差圖中的每個像素的值代表該像素對應的左圖像素和右圖像素之間的偏移。在給定左右相機的基線距離B 和相機焦距 f 的情況下,深度 D 與視差 d 可以通過 D = f ⋅ B d D = \frac{f\cdot B}{d} D=df⋅B 進行轉換
- 本文間接地使用圖像合成的方式對視差圖進行預測,具體來說,假定左到右的視差圖 d r ( l ) d_r^{(l)} dr(l) 是生成網絡 G l G_l Gl 在輸入左圖 I l I_l Il 的情況下得到,可以通過圖像反投影 f w ( ⋅ ) f_w(\cdot) fw(⋅) 操作合成右圖圖像 I ^ r = f w ( d r ( l ) , I l ) \hat I_r = f_w(d_r^{(l)},I_l) I^r=fw(dr(l),Il),根據 I ^ r \hat I_r I^r 和 I r I_r Ir 之間的重建損失進行網絡的優化
- 無監督對抗深度估計
- 假定有生成網絡 G l G_l Gl ,該網絡由兩個生成子網組成: G l ( l ) G_l^{(l)} Gl(l) 用于輸入圖像 I l I_l Il 、 G l ( R ) G_l^{(R)} Gl(R) 用于輸入圖像 I r I_r Ir ,該網絡用于生成兩個獨立的視差圖 d r ( l ) = G l ( l ) ( I l ) d_r^{(l)}=G_l^{(l)}(I_l) dr(l)=Gl(l)(Il) 和 d r ( r ) = G l ( r ) ( I r ) d_r^{(r)}=G_l^{(r)}(I_r) dr(r)=Gl(r)(Ir);兩個子網有相同的結構,都是編碼器-解碼器結構的卷積神經網絡,編碼器用于擷取壓縮的圖像特征表示,通過共享的方式減少網絡負載
- 由于兩個視差圖是從兩個不同輸入圖像生成的,是以兩個視差圖之間應當具有互補性,通過線性組合的方式(拼接+1x1卷積)将兩個視差圖組合可以得到增強的視差圖 d r ′ d_r^{'} dr′,可以據此得到重建合成的右圖 I ^ r = f w ( d r ′ , I l ) \hat I_r=f_w(d_r^{'},I_l) I^r=fw(dr′,Il);再利用重建損失優化網絡: L r e c = ∥ I r − f w ( d r ′ , I l ) ∥ 1 \mathcal{L}_{rec}=\|I_r-f_w(d_r^{'},I_l)\|_1 Lrec=∥Ir−fw(dr′,Il)∥1
- 為了改進生成圖像的品質,本文提出使用對抗學習的政策進行圖像的合成,使用判别器 D r D_r Dr 接受上述步驟得到的合成圖像 I ^ r \hat I_r I^r 作為輸入,輸出标量值表示該圖像是真實圖像還是合成圖像,然後利用對抗損失進行網絡的訓練: L g a n ( r ) ( G l , D r , I l , I r ) = E I r ∼ p ( I r ) [ log D r ( I r ) ] + E I l ∼ p ( I l ) [ log ( 1 − D r ( f w ( d r ′ , I l ) ) ) ] \mathcal{L}_{gan}^{(r)}(G_l,D_r,I_l,I_r)=\mathbb{E}_{I_r \sim p(I_r)}[\log D_r(I_r)]+\mathbb{E}_{I_l \sim p(I_l)}[\log (1-D_r(f_w(d_r^{'},I_l)))] Lgan(r)(Gl,Dr,Il,Ir)=EIr∼p(Ir)[logDr(Ir)]+EIl∼p(Il)[log(1−Dr(fw(dr′,Il)))]
- 最終的優化目标是兩個損失的線性組合: L o ( r ) = γ 1 L r e c ( r ) + γ 2 L g a n ( r ) \mathcal{L}_o^{(r)}=\gamma_1 \mathcal{L}_{rec}^{(r)}+\gamma_2 \mathcal{L}_{gan}^{(r)} Lo(r)=γ1Lrec(r)+γ2Lgan(r)
- 用于對抗深度估計的循環生成網絡
- 為了使得不同視角圖像的重建能夠對彼此有潛在的限制,本文提出循環生成網絡結構
- 網絡生成兩張不同的代表不同視角方向的視差圖,并通過閉環循環的方式合成不同視角的圖像,在設計中,不僅僅使用不同視角的重建損失幫助優化生成器,還使用兩個視差圖之間的一緻性損失提供兩個“半循環”的監督信号
- 一半循環的結構在上一節中進行描述,假設有合成右圖 I ^ r \hat I_r I^r,這個結果是之前的一半循環得到,這個輸出結果作為另外一般循環的輸入,假設生成器為 G r G_r Gr,該生成器與 G l G_l Gl 具有相似的結構,但是 G l G_l Gl 的編碼器部分更為壓縮,兩個獨立的解碼器用于生成不同視角的視差圖。兩個視差圖組合得到混合的視差圖 d l ′ d_l^{'} dl′
- 該視差圖被進一步用于合成左圖 I ^ l = f w ( d l ′ , I r ) \hat I_l = f_w(d_l^{'},I_r) I^l=fw(dl′,Ir),使用重建損失的組合進行兩個生成器組成的循環網絡的訓練: L r e c ( f ) = ∥ I r − f w ( d r ′ , I l ) ∥ 1 + ∥ I l − f w ( d l ′ , I r ) ∥ 1 \mathcal{L}_{rec}^{(f)}=\|I_r-f_w(d_r^{'},I_l)\|_1+\|I_l-f_w(d_l^{'},I_r)\|_1 Lrec(f)=∥Ir−fw(dr′,Il)∥1+∥Il−fw(dl′,Ir)∥1
- 加上判别器的對抗損失: L g a n ( f ) ( G l , G r , D l , D r , I l , I r ) = E I r ∼ p ( I r ) [ log D r ( I r ) ] + E I l ∼ p ( I l ) [ log ( 1 − D r ( f w ( d r ′ , I l ) ) ) ] + E I l ∼ p ( I l ) [ log D l ( I l ) ] + E I r l ∼ p ( I r ) [ log ( 1 − D l ( f w ( d l ′ , I r ) ) ) ] \mathcal{L}_{gan}^{(f)}(G_l,G_r,D_l,D_r,I_l,I_r)=\mathbb{E}_{I_r \sim p(I_r)}[\log D_r(I_r)]+\mathbb{E}_{I_l \sim p(I_l)}[\log (1-D_r(f_w(d_r^{'},I_l)))]+\mathbb{E}_{I_l \sim p(I_l)}[\log D_l(I_l)]+\mathbb{E}_{I_rl \sim p(I_r)}[\log (1-D_l(f_w(d_l^{'},I_r)))] Lgan(f)(Gl,Gr,Dl,Dr,Il,Ir)=EIr∼p(Ir)[logDr(Ir)]+EIl∼p(Il)[log(1−Dr(fw(dr′,Il)))]+EIl∼p(Il)[logDl(Il)]+EIrl∼p(Ir)[log(1−Dl(fw(dl′,Ir)))]
- 最後結合兩個視差圖之間的一緻性損失: L c o n ( f ) = ∥ d l ′ − f w ( d l ′ , d r ′ ) ∥ 1 \mathcal{L}_{con}^{(f)}=\|d_l^{'}-f_w(d_l^{'},d_r^{'})\|_1 Lcon(f)=∥dl′−fw(dl′,dr′)∥1
- 最終的目标: L o ( f ) = γ 1 L r e c ( f ) + γ 2 L g a n ( f ) + γ 3 L c o n ( f ) \mathcal{L}_o^{(f)}=\gamma_1 \mathcal{L}_{rec}^{(f)}+\gamma_2 \mathcal{L}_{gan}^{(f)}+\gamma_3 \mathcal{L}_{con}^{(f)} Lo(f)=γ1Lrec(f)+γ2Lgan(f)+γ3Lcon(f)
- 測試時,給定輸入圖像對 ( I l , I r ) (I_l,I_r) (Il,Ir),可以得到視差圖: D = d l ′ + f w ( d l ′ , d r ′ ) 2 D=\frac{d_l^{'}+f_w(d_l^{'},d_r^{'})}{2} D=2dl′+fw(dl′,dr′)
- 摘要