——DINOv2+DPT+AnimateDiff 如何實現(xiàn)視頻深度估計)
人工智能計算機(jī)視覺【免費(fèi)下載鏈接】Video-Depth-Anything-Large-MLX項目地址https://ai.gitcode.com/hf_mirrors/mlx-community/Video-Depth-Anything-Large-MLX點(diǎn)擊查看免費(fèi)下載Video-Depth-Anything-Large-MLX是一個運(yùn)行在 Apple Silicon 上的視頻深度估計模型它是字節(jié)跳動 CVPR 2025 Highlight 論文 Video Depth Anything 的 MLX 移植版。它能對任意長度的視頻做單目深度估計輸出每一幀一致的深度圖depth maps為 Apple 設(shè)備上的 3D 重建、視頻編輯、機(jī)器人感知等場景提供了輕量高效的深度估計方案。一、這個項目是做什么的傳統(tǒng)的單目深度估計模型逐幀獨(dú)立推理幀與幀之間容易出現(xiàn)抖動同一物體在相鄰兩幀的深度忽遠(yuǎn)忽近導(dǎo)致后續(xù) 3D 重建出現(xiàn)撕裂。Video Depth Anything 的核心價值就在于時序一致性temporal consistency 輸入一段普通視頻channel-last 的(B, T, H, W, 3)張量 輸出與視頻幀一一對應(yīng)的深度序列(T, H, W) float32?? 支持任意長度視頻內(nèi)部通過 scale/shift 窗口對齊策略把長視頻切段推理后無縫拼接本倉庫 model.safetensors 是 fp32 權(quán)重文件約 1.4GB由官方 PyTorch checkpoint 轉(zhuǎn)換而來。官方使用說明見 README.md。二、核心架構(gòu)全解析三大模塊如何分工 整個模型可以概括為一句話DINOv2 負(fù)責(zé)看得懂DPT 負(fù)責(zé)算得準(zhǔn)AnimateDiff 風(fēng)格時序模塊負(fù)責(zé)幀幀不抖。2.1 DINOv2 骨干自監(jiān)督視覺特征提取器配置文件中encoder: vitl表明骨干網(wǎng)絡(luò)采用了ViT-Large結(jié)構(gòu)的 DINOv2。DINOv2 是 Meta 提出的自監(jiān)督視覺 Transformer無需人工標(biāo)注即可學(xué)到極其魯棒的語義特征它輸出的不僅是這是什么物體還包含豐富的幾何線索遮擋、尺度、透視關(guān)系作為 Large 級別規(guī)格它在特征表達(dá)能力和推理速度之間取得了較好平衡2.2 DPT 解碼頭從特征到稠密深度圖DPTDense Prediction Transformer是 Depth Anything 系列經(jīng)典的深度回歸頭features: 256特征通道數(shù)out_channels: [256, 512, 1024, 1024]多層特征逐級上采樣融合讓低分辨率的全局語義與高分辨率的局部細(xì)節(jié)互補(bǔ)經(jīng)過多層 decoder 融合后輸出稠密的逐像素相對深度圖 注意metric: false表示這是非度量模型——輸出的是相對深度相對遠(yuǎn)近關(guān)系而非以米為單位的絕對距離。它也因此啟用了 scale/shift 窗口對齊來保證長視頻的一致性。2.3 AnimateDiff 風(fēng)格時序運(yùn)動模塊一致性的關(guān)鍵 ??這是該架構(gòu)最出彩的部分。時序運(yùn)動模塊借鑒了 AnimateDiff文生視頻模型的設(shè)計思路在骨干特征之外額外插入一組時序運(yùn)動模塊temporal motion modules專門建模幀與幀之間的運(yùn)動關(guān)系num_frames: 32模型以 32 幀為一個窗口處理時序上下文在相鄰窗口之間共享運(yùn)動信息pe: ape采用絕對位置編碼Absolute Positional Encoding標(biāo)記幀位置讓模型知道當(dāng)前處于視頻的哪個時刻正是這組模塊使得相機(jī)運(yùn)動和物體運(yùn)動在深度圖上表現(xiàn)為平滑連續(xù)的過渡而不是逐幀跳變。三、關(guān)鍵配置速讀3 個文件看懂模型規(guī)格 文件關(guān)鍵內(nèi)容作用config.jsonvitl、features: 256、num_frames: 32、pe: ape定義骨干規(guī)格與 DPT 時序結(jié)構(gòu)preprocessor_config.jsoninput_size: 518輸入統(tǒng)一縮放到 518×518model.safetensorsfp32 權(quán)重約 1.4GB實際模型參數(shù)LFS 存儲四、快速上手從克隆到跑出深度序列 1?? 克隆倉庫git clone https://gitcode.com/hf_mirrors/mlx-community/Video-Depth-Anything-Large-MLX2?? 安裝依賴并推理依賴mlx-vlm核心入口是VideoDepthPredictor與read_video_frames完整示例見 README.md。極簡調(diào)用流程from mlx_vlm import load from mlx_vlm.models.video_depth_anything.generate import ( VideoDepthPredictor, read_video_frames, ) model, processor load(mlx-community/Video-Depth-Anything-Large-MLX) predictor VideoDepthPredictor(model, processor) frames, fps read_video_frames(input.mp4, max_len300, target_fps15) depths predictor.infer(frames) # (T, H, W) float32 深度序列max_len300控制最多處理幀數(shù)target_fps15控制采樣幀率可根據(jù)視頻時長和顯存靈活調(diào)整。五、實用小貼士與注意事項 ??尺寸要求H 和 W 必須是14 的倍數(shù)ViT patch 結(jié)構(gòu)決定輸入會先縮放到 518見 preprocessor_config.json精度表現(xiàn)權(quán)重為 fp32。GPUMetal fast-math下輸出與 PyTorch 參考實現(xiàn)約 1% 相對誤差CPU 下可做到約 1e-5許可證CC-BY-NC-4.0僅限非商業(yè)用途與源 checkpoint 一致商用前請務(wù)必確認(rèn)授權(quán)不是文本生成模型它輸出的是逐幀深度圖float32 數(shù)值不要按 LLM 方式調(diào)用六、總結(jié)Video-Depth-Anything-Large-MLX 用DINOv2 DPT AnimateDiff 風(fēng)格時序模塊的組合把任意長視頻的時序一致單目深度估計搬進(jìn)了 Apple 的 MLX 生態(tài)。對新手來說只需記住三點(diǎn)它是深度估計模型不是生成/文本模型時序一致性來自 32 幀窗口 運(yùn)動模塊而非簡單平滑輸入尺寸對齊 14 的倍數(shù)輸出即得逐幀深度序列無論是做視頻 3D 化、背景擦除還是動作理解這都是 Mac 上一套開箱即用的深度估計基礎(chǔ)設(shè)施。贊分享人工智能計算機(jī)視覺【免費(fèi)下載鏈接】Video-Depth-Anything-Large-MLX項目地址https://ai.gitcode.com/hf_mirrors/mlx-community/Video-Depth-Anything-Large-MLX點(diǎn)擊查看免費(fèi)下載相關(guān)推薦Upsonic 評測子系統(tǒng)實戰(zhàn)指南LLM-as-a-Judge 評分、延遲與內(nèi)存剖析和工具調(diào)用可靠性斷言Upsonic 評測子系統(tǒng)實戰(zhàn)指南LLM as a Judge 評分、延遲與內(nèi)存剖析和工具調(diào)用可靠性斷言 Upsonic 是一個用 Python 構(gòu)建自主 ATorchTitan RL 可觀測性指標(biāo)從類型化 Metric 延遲歸約到 vLLM 引擎級 OpenTelemetry 指標(biāo)TorchTitan RL 可觀測性指標(biāo)從類型化 Metric 延遲歸約到 vLLM 引擎級 OpenTelemetry 指標(biāo) 本文基于 TorchTitan人工智能計算機(jī)視覺深度學(xué)習(xí)DA3Mono-LARGE-MLX 網(wǎng)絡(luò)架構(gòu)完整解析DinoV2 ViT-L/14 DPT 解碼器如何搞定單目深度估計DA3Mono LARGE MLX 網(wǎng)絡(luò)架構(gòu)完整解析DinoV2 ViT L/14 DPT 解碼器如何搞定單目深度估計 DA3Mono LARGE MLX創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考