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ドライブ内にはシンボリックリンクを張って誤魔化しておこう…。

参考ページ :

#2 [anime] 「リトル・マーメイド」を視聴

TVというか金曜ロードショーで放送されてたので視聴。おそらく初見。

自分、何故かこのアニメを「美女と野獣」の後の作品と思い込んでたのだけど、ググってみたら「美女と野獣」の数年前の作品だったのですな…。CGシーンが無いからおかしいと思った…。

昔のディズニーアニメ、しかも _ディズニー・ルネサンス の初期作品なので、眺めていてもこれといった学びは何も無かった…。さすがにまだこの時期では、大人の鑑賞に堪える内容ではなさそうだなと…。まあ、ハッピーエンドにアレンジしてあるあたりファミリー向けとしては良い改変なのかなと思ったりもしたけれど。原作通りのラストでは見てる子供が泣いちゃうよなあ…。

気になったのは、実写版で物議を醸している、ヒロインの肌の色。今回オリジナル版を最初に見た時、「アレ? こんなに黒いの? これじゃ黒人キャラじゃん」と驚いてしまった。ただ、それはあくまで海中シーンの話。水上や地上シーンになると、「なんだ。やっぱり白いじゃんよ」と…。

セルとフィルムでアニメを作っていた頃は、撮影段階で細かい色調補正なんてできなかったので、セルに塗る色を決めていく色指定の段階からして、地上用と海中用の色指定をバキッと変えて、ここは地上ですよ、ここは水中ですよと伝えていたはずで。例えば宮崎駿監督作品の「未来少年コナン」あたりを眺めるとそのあたりとても分かりやすいのだけど…。だから、このアニメでも、海中シーンと地上シーンでヒロインの肌の色が違っていてもそれは全然おかしくないわけだけど。

ちょっと不安になったのは、実写版のヒロインを選んだ人達って、オリジナル版でそういった工夫をしていたことすら分かってないのでは、という…。海中シーンだけを見て、「は? このヒロインは黒人だろ?」と思い込んでたらどうしよう…。

なわけないよな。ホントかどうか知らんけどヒロインの姉妹に色んな人種を起用してるという話も聞いたし、オリジナル版の肌の色なんてたぶん一切気にしてないよな…。全然違う理由でヒロインが黒人系になったのだろう…。

それはさておき。放送後に実写版の宣伝映像も少し流れてたけど、魚やカニ(ヤドカリ?)達が…。ディズニーアニメに登場する動物達を実写にするのは難問過ぎる…。フツーに3DCGアニメとしてリメイクしちゃダメだったのだろうか…。まさかとは思うけどアメリカ国内では、未だに「実写>アニメ」みたいな偏見があるとか…?

以上、1 日分です。

過去ログ表示

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