#目的
PIFuで1枚の画像から3Dモデルを作成し、その精度を確認する。
#使用環境
MacbookPro(13-inch 2017)
Big Sur(ver11.1)
python3.9.1
#PIFuとは
一枚もしくは複数枚の画像から人物の3Dモデルを生成するための深層学習の手法
その3次元形状やテクスチャを推定し、写真に写っていない裏側なども推定して生成する。
#環境構築
##こちらからgitclone
git clone https://github.com/shunsukesaito/PIFu.git
##学習済みデータのインストール
cd scripts/PIFu
sh ./scripts/download_trained_model.sh
##依存関係のあるパッケージをインストール
pip install -r requirements.txt
※reauirements.txtはしばらく更新されていないようだったので、最新版に変更
decorator
imageio
kiwisolver
matplotlib
networkx
numpy
opencv-python
pathlib
Pillow
PyOpenGL
pyparsing
python-dateutil
PyWavelets
scikit-image
scipy
Shapely
six
torch
torchvision
tqdm
trimesh
xxhash
###shapelyのインストールのために、Geosが必要であったためエラー発生
brew install geos
で解決
##実行
sh ./scripts/test.sh
sampe_imagesフォルダに入っている画像を元に3Dモデルを生成されます。
##実行後
resultsフォルダにOBJファイルが生成されています。
フードは消えていますが、背中も生成できてる!(髪の毛の癖が強いですねw)
##自分で生成してみる
sample_imageフォルダに、背景除去した写真と、マスク画像を入れてておく。
そうすれば、それらを元に3Dモデルを生成してくれる。
ちなみに、背景除去は、Removingで簡単に作れた。
マスク画像は、GIMPからDLし、
色域選択>画像を覆うようにドラッグ>背景色を白に変更>背景色(白)で塗りつぶす。で簡単に作れた。
##あとがき
猫さまで3Dモデルを生成した際に、写真の背面にあたる部分に目が生成されたりと、まだ精度は甘いよう。
(人であれば背面に目は生成されなさそう)
コードを読みながら処理や、精度を上げるための学習方法などを学んでいこうと思う。