本記事では、Human Motion Diffusion Modelと呼ばれる機械学習手法を用いて、テキストから任意のHuman Motionを生成する方法をご紹介します。
出典: GuyTevet/motion-diffusion-model |
Human Motion Diffusion Model
概要
Human Motion Diffusion Model(以下、MDM)は、テキストから人の動きを3Dで表現した3Dモーションを生成するText to Motion技術です。
従来技術では、人の動きの多様性をうまく表現できず品質が低いか、表現力に制限をかけていました。MDMでは、近年画像生成で顕著な生成能力を示す分類器なしの拡散モデルを適用し、トランスフォーマーベースのエンコーダーで各ステップでノイズを除去したクリーンなサンプルを予測することによりモーションを生成します。
この手法は、従来技術より軽量でありながらも最先端のパフォーマンスを示しています。
出典: Human Motion Diffusion Model |
詳細はこちらの論文をご参照ください。
本記事では上記手法を用いて、任意のテキストから3Dモーションを生成していきます。
デモ(Colaboratory)
それでは、実際に動かしながら3D Motionを生成していきます。
ソースコードは本記事にも記載していますが、下記のGitHubでも取得可能です。
GitHub - Colaboratory demo
また、下記から直接Google Colaboratoryで開くこともできます。
なお、このデモはPythonで実装しています。
Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。
おすすめの書籍
[初心者向け] Pythonで機械学習を始めるまでに読んだおすすめ書籍一覧
本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。
おすすめのオンライン講座
[初心者向け] 機械学習がゼロから分かるおすすめオンライン講座
本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。
環境セットアップ
それではセットアップしていきます。 Colaboratoryを開いたら下記を設定しGPUを使用するようにしてください。
初めにGithubからソースコードを取得します。
次にライブラリをインストールします。
次にモーション生成に必要なデータセットをダウンロードします。
最後にライブラリをインポートします。
以上で環境セットアップは完了です。
学習済みモデルのセットアップ
ここでは論文発表元が公開する事前学習済みモデルをセットアップします。
pretrained
にダウンロードされます。
Text to Motion
それでは、任意のテキストに応じた3Dモーションを生成していきます。
本記事ではThe person suddenly dances while walking.
を入力し、3Dモーションを生成させてみます。
出力結果は以下の通りです。
入力プロンプトを反映して踊っていることが確認できます。
Rendering SMPL Mesh
最後に先ほど生成した3Dモーションをobjファイルに出力しpytorch3dでレンダリングしてみます。
生成されたフレームごとのobjファイルの一つをレンダリングした結果は以下の通りです。
SMPL形式のHuman Meshが生成されます。
まとめ
本記事では、Human Motion DIffusion Modelを用いてテキストから3Dモーションを生成しました。
Stable Diffusionなど2次元の画像生成で用いられていた拡散モデルですが、あっという間にその適用範囲を広げています。
また本記事では、機械学習を動かすことにフォーカスしてご紹介しました。
もう少し学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。ぜひご一読下さい。
また動かせるだけから理解して応用できるエンジニアの足掛かりに下記のUdemyなどもお勧めです。
0 件のコメント :
コメントを投稿