1. 程式人生 > >深度補全(1804)-論文閱讀-翻譯

深度補全(1804)-論文閱讀-翻譯

MegaDepth: Learning Single-View Depth Prediction from Internet Photos

Abstract

單檢視深度預測是計算機視覺中的一個基本問題。近年來,深度學習方法取得了長足的進步,但這種方法受到現有訓練資料的限制。目前基於3D感測器的資料集有一些關鍵的限制,包括僅含室內影象(NYU)、少量訓練示例(Make3D)和稀疏取樣(KITTI)。我們提議使用多視點網際網路照片集合,一個幾乎無限的資料來源,通過現代的結構-從運動和多視點立體(MVS)方法生成訓練資料,並提出一個大的深度資料集稱為MegaDepth基於這個想法。來自MVS的資料也有其自身的挑戰,包括噪音和不可重建的物件。我們使用新的資料清理方法來解決這些挑戰,並使用使用語義分割生成的順序深度關係來自動增強資料。我們驗證了大量的網際網路資料的使用,通過顯示訓練過的模型不僅對新場景有很強的泛化能力,而且對Make3D、KITTI和DIW等不同的資料集也有很強的泛化能力,即使在訓練過程中沒有看到來自這些資料集的影象。

(一)介紹

從單個影象中預測3D形狀是視覺推理的一個重要功能,在機器人、圖形和其他視覺任務(如內在影象)中都有應用。雖然單檢視深度估計是一個具有挑戰性的、受限的問題,但深度學習方法最近已經推動了重大進展。這樣的方法在接受大量資料訓練時非常流行。遺憾的是,以(RGB影象、深度圖)對的形式進行的完全一般訓練資料很難收集。像Kinect這樣的商用RGB-D感測器已經被廣泛用於這種目的,但僅限於室內使用。鐳射掃描器已經啟用了一些重要的資料集,如Make3D[29]和KITTI[25],但是這些裝置操作起來很麻煩(在工業掃描器的情況下),或者製作稀疏深度地圖(在鐳射雷達的情況下)。此外,Make3D和KITTI都是在特定場景中收集的(分別在大學校園和汽車頂部)。訓練資料也可以通過眾包生成,但這種方法目前僅限於收集稀疏序數關係或表面法線[12,4,5]。

在本文中,我們將探討如何使用幾乎無限的資料來源來解決這個問題:從重疊視點的網際網路影象,從結構-運動(SfM)和多視點立體(MVS)方法可以自動產生密集深度。此類影象已廣泛應用於大規模三維重建的研究[35,14,2,8]。我們建議將這些系統的輸出作為機器學習方法的輸入,用於單檢視深度預測。通過使用來自世界各地拍攝的照片的大量不同的訓練資料,我們尋求學習預測深度的準確性和概括性。基於這個想法,我們介紹了 MegaDepth (MD),這是一個從網際網路照片集合中生成的大型深度資料集,我們將其完全提供給社群。

據我們所知,我們首次使用網際網路SfM+MVS資料進行單檢視深度預測我們的主要貢獻是MD資料集本身

。此外,在建立MD時,我們發現從有噪聲的MVS資料準備資料集時必須小心謹慎,因此我們還提出了處理原始MVS輸出的新方法,並針對這些資料為訓練模型提供了相應的新的損失函式。值得注意的是,由於MVS不傾向於重構動態物件(人、車等),我們使用從語義分割中自動匯出的順序深度關係來增強資料集,並使用包含序數項的聯合損失進行訓練。在我們的實驗中,我們展示了通過在MD上的訓練,我們可以學習一個模型,這個模型不僅可以很好地工作在新的場景的影象上,而且可以很好地推廣到完全不同的資料集,包括Make3D, KITTI和DIW,實現了比以前的資料集更好的泛化。圖1顯示了從僅在MD資料集上訓練的網路跨越不同測試集的示例結果。
在這裡插入圖片描述

(二)相關工作

單一檢視深度預測。對於單檢視深度預測,已有多種方法被提出,最近的方法是利用機器學習[15,28]。一種標準的方法是收集具有地面真深度的RGB影象,然後訓練一個模型(例如,CNN)從RGB預測深度[7,22,23,27,3,19]。大多數這樣的方法都是在一些標準資料集中進行訓練的,如NYU [33, 34], Make3D[29],和KITTI[11],這些資料都是通過RGB-D感測器(如Kinect)或鐳射掃描捕捉到的。這種掃描方法有重要的侷限性,正如在介紹中所討論的。最近,**Novotny et al.[26]用SfM+MVS匯出的3D模型對網路進行視訊訓練,學習單個物體的3D形狀。**然而,他們的方法僅限於物體的影象,而不是場景。

場景的多檢視也可以作為訓練資料的隱式來源,用於單檢視深度預測,利用檢視合成作為監控訊號[38,10,13,43]。然而,檢視合成只是深度的一個代理,可能並不總是產生高質量的學習深度。Ummenhofer等人使用單臺相機拍攝的重疊影象對進行訓練,學習預測影象匹配、相機姿態和深度。但是,在測試時需要兩個輸入影象。

序列深度預測。另一種為訓練收集深度資料的方法是讓人們在影象中手動標註深度。雖然標記絕對深度很有挑戰性,但人們擅長指定相對(順序)深度關係(例如,close -than, further-than)[12]。Zoran等人[44]利用這種相對深度判斷,利用CNNs預測點之間的序數關係。Chen等人利用有序深度標籤的眾包,在[4]中建立了一個名為“Depth in the Wild”的大型資料集。雖然這對於預測深度排序很有用(因此我們將從影象中自動生成的序數資料合併到一起),但是僅從序數資料學習的深度歐氏精度是有限的。

從網際網路圖片中預測深度。10年來,從網際網路照片集合中估算幾何形狀一直是一個活躍的研究領域,在運動結構[35,2,37,30]和多視點立體結構[14,9,32]兩方面都取得了進展。這些技術通常在10s到1000s的影象上執行。使用這種方法,過去的工作已經使用檢索和SfM從單個影象[31]構建一個3D模型,或者將照片註冊到現有的3D模型以轉移深度[40]。然而,這項工作需要預先擁有每個位置的詳細3D模型,或者在執行時構建一個。相反,我們使用SfM+MVS來訓練一個網路,以推廣到新的地點和場景。

(三)The MegaDepth Dataset

在本節中,我們將描述如何構造資料集。我們首先從Flickr下載網路照片,從Landmarks10K資料集[21]中獲取一組拍攝良好的地標。然後我們用最先進的SfM和MVS方法在3D中重建每個地標。這就產生了一個SfM模型以及每個重建影象的稠密深度圖。然而,這些深度圖有明顯的噪聲和異常值,在這些原始深度資料上訓練一個深度網路不會產生有用的預測。因此,我們提出了一系列的處理步驟,準備這些深度對映用於學習,並另外使用語義分割來自動生成序數深度資料。

3.1. 相片校正及重建

我們使用COLMAP,一個最先進的SfM系統30和MVS系統32,從每個照片集合中構建一個3D模型。我們使用COLMAP是因為我們發現它通過謹慎的增量式SfM過程生成高質量的3D模型,但也可以使用其他類似的系統。COLMAP為每個重建照片I生成深度對映D(如果COLMAP無法恢復深度,那麼D的一些畫素可能為空),以及其他輸出,比如相機引數和稀疏SfM點,以及相機可見性。

3.2. 深度圖改進

在這裡插入圖片描述
COLMAP的原始深度圖包含了許多來自不同來源的異常值,包括:(1)在單個影象中出現的瞬態物件(人、車等),但是它們被分配了(不正確的)深度;(2)噪聲深度不連續;(3)背景深度滲入前景物件。由於立體匹配中固有的模糊性,其他MVS方法也存在類似的問題。圖2(b)顯示了COLMAP生成的兩個演示這些問題的深度地圖示例。這些離群值對我們要訓練的深度預測網路有很大的負面影響。為了解決這個問題,我們提出了兩種新的深度細化方法來生成高質量的訓練資料:

首先,我們設計了一種基於COLMAP的改進的MVS演算法,但是在深度估計上更加保守,因為我們更傾向於減少訓練資料而不是糟糕的訓練資料。COLMAP迭代地計算深度對映,在每個階段都試圖確保附近深度對映之間的幾何一致性。這種策略的一個不利影響是,背景深度可能會侵蝕前景物件,因為增加深度對映一致性的一種方法是一致地預測背景深度(參見圖2(頂部))。為了應對這種影響,在COLMAP的每個深度推斷迭代中,我們比較更新前後每個畫素的深度值,並保持兩者之間的較小(更接近)。然後我們應用中值濾波器來移除不穩定的深度值。我們在補充資料中詳細描述了我們改進的MVS演算法。

其次,我們利用語義分割來增強和過濾深度地圖,併產生大量的順序深度比較作為額外的訓練資料。圖2的第二行顯示了使用物件感知過濾計算的深度對映示例。我們現在詳細描述語義分割的使用。

3.3. 通過語義分割的深度增強

多視點立體視覺方法在很多物體型別上都存在問題,包括像人和汽車這樣的瞬態物體,很難重建像極點和交通訊號這樣的物體,以及天空區域。然而,如果我們能夠理解影象的語義佈局,那麼我們就可以嘗試減輕這些問題,或者至少識別有問題的畫素。我們發現,語義分割的深度學習方法開始變得足夠可靠,可以使用[41]。

我們提出了語義分割在資料集建立中的三個新用途。首先,我們使用這樣的分割去除假的MVS深度在前景區域。其次,我們使用分割作為一個標準來分類每一張照片提供歐幾里德深度或序數深度資料。最後,我們將語義資訊和MVS深度結合起來,自動標註序數深度關係,可以幫助MVS無法重建的區域進行訓練。

語義過濾。為了處理給定的照片I,我們首先使用PSPNet[41]進行語義分割,這是一種最新的分割方法,訓練於MIT場景解析資料集(包含150個語義類別)[42]。然後,根據預測的語義類別將畫素劃分為三個子集:
(1)前景物件,表示為F,對應於場景前景中經常出現的物件,包括靜態前景物件(如雕像、噴泉)和動態物件(如人、車)。
(2)背景物件,表示B,包括建築物、塔、山等(有關前景/背景類的詳細資訊,請參閱補充資料)。
(3)頂點,表示為S,在下面描述的深度濾波中作為一個特例。

我們用幾種方式對畫素進行語義分類。如圖2(底部)所示,像人這樣的瞬態物體會導致虛假的深度。從每張圖片我刪除這些,我們認為前景掩模的每個連通分支C F .如果< 50%的畫素在C重建深度,我們拋棄所有深度從C,我們使用一個閾值為50%,而不是簡單地去除所有前景深度,因為畫素對某些物件在F(如雕塑)確實可以準確地重建(我們發現PSPNet有時錯誤雕塑和另一個人)。這種對前景深度的簡單過濾可以大大提高深度地圖的質量。

歐氏深度和順序深度。對於每個3D模型,我們都有成千上萬的網路重構照片,理想情況下,我們會盡可能多地使用這些深度資料進行訓練。然而,一些深度地圖比其他的更可靠,因為一些因素,如估計的相機姿勢的準確性或存在大的遮擋物。因此,我們發現將訓練限制在高度可靠的深度地圖的一個子集是有益的。我們設計了一種簡單而有效的方法來計算高質量深度貼圖的子集,方法是通過閾值化的部分重建畫素。特別地,如果大於30%的影象I(忽略天空區域S)由有效深度值組成,然後我們把這個影象作為訓練資料來學習歐氏深度。這個標準更傾向於沒有大的瞬態前景物件的影象(例如,沒有自拍)。與此同時,這種重前景的影象對於另一個目的非常有用:自動生成訓練資料以學習順序深度關係

自動順序深度標註。如上所述,臨時的或難以重建的物體,如人,汽車,和街道標誌,經常在MVS重建中丟失。因此,僅使用網際網路衍生的資料,我們將缺乏對這些物件的地面真值深度,並且很可能在學習重建它們方面做得很差。為了解決這個問題,我們提出了一種新的方法,根據訓練影象的三維幾何和語義分割,自動提取序列深度標籤

3.4. 建立資料集

我們使用上面的方法從世界各地的地標密集地重建了200個3D模型,代表了大約150K的重建影象。經過我們提出的過濾,我們得到了130K的有效影象。在這130K的照片中,歐幾里德深度資料使用了大約100K的影象,剩下的30K影象用於派生序數深度資料。我們還將來自[18]的影象包含在我們的訓練集中。這些資料一起組成了MegaDepth (MD)資料集,地址:http://www.cs.cornell.edu/projects/megadepth/。

(四)深度估計網路

本節介紹從單個照片預測深度的端到端深度學習演算法。

4.1. 網路體系結構

我們評估了之前在單檢視深度預測工作中使用的三個網路:VGG[6]、沙漏網路[4]和ResNet體系結構[19]。如第5節所述,沙漏網路表現最好。

4.2. 損失函式

暫略……
在這裡插入圖片描述

(五)估計

在本節中,我們將在大量資料集上評估我們的網路,並與在各種訓練資料上訓練的幾種最先進的深度預測演算法進行比較。在我們的評估中,我們試圖回答幾個問題,包括:

  • 我們的模型在MD上訓練的效果如何呢?
  • 深度地圖處理有多重要? 損失函式中這些項的作用是什麼?
  • 我們在MD上訓練的模型對來自其他資料集的其他型別的影象的推廣效果如何?

第三個問題可能是最有趣的,因為對大量不同資料的培訓是很好的概括。因此,我們對一個數據集進行了一組實驗訓練,並對另一個數據集進行了測試,結果表明我們的MD資料集具有最佳的泛化效能。

我們還證明了我們的深度細化策略對於實現良好的泛化是必不可少的,並表明我們提出的將標度不變資料項與有序深度損失相結合的損失函式在數量和質量上都提高了預測效能。

實驗設定。在我們的MD資料集中的200個重建模型中,我們隨機選擇了46個以形成一個測試集(在訓練期間從未見過的位置)。對於剩下的154個模型,我們將每個模型的影象隨機分為訓練集和驗證集,分別佔96%和4%。我們使用交叉驗證設定α=0.5和β=0.1。我們在PyTorch[1]中實現我們的網路,並使用Adam[17]對30個批次大小為32的epoch進行培訓。