【Texformer】画像から人間の全身(3Dモデル)を推測する

【Texformer】画像から人間の全身(3Dモデル)を推測する プログラミング

「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の動作確認を説明しました。

タイトルとURLをコピーしました