「1枚の画像から、人間の3Dモデルを推測する」
こう聞くと、ちょっと意味がわかりません。
「見えない部分も見えるようにする」
こう聞くと、少しは理解できるかもしれません。
簡単に言うと、次の人を前から見ることが可能になるということです。
Texformerを使うと、このような面白いことが可能になります。
本記事の内容
- Texformerとは?
- Texformerのシステム要件
- Texformerのインストール
- Texformerの動作確認
それでは、上記に沿って解説していきます。
Texformerとは?
言葉で説明するより、見た方が理解できると思います。
これは、冒頭の女性の後ろ姿の画像です。
この画像から、次のようなGIFアニメを作成できます。
Texformerを使えば、このようなことを実現できます。
見えていない部分を推測しています。
Texformerでは、このようなGIFアニメ(画像)の作成はできます。
しかし、3Dモデル(objファイル)を作成はしません。
3Dモデルを1枚の画像から作成したい場合は、次の記事をご覧ください。
なお、Texformerの論文は以下となります。
3D Human Texture Estimation from a Single Image with Transformers
https://arxiv.org/abs/2109.02563
以上、Texformerについての説明でした。
次は、Texformerのシステム要件を確認します。
Texformerのシステム要件
Texformer公式
https://github.com/xuxy09/Texformer
公式のインストール手順は、以下。
Anaconda環境、PyTorch 1.4、CUDA 9.2と指定されています。
あと、OSに関してもLinux(macOS)が前提のようです。
しかし、この条件である必要はありません。
この記事では、WindowsでTexformerを動かすための要件を説明します。
Texformerのシステム要件でのポイントは、以下。
Anaconda環境を利用する必要はありません。
- Python
- PyTorch
- Pytorch-neural-renderer
- その他ライブラリ
それぞれを下記で説明します。
Python
公式では、特に指定がありません。
しかし、Python 3.8以前でないといけません。
つまり、Python 3.9はNGということです。
この理由は、その他ライブラリに記載しているSciPyにあります。
Texformerは、SciPyのバージョン(1.5.2)が指定されています。
しかし、SciPy 1.5.2がPython 3.9ではインストールできません。
そのため、SciPy 1.5.2がインストール可能な次のPythonに限られます。
- Python 3.6
- Python 3.7
- Python 3.8
もしかしたら、これがハマるポイントになるかもしれません。
ちなみに、私は次のPythonで検証を行いました。
>python -V Python 3.8.6
PyTorch
PyTorch 1.4とCUDA 9.2である必要は、ありません。
現時点(2021年10月)での最新版のPyTorch 1.9.1でも動きます。
PyTorch 1.9.1では、CUDA 10.2とCUDA 11.1が要件となっています。
なお、PyTorchのインストールは次の記事で説明しています。
今回の検証では、次のコマンドで最新版のPyTorchをインストールしています。
GPU対応のマシンであれば、GPU版PyTorchをインストールしましょう。
pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio===0.9.1 -f https://download.pytorch.org/whl/torch_stable.html
Pytorch-neural-renderer
Windows以外だと、次のコマンドでインストール可能です。
pip install neural_renderer_pytorch
しかし、Windowsの場合はエラーでインストールできません。
そのため、Windows用のPytorch-neural-rendererをインストールする必要があります。
neural_renderer_pytorch-win10
https://github.com/lstcutong/neural_renderer_pytorch-win10
neural_renderer_pytorch-win10のインストールは、Texformerのインストールに含めましょう。
その他ライブラリ
以下のライブラリが、Texformerには必要となります。
- imageio
- easydict
- smplx 0.1.13
- scikit-image
- scipy 1.5.2
smplxとscipyは、バージョンを指定する必要があります。
それ以外は、最新のモノをインストールできます。
次のコマンドでインストール可能です。
pip install imageio easydict smplx==0.1.13 scikit-image pip install scipy==1.5.2
まとめ
SciPyに関して補足です。
PyTorchをインストールすると、最新のSciPyがインストールされます。
そのため、インストールし直しておきましょう。
以下のコマンドにより、自動的にアンインストールとインストールが実行されます。
pip install scipy==1.5.2
SciPyについては、次の記事で説明しています。
以上、Texformerのシステム要件を説明しました。
次は、Texformerをインストールします。
Texformerのインストール
事前に、PyTorchやその他ライブラリのインストールは済ませておきます。
Texformerのインストールは、次の処理に分けて行います。
- Texformerのダウンロード
- neural_renderer_pytorch-win10のインストール
- 学習済みモデルなどのダウンロード
それぞれを下記で説明します。
Texformerのダウンロード
まずは、公式からソースをダウンロードします。
git clone https://github.com/xuxy09/Texformer.git cd Texformer
なお、Windowsでgitコマンドを利用するには、次の記事が参考になります。
gitコマンドは、neural_renderer_pytorch-win10のインストールでも利用します。
そのため、gitコマンドが利用できるようにしておくことをおススメします。
もちろん、zipをダウンロード(そのあとに解凍)する形式でも問題はありません。
とにかく、TexformerのソースをWindowsマシンにダウンロードします。
neural_renderer_pytorch-win10のインストール
ダウンロードしたTexformerderフォルダを現在位置とします。
この場所にいることを前提として、処理を行います。
インストール手順は、以下。
git clone https://github.com/lstcutong/neural_renderer_pytorch-win10.git cd neural_renderer_pytorch-win10 python setup.py install
neural_renderer_pytorch-win10のインストールは、結構時間がかかります。
インストールが完了したら、Texformerderフォルダに戻ります。
cd ..
学習済みモデルのダウンロード
以下の二つをダウンロードする必要があります。
- meta data
- pretrained model
meta data
Texformerderフォルダ上で、metaフォルダを作成します。
meta dataのダウンロードページ
https://www.dropbox.com/s/ekxn300cuw8bw6b/meta.zip?dl=0
metaフォルダに、上記ページからダウンロードしたmeta.zipの中身を配置。
pretrained model
Texformerderフォルダ上で、pretrainedフォルダを作成します。
pretrained modelのダウンロードページ
https://www.dropbox.com/s/cqa6omqvtqfotku/texformer_ep500.pt?dl=0
pretrainedフォルダに、上記ページからダウンロードしたtexformer_ep500.ptを配置。
以上、Texformerのインストールについての説明でした。
最後は、Texformerの動作確認を行います。
Texformerの動作確認
Texformerderフォルダ上で、動作確認を行います。
動作確認では、demo_imgsフォルダ以下の画像を利用します。
準備ができたら、次のコマンドを実行します。
python demo.py --img_path demo_imgs/img01.png --seg_path demo_imgs/seg.png
正常に動くと、次の画面が表示されます。
「×」画面を閉じると、Texformerderfフォルダにoutput.gifが保存されています。
output.gif
ただ、やはりどこにも3dモデル(objファイル)は保存されていません。
あくまで、上記のようなGIFアニメで確認できるということです。
以上、Texformerの動作確認を説明しました。