見出し画像

WSL2でDepth Anythingを試してみる

「150万枚のラベル付き画像と 6,200万枚以上のラベルなし画像の組み合わせでトレーニングすることにより、ロバストな単眼深度推定のための非常に実用的なソリューション」らしい「Depth Anything : Unleashing the Power of Large-Scale Unlabeled Data(大規模なラベルなしデータの力を解き放つ)」を試してみます。

使用するPCはドスパラさんの「GALLERIA UL9C-R49」。スペックは
・CPU: Intel® Core™ i9-13900HX Processor
・Mem: 64 GB
・GPU: NVIDIA® GeForce RTX™ 4090 Laptop GPU(16GB)
・GPU: NVIDIA® GeForce RTX™ 4090 (24GB)
・OS: Ubuntu22.04 on WSL2(Windows 11)
です。


1. 準備

python3 -m venv depthanything
cd $_
source bin/activate

リポジトリをクローンします。

git clone https://github.com/LiheYoung/Depth-Anything.git
cd Depth-Anything

パッケージのインストールです。

 pip install -r requirements.txt

2. 提供されている事前学習モデル

Small、Base、Largeの3つが提供されています。

  • Depth-Anything-ViT-Small (24.8M)

  • Depth-Anything-ViT-Base (97.5M)

  • Depth-Anything-ViT-Large (335.3M)

まずは Large をためしましょう。

3. 試してみる

Largeで試してみる

以下のコマンドラインを実行です。

python run.py --encoder vitl --img-path ./assets/examples --outdir depth_visualization.vitl
  • --img-path: 画像が格納されたディレクトリ、画像ファイル、または画像ファイルのパスを記述したテキストファイル、のいずれかが指定可能です。

  • --encoder: vits (Small)、vitb(Base)、vitl(Large)が対応します。

  • --outdir: 生成画像の出力先ディレクトリを指定します。

デモ画像での深度推定結果はこちら。ものの数秒しないうちに生成されました。

Large/Base/Smallの比較

Large > Base > Small の順で、バスケットリングネットを見ると推定結果が違うことがわかります。Largeが網と背景がよりくっきりと推定しているように見えます(私の目では)。

Large
Base
Small

Gradio

python app.py

で、ブラウザでもお試しできます。

4. GPUリソース

緑色のグラフがDepth Anything使用時のグラフです。

メモリ使用量

動作中に1.2GB程度。

メモリ使用量

GPU使用率

10~15%程度でした。

GPU使用率

5. まとめ

このスピードでこの推定結果は、画像解析がとてもはかどりそう。

6. おまけ

Whole Earth Catalog創刊号の表紙に使われた地球の写真(en:ATS-3衛星で1967年に撮影されたもの)で試した結果はこちら。

この記事が気に入ったらサポートをしてみませんか?