速度提升10倍!Depth Anything V2:更魯棒精細(xì)的單目深度估計(jì)
本文介紹了Depth Anything V2。不追求花哨的技術(shù),而是旨在揭示關(guān)鍵發(fā)現(xiàn),為構(gòu)建強(qiáng)大的單目深度估計(jì)模型鋪平道路。值得注意的是,與V1相比,本版本通過三項(xiàng)關(guān)鍵實(shí)踐產(chǎn)生了更精細(xì)、更穩(wěn)健的深度預(yù)測(cè):1) 將所有帶標(biāo)簽的真實(shí)圖像替換為合成圖像;2) 擴(kuò)大教師模型的容量;3) 通過大規(guī)模偽標(biāo)簽真實(shí)圖像的橋梁來教授學(xué)生模型。與基于Stable Diffusion的最新模型相比,我們的模型在效率(速度快10倍以上)和準(zhǔn)確性上都顯著提高。我們提供了不同規(guī)模(參數(shù)范圍從25M到1.3B)的模型,以支持廣泛的場(chǎng)景。得益于它們強(qiáng)大的泛化能力,我們使用度量深度標(biāo)簽對(duì)其進(jìn)行微調(diào),以獲得我們的度量深度模型。除了我們的模型外,考慮到當(dāng)前測(cè)試集的有限多樣性和頻繁噪聲,我們還構(gòu)建了一個(gè)具有精確注釋和多樣化場(chǎng)景的多功能評(píng)估基準(zhǔn),以促進(jìn)未來的研究。
領(lǐng)域背景介紹
單目深度估計(jì)(MDE)正受到越來越多的關(guān)注,這得益于它在廣泛的下游任務(wù)中的基礎(chǔ)性作用。精確的深度信息不僅在經(jīng)典應(yīng)用中如3D重建、導(dǎo)航和自動(dòng)駕駛中受到青睞,在現(xiàn)代場(chǎng)景中如AI生成的內(nèi)容,包括圖像、視頻和3D場(chǎng)景中也備受關(guān)注。因此,最近出現(xiàn)了許多MDE模型,它們都能處理開放世界的圖像。
從模型架構(gòu)的角度來看,這些工作可以分為兩組。一組基于判別模型,例如BEiT和DINOv2,而另一組則基于生成模型,例如Stable Diffusion(SD)。在圖2中,我們分別比較了兩類中的兩個(gè)代表性工作:作為判別模型的Depth Anything和作為生成模型的Marigold。可以很容易地觀察到,Marigold在建模細(xì)節(jié)方面更勝一籌,而Depth Anything對(duì)于復(fù)雜場(chǎng)景產(chǎn)生了更穩(wěn)健的預(yù)測(cè)。此外,如表1所示,Depth Anything比Marigold更高效且輕量級(jí),并且有多種規(guī)??晒┻x擇。然而,與此同時(shí),Depth Anything對(duì)透明物體和反射的敏感度較高,這卻是Marigold的優(yōu)勢(shì)所在。
在這項(xiàng)工作中,我們考慮到所有這些因素,旨在構(gòu)建一個(gè)更加強(qiáng)大的單目深度估計(jì)基礎(chǔ)模型,該模型能夠?qū)崿F(xiàn)表1中列出的所有優(yōu)勢(shì):
? 為復(fù)雜場(chǎng)景產(chǎn)生穩(wěn)健的預(yù)測(cè),包括但不限于復(fù)雜的布局、透明物體(如玻璃)、反射表面(如鏡子、屏幕)等。? 在預(yù)測(cè)的深度圖中包含精細(xì)的細(xì)節(jié)(與Marigold的細(xì)節(jié)相當(dāng)),包括但不限于薄物體(如椅子腿)、小孔等。? 提供不同的模型規(guī)模和推理效率,以支持廣泛的應(yīng)用。? 具有足夠的泛化能力,可以轉(zhuǎn)移到下游任務(wù)中(即進(jìn)行微調(diào))。
由于單目深度估計(jì)(MDE)本質(zhì)上是一個(gè)判別任務(wù),我們從Depth Anything V1出發(fā),旨在保持其優(yōu)勢(shì)并糾正其弱點(diǎn)。有趣的是,我們將展示,要實(shí)現(xiàn)這樣一個(gè)具有挑戰(zhàn)性的目標(biāo),并不需要開發(fā)復(fù)雜或高級(jí)的技術(shù)。最關(guān)鍵的部分仍然是數(shù)據(jù)。這確實(shí)與V1的數(shù)據(jù)驅(qū)動(dòng)動(dòng)機(jī)相同,它利用大規(guī)模未標(biāo)記數(shù)據(jù)來加快數(shù)據(jù)擴(kuò)展并增加數(shù)據(jù)覆蓋范圍。在這項(xiàng)工作中,將首先重新審視其標(biāo)記數(shù)據(jù)設(shè)計(jì),然后強(qiáng)調(diào)未標(biāo)記數(shù)據(jù)的關(guān)鍵作用。
下面我們先提出三個(gè)關(guān)鍵發(fā)現(xiàn)。我們將在接下來的三個(gè)部分中詳細(xì)闡述它們。
問題1:MiDaS或Depth Anything的粗略深度是否來自判別建模本身?是否必須采用基于擴(kuò)散的復(fù)雜建模方式來獲取精細(xì)細(xì)節(jié)?
回答1:不,高效的判別模型也可以產(chǎn)生極其精細(xì)的細(xì)節(jié)。最關(guān)鍵的修改是將所有標(biāo)記的真實(shí)圖像替換為精確的合成圖像。
問題2:如果如回答1所述,合成圖像已經(jīng)明顯優(yōu)于真實(shí)圖像,為什么大多數(shù)先前的工作仍然堅(jiān)持使用真實(shí)圖像?
回答2:合成圖像有其缺點(diǎn),這在以前的范式中并不容易解決。
問題3:如何避免合成圖像的缺點(diǎn)并放大其優(yōu)勢(shì)?
回答3:擴(kuò)大僅使用合成圖像訓(xùn)練的教師模型規(guī)模,然后通過大規(guī)模偽標(biāo)記真實(shí)圖像的橋梁來教授(較小的)學(xué)生模型。
經(jīng)過這些探索后,我們成功構(gòu)建了一個(gè)更加強(qiáng)大的MDE基礎(chǔ)模型。然而,我們發(fā)現(xiàn)當(dāng)前的測(cè)試集過于嘈雜,無法反映MDE模型的真實(shí)優(yōu)勢(shì)。因此進(jìn)一步構(gòu)建了一個(gè)具有精確注釋和多樣化場(chǎng)景的多功能評(píng)估基準(zhǔn)。
重新審視Depth Anything V1的標(biāo)記數(shù)據(jù)設(shè)計(jì)
在MiDaS在無監(jiān)督單目深度估計(jì)方面的開創(chuàng)性工作基礎(chǔ)上,近期研究傾向于構(gòu)建更大規(guī)模的訓(xùn)練數(shù)據(jù)集,以努力提升估計(jì)性能。值得注意的是,Depth Anything V1、Metric3D V1和V2,以及ZeroDepth,分別從不同來源收集了150萬、800萬、1600萬和1500萬張標(biāo)記圖像用于訓(xùn)練。然而,很少有研究對(duì)這一趨勢(shì)進(jìn)行了批判性考察:如此大量的標(biāo)記圖像真的有益嗎?
在回答這個(gè)問題之前,讓我們先深入探討真實(shí)標(biāo)記圖像可能被忽視的缺點(diǎn)。真實(shí)標(biāo)記數(shù)據(jù)的兩個(gè)缺點(diǎn)。1) 標(biāo)簽噪聲,即深度圖中的不準(zhǔn)確標(biāo)簽。由于各種收集程序固有的限制,真實(shí)標(biāo)記數(shù)據(jù)不可避免地包含不準(zhǔn)確的估計(jì)。這種不準(zhǔn)確可能由多種因素引起,例如深度傳感器無法準(zhǔn)確捕獲透明物體的深度(圖3a),立體匹配算法對(duì)無紋理或重復(fù)模式的脆弱性(圖3b),以及SfM方法在處理動(dòng)態(tài)對(duì)象或異常值時(shí)的敏感性(圖3c)。
2)忽略的細(xì)節(jié)。這些真實(shí)數(shù)據(jù)集往往忽略了其深度圖中的某些細(xì)節(jié)。如圖4a所示,樹和椅子的深度表示非常粗糙。這些數(shù)據(jù)集難以在目標(biāo)邊界或薄孔內(nèi)提供詳細(xì)的監(jiān)督,導(dǎo)致深度預(yù)測(cè)過度平滑,如圖4c的中間部分所示。因此,這些噪聲標(biāo)簽非常不可靠,以至于學(xué)習(xí)到的模型也會(huì)犯類似的錯(cuò)誤(圖3d)。例如,MiDaS和Depth Anything V1在透明表面挑戰(zhàn)中分別獲得了25.9%和53.5%的糟糕分?jǐn)?shù)。
為了克服上述問題,決定改變我們的訓(xùn)練數(shù)據(jù),并尋求標(biāo)記質(zhì)量顯著更好的圖像。受到最近幾項(xiàng)基于合成數(shù)據(jù)(SD)的研究的啟發(fā),這些研究僅使用帶有完整深度信息的合成圖像進(jìn)行訓(xùn)練,我們廣泛檢查了合成圖像的標(biāo)簽質(zhì)量,并注意到它們有可能緩解上述討論的缺點(diǎn)。
合成圖像的優(yōu)勢(shì)。它們的深度標(biāo)簽在兩個(gè)方面非常精確。1) 所有細(xì)節(jié)(例如,邊界、薄孔、小物體等)都被正確標(biāo)記。如圖4b所示,即使是所有細(xì)小的網(wǎng)格結(jié)構(gòu)和葉子都被標(biāo)注了真實(shí)的深度。2) 我們可以獲取具有挑戰(zhàn)性的透明物體和反射表面的實(shí)際深度,例如圖4b中桌子上的花瓶。簡而言之,合成圖像的深度確實(shí)是“真實(shí)值”(Ground Truth)。在圖4c的右側(cè),我們展示了在合成圖像上訓(xùn)練的MDE模型的精細(xì)預(yù)測(cè)。此外,我們可以通過從圖形引擎中收集數(shù)據(jù)來快速擴(kuò)大合成訓(xùn)練圖像的數(shù)量,與真實(shí)圖像相比,這不會(huì)引起任何隱私或倫理問題。
使用合成數(shù)據(jù)的挑戰(zhàn)
如果合成數(shù)據(jù)如此有優(yōu)勢(shì),為什么真實(shí)數(shù)據(jù)仍然在MDE中占據(jù)主導(dǎo)地位?在本節(jié)中,我們識(shí)別出合成圖像的兩個(gè)限制,這些限制阻礙了它們?cè)诂F(xiàn)實(shí)中的輕松使用。
限制1. 合成圖像和真實(shí)圖像之間存在分布差異。盡管當(dāng)前的圖形引擎努力追求逼真的效果,但它們的風(fēng)格和顏色分布仍與真實(shí)圖像有顯著差異。合成圖像的顏色過于“干凈”,布局過于“有序”,而真實(shí)圖像則包含更多的隨機(jī)性。例如,比較圖4a和圖4b中的圖像,我們可以立即區(qū)分出合成圖像。這種分布差異使得模型很難從合成圖像轉(zhuǎn)移到真實(shí)圖像,即使這兩個(gè)數(shù)據(jù)源具有相似的布局。
限制2. 合成圖像的場(chǎng)景覆蓋范圍有限。它們是從圖形引擎中迭代采樣的,具有預(yù)定義的固定場(chǎng)景類型,例如“客廳”和“街道場(chǎng)景”。因此,盡管Hypersim或Virtual KITTI(如圖4b所示)具有驚人的精度,但我們不能期望在這些數(shù)據(jù)集上訓(xùn)練的模型在現(xiàn)實(shí)世界場(chǎng)景(如“擁擠的人群”)中也能很好地泛化。相比之下,一些從網(wǎng)絡(luò)立體圖像(例如HRWSI)或單目視頻(例如MegaDepth)構(gòu)建的真實(shí)數(shù)據(jù)集,可以覆蓋廣泛的現(xiàn)實(shí)世界場(chǎng)景。
因此,在MDE中從合成到真實(shí)的遷移并非易事。為了驗(yàn)證這一說法,我們進(jìn)行了一項(xiàng)初步研究,僅使用四種流行的預(yù)訓(xùn)練編碼器(包括BEiT、SAM、SynCLR和DINOv2)在合成圖像上學(xué)習(xí)MDE模型。如圖5所示,只有DINOv2-G取得了令人滿意的結(jié)果。其他所有模型系列以及較小的DINOv2模型都存在嚴(yán)重的泛化問題。這項(xiàng)初步研究似乎為在MDE中使用合成數(shù)據(jù)提供了一個(gè)直接的解決方案,即基于最大的DINOv2編碼器,并依賴其固有的泛化能力。然而,這種簡單的解決方案面臨兩個(gè)問題。首先,當(dāng)真實(shí)測(cè)試圖像的模式在合成訓(xùn)練圖像中很少出現(xiàn)時(shí),DINOv2-G經(jīng)常遇到失敗的情況。在圖6中,我們可以清楚地觀察到天空(云)和人類頭部的深度預(yù)測(cè)錯(cuò)誤。這種失敗是可以預(yù)料的,因?yàn)槲覀兊暮铣捎?xùn)練集不包括多樣化的天空模式或人類。此外,大多數(shù)應(yīng)用無法從存儲(chǔ)和推理效率方面容納資源密集型的DINOv2-G模型(1.3B)。實(shí)際上,由于其實(shí)時(shí)速度,Depth Anything V1中的最小模型被使用得最廣泛。
為了緩解泛化問題,一些工作使用真實(shí)和合成圖像的混合訓(xùn)練集。不幸的是,真實(shí)圖像的粗略深度圖對(duì)精細(xì)預(yù)測(cè)具有破壞性。另一個(gè)潛在的解決方案是收集更多的合成圖像,但這是不可持續(xù)的,因?yàn)閯?chuàng)建模擬每個(gè)現(xiàn)實(shí)世界場(chǎng)景的圖形引擎是棘手的。因此,在使用合成數(shù)據(jù)構(gòu)建MDE模型時(shí),需要一個(gè)可靠的解決方案。在本文中,我們將彌補(bǔ)這一差距,并提出一個(gè)解決方案,該方案解決了精確性和魯棒性的兩難問題,無需任何折衷,并且適用于任何模型規(guī)模。
大規(guī)模未標(biāo)注真實(shí)圖像的關(guān)鍵作用
我們的解決方案很直接:結(jié)合未標(biāo)記的真實(shí)圖像。我們最強(qiáng)大的MDE模型,基于DINOv2-G,最初僅在高質(zhì)量的合成圖像上進(jìn)行訓(xùn)練。然后,它給未標(biāo)記的真實(shí)圖像分配偽深度標(biāo)簽。最后,我們的新模型僅使用大規(guī)模且精確偽標(biāo)記的圖像進(jìn)行訓(xùn)練。Depth Anything V1已經(jīng)強(qiáng)調(diào)了大規(guī)模未標(biāo)記真實(shí)數(shù)據(jù)的重要性。在這里,在我們特定的合成標(biāo)記圖像背景下,將從三個(gè)角度更詳細(xì)地展示其不可或缺的作用。
彌合領(lǐng)域差異。如前所述,由于分布差異,直接從合成訓(xùn)練圖像轉(zhuǎn)移到真實(shí)測(cè)試圖像是具有挑戰(zhàn)性的。但如果我們能利用額外的真實(shí)圖像作為中間學(xué)習(xí)目標(biāo),這個(gè)過程將更可靠。直觀地看,經(jīng)過在偽標(biāo)記的真實(shí)圖像上的明確訓(xùn)練后,模型可以更加熟悉現(xiàn)實(shí)世界的數(shù)據(jù)分布。與手動(dòng)標(biāo)注的圖像相比,我們自動(dòng)生成的偽標(biāo)簽更加精細(xì)和完整,如圖17所示。
增強(qiáng)場(chǎng)景覆蓋。合成圖像的多樣性有限,沒有包含足夠的現(xiàn)實(shí)世界場(chǎng)景。然而,我們可以通過結(jié)合來自公共數(shù)據(jù)集的大規(guī)模未標(biāo)記圖像來輕松覆蓋許多不同的場(chǎng)景。此外,由于合成圖像是從預(yù)定義的視頻中重復(fù)采樣得到的,因此它們確實(shí)非常冗余。相比之下,未標(biāo)記的真實(shí)圖像則清晰可辨且非常具有信息性。通過訓(xùn)練足夠的圖像和場(chǎng)景,模型不僅顯示出更強(qiáng)的零次學(xué)習(xí)MDE能力,而且它們還可以作為下游相關(guān)任務(wù)的更好預(yù)訓(xùn)練源。
將最強(qiáng)大模型的知識(shí)轉(zhuǎn)移到較小的模型中。如圖5所示,較小的模型本身無法直接從合成到真實(shí)的遷移中受益。然而,借助大規(guī)模未標(biāo)記的真實(shí)圖像,它們可以學(xué)習(xí)模仿最強(qiáng)大模型的高質(zhì)量預(yù)測(cè),類似于知識(shí)蒸餾。但不同的是,我們的蒸餾是在標(biāo)簽級(jí)別上通過額外的未標(biāo)記真實(shí)數(shù)據(jù)進(jìn)行的,而不是在特征或邏輯級(jí)別上使用原始標(biāo)記數(shù)據(jù)。這種做法更安全,因?yàn)橛凶C據(jù)表明特征級(jí)別的蒸餾并不總是有益的,尤其是當(dāng)教師-學(xué)生規(guī)模差距很大時(shí)。
Depth Anything V2
根據(jù)以上所有分析,我們訓(xùn)練Depth Anything V2的最終流程已經(jīng)很清晰(如圖7所示)。
它包含三個(gè)步驟:
- 僅基于高質(zhì)量的合成圖像,訓(xùn)練一個(gè)基于DINOv2-G的可靠教師模型。
- 在大規(guī)模未標(biāo)注的真實(shí)圖像上生成精確的偽深度標(biāo)簽。
- 使用偽標(biāo)記的真實(shí)圖像訓(xùn)練最終的學(xué)生模型以實(shí)現(xiàn)魯棒的泛化。
我們將發(fā)布四個(gè)學(xué)生模型,分別基于DINOv2的small, base, large, and giant版本。
如表7所示,我們使用了五個(gè)精確的合成數(shù)據(jù)集(595K張圖像)和八個(gè)大規(guī)模偽標(biāo)記的真實(shí)數(shù)據(jù)集(62M張圖像)進(jìn)行訓(xùn)練。與V1相同,對(duì)于每個(gè)偽標(biāo)記樣本,在訓(xùn)練過程中忽略其損失最大的前n個(gè)區(qū)域,其中n設(shè)置為10%。我們認(rèn)為這些區(qū)域是潛在的帶有噪聲的偽標(biāo)簽。類似地,我們的模型生成仿射不變的逆深度。
在標(biāo)注圖像上使用兩個(gè)損失項(xiàng)進(jìn)行優(yōu)化:一個(gè)尺度和偏移不變損失Lssi和一個(gè)梯度匹配損失Lgm。這兩個(gè)目標(biāo)函數(shù)并不是新的。但不同的是,我們發(fā)現(xiàn)當(dāng)使用合成圖像時(shí),Lgm對(duì)深度銳度非常有益。在偽標(biāo)注的圖像上,遵循V1添加了一個(gè)額外的特征對(duì)齊損失,以保留來自預(yù)訓(xùn)練的DINOv2編碼器的信息性語義。
新的評(píng)估基準(zhǔn):DA-2K
1)現(xiàn)有基準(zhǔn)的局限性
圖8展示了NYU-D上對(duì)于鏡子和薄結(jié)構(gòu)的錯(cuò)誤標(biāo)注,盡管使用了專門的深度傳感器。這種頻繁的標(biāo)簽噪聲使得強(qiáng)大的MDE模型報(bào)告的指標(biāo)不再可靠。除了標(biāo)簽噪聲外,這些基準(zhǔn)的另一個(gè)缺點(diǎn)是多樣性有限。它們中的大多數(shù)最初是為單一場(chǎng)景提出的。例如,NYU-D主要關(guān)注少數(shù)室內(nèi)房間,而KITTI僅包含幾個(gè)街道場(chǎng)景。這些基準(zhǔn)上的性能可能無法反映現(xiàn)實(shí)世界的可靠性。理想情況下,我們希望MDE模型能夠穩(wěn)健地處理任何未見過的場(chǎng)景。這些現(xiàn)有基準(zhǔn)的最后一個(gè)問題是分辨率低。它們大多提供分辨率為500×500左右的圖像。但是,使用現(xiàn)代相機(jī),我們通常需要對(duì)更高分辨率的圖像(例如1000×2000)進(jìn)行精確的深度估計(jì)。目前尚不清楚從這些低分辨率基準(zhǔn)得出的結(jié)論是否可以安全地轉(zhuǎn)移到高分辨率基準(zhǔn)上。
2)DA-2K
考慮到上述三個(gè)限制,我們旨在構(gòu)建一個(gè)通用的相對(duì)單目深度估計(jì)評(píng)估基準(zhǔn),該基準(zhǔn)能夠:1) 提供精確的深度關(guān)系,2) 覆蓋廣泛的場(chǎng)景,以及3) 包含主要用于現(xiàn)代用途的高分辨率圖像。事實(shí)上,人為標(biāo)注每個(gè)像素的深度是不切實(shí)際的,尤其是對(duì)于自然圖像。因此,遵循DIW,對(duì)每張圖像標(biāo)注稀疏的深度對(duì)。一般來說,給定一張圖像,我們可以選擇其上的兩個(gè)像素,并確定它們之間的相對(duì)深度(即哪個(gè)像素更近)。
具體來說,我們采用兩種不同的流程來選擇像素對(duì)。在第一個(gè)流程中,如圖9a所示,我們使用SAM自動(dòng)預(yù)測(cè)目標(biāo)mask。我們并不直接使用這些mask,而是利用提示它們的關(guān)鍵點(diǎn)(像素)。隨機(jī)抽取兩個(gè)關(guān)鍵點(diǎn),并查詢四個(gè)專家模型對(duì)它們的相對(duì)深度進(jìn)行投票。如果有分歧,這一對(duì)將被發(fā)送給人類標(biāo)注者來決定真正的相對(duì)深度。由于可能存在歧義,標(biāo)注者可以跳過任何一對(duì)。然而,可能存在所有模型都錯(cuò)誤預(yù)測(cè)具有挑戰(zhàn)性的像素對(duì)的情況,而這些對(duì)并未被標(biāo)注出來。為了解決這個(gè)問題,我們引入了第二個(gè)流程,其中我們仔細(xì)分析圖像并手動(dòng)識(shí)別具有挑戰(zhàn)性的像素對(duì)。
為了確保準(zhǔn)確性,所有標(biāo)注都由其他兩位標(biāo)注者進(jìn)行三重檢查。為了確保多樣性,首先總結(jié)了MDE的八個(gè)重要應(yīng)用場(chǎng)景(圖9b),并請(qǐng)GPT4為每個(gè)場(chǎng)景生成相關(guān)的多樣化關(guān)鍵詞。然后,使用這些關(guān)鍵詞從Flickr下載相應(yīng)的圖像。最后,我們總共對(duì)1K張圖像進(jìn)行了標(biāo)注,包含2K個(gè)像素對(duì)。
DA-2K的地位。盡管具有優(yōu)勢(shì),但我們并不期望DA-2K取代當(dāng)前的基準(zhǔn)。準(zhǔn)確的稀疏深度仍然遠(yuǎn)未達(dá)到場(chǎng)景重建所需的精確密集深度。然而,DA-2K可以被認(rèn)為是準(zhǔn)確密集深度的先決條件。因此,我們認(rèn)為DA-2K由于其廣泛的場(chǎng)景覆蓋和精確性,可以作為現(xiàn)有基準(zhǔn)的有價(jià)值補(bǔ)充。它還可以作為用戶為DA-2K中涵蓋的特定場(chǎng)景選擇社區(qū)模型的快速前期驗(yàn)證。最后,我們認(rèn)為它也是未來多模態(tài)LLMs的3D感知能力的潛在測(cè)試平臺(tái)。