本記事では、機械学習手法StridedTransformer-Pose3Dを用いて、任意の動画に映る人物の3次元姿勢推定を行う方法をご紹介します。
出典: Vegetebird/StridedTransformer-Pose3D |
StridedTransformer
概要
Strided Transformerは、Transformerベースの2D pose sequenceを活用し、3D pose
sequenceを生成する姿勢推定手法です。
出典: Exploiting Temporal Contexts with Strided Transformer for 3D Human Pose Estimation |
Strided Transformerでは、Vanilla Transformer Encoder(VTE)を使用し、2D
poseシーケンスのlong-rangeの依存関係をモデル化します。この時、シーケンスの冗長性を減らすため、VTEに繋がるレイヤーは、シーケンスの長さを徐々に縮小し、ローカルコンテキストからの情報を集約するためstrided
CNNに置き換えられています。
この変更されたVTEがStridedTransformerEncoder(STE)と呼ばれ、long-rangeな情報を効果的に集約し、計算コストの大幅な削減を実現しています。
このような構成で実現されるStridedTransformerは、ベンチマークデータセットHuman3.6MとHumanEva-IにおいてSOTAを達成しています。
出典: Exploiting Temporal Contexts with Strided Transformer for 3D Human Pose Estimation |
詳細はこちらの論文をご参照ください。
本記事では上記手法を用いて、任意の動画の3次元姿勢推定を行います。
デモ(Colaboratory)
それでは、実際に動かしながら任意の動画の3次元姿勢推定を行います。
ソースコードは本記事にも記載していますが、下記のGitHubでも取得可能です。
GitHub - Colaboratory demo
また、下記から直接Google Colaboratoryで開くこともできます。
また、このデモはPythonで実装しています。
Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。
おすすめの書籍
[初心者向け] Pythonで機械学習を始めるまでに読んだおすすめ書籍一覧
本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。
おすすめのオンライン講座
[初心者向け] 機械学習がゼロから分かるおすすめオンライン講座
本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。
環境セットアップ
それではセットアップしていきます。 Colaboratoryを開いたら下記を設定しGPUを使用するようにしてください。
初めにGithubからソースコードを取得します。
次にライブラリをインストールします。
matplotlibのみバージョンにご注意ください。repositoryのコード内でmatplotlib 3.1.0以上では廃止された関数を使用しているため3.0.3を明示的にインストールしています。
最後にライブラリをインポートします。
以上で環境セットアップは完了です。
学習済みモデルのセットアップ
次に論文発表元が公開する学習済みモデルをダウンロードします。
テスト動画のセットアップ
3D姿勢推定を行う入力動画をダウンロードします。
本記事では、Youtubeから動画をダウンロードします。
Youtubeから動画をダウンロードし、指定の秒数の区間切り抜き、入力動画とします。
3D Human Pose Estimation
最後に3次元の姿勢推定を行います。
出力結果は以下の通りです。
2Dの姿勢推定は非常に精巧です。一方で3Dの姿勢推定は、速い体の動きにややついていけていない箇所が見受けられます。
まとめ
本記事では、StridedTransformerを用いて任意の動画の3次元の姿勢推定を行いました。
2Dの姿勢推定結果から、3Dの姿勢推定を再構築するという発想が興味深いです。
また本記事では、機械学習を動かすことにフォーカスしてご紹介しました。
もう少し学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。ぜひご一読下さい。
また動かせるだけから理解して応用できるエンジニアの足掛かりに下記のUdemyなどもお勧めです。
参考文献
1. 論文 - Exploiting Temporal Contexts with Strided Transformer for 3D Human Pose Estimation
0 件のコメント :
コメントを投稿