1枚の人物写真から3Dモデル化するPIFu
使ってみたい、と思ったもののPythonわからず苦戦。
この記事はそんなPython初心者な私が使えるようになるまでの全行程の備忘録。
(Git BashのインストールやPython環境構築も含む)
PiFuのGitHubに記載されている手順をより詳しく追ったものです。
追記 PIFuHD
より高解像度なモデルが生成出来るPIFuHDがリリースされています。
こちらの使用方法についてはRehabC様のこちらの動画が分かりやすかったです。
Miniconda インストール
公式サイトはこちら。
そもそもMinicondaとは?
Anacondaとは
・Python本体
・よく使うパッケージ詰め合わせセット
・パッケージ管理ツール
・複数環境管理・切り替えツール
の複合みたいなもの。Minicondaはこのうちパッケージ詰め合わせセットを除いたもの。
Pythonが既にインストール済みなら前もってアンインストールしておく。
※引用元
・AnacondaをPATH環境変数に追加する
推奨されません。代わりに、Windowsの[スタート]メニューでAnacondaを開き、[Anaconda(64-bit)]を選択します。この「PATHに追加」オプションにより、以前にインストールされたソフトウェアの前にAnacondaが検出されますが、Anacondaのアンインストールと再インストールが必要になる問題が発生する場合があります。・AnacondaをデフォルトのPython 3.7として登録します
これにより、Visual Studio PyCharm、Wing IDE、PyDev、MSIバイナリパッケージ用のPythonツールなどの他のプログラムが、システム上のプライマリPython 3.7としてAnacondaを自動的に検出できます。
condaのPath追加
Windows+Rからrundll32 sysdm.cpl,EditEnvironmentVariables
入力で環境変数設定画面を出す。
参考:
Windows 10 で PATH 環境変数を設定する方法
ANACONDAのPATHをWINDOWSで通す話
この時環境変数の順番には注意。
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
よりも上に置いておく。
c\Users\Owner\AppData\Local\Microsoft\WindowsApps\python: Permission denied
エラーが出てしまうため。
※参考:【備忘録】Pythonコマンドが認識してくれなくなった(Windows10のアップデートが関係?)
Git Bash インストール
そもそもGit Bashとは?
Bashとは命令を画面に打ち込みコンピュータが命令に従いファイルの操作やファイルの編集、削除といった操作ができるソフトウェア
Git BashとはGitの機能が搭載されたBash
GitBashはどこで手に入れるのかですがGit for Windowsをインストールすることで自動的にインストールされます
※引用元
チェックが入っていることを確認する。
設定項目は色々あるがGitBashがインストールされれば問題ないのでそれ以外の設定は任意でOK。
Git Bashで環境構築
- 起動
Git\bin\bash.exe
- eval “$(conda shell.bash hook)”
初期化スクリプト。これをしないと次の手順の`conda activate`に失敗する。
参考: Execute conda in subshell script - conda activate my_env
仮想環境my_envをアクティブ化。 - a) 自動インストールの場合
conda env create -f “D:\GoogleDrive\Program Files\PIFu\environment.yml”
詳細はこちら
PIFu用のenvironment.ymlはPIFuのディレクトリにある。
ymlを指定して環境を作成する。
b) マニュアルインストールの場合
Python用の仮想環境pifuを作成する。
conda create -name pifu python ※仮想環境pifuをアクティブ化する。
conda activate pifu ※各種インストールする。
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
conda install pillow
conda install scikit-image
conda install tqdm
conda install -c menpo opencv
※condaコマンドメモ
conda info --envs
仮想環境一覧を表示。
conda create -n pifu python
pifuという名前のPythonの仮想環境を作成。
conda remove -n pifu --all
pifuという名前の仮想環境を削除。
conda activate pifu
pifu環境をアクティブ化。
wget.exeの用意
複数ファイルをまとめてダウンロードするもの?
※参考:HTTP/HTTPSでまとめてデータを取得するwgetコマンドとは?
公式サイトから入手
Git\mingw64\bin
に配置する。
学習済みデータをDLする
Git BashにてPIFuのディレクトリへ移動する。
cd "D:\GoogleDrive\Program Files\PIFu"
※パスに半角スペースがある場合はパス全体を”で囲っておく
学習済みデータをDLする。
sh ./scripts/download_trained_model.sh
3Dモデル化
以上で準備完了です。
以下のコマンドを実行するとモデルが生成されます。
sh ./scripts/test.sh
3Dモデルの確認
テクスチャは生成されず、色は頂点カラーで表現されているので頂点カラー表示が可能なMeshLab等で確認します。
環境開発完了後のフロー
- Git Bashを起動
- 初期化
eval "$(conda shell.bash hook)"
- 仮想環境 pifu をアクティブ化
conda activate pifu
- PIFuディレクトリへ移動
cd "D:/GoogleDrive/Program Files/PIFu
- スクリプト実行
sh ./scripts/test.sh
その後の処理
出来上がったモデルは色はついてますが頂点カラーの為そのままでは活用が難しく、頂点カラーをテクスチャ化する必要があります。
その手順についてはmiyamoさんのこちらの資料でとてもわかりやすく解説されています!
一枚の人物画像から3Dモデルを生成する「PIFu」
完成モデル
以上の手順で出来上がったモデルをWebAR化してみました。