画像から奥行きを把握して深度マップを出力「Deep Anything」の使い方・商用利用の可否を紹介!

皆さんは、AIで画像生成や画像認識ツールを使ったことがあるでしょうか?おそらく使ったことがある方は、精度やクオリティの高さに驚いたことでしょう。

しかしながら、AIは画像の中でどこまでを認識できているのだろうという疑問が浮かびます。例えば、画像の中の距離感。画像の中でどの物体が手前にあってどの物体が奥にあるのかということをAIは理解しているのでしょうか?

今回紹介するAIツールDeep Anythingは画像の深度マップを出力することができるツールとなっています。深度マップとは、画像の中の奥行き・手前の距離感をサーモグラフィのようにカラーマップに表したものとなります。このツールについてはあまり実用性があるものではないですがぜひご覧ください。

ちなみに、画像生成AIのrunwayでも深度マップを作成するツールがありますので、そちらでもぜひ使ってみてください!

1章 「Deep Anything」の使い方

Deep Anythingはオープンソースのツールとなっており、Githubにてコードが公開されています。そのため、ダウンロードした上でローカル環境でDeep Anythingを動作させることが必要です。

Deep Anythingの導入

Deep Anythingを使う前に、Deep Anythingを使うための準備をしていきましょう。Deep Anythingは基本的にPythonで動作させますが、その前にGithub上に公開されているコードを取得していきましょう。

macユーザの方はターミナル、windowsユーザの方はコマンドプロンプトから以下のコードを実行しましょう。

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

これにて必要なファイルをダウンロードできた上で、ファイル実行するディレクトリへと移動しています。

続いて実行に移っていきましょう!実行は、以下のフォーマットで行います。

python run.py --encoder <vits | vitb | vitl> --img-path <img-directory | single-img | txt-file> --outdir <outdir> [--pred-only] [--grayscale]

こちらをそのまま実行しても動作はしないので注意が必要です!このフォーマットの説明をします。

  • -encoder <vits | vitb | vitl>:
    • -encoder は必須の引数で、使用するエンコーダのタイプを指定します。
    • <vits | vitb | vitl> の部分には、エンコーダの種類が入ります。選択肢として以下が用意されています:
      • vits: ViT Small
      • vitb: ViT Base
      • vitl: ViT Large
  • -img-path <img-directory | single-img | txt-file>:
    • -img-path も必須の引数で、処理する画像のパスを指定します。
    • <img-directory | single-img | txt-file> の部分には、以下のいずれかを指定します:
      • img-directory: 画像が含まれるディレクトリ
      • single-img: 単一の画像ファイルのパス
      • txt-file: 画像のパスが列挙されたテキストファイル
  • -outdir <outdir>:
    • -outdir は必須の引数で、出力ディレクトリを指定します。
    • <outdir> の部分には、結果を保存するディレクトリのパスが入ります。
  • [–pred-only]:
    • -pred-only はオプションの引数です。これを指定すると、予測結果のみを出力します。
  • [–grayscale]:
    • -grayscale もオプションの引数です。これを指定すると、入力画像をグレースケールで処理します。

このようにそれぞれの引数の中で自分に必要なものを選んで実行してみてください!

実際の使用例をいくつかパターンごとに紹介します!

  • ViT Small エンコーダを使用して単一の画像を処理し、結果を output ディレクトリに保存する場合
python run.py --encoder vits --img-path /path/to/image.jpg --outdir /path/to/output
  • ViT Base エンコーダを使用してディレクトリ内の画像を処理し、予測結果のみを results ディレクトリに保存する場合
    python run.py --encoder vitb --img-path /path/to/images/ --outdir /path/to/results --pred-only
  • ViT Large エンコーダを使用して画像パスが列挙されたテキストファイルを処理し、結果をグレースケールで output_gray ディレクトリに保存する場合
    python run.py --encoder vitl --img-path /path/to/images.txt --outdir /path/to/output_gray --grayscale

Deep Anythingを使ってみる

また、Deep Anything をデモで気軽に試したい方は、ブラウザ上のデモを使うこともできます。ブラウザ上のデモはこちらから利用することができます。

でもサイトの操作画面

画像出典 Deep Anything

このブラウザ上では、画像のパスを指定する必要がなくシンプルにデバイスから画像をインポートすることで利用することができます。

試しに画像を入力してみて深度マップを出力してもらいましょう。

こちらのプラミッドの画像を試してみます。

画像をアップロードしてみる

画像出典 deep anything

このように画像を画面の左側に画像をアップロードします。「submit」をクリックすると深度マップの生成が開始されます。

画像の半分のみが深度マップになった

画像出典 DeepAnything

10-秒ほど待つとこのように深度マップが作成されました。画像の右側のみが深度マップに変化しました。右側のピラミッドの部分はしんどマップ的には遠すぎて真っ黒になってしまっていますね。もう少し、近い距離の写真を使う必要があるかもしれません。

2章 Deep Anythingの料金・商用利用

Deep Anythingは先ほど述べたようにGithub上で公開されており、誰もが無料で使うことができます。

Github上で公開されているAIツールは基本的にオープンになっており、無料で使うことができますがその全てが利用に制限があるわけではありません。例えば商用利用や作品の公開などが制限されている場合などがあります。そのため。Github上でしっかりと確認する必要があります。

github上でのライセンスの見方

画像出典 Github

画面内赤枠の「Apache 2.0 license」からライセンスを見ることができます。ライセンスには、著作権や特許のライセンスについて詳しく書いてあります。

今回の場合、Deep Anythingでは、商用利用を含むあらゆる利用を許可しています。具体的には、ソフトウェアを複製、修正、配布、表示、実行、サブライセンス、および販売することができます。

しかし、DeepAnythingを元に作ったソフトウェアを配布をする際にはオリジナルのDeepAnythingを明記することが必要です。詳しい内容は、実際に公式サイトをご覧ください。

3章 まとめ

今回は、画像から奥行きを認識して深度マップを出力してくれるDeepAnythingというツールについてご紹介しました。実用性はあまりないかもしれませんが、AIが画像をどこまで理解してるか気になる方はぜひ使ってみてください!

 

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

関連記事

コメント

この記事へのコメントはありません。