Skip to content

Video Depth Anything — 動画向け深度推定と展開

Video Depth Anything(VDA)— 動画向け深度推定

Video Depth Anything は、動画から深度推定を行うツールです。公式GitHubの説明は「Video Depth Anything: Consistent Depth Estimation for Super-Long Videos」で、リポジトリは DepthAnything/Video-Depth-Anything です。

Video Depth Anything(VDA)は、長時間動画に対して一貫した深度推定を行うAIモデルとして整理されています。既存のDepth Anything V2をベースにしており、時間的な安定性と高速性を両立するモデルとして扱われています。

なぜVDAが必要か

Depth Anything V2を動画にそのまま適用すると、フレームごとに深度推定が揺れ、映像の奥行きが不安定に見える課題があります。VDAは動画向けに、フレーム間の一貫性を改善する目的で検討されています。

VDAのモデル種別とライセンス

モデル規模特徴ライセンス / 商用可否用途
Small(VDA-S)約28M高速、精度は良好Apache 2.0 / 商用利用可Unity / iPad向け候補、製品採用検証対象
Base(VDA-B)約113M推論速度は普通、高精度CC BY-NC 4.0 / 非商用研究用・高精度比較
Large(VDA-L)約381M重い、最高精度CC BY-NC 4.0 / 非商用検証・比較用のみ

商用プロジェクトではSmallモデルを使用する方針です。Base / Largeは非商用ライセンスとして扱います。

相対深度とメトリック深度

種類内容主な用途
相対深度手前・奥など、相対的な奥行き関係を表す3D表示、LKGの視覚効果
メトリック深度実際の距離スケールに基づく深度AR、計測、整合性が必要なシーン

LKG表示目的の場合、まずは相対深度で検証可能です。

VDAの導入手順

基本手順は、GitHubリポジトリをcloneし、requirements.txt をインストールし、checkpoints ディレクトリにモデルを配置する流れです。

bash
git clone https://github.com/DepthAnything/Video-Depth-Anything.git
cd Video-Depth-Anything
pip install -r requirements.txt

get_weights.sh では、checkpoints ディレクトリを作成し、SmallモデルとLargeモデルのpthファイルをHugging Faceから wget でダウンロードします。利用する重みのライセンスを確認してから取得してください。

bash
#!/bin/bash

mkdir checkpoints
cd checkpoints
wget https://huggingface.co/depth-anything/Video-Depth-Anything-Small/resolve/main/video_depth_anything_vits.pth
wget https://huggingface.co/depth-anything/Video-Depth-Anything-Large/resolve/main/video_depth_anything_vitl.pth

WindowsではWSL利用

Windows環境では bash get_weights.sh を直接実行できなかったため、WSLの利用が検討されました。検証ではWSL 2をデフォルトに設定し、Ubuntu 22.04をインストールして作業を進めています。

WSL上では、WindowsのCドライブに /mnt/c からアクセスできます。

項目記録
WSLWSL 2
LinuxUbuntu 22.04
gitgit version 2.34.1
pippip 22.0.2 / Python 3.10
pip導入sudo apt update 後に sudo apt install python3-pip
PATH対応export PATH="$PATH:$HOME/.local/bin" を実行し、source ~/.bashrc で反映

サンプル実行

Largeモデルを使うサンプル実行コマンドです。

bash
python3 run.py --input_video ./assets/example_videos/davis_rollercoaster.mp4 --output_dir ./outputs --encoder vitl

--encoder vitl はLargeサイズのモデルを使う指定です。商用利用前提の検証では、Smallモデルの vits を優先してください。

Video Depth Anythingの実行画面

VDA検証結果

以下の処理時間は、GPU、VRAM、動画長、フレーム数、入力解像度が揃って記録されていないため、参考値です。

検証内容モデル参考処理時間計測条件LKGレビュー
davis_rollercoaster.mp4Large約3分動画長、フレーム数、GPU、VRAMは記録なし立体視はできているが、ブロック状ノイズや粗さが目立つ。奥行きが板状に見える場面がある
任意の検証動画Large約7分半動画長、フレーム数、GPU、VRAMは記録なし同様に、立体感はあるがノイズや粗さが目立つ
同一系統の動画Small約20秒動画長、フレーム数、GPU、VRAMは記録なし奥行きの付け方は控えめ。中間距離の推定が弱い印象
rollercoasterサンプルSmall約20秒動画長、フレーム数、GPU、VRAMは記録なしLargeで一部見られた時間方向のガタつきがSmallでは目立たない例があった

評価軸を分けると、解像感や奥行き量ではLargeが有利な場面があります。一方で、時間的安定性やアーティファクトの少なさではSmallが良く見える場面もありました。商用利用を前提とする場合は、ライセンス上もSmallを中心に検証します。


VDAのモデル変換とUnity / iPad展開

VDAは、Python上では .pth のまま利用できますが、UnityやiPadで利用するにはモデル形式の変換が必要です。なお、VDAのONNX / CoreML変換は方針段階であり、変換成功を確認した手順としては未確定です。

モデル形式

形式内容主な用途
.pthPyTorchモデル形式Pythonでの学習・研究・公式実装実行
.onnx形式統一された推論モデル形式Windows / Unity / ONNX Runtime
.mlpackageApple CoreML形式iPad / iPhone。ANE利用を前提とする場合の候補

Unityでは .pth をそのまま直接使用できません。基本的なモデル利用フローは Python → ONNX → Unity です。

iPadでANE利用を前提にする場合は、ONNXを直接使うのではなく、CoreMLへ変換して動作可否を検証する必要があります。ONNX RuntimeのiOS利用やCoreML Execution Providerの利用可能性は別途検証対象です。

ONNX / CoreML変換方針

以下は未検証の変換方針です。成功した変換コマンド、使用したcoremltoolsバージョン、変換ログ、推論結果の一致確認が揃うまでは、確定手順として扱いません。

対象方針状態
ONNX変換torch.onnx.export() を使用し、動画長に対応するためDynamic Axesを有効化する案未検証
iPad用変換ONNXまたはPyTorchモデルからCoreMLへの変換を試す案未検証
CoreML最適化float16化などを試す案未検証
モデル最適化fp16化・量子化を検討未検証
iPad確認ANE対応、速度、メモリ使用量、出力品質を確認未検証

出力形式

出力形式内容用途
PNG連番各フレームの深度マップUnityでのメッシュ再構築、確認用
EXR高ダイナミックレンジ深度精度保持の観点でLKG向け3D再構成の有力候補
NPZNumPy形式の深度配列データ解析、高速再生
MP4深度動画プレビュー、比較
RGBD動画RGBとDepthを組み合わせた動画LKG変換用
3DメッシュDepthから再構築したメッシュUnity / LKG表示

LKG用途では、精度保持を重視する場合はEXRまたはNPZが候補です。PNG連番は軽く、汎用性が高い形式として扱えますが、正規化やビット深度によって奥行き情報が失われる可能性があります。

バッチ処理とストリーミング

VDAには通常のバッチ版と、training-free streamingという実験版ストリーミングモードがあります。

モード内容精度記録方針
オフライン / バッチ全フレームをまとめて処理δ₁ ≒ 0.926現状の推奨
ストリーミングフレームを逐次処理し、時系列情報をキャッシュして再利用δ₁ ≒ 0.836実験段階、研究・デモ用

ストリーミングモードは品質にばらつきがあるため、現状はバッチ処理を基準とし、ストリーミングは参考程度に扱います。



← ローカル深度推定 Windows — Depth Anything V2 / Video Depth Anything / Apple Depth Pro / MoGe 検証ガイド 概要に戻る