本日はAI枠です。
先日SNSでPanoHeadという1枚の顔写真から後ろも含めた髪全体を構築できるものを知りました。
今回はこちらを触っていきます。
〇PanoHead
リポジトリは次になります。
環境として以下が必要です。
・NVIDIA製GPU(RTX3090でテスト)
・64 ビット版Python 3.8 および PyTorch 1.11.0 (またはそれ以降)
・CUDA Toolkit11.3 以降
今回は以下のリポジトリを参考にGoolgeのサービスColabを使用して環境問題を解消して実行していきます。
このリポジトリの作者がYoutubeにサンプルを出しているのでそれを見ながら進めています。
〇Google colabで実行する
Google colabはグーグルが提供する機械学習などのためにある程度無料で使えるウェブ上のPython環境です。特徴として環境を用意する必要なくオンライン上でプロジェクトを構築、処理を実行できます。
PanoHead-colabではWipとして2つの環境が用意されています。今回は下部のPanoHead_custom_colabを使用します。

①Open in Colabをクリックすることですぐに実行可能なcolabの環境が開きます。

②最初のコードの実行を行います。この際にセキュリティ上の警告が出ますが、問題ない場合はこのまま実行を選択します。

実行が完了すると環境が整います。
最初のgit clone でわかる通りリポジトリをCloneしてその後環境を整えています。
③ファイルからフォルダを開きます。

④inの中に実行したい写真を入れます。

今回はテストで筆者の写真を使用してみました。

⑤次の処理を実行します。

続けて
!python projector_withseg.py --num-steps=300 --num-steps-pti=300 --outdir=/content/output --target_img=/content/stage --network=/content/PanoHead/models/easy-khair-180-gpc0.8-trans10-025000.pkl --idx 0
の処理も実行します。
このコマンドがトレーニングを行うようです。
なお最終出力に3Dデータを含ませたい場合は--shapes=Trueを追加します。 この場合はGoogle Colabの問題で無料枠の場合--num-stepsおよび--num-steps-ptiの値を100に指定する必要があります。

これで実行します。

筆者の場合png画像を使用していたためキーエラーを吐いてしまっていました。

Jpegでこのステップまでやり直します。
元画像をjpgにすることでエラーを回避して続けることができます。

この処理は筆者環境で5分かかりました。

outputフォルダにproj.mp4が作成されていたら成功しています。

⑥次の処理も実行します。

処理が完了すると最後のコマンドも実行します。

最後まで実行できるとOutputフォルダの階層にGeometry.plyとpost.mp4が出力されます。これが最終的な成果物のモデルとサンプル動画になります。

ダブルクリックするとダウンロードできモデルは.plyのためWindowsの標準アプリケーションで見ることができます。

今回は背景などにノイズが入っていましたが背景が無地のモデルなどを使用することである程度きれいなモデルを作成することができます。

本日は以上です。