じゅころぐAR

ARのブログ

PIFuで遊んでみる

朝起きたらこんなツイートが流れてきてました。

面白そうです。

どんなものか触ってみました。
※ツイート元の記事は動作環境がWindowsですが、私の環境はMacでコマンドラインの操作余裕だぜって人向けです

PIFuのダウンロード

PIFuはGitHubで公開されています。

github.com

ターミナルを起動して、gitコマンドでてきとうなフォルダにcloneします。

$ git clone https://github.com/shunsukesaito/PIFu.git

gitコマンドが使えない人は、緑色のClone or downloadボタンからDownload ZIPでも問題ないです。
ZIPを解凍して、てきとうなフォルダに置いてください。

f:id:jyuko49:20200307084033p:plain

学習済みデータのダウンロード

ダウンロードしたPIFuの中にscriptsフォルダがあり、その中にdownload_trained_model.shがあります。

$ cd PIFu
$ sh ./scripts/download_trained_model.sh

私のMac(macOS Catalina 10.15.3)では、ここで以下のエラーが出ました。

dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib

諦めないで調べてみると、opensslが悪さをしている様子。
opensslのバージョンを1.0.xにするといいらしいので、以下のコマンドを打ったら直りました。

$ brew switch openssl 1.0.2r
Cleaning /usr/local/Cellar/openssl/1.0.2r
Opt link created for /usr/local/Cellar/openssl/1.0.2r

ライブラリのインストール

PIFuを動かすためのライブラリですが、requirements.txtが置いてあるのでpipでインストールします。

$ pip install -r requirements.txt

私の環境はここまでのセットアップで問題なく動きました。

デモを動かす

sampe_imagesフォルダにデモ用の画像が入っています。

f:id:jyuko49:20200307085922p:plain

人の全身(Aポーズ?)が正面から写った画像ryota.pngとそのマスク画像ryota_mask.pngがセットになっているようです。

GitHubのREADME.mdを読むと、サンプルに合わせて元画像を作った方が精度が上がるぜ!的なことが書いてあります。
あとは、背景の除去にはremove.bgが使えるよ!とも書いてある。

www.remove.bg

何はともあれ、一度動かしてみます。
scriptsフォルダ内のtest.shを叩けばいいらしい。

$ sh ./scripts/test.sh 

実行が終わると、resultsフォルダにOBJファイルが生成されています。

f:id:jyuko49:20200307091440p:plain

なるほど。

全体的に解像度は低め。

気になった点

解像度が低くてぼやけちゃってるので怖い・・・。
あと、顎が妙に突き出している。この辺り、2Dから生成している弊害に見える。

f:id:jyuko49:20200307091940p:plain

手・腕

指は取れてないです。
腕の側面にしわみたいなのが付いてるのはなんなんだろう?

f:id:jyuko49:20200307092134p:plain

衣服

パーカーのフードは正面から見えていないので消失。まあ、致し方なし。

f:id:jyuko49:20200307092538p:plain

裾のあたりがちょっと破綻してる。

f:id:jyuko49:20200307092619p:plain

自分でやってみる

MacのPhoto Boothを使って自撮りしました。
マウスを手に持って撮影ボタンをクリックすれば、ぼっちでも撮れるんだぞ!!

先ほどのremove.bgにアップロードして背景を除去。
マスク画像はGimpとか使えば作れます(色域選択 > 選択範囲を反転 > 白で塗りつぶす)

はい、できました!!休日スタイルの私です。
ジャージだし、髪ボサボサだけど、ヨシ!

f:id:jyuko49:20200307183303p:plain

ちなみに、頭からなんか生えてる…
右膝のあたりもおかしいですね。

f:id:jyuko49:20200307183436p:plain

まとめ

簡単に使えて面白い!けど、精度がまだまだですね。
いい暇つぶしにはなりました。