標題:Towards Robust Monocular Depth Estimation: Mixing Datasets for Zero-shot Cross-dataset Transfer
原文:https://arxiv.org/abs/1907.01341v3
開源:https://github.com/isl-org/MiDaS? ? (2.2k Stars)
發(fā)表:TPAMI 2022?????(accepted August 2020)
編者注:一個可能需要糾正的翻譯是,原文中的scale,可能應譯為“縮放”,尤其是與shift(平移)同時出現(xiàn)時。但本譯文中都翻譯做“尺度”

摘要:單目深度估計的成功依賴于大量多樣的訓練集。由于在不同環(huán)境中大規(guī)模獲取密集真值深度的相關挑戰(zhàn),出現(xiàn)了許多具有不同特征和偏置的數(shù)據(jù)集。我們開發(fā)的工具可以在訓練期間混合多個數(shù)據(jù)集,即使它們的標注不兼容。特別是,我們提出了一個對深度范圍和尺度變化不變(invariant to changes in depth range and scale)的魯棒訓練目標,提倡使用原則性的多目標學習(principled multi-objective learning)來組合來自不同來源的數(shù)據(jù),并強調了用輔助任務對編碼器進行預訓練的重要性。有了這些工具,我們對五個不同的訓練數(shù)據(jù)集進行了實驗,包括一個新的海量數(shù)據(jù)源:3D電影(3D films)。為了證明我們方法的泛化能力,我們使用Zero-shot跨數(shù)據(jù)集遷移,即我們在訓練期間未看到的數(shù)據(jù)集上進行評估。實驗證實,混合來自互補源的數(shù)據(jù)大大提高了單目深度估計。我們的方法在不同的數(shù)據(jù)集上明顯優(yōu)于競爭對手的方法,為單目深度估計創(chuàng)造了新的技術狀態(tài)。
1? ??引言
深度是物理環(huán)境中動作最有用的中間表示之一[1]。盡管單目深度估計具有實用性,但它仍然是一個挑戰(zhàn)性的問題,嚴重缺乏約束。要解決這個問題,必須利用許多(有時是微妙的)視覺線索,以及長程上下文和先驗知識。這需要基于學習的技術[2],[3]。
為了學習在各種場景中有效的模型,我們需要同樣多樣的訓練數(shù)據(jù),并捕捉視覺世界的多樣性。關鍵挑戰(zhàn)是以足夠的規(guī)模獲取此類數(shù)據(jù)。在動態(tài)場景(如結構光或飛行時間)中提供密集真值深度的傳感器具有有限的范圍和操作條件[6],[7],[8]。激光掃描儀價格昂貴,只能在場景運動時提供稀疏的深度測量。立體相機是一個很有前途的數(shù)據(jù)來源[9],[10],但在不同的環(huán)境中大規(guī)模收集合適的立體圖像仍然是一個挑戰(zhàn)。運動到結構(structure from motion,SfM)重建已用于構建各種場景中的單目深度估計訓練數(shù)據(jù)[11],但結果不包括獨立移動的對象,并且由于多視點匹配的限制,結果不完整??偟膩碚f,現(xiàn)有的數(shù)據(jù)集都不夠豐富,無法支持在不同場景的真實圖像上穩(wěn)定工作的模型訓練。目前,我們面臨著多個數(shù)據(jù)集,這些數(shù)據(jù)集可能相互補充,但各自存在偏置和不完整。
在本文中,我們研究了訓練魯棒的單目深度估計模型的方法,該模型有望在不同環(huán)境中執(zhí)行。我們開發(fā)了新的損失函數(shù),該函數(shù)對數(shù)據(jù)集之間的主要不兼容源(包括未知和不一致的尺度和基線)保持不變。我們的損失使我們能夠對通過各種傳感方式獲得的數(shù)據(jù)進行訓練,如立體攝像機(可能存在未知校準)、激光掃描儀和結構光傳感器。我們還量化了用于單目深度估計的各種現(xiàn)有數(shù)據(jù)集的價值,并探索了在訓練期間混合數(shù)據(jù)集的最佳策略。特別是,我們表明,與原始混合策略相比,基于多目標優(yōu)化的原則性方法[12](principled approach based on multi-objective optimization)導致了改進的結果。我們進一步根據(jù)經(jīng)驗強調了高容量編碼器的重要性,并顯示了在大規(guī)模輔助任務上預訓練編碼器的unreasonable的有效性。
我們的廣泛實驗(大約六個GPU月的計算)表明,在來自不同來源的豐富多樣的圖像集上訓練的模型,通過適當?shù)挠柧毘绦?,可以在各種環(huán)境中提供最先進的結果。為了證明這一點,我們使用了Zero-shot 跨數(shù)據(jù)集遷移的實驗協(xié)議。也就是說,我們在某些數(shù)據(jù)集上訓練模型,然后在訓練期間未見的其他數(shù)據(jù)集上測試其性能。直覺是,Zero-shot 跨數(shù)據(jù)集性能比在單個數(shù)據(jù)集的子集上進行訓練和測試更可靠地反映了“真實世界”的性能,相同的數(shù)據(jù)集在很大程度上表現(xiàn)出相同的偏置[13]。
在對六個不同數(shù)據(jù)集的評估中,我們在定性和定量上都優(yōu)于現(xiàn)有技術,并為單目深度估計設置了新的技術狀態(tài)。示例結果如圖1所示。

2????相關工作
單目深度估計的早期工作使用基于MRF的公式[3]、簡單的幾何假設[2]或非參數(shù)方法[14]。最近,通過利用卷積網(wǎng)絡的表達能力直接從輸入圖像回歸場景深度,取得了重大進展[15]。已經(jīng)提出了各種架構創(chuàng)新來提高預測精度[16],[17],[18],[19],[20]。這些方法需要真值深度進行訓練,通常使用RGB-D相機或激光雷達傳感器獲取。其他人利用現(xiàn)有的立體匹配方法來獲得監(jiān)督的真值[21],[22]。這些方法往往在用于訓練它們的特定類型場景中工作良好,但由于訓練數(shù)據(jù)的規(guī)模和多樣性有限,不能很好地推廣到無約束場景。
Gag等人[9]建議使用校準的立體攝像機進行自監(jiān)督。雖然這大大簡化了訓練數(shù)據(jù)的獲取,但仍然沒有解除對非常具體的數(shù)據(jù)機制(regime)的限制。從那時起,各種方法利用了自監(jiān)督,但它們要么需要立體圖像[10]、[23]、[24],要么利用apparent motion[24]、[25]、[26]、[27],因此難以應用于動態(tài)場景。
我們認為,用于單目深度估計的高容量深度模型原則上可以在相當廣泛且不受約束的場景范圍內運行。限制他們表現(xiàn)的是缺乏跨越如此廣泛條件的大規(guī)模、密集的真值。常用的數(shù)據(jù)集以同質場景布局為特征,例如特定地理區(qū)域[3]、[28]、[29]的街道場景,或室內環(huán)境[30]。我們特別注意到,這些數(shù)據(jù)集僅顯示少量動態(tài)對象?;诰哂腥绱藦娖玫臄?shù)據(jù)進行訓練的模型在約束較少的環(huán)境中容易失敗。
已有一些努力創(chuàng)建更多樣化的數(shù)據(jù)集。Chen等人[34]使用眾包來稀疏地標注從網(wǎng)絡收集的圖像中的順序關系。Xian等人[32]從網(wǎng)絡上收集了一個立體數(shù)據(jù)集,并使用現(xiàn)成的工具來提取密集的真值視差;雖然這個數(shù)據(jù)集相當多樣化,但它只包含3600張圖像。Li和Snavely[11]使用SfM和多視圖立體(MVS)重建了許多(主要是靜態(tài))3D場景以供監(jiān)督。Li等人[38]使用SfM和MVS從模仿人體模特的人的視頻中構建數(shù)據(jù)集(即,當攝像機在場景中移動時,他們的動作被凍結)。Chen等人[39]提出了一種自動評估稀疏SfM重建質量的方法,以構建大型數(shù)據(jù)集。Wang等人[33]從來自網(wǎng)絡的立體視頻中構建了一個大型數(shù)據(jù)集,而Cho等人[40]使用手持立體攝像機收集了一個室外場景數(shù)據(jù)集。Gordon等人[41]估計YouTube視頻的內在參數(shù),以便將其用于訓練。從互聯(lián)網(wǎng)收集的大規(guī)模數(shù)據(jù)集[33],[38]需要大量的預處理和后處理。由于版權限制,他們通常只提供視頻鏈接,而這些鏈接經(jīng)常無法使用。這使得再現(xiàn)這些數(shù)據(jù)集具有挑戰(zhàn)性。
據(jù)我們所知,在此背景下,以前從未探索過多個數(shù)據(jù)源的受控混合。Ummenhofer等人[42]提出了一個雙視圖結構和運動估計模型,并在多個較小數(shù)據(jù)集的聯(lián)合(靜態(tài))場景數(shù)據(jù)集上對其進行了訓練。然而,他們沒有考慮優(yōu)化混合的策略,也沒有研究組合多個數(shù)據(jù)集的影響。類似地,F(xiàn)acility等人[43]使用具有天真混合策略的多個數(shù)據(jù)集來學習具有已知相機內參的單目深度。他們的測試數(shù)據(jù)與他們一半的訓練數(shù)據(jù)非常相似,即室內場景的RGB-D錄制。
3????現(xiàn)有數(shù)據(jù)集
已經(jīng)提出了適合于單目深度估計的各種數(shù)據(jù)集,即,它們由具有某種形式的相應深度標注的RGB圖像組成[3]、[11]、[28]、[29]、[30]、[31]、[32]、[33]、[34]、[35]、[36]、[37]、[38]、[40]、[44]、[45]、[46]、[47]、[48]。數(shù)據(jù)集在捕獲的環(huán)境和對象(室內/室外場景、動態(tài)對象)、深度注釋類型(稀疏/密集、絕對/相對深度)、精度(激光、飛行時間、SfM、立體、人類注釋、合成數(shù)據(jù))、圖像質量和相機設置以及數(shù)據(jù)集大小方面有所不同。
每個數(shù)據(jù)集都有自己的特點,也有自己的偏置和問題[13]。高精度數(shù)據(jù)很難大規(guī)模獲取,并且對于動態(tài)對象存在問題[35],[47],而來自互聯(lián)網(wǎng)來源的大型數(shù)據(jù)收集具有有限的圖像質量和深度精度以及未知的相機參數(shù)[33],[34]。對單個數(shù)據(jù)集的訓練可以在同一數(shù)據(jù)集(相同的相機參數(shù)、深度注釋、環(huán)境)的相應測試分割上獲得良好的性能,但對具有不同特征的未見數(shù)據(jù)的泛化能力可能有限。相反,我們建議在一組數(shù)據(jù)集(a collection of datasets)上進行訓練,并通過在訓練過程中未見的不同數(shù)據(jù)集上測試,證明這種方法可以顯著增強泛化能力。我們在表1中列出了我們的訓練和測試數(shù)據(jù)集及其各自的特征。

訓練數(shù)據(jù)集。????我們用五個現(xiàn)有的和互補的數(shù)據(jù)集進行實驗以進行訓練。ReDWeb[32](RW)是一個小的、精心策劃的數(shù)據(jù)集,其特征是使用相對較大的立體基線獲得的具有真值的多樣化和動態(tài)場景。Mega深度[11](MD)更大,但主要顯示靜態(tài)場景。由于寬基線多視圖立體重建用于采集,因此背景區(qū)域中的真值通常更準確。WSVD[33](WS)由從網(wǎng)絡獲得的立體視頻組成,并具有多樣的動態(tài)場景。此數(shù)據(jù)集僅有指向立體視頻的一組鏈接。沒有提供真值。因此,我們根據(jù)原作者概述的程序重建了真值。DIML Indoor[31](DL)是一個主要靜態(tài)室內場景的RGB-D數(shù)據(jù)集,使用Kinect v2捕捉。
測試數(shù)據(jù)集。? ? 為了衡量單目深度估計模型的泛化性能,我們根據(jù)多樣性和真值準確性選擇了六個數(shù)據(jù)集。DIW[34]是高度多樣的,但僅以稀疏序數(shù)關系(sparse ordinal relations)的形式提供真值。ETH3D[35]在靜態(tài)場景中具有高度精確的激光掃描真值。Sintel[36]為合成場景提供了完美的真值。KITTI[29]和NYU[30]是具有特征偏置(characteristic biases)的常用數(shù)據(jù)集。對于TUM數(shù)據(jù)集[37],我們使用了室內環(huán)境中人類的動態(tài)子集[38]。請注意,我們從不在任何這些數(shù)據(jù)集上微調模型。我們將此實驗過程稱為Zero-shot 跨數(shù)據(jù)集遷移。
4???? 3D MOVIES
為了補充現(xiàn)有數(shù)據(jù)集,我們提出了一個新的數(shù)據(jù)源:3D電影(MV)。3D電影以各種動態(tài)環(huán)境中的高質量視頻幀為特色,從故事和對話驅動的好萊塢電影中的以人為中心的圖像,到紀錄片中的風景和動物的自然場景。雖然數(shù)據(jù)不提供度量深度,但我們可以使用立體匹配來獲得相對深度(類似于RW和WS)。我們的動機是數(shù)據(jù)的規(guī)模和多樣性。3D電影提供了在精心控制的條件下拍攝的最大已知立體對的源(source of stereo pairs)。這提供了從不斷增長的內容庫中獲取數(shù)百萬高質量圖像的可能性。我們注意到3D電影已單獨用于相關任務[49],[50]。我們將通過將它們與其他互補數(shù)據(jù)源相結合來展示它們的全部潛力。與in the wild類似數(shù)據(jù)收集[32]、[33]、[38]不同,此數(shù)據(jù)源不需要手動過濾有問題的內容。因此,數(shù)據(jù)集可以很容易地擴展或適應特定需求(例如,關注跳舞的人或自然紀錄片)。
挑戰(zhàn)。????電影數(shù)據(jù)有其自身的挑戰(zhàn)和缺陷。制作立體電影的主要目的是提供視覺上令人愉悅的觀看體驗,同時避免觀眾不適[51]。這意味著任何給定場景的視差范圍(也稱為depth budget)都是有限的,并且取決于藝術和心理物理因素。例如,為了在短時間內產生非常明顯的立體效果,通常在電影的開頭和結尾增加視差范圍。中間的depth budget可能會更低,以便觀看更舒適。因此,立體視覺師(Stereographers)根據(jù)內容、過渡甚至場景節(jié)奏來調整depth budget[52]。
因此,立體設備的攝像機之間的焦距、基線和會聚角(convergence angle)是未知的,即使在一部電影中,場景之間也會發(fā)生變化。此外,與直接從標準立體相機獲得的圖像對不同,電影中的立體對通常包含正視差和負視差,以允許在屏幕前方或后方感知物體。此外,與屏幕相對應的深度取決于場景,通常在后期制作中通過移動圖像對(shifting the image pairs)來修改。我們描述了解決這些挑戰(zhàn)的數(shù)據(jù)提取和訓練程序。
電影選擇和預處理。????我們選擇了23部不同的電影。選擇基于以下考慮:1)我們只選擇了使用物理立體攝像機拍攝的電影。(有些3D電影是用單目相機拍攝的,藝術家在后期制作中添加了立體效果。)2)我們試圖平衡現(xiàn)實主義和多樣性。3) 我們只選擇了藍光格式的電影,因此可以提取高分辨率圖像。
我們以1920x1080分辨率和每秒24幀(fps)提取立體圖像對。電影具有不同的縱橫比,導致在幀的頂部和底部出現(xiàn)黑色條,由于后期制作,一些電影沿幀邊界有細黑色條。因此,我們將所有幀居中裁剪為1880x800像素。我們使用章節(jié)信息(藍光元數(shù)據(jù))將每部電影分割成單獨的章節(jié)。我們放棄了第一章和最后一章,因為它們通常包括introduction and credits。
我們使用閾值為0.1的FFmpeg[53]的場景檢測工具來提取單個片段。我們丟棄短于一秒的片段,以過濾出混亂的動作場景和在對話中快速切換主角的高度相關片段。為了平衡場景多樣性,我們采樣每個剪輯的前24幀,對于更長的剪輯,我們額外地每四秒采樣24幀。由于多個幀是同一剪輯的一部分,因此整個數(shù)據(jù)集高度相關。因此,我們進一步以4 fps對訓練集進行下采樣,以1 fps對測試和驗證集進行下采樣。
視差提取。????提取的圖像對可用于使用立體匹配來估計視差圖。不幸的是,最先進的立體匹配器在應用于電影數(shù)據(jù)時表現(xiàn)不佳,因為匹配器被設計和訓練為僅在正視差范圍內匹配。該假設適用于標準立體相機的校正輸出,但不適用于從立體膠片提取的圖像對。此外,由于深度預算(depth budget)有限,3D電影中遇到的視差范圍通常小于標準立體設置中常見的范圍。
為了緩解這些問題,我們將現(xiàn)代光流算法[54]應用于立體對。我們保留流的水平分量作為視差的代理。光流算法自然地處理正負視差,并且通常對于中等大小的位移表現(xiàn)良好。對于每個立體對,我們使用左相機作為參考,并提取從左到右圖像的光流,反之亦然。我們執(zhí)行左右一致性檢查,并將視差差異超過2個像素的像素標記為無效。我們根據(jù)Wang[33]等人的指導原則自動過濾出視差質量視差的幀:如果超過所有像素的10%的垂直視差大于2像素,水平視差范圍小于10像素,或者通過左右一致性檢查的像素百分比小于70%,則幀被拒絕。在最后一步中,我們使用預訓練的語義分割模型[55]檢測屬于天空區(qū)域的像素,并將它們的視差設置為圖像中的最小視差。
表2顯示了所選電影的完整列表以及使用自動清洗管道過濾后剩余的幀數(shù)。注意,由于不同的運行時間以及不同的視差質量,每個電影中提取的幀數(shù)會出現(xiàn)差異。我們使用19部電影中的幀進行訓練,并分別留出兩部電影用于驗證和兩部電影進行測試。結果數(shù)據(jù)集的示例幀如圖2所示。


5? ? 在不同數(shù)據(jù)上訓練
在不同數(shù)據(jù)集上進行單目深度估計的訓練模型是一個挑戰(zhàn),因為真值的形式不同(見表1)。它可以是絕對深度(來自基于激光的測量或具有已知校準的立體攝像機)、上至未知尺度的深度(depth up to an unknown scale)(來自SfM)或視差圖(來自未知校準的立體相機)的形式。合理訓練方案的主要要求是在適當?shù)妮敵隹臻g中進行計算,該輸出空間與所有真值表示相兼容,并且在數(shù)值上表現(xiàn)良好。我們還需要設計一個足夠靈活的損失函數(shù),以處理各種數(shù)據(jù)源,同時優(yōu)化利用所有可用信息。
我們確定了三大挑戰(zhàn)。1) 深度的內在不同表示:直接深度表示與逆深度表示。2) 尺度模糊性:對于某些數(shù)據(jù)源,深度上至未知尺度。3) 移位模糊性:一些數(shù)據(jù)集僅提供了未知尺度的視差和全局視差偏移,這是由于后處理導致的未知基線和主點水平移位的函數(shù)[33]。
We identify three major challenges. 1) Inherently different representations of depth: direct vs. inverse depth representations. 2) Scale ambiguity: for some data sources, depth is only given up to an unknown scale. 3) Shift ambiguity: some datasets provide disparity only up to an unknown scale and global disparity shift that is a function of the unknown baseline and a horizontal shift of the principal points due to post-processing [33].
尺度和位移不變損失。Scale- and shift-invariant losses.? ? 我們建議在視差空間(逆深度到尺度和位移,inverse depth up to scale and shift)中執(zhí)行預測,同時使用一系列尺度和位移不變的密集損失,以處理上述分歧。設表示具有有效真值的圖像中的像素數(shù),并設
為預測模型的參數(shù)。設
是視差預測,設
為相應的真值視差。單個像素由下標索引。
我們將單個樣本的尺度和移位不變損失定義為:
? ? (1)
其中,和
是預測和真值的縮放和移位版本(scaled and shifted versions),
定義了損失函數(shù)的特定類型。
令、
表示尺度和平移的估計量(estimators of the scale and translation)。為了定義有意義的尺度和位移不變損失,一個合理的要求是預測和真值的尺度和位移應適當對齊(prediction and ground truth should be appropriately aligned with respect to their scale and shift),即我們需要確保
和
。我們提出了兩種不同的策略來執(zhí)行此對齊。
第一種方法基于最小二乘準則將預測與真值對齊:
? ? (2)
其中,和
分別是對齊的預測和真值。因子
和
可以通過將(2)重寫為標準最小二乘問題以封閉形式有效地確定:令
和
,然后我們可以將目標重寫為:
? ? (3)
它具有閉式解:
? ? (4)
我們設來定義尺度和移位不變的均方誤差(MSE)。我們將此損失表示為
。
MSE對異常值的存在并不魯棒。由于所有現(xiàn)有的大規(guī)模數(shù)據(jù)集只提供不完美的真值,我們推測魯棒的損失函數(shù)可以改善訓練。因此,我們基于尺度和位移的魯棒估計來定義替代的魯棒損失函數(shù):
,
? ? (5)
我們將預測結果和真值進行了對齊,以實現(xiàn)零平移和單位尺度(We align both the prediction and the ground truth to have zero translation and unit scale):
,
? ? (6)
我們定義了兩種魯棒損失。第一個,我們稱為,測量絕對偏差
。第二個魯棒損失的定義通過修剪(trimming)每個圖像中20%的最大殘差,而不管其幅度(magnitude):
? ? (7)
其中且
(根據(jù)ReDWeb數(shù)據(jù)集的實驗來經(jīng)驗設置)。注意,這與通常使用的M-估計相反(M-estimators,),通常使用的M-估計中大殘差的影響只是向下加權的。我們調整的理由是,真值中的異常值不應影響訓練。
相對損失函數(shù)。Related loss functions. ????在單目深度估計模型的訓練中,考慮未知或變化的尺度的重要性早就被認識到了。Eigen等人[15]提出了對數(shù)深度空間(log-depth space)中的尺度不變損失。他們的損失可以寫成:
? ? (8)
其中和
是未知尺度的深度(depths up to unknown scale)。(8)和
都考慮了預測的未知尺度,但只有
考慮了未知的全局視差偏移。此外,損失在不同的深度表示上評估。我們的損失是在視差空間中定義的,它在數(shù)值上是穩(wěn)定的,并且與相對深度的常見表示兼容。
Chen等人[34]提出了基于序數(shù)關系的相對深度估計的一般適用損失:

其中編碼點對的真值序數(shù)關系。這鼓勵當
時將點推得盡可能遠,而當
時,將它們拉到相同的深度。Xian等人[32]建議通過從密集真值中隨機采樣點對來稀疏地評估這種損失。相比之下,我們提出的損失考慮了所有可用數(shù)據(jù)。
最近,Wang等人[33]提出了歸一化多尺度梯度(NMG)損失。為了在視差空間中實現(xiàn)平移不變性和尺度不變性,他們在多個尺度上評估真值和重縮放估計之間的梯度差:
? ? (10)
相比之下,我們的損失直接根據(jù)真值視差值進行評估,同時也考慮了未知尺度和平移。雖然從概念上講,序數(shù)損失和NMG都可以應用于任意深度表示,因此適合混合不同的數(shù)據(jù)集,但我們將證明,我們的尺度不變和平移不變的損失變體可以始終獲得更好的性能。
最終損失。????為了定義完全損失,我們將多尺度、尺度不變梯度匹配項[11]應用于視差空間。該術語將不連續(xù)性偏置為尖銳,并與真值中的不連續(xù)性一致(This term biases discontinuities to be sharp and to coincide with discontinuities in the ground truth)。我們將梯度匹配項定義為:
? ? (11)
其中,
表示尺度
的視差圖的差異。我們使用
個尺度級別(scale levels),將每個級別的圖像分辨率減半。注意,該項與
相似,但計算尺度
(the scaling s)的方法不同。
對于一個訓練集,我們的最終損失是:
? ? (12)
其中是訓練集大小,
設置為0.5。
混合策略。????雖然我們的損失函數(shù)以及對預測空間的選擇,使得可以混合數(shù)據(jù)集,但目前還不清楚在隨機優(yōu)化算法的訓練過程中,不同的數(shù)據(jù)集應該以何種比例集成。我們在實驗中探索了兩種不同的策略。
第一種樸素的策略是在每個minibatch中以相等比例混合數(shù)據(jù)集。對于大小為的小批量,我們從每個數(shù)據(jù)集中抽取
個訓練樣本,其中
表示不同數(shù)據(jù)集的數(shù)量。這一策略確保所有數(shù)據(jù)集在有效的訓練集中得到平等的展示,而不管每個數(shù)據(jù)集的大小。
我們的第二個策略探索了一種更具原則性的方法,我們將帕累托最優(yōu)多任務學習的最新程序與我們的設置相適應[12]。我們將每個數(shù)據(jù)集上的學習定義為一個單獨的任務,并在數(shù)據(jù)集上尋求近似的帕累托最優(yōu)(即,在不增加至少一個其他數(shù)據(jù)集的損失的情況下,不能減少任何訓練集的損失,a solution where the loss cannot be decreased on any training set without increasing it for at least one of the others)。形式上,我們使用[12]中提出的算法來最小化多目標優(yōu)化準則:
? ? (13)
其中模型參數(shù)在數(shù)據(jù)集之間共享。
6????實驗
我們從Xian等人的實驗設置開始。[32]并使用他們基于ResNet的[56]多尺度架構進行單圖像深度預測。我們使用預訓練的ImageNet[57]權重初始化編碼器,并隨機初始化其他層。對于隨機初始化層,我們使用Adam[58],學習率為10-4;對于預訓練的層,學習率為10?5,并將指數(shù)衰減率設置為=0.9和
=0.999。圖像以50%的幾率水平翻轉,并隨機裁剪并調整大小為384×384,以數(shù)據(jù)增強并在不同輸入圖像上保持縱橫比(maintain the aspect ratio across different input images)。未使用其他數(shù)據(jù)增強。
隨后,我們對損失函數(shù)進行了消融研究,因為我們推測ImageNet預訓練對性能以及編碼器架構有顯著影響。我們使用性能最佳的預訓練模型作為數(shù)據(jù)集混合實驗的起點。我們使用的批量大小,即當混合三個數(shù)據(jù)集時,批量大小為24。當比較不同大小的數(shù)據(jù)集時,術語“epoch”沒有明確定義;因此,我們將一個epoch表示為處理72000個圖像,大致相當于MD和MV的大小,并訓練60個epoch。我們將所有數(shù)據(jù)集的真值視差平移并縮放(shift and scale)到范圍[0,1]。
測試數(shù)據(jù)集和指標。
對于損失和編碼器的消融研究,我們使用了RW(360幅圖像)、MD(2963幅圖像–官方驗證集)和MV(3058幅圖像–見表2)的held-out驗證集。對于所有訓練數(shù)據(jù)集混合實驗和與現(xiàn)有技術的比較,我們測試了一組訓練期間從未見過的數(shù)據(jù)集:DIW、ETH3D、Sintel、KITTI、NYU和TUM。對于DIW[34],我們?yōu)橄谘芯繌腄IW訓練集創(chuàng)建了10000張圖像的驗證集,并使用了74441張圖像的官方測試集,與現(xiàn)有state of the art相比時。對于 NYU,我們使用了官方測試集(654張圖像)。對于KITTI,我們使用官方驗證集的交集進行深度估計(具有改進的真值深度[59])和Eigen測試集[60](161幅圖像)。對于ETH3D和Sintel,我們使用了真值可用的整個數(shù)據(jù)集(分別為454和1064張圖像)。對于TUM數(shù)據(jù)集,我們使用了室內環(huán)境中人類的動態(tài)子集[38](1815張圖像)。
對于每個數(shù)據(jù)集,我們使用符合該數(shù)據(jù)集中真值的單一度量。對于DIW,我們使用加權人類不同意率(Weighted Human Disagreement Rate,WHDR)[34]。對于基于相對深度的數(shù)據(jù)集,我們測量視差空間(MV、RW、MD)中的均方根誤差(root mean squared error)。對于提供精確絕對深度(ETH3D,Sintel)的數(shù)據(jù)集,我們測量深度空間(AbsRel)中相對誤差的平均絕對值。最后,我們使用
的像素百分比來評估KITTI、NYU和TUM的模型[15]。跟隨[10],對于深度空間中評估的數(shù)據(jù)集,我們將預測限制在適當?shù)淖畲笾?。對于ETH3D、KITTI、NYU和TUM,深度上限設置為最大真值深度值(分別為72、80、10和10米)。對于Sintel,我們對真值深度低于72米的區(qū)域進行評估,因此使用72米的深度上限。對于我們的所有模型和基線,我們在測量誤差之前,對每個圖像的預測和真值進行縮放和平移。我們基于最小二乘準則在逆深度空間中執(zhí)行對齊(alignment)。由于在多個數(shù)據(jù)集上進行評估時,絕對值很快變得難以解釋,因此我們還介紹了與適當?shù)幕€方法相比,性能的相對變化。
評估的輸入分辨率。????我們調整測試圖像的大小,使較大的邊等于384像素,而較小的邊被調整為32像素的倍數(shù)(編碼器施加的限制),同時保持縱橫比盡可能接近原始縱橫比。由于KITTI的很寬的寬高比,該策略將導致非常小的輸入圖像。因此,在這個數(shù)據(jù)集上,我們調整較小邊長,使其等于384個像素,并采用相同的策略,否則將保持縱橫比。(We thus resize the smaller axis to be equal to 384 pixels on this dataset and adopt the same strategy otherwise to maintain the aspect ratio)
我們所比較的大多數(shù)最先進的方法都專門針對特定的數(shù)據(jù)集(具有固定的圖像尺寸),因此沒有指定如何在推斷過程中處理不同的圖像大小和縱橫比。我們試圖根據(jù)評估腳本和訓練維度,為所有方法找到最佳性能設置。對于在正方形patches 上訓練的方法[32],我們遵循我們的設置,將較大的邊設置為訓練圖像邊長,并調整較小的邊,使縱橫比盡可能接近原始值。對于具有非正方形patches 的方法[11],[33],[34],[38],我們將較小的邊固定到較小的訓練圖像邊長。對于DORN[19],我們遵循了他們的平鋪協(xié)議(tiling protocol),分別將圖像大小調整為NYU和KITTI評估所規(guī)定的尺寸。對于Monodepth2[24]和Struct2Deph[27],它們都是在KITTI上訓練的,因此期望非常寬的寬高比,我們使用反射填充來填充輸入圖像以獲得相同的寬高比、調整大小到它們的特定輸入維度,并將結果預測裁剪到原始目標維度。對于模型權重可用于不同訓練分辨率的方法,我們評估了所有方法,并報告了性能最佳的變體的數(shù)值。
所有預測都被重新調整到真值分辨率,以便進行評估。
損失函數(shù)的比較。????我們在圖3中顯示了不同損失函數(shù)對驗證性能的影響。我們使用RW訓練具有不同損失的網(wǎng)絡。對于序數(shù)損失(ordinal loss,參見等式(9)),我們隨機抽樣5000個點對[32]。在適當?shù)那闆r下,我們將損失與梯度正則化項(11)相結合。通過在(1)中固定,我們還測試了視差空間中的尺度不變(但不是移位不變)MSE
。
訓練的模型與我們對Xian[32]等人的重新實施相對應。圖3顯示,我們提出的修剪(trimmed)MAE損失在所有數(shù)據(jù)集上產生了最低的驗證錯誤。因此,我們使用
進行以下所有實驗。

編碼器的比較。????我們在圖4中評估了編碼器架構的影響。我們使用Xian[32]等人最初使用的ResNet-50[56]編碼器定義模型,作為我們的基線,并顯示了在不同編碼器時性能的相對改善(越高越好)。我們測試了ResNet-101、ResNeXt-101[61]和DenseNet-161[62]。所有編碼器都在ImageNet上進行了預訓練[57]。對于ResNeXt-101,我們還使用了一個變體,該變體在ImageNet上訓練之前用大量弱監(jiān)督數(shù)據(jù)(WSL)語料庫進行了預訓練[63]。所有型號都在RW上進行了微調。

我們觀察到,使用更好的編碼器可以顯著提高性能。高容量編碼器的性能優(yōu)于基線。在弱監(jiān)督數(shù)據(jù)上預訓練的ResNeXt-101編碼器的性能明顯優(yōu)于僅在ImageNet上訓練的相同編碼器。我們發(fā)現(xiàn)預訓練至關重要。具有隨機初始化的ResNet-50編碼器的網(wǎng)絡平均性能比其預訓練的對應網(wǎng)絡差35%。通常,我們發(fā)現(xiàn)編碼器的ImageNet性能是其在單目深度估計中性能的一個強有力的預測因素。這是令人鼓舞的,因為在圖像分類方面取得的進步可以直接在魯棒的單目深度估計中產生增益。與基線相比,性能提升是顯著的:相對提高了15%,沒有任何特定任務的調整。我們使用ResNeXt-101-WSL進行所有后續(xù)實驗。
不同數(shù)據(jù)集的訓練。????我們在表3和表4中評估了不同訓練數(shù)據(jù)集的泛化性。雖然更專業(yè)的數(shù)據(jù)集在類似的測試集上獲得更好的性能(DL用于室內場景,MD用于ETH3D,DL for indoor scenes or MD for ETH3D),但其余數(shù)據(jù)集的性能有所下降。有趣的是,單獨使用的每一個數(shù)據(jù)集的平均泛化性能都比僅使用較小但經(jīng)過精心策劃的RW數(shù)據(jù)集差,即兼容數(shù)據(jù)集的收益平均被其他數(shù)據(jù)集的減少所抵消(the gains on compatible datasets are offset on average by the decrease on the other datasets)。

RW、MV和WS的性能差異特別有趣,因為它們具有相似的特性。雖然比RW大得多,但MV和WS都顯示出較差的單獨性能。這可以部分解釋為由于這些數(shù)據(jù)集的視頻性質而產生的冗余數(shù)據(jù),以及RW中可能更嚴格的過濾(人類專家刪除了具有明顯缺陷的樣本)。比較WS和MV,我們發(fā)現(xiàn)MV導致了更泛化的模型,可能是因為圖像的更受控性質導致了更高質量的立體對。
對于我們的后續(xù)混合實驗,我們使用表3作為參考,即我們從表現(xiàn)最好的單個訓練數(shù)據(jù)集開始,并連續(xù)將數(shù)據(jù)集添加到混合中。我們在表5中顯示了哪些數(shù)據(jù)集包含在各個訓練集中。為了更好地理解電影數(shù)據(jù)集的影響,我們還顯示了我們在除電影之外的所有數(shù)據(jù)集上訓練的結果(MIX 4)。我們總是從預訓練的RW基線開始訓練。

表6和表7顯示,與使用單獨的數(shù)據(jù)集相比,混合多個訓練集始終提高了相對于基線的性能。然而,我們也看到,當使用樸素混合時,添加數(shù)據(jù)集并不能無條件地提高性能(參見MIX 1 vs. MIX 2)。表8和9報告了Pareto optimal數(shù)據(jù)集混合的類似實驗結果。我們觀察到,這種方法比原始混合策略有所改進。它還能夠更一致地利用其他數(shù)據(jù)集。將所有五個數(shù)據(jù)集與帕累托最優(yōu)混合相結合,得到了性能最佳的模型。我們在圖5中對所得模型進行了定性比較。



與現(xiàn)有技術的對比。????表10和表11中,我們將我們的最佳模型與各種最先進方法進行了比較。每個表的頂部與未在任何評估數(shù)據(jù)集上微調的基線進行比較(即,與我們的模型類似的Zero-shot 遷移)。底部部分顯示了對數(shù)據(jù)集子集進行微調的基線,以供參考。在訓練集一欄中,MC指的是人體模型挑戰(zhàn)[38],CS指的是城市景觀[45]。A.→ B表示A上的預訓練和B上的微調。


我們的模型在Zero-shot性能方面以令人滿意的優(yōu)勢優(yōu)于基線。注意,我們的模型在TUM數(shù)據(jù)集的子集上優(yōu)于Li等人的人體模型挑戰(zhàn)模型[38],該數(shù)據(jù)集由Li等人專門策劃,以展示其模型的優(yōu)勢。我們展示了基于ResNet-50(Ours–small)的更小編碼器的模型變體的其他結果。這種架構相當于Xian等人提出的網(wǎng)絡[32]。較小的模型也以令人滿意的優(yōu)勢優(yōu)于現(xiàn)有技術。這表明,我們模型的強大性能不僅是由于網(wǎng)絡容量的增加,而且從根本上是由于所提出的訓練方案。
針對一個特定數(shù)據(jù)集訓練的一些模型(如表下部的KITTI或NYU)在這些單獨的數(shù)據(jù)集上表現(xiàn)非常好,但在所有其他測試集上表現(xiàn)明顯更差。對單個數(shù)據(jù)集的微調會導致對特定環(huán)境的強烈偏好。這在某些應用中是可取的,但如果模型需要推廣,則不適合。我們的模型與四個表現(xiàn)最好的競爭對手的定性比較如圖6所示。

其他定性結果。????圖7顯示了DIW測試集的其他定性結果[34]。我們展示了一組不同的輸入圖像的結果,這些圖像描繪了各種物體和場景,包括人類、哺乳動物、鳥類、汽車以及其他人造和自然物體。這些圖像包括室內、街道和自然場景、各種照明條件和各種攝像機角度。此外,拍攝對象的范圍從近景到遠景都有所不同。


我們在補充視頻https://youtu.be/D46FzVyL9I8中顯示了DAVIS視頻數(shù)據(jù)集[64]的定性結果注意,每個幀都是單獨處理的,即沒有以任何方式使用時間信息。對于每個剪輯,聯(lián)合縮放和平移逆深度圖以進行可視化。數(shù)據(jù)集由一組不同的視頻組成,包括人類、動物和汽車。這個數(shù)據(jù)集是用單目相機拍攝的,因此沒有可用的真值深度信息。
Hertzmann[65]最近觀察到,我們的公開可用模型即使在抽象的線條圖上也能提供可信的結果。類似地,我們在圖8中顯示了具有不同抽象級別的繪圖和繪畫的結果。我們可以定性地證實[65]中的發(fā)現(xiàn):即使在相對抽象的輸入上,該模型也顯示出估計可信相對深度的驚人能力。這似乎是正確的,只要一些(粗糙的)深度線索,如陰影或消失點存在于藝術品中。

故障案例。????我們確定了模型的常見故障案例和偏置。圖像具有自然偏置,其中圖像的較低部分比較高圖像區(qū)域更接近相機。當隨機抽樣兩個點并將較低的點分類為更接近相機時,[34]與人類注釋器的一致率為85.8%。我們的網(wǎng)絡也了解到了這種偏置,在圖9第一行所示的一些極端情況下可以觀察到這種偏置。在左邊的示例中,模型無法恢復地平面,可能是因為輸入圖像旋轉了90度。在右側圖像中,在圖像的下部,距離相機大約相同距離的小球被重建為更接近相機。這種情況可以通過用旋轉圖像增強訓練數(shù)據(jù)來防止。然而,尚不清楚圖像旋轉不變性是否是該任務的理想特性。

圖9的第二行顯示了另一個有趣的失敗案例。繪畫、照片和鏡子通常不被正確地處理。網(wǎng)絡基于反射器上描繪的內容而不是預測反射器本身的深度來估計深度。
其他故障案例顯示在剩余的行中。強邊緣會導致產生幻覺的深度不連續(xù)性。在某些情況下,可能會忽略薄結構,并且斷開連接的對象之間的相對深度排列可能會失敗。結果往往會在背景區(qū)域變得模糊,這可能是由于輸入圖像的分辨率有限和遠距離的不完美真值性造成的。
7????結論
深度網(wǎng)絡的成功是由海量數(shù)據(jù)集驅動的。對于單目深度估計,我們認為現(xiàn)有數(shù)據(jù)集仍然不足,可能構成限制因素。由于難以大規(guī)模捕獲不同深度數(shù)據(jù)集,我們引入了用于組合互補數(shù)據(jù)源的工具。我們提出了一種靈活的損失函數(shù)和一種原則性的數(shù)據(jù)集混合策略。我們還引入了一個基于3D電影的數(shù)據(jù)集,該數(shù)據(jù)集為各種動態(tài)場景提供了密集的真值。
我們通過Zero-shot 跨數(shù)據(jù)集遷移評估了模型的魯棒性和泛化性。我們發(fā)現(xiàn),在訓練過程中從未見過的數(shù)據(jù)集上系統(tǒng)地測試模型,比在當前可用的最多樣化的數(shù)據(jù)集的一部分上測試模型更能代表它們的“in the wild”性能。
我們的工作推進了通用單目深度估計的最新技術,并表明所提出的想法大大提高了不同環(huán)境下的性能。我們希望這項工作將有助于部署滿足實際應用要求的單目深度模型。我們的模型在https://github.com/intel-isl/MiDaS.