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

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

6 件のコメント

  • Colabで動かしてみました!
    元からある画像ではColabのランタイムはクラッシュしませんでしたが、
    画像を別のものに変えるとRAMが足りなくてクラッシュしました。
    そして、画像と動画を384×384ではなく、100×100にするとセルのエラーが出ました。どうすればよいでしょうか。

      • cedroさん、
        大変有用な情報を共有いただきましてありがとうございます。
        Githubの動くコードに感動してガシガシ動かしています。(大変恐縮ですが、cedroさんが、SONY Neural Network Consoleに恋されたように、私はcedroさんのコードとOutputに感嘆しております。)
        無理をなさらず続けていただけることを願っています。

        田中さん、
        私も同じ状態になりました。
        最後の”アニメーションの作成”セルの11行目のコードを書き換えると動きました。

        書き換え例:11行目と12行目を以下に変更すると動きます。 (不要な” , driving_video”を削除しています。)
        #HTML(display(source_image, driving_video, predictions).to_html5_video()) # 11行目:オリジナルをコメントとして残す
        HTML(display(source_image, predictions).to_html5_video()) # 12行目 オリジナルより, driving_videoを削除

  • 田中 へ返信する コメントをキャンセル

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

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

    ABOUTこの記事をかいた人

    アバター

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