PyMAFで、動画から人物の3Dモデルを推定する

1.はじめに

 動画から人物の3Dモデルを作成する手法が進歩しています。今回ご紹介するのは、PyMAFという手法で、以前より実際と3Dモデルの誤差が小さくなっています。

*この論文は、2021.4に提出されました。

2.PyMAFとは?

 PyMAFは、Pyramidal Mesh Alignment Feedback Loop の略で、以下にそのフローを示します。

 まず、画像から Encoder を通して特徴量を取り出し、Spatial Feature Pyramid で、その特徴量を何段階かアップサンプリングしたものを作ります。

 次に、この特徴量を元に回帰でメッシュを求めますが、一度の回帰で求めたパラメータではメッシュと実際にズレが生じます。そこで、Mesh Alignment Feedback Loop で、求めたメッシュをダウンサンプリングしたものと特徴量からパラメータを修正するループを廻し、パラメータを最適化します。

 一方で、Spatial Feature Pyramid から Auxiliary Pixel-wise Prediction(補助的なピクセル単位の予測)を求めてプロセスを監視し、ノイズ低減と信頼性向上に役立てます。

 では、コードを試してみましょう。

3.コード

 コードはオリジナルを少しいじったものをGithubに上げてあります。自分で動かしてみたい方は、この「リンクをクリックし表示されたノートブックの先頭にある「Colab on Web」ボタンをクリックすると動かせます。

 まず、セットアップを行います。

 demo.py を使って動画から3Dモデルを推定した動画を生成します。引数は、--checkpoint で学習済みパラメータを指定し、--vid_file で対象とする動画のファイル名を指定します。生成された動画は、out/ファイル名/ファイル名_result.mp4 に保存されます。

 なお、動画の生成時間は、元動画に写っている人物の数が多いと長くなります。

 保存された動画を再生します。最後の行の video('ファイルパス') で再生するファイルを指定しています。

 生成した動画のフレームレートは元動画より20%程度遅い仕様になっています。元の動画と同じフレームレートにしたい場合は、変換した連番の静止画が out/ファイル名/ファイル名_mp4_output に保存されていますので、ffmpeg でこの静止画からmp4を作成すればOKです。引数は、-r の後の数字がフレームレート、最後が mp4の出力パス です。

 これで、元動画と同じフレームレートです。では、また。

(オリジナルgithub)https://github.com/HongwenZhang/PyMAF

(Twitterへの投稿)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUTこの記事をかいた人

アバター

ディープラーニング・エンジニアを趣味でやってます。E資格ホルダー。 好きなものは、膨大な凡ショットから生まれる奇跡の1枚、右肩上がりのワクワク感、暑い国の新たな価値観、何もしない南の島、コード通りに動くチップ、完璧なハーモニー、仲間とのバンド演奏、数えきれない流れ星。