(57)【要約】システムは動作を識別し、その動作の規範的な分析を生成する。動作を識別するためにシステムは、ユーザが動作を実行する観察空間の画像にアクセスする。システムは、画像におけるアクティブ領域を含むロケーションを識別する。アクティブ領域は、動作領域、および周辺領域を含む。システムは、その場所におけるユーザの筋骨格のポイントを識別し、ユーザがアクティブ領域に入ったと判断する。システムは、アクティブ領域におけるキーポイントの時間発展に基づいて、アクティブ領域におけるユーザの動作を識別する。システムは、動作を説明する分析を判断する。記述的な分析に基づいて、システムは動作の規範的な分析を生成し、規範的な分析をユーザに提供する。規範的な分析は、ユーザの将来および／または現在の動作を通知することができる。
2021514512.tif 000002
【特許請求の範囲】
【請求項１】
複数のピクセルを含む画像にアクセスするステップであって、それぞれのピクセルは、ピクセルを説明する情報セットを有し、前記複数のピクセルは、
領域内のアクティブ領域を表現する第１のピクセルのグループと、
前記領域内の人の複数の筋骨格のポイントを表現する第２のピクセルのグループとを含み、
前記第１のピクセルのグループの前記情報セットに基づいて、前記領域内の前記アクティブ領域のロケーションを判断するステップと、
前記第１のピクセルグループ、および前記第２のピクセルグループの前記情報セットに基づいて、前記人の前記筋骨格のポイントの閾値数が前記ロケーションでの前記アクティブ領域内にある場合に、前記人が前記アクティブ領域に入ったと判断するステップと、
前記第１のピクセルグループ、および前記第２のピクセルグループの前記情報セットを用いて、前記アクティブ領域における前記人の動作を判断するステップと、
前記動作を示すデータ構造をデータストアに格納するステップと
を備えたことを特徴とする方法。
【請求項２】
前記画像にアクセスするステップは、さらに、
複数の画像センサーから前記領域の複数の画像を受信するステップと、
前記複数の画像を前記画像の中に含まれる前記複数のピクセルを集計するステップと、
前記複数のピクセルのそれぞれの情報セットを判断するステップとを含む、
請求項１に記載の方法。
【請求項３】
前記画像における前記複数のピクセルは、複数の２次元画像から生成される前記領域の３次元表現である、
請求項１に記載の方法。
【請求項４】
ピクセルの前記情報セットは、
前記ピクセルのタイミング特性と、
前記ピクセルの座標と、
前記ピクセルのピクセル値のうちのいずれかを含む、
請求項１に記載の方法。
【請求項５】
前記アクティブ領域の前記ロケーションを判断するステップは、さらに、
前記複数のピクセルのサブセットの前記情報セットを領域認識モデルへと入力するステップであって、前記領域モデルは、前記ピクセルのサブセットのうちの１つまたは複数の潜在情報を前記アクティブ領域を示すものとして識別し、前記１つまたは複数のピクセルを前記第１のピクセルグループとして選択する、ステップを含む、
請求項１に記載の方法。
【請求項６】
前記複数のピクセルのサブセットの前記情報セットを領域モデルへと入力するステップは、さらに、
前記アクティブ領域を示すピクセルのサブセットを囲む境界ボックスを生成するステップであって、前記境界ボックスは、前記領域における前記アクティブ領域を囲む第３のピクセルグループを含む、ステップを含む、
請求項５に記載の方法。
【請求項７】
前記１つまたは複数のピクセルを前記第１のピクセルグループとして選択するステップは、さらに、
前記第３のピクセルグループ、および前記アクティブ領域を示す前記ピクセルのサブセットに凸包アルゴリズムを適用するステップであって、前記凸包アルゴリズムは、１つまたは複数の前記第３のピクセルグループおよび前記アクティブ領域を示す前記ピクセルのサブセットを含む前記第１のピクセルグループを選択する、ステップを含む、
請求項６に記載の方法。
【請求項８】
前記人が前記ロケーションに入ったと判断するステップは、さらに、
前記アクティブ領域を表現する前記第１のピクセルグループの前記情報セットにアクセスするステップと、
前記第１のピクセルグループの前記情報セットを用いて前記アクティブ領域を画定する１つまたは複数の座標を判断するステップと、
前記領域における前記人の前記複数の筋骨格のポイントを表現する前記第２のピクセルグループの前記情報セットにアクセスするステップと、
前記筋骨格のポイントの前記閾値数の前記座標が前記アクティブ領域を画定する１つまたは複数の前記座標内にあることを判断するステップとを含む、
請求項１に記載の方法。
【請求項９】
前記人が前記ロケーションに入ったと判断するステップは、さらに、
前記第１のピクセルグループの前記情報セットを前記キーポイント認識モデルであるキーポイント認識モデルへと入力するステップであって、前記キーポイント認識モデルは、前記第１のピクセルグループにおける１つまたは複数の前記ピクセルの潜在情報を１つまたは複数の筋骨格のポイントを示すものとして識別し、前記１つまたは複数のピクセルを前記第２のピクセルグループとして選択する、ステップを含む、
請求項８に記載の方法。
【請求項１０】
前記アクティブ領域における前記人の動作を判断するステップは、さらに、
前記第１のピクセルグループおよび前記第２のピクセルグループの前記情報セットを前記動作認識モデルである動作認識モデルへと入力するステップであって、前記動作認識モデルは、前記第２のピクセルグループにおける１つまたは複数の前記ピクセルの潜在情報を前記人の１つまたは複数の動作を示すものとして識別し、前記第１のピクセルグループの前記情報セットに基づいて示される動作のタイプを識別し、１つまたは複数の動作を出力する、ステップを含む、
請求項１に記載の方法。
【請求項１１】
複数のピクセルを含む画像にアクセスすることであって、それぞれのピクセルは、ピクセルを説明する情報セットを有し、前記複数のピクセルは、
領域内のアクティブ領域を表現する第１のピクセルのグループと、
前記領域内の人の複数の筋骨格のポイントを表現する第２のピクセルのグループとを含み、
前記第１のピクセルのグループの前記情報セットに基づいて、前記領域内の前記アクティブ領域のロケーションを判断することと、
前記第１のピクセルグループ、および前記第２のピクセルグループの前記情報セットに基づいて、前記人が前記人の前記筋骨格のポイントの閾値数が前記ロケーションでの前記アクティブ領域内にある場合に、前記人が前記アクティブ領域に入ったと判断することと、
前記第１のピクセルグループ、および前記第２のピクセルグループの前記情報セットを用いて、前記アクティブ領域における前記人の動作を判断することと、
前記動作を示すデータ構造をデータストアに格納することとを備えたことを特徴とする、
プロセッサによって実行可能なコンピュータプログラム命令を格納する非一時的なコンピュータ可読記憶媒体。
【請求項１２】
前記画像にアクセスすることは、さらに、
複数の画像センサーから前記領域の複数の画像を受信することと、
前記複数の画像を前記画像の中に含まれる前記複数のピクセルを集計することと、
前記複数のピクセルのそれぞれに対する情報セットを判断することとを含む、
請求項１１に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１３】
前記画像における前記複数のピクセルは、複数の２次元画像から生成される前記領域の３次元表現である、
請求項１１に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１４】
ピクセルに対する前記情報セットは、
前記ピクセルのタイミング特性と、
前記ピクセルに対する座標とのうちのいずれかを含む、
請求項１１に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１５】
前記アクティブ領域の前記ロケーションを判断することは、さらに、
前記複数のピクセルのサブセットに対する前記情報セットを前記領域認識モデルである領域モデルへと入力することと、
前記ピクセルのサブセットのうちの１つまたは複数の潜在情報を前記アクティブ領域を示すものとして識別することと、
１つまたは複数のピクセルを前記第１のピクセルグループとして選択することを含む、
請求項１１に記載の非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記複数のピクセルのサブセットに対する前記情報セットを領域モデルへと入力することは、さらに、
前記アクティブ領域を示すピクセルのサブセットを囲む境界ボックスを生成することを含み、
前記境界ボックスは、前記領域における前記アクティブ領域を囲む第３のピクセルグループを含む、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記１つまたは複数のピクセルを前記第１のピクセルグループとして選択するステップは、さらに、
前記第３のピクセルグループ、および前記アクティブ領域を示す前記ピクセルのサブセットに凸包アルゴリズムを適用するステップを含み、
前記凸包アルゴリズムは、前記第３のピクセルグループおよび前記アクティブ領域を示す前記ピクセルのサブセットのうちの１つまたは複数を含む、
請求項１６に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記人が前記ロケーションに入ったと判断することは、さらに、
前記アクティブ領域を表現する前記第１のピクセルグループの前記情報セットにアクセスすることと、
前記第１のピクセルグループの前記情報セットを用いて前記アクティブ領域を画定する１つまたは複数の座標を判断することと、
前記領域における前記人の前記複数の筋骨格のポイントを表現する前記第２のピクセルグループの前記情報セットにアクセスすることと、
前記筋骨格のポイントの前記閾値数の前記座標が前記アクティブ領域を画定する１つまたは複数の前記座標内にあることを判断することとを含む、
請求項１１に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記人が前記ロケーションに入ったと判断することは、さらに、
前記第１のピクセルグループに対する前記情報セットを前記キーポイント認識モデルであるキーポイント認識モデルへと入力することと、
前記第１のピクセルグループにおける１つまたは複数の前記ピクセルの潜在情報を１つまたは複数の筋骨格のポイントを示すものとして識別することとを含む、
請求項１８に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２０】
前記アクティブ領域における前記人の動作を判断することは、さらに、
前記第１のピクセルグループおよび前記第２のピクセルグループに対する前記情報セットを前記動作認識モデルである動作認識モデルへと入力することと、
前記第２のピクセルグループにおける１つまたは複数の前記ピクセルの潜在情報を前記人の１つまたは複数の動作を示すものとして識別することと、
前記第１のピクセルグループに対する前記情報セットに基づいて示される動作のタイプと、
1つまたは複数の動作を出力することとを含む、
請求項１１に記載の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、動作を識別し、分析を生成し、より具体的には、一連の機械学習のアルゴリズムを採用し、アクティブ領域、キーポイント、および動作を識別し、分析を生成することに関する。
【背景技術】
【０００２】
本出願は、２０１８年２月２０日に提出された米国仮出願第６２／６３３，０４５号の優先権の利益を主張し、その開示は、あらゆる目的のためにその全体が参照により本明細書に組み込まれる。
【０００３】
ユーザの動作を識別するさまざまな方法が存在する。古典的な例は、近代映画におけるモーションキャプチャである。モーションキャプチャにおいて、ユーザはアクティブ領域におけるさまざまな動作を実行している間に、身体のキーポイントに小さな識別用のオブジェクトを着用する。カメラシステムはユーザの画像を取得し、キャプチャされたキーポイントを利用し、動作のさまざまな分析を生成する。例えば、モーションキャプチャのシステムは、トレーニング期間の間に、アスリートへ適用させることによって、コーチが彼らの動作を説明するさまざまな経験則を導き出すことが可能である。
【０００４】
動作の識別は、異なるアクティブ領域において、異なる動作を実行する複数の同時ユーザへ適用された場合に、複雑な問題となる。残念ながら、関連技術のシステムは、複雑なインジケータシステムを用いることなく、この複雑な問題を解決することに失敗してきた。例示すると、関連技術のシステムは、それぞれのユーザに取り付けられた多数のインジケータ装置を利用し、それらの動作を妨げる場合がある。さらに、関連技術のシステムは、ユーザの動作の自由を制限する観察空間の範囲を示す視覚的インジケータを用いる。関連技術のシステムは、観察空間における物理的および／または電子的インジケータを用いることなく、アクティブ領域、およびそれらのアクティブ領域におけるユーザの動作を判断することに取り組んでいない。
【図面の簡単な説明】
【０００５】
【図１】例示的な一実施形態によって、ユーザの規範的な分析を生成するシステム環境を図示する。
【図２】例示的な一実施形態によって、動作情報モジュールを図示する。
【図３】例示的な一実施形態によって、動作を識別し、その動作の規範的な分析を生成する方法のフローチャートを図示する。
【図４Ａ】例示的な一実施形態によって、画像ストリームからの画像の表現である。
【図４Ｂ】例示的な一実施形態によって、識別されたアクティブ領域のロケーションを含む画像ストリームからの画像の表現である。
【図４Ｃ】例示的な一実施形態によって、ロケーションにおけるユーザのキーポイントを含むロケーションの表現である。
【図４Ｄ】例示的な一実施形態によって、アクティブ領域におけるユーザのキーポイントを含むロケーションの表現である。
【図４Ｅ】例示的な一実施形態によって、アクティブ領域におけるユーザのキーポイントを含むロケーションのさらなる表現である。
【図４Ｆ】例示的な一実施形態によって、動作概要の例示的に視覚化されたものを図示する。
【図５Ａ】例示的な一実施形態によって、ショルダーローの動作の識別に用いられるショルダーローマシンのアクティブ領域におけるキーポイントの表現である。
【図５Ｂ】例示的な一実施形態によって、ショルダーローの動作の動作概要の表現である。
【図６Ａ】例示的な一実施形態によって、走っている動作を識別するアクティブ領域におけるキーポイントの表現である。
【図６Ｂ】例示的な一実施形態によって、走っている動作の動作概要の表現である。
【図７Ａ】例示的な一実施形態によって、二頭筋カールの動作を識別するために用いられる二頭筋カール空間のアクティブ領域におけるキーポイントの表現である。
【図７Ｂ】例示的な一実施形態によって、二頭筋カールの動作の動作概要の表現である。
【図８】例示的な一実施形態によって、機械可読媒体から命令を読み取って実行する例示的な機械の構成要素を図示するブロック図である。
【０００６】
図面は、例示のみを目的としてさまざまな実施形態を示す。当業者は、本明細書に図示された構造、および方法の代替的な実施形態が、本明細書に説明される本発明の原理から逸脱することなく採用され得ることを以下の説明から容易に認識することとなるであろう。
【発明を実施するための形態】
【０００７】
図面（図）、および以下の説明は、例示のみによる好ましい実施形態に関する。以下の説明から、本明細書に開示される構造、および方法の代替的な実施形態は、特許請求の範囲の原理から逸脱することなく、採用され得る実行可能な代替として容易に認識されることとなることが留意されるべきである。
【０００８】
ここである実施形態を詳細に参照し、それらの例示が添付図面に図示される。実施可能な場合は、いつも、同様または類似の参照番号が図面において用いられ、同様または類似の機能を示す場合があることを留意されたい。図面は、例示のみを目的とし、開示されたシステム（または方法）の実施形態を描写する。当業者は、本明細書に図示される構造、および方法の代替的な実施形態が、本明細書に説明される本発明の原理から逸脱することなく、用いられ得ることを以下の説明から容易に認識されることとなるであろう。
【０００９】
（構成の概要）
開示された構成は、アクティブ領域におけるユーザの動作を識別し、識別された動作の分析を生成するシステム（および方法および／または非一時的なコンピュータ可読記憶媒体）を含む。生成された分析は、以下でより詳細に説明するように記述的な分析および／または規範的な分析であってよい。
【００１０】
動作を識別するために、システムは、観察空間の画像にアクセスする。画像は、ユーザを表現するピクセル、およびアクティブ領域を表現するピクセルを含む。アクティブ領域を識別するために、システムは、動作領域を表現する画像におけるピクセルを識別する領域識別モデルを採用する。動作領域は、ユーザが動作を実行することが可能である領域を表現するピクセルである。システムは、動作領域のロケーションを判断する。ロケーションは、動作領域のピクセルの境界ボックスである。システムは、動作領域の周辺の領域を表現するロケーションにおけるピクセルを識別する。システムは、動作領域、および周辺領域をアクティブ領域として識別する。
【００１１】
システムは、観察空間の画像を分析することによって、ユーザがアクティブ領域に入った場合に識別する。画像は、ユーザを表現するピクセルを含む。ユーザがアクティブ領域に入った場合を識別するために、システムは、キーポイント識別モデルを採用し、ユーザの筋骨格のキーポイントに対応する領域におけるピクセルを識別する。システムは、十分な数のユーザのキーポイントが画像におけるアクティブ領域に重なった場合に、ユーザがアクティブ領域に入ったと判断する。
【００１２】
システムは、観察領域の一連の画像を分析することによって、ユーザの動作を識別する。システムは、動作識別モデルを採用し、動作を表現するアクティブ領域におけるキーポイントの時間変化を識別する。システムは、キーポイントに基づいて動作のさまざまな経験則を算定することによって、動作の記述的な分析を判断する。システムは、記述的な分析に基づくことによって、動作の規範的な分析を生成する。規範的な分析は、ユーザによって、現在、または以前の動作を通知するために用いられることが可能である。
【００１３】
Ｉ．導入
観察空間内の動作は、その観察空間から取得された画像のみを用いて正確に識別することが困難な問題である。現在の動作識別技術は、複雑な物理的、および電子システムを必要とし、動作を正確に識別し、これらの動作を記述的な分析を生成する。本明細書で説明されるように、システム、および方法は、動作を識別し、観察空間におけるその動作の分析を生成するために用いられる。システムは、観察空間の画像のグループを取得する観察システム１５０を含む。機械学習モデルのグループは、画像のピクセルにおける情報を利用し、動作を識別し、分析を生成する。
【００１４】
ＩＩ．動作検出システム
図１は、ユーザの一組のまたは規範的な分析を生成するシステム環境を図示する。システム環境１００（「環境」）の実施形態において、クライアントシステム１１０は、規範的な分析のセットの要求を生成し、ネットワークシステム１２０は、それに応じて、分析を提供する。
【００１５】
ネットワークシステム１２０は、アクティブ領域内の人の動作を判断する動作情報モジュール１３０（「ＭＩモジュール」）を含む。文脈の上で、動作は、スクワット、二頭筋カール、ジャンピングジャック、またはその他の種類の動作であってよい。同様に、アクティブ領域は、運動器具の一部を囲う領域、特定の動作のために指定された領域、または他の関心のある領域であってよい。さらに、ＭＩモジュール１３０は、アクティブ領域において判断された動作の規範的な分析および記述的な分析（集計における「分析」）を判断する。規範な分析は判断された動作の推奨であり、記述的な分析は、達成した動作の説明である。例えば、規範的な分析は、フォームを改善するための推奨であってよく、疲労などの通知である。記述的な分析は、反復数、持ち上げられた重量、実行された動作などを含む動作概要を含むことができる。ＭＩモジュール１３０は、分析をネットワーク１４０を介してクライアントシステム１１０へ伝送する。
【００１６】
クライアントシステム１１０は、分析をユーザに提示するよう構成される情報動作アプリケーション１１２（「ＩＭＡ」）を含む。環境１００の例示的な実施形態において、ユーザは、クライアントシステム１１０を操作し、アクティブ領域における動作をしている。ＭＩモジュール１３０は、ユーザの動作を識別し、動作の分析を生成し、分析をネットワーク１４０を介してクライアントシステム１１０へ伝送する。ＩＭＡ１１２は、分析をユーザに提示する。ユーザは、分析の中に含まれる情報を利用し、将来および／または現在の動作を通知する。例えば、ユーザは、動作を終了、動作を変更、または新しい動作を開始することができる。
【００１７】
ＭＩモジュール１３０は、ネットワーク１４０を介して観察システム１５０から受信した観察空間の画像バッチを用いて動作分析を生成する。画像バッチは、観察空間の１つまたは複数の画像１５２を含む。観察空間は、ユーザが動作を実行することができる１つまたは複数のアクティブ領域を含む空間の領域である。例えば、アクティブ領域は、運動器具の一部を囲む領域であってよく、ユーザが動作などを実行することができる領域である。ある実施形態において、画像バッチの画像１５２は、観察空間のビデオから抽出されることができる。
【００１８】
観察システム１５０は、画像バッチにおける画像１５２を取得するよう構成される複数の画像および／またはビデオキャプチャデバイス（「キャプチャデバイス」）を含む。キャプチャデバイスは、それぞれのキャプチャデバイスが異なる特性を有する観察空間の画像を取得するように配置および／または構成することができる。例えば、キャプチャデバイスは、異なる視野、焦点面、画像特性（例えば、彩度、色相など）、画像サイズなどを含む画像を取得することができる。したがって、観察システム１５０によって取得された画像１５２は、ユーザ、アクティブ領域、および観察空間を表現することができる情報のセットを有するピクセルを含む。例示すると、ピクセルの情報のセットは、ピクセル値（例えば、ＲＧＢ値）、画像の中のピクセルのロケーション（または座標）（例えば、２，１４５行，１，９８７列）、およびピクセル値が測定された時間（例、午後４時１０分）を含むことができる。以下で説明されるように、ピクセルの情報のセットは、識別されたロケーション、アクティブ領域、キーポイント、ユーザ、動作、およびそのピクセルに関連付けられた分析のいずれかを含むことができる。ＭＩモジュール１３０は、画像の中に含まれる情報を分析し、画像１５２の中に表現されたアクティブ領域におけるユーザの動作を判断する。ＭＩモジュール１３０は、判断された動作の分析を生成する。
【００１９】
ネットワークシステム１２０は、ネットワーク１４０を介してクライアントシステム１１０、および観察システム１５０と通信する。一実施形態において、ネットワーク１４０は、インターネット、またはＬＡＮ、ＭＡＮ、ＷＡＮ、モバイル、有線もしくは無線ネットワーク、プライベートネットワークもしくは仮想プライベートネットワークの内の任意の組み合わせである。
【００２０】
システム環境１００は、複数の「モジュール」を有するシステムを含む。例えば、ネットワークシステム１２０は、ＭＩモジュール１３０を含む。モジュールは、指定された機能を提供するハードウェアコンポーネントおよび／または計算ロジックを参照する。すなわち、モジュールは、ハードウェア、ファームウェアおよび／またはソフトウェア（例えば、計算論理を含むハードウェアサーバー）内に実装することが可能であり、他の実施形態は、さらなるモジュールを含むこと、モジュール間の機能を分散させること、機能をより多くまたはより少ないモジュールに帰属させること、スタンドアローンプログラムまたはプログラムのネットワークの一部として実装すること、およびプロセッサによって実行可能なメモリへとロードすることが可能である。
【００２１】
環境１００は、他の実施形態を有することができる。例えば、ある実施形態において、環境１００は、さらなる、またはより少ないシステムを含むことができる。例示すると、ネットワークシステム１２０は、複数のユーザの動作を検出するよう構成されるＭＩモジュール１３０を含むことができ、それぞれのユーザがクライアントシステム１１０を操作する。さらに、環境１００内の１つのシステムに帰属する機能は、システム環境１００内の１つまたは複数の他のシステムに分散されることができる。例えば、ＭＩモジュール１３０の機能のいくつかまたはすべては、ＩＭＡ１１２によって達成することができる。
【００２２】
ＩＩＩ．動作の検出および分析
上述のように、ネットワークシステム１２０は、動作を判断し、判断された動作の分析を生成するＭＩモジュール１３０を含む。図２は、１つの例示的な実施形態によって、ＭＩモジュールのより詳細な例示を図示する。ＭＩモジュール１３０は、領域識別モジュール２１０と、筋骨格識別モジュール２２０と、動作識別モジュール２３０と、規範的な分析モジュール２４０と、マップ生成モジュール２５０と、データストア２６０とを含む。モジュールは、観察空間の画像を用いて動作を識別することと連携して作動させ、識別された動作の動作分析を生成する。便宜上、説明の多くは、画像の中に含まれる観察空間の単一の画像のために提供される。しかしながら、ＭＩモジュール１３０の機能は、画像バッチにおけるすべての画像１５２へ適用可能である。
【００２３】
ＩＩＩ．Ａ  アクティブ領域の識別
領域識別モジュール２１０は、観察システム１５０によって取得された画像におけるアクティブ領域を識別する。アクティブ領域は、ユーザが動作を実行することが可能である領域である。アクティブ領域は、ピクセルのグループとして画像の中に表現される。アクティブ領域は、動作領域と周辺領域とを含む。動作領域は、動作が発生する領域、またはオブジェクトである。例えば、領域識別モジュール２１０は、ジムにおけるベンチプレスである動作領域、または人がキャリステニクスを行う領域を識別する。周辺領域は、動作領域を囲む領域である。例えば、領域識別モジュール２１０は、ユーザがキャリステニクスを行う領域を囲む空間のジムにおけるベンチプレスを囲む空間として、周辺領域を識別する。したがって、画像におけるアクティブ領域は、動作領域と周辺領域との両方を表現するピクセルが含む。動作領域、およびそれらに対応する周辺領域の他の例示は、可能である。
【００２４】
アクティブ領域のサイズは、アクティブ領域における動作を識別することの複雑さに影響を与える場合がある。例えば、アクティブ領域における動作を判断するためにギガピクセルに相当する情報を分析することは、メガピクセルに相当する情報を分析することより計算コスト、および時間がかかる。そのため、領域識別モジュール２１０は、アクティブ領域、すなわち、一般に、アクティブ領域におけるユーザの動作を正確に検出することを可能とする最小のアクティブ領域を識別する。例えば、ベンチプレスのアクティブ領域は、ユーザの脚を含むベンチプレスの半分をアクティブ領域の中に含まないが、ユーザが腕、およびベンチプレスのバーを動かすベンチプレスの半分のみを含むことができる。別の例示において、ジムは、すぐ近くにいくつかのベンチプレスを含むことができる。したがって、領域識別モジュール２１０は、第２の隣接するベンチプレスの動作を検出していない間に、そのアクティブ領域におけるユーザの動作を識別するために、十分に大きい第１のベンチプレスのアクティブ領域を識別する。
【００２５】
領域識別モジュール２１０は、領域識別モデル（「領域モデル」）を採用し、画像におけるアクティブ領域を判断する。ある例示において、領域モデルは、画像セグメンテーションモデルを実装する畳み込みニューラルネットワークであるが、他のタイプのモデルも可能である。画像におけるアクティブ領域を識別するために、領域識別モジュール２１０は、観察空間の画像にアクセスし、画像を領域識別モデルへと入力する。例えば、画像のピクセルは、領域識別モデルの畳み込みニューラルネットワークの第１の層への入力ベクトルであってよい。
【００２６】
領域識別モジュール２１０は、画像における動作領域を表現するピクセルの中の潜在情報を識別する。例えば、畳み込みニューラルネットワークは、第１の層の次元を識別層へ低減するよう作動させる第１の層（および中間層）におけるノードにさまざまな関数を適用する。識別層は、ベンチプレスが画像の中にあることを示す画像における潜在的な情報を識別する。畳み込みニューラルネットワークは、さまざまな関数を識別層（および中間層）へ適用し、セグメント画像を生成する。セグメント画像は、動作領域としてラベル付けされたピクセルを含むアクセス画像である。例えば、セグメント画像は、ベンチプレスとしてラベル付けされたベンチプレスを表現するピクセルを含むアクセス画像である。
【００２７】
領域識別モジュール２１０は、アクティブ領域を含むロケーションを識別する。ロケーションを識別するために領域識別モジュール２１０は、画像の中で識別された動作領域の境界ボックスを生成する。したがって、ロケーションは、動作領域としてラベル付けされたピクセル、および境界ボックス内の他のピクセルを含む、セグメント画像におけるピクセルのグループである。一般に、ロケーションは、長方形などの幾何学的形状であるが、他の形状である場合がある。例えば、以前から続けて、領域識別モジュール２１０は、ベンチプレスとしてラベル付けされた動作エリアのピクセルを囲む長方形の境界ボックスを生成する。ロケーションは、ラベル付けされたピクセル、および境界ボックスにおけるさらなるピクセルを含む。
【００２８】
領域識別モジュール２１０は、ロケーションにおけるピクセルからアクティブ領域を識別する。上述のように、アクティブ領域は、そのアクティブ領域における動作の識別を可能とするピクセルの最小の数である。領域識別モジュール２１０は、凸包アルゴリズムを採用し、アクティブ領域を判断する。凸包アルゴリズムは、ＭＩモジュール１３０が動作を判断することを可能とするロケーションにおける最小の数のピクセルを判断する。例えば、領域識別モジュール２１０は、ベンチプレスとしてラベル付けされたピクセル、およびベンチプレスを囲む周辺のピクセルのグループを含む動作領域としてアクティブ領域を識別する。識別されたアクティブ領域は、ＭＩモジュール１３０がアクティブ領域内のベンチプレス動作を識別することを可能とする最小のピクセルのグループである。ある凸包識別アルゴリズムの例示は、グラハムスキャン、またはマーチングスクエアを含むが、他のアルゴリズムも可能である。
【００２９】
ある例示において、観察空間は、複数のアクティブ領域を含み、それゆえに、画像は、複数のアクティブ領域を表現するピクセルを含むことができる。これらの場合において、領域識別モジュール２１０は、画像の中に含まれるアクティブ領域のそれぞれのアクティブ領域を識別する。重要なことに、それぞれのアクティブ領域は、異なるか、または同様のラベルを有することができる。ラベルは、ピクセルによって表現されるアクティブ領域のタイプを示す。例えば、アクティブ領域は、ベンチプレス、またはトレッドミルとしてラベル付けすることできる。アクティブ領域のラベルは、その領域において識別することができる動作のタイプに影響を与える場合がある。例えば、第１のアクティブ領域は、第１のラベルを有することができ、ＭＩモジュール１３０は、第２のラベルではなく、第１のラベルに関連する第１のアクティブ領域における動作を識別する。例示すると、領域識別モジュール２１０は、ベンチプレスとしてラベル付けされたアクティブ領域とトレッドミルとしてラベル付けされたアクティブ領域を識別する。ＭＩモジュール１３０は、そのアクティブ領域において、トレッドミルではなく、ベンチプレスに関連する動作を識別し、逆もまた同様である。また、ＭＩモジュール１３０は、それぞれのアクティブ領域に対応するロケーションを識別する。
【００３０】
領域識別モジュール２１０は、識別されたロケーション、アクティブ領域、およびそれらに関連するラベルを含むデータ構造を出力する。例えば、領域識別モジュール２１０は、画像におけるベンチプレス、およびトレッドミルを識別する。そのため、領域識別モジュール２１０は、ロケーション、アクティブ領域、ならびにベンチプレスおよびトレッドミルの両方のラベルを含むデータ構造を出力する。ロケーション、およびアクティブ領域は、それらの対応するピクセルに関連付けられることによって、それらのピクセルがＭＩモジュール１３０における他のモジュールにより、参照されることができる。ある例示において、以下に説明されるように、ロケーション、およびアクティブ領域は、座標系を配置することができる。データ構造は、ＭＩモジュール１３０が、アクセスされた画像における動作をより容易に判断することを可能とする。
【００３１】
領域識別モジュール２１０によって採用されるモデル、およびアルゴリズムは、さまざまな方法でトレーニングすることができる。例えば、領域識別モデルは、トレーニングセットにてトレーニングすることができる。トレーニングセットは、データベース化されたジムの機器に格納された画像のグループであってよい。ジム機器のデータベースは、ベンチプレス、トレッドミル、スクワットラックなどのアクティブ領域で以前にラベル付けされた複数のセグメント画像を含む。領域識別モジュール２１０は、領域モデルをトレーニングし、さまざまなアクティブ領域を含むアクティブ領域を識別する。別の例示において、クライアントシステム１１０および／またはネットワークシステム１２０のオペレータは、観察バッチによって取得された画像においてアクティブ領域にラベル付けをすることができる。例えば、ネットワークシステム１２０の管理者は、適切なアクティブ領域にラベル付けすることによって、ＭＩモジュール１３０を構成することができる。別の例示において、領域識別モジュールは、アクティブ領域をユーザに提案することができ、ユーザは、それに応じてアクティブ領域を受け入れ、且つラベル付けすることができる。本明細書で説明されるＭＩモジュール１３０によって採用される他のさまざまなモデルは、同様の方法でトレーニングすることができる。
【００３２】
ＩＩＩ．Ｂ  筋骨格のキーポイントの判断
筋骨格（「ＭＳ」）識別モジュール２２０は、観察空間におけるユーザの筋骨格点（「キーポイント」）を識別する。キーポイントは、ユーザの筋骨格表現を生成することに用いられる１つまたは複数のポイントである。例えば、キーポイントは、ユーザの筋骨格構造を表現する足首、膝、肘、肩などを含むことができる。キーポイントは、例えば、５，１０，１８，３０など、またはそれより多いさまざまな数のポイントを含むことが可能である。
【００３３】
ＭＳ識別モジュール２２０は、キーポイント識別モデルを採用し、画像内におけるキーポイントを判断する。ある例示において、キーポイント識別モデルは、画像セグメンテーションモデルを実装する畳み込みニューラルネットワークであるが、他のタイプの分類モデルも可能である。画像におけるキーポイントを識別するために、ＭＳ識別モジュール２２０は、観察空間の画像にアクセスし、画像をキーポイント識別モデルへと入力する。例えば、画像のピクセルは、キーポイント識別モデルの畳み込みニューラルネットワークの第１の層への入力ベクトルであってよい。上述と同様に、ＭＳ識別モジュール２２０は、アクセスされた画像にさまざまな関数を適用し、その次元を低減し、キーポイントを識別し、さまざまなキーポイントのラベルを含むデータ構造を生成する。例えば、ＭＳ識別モジュール２２０は、１つまたは複数の関数を適用し、第１の層（および任意の中間層）を識別層へ低減し、識別層におけるキーポイントを識別する。ＭＳ識別モジュール２２０は、１つまたは複数の機能を識別層（および任意の中間層）へ適用し、アクセスされた画像におけるキーポイントのロケーションを含むデータ構造を生成する。識別されたキーポイントは、アクセスされた画像におけるピクセル、またはピクセルのグループに関連付けることができる。そのため、それぞれのキーポイントは、画像の座標系の座標を配置することができる。
【００３４】
一実施形態において、キーポイント識別モデルは、逆運動学関数を採用し、分類モデル（例えば、畳み込みニューラルネットワーク）を用いて識別できないキーポイントおよび／またはキーポイントの動作を判断する。ここで、ＭＳ識別モデルは、分類モデルを用いて画像の中のキーポイントを識別し、逆運動学関数を用いてさらなるキーポイントを推測する。例えば、キーポイント識別モデルは、肩、首、および腰を表現するキーポイントを識別するが、脊柱を識別するように構成されていない。この場合において、逆運動学関数は、肩、首、および腰のキーポイントを用いて、脊椎に関連付けられたキーポイントを識別する。他の例示は、可能である。さらに、逆運動学関数は、例えば、筋群、結合組織など、身体の他のさまざまな解剖学的部分を識別することに用いることができる。
【００３５】
一実施形態において、アクセスされた画像全体を分析し、キーポイントを識別することよりはむしろ、ＭＳ識別モジュール２２０は、ロケーションのピクセルをキーポイント識別モデルへと入力する。例えば、領域識別モジュール２１０は、ベンチプレスの周辺のロケーションを識別し、ＭＳ識別モジュール２２０は、そのロケーションのピクセルをキーポイント識別モデルへと入力する。ＭＳ識別モジュール２２０は、ロケーションにおけるユーザのキーポイントを識別する。このようにして、ＭＳ識別モジュール２２０は、画像全体においてというよりはむしろ、ロケーション、およびアクティブ領域へローカライズされたキーポイントを識別する。ローカライズされた識別は、画像全体のキーポイントを識別することより計算コストがかからない。
【００３６】
一実施形態において、ＭＳ識別モジュール２２０は、アクティブ領域内に配置されたキーポイント（「アクティブキーポイント」）を識別する。アクティブキーポイントは、アクティブ領域におけるユーザが実行する動作を示すキーポイントであってよい。例えば、ユーザがベンチプレスを含むジムの中で運動しており、ユーザが運動を始めるためにベンチプレスに近づく。ＭＳ識別モジュール２２０は、ユーザがロケーションに入ったと識別し、ユーザのキーポイントを識別する。しかしながら、キーポイントがアクティブ領域内にないため、キーポイントは、まだアクティブキーポイントではない。ジムにおいて、ベンチプレスの上に横たわって、ウェイトを持ち上げ始めることによって、ユーザは、アクティブ領域に入る。ＭＳ識別モジュールは、例えば、十分な数のキーポイントおよび／または適切なキーポイントがアクティブ領域の中にある場合に、ユーザがアクティブ領域に入ったと判断する。ＭＳ識別モジュール２２０は、キーポイントがアクティブ領域内にあるため、キーポイントは、アクティブキーポイントであることを識別する。つまり、アクティブキーポイントは、画像におけるアクティブ領域と重なるキーポイントである。以下に説明されるように、ＭＩモジュール１３０は、アクティブキーポイントを利用し、アクティブ領域における動作を判断することができる。
【００３７】
ＭＳ識別モジュール２２０は、画像の中のオクルージョンにもかかわらず、キーポイントを識別するよう構成されるキーポイント識別モデルを採用する。オクルージョンは、ユーザのキーポイントがオブジェクトによって画像における表示からオクルージョンされた場合に発生する。例えば、ユーザの肘がベンチプレスのベンチの後ろにあり、反復の基底にある場合がある。したがって、ユーザの肘は、ユーザの画像の中に表示されない。しかしながら、ＭＳ識別モジュール２２０は、画像の中で見えていないにもかかわらず、オクルージョンされた肘を識別するよう構成される。一実施形態において、ＭＳ識別モジュール２２０は、時間補間を採用し、オクルージョンされたキーポイントを識別する。時間補間は、キーポイントの発展を経時的に監視する。ある時点でのキーポイントが画像の中にオクルージョンされた場合、ＭＳ識別モジュール２２０は、以前に発生したキーポイントのいずれかを補間し、画像における現在（または以前の）キーポイントのロケーションを推測することが可能である。別の実施形態において、ＭＳ識別モジュール２２０は、空間補間を採用し、オクルージョンされたキーポイントを識別する。例えば、あるキーポイントは、相対的な空間的定位を有する（例えば、２つの眼）。この場合において、ＭＳ識別モジュール２２０は、周辺のキーポイントに基づいて、オクルージョンされたキーポイントを補間することが可能である。一実施形態において、ＭＳ識別モジュール２２０は、ＭＩモジュール１３０によって達成される空間再構成を利用し、オクルージョンされたキーポイントを判断する。空間再構成は、以下で詳細に説明される。単に、ＭＩモジュール１３０は、異なる視点にて得られた画像から同じアクティブ領域を分析する。１つの画像の中にオクルージョンされているキーポイントは、他の画像の中にはオクルージョンされていない場合がある。ＭＩモジュール１３０は、観察空間を空間的に再構築し、ＭＳ識別モジュールは、キーポイントをより正確に判断することができる。
【００３８】
一実施形態において、ＭＳ識別モジュール２２０は、ユーザ認識モデルを採用し、アクティブ領域におけるユーザを識別する。ユーザ認識モデルは、顔認識アルゴリズム、歩行認識アルゴリズム、筋骨格認識アルゴリズム、または同様のものであってよい。例えば、ＭＳ識別モジュール２２０は、ユーザの首、眼、および肩に対応するキーポイントのロケーションを識別する。ＭＳ識別モジュール２２０は、それらのキーポイントを囲むピクセルを顔認識アルゴリズムへと入力し、ユーザを識別する。ＭＳ識別モジュール２２０は、キーポイント、およびそのアクティブ領域における任意の判断された動作を識別されたユーザに関連付ける。
【００３９】
ＭＳ識別モジュール２２０は、識別されたキーポイント、および任意の識別されたユーザを含むデータ構造を出力する。ある例示において、ＭＳ識別モジュール２２０は、ロケーション、アクティブ領域、および領域ラベルを含むデータ構造を識別されたキーポイント、およびユーザを付加する。このデータ構造は、観察空間の高レベルな一時的なスナップショットである。ＭＩモジュール１３０は、活動領域の近くのユーザに関連付けるキーポイントを活用し、動作を識別する。例えば、ベンチプレスの近くのキーポイントを用いて、特定のユーザがウェイトを持ち上げることに対応する動作を識別することができる。
【００４０】
ＩＩＩ．Ｃ  動作の判断および記述的な分析
動作識別モジュール２３０は、観察空間における動作、およびその動作の記述的な分析を識別する。繰り返しとなるが、動作は、ユーザが観察空間で取り得る任意のアクション、動作、運動などであり、記述的な分析は、それらの動作を記述する導出可能な経験則である。上述のように、ＭＳ識別モジュール２２０は、観察システム１５０によって取得された画像を用いて観察空間におけるユーザのキーポイントを識別する。しかしながら、時間内の一瞬を表現する画像から動作を判断することは可能ではない。そのため、動作識別モジュール２３０は、観察システム１５０によって取得された観察空間の一連の画像を活用する。
【００４１】
システム環境１００内で、観察システム１５０は、継続的に画像（「画像ストリーム」）を取得する。つまり、画像ストリームには、観察空間の時間発展を表現する時間的に隣接する一連の画像を含む。領域識別モジュール２１０、およびＭＳ識別モジュール２２０は、画像ストリームを用いて、アクティブ領域、およびキーポイントをそれぞれ継続的に識別する。動作識別モジュール２３０は、画像ストリームの中のキーポイントにおける時間的変化を識別し、動作を判断する。
【００４２】
例示すると、例えば、観察空間におけるジャンピングジャックを実行しているユーザを考えてみる。観察システム１５０は、ユーザがジャンピングジャックを実行している間の時間ｔ0におけるユーザの画像を取得する。領域識別モジュール２１０は、ユーザがｔ0にて観察空間におけるアクティブ領域の中にいることを識別する。さらに、ＭＳ識別モジュール２２０は、ｔ0にてユーザの手を表現するキーポイントを識別する。観察システム１５０は、ユーザがジャンピングジャックを継続するにつれて、時間ｔ1にてユーザの画像を取得する。領域識別モジュール２１０は、ユーザがｔ1にて同じアクティブ領域の中にいることを識別する。ＭＳ識別モジュール２２０は、ユーザの手が時間ｔ1にて同じ領域の中にあることを表現するキーポイントを識別する。しかしながら、ユーザの手を表現するキーポイントは、時間ｔ1では時間ｔ0とは異なるピクセルとなる。プロセスは、同様に時間ｔ3，ｔ4，ｔ5，…，ｔnまで継続する。動作識別モジュール２３０は、ユーザの手を表現するキーポイントの時間発展を活用し、ユーザがジャンピングジャックを実行していることを判断する。
【００４３】
画像ストリームのそれぞれのフレームにおいて、キーポイント、およびアクティブ領域を識別することは、計算コストがかかる。したがって、場合によっては、ＭＩモジュール１３０は、あるアクションを実行して、識別速度、および性能を改善することができる。一実施形態において、領域識別モジュール２１０は、継続的というよりはむしろ、特定の間隔にてアクティブ領域を識別する。例えば、ジムのセッティングにおいて、アクティブ領域の多くは、比較的静止したままであり、アクティブ領域を継続的に識別する必要はない。したがって、領域識別モジュール２１０は、例えば、アクティブ領域のみを３０分毎に識別し、それに応じて、境界ボックス、アクティブ領域、および領域ラベルを含むデータ構造を更新する。一実施形態において、動作識別モジュール２３０は、画像ストリームにおける画像を時間的にフィルタリングすることができる。例えば、ＭＳ識別モジュール２２０は、３０ｍｓ毎に画像ストリームうちの１つの画像のみを分析することができる。同様に、ＭＳ識別モジュール２２０は、時間窓におけるすべての画像を用いることよりはむしろ、時間窓（例えば、１０ｍｓ）にわたって画像を時間的に補間することができる。
【００４４】
動作識別モジュール２３０は、動作モデルを採用し、観察空間における動作を判断する。ある例示において、動作モデルは、例えば、組換えニューラルネットワーク、または隠れマルコフモデルなどのシーケンス分類モデルであるが、他のタイプの分類モデルも可能となる。画像における動作を識別するために、動作識別モジュール２３０は、観察空間における特定のユーザの時系列のキーポイントにアクセスし、画像を動作モデルへと入力する。例えば、ＭＩモジュール１３０は、ユーザがジャンピングジャックを実行している間に、ユーザの手、肘、肩、腰、膝、および足を表現するキーポイントの時系列情報にアクセスする。動作識別モジュール２３０は、時系列を動作モデルへと入力し、動作識別モジュール２３０は、ユーザがジャンピングジャックを実行していることを識別する。より明確には、動作モデルは、それぞれのキーポイントに関連付けられた座標における潜在情報をジャンピングジャックの表現となるものとして識別する。つまり、例えば、２本の腕の反復的な弧を表現し、２本の脚の横方向の動作を表現するジャンピングジャックのキーポイントの座標がある。
【００４５】
ある実施形態において、動作識別モジュール２３０は、動作の記述的な分析を識別する。記述的な分析は、観察空間における識別された動作のよりロバストな記述である。例えば、動作識別モジュール２３０は、関節の角度、速度、加速度、力、および反復動作を計算するよう構成される動作モデルを採用することができる。例示すると、動作識別モジュール２３０は、経時的な手に関連付けられたキーポイントの空間の変化を分析することによって、アクセスされた画像におけるユーザの手の速度、および加速度を判断することができる。さらに、動作識別モジュール２３０は、関連するキーポイントの空間的表現に基づいて、ユーザの足首と、膝と、腰との間の角度を計算することができる。さらに、動作識別モジュール２３０は、動作の反復数を判断することが可能である。この場合において、動作モデルは、動作の反復に隠れた状態を識別するようトレーニングされた隠れマルコフモデル（「ＨＭＭ」）を含むことができる。例えば、ＨＭＭは、開始位置、求心性収縮、遠心性収縮、および終了位置を識別することによって、二頭筋カールの反復を識別することができる。さらに、動作識別モジュール２３０は、ユーザオブジェクトによって実行される力、またはオブジェクトに対して実行される力を識別することが可能である。例えば、ＭＩモジュール１３０は、スクワットの間にユーザがバーを持ち上げる力を計算することができる。この場合において、動作モデルは、画像におけるユーザ、またはオブジェクトの重量を識別するよう分類モデルを含むことができる。例示すると、動作識別モデルは、ユーザが三頭筋の反動を実行するために用いられるダンベルの重量を識別することが可能である。動作識別モデルが力を計算するよう構成されている例示において、動作モデルは、画像における質量を識別するよう構成されている。例えば、動作識別モジュール２３０は、さまざまな機械学習アルゴリズムを用いて、ベンチプレスにおける重量、ダンベルの重量などを識別することができる。
【００４６】
上述のように、ある例示において、アクセスされた画像全体を分析することによって、観察空間における動作（および記述的な動作分析）を識別することは、計算コストがかかる。したがって、一実施形態において、動作識別モジュール２３０は、アクティブキーポイントを用いて動作を識別する。すなわち、動作識別モジュール２３０は、アクティブ領域においてロケーションされるユーザのキーポイントを用いて動作を識別する。例えば、ユーザがベンチプレスに近づき、重量挙げを開始する。動作識別モジュール２３０は、ユーザのキーポイントがアクティブキーポイントであることを識別し、動作識別モジュール２３０は、アクティブキーポイントを用いて、ユーザの動作を識別する。つまり、ユーザのキーポイントがアクティブ領域と重なる場合に、動作の識別が発生する。
【００４７】
さらに、動作識別モジュール２３０は、さまざまな条件に基づいてアクティブ領域における動作を識別するよう作動させることができる。つまり、計算要件を低減すべく、動作識別モジュール２３０は、他の状況ではなく、ある状況において、動作、または動作のタイプを識別するよう作動させる。例えば、一実施形態において、動作識別モジュール２３０は、アクティブ領域のラベルに基づいてアクティブ領域の動作を識別する。例示すると、動作識別モジュール２３０は、スクワットラックであるアクティブ領域のスクワットとしての動作を識別することができるが、同じアクティブ領域における二頭筋カールの動作は、識別しない。一実施形態において、例えば、動作識別モジュール２３０は、アクティブキーポイントの閾値の数が識別された場合に、アクティブ領域における動作を識別する。例示すると、動作識別モジュール２３０は、２つのアクティブキーポイントのみが識別され、アクティブキーポイントの閾値の数が１０である場合に、トレッドミルであるアクティブ領域における動作を識別しない場合がある。一実施形態において、例えば、動作識別モジュール２３０は、適切なアクティブキーポイントがアクティブ領域において存在する場合に、アクティブ領域における動作を識別する。例示すると、動作識別モジュール２３０は、適切なアクティブキーポイントがベンチプレスであるアクティブ領域（例えば、肩、手、頭、胴体など）において存在する場合に、ベンチプレスである動作を識別する。しかしながら、動作識別モジュール２３０は、不適切なキーポイントがアクティブ領域（例えば、足、膝、足首など）において存在する場合に、ベンチプレスを識別しない。
【００４８】
動作識別モジュール２３０は、識別された動作および記述的な動作分析を含むデータ構造を出力する。ある例示において、動作識別モジュール２３０は、ロケーション、アクティブ領域、領域ラベル、キーポイント、および識別された動作と記述的な動作分析とを有するユーザを含むデータ構造を付加する。このようにして、データ構造は、観察空間内のさまざまなアクティブ領域において発生しているスナップショットを表現する。
【００４９】
ある例示において、ユーザによって取られた動作の動作および記述的な動作分析は、データストア２６０の中に格納されたユーザのプロファイルに格納されることができる。したがって、ＭＩモジュール１３０は、ユーザの動作概要を生成することが可能である。動作概要は、観察空間内のユーザの動作に関する情報を含む。動作識別モジュール２３０は、他のさまざまな経験則を算定することができ、動作概要の中に含む。例えば、動作識別モジュール２３０は、動作の範囲の変化、抵抗の増加、反復の変化などを含むことが可能である。ＭＩモジュール１３０は、クライアントシステム１１０に表示するために、動作概要をＰＭＡ１１２へ伝送することができる。動作概要をクライアントシステム１１０に提供することが、ユーザに彼らの動作、および彼らの動作への変化について通知を受けさせることを可能とする。
【００５０】
ある場合において、動作識別モジュール２３０は、識別されたキーポイントの同様の経験則を算定し、経験則は、動作を識別することに用いることができる。ここで、動作識別モジュール２３０は、経験則、およびキーポイントを動作モデルへと入力し、動作を識別する。例えば、動作識別モジュール２３０は、アクティブ領域における動作を実行するユーザの足首と、膝と、肘との間の角度を計算する。動作識別モデルは、角度の反復的な変化に対して、部分的に、スクワットをする予定としての動作を識別する。
【００５１】
ＩＩＩ．Ｄ  動作の分析の判断
規範的な分析モジュール２４０は、観察空間における識別された動作の規範的な分析を生成する。規範的な分析は、ユーザが現在および／または将来の動作を通知するために利用することができる分析である。例示として、規範的な分析は、動作フォームの分析、過度および／または過少の運動、傷害の防止、休息の統計データ、ならびに運動の奨励を含むことが可能である。
【００５２】
規範的な分析モジュール２４０は、分析モデルを採用し、観察空間において実行される動作の規範的な分析を判断する。一例において、分析モデルは、例えば、動作予測用に構成される回帰モデルなどの機械学習モデルであるが、逆強化学習モデルなどの他のタイプのモデルも可能となる。規範的な分析を生成するために、規範的な分析モジュール２４０は、動作、およびその関連する説明的な分析にアクセスし、動作、および説明的な分析を分析モジュールへと入力する。例えば、規範的な分析モジュール２４０は、トレッドミルのアクティブ領域における識別された走る動作にアクセスする。また、規範的なモジュール２４０は、走る動作に対して記述的な分析にアクセスする。記述的な分析は、ユーザが走っている速度、ユーザが走り終わった距離、ユーザの脚の動作範囲、およびユーザの腕の動作範囲を含む。規範的な分析モジュール２４０は、動作、および記述的な分析を分析モデルへと入力し、規範的な動作識別モジュール２３０は、ユーザが彼らの腕の均一な動作に集中すべきであることを示す規範的な分析を生成する。より明確には、分析モデルは、パフォーマンスが低下した走りに関連付けられたランニングの間に、ユーザの腕の動作の範囲における潜在的な情報を識別する。例えば、走ることのパフォーマンスの向上は、動作範囲が５０度に関連付けられているが、動作範囲は１５度である。それに応答して、規範的な分析モジュール２４０は、走っている間の腕の動作範囲を増加させるための規範的な分析を生成する。
【００５３】
規範的な分析を生成するために他の例示は、可能である。一実施形態において、規範的な分析モジュール２４０は、動作におけるフォームを識別するよう構成される分析モデルを採用する。フォームは、動作の質の指標であり、高品質のフォームは、一般的に正しい動作を示し、低品質のフォームは、一般的に正しくない動作を示す。例えば、スクワットの動作を実行している場合に、高品質のフォームを実現することは、例えば、（ｉ）腰、足首、および膝を正しい位置合わせにするキーポイント、（ｉｉ）動作の閾値範囲を超える動作の範囲、（ｉｉｉ）まっすぐな脊椎を表現するキーポイント、および（ｉｖ）ユーザによってバーに加えられた安定した上向きの力など記述的な分析の特定のセットを含む。規範的な分析モジュール２４０は、記述的な分析を分析モデルへと入力し、規範的な分析モジュール２４０は、規範的な分析を生成する。一例として、規範的な分析モジュール２４０は、スクワットの底で胸を持ち上げたままにすることをユーザに推奨する規範的な分析を生成する。ここでの規範的な分析は、例示として提供される。他のタイプの規範的な分析も可能となる。以下にいくつか説明されるが、限定することを意図したものではない。
【００５４】
一実施形態において、規範的な分析モジュール２４０は、動作における運動の過大および／または過少を識別するよう構成される分析モデルを採用する。過度の運動を含む動作は、疲労および／または危険な動作に対応する動作を含む。例えば、走る動作を実行している場合に、過度の運動は、例えば、（ｉ）歩行の不規則性、（ｉｉ）動作範囲の低減、（ｉｉｉ）閾値の距離を超える距離、および（ｉｖ）トレッドミルのユーザの足による力の低減（つまり、引きずり）などの記述的な分析の特定のセットに関連付けることができる。規範的な分析モジュール２４０は、記述的な分析を分析モデルへと入力し、規範的な分析モジュール２４０は、規範的な分析を生成する。例示として、規範的な分析モジュール２４０は、過度に疲労して見えるため、走ることを中断するようユーザに推奨する規範的な分析を生成する。過少の運動に対しては、同様の例示が可能である。簡単な例として、規範的な分析モジュール２４０は、パフォーマンスを向上させるべく、ショルダープレスの間に、重量を増加させることの規範的な分析を生成する。過少の運動および／または過度の運動の他の例示は、可能である。
【００５５】
一実施形態において、規範的な分析モジュール２４０は、ユーザの以前のパフォーマンスに基づいて、規範的な分析を生成するよう構成される分析モデルを採用する。例えば、前述のように、観察空間において動作を実行した場合に、それぞれのユーザの動作概要が生成される。規範的な分析モジュール２４０は、前述の動作概要を分析モデルへと入力し、規範的な分析モジュール２４０は、規範的な分析を生成する。規範的な分析モジュール２４０は、その動作のそれらの過去のパフォーマンスと関連するそれらの現在のパフォーマンスを示す規範的な分析を生成する。例示として、規範的な分析は、ユーザが走っている間に、同様の距離で先週より１０％遅く走っていることを示すことが可能である。ある場合において、規範的な分析が他のユーザの過去のパフォーマンスと比較することができる。例えば、規範的な分析は、ユーザが同じ年齢および性別群の他のユーザより平均で１５ポンド多く持ち上げていることを示すことができる。
【００５６】
一実施形態において、規範的な分析モジュール２４０は、損傷防止についてユーザに通知するよう構成される分析モデルを採用する。この場合において、規範的な分析モデルは、本明細書で説明されるアルゴリズムのいずれかを利用することが可能であり、動作が傷害を示しているかを判断する。例えば、規範的な分析モジュール２４０は、動作、および記述的な分析を分析モデルへと入力する。規範的な分析モジュール２４０は、ユーザが疲労しており、動作において悪いフォームを用いていると判断する。したがって、規範的な分析モジュール２４０は、それらの現在の傷害の可能性が傷害の可能性の閾値を超えているため、ユーザにトレーニングを中断するよう奨励する規範的な分析を生成する。
【００５７】
規範的な分析モジュール２４０は、さまざまな方法を用いてトレーニングすることが可能である。一実施形態において、規範的な分析モジュール２４０は、専門家によって実行された場合に、記録された動作（「専門家の動作」）を用いてトレーニングされる。この場合において、規範的な分析モジュール２４０は、専門家の動作の分析（「専門家の分析」）を判断し、専門家の分析を任意の識別された動作とそれらの分析とを比較する。例えば、認定された個人トレーナーが、観察空間内のスクワットラックのアクティブエリアにおいてスクワット動作を実行している。ＭＩモジュール１３０は、動作を識別し、その動作の分析を判断する。ユーザ（または管理者、または他のエンティティ）は、識別された動作を専門家の動作として分類することによって、判断された分析が専門家の分析としてラベル付けされる。続いて、観察空間におけるユーザは、スクワットラックのアクティブエリアでスクワット動作を実行する。規範的な分析モジュール２４０は、識別された動作の分析を専門家の分析と比較することによって、ユーザの規範的な分析を生成する。
【００５８】
同様の実施形態において、ある動作、およびそれらに関連する分析は、傷害を引き起こすか、または傷害に関連付けられるものとして識別されることができる（「問題分析」）。これらの場合において、規範的な分析モジュール２４０は、識別された動作、および分析を問題分析と比較し、規範的な分析を生成する。さらに、ある実施形態において、分析モデルは、傷害防止に関してユーザに通知するよう構成される。この場合において、規範的な分析モデルは、本明細書で説明されるアルゴリズムのいずれかを利用することが可能であり、動作が傷害を示しているかを判断する。例えば、規範的な分析モジュール２４０は、動作、および記述的な分析を分析モデルへと入力する。規範的な分析モジュール２４０は、ユーザが疲労しており、動作において悪いフォームを用いていると判断する。したがって、規範的な分析モジュール２４０は、それらの現在の傷害の可能性が傷害の可能性の閾値を超えているため、ユーザにトレーニングを中断するよう奨励する規範的な分析を生成する。
【００５９】
ある例示において、動作の規範的な分析は、動作概要の一部として動作を実行したユーザのプロファイルに格納される。さらに、ＭＩモジュール１３０は、クライアントシステム１１０に表示するために、規範的な分析を規範的な動作アプリケーションへ伝送することができる。規範的な分析をクライアントシステム１１０に提供することは、有益である場合がある動作の変更のためにユーザに通知する。
【００６０】
ＩＩＩ．Ｅ  三次元の識別
以前の説明は、ＭＩモジュール１３０が動作を識別すること、および単一の画像を用いて分析を生成することを説明しているが、ＭＩモジュール１３０は、また、画像バッチにおける画像を用いて動作、および分析を識別するよう構成される。詳しく述べると、観察システム１５０は、観察空間の複数の画像１５２を取得する。それぞれの画像は、画像を取得したキャプチャデバイスの構成に応じて、異なる画像特性を持つ場合がある。さまざまな画像は、全体として、観察空間におけるユーザ、アクティブ領域および／または動作（全体として「項目」）を識別するために用いられる情報を含むことができる。ある実施形態において、ＭＩモジュール１３０は、画像バッチにおける２次元画像を用いて、３次元空間における観察空間の単一の表現（「領域マップ」）を生成することができる。
【００６１】
マップ生成モジュール２５０は、観察空間の領域マップを生成する。マップ生成モジュール２５０は、観察システム１５０から受信した画像から画像を入力し、領域マップを出力する。一実施形態において、領域マップは、画像の二次元空間というよりはむしろ、三次元空間におけるロケーション、アクティブ領域、ラベル、キーポイント、動作、および記述的な分析を記述するデータ構造である。例えば、ロケーションがピクセルの二次元配列によって表現されているというよりはむしろ、ロケーションは、ボクセルの三次元配列（すなわち、領域ピクセル）によって表現される。さらに、それぞれのキーポイントは、２次元座標というよりはむしろ、３次元座標に関連付けることができる。
【００６２】
マップ生成モジュール２５０は、画像バッチの画像の中の情報を領域マップにマッピングすることによって、領域マップを生成する。２次元画像のグループから３次元の領域を再構成するために多くの方法がある。ある例示において、マップ生成モジュール２５０は、第１の視野を有する画像バッチの中の第１の画像、および第２の視野を有する画像バッチの中の第２の画像にアクセスすることができる。追加、または同様の視野を有するより多くの画像も可能となる。マップ生成モジュール２５０は、画像に１つまたは複数の変換機能を適用する。変換機能は、２次元画像から領域マップに情報をマッピングする。さまざまな周知の多視点幾何変換機能が可能である。一般に、本明細書で説明されるように、変換機能は、観察システム１５０の構成に基づいて較正される。ある場合において、マップ生成モジュール２５０は、観察システム１５０が単一のキャプチャデバイスを含む場合に、深度推定モデルを採用し、深度情報を判断する。深度推定モデルは、画像における深度を推定するよう構成される機械学習モデルである。
【００６３】
マップ生成モジュール２５０は、領域マップを生成する場合に、ラベル付けされたロケーション、アクティブ領域、およびキーポイントを利用する。例えば、領域識別モジュールは、第１のアクティブ領域の第１のロケーションが画像バッチの複数の画像の中にあることを識別する。マップ生成モジュール２５０は、第１のロケーション、および第１のアクティブ領域を含む画像のピクセルの変換機能を用いて、領域マップにおける第１のロケーション、および第１のアクティブ領域の３次元の表現を生成する。同様のプロセスは、観察空間において識別されたすべてのロケーション、アクティブ領域、およびキーポイントに対して発生する。
【００６４】
マップ生成モジュール２５０は、特定の構成に基づいた、画像バッチを取得する観察システム１５０の構成である変換機能を用いて、画像バッチにおける識別された項目を領域マップに正確にマッピングする。例えば、異なる観察空間を観察するよう構成される観察システム１５０のキャプチャデバイスは、異なる構成を有することができる。例示すると、第１の観察空間は、家の中の部屋であってよく、一方で、第２の観察空間は、商業的なフィットネスセンターの中のウェイトルームであってよい。単一のビデオカメラを含む第１の観察システム１５０は、第１の観察空間を観察するよう構成され、１０台を超えるビデオカメラを含む第２の観察システム１５０は、第２の観察空間を観察するよう構成される。他の観察空間、および観察システム１５０も可能となる。単一のビデオフィードを領域マップにマッピングする変換機能、および１０個のビデオフィードを領域マップにマッピングする変換機能は、異なる。
【００６５】
マップ生成モジュール２５０は、領域マップを生成した場合に、異なる観察空間および／または観察システム１５０の構成に適合する変換機能を判断（または修正、またはアクセス）するよう構成される。第１の例示において、データストア２６０は、観察システム１５０の特定の構成に関連付けられるそれぞれの変換機能を有する変換機能のセットを含む。マップ生成モジュール２５０は、特定の構成を有する観察システム１５０から受信した画像を用いて領域マップを生成した場合に、データストア２６０から適切な変換機能にアクセスする。第２の例示において、マップ生成モジュール２５０は、構成オペレーションを実行する。構成オペレーションの間に、ユーザは、１つまたは複数の構成オブジェクトを観察空間内に配置する。キャプチャデバイスは、構成オブジェクトの画像をキャプチャする。画像の中の構成オブジェクトのロケーションに基づいて、マップ生成モジュール２５０は、観察システム１５０によって取得された画像を用いて、１つまたは複数の変換機能を判断し、領域マップを生成する。第３の例示において、マップ生成モジュール２５０は、ユーザから観察システム１５０の構成を受信し、その構成に基づいて変換機能を生成する。つまり、マップ生成モジュール２５０は、観察システム１５０におけるそれぞれのキャプチャデバイスの座標をユーザから受信することができる。マップ生成モジュール２５０は、座標を用いて１つまたは複数の変換機能を生成する。いずれの場合においても、マップ生成モジュール２５０は、観察空間の領域マップを正確に生成する画像バッチの画像に１つまたは複数の変換機能を適用するよう構成されている。
【００６６】
上述の画像ストリームにおける画像と同様に、マップ生成モジュール２５０は、観察ストリームにおける領域マップを生成する。つまり、マップ生成モジュール２５０は、三次元空間における観察空間の時間的に連続したスナップショットを表現する領域マップを継続的に生成する。観察ストリームの領域マップを生成した場合に、マップ生成モジュール２５０は、略同時に得られた画像バッチにおける画像をマッピングする。画像バッチにおける画像を時間的にグループ化する他の方法も可能となる。
【００６７】
また、動作識別モジュール２３０の動作モデル、および規範的な分析モジュール２４０の分析モデルは、３次元において動作するよう構成される。例えば、動作識別モジュール２３０は、３次元のアクティブキーポイント入力を動作モデルへと入力し、動作識別モデルは、アクティブ領域におけるその動作の動作、および動作分析を識別する。同様に、規範的な分析モジュール２４０は、動作、および３次元の記述的な分析を分析モデルへと入力し、規範的な分析モジュール２４０は、３次元空間における動作を反映する規範的な分析を生成する。
【００６８】
一実施形態において、領域マップは、観察空間を表現するボクセルの配列である。つまり、領域マップにおけるそれぞれのボクセルは、観察エリアのサブ領域を表現することによって、ボクセルのグループにより表現されるそのサブ領域が全体として、観察空間を近似する。この例示において、それぞれのボクセルは、ＭＩモジュール１３０によって識別されたさまざまな項目に関連付けられている。例えば、ボクセルデータは、ロケーション、アクティブ領域、キーポイント、ユーザ、または動作を表現する。さらに、また、それぞれのボクセルは、そのボクセルの情報のセットを含むことができる。例えば、ボクセルは、座標、ボクセル値、ボクセルを生成することに用いられた画像が取得された場合に関連付けられた時間などを含む。
【００６９】
マップ生成モジュール２５０は、クライアントシステム１１０のユーザに表示するために、観察空間内の項目の視覚化を３次元で生成することができる。これにより、それらの動作を実行した後に、ユーザは、それらを視覚化することが可能である。さらに、視覚化は、管理者によってアクセスされ、よくあるオクルージョンの領域、複数のユーザの密集の発生、および使用頻度の高いアクティブ領域を識別することができる。
【００７０】
マップ生成モジュール２５０は、２次元および／または３次元における項目の座標系を生成する。例えば、マップ生成モジュール２５０は、画像（例えば、１つまたは複数の較正画像）を取得するために用いられるキャプチャシステムの較正プロセスに基づいたピクセルに、ピクセル当たりメートル単位の座標系を割り当てる。別の例示において、入力が単位のない座標系にある場合に、本明細書に説明されるモデルのうちのいくつかの精度が向上するため、マップ生成モジュール２５０は、単位のない座標系を領域マップにおける項目に割り当てる。
【００７１】
ＩＶ．  動作の検出および分析方法
本明細書で説明されるように、ネットワークシステム１２０のＭＩモジュール１３０は、動作を識別し、その動作の規範的な分析を生成する。例示的な一実施形態によって、図３は、動作を識別し、その動作の規範的な分析を生成する方法のフローチャートを図示する。方法３００は、明確さを提供するために図４Ａ〜図４Ｄを参照して説明されることとなる。さまざまな実施形態において、方法３００は、追加、またはより少ないステップを含むことが可能であり、および／またはステップは別の順序で発生することができる。
【００７２】
例示的な方法３００において、環境１００は、観察空間におけるＩＭＡ１１２を含むクライアントシステム１１０を操作するユーザを含む。環境１００は、観察空間の画像バッチを取得するよう構成されるキャプチャデバイスの配列を含む観察システム１５０を含む。ここで、観察空間は、トレッドミルマシン、およびショルダープレスマシンの２つのアクティブ領域を含むジムである。
【００７３】
観察システム１５０は、観察空間の画像ストリームを取得する。画像ストリームは、一連の画像バッチを含み、ストリームにおけるそれぞれの画像バッチは、略同時に取得した観察空間の画像を含む。ＭＩモジュール１３０は、ネットワーク１４０を介して観察システム１５０からの画像ストリームにアクセスする（３１０）。画像ストリームにおけるそれぞれの画像は、複数のピクセルが含み、それぞれのピクセルは、情報のセットに関連付けられている。情報のセットは、例えば、ピクセル値、画像の中のピクセルの座標、および画像が観察システム１５０によって取得された時間を含む。
【００７４】
例示すると、例示的な一実施形態によって、図４Ａは、画像ストリームからの画像の表現である。画像４００は、観察システム１５０によって画像の中にキャプチャされた観察空間の一部を表現する。画像ストリームにおける他の画像は、異なる視点を持つことができる。画像４００は、観察空間内のトレッドミルマシン４０２、ショルダープレスマシン４０４、およびユーザ４０６を表現するピクセルのグループを含む。また、画像は、観察空間内のトレッドミルマシン４０２、ショルダープレスマシン４０４、およびユーザ４０６を囲む空間を表現するピクセルである。
【００７５】
図３に戻ると、ＭＩモジュール１３０は、観察空間の画像内のアクティブ領域のロケーションを識別する（３２０）。アクティブ領域のロケーションを識別するために、ＭＩモジュール１３０は、ピクセルセグメンテーションのために構成される畳み込みニューラルネットワークを実装する領域識別モデルを採用する。ＭＩモジュール１３０は、画像におけるピクセルの情報のセットの中の潜在情報を分析し、どのピクセルが動作領域に対応するかを識別する。ＭＩモジュール１３０は、それに応じて、動作領域に対応するピクセルにラベル付けをする。ＭＩモジュール１３０は、境界ボックスを生成することによって、アクティブ領域のロケーションを判断する。境界ボックスは、動作領域を囲むピクセルのグループを含む。ＭＩモジュール１３０は、境界ボックス内のピクセルに凸包アルゴリズムを適用し、アクティブ領域を識別する。アクティブ領域は、動作領域を表現するピクセルのグループ、および動作領域を囲むピクセルのグループを含む。アクティブ領域は、ＭＩモジュール１３０がアクティブ領域内の動作を判断することを可能とするロケーションにピクセルの最小の数を含む。
【００７６】
例示すると、例示的な一実施形態によって、図４Ｂは、識別されたアクティブ領域のロケーションを含む画像ストリームからの画像の表現である。画像４００は、第１のアクティブ領域４２２を含むロケーション４１２を含む。第１のロケーション４１２、および第１のアクティブ領域は、トレッドミルマシン４０２を囲む。また、画像は、第２のアクティブ領域４２４を含む第２のロケーション４１４を含む。第２のロケーション４１４、および第２のアクティブ領域４２４は、ショルダープレスマシン４０４を囲む。第１のロケーション４１２、および第２のロケーション４１４は、長方形の境界ボックスとして図示されているが、他の形状である場合がある。第１のアクティブ領域４２２、および第２のアクティブ領域４２４は、それぞれ六角形、および五角形として図示されているが、他の形状である場合がある。
【００７７】
図３に戻ると、ＭＩモジュール１３０は、画像の中のユーザの筋骨格のキーポイントを識別する。一実施形態において、ＭＩモジュール１３０は、アクティブ領域を含むロケーションにおいてユーザのキーポイントが配置されている場合に、ユーザのキーポイントを識別する。つまり、ＭＩモジュール１３０は、ユーザを表現するピクセルがアクティブ領域を含むロケーションを表現するピクセルに重なる場合に、ユーザのキーポイントを識別する。キーポイントを識別するために、ＭＩモジュール１３０は、キーポイントを識別するように構成される畳み込みニューラルネットワークを実装するキーポイント識別モデルを採用する。ＭＩモジュール１３０は、ロケーションにおけるピクセルの情報のセットの中の潜在情報を分析し、どのピクセルが異なるキーポイントに対応するかを識別する。
【００７８】
例示的な一実施形態によって、図４Ｃは、ロケーションにおけるユーザのキーポイントを含むロケーションの表現である。ここで、ロケーション４１４は、ショルダープレスマシン４０４を囲む図４Ｂで識別されたロケーション４１４である。しかしながら、この例示において、ユーザ４０６がショルダープレスマシン４０４の近くで動作し、ここで、ユーザの体の一部がロケーション４１４に重なるピクセルとして表現される。また、この図は、ＭＩモジュール１３０によって識別されたキーポイント４３０の視覚的表現を含む。この例示において、いくつかのキーポイント４３０のみがアクティブ領域４２４に重なっている。
【００７９】
図２に戻ると、ＭＩモジュール１３０は、ユーザがアクティブ領域に入ったと判断する（３３０）。上述のように、ＭＩモジュール１３０は、さまざまな方法を採用し、ユーザがアクティブ領域に入った場合を判断することが可能である。特定の例示において、ＭＩモジュール１３０は、ロケーションにおけるキーポイントの閾値の数がアクティブ領域内にある場合に、ユーザがアクティブ領域に入ったと判断する。つまり、ＭＩモジュール１３０は、ユーザを表現する十分な数のキーポイントがアクティブ領域を表すピクセルに重なる場合に、ユーザがアクティブ領域に入ったと識別する。さらに、ＭＩモジュール１３０は、顔認識アルゴリズム、または本明細書に説明されている他の識別アルゴリズムのうちのいずれかを用いて、アクティブエリアの中で使用しているユーザを識別する。
【００８０】
例示すると、例示的な一実施形態によって、図４Ｄは、アクティブ領域におけるユーザのキーポイントを含むロケーションの表現である。繰り返しとなるが、ロケーション４１４は、ショルダープレスマシン４０４を囲む図４Ｂで識別されたロケーション４１４である。この例示において、ユーザ４０６がショルダープレスマシン４０４の上で動作し、ここで、ユーザの体のかなりの部分がアクティブ領域４２４に重なるピクセルとして表現される。この例示は、ＭＩモジュール１３０によって識別されたキーポイント４３０の視覚的表現を含む。
【００８１】
図２に戻ると、ＭＩモジュール１３０は、アクティブ領域におけるユーザの動作を判断する（３４０）。アクティブ領域の動作を識別するために、ＭＩモジュール１３０は、ユーザの動きを識別するよう構成される隠しマルコフモデルを実装する動作識別モデルを採用する。ＭＩモジュール１３０は、アクティブ領域におけるキーポイントの時間発展での潜在情報を分析し、アクティブ領域における動作を識別する。つまり、ＭＩモジュール１３０は、ユーザのキーポイントを表現するアクティブ領域におけるピクセルの時間発展を分析し、動作を識別する。
【００８２】
例示すると、例示的な一実施形態によって、図４Ｅは、アクティブ領域におけるユーザのキーポイントを含むロケーションのさらなる表現である。繰り返しとなるが、ロケーション４１４は、ショルダープレスマシン４０４を囲む図４Ｂで識別されたロケーション４１４である。しかしながら、この例示において、ユーザ４０６は、腕を伸ばし、ショルダープレスマシン４０４の上でショルダープレスを実行する。この例示において、ＭＩモジュール１３０によって識別されたキーポイント４３０の視覚的表現を含む。動作を示すキーポイントの時間的変化を視覚化するために、図４Ｄと図４Ｅとの間のユーザの腕を表現するキーポイント４３０における違いに注目する。
【００８３】
ＭＩモジュール１３０は、動作の記述的な分析を判断する。記述的な分析は、上述のように動作のよりロバストな説明を提供する任意の情報である。記述的な分析を判断するために、ＭＩモジュール１３０は、記述的な分析を判断するよう構成される動作検出モデルを採用する。ＭＩモジュール１３０は、アクティブ領域内のキーポイントのロケーション、相対的なロケーション、およびロケーションの変化を用いて記述的な分析を計算する。
【００８４】
同様に、ＭＩモジュール１３０は、動作の規範的な分析を判断する（３５０）。規範的な分析は、ユーザが将来、または現在の動作を通知するために用いることができる情報である。規範的な分析を判断するために、ＭＩモジュール１３０は、規範的な分析を生成するよう構成される分析生成モデルを採用する。ＭＩモジュール１３０は、識別された動作、および動作の記述的な分析を用いて規範的な分析を生成する。
【００８５】
ＭＩモジュール１３０は、動作の動作概要を生成する。動作概要は、識別された動作、および判断された分析を含む。動作概要は、クライアントシステム１１０のＰＭＡに表示されるよう構成される。ＭＩモジュール１３０は、動作概要をデータストア２６０に格納し、および／または動作概要をネットワーク１４０を介してクライアントシステム１１０へ伝送することができる。
【００８６】
例示的な一実施形態によって、図４Ｆは、動作概要の例示的に視覚化されたものを図示する。視覚化４５０は、ＩＭＡ１１２を実行するクライアントシステム１１０上に表示することができる。動作概要は、ショルダープレスの反復数、キーポイントのロケーション、およびアクティブ領域におけるキーポイントの時間発展の表現を含む。時間発展の正弦波表現は、ショルダープレスの均一の反復の上下運動を示す。
【００８７】
特に、ＭＩモジュール１３０は、図示された２次元表現というよりはむしろ、観察空間の３次元表現を用いて、前述の方法３００のうちのいずれかを実行することが可能である。ＭＩモジュール１３０は、本明細書で説明されるようにさまざまな変換機能を用いて３次元表現を生成する。
【００８８】
図５〜図７は、観察空間におけるアクティブ領域を含むロケーションを識別し、アクティブ領域におけるユーザのキーポイントを識別し、そして識別されたキーポイントを用いて、アクティブ領域における動作を識別するＩＭモジュール３３０の例示を図示する。図５Ａ、図６Ａ、および図７Ａは、図４Ｅと同様の例示を図示する。つまり、これらの図面は、ユーザがアクティブ領域において動作を実行している観察空間におけるロケーションを取得している画像である。図５Ａ、図６Ａ、および図７Ａ内において、アクティブ領域におけるキーポイントは、小さいドットおよび／または小さいポリゴンで表現されている。キーポイントが小さいドットとして表現される場合において、キーポイントは、それらのピクセルへローカライズされる。キーポイントがポリゴンとして表現される場合において、キーポイントは、ポリゴンの対向する端部にロケーションされる。図５Ｂ、図６Ｂ、および図７Ｂは、図４Ｆと同様の例示を図示する。つまり、これらの図面は、クライアントシステム１１０のＩＭＡ１１２上に表示される動作概要の視覚化である。
【００８９】
例示的な一実施形態によって、図５Ａは、ショルダーローの動作を識別することに用いられるショルダーローマシンのアクティブ領域におけるキーポイントの表現である。例示的な一実施形態によって、図５Ｂは、ショルダーローの動作の動作概要の表現である。例示的な一実施形態によって、図６Ａは、走っている動作を識別することに用いられるトレッドミルのアクティブ領域におけるキーポイントの表現である。例示的な一実施形態によって、図６Ｂは、走っている動作の動作概要の表現である。最後に、例示的な一実施形態によって、図７Ａは、二頭筋カールの動作を識別するために用いられる二頭筋カール空間のアクティブ領域におけるキーポイントの表現である。例示的な一実施形態によって、図７Ｂは、二頭筋カールの動作の動作概要の表現である。
【００９０】
Ｖ．  さらなる操作上の管理体制
重要なことに、本明細書で説明される方法、およびシステムは、他のシステム環境、および観察空間に適用することができる。特定の例示において、観察空間は、複数の従業員を含む倉庫である。それぞれの従業員は、倉庫の中を移動し、商品の注文を完了するとクライアントデバイスを操作する。商品の注文を完了させる間に、従業員は、しゃがむこと、持ち上げること、押すことなどのさまざまな動作を実行する。この例示において、倉庫は、倉庫における従業員の画像を取得するよう観察システム１５０で構成されている。ネットワークシステム１２０は、従業員の動きを識別し、それらの動きの分析を生成する。分析は、従業員および／または監督者にリアルタイムで提供することができる。
【００９１】
より一般的には、本明細書で説明されるシステム、および方法は、ユーザが動作を実行することができる広範でさまざまな観察空間に適用することが可能である。ある例示は、アスリートのトレーニングおよび傷害の防止のスポーツおよびアスリート分析、ならびに高齢者の病気の検出および転倒防止の歩行分析を含む。
【００９２】
ＶＩ．  例示のコンピュータシステム
例示的な一実施形態によって、図８は、機械可読媒体から命令を読み取り、実行する例示的な機械の構成要素を図示するブロック図である。具体的には、図８は、コンピュータシステム８００の例示的なフォームにおけるネットワークシステム１２０、およびクライアントシステム１１０の図表示を示す。コンピュータシステム８００は、機械に本明細書に説明される方法論（またはプロセス）のうちのいずれか１つまたは複数を実行させるための命令８２４（例えば、プログラムコード、またはソフトウェア）を実行するために用いることが可能である。代替の実施形態において、機械は、スタンドアロンデバイス、または他の機械に接続する接続された（例えば、ネットワーク化された）デバイスとして動作する。ネットワーク化された展開において、機械は、サーバークライアントネットワーク環境におけるサーバーマシンもしくはクライアントマシンの能力、またはピアツーピア（もしくは分散）ネットワーク環境のおけるピアマシンとして動作することができる。
【００９３】
機械は、サーバーコンピュータ、クライアントコンピュータ、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、セットトップボックス（ＳＴＢ）、スマートフォン、モノのインターネット（ＩｏＴ）機器、ネットワークルーター、スイッチもしくはブリッジ、またはその機械によって実行されるアクションを指定する命令８２４（シーケンシャル、またはその他）を実行することができる任意の機械であってよい。さらに、単一の機械のみが図示されているが、また「機械」という用語は、本明細書で論じられる方法論のうちのいずれか１つまたは複数を実行する命令８２４を個別または共同で実行する任意の機械の集合を含んでよい。
【００９４】
例示的なコンピュータシステム８００は、１つまたは複数の処理ユニット（一般的にプロセッサ８０２）を含む。プロセッサ８０２は、例えば、中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、コントローラ、状態機械、１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）、１つまたは複数の無線周波数集積回路（ＲＦＩＣ）、またはこれらの任意の組み合わせである。また、コンピュータシステム８００は、メインメモリ８０４を含む。コンピュータシステムは、記憶ユニット８１６を含むことができる。プロセッサ８０２、メモリ８０４、および記憶ユニット８１６は、バス８０８を介して通信する。
【００９５】
さらに、コンピュータシステム８０６は、スタティックメモリ８０６、グラフィックディスプレイ８１０（例えば、プラズマディスプレイパネル（ＰＤＰ）、液晶ディスプレイ（ＬＣＤ）、またはプロジェクタを駆動するために）を含むことが可能である。また、コンピュータシステム８００は、英数字入力デバイス８１２（例えば、キーボード）、カーソル制御デバイス８１４（例えば、マウス、トラックボール、ジョイスティック、動作センサー、または他のポインティング機器）、信号生成デバイス８１８（例えば、スピーカー）、および、また、バス８０８を介して通信するよう構成されるネットワークインターフェースデバイス８２０を含むことができる。
【００９６】
記憶ユニット８１６は、本明細書で説明される方法論または機能のうちの任意の１つまたは複数を具現化する命令８２４（例えば、ソフトウェア）が格納される機械可読媒体８２２を含む。例えば、命令８２４は、図２において描写されるネットワークシステム１２０のモジュールの機能を含むことができる。また、命令８２４は、コンピュータシステム８００によるその実行の間に、完全に、または少なくとも部分的に、メインメモリ８０４、またはプロセッサ８０２内（例えば、プロセッサのキャッシュメモリ内）に存在する場合があり、また、メインメモリ８０４、およびプロセッサ８０２は、機械可読メディアを構成する。命令８２４は、ネットワークインターフェースデバイス８２０を介して、ネットワーク８２６を越えて伝送、または受信することができる。
【００９７】
Ｘ．  さらなる検討事項
上述の説明において、説明の目的で、図示されたシステム、およびその動作の完全な理解を提供すべく、多くの特定な詳細が明記される。しかしながら、当業者にとって、これらの特定の詳細なくシステムを動作させることが可能であることは、明らかとなることであろう。他の実例において、システムを隠すことを回避すべく、構造、およびデバイスがブロック図の形式で図示されている。
【００９８】
本明細書における「一実施形態」または「実施形態」を参照すると、その実施形態に関連して説明されている特定のフィーチャ、構造、または特徴が、システムの少なくとも１つの実施形態の中に含まれることを意味する。本明細書におけるさまざまな場所において、「一実施形態において」という表現の説明は、必ずしもすべてが同じ実施形態を参照しているわけではない。
【００９９】
詳細な説明の一部は、アルゴリズム、またはモデル、およびコンピュータメモリ内のデータビットの動作の記号表現の観点から提供される。アルゴリズムは、ここで、一般に、望ましい結果につながるステップであると着想される。これらステップは、物理的な変換、または物理量の操作を必要とするものである。通常、必ずしもというわけではないが、これらの量は、格納、転送、結合、比較、およびその他の操作が可能となる電気、または磁気信号の形式をとる。主に一般的な使用の理由から、これらの信号をビット、値、要素、記号、文字、用語、数値、またはそのようなものを参照することが時々便利であることが証明されている。
【０１００】
しかしながら、これらの用語、および同様の用語は、すべて適切な物理量に関連付けられ、これらの量に適用される単に便利なラベルにすぎないことに留意されたい。以下の説明から明白であると詳細に明記しない限り、説明全体を通して理解し、「処理」もしくは「演算」、または「計算」もしくは「判断」、または「表示」もしくはそのようなものなどの用語を利用する説明は、コンピュータシステムのレジスタおよびメモリ内の物理（電子）量として表現されるデータを操作および変換するコンピュータシステムのアクションおよびプロセス、または同様の電子コンピューティングデバイスをコンピュータシステムのメモリまたは他のそのような情報ストレージ、伝送、または表示デバイス内の物理量として同様に表現される他のデータへと参照する。
【０１０１】
本明細書で説明される動作の一部は、マシン内に物理的に取り付けられたコンピュータによって実行される。このコンピュータは、要求される目的のために特別に構築することができ、または、コンピュータに格納されるコンピュータプログラムによって、選択的にアクティベートされるか、または再構成することができる汎用コンピュータを備えてよい。このようなコンピュータプログラムは、フロッピーディスク、光ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、読み出し専用メモリ（ＲＯＭ）などの任意のタイプのディスクなど、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気もしくは光カード、または電子命令を格納するために適した任意のタイプの非一時的なコンピュータ読み取り可能な記憶媒体などに格納することができるが、これらに限定されない。
【０１０２】
図面および上述の説明は、例示の方法によってのみさまざまな実施形態に関する。以下の説明から、本明細書に開示される構造、および方法の代替的な実施形態は、特許請求の範囲の原理から逸脱することなく、採用され得る実行可能な代替として容易に認識されることとなることが留意されたい。
【０１０３】
１つまたは複数の実施形態が上述されており、それらの例示が添付の図面において図示されている。図面において用いられる実施可能で同様、または類似の参照番号である場合は、同様、または類似の機能を示す場合があることに留意されたい。図面は、例示のみの目的で、開示されたシステム（または方法）の実施形態を描写する。当業者は、本明細書に図示される構造、および方法の代替的な実施形態が、本明細書に説明される本発明の原理から逸脱することなく、採用され得ることを以下の説明から容易に認識することとなるであろう。
【０１０４】
ある実施形態は、「結合された」、および「接続された」という表現をそれらの派生語と共に用いて説明することができる。これらの用語は、互いに同義語として意図されていないことに理解されたい。例えば、ある実施形態は、「接続した」という用語を用いて説明し、２つまたはそれより多くの要素が互いに直接物理的、または電気的に接続していることを示すことができる。別の例示において、ある実施形態は、「結合した」という用語を用いて説明し、２つまたはそれより多くの要素が直接物理的、または電気的に接続していることを示すことができる。しかしながら、また、「結合した」という用語は、２つまたはそれより多くの要素が互いに直接接続、または電気的に接続していないが、まだ互いに協働、または相互作用することを意味する場合がある。本実施形態は、この文脈において限定されない。
【０１０５】
本明細書で用いられるように、「備える」、「備えている」、「含む」、「含んでいる」、「有する」、「有している」、またはそれらの任意の他の変形例は、非排他的な包含を含むことが意図されている。例えば、要素のリストを備えるプロセス、方法、項目、または装置は、必ずしもそれらの要素のみに限定されず、明示的に記載されていない、またはそのようなプロセス、方法、項目、または装置に内在する他の要素を含む場合がある。さらに、それとは反対に明示的に述べられていない限り、「または」は、包括的な「または」を参照し、排他的な「または」を参照しない。例えば、条件ＡまたはＢは、以下のいずれか１つによって満たされる。Ａは真（または存在する）でＢは偽（または存在しない）であり、Ａは偽（または存在しない）で、Ｂは真（または存在する）であり、さらにＡおよびＢの両方が真（または存在する）である。
【０１０６】
さらに、「ａ」または「ａｎ」の使用は、本明細書における実施形態の要素、および構成要素を説明することが採用される。これは、単に便宜上のためであり、本システムの一般的な意味を与えるものに過ぎない。本説明は、１つまたは少なくとも１つを含むものであり、また、そうでないことを意味することが明らかでない限り、単数形が複数形を含むように読まれるべきである。
【０１０７】
この開示を読むことで、当業者は、動作を識別し、分析を生成するシステム、およびプロセスのためのさらなる追加の代替の構造の設計、および機能の設計を理解することとなるであろう。したがって、特定の実施形態、および用途を例示し、説明してきたが、開示された実施形態は、本明細書に開示された正確な構造、および構成要素に限定されないことを理解されたい。さまざまな修正例、変更例、および変形例は、当業者にとって明らかとなることとなり、添付の特許請求の範囲において定義される趣旨、および範囲から逸脱することなく、本明細書に開示される方法、および装置の配置、動作、および詳細を作成することができる。
【図１】
2021514512.tif 000003
【図２】
2021514512.tif 000004
【図３】
2021514512.tif 000005
【図４Ａ】
2021514512.tif 000006
【図４Ｂ】
2021514512.tif 000007
【図４Ｃ】
2021514512.tif 000008
【図４Ｄ】
2021514512.tif 000009
【図４Ｅ】
2021514512.tif 000010
【図４Ｆ】
2021514512.tif 000011
【図５Ａ】
2021514512.tif 000012
【図５Ｂ】
2021514512.tif 000013
【図６Ａ】
2021514512.tif 000014
【図６Ｂ】
2021514512.tif 000015
【図７Ａ】
2021514512.tif 000016
【図７Ｂ】
2021514512.tif 000017
【図８】
2021514512.tif 000018
【手続補正書】
【提出日】令和2年10月19日(2020.10.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のピクセルを含む画像にアクセスするステップであって、それぞれのピクセルは、ピクセルを説明する情報セットを有し、前記複数のピクセルは、
領域内のアクティブ領域を表現する第１のピクセルのグループと、
前記領域内の人の複数の筋骨格のポイントを表現する第２のピクセルのグループとを含み、
前記第１のピクセルのグループの前記情報セットに基づいて、前記領域内の前記アクティブ領域のロケーションを判断するステップと、
前記第１のピクセルグループ、および前記第２のピクセルグループの前記情報セットに基づいて、前記人の前記筋骨格のポイントの閾値数が前記ロケーションでの前記アクティブ領域内にある場合に、前記人が前記アクティブ領域に入ったと判断するステップと、
前記第１のピクセルグループ、および前記第２のピクセルグループの前記情報セットを用いて、前記アクティブ領域における前記人の動作を判断するステップと、
前記動作を示すデータ構造をデータストアに格納するステップと
を備えたことを特徴とする方法。
【請求項２】
前記画像にアクセスするステップは、さらに、
複数の画像センサーから前記領域の複数の画像を受信するステップと、
前記複数の画像を前記画像の中に含まれる前記複数のピクセルを集計するステップと、
前記複数のピクセルのそれぞれの情報セットを判断するステップとを含む、
請求項１に記載の方法。
【請求項３】
前記画像における前記複数のピクセルは、複数の２次元画像から生成される前記領域の３次元表現である、
請求項１に記載の方法。
【請求項４】
ピクセルの前記情報セットは、
前記ピクセルのタイミング特性と、
前記ピクセルの座標と、
前記ピクセルのピクセル値のうちのいずれかを含む、
請求項１に記載の方法。
【請求項５】
前記アクティブ領域の前記ロケーションを判断するステップは、さらに、
前記複数のピクセルのサブセットの前記情報セットを領域認識モデルへと入力するステップであって、前記領域モデルは、前記ピクセルのサブセットのうちの１つまたは複数の潜在情報を前記アクティブ領域を示すものとして識別し、前記１つまたは複数のピクセルを前記第１のピクセルグループとして選択する、ステップを含む、
請求項１に記載の方法。
【請求項６】
前記複数のピクセルのサブセットの前記情報セットを領域モデルへと入力するステップは、さらに、
前記アクティブ領域を示すピクセルのサブセットを囲む境界ボックスを生成するステップであって、前記境界ボックスは、前記領域における前記アクティブ領域を囲む第３のピクセルグループを含む、ステップを含む、
請求項５に記載の方法。
【請求項７】
前記１つまたは複数のピクセルを前記第１のピクセルグループとして選択するステップは、さらに、
前記第３のピクセルグループ、および前記アクティブ領域を示す前記ピクセルのサブセットに凸包アルゴリズムを適用するステップであって、前記凸包アルゴリズムは、１つまたは複数の前記第３のピクセルグループおよび前記アクティブ領域を示す前記ピクセルのサブセットを含む前記第１のピクセルグループを選択する、ステップを含む、
請求項６に記載の方法。
【請求項８】
前記人が前記ロケーションに入ったと判断するステップは、さらに、
前記アクティブ領域を表現する前記第１のピクセルグループの前記情報セットにアクセスするステップと、
前記第１のピクセルグループの前記情報セットを用いて前記アクティブ領域を画定する１つまたは複数の座標を判断するステップと、
前記領域における前記人の前記複数の筋骨格のポイントを表現する前記第２のピクセルグループの前記情報セットにアクセスするステップと、
前記筋骨格のポイントの前記閾値数の前記座標が前記アクティブ領域を画定する１つまたは複数の前記座標内にあることを判断するステップとを含む、
請求項１に記載の方法。
【請求項９】
前記人が前記ロケーションに入ったと判断するステップは、さらに、
前記第１のピクセルグループの前記情報セットを前記キーポイント認識モデルであるキーポイント認識モデルへと入力するステップであって、前記キーポイント認識モデルは、前記第１のピクセルグループにおける１つまたは複数の前記ピクセルの潜在情報を１つまたは複数の筋骨格のポイントを示すものとして識別し、前記１つまたは複数のピクセルを前記第２のピクセルグループとして選択する、ステップを含む、
請求項８に記載の方法。
【請求項１０】
前記アクティブ領域における前記人の動作を判断するステップは、さらに、
前記第１のピクセルグループおよび前記第２のピクセルグループの前記情報セットを前記動作認識モデルである動作認識モデルへと入力するステップであって、前記動作認識モデルは、前記第２のピクセルグループにおける１つまたは複数の前記ピクセルの潜在情報を前記人の１つまたは複数の動作を示すものとして識別し、前記第１のピクセルグループの前記情報セットに基づいて示される動作のタイプを識別し、１つまたは複数の動作を出力する、ステップを含む、
請求項１に記載の方法。
【請求項１１】
複数のピクセルを含む画像にアクセスすることであって、それぞれのピクセルは、ピクセルを説明する情報セットを有し、前記複数のピクセルは、
領域内のアクティブ領域を表現する第１のピクセルのグループと、
前記領域内の人の複数の筋骨格のポイントを表現する第２のピクセルのグループとを含み、
前記第１のピクセルのグループの前記情報セットに基づいて、前記領域内の前記アクティブ領域のロケーションを判断することと、
前記第１のピクセルグループ、および前記第２のピクセルグループの前記情報セットに基づいて、前記人が前記人の前記筋骨格のポイントの閾値数が前記ロケーションでの前記アクティブ領域内にある場合に、前記人が前記アクティブ領域に入ったと判断することと、
前記第１のピクセルグループ、および前記第２のピクセルグループの前記情報セットを用いて、前記アクティブ領域における前記人の動作を判断することと、
前記動作を示すデータ構造をデータストアに格納することとを備えたことを特徴とする、
プロセッサによって実行可能なコンピュータプログラム命令を格納する非一時的なコンピュータ可読記憶媒体。
【国際調査報告】
2021514512.tif 000019