本日はモデリング枠です。
近年生成系AIと呼ばれるAI群はOpenAIを中心に爆発的速度で広まっています。
先日テキストから人体の動きを生成するText To Motionと呼ばれる部類のMotionGPTが登場しました。
本記事公開本日時点ではGitHubページ等での先行告知として公開されており、デモに関してはComming Soonとされています。
今回はMotionGPTを触れる前に関連技術として気になったTEMOSについて元論文の内容を読み解いて実際にどのようなことができるのかを読み解いていきます。
筆者自身は厳密な研究者ではないため論文を読むという機会は少ないのですが、昨年のNeRFの元論文を読んで原理を知れたからこそより技術に親しみを持てたように自分の興味のある研究に対しては今年は元論文を読むようにしたいと思っています。
次回MotionGPTについても深堀していきます。
〇TEMOSとは?
TEMOSはTExt to MOtionSのアクロニムでその名の通りテキストから人間の動きを生成できるとされています、
従来のモーションキャプチャでは実装コストや技術コストなど非常に専門的な知識と時間、金銭的なコストがかかっていました。
これに対して人間の最も基本的なインターフェースである言語を使用して人間のアニメーションを作成することでコストを下げることができます。
これらの手法としてテキスト記述から単一のモーションを作成するのではなく複数の人間の動きを生成して合成するような形で最終的なモーションを作成するアプローチをとっています、
これらのアプローチをKit Motion Lauguageでベンチマークをとって従来より優れている点を実証しているようです.
〇Kit motion Launguageとは?
Kit motion Launguageはオープンソースなデータベースです。
人間の言語とモーションデータが紐づいており、ロボットやモーションキャプチャの評価、学習に使用されるもので言語から動きを生成する場合によく用いられているようです。
motion-annotation.humanoids.kit.edu
提供されているデータはC3Dという拡張子ファイルで提供されており、これはbvhなどと並び一般的なモーションキャプチャデータになるようです。
〇SMPLポーズシーケンス
既存の技術として比較紹介されているものがSMPL(Skinned multi-Person Linear)モデルです。
これはマックスプランクインテリジェンス研究所で提供されている人間の形状から姿勢を推定するための3Dモデルです。
SMPL for Blenderプラグインもあり21年よりBlender等でも使用できますが、従来はこのモデルを使用してモーションキャプチャ等に使用さていますがTEMOSではSMPLの技術も用いてアニメーションを作成することもでき、この場合ボーンデータだけではなく皮膚のモーションも生成しています。
つまりTEMOSの中でモーションデータだけでなく人物としてのボリュメトリックなアニメーションを作成するためにSMPLモデルを使用しそれを時間軸でシーケンス化したものをSMPLポーズシーケンスと呼んでいます。
〇TEMOSを用いてテキストからモーションを生成するプロセス
TEMOSでは前述のように1回のテキスト入力に対して1つのモーションではなく複数(論文内では3つ)のモーションを生成するようになっています。
そのワークフローとしては以下のようになるようです。
①テキストのエンコード
ユーザーが入力したテキストを機会が認識できる数値データにエンコードします。
ここではTransformerと呼ばれる機械学習モデルを用いています。
②モーションデータのエンコード
テキストをエンコードしながら同時にモーションデータを学習データよりエンコードします。こちらもTransformerを用いています。
③共有の空間への投影
エンコードされたテキストとモーションデータを1つの空間(Iatent Space)に投影します。
投影とは別の空間への変換を指し、テキストとモーションとそれぞれの空間での次元等を合わせて一つにすることを指します。 つまりエンコードしたテキストとモーションを合わせる作業になります。
④デコード
Iatent Spaceからモーションをデコードします。
これは数値情報をSMPLモデルに変換するプロセスを指しています。
⑤③、④を繰り返し複数のモーションを作成
論文によるとlatent Sapceは確率的(Probabilistic)な性質を持ち、一つのエンコード情報空様々なモーションを作成できるようです。
これによって複数のモーションを出力します。
以上がTEMOSがモーションを作成するプロセスです。
TEMOSはVariational Autoencoder(VAE)というAIモデルをエンコード時に使用しており、データのエンコード時に確率的な要素を取り入れており、これによって同じ入力でも出力が異なってきます。
ただし、この確率的な要素というのがランダムではなく制御されたランダム性を持っていることが特徴です。
これは無関係さを排除したうえでのランダムという意味で、これによって入力に対して関係がある結果のバリエーションのみが作成されます。
〇精度(最新技術との比較)
論文によるとKIT Motionデータセットと比較を行い検証をおコアなっています。
検証はどちらの方がより自然かを人間が評価する方法で行われておりAmazon Mechanical Turkのワーカーに「Which motion corresponds better to the textual description?(どちらのモーションがよりテキストの記述に対応しているのか?)」という質問を行っているようです。
これによると無造作に抽出した100のテストについて先行技術であるLin et al.、JL2P、Ghosh et alとそれぞれ比較を行っており、それぞれに対してほとんどの人がより自然と答えています。
〇終わり
今回は最新の論文を読んでみましたが、英語というのもあり読み解くのは難しいです。 ただ、ただ触るだけではなくどのようなアプローチがされているかを知ることは技術者としての興味として今後の知見になると思うので続けていこうと思います