【StyleGAN-Human】Invert real image with PTI に挑戦

github.com

はじめに

PTIとは「Pivotal Tuning for Latent-based editing of Real Images」の略です。
こちらを参照して下さい。
github.com

方法

画像の前処理

python alignment.py --image-folder img/test/ --output-folder aligned_image/

PTIの実行

python run_pti.py

確認

python edit.py \
  --network outputs/pti/checkpoints/model_test.pkl \
  --attr_name upper_length \
  --outdir outputs/edit_results \
  --real True \
  --real_w_path outputs/pti/embeddings/test/PTI/test/0.pt \
  --real_img_path aligned_image/test.png

結果

うまくいった例

写真はぱくたそから使わせて頂きました。
こちらの画像です。

LPIPS_value_threshold = 0.005
max_pti_steps = 1000

うまくいかなかった例

写真はぱくたそから使わせて頂きました。
こちらの画像です。

LPIPS_value_threshold = 0.01
max_pti_steps = 750

写真によってはうまくいかない場合があります。いろいろ設定をいじっても無理でした。

環境構築

Ubuntu 20.04 on WSL2
CUDA 11.6
Python 3.9
pip install -r https://raw.githubusercontent.com/dai-ichiro/myEnvironments/main/StyleGAN-Human/requirements_cu116.txt
pip install paddlepaddle-gpu==2.4.2.post116 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
git clone https://github.com/PaddlePaddle/PaddleSeg
cd PaddleSeg
git checkout release/2.5
pip install -U setuptools wheel
pip install -r requirements.txt
pip install -v -e .
pip install wandb==0.15.4

環境構築ではまったところ

はまったところを書いておきます。

cuDNNのインストール

cuDNNのバージョンはなんでも良いと思いますがこちらに従いv8.4.0としました。

NVIDIA公式から「cudnn-local-repo-ubuntu2004-8.4.0.27_1.0-1_amd64.deb」をダウンロードしてからインストールしました。(ダウンロードにはアカウントが必要です)

sudo dpkg -i cudnn-local-repo-ubuntu2004-8.4.0.27_1.0-1_amd64.deb
sudo apt update
sudo apt install libcudnn8
sudo apt install libcudnn8-dev

インストール後に以下を実行してWSL2を再起動する必要があります。

sudo ln -s /usr/lib/wsl/lib/libcuda.so.1 /usr/local/cuda/lib64/libcuda.so

paddlepaddle-gpuのインストール

「paddlepaddle」のインストールはこちらに従いました。

pip install paddlepaddle-gpu==2.4.2.post116 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

paddlesegのインストール

「paddleseg」は2.5.0が良いとのことです。

pip install paddleseg==2.5.0

なぜかこれではうまくいきませんでしたので以下のようにしました。

git clone https://github.com/PaddlePaddle/PaddleSeg
cd PaddleSeg
git checkout release/2.5
pip install -U setuptools wheel
pip install -r requirements.txt
pip install -v -e .



すべてうまくいくと以下を実行してみてください。

import paddle
paddle.utils.run_check()

このような結果が返ってくれば環境構築は成功しています。

Running verify PaddlePaddle program ...
W0628 10:19:57.095593 16151 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 8.6, Driver API Version: 12.1, Runtime API Version: 11.6
W0628 10:19:57.101826 16151 gpu_resources.cc:91] device: 0, cuDNN Version: 8.4.
PaddlePaddle works well on 1 GPU.
PaddlePaddle works well on 1 GPUs.
PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.

補足

良い結果を得るためには「max_pti_steps」と「LPIPS_value_threshold」を変更すれば良さそうです。
github.com
設定を変更するには「StyleGAN-Human/pti/pti_configs/hyperparameters.py」を書き換えます。


このエントリーをはてなブックマークに追加