本記事では、PIXIEと呼ばれる機械学習手法を用いて、画像から精細な人の3Dモデルを作る方法を紹介します。
PIXIEとは
PIXIEとは、画像から精細な顔、手、関節の3Dモデルを生成する機械学習手法です。
特徴は下記が挙げられています。
-
表現力豊かなBody推定: Expressive body estimation
単一の画像から3Dの体の形状、ポーズ、手の関節、顔の表情などを推定 - 顔の詳細化: Facial details
DECAを使用してしわなど詳細に顔を抽出 - 顔の質感: Facial texture
対象者の顔のalbedo値(光の反射率)を推定 -
アニメーション: Animation
推定された3Dモデルはポーズを撮り直すことでアニメーション化可能 -
堅牢: Robust
全身画像を使ってテストされたモデルは不自然なポーズの3Dモデルの生成を防ぐ
- 正確性: Accurate
最先端で表情力豊かなbodyの構築 - 高速: Fast
直接回帰法(direct regression)を使用
PIXIEの出力結果例 出典: YadiraF/PIXIE |
PIXIEの導入手順
セットアップ1: conda環境構築
それでは早速、開発環境にPIXIEをセットアップしていきます。
動作確認は下記の環境で行っています。
OS: Ubuntu 18.04.3 LTS
GPU: GeForce GTX 1080
なお、このデモはPythonで実装しています。
Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。
おすすめの書籍
[初心者向け] Pythonで機械学習を始めるまでに読んだおすすめ書籍一覧
本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。
おすすめのオンライン講座
[初心者向け] 機械学習がゼロから分かるおすすめオンライン講座
本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。
それでは、PIXIEをインストールしていきます。他の機械学習環境に影響を与えないためにMinicondaの仮想環境上に構築していきます。Minicondaのインストール手順は公式ドキュメントをご参照ください。
conda環境構築手順を下記に記載します。
以上でconda環境構築は完了です。
セットアップ2: 学習済みモデルとデータ準備
続いて、学習済みモデルとデータを準備します。
SMPL-X Modelをダウンロードするためにはemail登録が必要です。
Signinを選択しemail登録を行ってください。登録はすぐに完了しますが、迷惑メールに入っている場合があるのでご注意ください。
その後下記の通りSMPLX_NEUTRAL_2020.npzをダウンロードします。
PIXIEデータのダウンロードも同様にemail登録が必要です。
PIXIEからutilities.zipとpixie_model.tarをダウンロードします。
続いてFLAME_albedo_from_BFM.npzを生成します。
なかなか手順が多いですが、以上で完了です。
学習済みモデルが配布されていない理由ですが、ベースのモデルとなるBasel Face
Modelの利用規約に同意している人のみが利用できるため同意なく再頒布が不可能であるためです。
3Dモデルの生成
いよいよ3Dモデルの生成です。
今回はこちらの画像のモデルを生成していきます。
こちらを実行すると以下のような結果が出力されます。
続いて、以下のコマンドを実行すると生成した3DモデルのGIF画像を出力します。
以下が出力されます。
非常に精細な3Dモデルが出力されます。
体型や性別を考慮したモデルが生成されていますね。
これを応用して連続撮影した写真を3Dモデル化すれば3Dモデルのアニメーションを生成できます。
まとめ
本記事では、PIXIEで3Dモデルを生成する方法を紹介しました。
労力を要する3Dモデルの作成が1枚の画像から生成できるため有用性の高い技術となっています。
また本記事では、機械学習を動かすことにフォーカスしてご紹介しました。
もう少し学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。ぜひご一読下さい。
また動かせるだけから理解して応用できるエンジニアの足掛かりに下記のUdemyなどもお勧めです。
参考文献
1. 論文 - Collaborative Regression of Expressive Bodies using Moderation
0 件のコメント :
コメントを投稿