すべての記事

Depth Anything V2の深度推定をLibreYOLOで簡単に実行

Xuban

ビルバオのグッゲンハイム美術館とその深度マップ

Depth Anything V2は、現在利用できる単眼深度マップの中でも特に優れたものを生成します。

YOLOの開発経験がある場合、公式リポジトリはすぐに使い始めるには少し手間がかかります。深度マップを1枚生成するだけでも、いくつかの手作業が必要です。

  • 適切なチェックポイントを手動でダウンロードし、正しいフォルダーに配置する

  • エンコーダーと設定(encoder="vitl"、features=256、out_channels=...)を一致させる

  • 正規化と色付けの処理を自分で記述する

  • CUDAだけでなくMacやCPUでも動くようにデバイスへの配置を処理する

  • スタックのほかの部分とはまったく異なる推論APIを覚える

どれも難しい作業ではありません。ただ手間がかかるだけで、すべて省けます。

LibreYOLOは同じDepth Anything V2の重みを読み込み、predict()を呼び出すだけで深度推定を実行できます。モデル名を指定すれば、初回使用時にダウンロードされます。

from libreyolo import LibreYOLO

model = LibreYOLO("LibreDepthAnythingV2l-depth.pt")  # 初回実行時に自動ダウンロード
model.predict("image.jpg", save=True)     # 色付き深度マップをディスクに保存

これだけです。標準的なYOLO APIを使ったことがあれば、見慣れた形です。モデル名で読み込み、predictを呼び出し、save=Trueで可視化結果を保存します。物体検出で使うものとまったく同じ呼び出し方ですが、結果にはボックスではなく深度マップが含まれます。カラーマップ、正規化、デバイスへの配置は自動で処理されます。CUDAを使うLinuxでも、Apple Silicon搭載のMacでも、通常のCPUでも同じように動作します。コードを変更する必要はありません。

さらに、同じ呼び出しで生の深度値を取得し、そのまま扱うこともできます。Depth Anything V2自体の学習は元のリポジトリで行います。LibreYOLOは推論、動画、検証に対応しています。

まったく同じ1行の呼び出しで、さまざまなシーンを処理できます。

パルクールのサンプル画像と深度マップ。手前のジャンパーが背後のコンクリート壁より際立っています。

ドノスティアのラ・コンチャ湾を上空から見た画像と深度マップ。ボートと海岸線が近く、沖の海が遠くに見えます。

ゲルニカの議事堂の列柱がある中庭と深度マップ。奥へ続く建築の様子がわかります。

ドノスティアのコンスティトゥシオン広場で夜に開かれた祭りの群衆と深度マップ。手前の人々が、背後の照らされたファサードから際立っています。

重みについて補足します。LibreYOLOは変換済みのDepth Anything V2チェックポイントをホストしており、初回使用時に取得するため、手動でダウンロードする必要はありません。アップストリームのライセンスは引き続き適用されます。SmallエンコーダーはApache-2.0ですが、Base、Large、GiantはCC-BY-NC-4.0(非商用)なので、高性能なチェックポイントは非商用利用に限られます。オフラインで使いたい場合や、自分で変換したい場合は、1回限りの変換スクリプトも利用できます。

# 自動ダウンロードの代わりに公式チェックポイントを自分で変換する場合
python weights/convert_depth_anything_v2_weights.py \
  depth_anything_v2_vitl.pth weights/LibreDepthAnythingV2l-depth.pt

試してみる

pip install libreyolo

LibreYOLOは、pipでインストールできる最も包括的なコンピュータビジョンライブラリです。使い慣れた1つのAPIで、物体検出(RF-DETR、D-FINE、DEIM)、セグメンテーション、姿勢推定、回転バウンディングボックス、そして新たにDepth Anything V2による単眼深度推定まで、拡大を続ける最先端モデル群を利用できます。対応するタスクの学習と検証も行えます。主要なすべてのOSで、GPUまたはCPU上で動作し、完全なMITライセンスなので、制約なく商用製品に組み込めます。

GitHubでスターを付けてください:github.com/LibreYOLO/libreyolo | ドキュメント:libreyolo.com/docs