僕のCGアカデミア

グラフィクス系(主にキャラクターアニメーションに関する)論文やアクティビティを簡単に紹介するログ

論文紹介: Neural Kinematic Networks for Unsupervised Motion Retargetting

令和になりましたね!特に何か大きく変わるわけじゃないですが、婚約した友人が何人かいました。そろそろ結婚を考える時期でしょうか。 GW中はというと、どこに行っても混んでいるので近所のカフェで論文を読んだりして過ごしていました。 仕事ではなく趣味なんですが、本当に他人にはわかってもらえない趣味ですよね。 内容が全くわからないとかなり辛いのですが、わからないことがわかるようになるってやっぱり楽しいですよね。

そんなこんなでGW中に読んだ論文なんかをここに紹介していきたいと思っているわけですが、さらっと一通り読んでみても いざここにまとめるとなるとうまくまとまらないですよね。書くのってけっこう時間がかかる。。。 ですが、あとで眺めたり、一旦まとめたりすると記憶の手助けになるので続けてやっていきたいと思ってます。 取り上げる論文は単純に最近興味ある関連のものです。今はちょうどモーション系に興味があります。 今更気づいたのですが、小話があってからのCGに関する内容のブログってちょっと手抜きOpenGLっぽい。

概要

Neural Kinematic Networks for Unsupervised Motion Retargetting
[ プロジェクトページ ] [ 論文 ] [ 補足資料 ] [ コード ] [ スライド ]

従来のモーションリターゲット手法は手作業で設計された制約に基づいた繰り返し最適化(iterative optimization)を用いるものが主であったが、本研究では、Reccurent Neural Networkを用いて、正解データを用意せずともシングルパスでモーションリターゲットを行える手法を提案。近年のDeep Learningを用いた人体動作に関する研究では関節の位置をそのまま使用するものが多いが、本研究では関節の回転情報を出力するため、Forward Kinematicsによってキャラクタの骨の構造を考慮した(ボーンの長さが不変な)アニメーションを生成できる。提案手法によって、キャラクタ間の身体構造の違い(背の高さや腕の長さなど)からくるリターゲットの不具合を解消し、キャラクタAの動きをキャラクタBに自然に適用することを可能にした。

提案手法

モーションを生成するパート

Neural Kinematic Networks

RNNを使用して、キャラクタAのモーションからキャラクタBのモーションを生成するフレームワーク。 各時間tでのルートジョイントから各関節への相対位置pとルートジョイントの速度vを入力とし、RNNのencoderでencodeし、それにキャラクタBのニュートラルポーズ(Tポーズ)を入力し、decodeすることでキャラクタBの各ジョイントの角度を出力。Forward Kinematicsを用いることで、キャラクタBのモーションを再構成。

モーションを学習するパート

Adversarial Cycle Consistency Framework

通常、キャラクタのモーションリターゲットをトレーニングするには、体型の異なるキャラクタに同じ動きをさせたぺアデータセットを大量に用意しなければいけない。それがモーションリターゲットを未だ困難にしているが、本手法では、Adversarial cycle consistency frameworkによって、ペアのデータを用意せずとも自然なリターゲットを実現する。本フレームワークには、以下の4つのlossが提案されている。

  • Adversal loss

    • 入力したキャラクタAのモーションと、生成されたキャラクタBのモーションが近いかどうかを判別するobjective。入力及び生成モーションの、フレーム間のジョイントの差異及びルートジョイントの速度の差異を計算。
  • Cycle consistency loss

    • 生成されたキャラクタBのモーションを再びキャラクタAにリターゲットし、最初の入力のキャラクタAのモーションとの差異を計算する。
  • Twist loss

    • 上記2つのobjectiveでは、過度なジョイントの回転が生まれてしまったため、ジョイントのtwistのobjectiveを用意。ボーンと並行の軸に対しての回転を考慮。
  • Smoothing loss

    • フレーム間の連続性を考慮するobjectiveを用意。

結果

  • Mixiamoのモーションを使用した場合

    • Mixiamoのキャラクタ7体(22個のジョイント)と1646 のトレーニングシーケンスを使用して実験を行った。各objectiveのそれぞれを外したものをすべてのものを比較し精度を評価。なお、ground truthはMixiamoで制作。提案手法では、ボーンの長さをきちんと考慮したモーションリターゲットを実現した。
    • Cycle consistencyは、手先足先の位置を回帰することを防ぐため、身長の違いによる手の位置の違い等も考慮することができた。
    • Adversarial objectiveは、自然なモーションを生成することを可能にした。
    • Twist lossは、ボーンの過度な回転を防いだ
  • Human 3.6Mのデータセットで取得したモーションを使用した場合

    • 関節数が17個のため、長さ0のジョイントを増やし、22個でMixiamoの関節構造と同じにした。
    • こちらも自然な動きを生成することができた。

今後の課題

  • ジョイントの個数がfixになってしまう。

    • 手足、足先で評価できる手法の提案が必要?
  • 物理の考慮

    • リターゲット先のキャラクタの体重など、キャラクタのPhysics要素の考慮が必要。
  • 2次元ジョイント位置の入力

    • 現状、三次元関節位置を入力する必要があるが、今後、二次元に対応するとなお良い。