ゼロからすべてを作成するのは非常にハードルが高い。
目的としてはエンジンを作成することではなく、モーションデータの作成を楽にすることなので、先人たちの資産を参考にさせていただく。
VMD-Lifting
ネットをみているとVMD-Liftingというのが見つかりました。
mp4データからMMDのモーションデータを作成するツールということで、基本的な機能があると思います。
ただ、そのまま使うとノイズが多すぎて結構震えてしまう。
修正の余地はたくさんあると思いますが、まずはこちらをベースに構成を検討していこうと思います。
ポーズ推定
PoseNetにしろ、OpenPoseにしろ動画から取得できるのはX軸、Y軸の2つ。
まあ、そりゃそうですね。
でも、3次元で描画する場合はZ軸データが必要になります。
動画、画像の2次元データからいかに3次元データを生み出すかという部分が肝になります。
VMD-Liftingでは、その名の通りLiftingを使用しています。
難しいことはさておき、Githubのページを見ると画像データから3次元の座標データを生成しているように見えます。
2Dと3Dの対応データを使用してそれらしく推定しているようですね。
人間だったら、関節の可動域もあるので現実的には問題にならないのでしょう。
基本的な流れ
動画から座標データに変換する場合の流れを見てみると以下のような流れなのかと想定されます。
・動画データをフレーム単位で画像データとして変換。 ・大体はOpenCVで実施している ・画像データを使用して2次元データとして位置情報を取得 ・2次元データから3次元データに変換 ・3次元データをMMDのボーンと紐付けモーションデータとして保存
ということで、まずはOpenCVから理解していくことにします。
先は長そうだ。
コメント