mieki256's diary



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 をインストールして試してみることにした。

環境は以下。

ZoeDepthのファイル一式を取得 :

conda関係を触る前に、ZoeDepthのファイル一式を git clone で入手しておく。
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
@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 を使えば仮想環境を作成できるらしいので試してみたのだけど。
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 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 の動作に必要なファイルが全て用意されているのかチェックすることができるっぽい。
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でインストールする。
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_web_ui_ss01.png

エクスプローラ等から画像をドラッグアンドドロップして、「送信」ボタンをクリックすると、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ドライブ内にはシンボリックリンクを張って誤魔化しておこう…。

参考ページ :


以上です。

過去ログ表示

Prev - 2023/06 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project