GitHub 8k Star,一作實(shí)習(xí)生,字節(jié)這個(gè)大模型成果被蘋(píng)果選中了
近日,字節(jié)跳動(dòng)大模型團(tuán)隊(duì)開(kāi)發(fā)的成果 Depth Anything V2 ,入選蘋(píng)果公司 Core ML 模型庫(kù),目前已呈現(xiàn)在開(kāi)發(fā)者相關(guān)頁(yè)面中。
Depth Anything 是一種單目深度估計(jì)模型,V1 版本發(fā)布于 2024 年初,V2 版本發(fā)布于 2024 年 6 月,包含 25M 到 1.3B 參數(shù)的不同大小模型,可應(yīng)用于視頻特效、自動(dòng)駕駛、3D 建模、增強(qiáng)現(xiàn)實(shí)、安全監(jiān)控以及空間計(jì)算等領(lǐng)域。
相比上一代版本,V2 版在細(xì)節(jié)處理上更精細(xì),魯棒性更強(qiáng),并且對(duì)比基于 Diffusion 的 SOTA 模型,速度上有顯著提升。
目前 Github 上該系列成果總計(jì)收獲 8.7k Star。其中,Depth Anything V2 發(fā)布不久,已有 2.3k star ,更早版本 Depth Anything V1 收獲 6.4k Star。值得一提的是,Depth Anything V1 與 V2 兩個(gè)版本論文一作是團(tuán)隊(duì)實(shí)習(xí)生。
更多模型效果,點(diǎn)擊下方視頻了解:
本次蘋(píng)果公司收錄的 Depth Anything V2 為 Core ML 版本。作為該公司的機(jī)器學(xué)習(xí)框架,Core ML 旨在將機(jī)器學(xué)習(xí)模型集成到 iOS,MacOS 等設(shè)備上高效運(yùn)行,可在無(wú)互聯(lián)網(wǎng)連接情況下,執(zhí)行復(fù)雜 AI 任務(wù),從而增強(qiáng)用戶(hù)隱私并減少延遲。
Core ML 版本 Depth Anything V2 采用最小 25M 模型,經(jīng) HuggingFace 官方工程優(yōu)化,在 iPhone 12 Pro Max 上,推理速度達(dá)到 31.1 毫秒。與其一同入選的模型還有 FastViT 、ResNet50 、YOLOv3 等,涵蓋自然語(yǔ)言處理到圖像識(shí)別多個(gè)領(lǐng)域。
相關(guān)論文與更多效果展示:
- 論文標(biāo)題:Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data
- 論文鏈接:https://arxiv.org/abs/2401.10891
- 效果展示:https://depth-anything.github.io/
- 論文標(biāo)題:Depth Anything V2
- 論文鏈接:https://arxiv.org/abs/2406.09414
- 效果展示:https://depth-anything-v2.github.io/
一、Scaling Laws 對(duì)單一視覺(jué)任務(wù)的啟示
隨著近兩年大模型潮涌,Scaling Laws 的價(jià)值也被越來(lái)越多人認(rèn)同。身處其中,有的研究團(tuán)隊(duì)致力于研發(fā)一個(gè)模型,以實(shí)現(xiàn)目標(biāo)檢測(cè)、圖像分割等多種視覺(jué)任務(wù),Depth Anything 團(tuán)隊(duì)選擇了另一個(gè)方向——
依托 Scaling Laws 思路,構(gòu)建一個(gè)簡(jiǎn)單但功能強(qiáng)大的基礎(chǔ)模型,在單一任務(wù)上實(shí)現(xiàn)更好效果。
對(duì)于上述選擇,團(tuán)隊(duì)同學(xué)解釋道,此前大家也曾考慮研究一個(gè)大模型去解決多個(gè)任務(wù),但從結(jié)果看,實(shí)際效果只能達(dá)到 70 - 80 分水平,但在時(shí)間成本、算力成本方面消耗量較大。
從落地角度出發(fā),團(tuán)隊(duì)認(rèn)為,利用 Scaling Laws 解決一些基礎(chǔ)問(wèn)題更具實(shí)際價(jià)值。
關(guān)于為什么選擇深度估計(jì)任務(wù),成員介紹道,如果將計(jì)算機(jī)視覺(jué)領(lǐng)域的任務(wù)進(jìn)行分類(lèi),文本描述、圖像分類(lèi)等任務(wù)均需要有人參與,才有意義。與之相對(duì),邊緣檢測(cè)、光流法運(yùn)動(dòng)檢測(cè)等任務(wù)中,相關(guān)信號(hào)本身就客觀存在,結(jié)果評(píng)價(jià)也不需要人類(lèi)參與。深度估計(jì)(Depth Estimation)便可歸為此類(lèi),相比其他任務(wù),該任務(wù)更為“基礎(chǔ)”,關(guān)聯(lián)落地場(chǎng)景也較多。
作為計(jì)算機(jī)視覺(jué)領(lǐng)域中的重要任務(wù)之一,深度估計(jì)旨在從圖像中推斷出場(chǎng)景內(nèi)物體的距離信息,應(yīng)用包括自動(dòng)駕駛、3D 建模、增強(qiáng)現(xiàn)實(shí)等。
此外,深度估計(jì)模型還可以作為中間件,整合進(jìn)視頻平臺(tái)或剪輯軟件中,以支持特效制作、視頻編輯等功能。目前,已有下游 B 端用戶(hù)將 Depth Anything V2 內(nèi)置進(jìn)產(chǎn)品當(dāng)中。
下游用戶(hù) Quick Depth 將 Depth Anything V2 內(nèi)置進(jìn)產(chǎn)品的效果
二、Depth Anything V1 訓(xùn)練過(guò)程
Depth Anything 從立項(xiàng)到 V2 版本發(fā)布并被蘋(píng)果選入 Core ML,歷經(jīng)一年左右時(shí)間。據(jù)成員分享,這當(dāng)中,最困難部分在于兩方面:
- 如何訓(xùn)練模型,以達(dá)到并超過(guò)已有成果水平;
- 讓模型在細(xì)節(jié)方面有更好表現(xiàn);
上述兩個(gè)問(wèn)題分別導(dǎo)出了 Depth Anything 的 V1 和 V2 版本,我們不妨先從訓(xùn)練模型說(shuō)起。
事實(shí)上,Depth Anything 出現(xiàn)前,MiDaS 已能較好解決深度估計(jì)問(wèn)題。
MiDaS 是一種穩(wěn)健的單目深度估計(jì)模型,相關(guān)論文于 2019 年首次提交 ArXiv ,很快中選計(jì)算機(jī)視覺(jué)和人工智能領(lǐng)域頂級(jí)國(guó)際期刊 TPAMI 。但該模型只開(kāi)源了模型本身,卻未開(kāi)源訓(xùn)練方法。
為實(shí)現(xiàn)訓(xùn)練過(guò)程,團(tuán)隊(duì)主要做了如下努力。
1. 專(zhuān)門(mén)設(shè)計(jì)了一個(gè)數(shù)據(jù)引擎,收集并自動(dòng)標(biāo)注大量數(shù)據(jù)
該方面努力大大擴(kuò)展了數(shù)據(jù)覆蓋范圍,減小泛化誤差。數(shù)據(jù)增強(qiáng)工具的引入使得模型可主動(dòng)尋求額外視覺(jué)知識(shí),并獲得穩(wěn)健的表示能力。
值得一提的是,起初模型的自訓(xùn)練 Pipeline 并未獲得較大提升。團(tuán)隊(duì)推測(cè),可能是所用標(biāo)注數(shù)據(jù)集內(nèi)已有相當(dāng)數(shù)量的圖像,模型沒(méi)能從未標(biāo)注數(shù)據(jù)獲得大量知識(shí)。
于是,他們轉(zhuǎn)而以一個(gè)更困難的優(yōu)化目標(biāo)挑戰(zhàn)學(xué)生模型:在訓(xùn)練過(guò)程中,對(duì)無(wú)標(biāo)注圖像加入強(qiáng)擾動(dòng)(顏色失真和空間失真),迫使學(xué)生模型主動(dòng)尋求額外視覺(jué)知識(shí)。
2. 通過(guò)預(yù)訓(xùn)練編碼器,促使模型繼承豐富的語(yǔ)義先驗(yàn)知識(shí)
理論上,高維語(yǔ)義信息對(duì)于深度估計(jì)模型有益,來(lái)自其他任務(wù)中的輔助監(jiān)督信號(hào)對(duì)于偽深度標(biāo)簽有對(duì)抗作用。于是,團(tuán)隊(duì)便在一開(kāi)始嘗試通過(guò) RAM+GroundingDINO+HQ-SAM 模型組合為無(wú)標(biāo)注圖像分配語(yǔ)義標(biāo)簽,但效果有限。團(tuán)隊(duì)推測(cè),該現(xiàn)象源于圖像解碼為離散類(lèi)空間過(guò)程中,損失了大量語(yǔ)義信息。
經(jīng)過(guò)一段時(shí)間嘗試,團(tuán)隊(duì)轉(zhuǎn)而引入了基于預(yù)訓(xùn)練編碼器的知識(shí)蒸餾,促使模型從中繼承豐富的語(yǔ)義先驗(yàn)知識(shí),進(jìn)一步彌補(bǔ)數(shù)據(jù)標(biāo)注量比較少的問(wèn)題。
訓(xùn)練 Pipeline 如下圖,實(shí)線為有標(biāo)注圖像流,虛線為無(wú)標(biāo)注的圖像流,S 表示加入的強(qiáng)擾動(dòng)。同時(shí),為了讓模型擁有豐富的先驗(yàn)語(yǔ)義知識(shí),團(tuán)隊(duì)在凍結(jié)編碼器(Encoder)與在線學(xué)生模型之間強(qiáng)制執(zhí)行了輔助約束,以保留語(yǔ)義能力。
Depth Anything Pipeline 展示
最終,Depth Anything 不僅跟之前成果同等效果,在一些指標(biāo)上,還超越了參考模型。在下圖零樣本相對(duì)深度估計(jì)表現(xiàn)中,Depth Anything 對(duì)比 MiDaS v3.1 面向 KITTI 等主流數(shù)據(jù)集,均有不錯(cuò)表現(xiàn)。其中 AbsRel 數(shù)值越低效果越好,δ1 數(shù)值越高效果越好。
此外,該模型面向 6 個(gè)公共數(shù)據(jù)集和隨機(jī)拍攝的照片,在零樣本能力評(píng)估方面也表現(xiàn)出了很強(qiáng)的泛化能力。
三、優(yōu)化細(xì)節(jié)與模型規(guī)模 Scaling-up
完成 V1 版本訓(xùn)練后,團(tuán)隊(duì)對(duì)模型進(jìn)行進(jìn)一步優(yōu)化并提升魯棒性,還比照了其它類(lèi)型模型的效果。
具體來(lái)說(shuō),基于穩(wěn)定擴(kuò)散的 Marigold 屬于生成式單目深度估計(jì)模型,對(duì)于細(xì)節(jié)問(wèn)題,以及透明物體、反射表面單目深度估計(jì)問(wèn)題能很好解決,但復(fù)雜度、效率、通用性方面有所不足。Depth Anything V1 的特征則與其互補(bǔ)。
為解決上述問(wèn)題,團(tuán)隊(duì)嘗試了各種方法及探索,包括調(diào)整預(yù)訓(xùn)練模型、修改 Loss 、數(shù)據(jù)增強(qiáng)等等。
這一過(guò)程中,有三點(diǎn)重要發(fā)現(xiàn):
其一,精確的合成數(shù)據(jù)能在細(xì)節(jié)方面帶來(lái)更好表現(xiàn)。
通過(guò)對(duì)比其他模型(比如:Marigold ),團(tuán)隊(duì)發(fā)現(xiàn),對(duì)于細(xì)節(jié)問(wèn)題,穩(wěn)定擴(kuò)散模型并非唯一解。判別式的單目深度估計(jì)模型在細(xì)節(jié)問(wèn)題方面,依然可以有很好表現(xiàn)能力。關(guān)鍵在于用精確的合成圖像數(shù)據(jù)替換帶標(biāo)注的真實(shí)圖像數(shù)據(jù)。團(tuán)隊(duì)認(rèn)為,真實(shí)帶標(biāo)注的數(shù)據(jù)存在兩個(gè)缺點(diǎn)。其一是標(biāo)注信息不可避免包含不準(zhǔn)確的估計(jì)結(jié)果,這可能源自傳感器無(wú)法捕捉,也可能來(lái)自算法影響。其二,真實(shí)數(shù)據(jù)集忽略了一些深度細(xì)節(jié),比如對(duì)于樹(shù)木、椅子腿等表示較為粗糙,造成了模型表現(xiàn)不佳。
其二,此前很多成果未使用合成數(shù)據(jù),源于合成數(shù)據(jù)本身在之前存在較大缺陷。
以 DINOv2-G 為例,模型基于純合成數(shù)據(jù)訓(xùn)練會(huì)產(chǎn)生很大誤差,其原因在于,合成圖像與真實(shí)圖像本身存在差異,比如顏色過(guò)于“干凈”,布局過(guò)于“有序”,而真實(shí)圖像則有更強(qiáng)隨機(jī)性。此外,合成圖像的場(chǎng)景有限,勢(shì)必影響模型通用性。
團(tuán)隊(duì)針對(duì) BEiT、SAM、DINOv2 等模型泛化性的對(duì)比,結(jié)果發(fā)現(xiàn)只有 DINOv2-G 達(dá)到了滿(mǎn)意效果,其他均存在嚴(yán)重泛化問(wèn)題。
其三,針對(duì)合成圖像數(shù)據(jù)揚(yáng)長(zhǎng)避短的方法:用合成數(shù)據(jù)訓(xùn)練教師模型并擴(kuò)大模型規(guī)模,接著,以大規(guī)模的偽標(biāo)注真實(shí)圖像為橋梁,教授較小的學(xué)生模型。
基于上述思路,團(tuán)隊(duì)構(gòu)建了訓(xùn)練 Depth Anything V2 的 Pipeline ,具體來(lái)說(shuō),先基于高質(zhì)量的合成圖像,訓(xùn)練基于 DINOv2-G 的教師模型,再在大量未標(biāo)記的真實(shí)圖像上產(chǎn)生精確的偽標(biāo)注深度信息,最后,基于偽標(biāo)注的真實(shí)圖像訓(xùn)練學(xué)生模型,以獲取高魯棒的泛化能力。
為了更好評(píng)價(jià)模型表現(xiàn),團(tuán)隊(duì)還提出了 DA-2K 評(píng)價(jià)基準(zhǔn)。它考慮了精確的深度關(guān)系、覆蓋了廣泛場(chǎng)景,并包含大量高分辨率圖像及 8 個(gè)代表性場(chǎng)景?;谠摶鶞?zhǔn), Depth Anything V2 ViT-G 版本明顯優(yōu)于 Marigold 及 Depth Anything V1 在內(nèi)的之前成果。
除了針對(duì)數(shù)據(jù)的相關(guān)研究,團(tuán)隊(duì)還嘗試擴(kuò)大了教師模型容量,以探索模型規(guī)模 Scaling 對(duì)效果的影響。
通過(guò)研究,團(tuán)隊(duì)發(fā)現(xiàn),規(guī)模較小的教師模型泛化能力的確不如較大規(guī)模模型,此外,不同類(lèi)型的預(yù)訓(xùn)練編碼器提升規(guī)模后,帶來(lái)的泛化提升差異很大,比如 BEiT 、SAM 等主流預(yù)訓(xùn)練編碼器表現(xiàn)明顯不如 DinoV2 。
上述種種努力持續(xù)數(shù)月,最終,Depth Anything 模型在魯棒性和細(xì)節(jié)豐富度上都有較大提升,且相比基于穩(wěn)定擴(kuò)散技術(shù)構(gòu)建的最新模型速度快 10 倍以上,效率更高。
與之相對(duì),預(yù)訓(xùn)練的擴(kuò)散模型在細(xì)節(jié)方面表現(xiàn)更佳。團(tuán)隊(duì)同學(xué)表示,此前也曾考慮使用更復(fù)雜的模型,但通過(guò)深入研究,考慮落地成本、實(shí)際需求等因素,F(xiàn)eed-forward 結(jié)構(gòu)目前仍是更適合落地的選擇。
回望整個(gè)過(guò)程,參與同學(xué)感慨:“研究工作其實(shí)沒(méi)特別多所謂的靈感迸發(fā)瞬間,更多的,還是踏踏實(shí)實(shí)逐個(gè)把設(shè)想方法嘗試一遍,才能取得成績(jī)”。
最后,展望 Scaling Laws 對(duì) CV 發(fā)展的影響,團(tuán)隊(duì)認(rèn)為,Scaling Laws 在未來(lái)將更有助于解決此前一直存在,且難以突破的基礎(chǔ)任務(wù),充分發(fā)揮數(shù)據(jù)、模型 Scaling 的價(jià)值。至于 Scaling 不斷提升的邊界在哪?團(tuán)隊(duì)還在進(jìn)一步探索中。
四、論文一作為實(shí)習(xí)生
目前,Depth Anything 已有2個(gè)版本模型系列發(fā)布,相關(guān)論文 Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data 已中選 CVPR 2024。
該系列成果一作為團(tuán)隊(duì)實(shí)習(xí)生,相關(guān)研究工作也是在公司實(shí)習(xí)期間完成。
立項(xiàng)時(shí),由 Mentor 提出了規(guī)模 Scaling 的路線,并給到最初項(xiàng)目設(shè)想,實(shí)習(xí)生進(jìn)一步提出用大規(guī)模未標(biāo)注數(shù)據(jù)去 Scaling-up 的想法。不到一年,該同學(xué)就完成了相關(guān)成果的上手實(shí)驗(yàn)、項(xiàng)目推進(jìn)、論文撰寫(xiě)等大部分工作。
期間,公司科學(xué)家與團(tuán)隊(duì) Mentor 相應(yīng)提供了建議與指導(dǎo),持續(xù)跟蹤進(jìn)展,并出面跟合作部門(mén)協(xié)調(diào)計(jì)算資源。
“我們?cè)谘芯抗ぷ魃?,?huì)更多聚焦在給出好問(wèn)題,并在一些關(guān)鍵節(jié)點(diǎn)把控項(xiàng)目推進(jìn)方向,提供給實(shí)習(xí)生適當(dāng)?shù)姆桨杆悸?,?zhí)行上,充分信任同學(xué)們”,項(xiàng)目 Mentor 分享道。
這樣既能尊重實(shí)習(xí)同學(xué)想法,也能避免完全不管,沒(méi)有產(chǎn)出,他認(rèn)為。
在大家的共同努力下,該實(shí)習(xí)同學(xué)不僅收獲了成果,能力也獲得較大提升,個(gè)人研究品位及獨(dú)立發(fā)現(xiàn)解決問(wèn)題能力頗受團(tuán)隊(duì)認(rèn)可。
關(guān)于個(gè)人成長(zhǎng)與團(tuán)隊(duì)支持,實(shí)習(xí)同學(xué)認(rèn)為,公司和組里提供了自由研究氛圍,對(duì)于合理思路都比較支持。
“而且相比 Paper 數(shù)量,團(tuán)隊(duì)會(huì)鼓勵(lì)花更多時(shí)間研究更難、更本質(zhì)、更能為行業(yè)提供新視角和新價(jià)值的問(wèn)題”,他補(bǔ)充道。
事實(shí)上,Depth Anything 只是眾多成果之一,字節(jié)跳動(dòng)近期在視覺(jué)生成及大模型相關(guān)領(lǐng)域的研究探索還有很多。
- 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