2023/06/02(金) [n年前の日記]
#1 [cg_tools][python] ZoeDepthの環境をminicondaをインストールして用意してみた
静止画像の奥行き情報をAIで推測・生成できる ZoeDepth を動かすためには、どうも conda とやらが必要らしくて…。
_GitHub - isl-org/ZoeDepth: Metric depth estimation from a single image
とりあえず触ってみなければ何も分らんだろうから、miniconda をインストールして試してみることにした。
環境は以下。
_GitHub - isl-org/ZoeDepth: Metric depth estimation from a single image
とりあえず触ってみなければ何も分らんだろうから、miniconda をインストールして試してみることにした。
環境は以下。
- Windows10 x64 22H2
- CPU : AMD Ruzen 5 5600X
- GPU : NVIDIA GeForce GTX 1060 6GB
- RAM : 16GB
- Python 3.10.6 64bit
- Git 2.40.1
◎ ZoeDepthのファイル一式を取得 :
conda関係を触る前に、ZoeDepthのファイル一式を git clone で入手しておく。
ZoeDepthフォルダの中に入る。
git clone https://github.com/isl-org/ZoeDepth.git
ZoeDepthフォルダの中に入る。
cd ZoeDepth
◎ minicondaのインストール :
以下からインストーラを入手できる。
_Miniconda - conda documentation
Python 3.10用の、Miniconda3-py310_23.3.1-0-Windows-x86_64.exe を入手。実行してインストール。今回は、D:\Dev\miniconda3\ にインストールしてみた。
インストール時に、「環境変数PATHに追加」という項目があったけど、そこはチェックを入れなかった。「PATHに追加するのは推奨しない。他のアプリが動作しなくなるかも」と書いてあったし…。
その代わり、以下の解説ページを参考にして、conda を使いたい時は batファイルを実行して環境変数を設定してから使うことにする。
_【後で困らないための】Miniconda windows版の環境構築
以下のようなbatファイルを作成して実行。
miniconda.bat
condaのバージョンを確認。23.3.1 がインストールされた。
余談。conda の新しいバージョンがあるっぽい。
conda install conda=23.5.0 と打って更新。
_Miniconda - conda documentation
Python 3.10用の、Miniconda3-py310_23.3.1-0-Windows-x86_64.exe を入手。実行してインストール。今回は、D:\Dev\miniconda3\ にインストールしてみた。
インストール時に、「環境変数PATHに追加」という項目があったけど、そこはチェックを入れなかった。「PATHに追加するのは推奨しない。他のアプリが動作しなくなるかも」と書いてあったし…。
その代わり、以下の解説ページを参考にして、conda を使いたい時は batファイルを実行して環境変数を設定してから使うことにする。
_【後で困らないための】Miniconda windows版の環境構築
以下のようなbatファイルを作成して実行。
miniconda.bat
@echo off SET MINICONDA_ROOT=D:\Dev\miniconda3 SET ADDPATH=%MINICONDA_ROOT%;%MINICONDA_ROOT%\Library\mingw-w64\bin;%MINICONDA_ROOT%\Library\usr\bin;%MINICONDA_ROOT%\Library\bin;%MINICONDA_ROOT%\Scripts SET Path=%ADDPATH%;%Path% @rem %windir%\System32\cmd.exe "/K" %MINICONDA_ROOT%\Scripts\activate.bat %MINICONDA_ROOT% call %MINICONDA_ROOT%\Scripts\activate.bat %MINICONDA_ROOT% @echo MINICONDA_ROOT=%MINICONDA_ROOT% @echo add path %ADDPATH% @echo. @echo Exit : Input, conda deactivate
condaのバージョンを確認。23.3.1 がインストールされた。
> conda --version conda 23.3.1
余談。conda の新しいバージョンがあるっぽい。
==> WARNING: A newer version of conda exists. <== current version: 23.3.1 latest version: 23.5.0 Please update conda by running $ conda update -n base -c defaults conda Or to minimize the number of packages updated during conda update use conda install conda=23.5.0
conda install conda=23.5.0 と打って更新。
◎ 仮想環境を作ろうとしたのだけど :
conda create を使えば仮想環境を作成できるらしいので試してみたのだけど。
現在のカレントディレクトリ内に作られるのかと思ったら、minicondaインストールフォルダ\envs\ 内に色々なファイルが入ってしまった…。そこに入るんかい…。venv のように、入れる場所を指定できたほうが嬉しかったかも…。
仮想環境に切り替える。
conda create -n zoedepth python=3.9
現在のカレントディレクトリ内に作られるのかと思ったら、minicondaインストールフォルダ\envs\ 内に色々なファイルが入ってしまった…。そこに入るんかい…。venv のように、入れる場所を指定できたほうが嬉しかったかも…。
仮想環境に切り替える。
conda activate zoedepth
◎ 必要なパッケージをインストール :
パッケージと呼ぶのかモジュールと呼ぶのか分らんけど、ZoeDepth の動作に必要になるらしいパッケージを、conda を使ってインストールしていく。
_ZoeDepth/environment.yml at main - isl-org/ZoeDepth - GitHub
本来、environment.yml を conda に渡して、必要なパッケージが入った仮想環境を一発で用意できる。後で試したところ、たしかにこれでもインストールできたけど…。
自分は conda の使い方が全然分かってないので、勉強を兼ねて一つ一つ指定して試してみた。
conda にはチャンネルとやらが存在するらしい。ZoeDepth に関係するチャンネルを追加。
ZoeDepth を動かすために必要なパッケージを、一つ一つインストール。
めちゃくちゃ時間がかかった…。
ちなみに、仮想環境が入ったフォルダ(今回インストールしたモジュール群が入ってるフォルダ)の容量を確認してみたら、1つ1つ入れていった場合は 15.62GBで、一発でインストールした場合は8.21GBだった。1つ1つ入れていくと、使わないはずのバージョンやパッケージもインストールしてしまうのかなと…。
_ZoeDepth/environment.yml at main - isl-org/ZoeDepth - GitHub
本来、environment.yml を conda に渡して、必要なパッケージが入った仮想環境を一発で用意できる。後で試したところ、たしかにこれでもインストールできたけど…。
conda env create -n zoe --file environment.yml conda activate zoe
- conda env create で、仮想環境を新規作成。
- -n xxxx で、仮想環境名を指定。-n zoe なら、zoe という仮想環境名を指定してる。
- --file xxxx.yml で、.yml に記述されたパッケージをまとめてインストール。
自分は conda の使い方が全然分かってないので、勉強を兼ねて一つ一つ指定して試してみた。
conda にはチャンネルとやらが存在するらしい。ZoeDepth に関係するチャンネルを追加。
conda config --add channels conda-forge conda config --add channels pytorch conda config --add channels nvidia conda config --show-sources conda config --show channels
ZoeDepth を動かすために必要なパッケージを、一つ一つインストール。
conda install cuda==11.7.1 conda install h5py==3.7.0 conda install hdf5==1.12.2 conda install matplotlib==3.6.2 conda install matplotlib-base==3.6.2 conda install numpy==1.24.1 conda install opencv==4.6.0 conda install pytorch==1.13.1 conda install pytorch-cuda==11.7 conda install pytorch-mutex==1.0 conda install scipy==1.10.0 conda install torchaudio==0.13.1 conda install torchvision==0.14.1 pip install huggingface-hub==0.11.1 pip install tqdm==4.64.1 pip install wandb==0.13.9 pip install timm==0.6.12
めちゃくちゃ時間がかかった…。
ちなみに、仮想環境が入ったフォルダ(今回インストールしたモジュール群が入ってるフォルダ)の容量を確認してみたら、1つ1つ入れていった場合は 15.62GBで、一発でインストールした場合は8.21GBだった。1つ1つ入れていくと、使わないはずのバージョンやパッケージもインストールしてしまうのかなと…。
◎ 必要なものがインストールできてるかチェック :
sanity_hub.py を実行することで、ZoeDepth の動作に必要なファイルが全て用意されているのかチェックすることができるっぽい。
実行してみたところ、学習モデルデータファイル(.pt)が3ファイルほどダウンロードされた。1ファイルにつき1.3GB程度。
学習モデルデータは、C:\Users\(USERNAME)\.cache\torch\hub\checkpoints\ 以下に保存されてしまった…。本来はどこに置くべきなんだろう…。README.md には「models/ に置け」と書いてあるけど、そんなフォルダは無いのですが…。
ちなみに、学習モデルデータ自体は、Releasesページから入手できる。
_Releases - isl-org/ZoeDepth
とりあえず、sanity_hub.py は実行できたので、続いて sanity.py を実行する。これで動作確認できるらしい。
pred.png というPNG画像が保存された。元画像とデプスマップがくっついた状態で生成されている。どうやら ZoeDepth を動かせる状態にはなった模様。
python sanity_hub.py
実行してみたところ、学習モデルデータファイル(.pt)が3ファイルほどダウンロードされた。1ファイルにつき1.3GB程度。
学習モデルデータは、C:\Users\(USERNAME)\.cache\torch\hub\checkpoints\ 以下に保存されてしまった…。本来はどこに置くべきなんだろう…。README.md には「models/ に置け」と書いてあるけど、そんなフォルダは無いのですが…。
ちなみに、学習モデルデータ自体は、Releasesページから入手できる。
_Releases - isl-org/ZoeDepth
とりあえず、sanity_hub.py は実行できたので、続いて sanity.py を実行する。これで動作確認できるらしい。
python sanity.py
pred.png というPNG画像が保存された。元画像とデプスマップがくっついた状態で生成されている。どうやら ZoeDepth を動かせる状態にはなった模様。
◎ Webブラウザ経由で使う :
この ZoeDepth はWebブラウザ経由で使うこともできる。
ui/ui_requirements.txt に、Webブラウザ経由で動かす際に必要なPythonモジュールが列挙されているので、pipでインストールする。
インストールできたら以下を実行。
DOS窓上で、「Running on local URL: http://127.0.0.1:7860」と表示されるので、Webブラウザで http://127.0.0.1:7860 を開くと、Stable Diffusion web UI のようなページが表示される。
エクスプローラ等から画像をドラッグアンドドロップして、「送信」ボタンをクリックすると、ZoeDepthで生成されたデプスマップ画像が表示された。
余談。生成された16bitグレースケールのPNG画像を blender 3.3.7 x64 LTS のディスプレイスモディファイアに渡してみたけど、反映されなかった。blender の該当モディファイアは、8bitの画像か、OpenEXR のような 16bit浮動小数点の画像じゃないと反映されないようだなと…。
ui/ui_requirements.txt に、Webブラウザ経由で動かす際に必要なPythonモジュールが列挙されているので、pipでインストールする。
pip install -r ui/ui_requirements.txt
インストールできたら以下を実行。
python -m ui.app
DOS窓上で、「Running on local URL: http://127.0.0.1:7860」と表示されるので、Webブラウザで http://127.0.0.1:7860 を開くと、Stable Diffusion web UI のようなページが表示される。
エクスプローラ等から画像をドラッグアンドドロップして、「送信」ボタンをクリックすると、ZoeDepthで生成されたデプスマップ画像が表示された。
- 生成画像が表示されているウインドウの、右上のアイコンをクリックすれば、8bitグレースケールの画像をダウンロードできる。
- 下のほうに表示されているDownloadのリンクをクリックすれば16bitグレースケールのPNG画像をダウンロードできる。
余談。生成された16bitグレースケールのPNG画像を blender 3.3.7 x64 LTS のディスプレイスモディファイアに渡してみたけど、反映されなかった。blender の該当モディファイアは、8bitの画像か、OpenEXR のような 16bit浮動小数点の画像じゃないと反映されないようだなと…。
◎ 仮想環境から抜ける :
conda deactivate と打てば仮想環境から抜けられる。
仮想環境の一覧を見たい時は以下。
仮想環境を削除したい時は以下。
仮想環境の一覧を見たい時は以下。
conda info -e
仮想環境を削除したい時は以下。
conda remove -n zoedepth --all
◎ 課題 :
学習モデルデータ(.pt)をどこに置けばいいのだろう…? 現状、Cドライブ内の .cacheフォルダ(C:\Users\(USERNAME)\.cache\)内に入っちゃってるので、一応動くことは動くけど、貴重なCドライブの容量は使いたくない…。
とりあえず、.cache/ をDドライブに移動して、Cドライブ内にはシンボリックリンクを張って誤魔化しておこう…。
とりあえず、.cache/ をDドライブに移動して、Cドライブ内にはシンボリックリンクを張って誤魔化しておこう…。
◎ 参考ページ :
_windows10にPythonの開発環境minicondaをインストールする手順を解説 | うみうまブログ
_Miniconda3をWindows 10にインストール - Qiita
_【後で困らないための】Miniconda windows版の環境構築
_AnacondaとMinicondaの比較、どちらで環境構築するべきか | In-Silico NoteBook
_Conda コマンド: Python環境構築ガイド - python.jp
_[Python]Anacondaで仮想環境を作る - Qiita
_【Anacondaの使い方】よく使うcondaコマンド一覧【チートシート】 | 似非プログラマの備忘録
_Anacondaで仮想環境を構築する方法 | sakizo blog
_condaを使う際に利用するコマンド一覧 - Qiita
_Miniconda3をWindows 10にインストール - Qiita
_【後で困らないための】Miniconda windows版の環境構築
_AnacondaとMinicondaの比較、どちらで環境構築するべきか | In-Silico NoteBook
_Conda コマンド: Python環境構築ガイド - python.jp
_[Python]Anacondaで仮想環境を作る - Qiita
_【Anacondaの使い方】よく使うcondaコマンド一覧【チートシート】 | 似非プログラマの備忘録
_Anacondaで仮想環境を構築する方法 | sakizo blog
_condaを使う際に利用するコマンド一覧 - Qiita
[ ツッコむ ]
以上です。