環境
windows 11
anaconda 23.7.4
Python 3.12.3
numpy 1.26.4
ツリー構造
├─apps
├─checkpoints 今回のモデルファイルを配置
├─data
├─lib
├─sample_images
├───test.png 3Dにしたい写真の画像を配置
└─scripts
git cloneして、pifuhdをアクティブにする
git clone https://github.com/facebookresearch/pifuhd.git
cd pifuhd
conda create -n pifuhd
conda activate pifuhd
必要なモジュールをインストール
pip install -r requirements.txt
pip install matplotlib
pip install -U numpy
モデルをダウンロードして、checkpointsのフォルダーを作成し保存
リンクをクリックするとダウンロードがはじまります
https://dl.fbaipublicfiles.com/pifuhd/checkpoints/pifuhd.pt
ファイル修正
numpyのアプデで下記ファイルにエラーが出るので対応する
※現在、開発が止まっておりnumpyのダウングレードがうまくできなかったので、修正して対応しました
◆ pifuhd\lib\sdf.py
「np.bool」→「bool」に一括置換
◆ pifuhd\lib\data\EvalWPoseDataset.py
「np.int」→「int」に一括置換
修正差分参考(forkしたリポジトリーです)
https://github.com/aimkbiz/pifuhd/commit/2aa42aa0d3666754f11d3e2c0f9bcd723149f6ea
下記のフォルダーの「test.png」を3Dにしたい写真に差し替える
pifuhd\sample_images\test.png
今回はMicrosoft copilotに生成してもらった画像を使用
再度アクティブにして3D作成するコマンドを実行
conda activate pifuhd
python -m apps.simple_test
作成には1,2分ほど掛かります(画像サイズやスペックによります)
下記に作成されます
\pifuhd\results\pifuhd_final\recon
Unityで確認
他にもblenderなどでも確認可能です
まとめ
思ったより簡単に写真から3Dのモデルが生成されました
ただ、人物が対象で立ち姿じゃないとうまく生成されませんでした。
イラストも立体的じゃないものはうまくいなかなかったり。
色々試して建造物の生成もうまくできるか検証したいと思います