位元組跳動大模型團隊成果 Depth Anything V2 現已被蘋果官方收入 Core ML 模型庫。本文介紹了 Depth Anything 系列成果的研發歷程、技術挑戰與解決方法,分享了團隊對於 Scaling Laws 在單一視覺任務方面的思考。值得一提的是,Depth Anything V1 與 V2 兩個版本論文一作是團隊實習生。
近日,位元組跳動大模型團隊開發的成果 Depth Anything V2 ,入選蘋果公司 Core ML 模型庫,目前已呈現在開發者相關頁面中。
Depth Anything 是一種單目深度估計模型,V1 版本釋出於 2024 年初,V2 版本釋出於 2024 年 6 月,包含 25M 到 1.3B 引數的不同大小模型,可應用於影片特效、自動駕駛、3D 建模、擴增實境、安全監控以及空間計算等領域。
相比上一代版本,V2 版在細節處理上更精細,魯棒性更強,並且對比基於 Diffusion 的 SOTA 模型,速度上有顯著提升。
目前 Github 上該系列成果總計收穫 8.7k Star。其中,Depth Anything V2 釋出不久,已有 2.3k star ,更早版本 Depth Anything V1 收穫 6.4k Star。值得一提的是,Depth Anything V1 與 V2 兩個版本論文一作是團隊實習生。
更多模型效果,點選下方影片瞭解:
相關論文與更多效果展示:
論文標題:Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data
論文連結:https://arxiv.org/abs/2401.10891
效果展示:https://depth-anything.github.io/
論文標題:Depth Anything V2
論文連結:https://arxiv.org/abs/2406.09414
效果展示:https://depth-anything-v2.github.io/
一、Scaling Laws 對單一視覺任務的啟示
隨著近兩年大模型潮湧,Scaling Laws 的價值也被越來越多人認同。身處其中,有的研究團隊致力於研發一個模型,以實現目標檢測、影像分割等多種視覺任務,Depth Anything 團隊選擇了另一個方向——
依託 Scaling Laws 思路,構建一個簡單但功能強大的基礎模型,在單一任務上實現更好效果。
對於上述選擇,團隊同學解釋道,此前大家也曾考慮研究一個大模型去解決多個任務,但從結果看,實際效果只能達到 70 - 80 分水平,但在時間成本、算力成本方面消耗量較大。
從落地角度出發,團隊認為,利用 Scaling Laws 解決一些基礎問題更具實際價值。
關於為什麼選擇深度估計任務,成員介紹道,如果將計算機視覺領域的任務進行分類,文字描述、影像分類等任務均需要有人參與,才有意義。與之相對,邊緣檢測、光流法運動檢測等任務中,相關訊號本身就客觀存在,結果評價也不需要人類參與。深度估計(Depth Estimation)便可歸為此類,相比其他任務,該任務更為“基礎”,關聯落地場景也較多。
作為計算機視覺領域中的重要任務之一,深度估計旨在從影像中推斷出場景內物體的距離資訊,應用包括自動駕駛、3D 建模、擴增實境等。
此外,深度估計模型還可以作為中介軟體,整合進影片平臺或剪輯軟體中,以支援特效製作、影片編輯等功能。目前,已有下游 B 端使用者將 Depth Anything V2 內建進產品當中。
下游使用者 Quick Depth 將 Depth Anything V2 內建進產品的效果
二、Depth Anything V1 訓練過程
Depth Anything 從立項到 V2 版本釋出並被蘋果選入 Core ML,歷經一年左右時間。據成員分享,這當中,最困難部分在於兩方面:
如何訓練模型,以達到並超過已有成果水平; 讓模型在細節方面有更好表現;
上述兩個問題分別匯出了 Depth Anything 的 V1 和 V2 版本,我們不妨先從訓練模型說起。
事實上,Depth Anything 出現前,MiDaS 已能較好解決深度估計問題。
MiDaS 是一種穩健的單目深度估計模型,相關論文於 2019 年首次提交 ArXiv ,很快中選計算機視覺和人工智慧領域頂級國際期刊 TPAMI 。但該模型只開源了模型本身,卻未開源訓練方法。
為實現訓練過程,團隊主要做了如下努力。
1. 專門設計了一個資料引擎,收集並自動標註大量資料
該方面努力大大擴充套件了資料覆蓋範圍,減小泛化誤差。資料增強工具的引入使得模型可主動尋求額外視覺知識,並獲得穩健的表示能力。
值得一提的是,起初模型的自訓練 Pipeline 並未獲得較大提升。團隊推測,可能是所用標註資料集內已有相當數量的影像,模型沒能從未標註資料獲得大量知識。
於是,他們轉而以一個更困難的最佳化目標挑戰學生模型:在訓練過程中,對無標註影像加入強擾動(顏色失真和空間失真),迫使學生模型主動尋求額外視覺知識。
2. 透過預訓練編碼器,促使模型繼承豐富的語義先驗知識
理論上,高維語義資訊對於深度估計模型有益,來自其他任務中的輔助監督訊號對於偽深度標籤有對抗作用。於是,團隊便在一開始嘗試透過 RAM+GroundingDINO+HQ-SAM 模型組合為無標註影像分配語義標籤,但效果有限。團隊推測,該現象源於影像解碼為離散類空間過程中,損失了大量語義資訊。
經過一段時間嘗試,團隊轉而引入了基於預訓練編碼器的知識蒸餾,促使模型從中繼承豐富的語義先驗知識,進一步彌補資料標註量比較少的問題。
訓練 Pipeline 如下圖,實線為有標註影像流,虛線為無標註的影像流,S 表示加入的強擾動。同時,為了讓模型擁有豐富的先驗語義知識,團隊在凍結編碼器(Encoder)與線上學生模型之間強制執行了輔助約束,以保留語義能力。
Depth Anything Pipeline 展示
最終,Depth Anything 不僅跟之前成果同等效果,在一些指標上,還超越了參考模型。在下圖零樣本相對深度估計表現中,Depth Anything 對比 MiDaS v3.1 面向 KITTI 等主流資料集,均有不錯表現。其中 AbsRel 數值越低效果越好,δ1 數值越高效果越好。
此外,該模型面向 6 個公共資料集和隨機拍攝的照片,在零樣本能力評估方面也表現出了很強的泛化能力。
三、最佳化細節與模型規模 Scaling-up
完成 V1 版本訓練後,團隊對模型進行進一步最佳化並提升魯棒性,還比照了其它型別模型的效果。
具體來說,基於穩定擴散的 Marigold 屬於生成式單目深度估計模型,對於細節問題,以及透明物體、反射表面單目深度估計問題能很好解決,但複雜度、效率、通用性方面有所不足。Depth Anything V1 的特徵則與其互補。
為解決上述問題,團隊嘗試了各種方法及探索,包括調整預訓練模型、修改 Loss 、資料增強等等。
這一過程中,有三點重要發現:
其一,精確的合成資料能在細節方面帶來更好表現。
透過對比其他模型(比如:Marigold ),團隊發現,對於細節問題,穩定擴散模型並非唯一解。判別式的單目深度估計模型在細節問題方面,依然可以有很好表現能力。關鍵在於用精確的合成影像資料替換帶標註的真實影像資料。
團隊認為,真實帶標註的資料存在兩個缺點。其一是標註資訊不可避免包含不準確的估計結果,這可能源自感測器無法捕捉,也可能來自演算法影響。其二,真實資料集忽略了一些深度細節,比如對於樹木、椅子腿等表示較為粗糙,造成了模型表現不佳。
其二,此前很多成果未使用合成資料,源於合成資料本身在之前存在較大缺陷。
以 DINOv2-G 為例,模型基於純合成資料訓練會產生很大誤差,其原因在於,合成影像與真實影像本身存在差異,比如顏色過於“乾淨”,佈局過於“有序”,而真實影像則有更強隨機性。此外,合成影像的場景有限,勢必影響模型通用性。
團隊針對 BEiT、SAM、DINOv2 等模型泛化性的對比,結果發現只有 DINOv2-G 達到了滿意效果,其他均存在嚴重泛化問題。
其三,針對合成影像資料揚長避短的方法:用合成資料訓練教師模型並擴大模型規模,接著,以大規模的偽標註真實影像為橋樑,教授較小的學生模型。
基於上述思路,團隊構建了訓練 Depth Anything V2 的 Pipeline ,具體來說,先基於高質量的合成影像,訓練基於 DINOv2-G 的教師模型,再在大量未標記的真實影像上產生精確的偽標註深度資訊,最後,基於偽標註的真實影像訓練學生模型,以獲取高魯棒的泛化能力。
為了更好評價模型表現,團隊還提出了 DA-2K 評價基準。它考慮了精確的深度關係、覆蓋了廣泛場景,幷包含大量高解析度影像及 8 個代表性場景。基於該基準, Depth Anything V2 ViT-G 版本明顯優於 Marigold 及 Depth Anything V1 在內的之前成果。
除了針對資料的相關研究,團隊還嘗試擴大了教師模型容量,以探索模型規模 Scaling 對效果的影響。
透過研究,團隊發現,規模較小的教師模型泛化能力的確不如較大規模模型,此外,不同型別的預訓練編碼器提升規模後,帶來的泛化提升差異很大,比如 BEiT 、SAM 等主流預訓練編碼器表現明顯不如 DinoV2 。
上述種種努力持續數月,最終,Depth Anything 模型在魯棒性和細節豐富度上都有較大提升,且相比基於穩定擴散技術構建的最新模型速度快 10 倍以上,效率更高。
與之相對,預訓練的擴散模型在細節方面表現更佳。團隊同學表示,此前也曾考慮使用更復雜的模型,但透過深入研究,考慮落地成本、實際需求等因素,Feed-forward 結構目前仍是更適合落地的選擇。
回望整個過程,參與同學感慨:“研究工作其實沒特別多所謂的靈感迸發瞬間,更多的,還是踏踏實實逐個把設想方法嘗試一遍,才能取得成績”。
最後,展望 Scaling Laws 對 CV 發展的影響,團隊認為,Scaling Laws 在未來將更有助於解決此前一直存在,且難以突破的基礎任務,充分發揮資料、模型 Scaling 的價值。至於 Scaling 不斷提升的邊界在哪?團隊還在進一步探索中。
四、論文一作為實習生
目前,Depth Anything 已有2個版本模型系列釋出,相關論文 Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data 已中選 CVPR 2024。
該系列成果一作為團隊實習生,相關研究工作也是在公司實習期間完成。
立項時,由 Mentor 提出了規模 Scaling 的路線,並給到最初專案設想,實習生進一步提出用大規模未標註資料去 Scaling-up 的想法。不到一年,該同學就完成了相關成果的上手實驗、專案推進、論文撰寫等大部分工作。
期間,公司科學家與團隊 Mentor 相應提供了建議與指導,持續跟蹤進展,並出面跟合作部門協調計算資源。
“我們在研究工作上,會更多聚焦在給出好問題,並在一些關鍵節點把控專案推進方向,提供給實習生適當的方案思路,執行上,充分信任同學們”,專案 Mentor 分享道。
這樣既能尊重實習同學想法,也能避免完全不管,沒有產出,他認為。
在大家的共同努力下,該實習同學不僅收穫了成果,能力也獲得較大提升,個人研究品位及獨立發現解決問題能力頗受團隊認可。
關於個人成長與團隊支援,實習同學認為,公司和組裡提供了自由研究氛圍,對於合理思路都比較支援。
“而且相比 Paper 數量,團隊會鼓勵花更多時間研究更難、更本質、更能為行業提供新視角和新價值的問題”,他補充道。
事實上,Depth Anything 只是眾多成果之一,位元組跳動近期在視覺生成及大模型相關領域的研究探索還有很多。
MagicAnimate: Temporally Consistent Human Image Animation using Diffusion Model An Image is Worth 32 Tokens for Reconstruction and Generation Magic-Boost: Boost 3D Generation with Multi-View Conditioned Diffusion LLaVA-next: Open Large Multimodal Models PLLaVA: Parameter-free llava extension from images to videos for video dense captioning Flash v-stream: Memory-Based Real-Time Understanding for Long Video Streams
...
目前,位元組跳動大模型計算機視覺方向正在持續招攬優秀人才,如果你也渴望在自由的研究氛圍裡,參與計算機視覺技術的的前沿探索,歡迎點選此連結,投遞簡歷。