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
[ ツッコむ ]
#2 [anime] 「リトル・マーメイド」を視聴
TVというか金曜ロードショーで放送されてたので視聴。おそらく初見。
自分、何故かこのアニメを「美女と野獣」の後の作品と思い込んでたのだけど、ググってみたら「美女と野獣」の数年前の作品だったのですな…。CGシーンが無いからおかしいと思った…。
昔のディズニーアニメ、しかも _ディズニー・ルネサンス の初期作品なので、眺めていてもこれといった学びは何も無かった…。さすがにまだこの時期では、大人の鑑賞に堪える内容ではなさそうだなと…。まあ、ハッピーエンドにアレンジしてあるあたりファミリー向けとしては良い改変なのかなと思ったりもしたけれど。原作通りのラストでは見てる子供が泣いちゃうよなあ…。
気になったのは、実写版で物議を醸している、ヒロインの肌の色。今回オリジナル版を最初に見た時、「アレ? こんなに黒いの? これじゃ黒人キャラじゃん」と驚いてしまった。ただ、それはあくまで海中シーンの話。水上や地上シーンになると、「なんだ。やっぱり白いじゃんよ」と…。
セルとフィルムでアニメを作っていた頃は、撮影段階で細かい色調補正なんてできなかったので、セルに塗る色を決めていく色指定の段階からして、地上用と海中用の色指定をバキッと変えて、ここは地上ですよ、ここは水中ですよと伝えていたはずで。例えば宮崎駿監督作品の「未来少年コナン」あたりを眺めるとそのあたりとても分かりやすいのだけど…。だから、このアニメでも、海中シーンと地上シーンでヒロインの肌の色が違っていてもそれは全然おかしくないわけだけど。
ちょっと不安になったのは、実写版のヒロインを選んだ人達って、オリジナル版でそういった工夫をしていたことすら分かってないのでは、という…。海中シーンだけを見て、「は? このヒロインは黒人だろ?」と思い込んでたらどうしよう…。
なわけないよな。ホントかどうか知らんけどヒロインの姉妹に色んな人種を起用してるという話も聞いたし、オリジナル版の肌の色なんてたぶん一切気にしてないよな…。全然違う理由でヒロインが黒人系になったのだろう…。
それはさておき。放送後に実写版の宣伝映像も少し流れてたけど、魚やカニ(ヤドカリ?)達が…。ディズニーアニメに登場する動物達を実写にするのは難問過ぎる…。フツーに3DCGアニメとしてリメイクしちゃダメだったのだろうか…。まさかとは思うけどアメリカ国内では、未だに「実写>アニメ」みたいな偏見があるとか…?
自分、何故かこのアニメを「美女と野獣」の後の作品と思い込んでたのだけど、ググってみたら「美女と野獣」の数年前の作品だったのですな…。CGシーンが無いからおかしいと思った…。
昔のディズニーアニメ、しかも _ディズニー・ルネサンス の初期作品なので、眺めていてもこれといった学びは何も無かった…。さすがにまだこの時期では、大人の鑑賞に堪える内容ではなさそうだなと…。まあ、ハッピーエンドにアレンジしてあるあたりファミリー向けとしては良い改変なのかなと思ったりもしたけれど。原作通りのラストでは見てる子供が泣いちゃうよなあ…。
気になったのは、実写版で物議を醸している、ヒロインの肌の色。今回オリジナル版を最初に見た時、「アレ? こんなに黒いの? これじゃ黒人キャラじゃん」と驚いてしまった。ただ、それはあくまで海中シーンの話。水上や地上シーンになると、「なんだ。やっぱり白いじゃんよ」と…。
セルとフィルムでアニメを作っていた頃は、撮影段階で細かい色調補正なんてできなかったので、セルに塗る色を決めていく色指定の段階からして、地上用と海中用の色指定をバキッと変えて、ここは地上ですよ、ここは水中ですよと伝えていたはずで。例えば宮崎駿監督作品の「未来少年コナン」あたりを眺めるとそのあたりとても分かりやすいのだけど…。だから、このアニメでも、海中シーンと地上シーンでヒロインの肌の色が違っていてもそれは全然おかしくないわけだけど。
ちょっと不安になったのは、実写版のヒロインを選んだ人達って、オリジナル版でそういった工夫をしていたことすら分かってないのでは、という…。海中シーンだけを見て、「は? このヒロインは黒人だろ?」と思い込んでたらどうしよう…。
なわけないよな。ホントかどうか知らんけどヒロインの姉妹に色んな人種を起用してるという話も聞いたし、オリジナル版の肌の色なんてたぶん一切気にしてないよな…。全然違う理由でヒロインが黒人系になったのだろう…。
それはさておき。放送後に実写版の宣伝映像も少し流れてたけど、魚やカニ(ヤドカリ?)達が…。ディズニーアニメに登場する動物達を実写にするのは難問過ぎる…。フツーに3DCGアニメとしてリメイクしちゃダメだったのだろうか…。まさかとは思うけどアメリカ国内では、未だに「実写>アニメ」みたいな偏見があるとか…?
[ ツッコむ ]
以上、1 日分です。