(57)【要約】  自然運動コントローラは、慣性センサの複数の個別セットから受信される慣性センサデータの調整可能な数の連続期間を連結することによって、合成運動認識ウィンドウを構築する。これらの慣性センサの個別セットの各々は、別個のユーザが着用、携行、または保持するモバイルコンピューティングデバイスに結合されるか、あるいは他の方法でこれらのデバイスに関するセンサデータを提供する。その後、各合成運動認識ウィンドウは、１つまたは複数の機械ベースの深層学習プロセスによってトレーニングされた運動認識モデルに渡される。その後、本運動認識モデルは、１つまたは複数の事前定義された運動のシーケンスを識別するために合成運動認識ウィンドウに適用される。その後、識別された運動は、１つまたは複数のアプリケーションコマンドの実行をトリガするための基本として使用される。
2017537370.tif 000002
【特許請求の範囲】
【請求項１】
慣性センサの１つまたは複数の個別セットから受信される慣性センサデータの調整可能な数の連続期間を連結することによって、合成運動認識ウィンドウを構築することであって、慣性センサの各個別セットは複数のユーザ着用制御デバイスの個別の１つに結合される、構築すること、
前記合成運動認識ウィンドウを、１つまたは複数の機械ベースの深層学習プロセスによってトレーニングされた運動認識モデルに渡すこと、
１つまたは複数のユーザの身体部分の１つまたは複数の事前定義された運動のシーケンスを識別するために、前記運動認識モデルを前記合成運動認識ウィンドウに適用すること、および、
前記１つまたは複数の事前定義された運動の識別されたシーケンスに応答して、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガすることであって、それにより、ユーザが身体部分の運動を実行することによってコンピューティングデバイスと対話できるようにすることにより、ユーザ対話の性能および効率を向上させる、トリガすること、
を含む、コンピュータ実装方法。
【請求項２】
１人または複数のユーザの前記制御デバイスから受信されるセンサデータに応答して、前記運動認識モデルを定期的に再トレーニングすることをさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記運動認識モデルを再トレーニングすることは、個々のユーザの前記ユーザ着用制御デバイスに関連付けられた前記運動認識モデルのローカルコピー上でユーザごとに実行される、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記複数のユーザ着用制御デバイスのうちの少なくとも１つは手首着用制御デバイスであり、前記１つまたは複数の事前定義された運動のシーケンスはユーザの手首のねじりを含む、請求項１から３のいずれか１項に記載のコンピュータ実装方法。
【請求項５】
前記ユーザの手首の前記ねじりは、通信デバイスの通信セッションの実行をトリガする、請求項４に記載のコンピュータ実装方法。
【請求項６】
２人またはそれ以上の異なるユーザ間での前記１つまたは複数のユーザの身体部分の運動間の同期化の識別は、前記１つまたは複数のアプリケーションコマンドのシーケンスの前記実行をトリガする、請求項１から５のいずれか１項に記載のコンピュータ実装方法。
【請求項７】
前記同期化は、前記２人またはそれ以上の異なるユーザの前記合成運動認識ウィンドウに関連付けられたタイムスタンプを比較することによって識別される、請求項６に記載のコンピュータ実装方法。
【請求項８】
前記同期化は、前記２人またはそれ以上のユーザの前記ユーザ着用制御デバイスは、前記他のユーザのうちの少なくとも１人の少なくとも１つの前記ユーザ着用制御デバイスの最小しきい値距離内にある旨の決定に従って識別される、請求項６または７に記載のコンピュータ実装方法。
【請求項９】
汎用コンピューティングデバイスと、
前記コンピューティングデバイスによって実行可能なプログラムモジュールを備えるコンピュータプログラムと、
を備える、システムであって、
前記コンピューティングデバイスは、前記コンピュータプログラムの前記プログラムモジュールによって、
慣性センサの１つまたは複数の個別セットから受信される１つまたは複数の連続期間の加速および角速度データから特徴を抽出することであって、慣性センサの各個別セットは、複数のユーザ着用制御デバイスのうちの個別の１つに結合される、抽出すること、
前記抽出された特徴を確率的機械学習運動シーケンスモデルに渡すこと、
１つまたは複数のユーザの身体部分の１つまたは複数の対応する運動のシーケンスを識別するために、前記機械学習運動シーケンスモデルを前記抽出された特徴に適用すること、および、
前記運動の識別されたシーケンスに応答して、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガすることであって、それによって、身体部分の運動を実行することによってユーザがコンピューティングデバイスと対話できるようにすることで、ユーザ対話の性能および効率を向上させる、トリガすること、
が指示される、システム。
【請求項１０】
ユーザ運動を識別するためのコンピュータ実行可能命令が内部に記憶された、コンピュータ可読媒体であって、前記命令はコンピューティングデバイスに、
慣性センサの１つまたは複数の個別セットから受信される慣性センサデータの調整可能な数の連続期間を連結することにより、合成運動認識ウィンドウを構築することであって、慣性センサの各個別セットは複数のユーザ着用制御デバイスの個別の１つに結合される、構築すること、
前記合成運動認識ウィンドウを、１つまたは複数の機械ベースの深層学習プロセスによってトレーニングされた運動認識モデルに渡すこと、
１つまたは複数のユーザの身体部分の１つまたは複数の事前定義された運動のシーケンスを識別するために、前記運動認識モデルを前記合成運動認識ウィンドウに適用すること、および、
前記１つまたは複数の事前定義された運動の識別されたシーケンスに応答して、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガすることであって、それにより、身体部分の運動を実行することによってユーザがコンピューティングデバイスと対話できるようにすることで、ユーザ対話の性能および効率を向上させる、トリガすること、
を含む、方法を実行させる、コンピュータ可読媒体。
【請求項１１】
２人またはそれ以上の異なるユーザ間での前記１つまたは複数のユーザの身体部分の運動間の同期化の識別は、前記１つまたは複数のアプリケーションコマンドのシーケンスの前記実行をトリガする、請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
前記同期化は、前記２人またはそれ以上のユーザの前記ユーザ着用制御デバイスが互いの最小しきい値距離内にある旨が決定された場合、前記２人またはそれ以上の異なるユーザの前記合成運動認識ウィンドウに関連付けられたタイムスタンプを比較することによって識別される、請求項１１に記載のコンピュータ可読媒体。
【請求項１３】
前記１つまたは複数のアプリケーションコマンドのシーケンスの前記トリガされた実行は、前記２人またはそれ以上のユーザに関連付けられたコンピューティングデバイス間でのユーザ連絡先情報の自動交換を生じさせる、請求項１１または１２に記載のコンピュータ可読媒体。
【請求項１４】
２人またはそれ以上の異なるユーザ間での前記１つまたは複数のユーザの身体部分の運動間の同期化の識別は、前記１つまたは複数のアプリケーションコマンドのシーケンスの前記実行をトリガする、請求項９に記載のシステム。
【請求項１５】
前記同期化は、
２人またはそれ以上の異なるユーザの前記ユーザ着用制御デバイスが、前記他のユーザのうちの少なくとも１人の少なくとも１つの前記ユーザ着用制御デバイスの最小しきい値距離内にある旨を決定すること、および、
前記２人またはそれ以上の異なるユーザに関連付けられた前記加速および角速度データから抽出された前記特徴に関連付けられたタイムスタンプを比較すること、
によって識別される、請求項１４に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  スマートウォッチおよび他のウェアラブルまたはモバイルのコンピューティングデバイスは、様々なレベルの計算機能を提供する。こうした機能は、音声またはデータ通信、データの記憶および転送、計算、メディアの録音または再生、ゲーム、フィットネス追跡などのタスクを実行可能にする。ハードウェアの見地からすると、多くのスマートウォッチおよび他のウェアラブルまたはモバイルのデバイスは、カメラ、マイクロフォン、スピーカ、加速度計、ディスプレイデバイス、タッチセンサ式表面などの、広範なセンサを含む。スマートウォッチおよび他のウェアラブルまたはモバイルのデバイスは、典型的には様々なオペレーティングシステムを実行し、しばしば様々なアプリケーションのうちのいずれかを実行する。これらのデバイスの多くは、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、近距離無線通信（NFC）などの技術を使用して、他の計算デバイスとのワイヤレス接続性または対話性も提供する。
【発明の概要】
【０００２】
[0002]  以下の概要は、下記の発明を実施するための形態でさらに詳細に説明する概念の選択を、簡略化された形で紹介するために提供される。本概要は、特許請求される主題の主要な特徴または不可欠な特徴を識別することを意図するものではなく、また、特許請求される主題の範囲を決定する際の助けとして使用することを意図するものでもない。さらに、本明細書では他の技術のある欠点に注目するかまたはこれについて考察しているが、特許請求される主題は、それら他の技術の欠点のいずれかまたはすべてを解決または対処することが可能な実施形態に限定することを意図するものではない。本概要の唯一の目的は、特許請求される主題のいくつかの概念を、以下で提示されるより詳細な説明の前置きとして簡略化された形で提示することである。
【０００３】
[0003]  一般に、本明細書で説明する「自然運動コントローラ」は、電子デバイスと対話するためにユーザの身体の１つまたは複数の部分の運動を識別し、それによって様々なナチュラルユーザインターフェース（NUI）シナリオを実行可能にするための、様々な技法を提供する。有利なことに、自然運動コントローラは、ユーザの身体の１つまたは複数の部分の１つまたは複数の事前定義された運動の識別されたシーケンスに応答して、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガすることによって、広範なコンピューティングデバイスおよび電子的に制御または作動されるデバイスまたは機械に関して、ユーザの生産性および対話性を向上させる。これらの運動は、任意選択で他のセンサデータ（たとえば、光、温度、近接など）と組み合わされ、ユーザが着用、携行、または保持する１つまたは複数のモバイルコンピューティングデバイスに結合されるかまたは他の方法で関連付けられる、センサセットによって戻される、慣性センサデータに基づいて識別される。
【０００４】
[0004]  様々な実施形態において、自然運動コントローラによって実行可能化されるプロセスのうちのいくつかは、センサデータからの合成運動認識ウィンドウを定期的または連続的に構築することによって開始される。これらの運動認識ウィンドウは、慣性センサの複数の個別セットから受信した慣性センサデータの調整可能な数の連続する期間またはフレームを連結することによって、構築可能である。これらの慣性センサの個別セットの各々は、別個のユーザが着用、携帯、または保持するモバイルコンピューティングデバイスに結合されるか、あるいは他の方法でこれらのデバイスに関するセンサデータを提供する。その後、各合成運動認識ウィンドウは、１つまたは複数の機械ベースの深層学習プロセスによってトレーニングされた、本明細書では「運動認識モデル」とも呼ばれる、機械学習運動シーケンスモデルに渡される。その後、本運動認識モデルは、ユーザの身体の１つまたは複数の部分の１つまたは複数の事前定義された運動のシーケンスを識別するために、合成運動認識ウィンドウに適用される。
【０００５】
[0005]  これらの事前定義された運動が識別されると、自然運動コントローラは、１つまたは複数の事前定義された運動の識別されたシーケンスに応答して、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガする。たとえば、様々な実施形態において、ユーザの手首または腕のねじりは、ユーザが着用するスマートウォッチなどの通信コンポーネントのマイクロフォンの活動化をトリガする運動として検出される。しかしながら、自然運動コントローラは、ねじりベースの運動、あるいはマイクロフォンまたは他の通信デバイスの活動化に限定されないことを理解されたい。
【０００６】
[0006]  上記の概要に鑑み、本明細書で説明する自然運動コントローラは、コンピューティングデバイスおよび電子的に制御または作動されるデバイスまたは機械と対話するために、ユーザの身体の１つまたは複数の部分の運動を識別し、それによって様々なＮＵＩシナリオを実行可能にするための、様々な技法を提供することが明白である。今説明した特典に加えて、自然運動コントローラの他の利点は、添付の図面に関連して本明細書の下記に従った詳細な説明から明らかとなろう。
【０００７】
[0007]  特許請求される主題の特定の特徴、態様、および利点は、以下の説明、付属の特許請求の範囲、および添付の図面に関してより良く理解されよう。
【図面の簡単な説明】
【０００８】
【図１】[0008]本明細書で説明するような、自然運動コントローラの様々な実施形態を行うためのプログラムモジュールを例示する、例示的なアーキテクチャフロー図を提供する。
【図２】[0009]本明細書で説明するような、機械学習運動シーケンスモデルをトレーニングするための例示的高水準概要を提供する。
【図３】[0010]本明細書で説明するような、ユーザの手首に着用されるスマートウォッチフォームファクタでのユーザ着用制御デバイスを示す。
【図４】[0011]本明細書で説明するような、自然運動コントローラの様々な実施形態を行うための例示的方法を示す、一般的なシステムのフロー図を示す。
【図５】[0012]本明細書で説明するような、自然運動コントローラの様々な実施形態を行う際に使用するための、簡略化されたコンピューティングおよびＩ／Ｏ機能を有する簡略化された汎用コンピューティングデバイスを示す一般的なシステム図である。
【発明を実施するための形態】
【０００９】
[0013]  「自然運動コントローラ」の様々な実施形態の以下の説明において、本明細書の一部を形成し、自然運動コントローラが内部で実施可能な特定の実施形態が例として示される、添付の図面が参照される。他の実施形態が利用可能であり、その範囲を逸脱することなく構造的変更が可能であることを理解されたい。
【００１０】
[0014]  明快さのために、本明細書で説明する様々な実施形態を説明する際に、特定の専門用語が用いられること、および、これらの実施形態がそのように選択された特定の用語に限定されるものと意図されないことにも留意されたい。さらに、各特定の用語が、同様の目的を達成するために広義に同様の様式で動作するその技術的等価物をすべて含むことが理解されよう。本明細書における「一実施形態」または「別の実施形態」または「例示的実施形態」または「代替の実施形態」または同様の語句への言及は、実施形態に関連して説明する特定の機能、特定の構造、または特定の特徴を、自然運動コントローラの少なくとも１つの実施形態に含めることが可能であることを意味する。さらに、本明細書全体を通じたこうした語句の出現は、必ずしもすべてが同じ実施形態について言及しているものではなく、他の実施形態を相互に除外する個別または代替の実施形態でもない。
【００１１】
[0015]  自然運動コントローラの１つまたは複数の実施形態を表す任意のプロセスフローについて本明細書で説明または例示される順序は、本質的に、プロセスに関するいずれの要件も説明または例示される順序で実装されることを示すものではなく、また、任意のプロセスフローについて本明細書で説明または例示されるいずれのこうした順序も、自然運動コントローラのいかなる制限をも示唆するものでないことも理解されたい。
【００１２】
[0016]  本明細書で利用される場合、「コンポーネント」、「システム」、「クライアント」などの用語は、ハードウェア、ソフトウェア（たとえば実行中の）、ファームウェア、またはそれらの組み合わせのいずれかの、コンピュータ関連エンティティを指すものと意図される。たとえばコンポーネントは、プロセッサ上で実行中のプロセス、オブジェクト、実行ファイル、プログラム、関数、ライブラリ、サブルーチン、コンピュータ、または、ソフトウェアモジュールとハードウェアの組み合わせとすることができる。例を挙げると、サーバ上で実行中のアプリケーションとサーバの両方が、コンポーネントであり得る。１つまたは複数のコンポーネントがプロセス内に常駐可能であり、コンポーネントは１つのコンピュータ上に局在すること、および／または、２つまたはそれ以上のコンピュータ間に分散されることが可能である。「プロセッサ」という用語は、一般に、コンピュータシステムの処理ユニットなどのハードウェアコンポーネントを指すものと理解される。
【００１３】
[0017]  さらに、この詳細な説明または特許請求の範囲のいずれかで使用可能な、「含む（includes）」、「含んでいる（including）」、「有する（has）」、「包含する（contains）」という用語、それらの変形、ならびに他の同様の語および語句は、いずれの追加または他の要素も除外することなく、オープンな移行語としての「備える（comprising）」という用語と同様に包括的であることが意図される。
【００１４】
[0018]  １．０  序論
[0019]  一般に、本明細書で説明する「自然運動コントローラ」は、コンピューティングデバイスおよび電子的に制御または作動されるデバイスまたは機械と対話し、これらを制御するために、ユーザの身体の１つまたは複数の部分の運動を識別し、それによって様々なナチュラルユーザインターフェース（NUI）シナリオを実行可能にするための、様々な技法を提供する。ユーザの身体部分の運動は、任意選択で他のセンサデータ（たとえば、光、温度、近接など）と組み合わされ、ユーザが着用、携行、または保持する１つまたは複数のモバイルコンピューティングデバイスに結合されるかまたは他の方法で関連付けられる、センサセットによって戻される、慣性センサデータからの機械学習運動シーケンスモデルによって識別される。考察の目的で、これらのユーザが着用、携行、または保持するモバイルコンピューティングデバイスは、それらのデバイスの特定フォームファクタに関係なく、本明細書では「ユーザ着用制御デバイス」と呼ばれる場合があることに留意されたい。
【００１５】
[0020]  自然運動コントローラによって実行可能となる対話および制御は、ユーザの身体の１つまたは複数の部分の１つまたは複数の事前定義された運動の識別されたシーケンスに応答して、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガすることによって達成される。これらの機能は、以下の詳細な説明に鑑みて、様々な利点および技術的効果を提供する。これらの利点および技術的効果の例は、１つまたは複数のコンピューティングデバイスおよび電子的に制御または作動されるデバイスまたは機械を制御するために、ユーザが単純な身体運動を実行できるようにするデバイスおよびプロセスを提供することによって改善されるユーザ効率を含むが、それらに限定されない。さらにこうした機能は、複数のコンピューティングデバイスおよび電子的に制御または作動されるデバイスまたは機械と物理的に対話する必要なしに、単純な身体部分の運動を実行することによって、それらのデバイスをユーザが自動的および／または遠隔に制御するかまたはそれらと対話できるようにすることによって、ユーザ対話の性能を上昇させる働きをする。
【００１６】
[0021]  様々な実施形態において、アプリケーションコマンドのトリガを介して制御される、コンピューティングデバイスおよび電子的に制御または作動されるデバイスまたは機械は、ユーザの運動に対応するセンサデータを提供するために使用されるユーザ着用制御デバイスを含む。たとえば、慣性センサを備えるスマートウォッチフォームファクタは、たとえばユーザの手首のねじりなどのユーザの身体部分の運動に応答してトリガされるか、あるいは他の方法で制御される、様々な通信機能を含むこともできる。
【００１７】
[0022]  しかしながら、アプリケーションコマンドのトリガを使用して、任意の所望のワイヤードまたはワイヤレスの通信リンクを介してアプリケーションコマンドを受信するかまたはこれに応答することが可能な、任意のローカルまたはリモートのコンピューティングデバイスまたは電子的に制御または作動されるデバイスまたは機械を制御するか、あるいはそれらと対話することが可能であることも理解されたい。たとえば、トリガされたアプリケーションコマンドを使用して、スマートな家庭用電化製品およびスイッチ、カメラ、テレビジョン、コンピューティングデバイス、通信機器などを含むが、それらに限定されない、デバイスを、制御するかまたはそれらと対話することができる。たとえば、たとえばリストバンドまたはリングベースのフォームファクタなどのユーザ着用制御デバイスから受信される慣性センサデータは、たとえばユーザが手を振るかまたは指を鳴らすなどの運動を示すことができる。こうした運動を使用して、アプリケーションコマンドを受信するかまたはこれに応答することが可能な、任意のローカルまたはリモートのコンピューティングデバイスまたは電子的に制御または作動されるデバイスまたは機械に対して、任意の事前定義またはユーザ定義されたアプリケーションコマンドを始動またはトリガすることができる。
【００１８】
[0023]  １．１  システムの概要
[0024]  前述のように、「自然運動コントローラ」は、コンピューティングデバイスおよび電子的に制御または作動されるデバイスまたは機械と対話するためにユーザの身体の１つまたは複数の部分の運動を識別し、それによって様々なＮＵＩシナリオを実行可能にするための、様々な技法を提供する。上記で概説したプロセスは、図１の一般的なシステム図によって例示される。特に、図１のシステム図は、本明細書で説明する自然運動コントローラの様々な実施形態を実施するためのプログラムモジュール間の相互関係を示す。さらに、図１のシステム図は、自然運動コントローラの様々な実施形態の高水準図を示すが、図１は、本書全体を通じて説明される自然運動コントローラのあらゆる可能な実施形態の網羅的または完全な例示を提供することを意図していない。
【００１９】
[0025]  加えて、図１において破線または断続線によって表すことが可能な任意のボックスおよびボックス間の相互接続は、本明細書で説明する自然運動コントローラの代替の実施形態を表すこと、ならびに、以下で説明するようなこれらの代替の実施形態のいずれかまたはすべては、本書全体を通じて説明される他の代替の実施形態と組み合わせて使用可能であることに留意されたい。
【００２０】
[0026]  一般に、図１で示されるように、自然運動コントローラによって実行可能となるプロセスは、１つまたは複数のユーザ着用制御デバイス１１０からセンサデータを受信するためにセンサデータ収集モジュール１００を適用することによって、動作を開始する。これらのユーザ着用制御デバイス１１０の例は、ユーザが着用、携行、または保持する制御デバイスを含み、任意選択で、ユーザの身体に取り付けられるかまたは埋め込まれる１つまたは複数の制御デバイスを含む。これらのユーザ着用制御デバイス１１０の各々は、少なくとも慣性センサの個別のセットおよび慣性センサデータをセンサデータ収集モジュール１００に渡すための通信機能を備える。
【００２１】
[0027]  様々な実施形態において、ユーザ着用制御デバイス１１０のうちの１つまたは複数は、１つまたは複数の追加のオプションセンサ１２０を含むことができる。これらのオプションセンサ１２０の例は、限定されないが、近接センサ、光センサ、温度センサ、生体センサなどを含む。ユーザ着用制御デバイス１１０に関する例示的なフォームファクタ１３０は、限定されないが、スマートウォッチ、リストバンド、ネックレス、眼球装着コンタクトレンズ、眼鏡、衣服、ベルト、靴、指輪、歯の表面または指の爪上のデバイス、歯科インプラント、ジュエリー、ボディピアスおよびインプラントなどを含む。
【００２２】
[0028]  １人または複数のユーザの各々について、センサデータ収集モジュール１００は、慣性センサの１つまたは複数の個別セットから受信される慣性センサデータの任意選択で調整可能な数の連続する期間またはフレームを連結することによって、合成運動認識ウィンドウを構築する。次いで、センサデータ収集モジュール１００は、１つまたは複数の事前定義されたユーザの身体部分の運動に対応する慣性センサデータの正および負の例に、１つまたは複数の深層学習プロセスを適用することによってトレーニングされた、機械学習運動シーケンスモデル１４０に、これらの運動認識ウィンドウを渡す。次いで、機械学習運動シーケンスモデル１４０は、センサデータ収集モジュール１００から受信された合成運動認識ウィンドウから、１つまたは複数の対応するユーザの身体部分の運動のシーケンスを識別する。
【００２３】
[0029]  様々な実施形態において、任意選択のモデル更新モジュール１５０は、任意選択で、１人または複数ユーザの制御デバイス１１０から受信されるセンサデータ、ならびに／あるいは、ユーザフィードバックおよび／またはカスタムトレーニングセッションに応答して、機械学習運動シーケンスモデル１４０を再トレーニングする。さらなる任意選択の実施形態において、モデル更新モジュール１５０は任意選択で、個々のユーザに関連付けられた機械学習運動シーケンスモデルが、それらのユーザの特定の運動に経時的に次第に適合するように、ユーザごとに機械学習運動シーケンスモデル１４０のローカルコピーを再トレーニングする。
【００２４】
[0030]  アプリケーションコマンドトリガモジュール１６０は、機械学習運動シーケンスモデル１４０によって戻される１つまたは複数の事前定義されたユーザの身体部分の運動の１つまたは複数の識別されたシーケンスに応答して、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガする。これらのアプリケーションコマンドは、機械学習運動シーケンスモデル１４０によって識別されるユーザの身体部分の運動を介して、ユーザが、コンピューティングデバイスおよび電子的に制御または作動されるデバイスまたは機械と対話できるようにする。
【００２５】
[0031]  様々な実施形態において、１つまたは複数のアプリケーションコマンドのトリガを介して制御されるコンピューティングデバイスおよび電子的に制御または作動されるデバイスまたは機械は、ユーザ着用制御デバイス１１０を含むことに留意されたい。たとえば、スマートウォッチフォームファクタは、機械学習運動シーケンスモデル１４０によって識別されるユーザの身体部分の運動に応答してトリガされるかまたは他の方法で制御される、様々な通信機能を含むことができる。しかしながら、アプリケーションコマンドトリガモジュール１６０を使用して、アプリケーションコマンドを受信するかまたはこれに応答することが可能な任意のローカルまたはリモートのコンピューティングデバイスまたは電子的に制御または作動されるデバイスまたは機械を制御するかまたはこれらと対話することが可能であることも理解されたい。
【００２６】
[0032]  さらに、様々な実施形態において、アプリケーションコマンドトリガモジュール１６０は、任意選択で、２人またはそれ以上の異なるユーザ間での１つまたは複数のユーザの身体部分の運動間の同期化に応答して、アプリケーションコマンドをトリガする。こうした同期化は、任意選択で、２人またはそれ以上のユーザの身体部分の運動（機械学習運動シーケンスモデル１４０によって識別される）が同期化されているかどうかを判別するために動作する、任意選択の同期化識別モジュール１７０によって決定される。
【００２７】
[0033]  様々な実施形態において、同期化識別モジュール１７０は、１人のユーザのユーザ着用制御デバイス１１０が、１人または複数の他のユーザのユーザ着用制御デバイスの最小しきい値距離内にある場合（任意選択の近接センサの使用を介して決定される）、同期化された運動を識別する。さらなる実施形態において、同期化識別モジュール１７０は、それらの運動に関連付けられたタイムスタンプが、異なるユーザ（たとえば、互いに握手をし合う２人のユーザ）の身体部分の運動間の協調を示す場合、同期化された運動を識別する。様々な実施形態において、２人またはそれ以上のユーザの身体部分の運動が同期化されているかどうかを決定する場合、タイムスタンプおよびしきい値距離の両方を組み合わせることも可能であることにも留意されたい。
【００２８】
[0034]  ２．０  自然運動コントローラの動作の詳細
[0035]  前述のプログラムモジュールは、自然運動コントローラの様々な実施形態を実施するために採用される。以下のセクションでは、自然運動コントローラの様々な実施形態の動作、および、図１に関連してセクション１で説明したプログラムモジュールを実装するための例示的方法の、詳細な考察を提供する。特に、以下のセクションは、
・自然運動コントローラの動作の概要、
・運動シーケンスモデルをトレーニングする際に使用するように適合された例示的機械学習技法、
・自然運動ベースの制御のためにトレーニングされたモデルの適合および使用、
・例示的制御運動、および、
・ユーザ着用制御デバイスのための例示的フォームファクタ、
を含む、自然運動コントローラの様々な実施形態の例および動作の詳細を提供する。
【００２９】
[0036]  ２．１  動作の概要
[0037]  前述のように、本明細書で説明する自然運動コントローラは、コンピューティングデバイスまたは電子的に制御または作動されるデバイスまたは機械と対話するためにユーザの身体の１つまたは複数の部分の運動を識別し、それによって様々なＮＵＩシナリオを実行可能にするための、様々な技法を提供する。様々な実施形態において、自然運動コントローラの機能は、１つまたは複数の着用、携行、または保持されるモバイルコンピューティングデバイスに埋め込まれ、結合され、または他の方法で関連付けられた、加速度計およびジャイロスコープを含む、慣性センサからのデータに基づく。こうしたデバイスから受信されるセンサデータは、指、手、腕、頭、眼、まぶた、口、舌、歯、胴、脚、足、などを含むが、それらに限定されない、ユーザの身体部分の特定の運動または運動シーケンスを識別するための、モデルベースの確率的推論を取得するために評価される。説明の目的で、アプリケーションコマンドをトリガするための基本として用いられる身体部分の運動は、本明細書では「制御運動」と呼ばれることもあることに留意されたい。
【００３０】
[0038]  様々な実施形態において、自然運動コントローラは、「フレーム」を形成するために、特定の身体部分に関連付けられたユーザ着用制御デバイスの現在の加速および角速度などのセンサデータを含む、センサのサンプリング期間を考慮する。Ｎ個の連続フレームが合成運動認識ウィンドウを形成し、ここでＮは固定または調整可能なパラメータである。次いで、合成運動認識ウィンドウは、特定のユーザの身体部分の事前定義された運動を表す認識結果を取得するために、機械学習運動シーケンスモデルに提供され、次いでその認識結果は、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガするために使用される。機械学習運動シーケンスモデルをトレーニングするために使用される技法の例は、サポートベクターマシン（SVM）、ディープニューラルネットワーク（DNN）、再帰型ニューラルネットワーク（RNN）などを含むが、それらに限定されない。
【００３１】
[0039]  モデル構造に応じて、異なるタイプのセンサデータが提供され得る。たとえば、ＲＮＮベースモデルは、固定長ウィンドウまたはサンプリング期間ではなく、入力フレームのストリームに直接適用することができる。様々な実施形態では、各認識ウィンドウについて、センサデータは特徴ベクトル（SVMベースおよびDNNベースのモデルを想定）または特徴ベクトルのシーケンス（RNNベースモデルを想定）によって表される。次いで、モデルはこれらの特徴表現を入力として取り、予測される運動または運動のシーケンスを表す予測出力（すなわち、認識結果）を計算する。
【００３２】
[0040]  予測される運動および対応するアプリケーションコマンドのトリガが与えられると、自然運動コントローラは、任意の所望の通信可能なコンピューティングデバイスおよび電子的に制御または作動されるデバイスまたは機械の対話および制御を提供する。様々な実施形態において、たとえばスマートウォッチなどのユーザ着用デバイスは、スマートウォッチデバイス自体に埋め込まれた慣性センサからのデータに基づく身体運動に応答して制御することができる。こうした実施形態は、デバイスの片手ノータッチ制御を実行可能にする。たとえば、様々な実施形態において、スマートウォッチが着用されている手首のユーザのねじりは、たとえば、スマートウォッチと一体型のマイクロフォンがユーザから音声コマンドを受信するのを可能にするなどの、アプリケーションコマンドをトリガする手首の識別可能な運動を生成するのに十分である。
【００３３】
[0041]  したがって、スマートウォッチなどのデバイスを制御するために、ユーザがタッチスクリーンなどと対話することを必要とする技法とは対照的に、自然運動コントローラは、ユーザが自分の手または指を使用して対話目的のためにデバイスに物理的にタッチすることから解放し、それによってユーザの生産性を、またしばしばユーザの安全性を著しく向上させる。たとえば、ユーザが両手で品物を運んでいるケースを考えてみる。こうしたケースでは、ユーザが自分の指を使ってスマートウォッチ（または、他のコンピューティングデバイスおよび電子的に制御または作動されるデバイス）と対話するために、自分の運んでいる品物から手を放す必要なしに、単純なユーザの運動で、それらのデバイスの制御およびデバイスとの対話が可能になる。同様に、ユーザが自動車を運転中であり、自分の手首にスマートウォッチ型フォンを着用しているケースを考えてみる。こうしたケースでは、ユーザは単純な物理的運動（たとえば、手首のねじり、ハンドル上での指のタップなど）を介して、スマートウォッチ型フォンを介した呼の始動または受信が可能であり、それによって、運転中にスマートウォッチと対話するために道路から目をそらすことまたはハンドルから手を放すことがまったく必要なくなり、それによって、ユーザの安全性が向上する。
【００３４】
[0042]  ２．２  例示的機械学習技法
[0043]  以下のパラグラフは、自然運動コントローラによる使用に適合可能な、いくつかの機械学習およびモデリング技法の例を提供する。自然運動コントローラは、以下で考察する機械学習およびモデリング技法の特定の例に限定されることを意図しておらず、これらの例は、単に考察および説明の目的で提供されることを理解されたい。
【００３５】
[0044]  ２．２．１  ＳＶＭモデリング技法
[0045]  サポートベクターマシン（SVM）は、特徴ベクトルｘ∈Ｒｎを入力として取り、出力クラスラベルｙを計算する、一種の分類子である。標準の２進分類公式ｙ∈｛＋１，−１｝において、ｘごとに、予測（自然運動コントローラのケースでは、予測される身体部分の運動を表す）はｓｉｇｎ（ｗＴｘ）として計算され、ここでｗはパラメータベクトルである。モデルパラメータｗは、以下の数式１によって示されるように、正規化損失関数を最小化するために、ラベル付けされた（ｘ，ｙ）ペアのセットを使用して学習され、
【００３６】
【数１】
2017537370.tif 000003
上式で、ｌは通常、ヒンジ損失ｌ（ｙｉ，ｗＴｘｉ）＝ｍａｘ｛０，１−ｙｉｗＴｘｉ｝である。ヒンジ損失に似た凸損失の場合、この対象は凸関数であり、多くの凸最適化方法を使用して効率的に最適化可能である。学習後、パラメータｗは認識システム内で使用される。自然運動コントローラのケースでは、ラベル付けされた（ｘ，ｙ）ペアは、事前定義されたユーザの身体部分の運動に対応する正および負にラベル付けされた例を表すことに留意されたい。
【００３７】
[0046]  ＳＶＭは、核関数の使用によって非線形ケースに拡張すること、および、１対全部などのストラテジを使用することによって、または構造化マルチクラス損失を使用することによって、マルチクラスケースに拡張することも可能である。
【００３８】
[0047]  ２．２．２  ＤＮＮモデリング技法
[0048]  ディープニューラルネットワーク（DNN）は、一種の非線形分類子である。予測（自然運動コントローラのケースで、予測される身体部分の運動に対応するクラスラベルを表す）を行う場合、ＤＮＮは、入力ベクトルｘ（このケースでは、慣性センサデータを表す）を、複数層の非線形変換を介して、最終的にはクラスラベルに渡す。
【００３９】
[0049]  一般に、典型的なＤＮＮアーキテクチャは、非表示層またはニューロンとも呼ばれる複数の非線形層を含む。層ごとに、入力ベクトルが出力ベクトルにマッピングされる。たとえば層ｎにおいて、以下のように入力ベクトルｈｎは出力ベクトルｈｎ＋１にマッピングされ、
【００４０】
【数２】
2017537370.tif 000004
上式で、ｂｎおよびｗｎはこの層についてのパラメータであり、ｆは非線形性関数である。入力層（すなわち、層０）について、ｈ０＝ｘ（すなわち、センサデータ）である。ｆに関する一般的な選択肢は、
【００４１】
【数３】
2017537370.tif 000005
などのロジスティック関数、
【００４２】
【数４】
2017537370.tif 000006
などの双曲正接、すなわち「ｔａｎｈ」関数、ｆ（ｘ）＝ｍａｘ｛０，ｘ｝などの整流線形関数、その他を含むが、それらに限定されない。
【００４３】
[0050]  出力層は、通常、クラスラベルの条件付き確率分布を以下のようにモデリングするソフトマックス型関数などであるが、その限りではなく、
【００４４】
【数５】
2017537370.tif 000007
上式で、Ｎはネットワーク内の層の数である。最終予測は、以下の数式４によって示されるように計算される。
ｙ＊＝ａｒｇｍａｘｋｐ（ｙ＝ｋ｜ｘ）                                  数式４
【００４５】
[0051]  ＤＮＮはしばしば、トレーニング（ｘｔ，ｙｔ）ペア（自然運動コントローラのケースでは、事前定義されたユーザの身体部分の運動に対応する正および負にラベリングされた例を表す）のセット上に定義される損失関数を最小限にするようにトレーニングされる。たとえば、以下の数式５の負の対数尤度損失関数をこうした目的で使用することが可能である。
【００４６】
【数６】
2017537370.tif 000008
【００４７】
[0052]  ２．２．３  ＲＮＮモデリング技法
[0053]  再帰型ニューラルネットワーク（RNN）は、順次データ用に設計された一種のニューラルネットワークである。典型的なＲＮＮベースアーキテクチャは、下部の入力層、異なる時点で非表示層間に再帰型接続を伴う中間の１つまたは複数の非表示層、および上部の出力層からなる。各層はニューロンのセットを表し、層は重みＵおよびＶで接続される。入力層ｘｔは時点ｔでの入力信号を表し、出力層ｙｔはクラスラベル全体にわたる確率分布を生成する。非表示層ｈｔは、センサデータ履歴の表現を維持する。入力ベクトルｘｔは、フレームｔ（または、フレームｔ周辺のコンテキスト）に関する特徴表現である。出力ベクトルｙｔは、可能な運動の数に等しい次元を有する。非表示層および出力層内の値は、以下のように計算され、
ｈｔ＝ｆ（Ｕｘｔ＋Ｗｈｔ−１）
ｙｔ＝ｇ（Ｖｈｔ）                                                      数式６
上式で、ｆおよびｇは要素ごとの非線形性である。通常、ｇはソフトマックス関数であり、ｆは任意の所望のシグモイド非線形性関数とすることができる。
【００４８】
[0054]  ＲＮＮベースモデルは、データ条件付き尤度を最大にするために、以下のような標準の逆伝搬を使用してトレーニングされる。
【００４９】
【数７】
2017537370.tif 000009
【００５０】
[0055]  このモデルは、時間をまたがる出力変数間の直接的な相互依存性を有さないことに留意されたい。したがって、出力ラベルの最も可能性の高いシーケンスは、一連のオンライン決定を用いて以下のように計算することができる。
ｙｔ＊＝ａｒｇｍａｘ  ｐ（ｙｔ｜ｘ１，．．．，ｘｔ）                      数式８
【００５１】
[0056]  これはオンラインであり、非常に効率的であるという利点を有し、他のシーケンスラベリングモデル用の動的プログラミング検索方法よりも高速である。
【００５２】
[0057]  ２．２．４  ＬＳＴＭモデリング技法
[0058]  長短期メモリ（LSTM）モデルは、入力、出力、および非表示対非表示遷移を変調するためにゲートユニットを使用する、標準ＲＮＮモデルの拡張である。ゲートユニットを使用することによって、ＬＳＴＭの非表示ユニットはより長い履歴を追跡することができるため、通常、長期依存性の改良されたモデリングを提供することができる。
【００５３】
[0059]  典型的なＬＳＴＭアーキテクチャは、以下のような演算を実施し、
【００５４】
【数８】
2017537370.tif 000010
上式で、ｉｔ、ｏｔ、およびｆｔは、それぞれ入力ゲート、出力ゲート、および忘却ゲートである。メモリセルアクティビティはｃｔである。さらにｘｔおよびｈｔは、それぞれＬＳＴＭの入力および出力である。要素ごとの積は、
【００５５】
【数９】
2017537370.tif 000011
として示される。σはロジスティックシグモイド関数を表す。次いで、ＬＳＴＭの出力ｈｔは、数式１０によって示されるように予測される結果（自然運動コントローラのケースでは、予測される身体部分の運動を表す）を生成するために、モデルの出力に渡される。
ｙｔ＝Ｓｏｆｔｍａｘ（Ｗｈｙｈｔ＋ｂｙ）                                数式１０
【００５６】
[0060]  一般に、ＬＳＴＭは、再帰型接続が線形メモリセルアクティビティ間にあり、ゲートが入力を変調するため、過去のメモリアクティビティを廃棄するため、および出力を調節するために使用されるという点で、ＲＮＮとは異なる。しかしながら、標準のＲＮＮの場合と同様に、ＬＳＴＭは条件付き尤度を最適化するためにもトレーニングされ、オンライン予測を行うことができる。
【００５７】
[0061]  ２．３  自然運動制御のためのモデルの適合および使用
[0062]  様々な実施形態において、任意の所望の機械学習技法を使用して機械学習運動シーケンスモデルをトレーニングするためのプロセスは、典型的には、データ収集プロセスを含む。このデータ収集プロセスは、複数の正のトレーニング例を表す、特定の事前定義された運動と、負のトレーニング例を表す、任意の運動を含む複数の他の運動とを実行するためのタスクを、複数ユーザに課すことを含む。このプロセスは、複数のユーザがタスクの課せられた運動を実行している間に、複数のユーザによって着用、保持、または携行されている制御デバイスから、センサデータを収集するために使用される。複数の異なるユーザからの、正および負にラベリングされた両方のトレーニング例を表す収集されたデータは、その後、プールされ、事前定義されたユーザ運動のセットからユーザの身体部分の運動、または運動のシーケンスを識別するために、すべてのユーザにわたって良好に働く単一の運動モデルをトレーニングするために使用される。
【００５８】
[0063]  モデルをトレーニングする時に正の例よりも数多くの負の例を使用することにより、誤検出の運動識別を低減させることによって、モデル性能を強化できることに留意されたい。たとえば負の例は、明示的に除外されることが意図された特定の運動から収集することができる。たとえば、ユーザが自分の手をポケットに入れる時、全体の運動の一部として手首をねじることがある。しかしながら、ねじり運動が、典型的にはアプリケーションコマンドをトリガするための事前定義された運動を表すものと意図されていることを想定すると、手をポケットに入れることのシーケンス全体を除外することが望ましいことになる。このケースでは、ユーザが手首のねじりと共にポケットに手を入れるシーケンス全体についての慣性センサデータは、モデルトレーニングの目的で負の例として収集されることになる。
【００５９】
[0064]  様々な実施形態において、機械学習運動シーケンスモデルはいくつかの進行段階でトレーニングされる。たとえば、初期にトレーニングされたモデルは、１人または複数のユーザが様々な運動を実行する間に、慣性センサデータに対して実行する可能性がある。次いで、いずれかの運動シーケンスが誤検出をトリガすると必ず、その運動シーケンスの使用がキャプチャされ、モデルの漸進的により正確なインスタンスを再トレーニングするために、負の例として使用される。言い換えれば、部分的にトレーニングされたモデルを実行することによって、追加のトレーニングデータを収集することができる。
【００６０】
[0065]  様々な実施形態において、何らかのユーザ運動シーケンスに基づくモデルによって、身体部分の運動が識別される場合は必ず、ユーザは正しいか誤りか（または等価の状況インジケータ）を示す。次いで、対応する運動シーケンスが正または負としてラベリングされ、モデルの後続のインスタンスを再トレーニングするために使用されることになる。このモデルの更新または再トレーニングプロセスでは、複数のユーザからの複数の追加の正および負の例が使用され、精度が向上したモデルを生成するために、こうしたトレーニングの反復が複数回実行される場合があることに留意されたい。
【００６１】
[0066]  同様に、様々な実施形態において、自然運動コントローラがユーザの身体部分の運動に関して誤った予測を戻し、それによって誤ったアプリケーションコマンドがトリガされるというイベントでは、そのアプリケーションコマンドを停止するかまたは取り消すために、ユーザインターフェースメカニズムを使用することができる。次いで、対応する運動シーケンスは負の例としてラベリングされ、モデルの後続インスタンスを再トレーニングするために使用することができる。さらに、自然運動コントローラがユーザの身体部分の運動に関して誤った予測を戻すイベントでは、ユーザはその後、自分の運動をモデルによって予期された運動に調整するか、あるいは、追加の正および／または負の例を提供して、そのユーザの特定の運動を認識または識別するようにモデルを再トレーニングするのを助けることができる。
【００６２】
[0067]  図２は、機械学習運動シーケンスモデルをトレーニングするための例示的な高水準の概要を示す。図２は、上記の考察に鑑み、またさらには、トレーニングデータ収集（セクション２．３．１を参照）、特徴抽出（セクション２．３．２を参照）、コンテキスト依存性の組み込み（セクション２．３．３を参照）、任意選択の後処理（セクション２．３．４を参照）、およびユーザごとのモデル更新（セクション２．３．５を参照）に関する、以下の考察にも鑑みて、理解するものと意図されることに留意されたい。さらに図２は、様々な深層学習、または機械学習運動シーケンスモデルのトレーニングで使用するように適合可能な他の機械学習技法の、完全な例示または考察を提供するものとは意図されない。
【００６３】
[0068]  一般に、図２によって示される例示的モデルトレーニングプロセスは、１つまたは複数の事前定義された身体部分の運動および／または任意の身体部分の運動の複数のインスタンスを実行するタスクを複数のユーザに課す、トレーニングデータ収集モジュール２００を適用することによって、動作を開始する。次いで、トレーニングデータ収集モジュール２００は、対応する慣性センサデータ２１０を（図１に関して説明した）ユーザ着用制御デバイス１１０から収集する。
【００６４】
[0069]  次いで、ラベリングモジュール２２０は、ローセンサデータのウィンドウまたはフレームを特徴ベクトルに変換することによって、あるいは、特定の深層学習または他の機械学習プロセスに使用される入力のタイプに応じて、ローセンサデータのウィンドウまたはフレームを単に抽出することによって、慣性センサデータ２１０から特徴を抽出する。次いで、ラベリングモジュール２２０は、事前定義またはユーザ定義された身体部分の運動に関連付けられた正または負の例として、ウィンドウまたはフレームにラベリングする。これらのプロセスの結果がラベリングされたトレーニングデータ２３０のセットであり、これはその後、モデルトレーニングおよび更新モジュール２４０に渡され、ラベリングされたトレーニングデータに関して機械学習運動シーケンスモデル１４０をトレーニングするために、深層学習または他の機械学習技法を適用する。様々な実施形態において、モデルトレーニングおよび更新モジュール２４０は、以下のパラグラフでさらに詳細に考察するように、任意選択で、新しくラベリングされたデータが使用可能になった時、および／またはユーザのカスタマイズ入力に応答して、運動シーケンスモデルを更新する。
【００６５】
[0070]  ２．３．１  トレーニングデータ収集
[0071]  一般に、トレーニングデータは、正および負のラベリングされたトレーニング例を生成するために、任意の所望のデータ収集シナリオを使用して収集することができる。たとえば自然運動コントローラの様々な実施形態において、トレーニングデータは、慣性センサを備えるウェアラブルまたはモバイルのデバイスを使用して収集することができる。こうした実施形態において、ユーザが特定の運動を実行するように指示される間に、特定のユーザ着用制御デバイスに関連付けられた慣性センサのセットに関して着信するセンサデータのストリームが記録される。この運動が完了すると、ユーザは、ボタンを押す、運動の終わりの信号を発するためにスクリーン上をクリックする、「運動完了」などのワードまたはワードシーケンスを話す、などを含むが、それらに限定されない、手段を介して、運動の完了を示すように指示される。これらの完了イベントも記録される。次いで、トレーニング中、各完了イベントの前に、フレームのいくつかのウィンドウが運動に関する正のトレーニングデータとしてラベリングされ、他の期間からサンプリングされたウィンドウが負の背景トレーニングデータとして使用される。
【００６６】
[0072]  ２．３．２  特徴抽出
[0073]  特徴抽出は、ローセンサデータフレームのウィンドウを、ＳＶＭベースおよびＤＮＮベースの方法を含む技法を使用してトレーニングされた機械学習運動シーケンスモデルによって使用されるのに好適な特徴ベクトルに変換する。自然運動コントローラの様々な実施形態において、移動平均、ウェーブレット特徴、および正規化されたローデータを含むが、それらに限定されない、特徴ベクトルが、ロー慣性センサデータから抽出された。
【００６７】
[0074]  ２．３．３  コンテキスト依存性の組み込み
[0075]  前述のように、様々な実施形態において、機械学習運動シーケンスモデルは、ユーザが１つまたは複数の既知の運動を実行している間に、様々なセンサから受信されるデータ（または特徴ベクトル）に関してトレーニングされる。次いで、このトレーニングデータは、モデルトレーニングのための入力特徴として使用される。さらに様々な実施形態において、自然運動コントローラは、任意選択で、コンテキスト依存性を組み込むために任意の所望の機械学習およびモデリング技法を適応させる。
【００６８】
[0076]  たとえば、ＲＮＮおよびＬＳＴＭベースの運動シーケンスモデルにおいて、フレームごとに入力特徴を準備する場合、自然運動コントローラは、入力として単一フレームの代わりにコンテキストウィンドウを適用することが可能であり、これによってフレームごとにより正確かつロバストな予測を行うことができる。たとえば、コンテキスト長さをＬとして示すことにより、時点ｔに関する入力は［ｘｔ−Ｌ，ｘｔ−Ｌ＋１，．．．，ｘｔ，．．．，ｘｔ＋Ｌ−１，ｘｔ＋Ｌ］となる。次いで、結果として生じるコンテキストウィンドウは、ローセンサデータの各ウィンドウまたはフレームを、機械学習運動シーケンスモデルについての特徴ベクトルに変換する、特徴抽出プロセスを実装するために使用される。次いで、これらの特徴ベクトルは、出力として予測される運動を計算する際に使用するために、入力として機械学習運動シーケンスモデルに提供される。加えて、様々な実施形態において、運動予測をさらに平滑にするために後処理動作が適用される。
【００６９】
[0077]  ２．３．４  後処理
[0078]  前述のパイプラインは、結果として、各ウィンドウについて（ＳＶＭおよびＤＮＮについて）、または各フレーム（ＲＮＮおよびＬＳＴＭ）について、運動クラスラベル（すなわち、ユーザの身体部分の運動）の予測が可能な機械学習運動シーケンスモデルを生じさせる。様々な実施形態において、予測をさらに平滑化し、それらをよりロバストにするために、任意選択で拡張予測ウィンドウを使用して、いくつかの相対的に少数の先行ウィンドウまたはフレームの各々から予測結果がバッファリングされる。次いで、拡張予測ウィンドウ全体にわたる優勢な予測（たとえば、同じ予測される身体部分の運動を結果として生じる拡張予測ウィンドウを含む、３つの連続ウィンドウまたはフレームのうちの２つから結果として生じる予測）を、アプリケーションコマンドのトリガに使用するための最も可能性の高い運動として出力するために使用することができる。
【００７０】
[0079]  ２．３．５  ユーザごとのモデル更新
[0080]  様々な実施形態において、機械学習運動シーケンスモデルの性能は、特定の身体部分の運動に関してモデルの鋭さを向上させるためにモデルの重みを調節することによって、さらに改良される。言い換えれば、運動シーケンスモデルによる２つの異なる身体部分の運動予測が、特定の運動シーケンスに基づいて同様の確率またはスコアを有する場合、モデルは、わずかに異なるユーザの運動に応答してそれらの予測の間でトグルすることができる。こうしたケースでは、それらのスコアまたは確率の間のコントラストを増加させるために、さらなるトレーニングを運動シーケンスモデルに適用することができる。この追加のトレーニングは、ユーザがシーケンス内の自然変動の結果として同じ運動シーケンスを試行する場合、異なる時点で異なる身体部分の運動シーケンスが検出されないように、一貫性を保証することになる。これが達成される１つの様式は、ユーザが、特定の身体部分の運動シーケンスに関連付けられた運動を繰り返し実行する場合、それらの特定の身体部分の運動シーケンスに関連付けられたモデルシーケンスモデル内の重みを補強または増加させることである。言い換えれば、一般的または頻繁なユーザの身体部分の運動に対応する出力を補強するために、モデル重みが適合される。
【００７１】
[0081]  同様に、様々な実施形態において、運動シーケンスモデルが特定のユーザのパターンに自動的に適合される。たとえば様々な実施形態において、ユーザフィードバックモードなどが、ユーザごとに運動シーケンスモデルを再トレーニングするかまたは他の方法で更新するために使用される追加の正および／または負の例を提供する。言い換えれば、様々な実施形態において、モデルが特定のユーザにとって受け入れ可能な結果を提供していない場合、自然運動コントローラは、特定の正の例（すなわち、正のラベリングされた例）または負の例（すなわち、負のラベリングされた例）を表す運動シーケンスの１つまたは複数のインスタンスを実行するタスクを、ユーザに課すことができる。
【００７２】
[0082]  より具体的に言えば、運動シーケンスモデルを個々のユーザに適合させることは、それらの特定のユーザについて追加のトレーニングデータを収集することを含む。ここでの基本概念は、トレーニングされた運動シーケンスモデルが特定のユーザの運動（すなわち、慣性センサデータ）に適用されるものと考えると、自然運動コントローラは、モデルの更新および再トレーニングで使用するためにそのユーザからのデータの収集を続行することになる。様々な実施形態において、このデータ収集は、追加のセンサデータを収集するために、特定の身体部分の運動シーケンスを実行するタスクをユーザに課すことも含む。さらに様々な実施形態において、ユーザには、誤検出がトリガされた場合は必ず、その後、負の例として使用される対応するセンサデータで示すタスクが課せられる。言い換えれば、ユーザ特有の運動シーケンスに対応する慣性センサデータを用いてモデルを更新することによって、運動シーケンスモデルの予測挙動を経時的に個々のユーザに徐々に適合することができる。
【００７３】
[0083]  一般に、トレーニングされた運動シーケンスモデルは、事前定義された運動シーケンスのセットを伴う。しかしながら様々な実施形態において、自然運動コントローラは、ユーザが新しいかまたはカスタマイズされた運動シーケンスおよび対応する活動化コマンドを追加または作成できるようにする。同様に様々な実施形態において、自然運動コントローラは、ユーザが既存の運動シーケンスおよび対応する活動化コマンドを除去および／または編集できるようにする。言い換えれば、様々な実施形態において、各ユーザは、自分独自の運動シーケンスおよび関連付けられた活動化コマンドを定義することが可能であり、それによって、自然運動コントローラがユーザごとに完全にカスタマイズ可能であることが保証される。
【００７４】
[0084]  運動シーケンスモデルをユーザごとに更新することに加えて、様々な実施形態において、個々の匿名のユーザの身体部分の運動に対応する慣性センサデータを、サーバまたはクラウドサービスにアップロードし、新しいマルチユーザ運動シーケンスモデルを再トレーニングするために使用することが可能であり、その後このモデルは、他のユーザにプッシュまたは再伝搬される。
【００７５】
[0085]  様々な実施形態において、運動シーケンスモデルに対する再トレーニングまたは更新は、個々のユーザが使用可能な計算機能を使用して、ローカルに実行することができる。代替として、または組み合わせで、様々な実施形態において、運動シーケンスモデルに対する再トレーニングまたは更新は、１人または複数のユーザのユーザ運動シーケンスに関連付けられた慣性センサデータのラベリングされた正および負の例を、リモートモデル更新のためにリモートサーバまたはクラウドベースシステムに送信することによって、実行可能である。その結果更新された運動シーケンスモデルは、その後、１人または複数のユーザに再伝搬することができる。
【００７６】
[0086]  前述の更新シナリオのいずれかにおいて、運動シーケンスモデルの更新またはチューニングの頻度を、任意の所望の間隔（すなわち、毎時、毎日、毎週など）に設定することができることに留意されたい。同様に、運動シーケンスモデルの更新、再トレーニング、またはチューニングは、モデル性能の向上が望ましい場合は必ず、オンデマンドベースで実行することができる。
【００７７】
[0087]  ２．４  例示的制御運動
[0088]  一般に、機械学習運動シーケンスモデルは、任意のユーザの身体部分の運動または複数運動のシーケンスを認識するようにトレーニングすることができる。さらに、運動シーケンスモデルによって識別可能な任意のユーザの身体部分の運動または運動のシーケンスを使用して、任意のユーザ着用制御デバイス、あるいは任意の他のコンピューティングデバイスまたは電子的に制御または作動されるデバイスまたは機械において、任意の所望の応答または挙動を始動するためのアプリケーションコマンドをトリガすることができる。したがって、以下のパラグラフで考察される例示的な制御運動、および本書全体を通じて考察される任意の制御運動は、制御運動と、それらの制御運動に応答して自然運動コントローラによってトリガされ得る対応するアプリケーションコマンドとの、事実上無制限の組み合わせのほんの一部を表すことを理解されたい。そのため、説明されるいかなる制御運動も、また説明されるいかなるアプリケーションコマンドも、自然運動コントローラと共に使用するように定義または指定可能な制御運動およびアプリケーションコマンドの範囲を制限することは意図されていない。
【００７８】
[0089]  上記の考察に鑑みて、対応する慣性センサデータからの運動シーケンスモデルによって識別可能ないくつかの例示的な事前定義された身体部分の運動および運動シーケンスは、説明および考察の目的で以下のように要約される。
１．手首のねじりまたは振り。たとえば図３は、ユーザの左手首３１０に着用されたスマートウォッチフォームファクタ３００内のユーザ着用制御デバイスを示す。さらに図３は、ユーザの左手首３１０の軸方向のねじり３２０（ここでねじり運動は、湾曲した太い両側矢印によって示される）を示す。
２．指をタップする
３．拍手
４．指を鳴らす
５．手を振る
６．腕を動かすかまたは振る
７．まばたきをする
８．眼球を動かす
９．歯をカチカチ鳴らすかまたは歯ぎしりをする
１０．口を開け閉めする
１１．頭を回す
１２．頭を傾ける
１３．頭を縦または横に振る
１４．胴体をねじる
１５．別のユーザと握手をする
１６．別のユーザとグータッチをする
１７．足を踏み鳴らす
１８．連続したユーザの足踏み
１９．その他
【００７９】
[0090]  上記の考察に鑑みて、事前定義された運動および運動シーケンスに応答してトリガされるいくつかの例示的アプリケーションコマンドは、説明および考察の目的で以下のように要約される。
１．事前定義された身体部分の運動または運動シーケンスを検出  →  アプリケーションコマンドを開始または実行する
２．事前定義された身体部分の運動または運動シーケンスを検出  →  アプリケーション内の別のセッションまたはウィンドウに切り替える
３．事前定義された身体部分の運動または運動シーケンスを検出  →  メッセージを送信する
４．事前定義された身体部分の運動または運動シーケンスを検出  →  マイクロフォンをオンにする
５．事前定義された身体部分の運動または運動シーケンスを検出  →  通信デバイスを始動させる（たとえば、携帯電話または他の通信デバイスを使用して応答するかまたは呼び出す）
６．事前定義された身体部分の運動または運動シーケンスを検出  →  外部デバイスを制御する（たとえば、テレビジョンに向かって腕を振る、カメラをテレビジョンに向ける、慣性センサが運動を検出する、自然運動コントローラが現在の状態に応じてテレビジョンをオンまたはオフにする）
【００８０】
[0091]  ２．４．１  複数ユーザ間の同期化制御運動
[0092]  様々な実施形態において、自然運動コントローラは、２人またはそれ以上のユーザの間の身体部分の運動または運動シーケンスの間での意図された同期化を（時間および／または近接の関数として）自動的に検出する。こうした同期化された運動または運動シーケンスは、その後、アプリケーションコマンドをトリガするために、個々のユーザの識別された制御運動と同様に使用される。
【００８１】
[0093]  たとえば、２人またはそれ以上のユーザ各々が、スマートウォッチ、ブレスレット、指輪などのフォームファクタ内の制御デバイスを着用しているケースを考えてみる。こうしたケースでは、たとえばユーザのグータッチ、ハイタッチ、握手などの、同期化されるものと決定される任意の事前定義されたユーザの身体部分の運動を使用して、アプリケーションコマンドを始動またはトリガすることができる。たとえば、２人のユーザ間での握手などの同期化されるユーザ運動の識別は、それらのユーザに関連付けられたコンピューティングデバイスまたはストレージデバイスの間での名前、電話番号などのデータまたは連絡先情報の交換を、自動的に始動することができる。こうしたケースでは、ユーザは、任意選択で、こうした共有を実行可能にするかまたは禁止するようにプライバシープロファイルを設定または調整できること、および、その代わり他のユーザもこうしたデータを共有している限り、こうしたデータを提供するなどのオプションを設定できることに留意されたい。
【００８２】
[0094]  ２．４．２  例示的使用シナリオ
[0095]  上記の考察に鑑みて、いくつかの例示的使用シナリオは説明および考察の目的で以下のように要約される。
１．アプリケーションを制御するために運動または運動シーケンスを実行するユーザ
２．識別された運動または運動シーケンスに応答して、他の着用、携行、または外部デバイス（たとえば、電話、テープレコーダー、ライト、テレビジョンなど）と対話するか、またはそれらを制御する、ユーザ着用制御デバイス
３．同期化された運動または運動シーケンスに応答する複数ユーザ間の対話。たとえば、１０人のユーザの集団またはグループは、そのグループ内のすべてのユーザの間で（任意選択で、個々のユーザの個々のプライバシー設定を対象とする）、データ共有、同期通信、同期電子カレンダなどをトリガまたは始動する
４．複数の異なるユーザの運動または運動シーケンスは、単一のアプリケーションコマンドまたはコマンドのシーケンスを始動するために対話する。たとえば、過半数または何らかの事前定義されたしきい値数の異なるユーザが、事前定義された運動シーケンスを実行する（たとえば、４人のユーザのうちの３人が各々自分の手首をねじる）場合、その共有運動シーケンスを使用して、事前定義またはユーザ定義されたアプリケーションコマンドの実行をトリガすることができる。たとえば１２人のユーザのグループにおいて、１２人のうちの７人は運動モデルによって識別された親指を立てる運動を行い、それらのユーザのうちの５人は親指を下げる運動を行うと想定すると、グループのうちの７人という過半数のユーザによって意図されたアプリケーションコマンドをトリガすることができる、さらに、
５．複数の制御デバイス（および対応する慣性センサ）を、手、腕、脚、胴、頭などの運動をキャプチャするためにユーザの身体上（または身体内）に配置することも可能であり、その後、任意の識別された運動をスケルトン追跡に使用することも可能である。たとえば、慣性センサを備える手首または手に着用する制御デバイスを使用してユーザの運動を追跡し、その後、ゲーム内でそれらの運動を再現することができる。たとえば、慣性センサデータから運動シーケンスモデルによって識別されたユーザの手および腕の運動に基づいてデジタルアバターの手がユーザの手を模倣する、ボクシングゲームを考えてみる。有利なことに、こうした実施形態は結果として、スケルトン追跡ベースのアプリケーションを実行可能にするためのユーザの身体または身体部分の視覚追跡に比べて、計算オーバヘッドを大幅に減少させる。
【００８３】
[0096]  ２．４．３  追加のセンサとの組み合わせ
[0097]  様々な実施形態において、自然運動コントローラは、慣性センサデータと１つまたは複数の追加のオプションセンサから受信したセンサデータとを組み合わせる。たとえば慣性センサは、典型的には、加速度計およびジャイロスコープを含むが、それらに限定されない、センサデバイスを含む。しかしながら追加のセンサは、カメラ、レーザベースデバイス、光センサ、近接センサ（たとえば、ユーザまたは制御デバイスが身体または他のデバイスにどの程度近いか）などを含むが、それらに限定されない。
【００８４】
[0098]  これらの追加のオプションセンサは、様々な実施形態において、慣性センサから受信したデータを介して識別された運動に応答してトリガされるアプリケーションコマンドを増補または制御するために使用される。たとえば、特定の事前定義された身体部分の運動シーケンスは、明るい光の中で１つのアプリケーションコマンドをトリガできるが、暗い光の中では別のアプリケーションコマンドをトリガ（または、アプリケーションコマンドのトリガを防止）できる。別の例として、様々なセンサを使用してユーザが水の環境（たとえば、プール、川、湖、海など）にいることを判別でき、その後、防水自然運動コントローラに、様々な目的でのユーザの水泳運動を識別させることができる。
【００８５】
[0099]  ２．５  ユーザ着用、携行、または保持デバイスのための例示的フォームファクタ
[0100]  本書全体を通じて考察されるように、自然運動コントローラの機械学習運動シーケンスモデルは、ユーザの身体部分の運動または運動シーケンスを予測または識別するために、身体着用制御デバイスから受信される慣性センサデータを考慮する。これらのユーザ着用制御デバイスは、広範なフォームファクタのうちのいずれかに実装可能である。さらにフォームファクタに応じて、それらの制御デバイスを、ユーザの身体上に着用すること、ユーザの身体に結合すること、および／または、ユーザの身体内にインプラントまたは他の方法で挿入することができる。これらの考慮事項に鑑みて、いくつかの例示的な制御デバイスのフォームファクタ（各々が、センサデータを自然運動コントローラに通信するための少なくとも１つまたは複数の慣性センサおよび機能を含む）は、説明および考察の目的で以下のように要約される。
１．腕時計
２．リストバンド
３．スマートウォッチ
４．眼鏡
５．コンタクトレンズ（まばたき運動あるいは他の眼球運動または運動シーケンスを検出するための、統合慣性センサを備える）
６．シャツ、パンツ、ジャケット、ドレス、または他の衣料品
７．ベルト
８．靴
９．ブレスレット、ブローチ、ネックレス、指輪、イヤリング、または他のジュエリー
１０．歯、指、指の爪などの上または内部の被覆またはカバーリング。たとえば指の爪に取り付けられた慣性センサは、１つまたは複数のアプリケーションコマンドをトリガするための事前定義された運動として、ユーザに指をタップさせることができる
１１．歯科インプラント（たとえば、１本または複数の歯を制御デバイスに置き換える）。任意選択で、小型携帯電話または通信機能などの追加の機能も含む。たとえば通信を実行可能にするために、事前定義された運動または運動のシーケンスとして、ユーザが歯を１回または複数回カチカチ鳴らすことを識別することによって、こうした制御デバイスを使用する
１２．ボディピアス
１３．ボディインプラント（たとえば、身体の中または上に配置された小さな慣性センサ）
１４．マウスガード（たとえば、スポーツ中または睡眠中の頭または歯の運動を評価する。たとえば睡眠中のユーザの歯ぎしりに対応する運動を識別し、これに応答して１つまたは複数のアプリケーションコマンドを始動する
１５．その他
【００８６】
[0101]  ３．０  自然運動コントローラの動作概要
[0102]  図１から図３に関して、ならびにセクション１および２で上述した詳細な説明をさらに鑑みて、上記で説明したプロセスは、図４の一般的な動作フロー図によって例示される。特に図４は、自然運動コントローラの様々な実施形態のうちのいくつかの動作を要約する、例示的な動作フロー図を提供する。図４は、本明細書で説明する自然運動コントローラの様々な実施形態のすべての網羅的な表現であるものとは意図されず、図４に表された実施形態は単なる説明の目的で提供されていることに留意されたい。
【００８７】
[0103]  さらに、図４において破線または断続線によって表される任意のボックスおよびボックス間の相互接続は、本明細書で説明する自然運動コントローラの任意選択のまたは代替の実施形態を表すこと、ならびに、以下で説明するようなこれらの任意選択のまたは代替の実施形態のいずれかまたはすべては、本書全体を通じて説明される他の代替の実施形態と組み合わせて使用可能であることに留意されたい。
【００８８】
[0104]  様々な実施形態において、図４によって示されるように、自然運動コントローラは、慣性センサの１つまたは複数の個別セットから受信される慣性センサデータ４１０の調整可能数の連続期間を連結することにより、合成運動認識ウィンドウを構築すること４００によって動作を開始し、慣性センサの各個別セットは複数のユーザ着用制御デバイスの個別の１つに結合される。次いで自然運動コントローラは、合成運動認識ウィンドウ４２０を、１つまたは複数の機械ベースの深層学習プロセスによってトレーニングされた前述の機械学習運動シーケンスモデル１４０（本明細書では「運動認識モデル」とも呼ばれる）に渡す。
【００８９】
[0105]  次いで、自然運動コントローラは、１つまたは複数のユーザの身体部分の１つまたは複数の事前定義された運動のシーケンスを識別する４５０ために、機械学習運動シーケンスモデル１４０を合成運動認識ウィンドウ４２０に適用する４４０。次いで自然運動コントローラは、１つまたは複数の事前定義された運動の識別されたシーケンスに応答して、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガする４６０。
【００９０】
[0106]  さらに、様々な実施形態において、自然運動コントローラは、任意選択で、１人または複数のユーザの制御デバイスから受信されるセンサデータに応答して、運動シーケンスモデルを定期的に再トレーニングする４７０。加えて、自然運動コントローラは、任意選択で、個々のユーザのユーザ着用制御デバイスに関連付けられた運動認識モデルのローカルコピー上でユーザごとにこの再トレーニングを実行する。
【００９１】
[0107]  ４．０  例示的動作環境
[0108]  本明細書で説明する自然運動コントローラの実施形態は、多数のタイプの汎用または特定用途向けのコンピューティングシステム環境または構成内で動作可能である。図５は、本明細書で説明するような、自然運動コントローラの様々な実施形態および要素が実施可能な、汎用コンピュータシステムの簡略化された例を示す。図５に示される簡略化されたコンピューティングデバイス５００において、破線または断続線によって表される任意のボックスは、簡略化されたコンピューティングデバイスの代替の実施形態を表すことに留意されたい。以下で説明するように、これらの代替の実施形態のうちのいずれかまたはすべては、本書全体を通じて説明される他の代替の実施形態と組み合わせて使用することができる。
【００９２】
[0109]  簡略化されたコンピューティングデバイス５００は、典型的には、パーソナルコンピュータ（PC）、サーバコンピュータ、ハンドヘルドコンピューティングデバイス、ラップトップまたはモバイルコンピュータ、携帯電話および携帯情報端末（PDA）などの通信デバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラマブル家庭用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、ならびにオーディオまたはビデオメディアプレーヤなどの、少なくともいくつかの最小限の計算機能を有するデバイス内に見られる。
【００９３】
[0110]  デバイスが本明細書で説明する自然運動コントローラの実施形態を実現できるようにするために、デバイスは、基本的な計算動作を実行可能にするのに十分な計算機能およびシステムメモリを有するものとする。特に、図５に示される簡略化されたコンピューティングデバイス５００の計算機能は、１つまたは複数の処理ユニット５１０によって一般的に示され、１つまたは複数のグラフィクス処理ユニット（GPU）５１５も含むことが可能であり、そのいずれかまたは両方がシステムメモリ５２０と通信している。簡略化されたコンピューティングデバイス５００の処理ユニット５１０は、専用マイクロプロセッサ（デジタル信号プロセッサ（DSP）、超長命令語（VLIW）プロセッサ、フィールドプログラマブルゲートアレイ（FPGA）、または他のマイクロコントローラなど）とすることが可能であるか、あるいは、１つまたは複数の処理コアを有する従来の中央処理ユニット（CPU）とすることが可能であり、マルチコアプロセッサ内に１つまたは複数のＧＰＵベースコアまたは他の特定用途向けコアも含むことができることに留意されたい。
【００９４】
[0111]  加えて、簡略化されたコンピューティングデバイス５００は、たとえば通信インターフェース５３０などの他のコンポーネントも含むことができる。簡略化されたコンピューティングデバイス５００は、１つまたは複数の従来のコンピュータ入力デバイス５４０（たとえば、タッチスクリーン、タッチセンサ面、ポインティングデバイス、キーボード、オーディオ入力デバイス、音声または会話ベースの入力および制御デバイス、ビデオ入力デバイス、触覚入力デバイス、ワイヤードまたはワイヤレスデータ伝送を受信するためのデバイスなど）、または、こうしたデバイスの任意の組み合わせも含むことが可能である。
【００９５】
[0112]  同様に、簡略化されたコンピューティングデバイス５００との、ならびに、入力、出力、制御、フィードバック、および、１人または複数のユーザあるいは自然運動コントローラに関連付けられた他のデバイスまたはシステムへの応答を含む、自然運動コントローラの任意の他のコンポーネントまたはフィーチャとの、様々な対話は、多様なナチュラルユーザインターフェース（NUI）シナリオによって実行可能化される。自然運動コントローラによって実行可能化されるＮＵＩの技法およびシナリオは、マウス、キーボード、リモートコントロールなどの入力デバイスによって人工的な制約を課せられることなく、１人または複数のユーザが自然運動コントローラと「自然」に対話できるようにするインターフェース技術を含むが、それに限定されない。
【００９６】
[0113]  こうしたＮＵＩ実装は、マイクロフォンまたは他の入力デバイス５４０あるいはシステムセンサ５０５を介してキャプチャされたユーザの会話または発声から導出されるＮＵＩ情報を使用することを含むが、それらに限定されない、様々な技法の使用によって実行可能化される。こうしたＮＵＩ実装は、ユーザの表情から、および、ユーザの手、指、手首、腕、脚、身体、頭、眼などの位置、運動、または向きからの、システムセンサ５０５または他の入力デバイス５４０から導出される情報を含むが、それらに限定されない、様々な技法の使用によっても実行可能化され、こうした情報は、立体またはタイムオブフライト方式カメラシステム、赤外線カメラシステム、ＲＧＢ（赤、緑、および青）カメラシステムなどの、様々なタイプの２Ｄまたは深度画像化デバイス、またはこうしたデバイスの任意の組み合わせを使用して、キャプチャすることができる。
【００９７】
[0114]  こうしたＮＵＩ実装のさらなる例は、タッチおよびスタイラス認識、運動およびジェスチャ認識（スクリーンまたはディスプレイ表面の、スクリーン上および隣接の両方）、空上または接触ベースの運動およびジェスチャ、ユーザタッチ（様々な表面、物体、または他のユーザ上）、ホバーベースの入力またはアクションなどから導出される、ＮＵＩ情報を含むが、それらに限定されない。こうしたＮＵＩ実装は、ユーザの意図、希望、および／または目標などの情報を予測するために、現在または過去のユーザの挙動、入力、アクションなどを、単独または他のＮＵＩ情報と組み合わせて評価する、様々な予測機械インテリジェンスプロセスの使用を含むこともできるが、それらに限定されない。ＮＵＩベース情報のタイプまたはソースに関係なく、その後こうした情報を使用して、自然運動コントローラの１つまたは複数の入力、出力、アクション、または機能特徴を始動、終了、または他の方法で制御するか、あるいはそれらと対話することができる。
【００９８】
[0115]  しかしながら、前述の例示的ＮＵＩシナリオは、人工的な制約または追加の信号の使用を任意の組み合わせのＮＵＩ入力と組み合わせることによって、さらに増補できることを理解されたい。こうした人工的な制約または追加の信号は、マウス、キーボード、およびリモートコントロールなどの入力デバイス５４０によって、あるいは、加速度計、ユーザの筋肉によって生成される電気信号を表す筋電信号を受信するための筋電図検査（EMG）センサ、心拍モニタ、ユーザの発汗を測定するための皮膚電気伝導センサ、ユーザの脳の活動または電場を測定または他の方法で感知するためのウェアラブルまたはリモートのバイオセンサ、ユーザ身体温度の変化または差異を測定するためのウェアラブルまたはリモートのバイオセンサなどの、多様なリモートまたはユーザ着用のデバイスによって、課せられるかまたは生成され得る。これらのタイプの人工的制約または追加の信号から導出される任意のこうした情報は、自然運動コントローラの１つまたは複数の入力、出力、アクション、または機能特徴を始動、終了、または他の方法で制御するか、あるいはそれらと対話するために、任意の１つまたは複数のＮＵＩ入力と組み合わせることができる。
【００９９】
[0116]  簡略化されたコンピューティングデバイス５００は、１つまたは複数の従来のコンピュータ出力デバイス５５０など（たとえば、ディスプレイデバイス５５５、オーディオ出力デバイス、ビデオ出力デバイス、ワイヤードまたはワイヤレスのデータ伝送を伝送するためのデバイスなど）の、他の任意選択のコンポーネントも含むことができる。汎用コンピュータ向けの典型的な通信インターフェース５３０、入力デバイス５４０、出力デバイス５５０、およびストレージデバイス５６０は当業者に周知であるため、本明細書では詳細に説明しないことに留意されたい。
【０１００】
[0117]  図５に示される簡略化されたコンピューティングデバイス５００は、多様なコンピュータ可読媒体を含むこともできる。コンピュータ可読媒体は、ストレージデバイス５６０を介してコンピューティングデバイス５００によるアクセスが可能な任意の使用可能媒体とすることが可能であり、コンピュータ可読またはコンピュータ実行可能な命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための、取り外し可能５７０および／または取り外し不可５８０のいずれかの、揮発性および不揮発性の両方の媒体を含むことができる。
【０１０１】
[0118]  コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含む。コンピュータ記憶媒体は、デジタル多用途ディスク（DVD）、ブルーレイディスク（BD）、コンパクトディスク（CD）、フロッピーディスク、テープドライブ、ハードドライブ、光ドライブ、ソリッドステートメモリデバイス、ランダムアクセスメモリ（RAM）、読み取り専用メモリ（ROM）、電気的消去可能プログラマブル読み取り専用メモリ（EEPROM）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、スマートカード、フラッシュメモリ（たとえば、カード、スティック、およびキードライブ）、磁気カセット、磁気テープ、磁気ディスクストレージ、磁気ストライプ、または他の磁気ストレージデバイスなどの、有形なコンピュータ可読または機械可読の媒体またはストレージデバイスを指す。さらに、伝搬信号は、コンピュータ可読記憶媒体の範囲には含まれない。
【０１０２】
[0119]  コンピュータ可読またはコンピュータ実行可能の命令、データ構造、プログラムモジュールなどの情報の保持は、（コンピュータ記憶媒体とは対照的に）１つまたは複数の変調データ信号または搬送波を符号化するための多様な前述の通信媒体、あるいは他の移送メカニズムまたは通信プロトコルのいずれかを使用することによっても達成可能であり、任意のワイヤードまたはワイヤレスの情報送達メカニズムを含むことができる。「変調データ信号」または「搬送波」という用語は、一般に、その特徴のうちの１つまたは複数が、信号内の情報を符号化するような方法で設定または変更された信号を指すことに留意されたい。たとえば、通信媒体は、１つまたは複数の変調データ信号を搬送するワイヤードネットワークまたはダイレクトワイヤード接続などのワイヤード媒体と、音響、無線周波（RF）、赤外線、レーザ、および、１つまたは複数の変調データ信号または搬送波を送信および／または受信するための他のワイヤレス媒体などのワイヤレス媒体とを、含むことができる。
【０１０３】
[0120]  さらに、本明細書で説明する様々な自然運動コントローラの実施形態のうちのいくつかまたはすべてを具体化するソフトウェア、プログラム、および／またはコンピュータプログラム製品、あるいはそれらの一部は、コンピュータ可読または機械可読の媒体またはストレージデバイス、および、コンピュータ実行可能命令または他のデータ構造の形の通信媒体の、任意の所望の組み合わせでの記憶、受信、送信、またはそれらからの読み取りが可能である。加えて、特許請求される主題は、開示された主題を実装するようにコンピュータを制御するためのソフトウェア、ファームウェア５２５、ハードウェア、またはそれらの任意の組み合わせを生成するために、標準のプログラミングおよび／またはエンジニアリング技法を使用する、方法、装置、または製品として実装可能である。「製品」という用語は、本明細書で使用する場合、任意のコンピュータ可読デバイスまたは媒体からのアクセスが可能なコンピュータプログラムを包含することが意図される。
【０１０４】
[0121]  本明細書で説明する自然運動コントローラの実施形態は、コンピューティングデバイスによって実行されるプログラムモジュールなどのコンピュータ実行可能命令との一般的な関連において、さらに説明することができる。一般に、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。自然運動コントローラの実施形態は、タスクが１つまたは複数のリモート処理デバイスによって実行されるか、あるいは、１つまたは複数の通信ネットワークを介してリンクされた１つまたは複数のデバイスのクラウド内にある、分散コンピューティング環境でも実施可能である。分散コンピューティング環境において、プログラムモジュールは、媒体ストレージデバイスを含む、ローカルおよびリモートの両方のコンピュータ記憶媒体内に配置可能である。加えて前述の命令は、一部または全体が、プロセッサを含むかまたは含まないことが可能なハードウェア論理回路として実装可能である。
【０１０５】
[0122]  代替または追加として、本明細書で説明する機能は、少なくとも部分的に１つまたは複数のハードウェア論理コンポーネントによって実行可能である。たとえば、制限なしに、使用可能な例示タイプのハードウェア論理コンポーネントは、フィールドプログラマブルゲートアレイ（FPGA）、特定用途向け集積回路（ASIC）、特定用途向け標準製品（ASSP）、システムオンチップシステム（SOC）、複合プログラマブル論理デバイス（CPLD）などを含む。
【０１０６】
[0123]  ５．０  他の実施形態
[0124]  以下のパラグラフは、本書で請求可能な実施形態の様々な例を要約している。しかしながら、以下で要約される実施形態は、自然運動コントローラの詳細な説明に鑑みて請求され得る主題を制限することは意図されていないことを理解されたい。さらに、以下で要約される実施形態のいずれかまたはすべては、詳細な説明全体を通じて説明される実施形態のいくつかまたはすべて、および図面の１つまたは複数に示された任意の実施形態、ならびに、以下で説明する任意の他の実施形態および例との、任意の所望の組み合わせで請求可能である。加えて、以下の実施形態および例は、本書全体を通じて説明される詳細な説明および図面に鑑みて理解されるものと意図されることに留意されたい。
【０１０７】
[0125]  様々な実施形態において、自然運動コントローラは、１つまたは複数の事前定義されたユーザの身体部分の運動の識別されたシーケンスに応答して、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガするための、手段、プロセス、または技法によって実装され、それにより、ユーザが身体部分の運動を実行することによってコンピューティングデバイスと対話できるようにすることにより、ユーザ対話の性能および効率が向上する。
【０１０８】
[0126]  第１の例として、様々な実施形態において、慣性センサの１つまたは複数の個別セットから受信される慣性センサデータの調整可能な数の連続期間を連結することにより、合成運動認識ウィンドウを構築するための、手段、プロセス、または技法を介して、コンピュータ実装方法が提供され、慣性センサの各個別セットは複数のユーザ着用制御デバイスの個別の１つに結合される。次いで、合成運動認識ウィンドウは、１つまたは複数の機械ベースの深層学習プロセスによってトレーニングされた運動認識モデルに渡される。次いでプロセスは、１つまたは複数のユーザの身体部分の１つまたは複数の事前定義された運動のシーケンスを識別するために、運動認識モデルを合成運動認識ウィンドウに適用することによって続行される。次いでプロセスは、１つまたは複数の事前定義された運動の識別されたシーケンスに応答して、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガすることによって続行され、それにより、身体部分の運動を実行することによってユーザがコンピューティングデバイスと対話できるようにすることで、ユーザ対話の性能および効率を向上させる。
【０１０９】
[0127]  第２の例として、様々な実施形態において、１人または複数のユーザの制御デバイスから受信されるセンサデータに応答して、運動認識モデルを再トレーニングするための手段、プロセス、または技法を介して、第１の例はさらに修正される。
【０１１０】
[0128]  第３の例として、様々な実施形態において、個々のユーザのユーザ着用制御デバイスに関連付けられた運動認識モデルのローカルコピー上でユーザごとに実行される運動認識モデルを再トレーニングするための手段、プロセス、または技法を介して、第２の例はさらに修正される。
【０１１１】
[0129]  第４の例として、様々な実施形態において、複数のユーザ着用制御デバイスのうちの少なくとも１つを手首着用制御デバイスとして実装するための手段、プロセス、または技法を介して、第１の例、第２の例、および第３の例のうちのいずれかはさらに修正され、１つまたは複数の事前定義された運動のシーケンスはユーザの手首のねじりを含む。
【０１１２】
[0130]  第５の例として、様々な実施形態において、ユーザの手首のねじりに応答して通信デバイスの通信セッションの実行をトリガするための手段、プロセス、または技法を介して、第４の例はさらに修正される。
【０１１３】
[0131]  第６の例として、様々な実施形態において、２人またはそれ以上の異なるユーザ間での１つまたは複数のユーザの身体部分の運動間の識別された同期化に応答して、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガするための手段、プロセス、または技法を介して、第１の例、第２の例、および第３の例のうちのいずれかはさらに修正される。
【０１１４】
[0132]  第７の例として、様々な実施形態において、２人またはそれ以上の異なるユーザの合成運動認識ウィンドウに関連付けられたタイムスタンプを比較することによって同期化を識別するための手段、プロセス、または技法を介して、第６の例はさらに修正される。
【０１１５】
[0133]  第８の例として、様々な実施形態において、２人またはそれ以上のユーザのユーザ着用制御デバイスが、他のユーザのうちの少なくとも１人の少なくとも１つのユーザ着用制御デバイスの最小しきい値距離内にある旨の決定に応答して、同期化を識別するための手段、プロセス、または技法を介して、第６の例および第７の例のいずれかはさらに修正される。
【０１１６】
[0134]  第９の例として、様々な実施形態において、識別された同期化に応答して、２人またはそれ以上のユーザに関連付けられたコンピューティングデバイス間でのデータの自動交換をトリガするための手段、プロセス、または技法を介して、第６の例および第７の例のいずれかはさらに修正される。
【０１１７】
[0135]  第１０の例として、様々な実施形態において、識別された同期化に応答して、２人またはそれ以上のユーザに関連付けられたコンピューティングデバイス間でのユーザ連絡先情報の自動交換をトリガするための手段、プロセス、または技法を介して、第６の例および第７の例のいずれかはさらに修正される。
【０１１８】
[0136]  第１１の例として、様々な実施形態において、汎用コンピューティングデバイスおよびコンピューティングデバイスによって実行可能なプログラムモジュールを備えるコンピュータプログラムを適用するための手段、プロセス、または技法を介して、システムが提供され、コンピューティングデバイスは、コンピュータプログラムのプログラムモジュールによって、慣性センサの１つまたは複数の個別セットから受信される１つまたは複数の連続期間の加速および角速度データから特徴を抽出するよう指示され、慣性センサの各個別セットは、複数のユーザ着用制御デバイスのうちの個別の１つに結合される。次いでこのシステムは、抽出された特徴を確率的機械学習運動シーケンスモデルに渡す。次いでこのシステムは、１つまたは複数のユーザの身体部分の１つまたは複数の対応する運動のシーケンスを識別するために、機械学習運動シーケンスモデルを抽出された特徴に適用する。次いでこのシステムは、運動の識別されたシーケンスに応答して、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガし、それによって、身体部分の運動を実行することによってユーザがコンピューティングデバイスと対話できるようにすることで、ユーザ対話の性能および効率を向上させる。
【０１１９】
[0137]  第１２の例として、様々な実施形態において、複数のユーザ着用制御デバイスのうちの少なくとも１つを手首着用制御デバイスとして実装するための手段、プロセス、または技法を介して、第１１の例はさらに修正され、運動の識別されたシーケンスは、通信デバイスの通信セッションの実行をトリガするユーザの手首のねじりを含む。
【０１２０】
[0138]  第１３の例として、様々な実施形態において、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガするために、２人またはそれ以上の異なるユーザ間での１つまたは複数のユーザの身体部分の運動間の同期化を識別するための手段、プロセス、または技法を介して、第１１の例および第１２の例のいずれかはさらに修正される。
【０１２１】
[0139]  第１４の例として、様々な実施形態において、２人またはそれ以上の異なるユーザのユーザ着用制御デバイスが、他のユーザのうちの少なくとも１人の少なくとも１つのユーザ着用制御デバイスの最小しきい値距離内にある旨を決定すること、ならびに、２人またはそれ以上の異なるユーザに関連付けられた加速および角速度データから抽出された特徴に関連付けられたタイムスタンプを比較することによって、同期化を識別するための手段、プロセス、または技法を介して、第１３の例はさらに修正される。
【０１２２】
[0140]  第１５の例として、様々な実施形態において、２人またはそれ以上の異なるユーザに関連付けられたコンピューティングデバイス間でデータの自動交換をトリガするための手段、プロセス、または技法を介して、第１３の例および第１４の例のいずれかはさらに修正される。
【０１２３】
[0141]  第１６の例として、様々な実施形態において、ユーザ運動を識別するためのコンピュータ実行可能命令が内部に記憶され、前記命令はシステムを備えるコンピューティングデバイスに方法を実行させる、コンピュータ可読媒体が、慣性センサの１つまたは複数の個別セットから受信される慣性センサデータの調整可能な数の連続期間を連結することにより、合成運動認識ウィンドウを構築するための、手段、プロセス、または技法を介して提供され、慣性センサの各個別セットは複数のユーザ着用制御デバイスの個別の１つに結合される。次いで、合成運動認識ウィンドウは、１つまたは複数の機械ベースの深層学習プロセスによってトレーニングされた運動認識モデルに渡される。次いで、１つまたは複数のユーザの身体部分の１つまたは複数の事前定義された運動のシーケンスを識別するために、運動認識モデルが合成運動認識ウィンドウに適用される。次いで、１つまたは複数の事前定義された運動の識別されたシーケンスに応答して、１つまたは複数のアプリケーションコマンドのシーケンスの実行がトリガされ、それにより、身体部分の運動を実行することによってユーザがコンピューティングデバイスと対話できるようにすることで、ユーザ対話の性能および効率を向上させる。
【０１２４】
[0142]  第１７の例として、様々な実施形態において、１人または複数のユーザの制御デバイスから受信されるセンサデータに応答して、運動認識モデルを定期的に再トレーニングするための手段、プロセス、または技法を介して、第１６の例はさらに修正される。
【０１２５】
[0143]  第１８の例として、様々な実施形態において、２人またはそれ以上の異なるユーザ間での１つまたは複数のユーザの身体部分の運動間の同期化が、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガすることを識別するための手段、プロセス、または技法を介して、第１６の例および第１７の例のいずれかはさらに修正される。
【０１２６】
[0144]  第１９の例として、様々な実施形態において、２人またはそれ以上のユーザのユーザ着用制御デバイスが互いの最小しきい値距離内にある旨が決定された場合、２人またはそれ以上の異なるユーザの合成運動認識ウィンドウに関連付けられたタイムスタンプを比較することによって、同期化を識別するための手段、プロセス、または技法を介して、第１８の例はさらに修正される。
【０１２７】
[0145]  第２０の例として、様々な実施形態において、識別された同期化に応答して、２人またはそれ以上のユーザに関連付けられたコンピューティングデバイス間でのユーザ連絡先情報の自動交換をトリガするための手段、プロセス、または技法を介して、第１８の例および第１９の例のいずれかはさらに修正される。
【０１２８】
[0146]  自然運動コントローラの前述の説明は、例示および説明の目的で提示されてきた。これが網羅的であること、または特許請求される主題が開示された精密な形に限定されることは意図されていない。上記の教示に照らして、多くの修正および変形が可能である。さらに、前述の代替の実施形態のいずれかまたはすべてが、自然運動コントローラの追加のハイブリッドな実装を形成することが望ましい任意の組み合わせで使用できることに留意されたい。自然運動コントローラの範囲は、この詳細な説明によってではなく、本明細書に添付の特許請求の範囲によって限定されることが意図される。主題は構造的特徴および／または方法論的動作に特有の言い回しで説明されているが、添付の特許請求の範囲で定義される主題は、必ずしも前述の特定の特徴または動作に限定されないことを理解されよう。むしろ、前述の特定の特徴および動作は、特許請求の範囲を実装する例示的な形として開示されており、他の等価の特徴および動作は特許請求の範囲内にあることが意図される。
【０１２９】
[0147]  上記で説明された内容は例示的な実施形態を含む。もちろん、特許請求される主題を説明するために、コンポーネントまたは方法論の想定され得るあらゆる組み合わせを説明することは不可能であるが、当業者であれば、多くのさらなる組み合わせおよび並べ替えが可能であることを理解されよう。したがって、特許請求される主題は、前述の自然運動コントローラの詳細な説明の趣旨および範囲内にあるこうした変更、修正、および変形のすべてを包含することが意図される。
【０１３０】
[0148]  前述のコンポーネント、デバイス、回路、システムなどによって実行される様々な機能に関して、こうしたコンポーネントを説明するために使用される用語（「手段」への言及を含む）は、別段に規定されていない限り、特許請求される主題の本明細書に示される例示的態様において機能を実行する、開示された構造とは構造的に等価でない場合であっても、説明されたコンポーネントの指定された機能を実行する任意のコンポーネント（たとえば、機能的等価物）に対応することが意図される。この点で、前述の実施形態は、特許請求される主題の様々な方法の動作および／またはイベントを実行するためのコンピュータ実行可能命令を有する、システムならびにコンピュータ可読記憶媒体を含むことも認識されよう。
【０１３１】
[0149]  前述の実施形態（適切なアプリケーションプログラミングインターフェース（API）、ツールキット、ドライバコード、オペレーティングシステム、コントロール、スタンドアロン型またはダウンロード可能なソフトウェアオブジェクトなど）を実現し、アプリケーションおよびサービスが本明細書で説明する実施形態を使用できるようにする、複数の方法が存在する。特許請求される主題は、ＡＰＩ（または他のソフトウェアオブジェクト）の見地から、ならびに、本明細書に記載される実施形態に従って動作するソフトウェアまたはハードウェアオブジェクトの見地から、この使用を企図する。したがって、本明細書で説明する様々な実施形態は、完全にハードウェア内にある、または部分的にハードウェア内および部分的にソフトウェア内にある、または完全にソフトウェア内にある、態様を有することができる。
【０１３２】
[0150]  前述のシステムは、いくつかのコンポーネント間での対話に関して説明してきた。こうしたシステムおよびコンポーネントは、それらのコンポーネントまたは指定されたサブコンポーネント、指定されたコンポーネントまたはサブコンポーネントのうちのいくつか、および／または、追加のコンポーネントを含むことが可能であり、前述の様々な並べ替えおよび組み合わせに従うことを理解されよう。サブコンポーネントは、親コンポーネント（たとえば、階層コンポーネント）内に含まれる代わりに、他のコンポーネントに通信可能に結合されたコンポーネントとしても実装可能である。
【０１３３】
[0151]  加えて、１つまたは複数のコンポーネントは、集約機能を提供する単一のコンポーネントに組み合わせるか、またはいくつかの個別のサブコンポーネントに分割することが可能であり、統合機能を提供するためにこうしたサブコンポーネントに通信可能に結合するための管理層などの任意の１つまたは複数の中間層を提供することが可能なことに留意されたい。本明細書で説明する任意のコンポーネントは、本明細書では具体的に説明していないが、当業者には一般的に知られている、１つまたは複数の他のコンポーネントとも対話可能である。
【図１】
2017537370.tif 000012
【図２】
2017537370.tif 000013
【図３】
2017537370.tif 000014
【図４】
2017537370.tif 000015
【図５】
2017537370.tif 000016
【手続補正書】
【提出日】平成28年3月9日(2016.3.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
慣性センサの１つまたは複数の個別セットから受信される慣性センサデータの調整可能な数の連続期間を連結することによって、合成運動認識ウィンドウを構築することであって、慣性センサの各個別セットは複数のユーザ着用制御デバイスの個別の１つに結合される、構築すること、
前記合成運動認識ウィンドウを、１つまたは複数の機械ベースの深層学習プロセスによってトレーニングされた運動認識モデルに渡すこと、
１つまたは複数のユーザの身体部分の１つまたは複数の事前定義された運動のシーケンスを識別するために、前記運動認識モデルを前記合成運動認識ウィンドウに適用すること、および、
前記１つまたは複数の事前定義された運動の識別されたシーケンスに応答して、１つまたは複数のアプリケーションコマンドのシーケンスの実行をトリガすることであって、それにより、ユーザが身体部分の運動を実行することによってコンピューティングデバイスと対話できるようにすることにより、ユーザ対話の性能および効率を向上させる、トリガすること、
を含む、コンピュータ実装方法。
【請求項２】
１人または複数のユーザの前記制御デバイスから受信されるセンサデータに応答して、前記運動認識モデルを定期的に再トレーニングすることをさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記運動認識モデルを再トレーニングすることは、個々のユーザの前記ユーザ着用制御デバイスに関連付けられた前記運動認識モデルのローカルコピー上でユーザごとに実行される、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記複数のユーザ着用制御デバイスのうちの少なくとも１つは手首着用制御デバイスであり、前記１つまたは複数の事前定義された運動のシーケンスはユーザの手首のねじりを含む、請求項１から３のいずれか１項に記載のコンピュータ実装方法。
【請求項５】
前記ユーザの手首の前記ねじりは、通信デバイスの通信セッションの実行をトリガする、請求項４に記載のコンピュータ実装方法。
【請求項６】
２人またはそれ以上の異なるユーザ間での前記１つまたは複数のユーザの身体部分の運動間の同期化の識別は、前記１つまたは複数のアプリケーションコマンドのシーケンスの前記実行をトリガする、請求項１から５のいずれか１項に記載のコンピュータ実装方法。
【請求項７】
前記同期化は、前記２人またはそれ以上の異なるユーザの前記合成運動認識ウィンドウに関連付けられたタイムスタンプを比較することによって識別される、請求項６に記載のコンピュータ実装方法。
【請求項８】
前記同期化は、前記２人またはそれ以上のユーザの前記ユーザ着用制御デバイスは、前記他のユーザのうちの少なくとも１人の少なくとも１つの前記ユーザ着用制御デバイスの最小しきい値距離内にある旨の決定に従って識別される、請求項６または７に記載のコンピュータ実装方法。
【請求項９】
前記１つまたは複数のアプリケーションコマンドのシーケンスの前記トリガされた実行は、前記２人またはそれ以上のユーザに関連付けられたコンピューティングデバイス間でのユーザ連絡先情報の自動交換を生じさせる、請求項７または８に記載のコンピュータ実装方法。
【請求項１０】
汎用コンピューティングデバイスと、
前記コンピューティングデバイスによって実行可能なプログラムモジュールを備えるコンピュータプログラムと、
を備える、システムであって、
前記コンピューティングデバイスは、前記コンピュータプログラムの前記プログラムモジュールによって請求項１から９のいずれか１項に記載のコンピュータ実装方法を実行すること、
が指示される、システム。
【請求項１１】
ユーザ運動を識別するためのコンピュータ実行可能命令が内部に記憶された、コンピュータ可読媒体であって、前記命令はコンピューティングデバイスに、請求項１から９のいずれか１項に記載のコンピュータ実装方法を実行させる、コンピュータ可読媒体。
【国際調査報告】
2017537370.tif 000017
2017537370.tif 000018
2017537370.tif 000019