ヘルスケア

AIポーズ推定をフィットネスアプリケーションに

mm
Unite.AI を Google の優先ソースに追加

By Maksym Tatariants、MobiDevのデータサイエンスエンジニア。

ヒューマンポーズ推定とは、比較的新しい技術ですが、急速に進化しており、フィットネスとダンスアプリケーションで重要な役割を果たしており、デジタルコンテンツを現実世界に重ねることができます。

簡単に言えば、ヒューマンポーズ推定の概念は、コンピュータビジョンに基づく技術で、ヒューマンのポーズを検出し、処理することができます。この技術の中央となる部分は、ヒューマンボディモデリングです。現在のヒューマンポーズ推定システムで最も一般的な3つのボディモデルは、スケルトンベース、コンテュアベース、ボリュームベースです。

スケルトンモデル

このモデルは、ひざ、足首、手首、肘、肩、体の四肢の向きなどのジョイント(キーポイント)で構成されています。このモデルは柔軟性が特徴で、3次元と2次元の両方のヒューマンポーズ推定に適しています。3次元モデリングでは、RGB画像を使用してジョイントのX、Y、Z座標を見つけます。2次元モデリングでは、同じRGB画像を分析してXとY座標を見つけます。

コンテュアモデル

このモデルは、胴体と四肢のコンテュアとその幅を使用します。ここで、ソリューションはボディフレームのシルエットを取り出し、フレーム内でボディパーツを長方形と境界として描きます。

ボリュームモデル

このモデルは、一般に、ボディの形状を捉えるために3次元スキャンのシリーズを使用し、それを形状と幾何学的メッシュのフレームワークに変換します。これらの形状は、3Dシリーズのポーズとボディ表現を作成します。

3Dヒューマンポーズ推定のしくみ

フィットネスアプリケーションは、3次元ヒューマンポーズ推定に頼ります。これらのアプリでは、ヒューマンポーズに関する情報が多いほど、より良い結果が得られます。この技術では、アプリのユーザーが運動やワークアウトルーチンを記録します。アプリはユーザーのボディムーブメントを分析し、ミスや不正確さを修正します。

このタイプのアプリのフローチャートは、通常、次のパターンに従います:

  • まず、ユーザーが運動を行うときのデータを収集します。
  • 次に、ユーザーの動きが正しいかどうかを判断します。
  • 最後に、ユーザーにインターフェイスを通じてミスを示します。

現在、ヒューマンポーズ技術の標準は、COCOトポロジーです。COCOトポロジーは、顔から腕、脚まで、17のランドマークで構成されています。COCOは、ヒューマンボディポーズフレームワークの唯一のものではなく、最も一般的に使用されているものです。

このタイプのプロセスは、通常、深層学習技術を使用してジョイントを抽出し、ユーザーのポーズを推定します。次に、幾何学に基づくアルゴリズムを使用して、検出されたジョイントの相対的な位置を分析します。動画をソースデータとして使用する場合、システムは単一の画像だけでなく、フレームのシリーズを使用してキーポイントをキャプチャできます。結果として、ユーザーの実際の動きの精度が向上します。システムは、隣接するフレームからの情報を使用して、現在のフレームにおけるヒューマンボディの位置に関する不確実性を解決できます。

現在のテクノロジーでは、3Dポーズ推定を使用する最も正確なアプローチは、2Dキーポイントを検出するモデルを適用し、次に2D検出を別のモデルで処理して3Dキーポイント予測に変換することです。

私たちが最近投稿した研究では、単一のビデオソースを使用し、2Dから3Dキーポイントへの変換を実行するために、膨張時空間畳み込みを適用した畳み込みニューラルネットワークを使用しました。

現在のモデルを分析した結果、VideoPose3Dが、ほとんどのAI駆動型フィットネスアプリケーションのニーズに最も適したソリューションであることがわかりました。このシステムでは、2Dキーポイントを検出するモデルを使用し、COCO 2017データセットで事前トレーニングされたモデルを2D検出器として適用します。

VideoPose3Dは、短時間のシーケンス内の複数のフレームを使用して2Dポーズ情報を生成することで、現在のジョイントまたはキーポイントの位置を最も正確に予測できます。

3Dポーズ推定の精度をさらに高めるために、複数のカメラを使用して、ユーザーが同じ運動やルーチンを実行するときの別の視点を取得できます。ただし、複数のビデオストリーム入力を処理するには、より大きな処理能力と専用のモデルアーキテクチャが必要です。

最近、GoogleはBlazePoseシステムを公開しました。これは、モバイルデバイス向けのヒューマンポーズ推定モデルで、33のキーポイントを分析することで、COCOキーポイントセットとBlazePalm、BlazeFaceの2つのトポロジーのスーパーセットを使用します。結果として、BlazePoseモデルは、ハンドモデルとフェイスモデルと一致するポーズ予測結果を生成できます。

マシンラーニングに基づくヒューマンポーズ推定システムの各コンポーネントは、最大で1フレームあたり数ミリ秒で動作する必要があります。

BlazePoseパイプライン(ポーズ推定と追跡コンポーネントを含む)は、さまざまなモバイルデバイスでリアルタイムで動作する必要があるため、パイプラインの各部分は計算効率が高く、200〜1000 FPSで動作するように設計されています。

ビデオ内のポーズ推定と追跡は、人物が存在するかどうか、存在する場合はどこにあるかがわからない場合に、通常、2つのステージで実行されます。

最初のステージでは、人物の存在を検出するオブジェクト検出モデルを実行します。人物が検出された後、ポーズ推定モジュールは人物が存在する領域を処理してキーポイントの位置を予測できます。

このセットアップの欠点は、オブジェクト検出とポーズ推定の両方のモジュールを毎フレーム実行する必要があるため、計算リソースが余分に消費されることです。ただし、BlazePoseの著者は、この問題を回避するための巧妙な方法を発見しました。これは、FaceMeshやMediaPipe Handなどの他のキーポイント検出モジュールでも使用できます。

アイデアは、オブジェクト検出モジュール(BlazePoseの場合、顔検出)を使用して、最初のフレームでポーズ追跡を開始し、続いてポーズ推定モデルを使用して人物の追跡を実行することです。ポーズ推定モデルは、ポーズの整列のパラメータを予測し、追跡を可能にします。

顔は、胴体の位置に関する最も強い信号を生成するため、ニューラルネットワークでは、顔の外観の変化が小さく、特徴のコントラストが高いため、胴体の位置を推定するために使用できます。したがって、人間の頭部が常に検出可能であるという仮定に基づいて、ポーズ検出のための迅速で低オーバーヘッドのシステムを作成できます。

ヒューマンポーズ推定の課題を克服する

フィットネスアプリケーションでポーズ推定を使用する場合、ヒューマンポーズの多様性という課題があります。例えば、ヨガのレギメンでは数百種類のアサナがあります。

さらに、ボディは時々カメラによって捉えられる四肢をブロックし、ユーザーはさまざまな服を着用してボディの特徴を隠したり、個人の外見を変えたりすることができます。

事前トレーニング済みのモデルを使用する場合、不通常のボディムーブメントや奇妙なカメラ角度は、ヒューマンポーズ推定のエラーにつながる可能性があります。これをある程度軽減するには、3Dヒューマンボディモデルのレンダリングから合成データを使用するか、問題ドメインのデータでファインチューニングすることができます。

良いニュースは、ほとんどの弱点を回避または軽減できることです。鍵は、正しいトレーニングデータとモデルアーキテクチャを選択することです。さらに、ヒューマンポーズ推定技術の開発の傾向は、今後数年でいくつかの問題が解決されることを示唆しています。

最後の言葉

ヒューマンポーズ推定には、フィットネスアプリケーションやヒューマンモーショントラッキング以外の分野での将来的な利用可能性があります。例えば、ゲーム、アニメーション、拡張現実、ロボティクスなどです。これは、可能性の完全なリストではありませんが、ヒューマンポーズ推定が私たちのデジタルランドスケープに貢献する最も可能性の高い分野のいくつかを強調しています。

Maksymは、データサイエンスと機械学習における新しい知見と経験を積むことに熱心です。特に、ディープラーニングベースの技術とそれらのビジネス用途への応用に興味を持っています。