cedro-blog

ディープラーニングで、静止画の人物を動画に合わせて動かす

1.はじめに

 今回ご紹介するのは、静止画の人物を動画に合わせて動かす Motion Representations for Articulated Animation と呼ばれる技術です。

2.Motion Representations for Articulated Animation とは?

 下記にネットワークのフローを示します。

 まず、Source(静止画)とDriving(動画)を Region predictor に入力してそれぞれヒートマップを取りし、ヒートマップの領域毎に Refarence(基準)に対して SourceDriving へどう変化しているか計算します。一方、SourceDrivingBG motion predictor にも入力して領域と背景の情報を取り出します。

 これら2つ結果を Pixel-wise flow predictor で結合して、Pixel-wise Flow(ピクセル毎の変化) と Confidence Map(信頼マップ) を出力します。そして、Source の各ピクセルを Pixel-wise Flow によってワープし、人物が動くことによって発生する新たな領域をConfidence Map によって修復することよって最終出力を得ます。

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

3.コード

 コードはGoogle Colabで動かす形にしてGithubに上げてありますので、それに沿って説明して行きます。自分で動かしてみたい方は、この「リンクをクリックし表示されたノートブックの先頭にある「Colab on Web」ボタンをクリックすると動かせます。

 まず、セットアップを行います。Githubからコードを取得し、学習済みパラメータをダウンロードします。

 次に、静止画を動画に合わせてアニメーションを行います。./sup-mat から静止画(01.jpg)と動画(movie.mp4)の読み込み、確認のため表示させます。

 アニメーションを作成します。

 今まで、こういう変換をしようとすると静止画の手は体と離れていないと上手く認識が出来なかったのですが、この技術はある程度上手くこなせているようです。

 では、また。

(オリジナルGithub)https://github.com/snap-research/articulated-animation