Connect with us

ヘルスケア

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

mm

By Maksym Tatariants, Data Science Engineer at 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キーポイントセットおよび他の2つのトポロジー(BlazePalmおよびBlazeFace)を超えています。結果として、BlazePoseモデルは、ボディセマンティクスをアーティキュレートすることで、ハンドモデルおよびフェイスモデルと一致するポーズ予測結果を生成できます。

マシンラーニングに基づくヒューマンポーズ推定システムの各コンポーネントは、高速で、フレームごとに最大数ミリ秒でポーズ検出および追跡モデルを実行する必要があります。

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

ビデオ内のポーズ推定および追跡は、人物が存在するかどうか、またはどこに存在するか不明な場合、通常、2つのステージで実行されます。

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

このセットアップの欠点は、オブジェクト検出およびポーズ推定モジュールの両方が各フレームで実行されるため、追加の計算リソースが必要になることです。ただし、BlazePoseの著者は、この問題を回避し、FaceMeshやMediaPipe Handなどの他のキーポイント検出モジュールで効率的に使用するための巧妙な方法を考案しました。

アイデアは、オブジェクト検出モジュール(BlazePoseの場合、フェイス検出器)を使用して、最初のフレームでポーズ追跡を開始し、ポーズ推定モデルで予測されたポーズの整列パラメータを使用して、以降の追跡を実行することです。

顔は、体の向きについての最も強い信号をニューラルネットワークに提供するため、外観の変化が比較的少なく、特徴のコントラストが高いためです。したがって、人間の頭がすべてのパーソナルユースケースで検出できるという仮定に基づく一連の正当な仮定を使用して、フェイス検出を介してポーズ検出のための迅速で低オーバーヘッドのシステムを作成できます。

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

フィットネスアプリケーションでポーズ推定を使用する場合、ヒューマンポーズの膨大な数、たとえば、ほとんどのヨガルーチンの百以上のアーサナなどの課題に直面します。

さらに、ボディは、特定のカメラによってキャプチャされる四肢を時々ブロックし、ユーザーはボディの特徴やパーソナルスタイルを隠すさまざまな服を着用する可能性があります。

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

良いニュースは、ほとんどの弱点を回避または軽減できることです。そうするための鍵は、正しいトレーニングデータとモデルアーキテクチャを選択することです。さらに、ヒューマンポーズ推定技術の分野の開発傾向は、現在直面している一部の問題が将来的にはあまり重要ではないことを示唆しています。

最終的な言葉

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

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