Skip to content

yknishidate/morecon

Repository files navigation

MoRecon

MoRecon - A tool for reconstructing missing frames in motion capture data

バンダイナムコ研究所・データサイエンス・チャレンジの優勝解法です。

結果

result.mp4

解法

解法解説に使用したスライドを掲載します。

スライド1

本コンペでは、数フレームに1フレームだけデータが存在するモーションキャプチャデータが与えられ、欠落しているフレームのデータを補間します。マーカー全体で見るとポーズの補間であり、マーカー単体で見ると点と点の補間になります。

スライド3 スライド4

訓練用ファイルは全てのフレームにデータが存在し、提出用の3ファイルはそれぞれ51545フレームに1フレームのみデータが存在します。

スライド5

csvの中身は以下のようになっており、easyであれば5フレームに1フレームだけデータが入っていることが確認できます。

スライド6

モーションは「手を振る」「走る」など、大きく分けて7~8種類あります。

スライド7

実際の解法の説明に入ります。まず、モーションの種類とデータの間隔によって、ルールベース手法と機械学習手法を使い分けています。

スライド9

ルールベース手法は単なる線形補間2次スプライン補間の重み付け平均です。重みは学習データを使って最適化しています。

スライド10

機械学習手法の要点を先にまとめました。難しいことは何もしていません。

スライド11

Transformerでは、入力データの欠落部分は無視しつつ、未来の情報を与えてあげます。

スライド12

入出力データの形はcsvの2次元データそのものですが、欠落していない隣接2フレームで切り取ることで固定長にしています。そのため、データ全体を復元する際には範囲をずらしながら複数回推論していきます。

スライド13

スケルトンデータは親関節からの相対座標角度などとして計算することも可能ですが、本手法では元々格納されているワールド座標のみを使います。相対座標や角度は、ルートとなる腰マーカーの扱いが難しいというデメリットがあります。

スライド14

学習データは速度を変えてデータ拡張しています。これによってかなり精度が上がります。

スライド15

正規化によって特徴が潰れてしまうことを防ぐため、事前にモーションを原点に固定します。

スライド16 スライド17 スライド18

random seed averageと線形補間を混ぜ合わせ、重みはデータから最適化します。

スライド19 スライド20 スライド21 スライド23

質問があれば Twitter かIssueでお願いします。

スライド24

About

MoRecon - A tool for reconstructing missing frames in motion capture data

Topics

Resources

License

Stars

Watchers

Forks