AI(PIFuモデルアーキテクチャ)による2D画像からの人物3Dオブジェクト生成

python

画像認識がしたいです。

このような要望にお応えします。

もし、世界を3Dでデジタル表現することが写真を撮影することと同じくらい簡単になれば、ゲーム等を代表とする仮想世界の発展は加速すると思います。そこで、今回は3Dオブジェクト化の技術を試してみたいと思います。

Pixel-aligned Implicit Function(PIFu)

PIFuについて

2019年、2D画像から対応する人物の3Dオブジェクトを効果的に表現可能なPixel-aligned Implicit Function(PIFu)が提案されています。PIFuは、1枚の画像から3次元表面とテクスチャの両方を推論可能なディープラーニング手法です。髪型や衣服などの複雑な形状などを3Dオブジェクト化することが可能です。さらに、人の背中等の画像からは見えない領域を含む部分に関しても高解像度の3D表面を生成することができるとのことです。

PIFuのネットワークアーキテクチャ

ネットワークアーキテクチャは、元論文を参照ください。

  • https://arxiv.org/pdf/1905.05172.pdf

そして、2020年「PIFuHD:Multi-Level Pixel-Aligned Implicit Function for High-Resolution 3D Human Digitization」にて提案された手法がGithubにて公開されています。

  • https://github.com/facebookresearch/pifuhd
  • https://arxiv.org/pdf/2004.00452.pdf

それでは、画像から3Dオブジェクトを生成してみましょう。

Google Colaboratoryの準備

・Googleのアカウントを作成します。
・Googleドライブにアクセスし、「新規」→「その他」から「Google Colaboratory」の順でクリックします。そうすると、Colaboratoryが起動します。

・Colaboratoryが起動したら、以下のコマンドをCoalboratoryのセルに入力し実行します。
そうすることで、Googleドライブをマウントします。

・実行後、認証コードの入力が促されます。このとき、「Go to this URL in a browser」が指しているURLにアクセスしgoogleアカウントを選択すると、認証コードが表示されますので、それをコピーしenterを押します。これでGoogleドライブのマウントが完了します。

PIFuHDの準備

こちら(https://github.com/facebookresearch/pifuhd)で公開されているGoogle Colabを参考にします。

本記事では、以下の手順で実行しました。

Google Colaboratoryの「ランタイム」→「ランタイムのタイプ変更」でGPUを選択します。

ツールをダウンロードする場所に移動します。 本記事では、マイドライブにツールをダウンロードします。

pifuhdをダウンロードします。

入力画像のパス、出力結果のパスを設定します。
入力画像のパスは、マイドライブのpifuhdのsample_imagesにある画像データを指定しています。

続いて、姿勢推定用のツールをダウンロードします。

ダウンロードしたフォルダに移動します。

学習済みのパラメータをダウンロードします。

画像中の人を検知します。

ダウンロードしたpifuhdのフォルダに移動します。

学習済みモデルをダウンロードします。

画像データを変換します。

pifuhd実行に必要なライブラリをインストールします。

画像データの変換を行います。

出力結果

出力結果は、以下のようになりました。下記のサイトの画像データを使用しています。

  • pixabay( https://pixabay.com/ja/ )
  • フリー素材ぱくたそ(www.pakutaso.com)

2D画像に移る人物を3Dオブジェクトに変換してみました。これほど簡単にできることに驚きです。
twitterにて出力結果が複数挙げられているそうなので、何が成功して何が失敗しやすいのか確認することができますので参考にしてみてはいかがでしょうか。

タイトルとURLをコピーしました