(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-12
(45)【発行日】2023-07-21
(54)【発明の名称】ジェスチャの分類および加えられた力の推定のための教師なし機械学習のための方法および装置
(51)【国際特許分類】
G06F 3/01 20060101AFI20230713BHJP
A63F 13/212 20140101ALI20230713BHJP
A63F 13/428 20140101ALI20230713BHJP
G06N 20/00 20190101ALI20230713BHJP
【FI】
G06F3/01 515
G06F3/01 514
A63F13/212
A63F13/428
G06N20/00 160
G06F3/01 570
(21)【出願番号】P 2021541045
(86)(22)【出願日】2019-02-28
(86)【国際出願番号】 US2019020065
(87)【国際公開番号】W WO2020176106
(87)【国際公開日】2020-09-03
【審査請求日】2021-12-07
(73)【特許権者】
【識別番号】515046968
【氏名又は名称】メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー
【氏名又は名称原語表記】META PLATFORMS TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】110002974
【氏名又は名称】弁理士法人World IP
(72)【発明者】
【氏名】バラシャン, アレクサンドル
【審査官】木村 慎太郎
(56)【参考文献】
【文献】特表2016-507851(JP,A)
【文献】特表2013-506216(JP,A)
【文献】特開平07-248873(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
A63F 13/212
A63F 13/428
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
プロセッサと、
前記プロセッサに結合される複数の神経筋センサと、
命令を記憶するメモリと、
を備え、前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
ユーザが
、ジェスチャの
実施中に加えられる力の量を変化させながら当該ジェスチャの第1の一回の動作を実施するときに、
前記複数の神経筋センサを介して、前記ユーザから第1の複数の神経筋信号を受信することと、
前記第1の複数の神経筋信号に基づいて
生成された訓練データを用いて分類モデルを訓練することであって、
前記訓練データは、前記ジェスチャの実施中に加えられる前記力の量の変化を示すデータを含み、前記分類モデルを訓練することは、
前記第1の複数の神経筋信号から
、前記ジェスチャの顕著な特徴を示す1つまたは複数の値を導出するこ
とと、
前記第1の複数の神経筋信号から導出された前記1つまたは複数の値に基づいて、前記分類モデルにおける前記ジェスチャの第1のカテゴリ表現を生成することと、
を含
み、
前記第1のカテゴリ表現は、異なる量の力を用いて実施された前記ジェスチャを特徴付けるものであり、前記第1の複数の神経筋信号から検出された異なる量の力は、1つまたは複数の接続デバイスに送信することができる異なるコマンド信号に関連付けられる、分類モデルを訓練することと、
前記ユーザが前記ジェスチャの第2の一回の動作を実施するときに、
前記複数の神経筋センサを介して、前記ユーザから第2の複数の神経筋信号を受信することと、
前記分類モデルおよび前記第2の複数の神経筋信号に基づいて、前記ユーザが前記ジェスチャの前記第2の一回の動作を実施したと判定することと、
を行わ
せ、
前記分類モデルにおける前記ジェスチャの前記カテゴリ表現は、教師なし機械学習技法を使用して生成される、装置。
【請求項2】
前記ジェスチャの前記カテゴリ表現は、前記ジェスチャの実施中に加えられる力の値を示す力のスケールを含む、請求項1に記載の装置。
【請求項3】
前記分類モデルはほぼリアルタイムで訓練される、請求項1に記載の装置。
【請求項4】
前記複数の神経筋センサはウェアラブルデバイス上に配置される、請求項1に記載の装置。
【請求項5】
前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
前記ジェスチャの前記第2の一回の動作の実施中に前記ユーザによって加えられる力を示す少なくとも1つの値を決定すること
をさらに行わせる、請求項1に記載の装置。
【請求項6】
前記ユーザが前記ジェスチャの前記第2の一回の動作を実施したと判定することは、
前記第2の複数の神経筋信号から1つまたは複数の第2の値を導出することと、
導出された前記1つまたは複数の第2の値に基づいて前記ジェスチャの第2のカテゴリ表現を生成することと、
前記ジェスチャの前記第1のカテゴリ表現と前記ジェスチャの前記第2のカテゴリ表現との間で計算される類似性指標に基づいて、前記ユーザが前記ジェスチャの前記第2の一回の動作を実施したと判定することと、
を含む、請求項1に記載の装置。
【請求項7】
前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
前記ジェスチャの前記カテゴリ表現に基づいて、前記ジェスチャの前記第2の一回の動作の実施中に前記ユーザによって加えられる力の推定値を決定すること
をさらに行わせる、請求項1に記載の装置。
【請求項8】
前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
前記ジェスチャの前記第2の一回の動作の実施中に前記ユーザによって加えられる力を示
す少なくとも1つの値が所定の力の閾値を超えたという判定に応答して、前記装置から離れたデバイスに伝達される第1のコマンド信号を生成することと、
前記ジェスチャの前記第2の一回の動作の実施中に前記ユーザによって加えられる前記力を示す前記少なくとも1つの値が前記所定の力の閾値を超えていないという判定に応答して、前記デバイスに伝達される第2のコマンド信号を生成することであって、前記第1のコマンド信号は前記第2のコマンド信号とは異なる、第2のコマンド信号を生成することと、
をさらに行わせる、請求項1に記載の装置。
【請求項9】
前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
前記ジェスチャの前記第2の一回の動作の実施中に前記ユーザによって加えられる力を示す少なくとも1つの値が所定の力の閾値を超えたという判定に応答して、前記装置から離れた第1のデバイスに伝達されるコマンド信号を生成することと、
前記ジェスチャの前記第2の一回の動作の実施中に前記ユーザによって加えられる前記力を示す前記少なくとも1つの値が前記所定の力の閾値を超えていないという判定に応答して、前記装置から離れた第2
のデバイスに伝達される前記コマンド信号を生成することであって、前記第1のデバイスは第2のデバイスとは異なる、前記コマンド信号を生成することと、
をさらに行わせる、請求項1に記載の装置。
【請求項10】
前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
前記ジェスチャの前記カテゴリ表現に基づいて、値のシーケンスを計算することであって、前記値のシーケンスからの各値は、前記ジェスチャの前記第2の一回の動作の実施中に前記ユーザによって加えられる力を示し、前記値のシーケンスは、前記ジェスチャの前記第2の一回の動作の実施中に前記ユーザによって加えられる力の変化を示す、値のシーケンスを計算することと、
デバイスに伝達される少なくとも1つのコマンド信号を生成することであって、前記少なくとも1つのコマンド信号は前記力の変化を示す、少なくとも1つのコマンド信号を生成することと、
をさらに行わせる、請求項1に記載の装置。
【請求項11】
前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
前記ユーザが前記ジェスチャの前記第2の一回の動作を実施したという前記判定に応答して、前記装置から離れたデバイスに伝達されるコマンド信号を生成することであって、前記コマンド信号は、前記デバイスによって表示されるグラフィックオブジェクトの外観を変更するように構成される、コマンド信号を生成すること
をさらに行わせる、請求項1に記載の装置。
【請求項12】
前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
前記ユーザが前記ジェスチャの前記第2の一回の動作を実施したという前記判定に応答して、前記装置から離れたデバイスに伝達されるコマンド信号を生成することであって、前記コマンド信号は、前記デバイスによって表示されるグラフィックオブジェクトの位置を変更するように構成される、コマンド信号を生成すること
をさらに行わせる、請求項1に記載の装置。
【請求項13】
前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
前記装置から離れたデバイスに伝達されるコマンド信号を生成することであって、前記コマンド信号は、前記ユーザが前記ジェスチャを実施した回数を示す、コマンド信号を生成すること
をさらに行わせる、請求項1に記載の装置。
【請求項14】
プロセッサと、
前記プロセッサに結合される複数の神経筋センサと、
命令を記憶するメモリと、
を備え、前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
第1の複数の神経筋信号および第2の複数の神経筋信号に基づいて
生成された訓練データを用いて分類モデルを訓練することであって、
前記訓練データは、ジェスチャの実施中にユーザによって加えられる力の量の変化を示すデータを含み、前記第1の複数の神経筋信号および前記第2の複数の神経筋信号は前記複数の神経筋センサを介して受信され、前記訓練することは、
クラスタリング技法に基づいて
、第1のジェスチャの顕著な特徴を示す第1の値のセットと
、第2のジェスチャの顕著な特徴を示す第2の値のセットと、を導出することと、
前記分類モデルにおける前記第1のジェスチャのカテゴリ表現と前記第2のジェスチャのカテゴリ表現とを生成することと、
を含
み、
前記第1のジェスチャのカテゴリ表現と前記第2のジェスチャのカテゴリ表現は、各々が異なる量の力を用いて実施された前記第1のジェスチャと前記第2のジェスチャをそれぞれ特徴付けるものであり、前記第1の複数の神経筋信号および前記第2の複数の神経筋信号から検出された異なる量の力は、1つまたは複数の接続デバイスに送信することができる異なるコマンド信号に関連付けられる、分類モデルを訓練することと、
第3の複数の神経筋信号および前記分類モデルに少なくとも部分的に基づいて、
前記ユーザが前記第1のジェスチャまたは前記第2のジェスチャの以後の動作を実施したかを判定することと、
を行わ
せ、
前記第1のジェスチャの前記カテゴリ表現および前記第2のジェスチャの前記カテゴリ表現は、教師なし機械学習技法を使用して作成される、装置。
【請求項15】
前記分類モデルはほぼリアルタイムで訓練される、請求項
14に記載の装置。
【請求項16】
前記複数の神経筋センサはウェアラブルデバイス内に配置される、請求項
14に記載の装置。
【請求項17】
前記第1のジェスチャの前記カテゴリ表現は、前記第1のジェスチャの実施中に加えられる力の値を示す力のスケールを含み、前記第2のジェスチャの前記カテゴリ表現は、前記第2のジェスチャの実施中に加えられる力の値を示す力のスケールを含む、請求項
14に記載の装置。
【請求項18】
前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
前記ユーザが前記第1のジェスチャの第1の一回の動作を実施するときに、
前記複数の神経筋センサを介して、前記ユーザから前記第1の複数の神経筋信号を受信することと、
前記ユーザが前記第2のジェスチャの第1の一回の動作を実施するときに、
前記複数の神経筋センサを介して、前記ユーザから前記第2の複数の神経筋信号を受信することと、
をさらに行わせる、請求項
14に記載の装置。
【請求項19】
前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
前記第1のジェスチャの前記以後の動作の実施中に前記ユーザによって加えられる力を示す値、または前記第2のジェスチャの前記以後の動作の実施中に前記ユーザによって加えられる力を示す値を決定すること
をさらに行わせる、請求項
14に記載の装置。
【請求項20】
前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
前記ユーザが前記第1のジェスチャの以後の動作を実施したという判定に応答して、前記装置から離れたデバイスに伝達される第1のコマンド信号を生成することであって、前記第1のコマンド信号は、前記第1のジェスチャの前記以後の動作の実施中に加えられる力を示す第1の力の値を含む、第1のコマンド信号を生成することと、
前記ユーザが前記第2のジェスチャの以後の動作を実施したという判定に応答して、前記デバイスに伝達される第2のコマンド信号を生成することであって、前記第2のコマンド信号は、前記第2のジェスチャの前記以後の動作の実施中に加えられる力を示す第2の力の値を含み、前記第1のコマンド信号は、前記デバイスに前記第2のコマンド信号とは異なる動作を実行させる、第2のコマンド信号を生成することと、
をさらに行わせる、請求項
14に記載の装置。
【請求項21】
前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
前記ユーザが前記第1のジェスチャを実施したという判定に応答して、前記装置から離れた第1のデバイスに伝達されるコマンド信号を生成することと、
前記ユーザが前記第2のジェスチャを実施したという判定に応答して、前記装置から離れた第2のデバイスに伝達される前記コマンド信号を生成することであって、前記第1のデバイスは前記第2のデバイスとは異なる、前記コマンド信号を生成することと、
をさらに行わせる、請求項
14に記載の装置。
【請求項22】
前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
前記装置から離れたデバイスに伝達される複数の信号を生成することであって、前記複数の信号のうちの各信号は、前記第1のジェスチャの以後の動作を示し、前記複数の信号のうちの各信号は、前記第1のジェスチャの前記以後の動作に基づいて計算される異なる力の値を示す、複数の信号を生成すること
をさらに行わせる、請求項
14に記載の装置。
【請求項23】
前記命令は、前記プロセッサによって実行された場合に、前記プロセッサに、
前記装置から離れたデバイスに伝達される複数の信号を生成することであって、前記複数の信号のうちの各信号は、前記第2のジェスチャの以後の動作を示し、前記複数の信号のうちの各信号は、前記第2のジェスチャの前記以後の動作に基づいて計算される異なる力の値を示す、複数の信号を生成すること
をさらに行わせる、請求項
14に記載の装置。
【請求項24】
前記ユーザが前記第1のジェスチャまたは前記第2のジェスチャの以後の動作を実施したかを判定することは、
前記第3の複数の神経筋信号から第3の値のセットを導出することと、
前記第3の値のセットと前記第1のジェスチャの前記カテゴリ表現との間で計算される第1の類似性指標値に基づいて、前記ユーザが前記第1のジェスチャの以後の動作を実施したと判定することと、
前記第3の値のセットと前記第2のジェスチャの前記カテゴリ表現との間で計算される第2の類似性指標値に基づいて、前記ユーザが前記第2のジェスチャの以後の動作を実施したと判定することと、
を含む、請求項
14に記載の装置。
【請求項25】
ウェアラブルデバイスのプロセッサにおいて、前記ウェアラブルデバイスに含まれる複数の神経筋センサから複数の神経筋信号を受信することであって、前記複数の神経筋信号は、ユーザがジェスチャの
実施中に加えられる力の量を変えながら当該ジェスチャの一回の動作を実施するときに前記ユーザからサンプリングされる神経筋信号に対応する、複数の神経筋信号を受信することと、
教師なし機械学習技法を介して、前記ジェスチャの前記一回の動作に基づいて
生成された訓練データを用いて分類モデルを訓練することであって、
前記訓練データは、前記ジェスチャの実施中に加えられる前記力の量の変化を示すデータを含み、前記分類モデルを訓練することは、
前記複数の神経筋信号から、前記ジェスチャの顕著な特徴を示す1つまたは複数の値を導出することと、
前記複数の神経筋信号から導出された前記1つまたは複数の値に基づいて、前記分類モデルにおける前記ジェスチャのカテゴリ表現を生成することと、
を含み、
前記カテゴリ表現は、異なる量の力を用いて実施された前記ジェスチャを特徴付けるものであり、前記複数の神経筋信号から検出された異なる量の力は、1つまたは複数の接続デバイスに送信することができる異なるコマンド信号に関連付けられる、分類モデルを訓練することと、
前記ジェスチャの前記カテゴリ表現に
少なくとも部分的に基づいて、前記ユーザが前記ジェスチャの以後の一回の動作を実施したかを判定することと
、
を含む、方法。
【請求項26】
前記ジェスチャの前記以後の一回の動作の実施中に前記ユーザによって加えられる力に対応する少なくとも1つの力の値を決定することと、
前記ユーザが前記ジェスチャの前記以後の一回の動作を実施したという判定に応答してデバイスに伝達されるコマンド信号を生成することであって、前記コマンド信号は、前記ジェスチャと、前記ジェスチャの実施中に加えられる前記少なくとも1つの力の値とを示す、コマンド信号を生成することと、
をさらに含む、請求項25に記載の方法。
【請求項27】
前記分類モデルはほぼリアルタイムで訓練され、前記教師なし機械学習技法を介して前記分類モデルを訓練することは、
前記複数の神経筋信号に少なくとも基づいて前記分類モデルにおける前記ジェスチャの前記カテゴリ表現を生成すること
を含み、前記カテゴリ表現は、前記ジェスチャの前記一回の動作の実施中に加えられる1つまたは複数の力の値を決定するようにモデル化される力のスケールを含
む、請求項
25に記載の方法。
【請求項28】
前記複数の神経筋信号は第1の複数の神経筋信号を含み、前記ジェスチャは第1のジェスチャを含み、前記方法は、
前記ユーザが第2のジェスチャの一回の動作を実施するかを判定するために、前記教師なし機械学習技法を介して前記分類モデルを再訓練することであって、前記第1のジェスチャは前記第2のジェスチャとは異なり、前記再訓練することは、
第2の複数の神経筋信号に少なくとも基づいて、前記分類モデルにおける前記第2のジェスチャのカテゴリ表現を生成することであって、前記第2のジェスチャの前記カテゴリ表現は、前記第2のジェスチャの前記一回の動作の実施中に加えられる1つまたは複数の力の値を決定するようにモデル化される力のスケールを含む、カテゴリ表現を生成すること
を含む、前記分類モデルを再訓練することと、
前記分類モデルに基づいて、第3の複数の神経筋信号が前記第1のジェスチャの一回の動作に対応するか、または前記第2のジェスチャの一回の動作に対応するかを判定することと、
をさらに含む、請求項
25に記載の方法。
【請求項29】
前記コマンド信号は、前記デバイスに
、動作のパラメータとして前記少なくとも1つの力の値を使用して
前記動作を実行させる、請求項
26に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
機械学習技法を利用してユーザによって実施されたジェスチャを認識およびモデル化するシステムでは、典型的にはラベル付きのデータまたは訓練サンプルの大規模なセットが必要であり、これらは人間によってラベル付けされ、人間の偏見またはラベル付け誤りの影響を受けやすい。たとえば、画像認識のコンテキストでは、教師あり学習モデルは、特定のジェスチャに対して様々な角度をキャプチャした複数の画像などのラベル付きのデータに基づいてジェスチャを認識するように訓練され、これらの画像は人間によって、ジェスチャの角度、タイプ、および他の側面を示すようにラベル付けされる。
【発明の概要】
【0002】
人間のジェスチャを認識およびモデル化するシステムにおいて、本発明者らは、このシステムが少数の訓練サンプルからジェスチャを迅速に学習することが望ましいことを理解した。また、このシステムが、教師なしの方法で、たとえば、ラベルなしの訓練データを使用して、ジェスチャから意味のある特徴を捕捉して解釈することが好適であり得る。そのような意味のある特徴には、ジェスチャの実施中に加えられた力または力の量を示す特徴が含まれ得、これらは異なる意味を伝えることができる。たとえば、同じジェスチャに加えられた異なる量の力により、このシステムは、仮想もしくは拡張現実環境においてオブジェクトを制御するための、ユーザの環境においてデバイスを制御するための、または他の適切なシステムおよび/もしくはデバイスを制御するための、異なるコマンド信号を生成することが可能になり得る。
【0003】
いくつかの実施形態は、プロセッサと、プロセッサに結合される複数の神経筋センサと、命令を記憶するメモリと、を備える装置を対象とする。命令は、プロセッサによって実行された場合に、プロセッサに、複数の神経筋センサを介して、ユーザがジェスチャの第1の一回の動作(single act)を実施するときに、ユーザから第1の複数の神経筋信号を受信することと、第1の複数の神経筋信号に基づいて分類モデルを訓練することと、を行わせる。分類モデルを訓練することは、第1の複数の神経筋信号から1つまたは複数の値を導出することであって、1つまたは複数の値は、ジェスチャの実施中に加えられる力とともに線形に変化する少なくとも1つの特徴を含むジェスチャの顕著な特徴を示す、1つまたは複数の値を導出することと、第1の複数の神経筋信号から導出された1つまたは複数の値に基づいて、分類モデルにおけるジェスチャの第1のカテゴリ表現を生成することと、を含む。命令は、プロセッサによって実行された場合に、プロセッサに、複数の神経筋センサを介して、ユーザがジェスチャの第2の一回の動作を実施するときに、ユーザから第2の複数の神経筋信号を受信することと、分類モデルおよび第2の複数の神経筋信号に基づいて、ユーザがジェスチャの第2の一回の動作を実施したと判定することと、を行わせる。
【0004】
他の実施形態は、プロセッサと、プロセッサに結合される複数の神経筋センサと、命令を記憶するメモリと、を備える装置を対象とする。命令は、プロセッサによって実行された場合に、プロセッサに、第1の複数の神経筋信号および第2の複数の神経筋信号に基づいて分類モデルを訓練することであって、第1の複数の神経筋信号および第2の複数の神経筋信号は複数の神経筋センサを介して受信される、分類モデルを訓練することを行わせる。訓練することは、クラスタリング技法に基づいて、第1のジェスチャの実施中に加えられる力とともに線形に変化する少なくとも1つの特徴を含む第1のジェスチャの顕著な特徴を示す第1の値のセットと、第2のジェスチャの実施中に加えられる力とともに線形に変化する少なくとも1つの特徴を含む第2のジェスチャの顕著な特徴を示す第2の値のセットと、を導出することと、分類モデルにおける第1のジェスチャのカテゴリ表現と第2のジェスチャのカテゴリ表現とを生成することと、を含む。命令は、プロセッサによって実行された場合に、プロセッサに、第3の複数の神経筋信号および分類モデルに少なくとも部分的に基づいて、ユーザが第1のジェスチャまたは第2のジェスチャの以後の動作を実施したかを判定することを行わせる。
【0005】
他の実施形態は、ウェアラブルデバイスのプロセッサにおいて、ウェアラブルデバイスに含まれる複数の神経筋センサから複数の神経筋信号を受信することであって、a複数の神経筋信号は、ユーザがジェスチャの一回の動作を実施するときにユーザからサンプリングされる神経筋信号に対応する、複数の神経筋信号を受信することと、教師なし機械学習技法を介して、ジェスチャの一回の動作に基づいて分類モデルを訓練することであって、分類モデルはジェスチャのカテゴリ表現を含む、分類モデルを訓練することと、ジェスチャのカテゴリ表現に基づいて、ユーザがジェスチャの以後の一回の動作を実施したかを判定することと、ジェスチャの以後の一回の動作の実施中にユーザによって加えられる力に対応する少なくとも1つの力の値を決定することと、ユーザがジェスチャの以後の一回の動作を実施したという判定に応答してデバイスに伝達されるコマンド信号を生成することであって、コマンド信号は、ジェスチャと、ジェスチャの実施中に加えられる少なくとも1つの力の値とを示す、コマンド信号を生成することと、を含む、方法を対象とする。
【0006】
さらに他の実施形態は、第1のジェスチャの一回の動作に基づいて分類モデルを訓練するためのコンピュータ化されたシステムを対象とする。このシステムは、ユーザが第1のジェスチャの一回の動作を実施するときに、ユーザからの複数の神経筋信号を記録するように構成される複数の神経筋センサと、教師なし機械学習技法を使用して、複数の神経筋信号のうちの少なくとも一部に基づいて分類モデルにおけるジェスチャの一意の表現を創出するように分類モデルを訓練するようプログラムされる少なくとも1つのコンピュータプロセッサと、を備える。
【0007】
一態様では、少なくとも1つのコンピュータプロセッサは、記録された複数の神経筋信号内の少なくとも1つの活動期間を識別するようにさらにプログラムされ、分類モデルを訓練するために使用される複数の神経筋信号のうちの少なくとも一部は、少なくとも1つの活動期間中に記録される神経筋信号である。
【0008】
他の態様では、分類モデルを訓練するために使用される複数の神経筋信号のうちの少なくとも一部は、休息位置またはニュートラル位置を示す神経筋信号を含まない。
【0009】
他の態様では、少なくとも1つの活動期間を識別することは、活動期間を、複数の神経筋信号のうちのそれぞれに関連するパワー値が閾値を上回る期間として識別することを含む。
【0010】
他の態様では、分類モデルにおける第1のジェスチャの一意の表現を創出することは、成分特徴空間における複数の点を生成するために複数の神経筋信号のうちの少なくとも一部を処理することと、第1のジェスチャの一意の表現を創出するために生成された点の少なくとも一部をクラスタリングすることと、を含む。
【0011】
他の態様では、成分特徴空間における複数の点を生成するために複数の神経筋信号のうちの少なくとも一部を処理することは、複数の神経筋信号のうちの少なくとも一部に対して主成分分析を実施することを含む。
【0012】
他の態様では、生成された点のうちの少なくとも一部をクラスタリングすることは、成分特徴空間における1つまたは複数の点のクラスタを生成するためにK-meansクラスタリング分析を適用することと、類似性指標に基づいて第1のジェスチャの一意の表現に1つまたは複数の点のクラスタを含めることと、を含む。
【0013】
他の態様では、類似性指標はコサイン距離を含む。
【0014】
他の態様では、第1のジェスチャの一意の表現を創出することは、生成された点に基づいて成分特徴空間におけるベクトルを生成することを含む。
【0015】
他の態様では、ベクトルに沿った点は、異なる量の力を使用した第1のジェスチャの実施を表す。
【0016】
他の態様では、少なくとも1つのコンピュータプロセッサは、第1の制御信号を第1のジェスチャの一意の表現に関連付けるようにさらにプログラムされる。
【0017】
他の態様では、少なくとも1つのコンピュータプロセッサは、第1の制御信号および第2の制御信号を第1のジェスチャの一意の表現に関連付けるようにさらにプログラムされ、このシステムは、閾値未満の力を加えながら第1のジェスチャが実施された場合に第1の制御信号を生成し、閾値以上の力を加えながら第1のジェスチャが実施された場合に第2の制御信号を生成するように構成される。
【0018】
他の態様では、複数の神経筋センサは、ユーザが第2のジェスチャの一回の動作を実施するときに、第2の複数の神経筋信号を記録するようにさらに構成され、少なくとも1つのコンピュータプロセッサは、教師なし機械学習技法を使用して、第2の複数の神経筋信号の少なくとも一部に基づいて分類モデルにおける第2のジェスチャの一意の表現を創出するように分類モデルを訓練するようプログラムされる。
【0019】
他の態様では、分類モデルにおける第2のジェスチャの一意の表現を創出することは、成分特徴空間における複数の第2の点を生成するために第2の複数の神経筋信号のうちの少なくとも一部を処理することと、第2のジェスチャの一意の表現を創出するために複数の第2の点のうちの少なくとも一部をクラスタリングすることと、を含む。
【0020】
他の態様では、分類モデルにおける第1のジェスチャの一意の表現を創出することは、成分特徴空間における第1の複数の点を生成するために複数の神経筋信号のうちの少なくとも一部を処理することと、生成された第1の複数の点に基づいて成分特徴空間における第1のベクトルを生成することと、を含み、第2のジェスチャの一意の表現を創出することは、第2の複数の点に基づいて成分特徴空間における第2のベクトルを生成することを含み、第2のジェスチャに関連付けられた第2のベクトルは、第1のジェスチャに関連付けられた第1のベクトルとは異なる。
【0021】
他の態様では、複数の神経筋センサは、1つまたは複数のウェアラブルデバイス上に配置される。
【0022】
他の実施形態は、ユーザによって実施されるジェスチャを分類するためのコンピュータ化されたシステムを対象とする。このシステムは、ユーザが第1のジェスチャを実施するときにユーザからの複数の神経筋信号を記録するように構成される複数の神経筋センサと、少なくとも1つのコンピュータプロセッサと、を備える。少なくとも1つのコンピュータプロセッサは、分類モデルの成分特徴空間における第1のジェスチャの表現を創出することであって、分類モデルは、成分特徴空間における複数のジェスチャのうちのそれぞれの一意の表現を含むように訓練される、第1のジェスチャの表現を創出することと、第1のジェスチャの表現が、分類モデルに含まれる複数のジェスチャの一意の表現のいずれに対応するかを判定することと、第1のジェスチャの表現が一意の表現のうちの1つに対応すると判定された場合に、一意の表現に関連付けられた制御信号を生成することと、を行うようにプログラムされる。
【0023】
一態様では、第1のジェスチャの表現を創出することは、成分特徴空間における複数の点を生成するために複数の神経筋信号のうちの少なくとも一部を処理することと、第1のジェスチャの表現を創出するために複数の点のうちの少なくとも一部をクラスタリングすることと、を含む。
【0024】
他の態様では、成分特徴空間における複数の点を生成するために複数の神経筋信号のうちの少なくとも一部を処理することは、複数の神経筋信号のうちの少なくとも一部に対して主成分分析を実施することを含む。
【0025】
他の態様では、複数の点のうちの少なくとも一部をクラスタリングすることは、成分特徴空間における1つまたは複数の点のクラスタを生成するためにk-meansクラスタリング分析を適用することと、類似性指標に基づいて第1のジェスチャの表現に1つまたは複数の点のクラスタを含めることと、を含む。
【0026】
他の態様では、類似性指標はコサイン距離を含む。
【0027】
他の態様では、第1のジェスチャの表現を創出することは、複数の点に基づいて成分特徴空間における第1のベクトルを生成することを含む。
【0028】
他の態様では、第1のジェスチャの表現が一意の表現のうちの1つに対応するかを判定することは、類似性指標に基づいて、第1のジェスチャに関連付けられた第1のベクトルが複数のジェスチャに関連付けられた複数のベクトルのうちの1つに対応するかを判定することを含む。
【0029】
他の態様では、類似性指標は、第1のベクトルと、成分特徴空間における複数のベクトルのうちのそれぞれとの間のコサイン距離である。
【0030】
他の態様では、複数の神経筋センサは、1つまたは複数のウェアラブルデバイス上に配置される。
【0031】
前述の概念および以下でより詳細に論じるさらなる概念の全ての組み合わせは(ただし、そのような概念が相互に矛盾しない場合に限る)、本明細書に開示する本発明の主題の一部であると考えられることを理解されたい。特に、本開示の最後に現れる特許請求した主題の全ての組み合わせは、本明細書に開示する本発明の主題の一部であると考えられる。
【0032】
以下の図を参照して、本技術の様々な非限定的な実施形態を説明する。図は必ずしも一定の縮尺で描いていないことを理解されたい。
【図面の簡単な説明】
【0033】
【
図1】本明細書に記載の技術のいくつかの実施形態による、神経筋センサデータを処理するためのコンピュータベースのシステムの概略図である。
【
図2A】本明細書に記載の技術のいくつかの実施形態による、ユーザの前腕または手首の周りに装着されるように構成される弾性バンドの周囲に配置された16個のEMGセンサを有するウェアラブルシステムを示す図である。
【
図2B】
図2Aに示す16個のEMGセンサのうちの1つの断面図である。
【
図3A-3B】いくつかの実施形態が実装されるコンピュータベースのシステムの構成要素の概略図である。3Aはコンピュータベースのシステムのウェアラブル部分を示し、3Bはコンピュータに接続されるドングル部分を示し、ドングル部分はウェアラブル部分と通信するように構成される。
【
図4】本明細書に記載の技術のいくつかの実施形態による、センサから記録された神経筋信号に基づいて分類モデルを生成するための処理のフローチャートである。
【
図5】本明細書に記載の技術のいくつかの実施形態による、ユーザ定義のジェスチャの例を示す図である。
【
図6A】本明細書に記載の技術のいくつかの実施形態による、第1のユーザに関連付けられた第1のジェスチャのセットを示す図である。
【
図6B】本明細書に記載の技術のいくつかの実施形態による、第2のユーザに関連付けられた第2のジェスチャのセットを示す図である。
【
図7】本明細書に記載の技術のいくつかの実施形態による、訓練された分類モデルに基づいてジェスチャを識別するための処理のフローチャートである。
【
図8】本明細書に記載の技術のいくつかの実施形態による、
図2Aのウェアラブルシステム上に配置された16個のセンサを介してキャプチャされた3つの異なるジェスチャを表す信号を示す図である。
【
図9】本明細書に記載の技術のいくつかの実施形態による、様々なジェスチャに関連付けられた神経筋信号から計算された共分散行列の例を示す図である。
【
図10】本明細書に記載の技術のいくつかの実施形態による、休息位置および活動位置に対応するデータ点に関連付けられたパワー値を示すグラフである。
【
図11】本明細書に記載の技術のいくつかの実施形態による、訓練データセットから計算された接空間および主成分分析(PCA)空間を示す図である。
【
図12】本明細書に記載の技術のいくつかの実施形態による、学習されたジェスチャベクトルの例を示す図である。
【
図13】本明細書に記載の技術のいくつかの実施形態による、訓練フェーズ中に実施された各ジェスチャについて最大随意収縮の関数として計算された力を示すグラフである。
【
図14】本明細書に記載の技術のいくつかの実施形態による、3つの異なるジェスチャの、それらの計算されたコサイン距離に基づく識別を示す図である。
【
図15】本明細書に記載の技術のいくつかの実施形態による、分類フェーズ中に識別された各ジェスチャについて推測された力を示す図である。
【
図16】本明細書に記載の技術のいくつかの実施形態による、主成分分析(PCA)空間に写像された3つの未見のベクトルを示す図である。
【発明を実施するための形態】
【0034】
人間のジェスチャを認識およびモデル化するためのいくつかの既存の技法は、人的誤りが生まれやすいラベル付きの訓練データを使用する。訓練データのラベル付けの誤りによって、教師あり学習モデルの訓練が不正確になり、ひいては、ジェスチャ認識の誤りにつながる。加えて、そのような技法は、典型的には大量のラベル付きの訓練データを必要とし、入手および作成することが困難であり、時間がかかる。さらに、そのような大量のラベル付きデータを処理すると、大量のコンピューティングリソースおよびメモリリソースが消費される。
【0035】
また、人間のジェスチャを認識およびモデル化するためのいくつかの既存の技法は、人間のジェスチャに関連する意味のある特徴、たとえば、ジェスチャの実施中に加えられた力または力の量などを捕捉していない。たとえば、画像認識のコンテキストでは、教師あり学習モデルは、ラベル付きの画像データに基づいてジェスチャを認識するように訓練され得る。これらのラベル付きの画像は、ジェスチャの実施中の人の手のポジショニングを反映しているが、ラベル付きの画像は、ユーザがジェスチャを実施するときに加えた力に関連する情報を反映していない。
【0036】
本発明者らは、教師なし機械学習または訓練手法を利用して、1つまたは複数のユーザ定義のジェスチャと、そのようなジェスチャを実施するときにユーザによって加えられた力とを認識およびモデル化するように分類モデルを訓練することによって、人間のジェスチャを認識およびモデル化するために使用される既存の技法が改善され得ることを認識した。分類モデルは、ウェアラブルデバイス上に配置された神経筋センサから取得されたラベルなしデータを使用して訓練され得る。ラベルなしデータには、神経筋センサから記録された神経筋信号が含まれ得る。
【0037】
本発明者らは、一例を以下に詳細に説明する教師なし訓練手法を利用することにより、ユーザがジェスチャの一回の動作を実施するときに記録される神経筋信号に基づいて分類モデルを訓練できる(「ワンショット」訓練または学習とも呼ばれる)ことを認識した。分類モデルは、モデルにおけるジェスチャのカテゴリ表現を生成することにより、ジェスチャを認識するように訓練される。ジェスチャのカテゴリ表現は、記録された神経筋信号から導出された1つもしくは複数の特徴、および/またはジェスチャの実施中に加えられた力に関連する1つもしくは複数の力の値に基づいて生成され得る。カテゴリ表現は、ユーザによって実施されたジェスチャのタイプと、ジェスチャの実施中にユーザによって加えられた力の量とを推測することができる表現を含み得る。訓練された分類モデルを使用することにより、その後のユーザによる同じジェスチャの実施を、分類モデルにおけるそのカテゴリ表現に基づいて識別することができる。
【0038】
いくつかの実施形態によれば、分類モデルは、1人または複数のユーザによって実施される複数のジェスチャを認識するように訓練することができる。たとえば、分類モデルは、ユーザが各ジェスチャの一回の動作を実施するときに記録される神経筋信号に基づいて訓練することができる。クラスタリング技法を利用して、記録されたセンサデータをいくつかのクラスタに分割し得、各クラスタは特定のジェスチャに関連付けられている。各ジェスチャのカテゴリ表現は、関連付けられたクラスタに基づいて決定され得る。たとえば、カテゴリ表現には、ジェスチャのタイプ、およびジェスチャに関連する方向、力のスケール(たとえば、力の値/量の範囲)を識別する情報が含まれ得る。分類モデルが訓練された後、このシステムは、ユーザによって実施されたジェスチャが、分類モデルにおいて表現された異なるジェスチャに関連付けられたカテゴリ表現のいずれにマッピングされているかを特定し得る。
【0039】
図1は、いくつかの実施形態によるシステム100を示している。このシステムは、人体の骨格筋における神経筋活動から生じる信号を記録するように構成される複数のセンサ102を含む。本明細書で使用する「神経筋活動」という用語は、筋肉を神経支配する脊髄運動ニューロンの神経活性化、筋肉活性化、筋肉収縮、または神経活性化、筋肉活性化、および筋肉収縮の任意の組み合わせを指す。神経筋センサには、1つまたは複数の筋電図(EMG:electromyography)センサ、1つまたは複数のメカノミオグラフィー(MMG:mechanomyography)センサ、1つまたは複数のソノミオグラフィー(SMG:sonomyography)センサ、EMGセンサ、MMGセンサ、およびSMGセンサのうちの2つ以上のタイプの組み合わせ、ならびに/または神経筋信号を検出するように構成される任意の適切なタイプの1つもしくは複数のセンサが含まれ得る。いくつかの実施形態では、複数の神経筋センサを使用して、神経筋センサが筋肉活動を検知するように配置された筋肉によって制御される体の部位の動きに関連する筋肉活動を検知し得る。ユーザが時間をかけて動くとき、または1つもしくは複数のジェスチャを実施するときに、検知された神経筋信号に基づいて、動きを記述する空間情報(たとえば、位置および/または向き情報)ならびに力情報が予測され得る。
【0040】
センサ102は、1つまたは複数の慣性測定ユニット(IMU:Inertial Measurement Unit)を含み得、これは、たとえば、加速度計、ジャイロスコープ、磁力計、または1つもしくは複数の加速度計、ジャイロスコープ、および磁力計の任意の組み合わせを使用して、運動の物理的側面の組み合わせを測定する。いくつかの実施形態では、IMUを使用して、IMUが取り付けられた体の部位の動きに関する情報を検知し得、ユーザが時間をかけて動くときに、検知されたデータから導出される情報(たとえば、位置および/または向き情報)が追跡され得る。たとえば、1つまたは複数のIMUを使用して、ユーザが時間をかけて動くとき、または1つもしくは複数のジェスチャを実施するときに、センサよりもユーザの胴体に近位のユーザの体の各部分(腕、脚など)の動きを追跡し得る。
【0041】
少なくとも1つのIMUおよび複数の神経筋センサを含む実施形態では、IMUおよび神経筋センサは、人体の異なる部位の動きを検出するように配置され得る。たとえば、IMUは、胴体に近位の1つまたは複数の身体セグメント(たとえば、上腕)の動きを検出するように配置され得、一方、神経筋センサは、胴体より遠位の1つまたは複数の身体セグメント(たとえば、前腕または手首)の動きを検出するように配置され得る。しかしながら、自律型センサは任意の適切な方法で配置され得、本明細書に記載の技術の実施形態は、特定のセンサ配置に基づいて限定されないことを理解されたい。たとえば、いくつかの実施形態では、少なくとも1つのIMUおよび複数の神経筋センサを身体セグメント上の同じ場所に位置させて、異なるタイプの測定値を使用して身体セグメントの動きを追跡し得る。以下でより詳細に説明する1つの実装形態では、IMUセンサおよび複数のEMGセンサは、ユーザの前腕または手首の周りに装着されるように構成されるウェアラブルデバイス上に配置される。そのような配置では、IMUセンサは、1つまたは複数の腕セグメントに関連する動き情報(たとえば、時間の経過に伴う位置および/または向き)を追跡して、たとえば、ユーザが腕を上げているか下ろしているかを判定するように構成され得、一方、EMGセンサは、手首セグメントまたは手セグメントに関連する動き情報を特定して、たとえば、ユーザの手の構成が開いているかまたは閉じているかを判定するように構成され得る。
【0042】
センサ102のそれぞれは、ユーザに関する情報を検知するように構成される1つまたは複数の検知部品を含む。IMUのケースでは、検知部品は、体動の特性を測定するための1つまたは複数の加速度計、ジャイロスコープ、磁力計、またはそれらの任意の組み合わせを含み得、特性の例には、加速度、角速度、および体の周りで検知された磁場が含まれるが、これらに限定されない。神経筋センサのケースでは、検知部品は、体の表面の電位を検出するように構成される電極(たとえば、EMGセンサ用)、皮膚表面の振動を測定するように構成される振動センサ(たとえば、MMGセンサ用)、および筋肉活動から生じる超音波信号を測定するように構成される音響検知部品(たとえば、SMGセンサ用)を含み得るが、これらに限定されない。
【0043】
いくつかの実施形態では、複数のセンサ102のうちの少なくともいくつかは、ユーザの体の部位の上またはその周囲に装着されるように構成されるウェアラブルデバイスの一部分として配置される。たとえば、非限定的な一例では、IMUセンサおよび複数の神経筋センサは、ユーザの手首または腕の周りに装着されるように構成されるリストバンドまたはアームバンドなどの調整可能なおよび/または弾性のバンドの周囲に配置される。代替的には、自律型センサのうちの少なくともいくつかは、ユーザの体の一部分に貼り付けられるように構成されるウェアラブルパッチ上に配置され得る。いくつかの実施形態では、それぞれに1つまたは複数のIMUおよび/または神経筋センサが含まれている複数のウェアラブルデバイスを使用して、体の複数の部位に関与する動きについての筋骨格位置情報を予測し得る。
【0044】
いくつかの実施形態では、センサ102は、複数の神経筋センサ(たとえば、EMGセンサ)のみを含む。他の実施形態では、センサ102は、複数の神経筋センサと、複数の補助信号を継続的に記録するように構成される少なくとも1つの「補助」センサとを含む。補助センサの例には、IMUセンサなどの他の自律型センサ、撮像デバイス(たとえば、カメラ)などの非自律型センサ、放射線発生デバイス(たとえば、レーザー走査デバイス)と併用される放射線ベースのセンサ、または心拍数モニターなどの他のタイプのセンサが含まれるが、これらに限定されない。
【0045】
いくつかの実施形態では、検知部品のうちの1つまたは複数の出力は、ハードウェア信号処理回路(たとえば、増幅、フィルタリング、および/または整流を実施するためのもの)を使用して処理され得る。他の実施形態では、検知部品の出力の少なくとも一部の信号処理は、ソフトウェアで実施され得る。このように、センサによって記録された信号の信号処理は、ハードウェアで、ソフトウェアで、またはハードウェアおよびソフトウェアの任意の適切な組み合わせによって実施され得、その理由は、本明細書に記載の技術の態様がこの点で限定されないためである。
【0046】
いくつかの実施形態では、記録されたセンサデータを処理して、以下でより詳細に説明するように、追加の導出された測定値または特徴を計算し得、これらは次いで分類モデルへの入力として提供される。たとえば、IMUセンサから記録された信号を処理して、時間の経過に伴う剛体の身体セグメントの向きを示す向き信号を導出し得る。センサ102は、検知部品と統合された部品を使用して信号処理を実装し得、または信号処理の少なくとも一部分は、センサの検知部品と通信するが直接は統合されていない1つもしくは複数の部品によって実施され得る。
【0047】
システム100はまた、センサ102と通信するようにプログラムされる1つまたは複数のコンピュータプロセッサ104を含む。たとえば、センサのうちの1つまたは複数によって記録された信号は、プロセッサに提供され得、プロセッサは、センサ102によって出力された信号を処理して、1つまたは複数の分類モデル106を訓練するようにプログラムされ得、訓練された(または再訓練された)分類モデル106は、以下でより詳細に説明するように、ジェスチャを識別/分類し、制御/コマンド信号を生成する際に後で使用するために記憶され得る。いくつかの実施形態では、プロセッサ104は、ユーザによって実施される1つまたは複数のジェスチャに関連する1つまたは複数の特徴を導出するようにプログラムされ得、導出された特徴は、1つまたは複数の分類モデル106を訓練するために使用され得る。プロセッサ104は、訓練された1つまたは複数の分類モデル106に基づいて、その後に実施されたジェスチャを識別するようにプログラムされ得る。いくつかの実装形態では、プロセッサ104は、分類モデルを利用して、少なくとも部分的に、識別されたジェスチャを1つまたは複数の制御/コマンド信号にマッピングするようにプログラムされ得る。
【0048】
図2Aは、ユーザの前腕または手首の周りに装着されるように構成される弾性バンド220の周囲に配置された16個の神経筋センサ210(たとえば、EMGセンサ)を有するウェアラブルシステムを示している。図示のように、EMGセンサ210は、弾性バンド220の周囲に配置される。任意の適切な数の神経筋センサが使用され得ることを理解されたい。神経筋センサの数および配置は、ウェアラブルデバイスが使用される特定の用途に依存し得る。たとえば、ウェアラブルアームバンドまたはリストバンドを使用して、拡張現実システム、仮想現実システム、ロボット、車両の制御、テキストのスクロール、仮想アバターの制御、または他の任意の適切な制御タスクを制御するための制御情報を生成することができる。図示のように、センサ210は、ウェアラブルデバイスに組み込まれた可撓性の電子機器230を使用して相互に結合され得る。
図2Bは、
図2Aに示すウェアラブルデバイスのセンサ210のうちの1つの断面図を示す。
【0049】
いくつかの実施形態では、センサのうちの1つまたは複数の出力は、任意選択によりハードウェア信号処理回路(たとえば、増幅、フィルタリング、および/または整流を実施するためのもの)を使用して処理することができる。他の実施形態では、センサの出力の少なくとも一部の信号処理は、ソフトウェアで実施することができる。このように、センサによってサンプリングされた信号の処理は、ハードウェアで、ソフトウェアで、またはハードウェアおよびソフトウェアの任意の適切な組み合わせによって実施することができ、その理由は、本明細書に記載の技術の態様がこの点で限定されないためである。センサ210から記録されたデータを処理するために使用される信号処理チェーンの非限定的な一例については、
図3Aおよび
図3Bに関連して以下でより詳細に論じる。
【0050】
図3Aおよび
図3Bは、本明細書に記載の技術のいくつかの実施形態による、16個のEMGセンサを有するウェアラブルシステムのいくつかの内部の構成要素を示す概略図を示している。図示のように、ウェアラブルシステムは、ウェアラブル部分310(
図3A)と、(たとえば、Bluetoothまたは他の適切な短距離無線通信技術を介して)ウェアラブル部分310と通信するドングル部分320(
図3B)とを含む。
図3Aに示すように、ウェアラブル部分310はセンサ210を含み、センサ210の例については、
図2Aおよび
図2Bに関連して説明している。センサ210の出力は、記録された信号に対してアナログ処理(たとえば、ノイズ低減、フィルタリングなど)を実施するように構成されるアナログフロントエンド330に提供される。処理されたアナログ信号は次いで、アナログ/デジタル変換器332に提供され、アナログ/デジタル変換器332はアナログ信号をデジタル信号に変換し、デジタル信号は、1つまたは複数のコンピュータプロセッサ(たとえば、プロセッサ104)によって処理することができる。いくつかの実施形態に従って使用され得るコンピュータプロセッサの一例は、
図3Aに示すマイクロコントローラ(MCU)334である。図示のように、MCU334はまた、他のセンサ(たとえば、IMUセンサ340)、ならびに電源およびバッテリーモジュール342からの入力を含み得る。MCUによって実施された処理の出力は、アンテナ350に提供されて、
図3Bに示すドングル部分320に送信され得る。
【0051】
ドングル部分320は、ウェアラブル部分310の一部として含まれるアンテナ350と通信するように構成されるアンテナ352を含む。アンテナ350および352の間の通信は、任意の適切な無線技術およびプロトコルを使用して行われ得、その非限定的な例には、無線周波数シグナリングおよびBluetoothが含まれる。図示のように、ドングル部分320のアンテナ352によって受信された信号は、ホストコンピュータに提供されて、さらなる処理、表示が行われ、および/または1つもしくは複数の特定の物理物体もしくは仮想オブジェクトの制御が発効され得る。
【0052】
図4は、センサ210などを含むセンサ102から記録された信号を使用して分類モデル106を生成(本明細書では「訓練」とも呼ぶ)するための処理400を示している。
図4は、分類モデルを訓練するための「訓練フェーズ」を表している。処理400は、任意の適切なコンピューティングデバイスによって実行され得、その理由は、本明細書に記載の技術の態様がこの点で限定されないためである。たとえば、処理400は、
図1、
図3Aおよび
図3Bを参照して説明した1つまたは複数のコンピュータプロセッサによって実行され得る。他の例として、処理400の1つまたは複数の動作は、1つまたは複数のサーバ(たとえば、クラウドコンピューティング環境の一部として含まれるサーバ)を使用して実行され得る。たとえば、分類モデルの訓練に関連する動作408の少なくとも一部分は、クラウドコンピューティング環境を使用して実施され得る。いくつかの実装形態では、分類モデルはほぼリアルタイムで訓練され得る。本明細書で使用する場合、「ほぼリアルタイム」という用語は、たとえば、ミリ秒のオーダーでの、ユーザによる即時の知覚を指す。
【0053】
処理400は動作402から始まり、ここで、1人または複数のユーザが
図5に描いたジェスチャなどの1つまたは複数のジェスチャを実施したことに関する複数のセンサ信号が取得される。いくつかの実施形態では、複数のセンサ信号は、処理200の一部として記録され得る。他の実施形態では、複数のセンサ信号は、処理400の実施前に記録されていてもよく、動作402においてアクセスされる(記録されるのではない)。
【0054】
本明細書で使用する場合、「ジェスチャ」という用語は、1つまたは複数の身体部位の静的または動的な構成を指し、これには1つまたは複数の身体部位の位置と、その構成に伴う力とが含まれる。たとえば、ジェスチャには、手のひらを固体表面に押し付ける、もしくはボールをつかむなどの単発(discrete)ジェスチャ、指を前後に振る、もしくはボールを投げるなどの連続ジェスチャ、またはボールをつかんで投げるなどの単発ジェスチャおよび連続ジェスチャの組み合わせが含まれる。ジェスチャは、ユーザによって任意に定義され得る。いくつかのケースでは、手および腕のジェスチャは象徴的なものであり、文化的な標準に従ってコミュニケーションをとるために使用されるものであり得る。
【0055】
いくつかの実施形態では、ジェスチャは、ユーザ自身の独自のジェスチャのコレクションを表し得る、ユーザによって定義された非制限的なまたはカスタマイズされたジェスチャ(本明細書では「ユーザ定義の」ジェスチャとも呼ぶ)を含み得る。これらのジェスチャは、このシステムでは事前定義も事前のモデル化もされなくてもよく、分類モデルは、任意の量の力を加えながらの任意のタイプのジェスチャを識別するように訓練され得る。本開示は、
図5に描いたジェスチャを利用または認識することに限定されるものではなく、任意のタイプのユーザ定義のジェスチャが利用され得ることは理解されよう。
【0056】
いくつかの実施形態では、複数のセンサ信号は、単一のユーザが単一のジェスチャまたは複数のジェスチャを実施したことに関して記録されたセンサ信号を含み得、分類モデルは、ユーザによって実施されたジェスチャを認識するように訓練され得る。ユーザがジェスチャを実施するときに、センサ信号が記録され得る。センサ信号は、ジェスチャを示すユーザの動きを検出するために任意の適切な場所に位置させた任意の適切な数のセンサによって記録され得る。たとえば、ユーザが右手の指を使用してジェスチャを実施する場合、ユーザの右手の動きを引き起こす右前腕の筋肉活動を検出するためにユーザの右前腕の周囲に(または別の方法で)配置された複数の神経筋センサによってセンサ信号が記録され得る。1つまたは複数のIMUセンサが、ユーザの胴体に対するユーザの腕の関節の角度を予測するように配置され得る。他の例として、ユーザが脚を使用してジェスチャを実施する場合、足の動きを引き起こす脚の筋肉活動を検出するためにユーザの脚の周囲に(または別の方法で)配置された複数の神経筋センサによってセンサ信号が記録され得、1つまたは複数のIMUセンサが、ユーザの胴体に対するユーザの脚の関節の角度を予測するように配置され得る。
【0057】
いくつかの実施形態では、複数のセンサ信号は、複数のユーザが様々なジェスチャを実施したことに関して記録されたセンサ信号を含み得、分類モデルは、複数のユーザによって実施されたジェスチャを認識するように訓練され得る。たとえば、分類モデルは、このシステムの第1のユーザに関連付けられた第1のジェスチャのセット(
図6Aに示す)と、このシステムの第2のユーザに関連付けられた第2のジェスチャのセット(
図6Bに示す)とを認識するように訓練され得る。いくつかの実例では、第1のジェスチャのセットは第2のジェスチャのセットと異なり得る。他のいくつかの実例では、第1および第2のジェスチャのセットは同じであり得る。さらに他の実例では、第1のセットおよび第2のセットにおけるいくつかのジェスチャは重複することができる(たとえば、これらのセットは1つまたは複数のジェスチャを共通して有することができる)。
【0058】
いくつかの実施形態では、動作402において取得されたセンサ信号は、1つのタイプのセンサ(たとえば、1つもしくは複数のIMUセンサ、または1つもしくは複数の神経筋センサ)からの信号に対応し、分類モデルは、特定のタイプのセンサを使用して記録されたセンサ信号に基づいて訓練され得、センサタイプ固有の訓練された分類モデルになる。たとえば、取得されたセンサ信号は、ユーザの前腕または手首の周りに配置された複数のEMGセンサ信号を含み得、分類モデルは、ユーザによって実施された手のジェスチャを認識するように訓練され得る。
【0059】
複数のタイプのセンサ(たとえば、IMUセンサ、EMGセンサ、MMGセンサ、SMGセンサ)に基づいてジェスチャを認識する実施形態では、センサのタイプごとに別々の分類モデルが訓練され得、センサタイプ固有のモデルの出力を組み合わせて、ユーザによって実施されたジェスチャを認識し得る。他の実施形態では、動作402において2つ以上の異なるタイプのセンサから取得されたセンサ信号は、異なるタイプのセンサから記録された信号に基づいて訓練された単一の分類モデルに提供され得る。1つの例示的な実装形態では、IMUセンサおよび複数のEMGセンサが、ユーザの前腕の周りに装着されるように構成されるウェアラブルデバイス上に配置され、IMUおよびEMGセンサによって記録された信号は、以下でより詳細に論じるように、分類モデルへの入力としてまとめて提供される。
【0060】
いくつかの実施形態では、動作402において取得されたセンサ信号は、ユーザが1つまたは複数のジェスチャを実施した複数の時点で記録される。結果として、各センサの記録された信号は、複数の時点のそれぞれにおいて取得されたデータを含み得る。n個のセンサを配置して、ジェスチャの実施中のユーザの動き情報を同時に測定すると仮定すると、ユーザに関して記録されたセンサ信号は、動きの実施中の時点t1,t2,...,tKにおけるK個のn次元ベクトル{xk|1≦k≦K}の時系列を含み得る。
【0061】
次いで、処理400は動作404に進み、ここで、動作202において取得されたセンサ信号は、任意選択により処理される。たとえば、センサ信号は、増幅、フィルタリング、整流、または他のタイプの信号処理を使用して処理され得る。いくつかの実施形態では、動作402において取得されたセンサ信号は、バンドパスまたはハイパスフィルタを使用してフィルタリングされ得る。
【0062】
次いで、処理400は動作406に進み、ここで、分類モデルを訓練する目的で訓練データセットが生成される。訓練データセットは、動作402において取得されたセンサ信号または動作404からの処理されたセンサ信号に基づいて生成され得る。いくつかの実施形態では、訓練データセットを生成することは、以下でより詳細に説明するように、訓練データセットから休息位置またはニュートラル位置に対応する特定のサンプルを除去することを含み得る。
【0063】
次いで、処理400は動作408に進み、ここで、訓練データセットに基づいて分類モデルが訓練される。いくつかの実施形態では、分類モデルを訓練することは、訓練データセット内のセンサ信号(たとえば、複数の時点で取得されたデータ)からサンプリングされたまたは別の方法で導出された値に基づいて、ジェスチャに関連する1つまたは複数の顕著な特徴を決定することを含み得る。1つまたは複数の顕著な特徴は、ジェスチャの実施中にユーザによって加えられる力とともに線形に変化する特徴、またはジェスチャに関連する他の性質(たとえば、ジェスチャのタイプ、方向、力のスケールなど)を含み得る。いくつかの態様によれば、分類モデルを訓練することは、分類モデルにおける、ユーザによって実施される各ジェスチャのカテゴリ表現を生成することを含み得る。カテゴリ表現は、1つまたは複数の顕著な特徴を示すセンサ信号から導出された値に基づいて生成され得る。
【0064】
いくつかの実装形態では、分類モデルを訓練することは、モデルへの入力としてデータセットのシーケンスを提供することによって進められ得、シーケンス内の各データセットはセンサデータのn次元ベクトルを含む。分類モデルは、分類モデルが入力信号に基づいて認識した特定のジェスチャが、ユーザが実施したジェスチャに対応する尤度を出力として提供し得る。たとえば、分類モデルは、時点t1,t2,...,tKに取得された測定値を使用して生成されたベクトルのシーケンス{xk|1≦k≦K}を入力とし得、ここで、ベクトルxjの第i成分は時刻tjに第iセンサによって測定された値、および/または時刻tjに第iセンサによって測定された値から導出された値である。他の非限定的な例では、分類モデルへの入力として提供される導出された値は、時刻tjおよび/またはそれ以前にセンサの全てまたはサブセットからのデータから抽出された特徴(たとえば、共分散行列、共スペクトル行列、パワースペクトル、それらの組み合わせ、または他の任意の適切な導出された表現)を含み、または別の方法でそれらを示し得る。そのような入力に基づいて、分類モデルは、1人または複数のユーザによって実施されたジェスチャを認識するように訓練され得る。
【0065】
タスクの実施中に異なるタイプの動き情報を同時に記録するように構成される異なるタイプのセンサ(たとえば、IMUセンサおよび神経筋センサ)を含む実施形態では、異なるタイプのセンサのセンサデータは、同じまたは異なるサンプリングレートを使用して記録され得る。センサデータが異なるサンプリングレートで記録される場合、分類モデルへの入力として提供される全てのセンサデータが同じ時間分解能の時系列データに対応するように、センサデータの少なくとも一部が再サンプリング(たとえば、アップサンプリングまたはダウンサンプリング)され得る。センサデータの少なくとも一部を再サンプリングすることは、アップサンプリング用に補間を使用すること、およびダウンサンプリング用に間引きを使用することを含むがこれらに限定されない、任意の適切な方法で実施され得る。
【0066】
異なるサンプリングレートで記録された場合にセンサデータの少なくとも一部を再サンプリングすることに加えて、またはその代替として、いくつかの実施形態は、複数の入力を非同期的に受け入れるように構成される分類モデルを採用する。たとえば、分類モデルは、より低いサンプリングレートを有する入力データにおける「欠損」値の分布をモデル化するように構成され得る。代替的には、複数のセンサデータ測定値からの入力が訓練データとして利用可能になったときに、分類モデルを訓練するタイミングが非同期に起こる。
【0067】
次いで、処理400は動作410に進み、ここで、訓練された分類モデルが(たとえば、図示しないデータストアに)記憶される。訓練された統計モデルは、任意の適切なフォーマットを使用して記憶され得、その理由は、本明細書に記載の技術の態様がこの点で限定されないためである。その結果、処理400の実行中に生成された分類モデルは、たとえば、以下に説明するように、入力センサデータの所与のセットに基づいて1人または複数のユーザによって実施されたジェスチャを認識するために後で使用され得る。
【0068】
図7は、いくつかの実施形態による、記録されたセンサデータに基づいてユーザ定義のジェスチャを認識するための処理700を示している。
図7は、訓練された分類モデルを使用して、ユーザによって実施されているジェスチャを認識し、対応するコマンド/制御信号を生成する「ジェスチャ認識フェーズ」を表している。動作702において、1つまたは複数のセンサによって記録されたセンサデータは、上記で簡単に説明したように、1人または複数のユーザによって以前に実施された各ジェスチャの1つまたは複数のカテゴリ表現を含む1つまたは複数の訓練された分類モデルへの入力として提供される。
【0069】
次いで、処理700は動作704に進み、ここで、ユーザによって実施されているジェスチャが、訓練された分類モデルに基づいて認識または識別される。いくつかの実施形態では、ユーザによって実施されたジェスチャが、訓練された分類モデルにおいて事前に学習されたジェスチャにマッピングされているかに関して判定がなされ得る。いくつかの実施形態では、神経筋信号は、ジェスチャの実施中を含むユーザの動きの間に継続的に記録され、訓練された分類モデルへの入力として継続的に提供されて、訓練された分類モデルに基づいてユーザによって実施されているジェスチャのほぼリアルタイムの予測/認識がもたらされる。
【0070】
次いで、処理700は動作706に進み、ここで、識別されたジェスチャに基づいて、1つまたは複数のコマンド/制御信号が生成され得る。1つまたは複数の制御信号は、計算デバイスを起動/停止する、仮想環境内のオブジェクトを制御する、拡張現実環境内のオブジェクトを制御する、IoT(モノのインターネット)デバイス、ならびに/または他の適切なシステムおよび/もしくはデバイスを制御する信号を含み得る。いくつかの実施形態では、単一のジェスチャは、ジェスチャの実施中にユーザが加えた力に基づいて異なる信号を生成するように構成され得る。いくつかの実施形態では、ジェスチャの実施中にユーザによって加えられた力のレベルまたは量は、たとえば、動作704において決定され得る。測定された力は、連続変数、順序変数、間隔変数、記述統計指標、または他の適切な形式として計算され得る。
【0071】
分類モデルを訓練するための例示的な技法 - 訓練フェーズ
いくつかの実装形態では、ウェアラブルシステム(たとえば、
図2A、
図3Aに図示)を装着しているユーザは、ジェスチャのセット(たとえば、G1、G2、およびG3)、またはただ1つのジェスチャを含む他の任意の数のジェスチャを連続して実施し得る。ユーザは、各ジェスチャを1回だけ実施し得る(すなわち、各ジェスチャの一回の動作を実施し得る)。このシステムは、ユーザがジェスチャを実施するときに神経筋信号(たとえば、EMG信号)を記録および記憶し得る。ジェスチャのセット内のジェスチャは、たとえば、G1=拳のジェスチャ、G2=開いた手のジェスチャ、およびG3=人差し指でつまむジェスチャを含むことができる。上記で論じたように、代替的にはユーザは、G1、G2、およびG3とは異なる他のタイプのジェスチャを実施することができる。換言すれば、ユーザは事前定義されたジェスチャのセットを実施することに制約されない。むしろ、いくつかの実施形態に従って使用される教師なし機械学習技法は、任意のタイプのジェスチャ(たとえば、腕または手のジェスチャ)を、それらの形態に関係なく識別するように構成され得る。
【0072】
このシステムは、
図8に示すように、ユーザがジェスチャG1、G2、およびG3を実施するときにユーザからサンプリングされた神経筋信号のセットをキャプチャして記録し得る。神経筋信号のセットは、分類モデル用の訓練データセットとして使用され得る。いくつかの実施形態では、神経筋信号のセットは、ウェアラブルシステムの16個の神経筋センサのそれぞれについて記録された信号を含み得る。セット内の各信号は、たとえば、バンドパス、もしくはハイパス、または他のフィルタリング技法を使用してフィルタリングされ得る。
【0073】
いくつかの実施形態では、各ジェスチャの顕著な特徴を示す1つまたは複数の値が、神経筋信号のセットから導出され得る。顕著な特徴は、ジェスチャの実施中にユーザによって加えられた力とともに線形に変化する少なくとも1つの特徴を含み得る。顕著な特徴の例には、神経筋信号からサンプリングされた値から計算される共分散行列、それらの値から計算される共スペクトル行列、異なる周波数に対応するフィルタバンク共分散行列のセット、およびセンサごとのパワースペクトル(たとえば、センサによって検出された対数PSD(パワースペクトル密度))が含まれるが、これらに限定されない。
【0074】
いくつかの実装形態では、(16個のEMGチャンネルに対応する)EMGセンサからのフィルタリングされた信号間の共分散が、たとえば、200msのウィンドウで、25msのストライドで計算される。時間tにおけるNチャンネルの信号x(t)が与えられた場合、行列X=[x(t),...,x(t+T)](たとえば、aNチャンネル×T時間サンプルの行列)が定義され得る。中心化された信号x(t)(たとえば、バンドパスフィルタを適用した後の平均がゼロのもの)が与えられた場合、共分散行列は次のように表すことができる。
C=XXT
【0075】
図9は、様々なジェスチャに対して計算された共分散行列の例を示している。拳などの同じジェスチャに対応する共分散行列は力の特徴も提供し得るので、このシステムは、緩い拳のジェスチャ(たとえば、軽い力で実施される拳のジェスチャ)と、固い拳のジェスチャ(たとえば、強い力で実施される拳のジェスチャ)とを判別することが可能であり得る。
【0076】
いくつかの実施形態では、休息位置またはニュートラル位置を示すサンプルは、そのような信号が、ジェスチャを予測または識別するのに役立つことができる特徴を含む可能性が低いので、訓練セットから除去される。たとえば、休息位置またはニュートラル位置を示すEMGサンプルは、休息位置またはニュートラル位置をジェスチャ位置(本明細書では活動位置とも呼ぶ)から判別する閾値(たとえば、EMG対数パワーに基づくもの)を計算することによって識別することができる。それに応じて、計算された閾値未満のEMG対数パワーを有するサンプルは、訓練セットから除外され得る。訓練データセットからサンプルを(たとえば、それらのEMG対数パワーに基づいて)除外すると、このシステムの予測精度が向上し、いくつかの実例では、このシステムが偽陽性を生じさせるのを防ぐことができる。たとえば、いくつかの実例では、無視できる量の力で実施されたジェスチャ(たとえば、計算された閾値未満のもの)は、ユーザによって意図せずにまたは偶然に実行されたものと考えられるので、このシステムによって意図的なジェスチャとして識別されるべきではない。
図10は、休息位置および活動位置に対応するデータ点のEMG対数パワーを描画したグラフを示している。
【0077】
一実施形態では、閾値は、たとえば、(a)データの10パーセンタイルを計算し、計算された値を閾値として使用して、活動位置(約90パーセンタイル)を含み、休息位置(約10パーセンタイル)を含むデータをキャプチャすること、(b)サンプル(たとえば、EMGのサンプル)を[0,1]の間になるように再スケーリングし、次いで閾値を0.1に設定すること、または(c)(たとえば、パワーの時間微分に注目して)ジェスチャの始まりを特定し、次いで閾値を始まりの前の点の値に設定することによって、計算することができる。同様に、いくつかの実装形態では、閾値はスペクトルクラスタリング技法または他の適切なクラスタリング技法によって計算することができる。
【0078】
いくつかの態様によれば、神経筋信号を処理して、特徴空間における複数のデータ点を生成し得る。いくつかの実施形態では、ベクトル化された共分散が、多様体の接空間に射影または写像され得る。たとえば、共分散行列Ciが与えられた場合、ベクトル化された共分散は、次のようにして計算することができる。
Si=log(P-(1/2)CiP-(1/2))
【0079】
ここで、Pは基準点であり、たとえば、単位行列に対応するか、またはユーザの休息位置またはニュートラル位置の間に採取されたサンプルから計算された平均共分散行列に対応することができる。対称正方行列Siは、共分散行列と同じサイズを有する。ベクトル化された共分散は、対称行列Siの対角上側部分に基づいて計算され得、たとえば、対称行列Siの上三角部分を保持し、対角要素の単位重み(unity weight)と、非対角要素の平方根重み(squared root weight)とを計算して上三角部分をベクトル化することによって計算され得る。
【0080】
本発明者らは、共分散および接空間の写像によって、時間ウィンドウにわたって計算された第iEMGチャンネルの平均絶対値(MAV:Mean Absolute Value)などの他の特徴などよりもリッチで高感度な特徴セットが提供されることを認識しており、その理由は、MAVが異なるEMGチャンネル間の相関を考慮していないためである。
【0081】
いくつかの実施形態では、訓練データセット内の休息位置またはニュートラル位置データの平均共分散が、基準点、たとえば、接空間のゼロとして使用され得る。いくつかの実例では、次元削減技法(たとえば、主成分分析(PCA:Principal Component Analysis))を神経筋信号に対して実施して、特徴空間における複数のデータ点を生成し得る。PCA技法を実施して、2つ以上のジェスチャを判別するのに有用なデータの性質を保存しながら訓練データセットを圧縮し、効果的なジェスチャ特徴のセットを生成し得る。
【0082】
いくつかの実施形態では、PCA分析で使用される主成分(たとえば、線形的に無相関の変数)の数は任意で、このシステムによって識別されるジェスチャの数に設定され得る。訓練データセットSへのそのような次元削減は、S=(x
1,...,x
m)、特徴写像
、および(Φ(x
1),...,Φ(x
m))として定義されるデータ行列
と表すことができ、ここで、第iデータ点はx
i=Φ(x
1)、すなわち、Xの第i列によって表すことができ、これはN次元ベクトルである。PCAなどの次元削減技法を実施して、たとえば、k≪Nについて、Xの元の表現と相関するデータのk次元表現
を求め得る。
【0083】
PCAは、k∈[1,N]を固定し、Xを平均に中心化されたデータ行列、すなわち、
であるものとし、P
kをN次元の階数kの直交射影行列のセットと定義することによって、計算され得る。その後、再構成誤差、たとえば、元のデータおよび射影されたデータの間のL
2距離の2乗の総和を最小化するk次元線形部分空間にN次元の入力データを射影することができる。したがって、PCAは、次式で与えられるフロベニウスノルムFの関数として計算される誤差値の最小化の直交射影行列解P*として定義することができる。
【0084】
図11は、前処理された訓練データセットの計算された接空間(図の上部)と、計算されたPCA特徴空間(図の下部)とを示している。接空間では、正の値は休息/ニュートラル位置に対する信号エネルギーの増加を表し、負の値は休息/ニュートラル位置に対する信号エネルギーの減少を表す。PCA技法を適用することにより、図の下部に示すように、データセットの低次元表現が作成される(PCA空間では符号は任意である)。PCA空間は、分散が最大で相互に無相関である変数の線形結合のシーケンスを示す。
【0085】
いくつかの態様によれば、特徴空間(たとえば、PCA特徴空間)において生成された複数のデータ点は、クラスタリング技法を介してクラスタリングされて、実施されたジェスチャG1、G2、およびG3のそれぞれのカテゴリ表現が創出され得る。いくつかの実装形態では、K-meansクラスタリング技法を使用して、データ点を類似性指標に基づいてK個のクラスタに分割し得る。分類モデルが単一のジェスチャを認識するように訓練される実施形態では、全てのデータ点が、単一のジェスチャに関連付けられた単一のクラスタに対応することが想定され得るので、データ点のクラスタリングは実施されなくてもよいことは理解されよう。
【0086】
いくつかの実施形態では、データ点間の類似性は、異なるデータ点間の相互関係、すなわち、データ点が互いにどのように類似または非類似であるかを識別し、データ点間の類似性または規則性を比較するための尺度(本明細書では類似性指標とも呼ぶ)を決定することによって計算され得る。K-meansは重心の観点からプロトタイプを定義し、重心とはn次元連続空間における点群の平均である。K-meansクラスタリング技法の擬似コード表現を以下に示す。
1.初期重心としてK個の点を選択する。
2.repeat
3.全ての点を最も近い重心に割り当てて、k個のクラスタを形成する。
4.各クラスタの重心を再計算する。
5.until 重心が変化しない
【0087】
この技法は、K個の初期重心を選択することによって開始され、ここでKは所望のクラスタの数である。各データ点は最近傍の重心に割り当てられ、重心に割り当てられた各データ点セットはクラスタと見なされる。クラスタの重心は、クラスタに割り当てられたデータ点に基づいて、数回更新され得る。ステップ3(割り当て)およびステップ4(更新)は、いずれのデータ点によってもクラスタが変更されなくなるまで、すなわち、重心が同じままになるまで繰り返される。
【0088】
いくつかの実施形態では、EMGサンプル(データ点)を分割するために使用される類似性指標は、データ点間のコサイン距離に基づく。コサイン距離は、同じジェスチャに属するEMGサンプルを区別するための適切な指標の一例であり、その理由は、各ジェスチャを一意の方向によって特徴付けることができるためである。したがって、同じジェスチャに属するEMGサンプルまたはデータ点は、異なるジェスチャに属するデータ点よりも互いの間のコサイン距離が類似している。
【0089】
K-meansクラスタリング技法は、コサイン距離を類似性指標として使用して、前処理された訓練データセットに対して実施され、ただし、休息またはニュートラル位置/ジェスチャに対応するデータ点は除外される。K-meansクラスタリング技法が実施された後、各クラスタの重心が記憶または記録され、各ジェスチャに対応する特徴空間の方向が決定される。
【0090】
特徴空間内で同じ方向を共有するクラスタは、それらが単一のクラスタとして表現されることを理由の1つとして、効果的に識別され得る。その後、K個の方向またはベクトルv
k(たとえば、
図12に示すように、ジェスチャごとに1つのベクトルv
k)を決定することができる。
v
k ただし、k∈[1,K]
【0091】
ここで、Kは訓練フェーズで識別された別個のジェスチャの数である。
【0092】
したがって、クラスyの所与のベクトルuに対して、クラス
を次式で決定することができ、
力fの
(すなわち、所与のジェスチャの実施中にユーザによって加えれる力)は、次式で与えられる。
【0093】
図12は、ジェスチャG1、G2、およびG3に関連付けられた3つのPCA主成分について、K-meansクラスタリング技法を訓練データセットに適用した後の結果のプロットの一例を示している。図示のように、3つのクラスタのそれぞれに関連付けられた異なる重複しない方向を識別することができる。各ジェスチャは、特徴空間において一意の方向に広がっている。ジェスチャが一連の筋肉に関与する場合、ジェスチャを維持しながら加える力を増加または減少させると、関与する一連の筋肉のうちの各筋肉の収縮が一様に増加または減少する。したがって、各矢印は、方向および力のスケール(たとえば、ジェスチャを複製するとき、または後で分類フェーズ中にジェスチャを実施するときに、ユーザが加える可能性がある力の値の範囲)を含む識別されたジェスチャの性質を伝えるジェスチャベクトルを表す。特定のジェスチャを実施している間に加えられる力のレベルは、決定された方向のジェスチャベクトルの大きさによって定義され得る。いくつかの実施形態では、ジェスチャに関連付けられたジェスチャベクトルは、分類モデルにおけるそのジェスチャのカテゴリ表現を表す。
【0094】
図13は、訓練フェーズ中にユーザによって実施された各ジェスチャに伴う計算された力を示している。いくつかの実施形態では、計算された力は、3つの別個のジェスチャのそれぞれについて最大随意収縮(MVC:Maximum Voluntary Contraction)の関数として表現され得る。
【0095】
訓練された分類モデルに基づいてジェスチャを認識するための例示的な技法 - ジェスチャ認識フェーズ
上記で論じた訓練フェーズ中にユーザによって実施された各ジェスチャに対応する方向および平均的な大きさを計算した後、未見のジェスチャベクトルに対してジェスチャの分類を効果的に決定することができる。未見のジェスチャベクトルとは、未分類のユーザ定義のジェスチャから導出されるベクトルである。以下で論じるように、未見のジェスチャは、訓練フェーズ中に学習されたジェスチャと相関する場合に分類することができ、そのような未見のジェスチャベクトルの性質を推測することができ、これには、未見のジェスチャを実施している間にユーザによって加えられた力が含まれる。いくつかの実施形態では、未見のジェスチャのジェスチャベクトルは、訓練フェーズ中のジェスチャベクトルの生成と同様の方法で生成され得る。
【0096】
未見のジェスチャベクトルが与えられた場合、未見のジェスチャベクトルと、このシステムの訓練フェーズ中に作成されたジェスチャベクトルのセットとの間の類似性指標(たとえば、角度のコサイン)に基づいて、ジェスチャを推測または分類することができる。ジェスチャベクトルのセット内の各ジェスチャベクトルは、訓練フェーズ中にモデルによって学習されたジェスチャに対応する。たとえば、未見のジェスチャベクトルに対して最小のコサイン距離を有する学習済みのジェスチャベクトルを学習済みのジェスチャベクトルのセットから選択することによって、未見のジェスチャベクトルと学習済みのジェスチャベクトルとの間の一致を推測することができる。選択された学習済みのジェスチャベクトル(たとえば、未見のジェスチャベクトルに対して最小のコサイン距離を示す学習済みのジェスチャベクトル)に射影された未見のジェスチャベクトルの相対的な大きさを算出することによって、未見のジェスチャベクトルの力を推測することができる。したがって、未見のジェスチャベクトルの相対的な大きさは、未見のジェスチャベクトルと、選択された学習済みのジェスチャベクトルとの間の内積を選択された学習済みのジェスチャベクトルの大きさによって正規化した値に対応する。
【0097】
したがって、(訓練フェーズ後の)以後のユーザ実施ジェスチャから計算された未見のジェスチャベクトルは、いくつかの実例では、それらのコサイン距離に基づいて分類することができる。
図14は、学習済みのジェスチャベクトルと未見のジェスチャベクトルとの間のコサイン距離を示している。未見のジェスチャベクトルと学習済みのジェスチャベクトルとの間のコサイン距離は、未見のジェスチャベクトルが学習済みのジェスチャベクトルと相関する場合はゼロに近く、未見のジェスチャベクトルが学習済みのジェスチャベクトルと相関しない場合はゼロから外れる。たとえば、
図14は、3つの異なる未見のジェスチャベクトルのコサイン距離を示している。この実例では、3つの未見のジェスチャベクトルのそれぞれが、別個の学習済みのジェスチャG1、G2、およびG3と一致する。
【0098】
他のいくつかの実例では、未見のジェスチャベクトルは、休息位置またはニュートラル位置に相関することができ、その結果、休息ジェスチャまたはニュートラルジェスチャとして分類され得る。未見のジェスチャベクトルが、訓練フェーズ中にユーザが休息位置またはニュートラル位置であった間に採取されたEMG信号と相関するかを判定することにより、未見のジェスチャベクトルを休息ジェスチャまたはニュートラルジェスチャとして分類することができる。たとえば、未見のジェスチャベクトルと学習済みのジェスチャベクトルとの間の距離のいずれもが所定の閾値(たとえば、0.25ラジアン)よりも低くない場合、未見のジェスチャベクトルが休息位置またはニュートラル位置に対応すると推測することができる。それ以外の場合、未見のジェスチャベクトルは、未見のジェスチャベクトルに対して最小のコサイン距離を呈する学習済みのジェスチャベクトルとして分類することができる。
【0099】
上記で論じたように、未見のジェスチャベクトルと相関すると予測された学習済みのジェスチャベクトルに対する未見のジェスチャベクトルの相対的な大きさを計算することによって、未見のジェスチャベクトルに伴う力を推測することができる。
図15は、識別された3つのジェスチャベクトルのそれぞれについて推測された力を示している。
【0100】
図16は、未見のジェスチャベクトルのPCA空間上のデータマップを示している。
図12に示す学習されたジェスチャベクトルの方向は、予測に役立つ強力な特徴のままであり、これは、それらの特徴が訓練フェーズ中にジェスチャの一回の動作から抽出されたにもかかわらずそうであるということが理解される。
【0101】
ウェアラブルシステムの使用事例
ユーザは、16個の神経筋センサを有するウェアラブルシステム(たとえば、
図2Aに示したウェアラブルデバイス)を装着し得る。ユーザはK個のジェスチャを実施し得、ここで、Kは1つまたは他の任意の数のジェスチャに相当し得る。ユーザは、各ジェスチャを実施している間に加える力を変化させながら、特定の期間、ジェスチャを実施し得る。分類モデルは、教師なし機械学習手法を介して実施されたジェスチャを識別し、識別されたジェスチャのそれぞれのカテゴリ表現を生成するように訓練され得る。カテゴリ表現は、識別されたジェスチャに関連する性質(たとえば、ジェスチャタイプ、ジェスチャの実施中に加えられた力の量など)を捕捉し得る。ユーザが学習されたジェスチャを実施するたびに、制御/コマンド信号がこのシステムによって生成され得るように、学習されたジェスチャおよび/または力がコマンド/制御信号にマッピングされ得
、随意に、コマンド信号は、学習されたジェスチャをユーザが実施した回数を示し得る。訓練および使用は、アームバンドを含むウェアラブルシステムに限定されるものではなく、本明細書に記載の技法は、EMGセンサおよび/またはアームバンドとは異なる他のセンサ配置を使用して実装できることは理解されよう。
【0102】
いくつかの実施形態では、ウェアラブルシステムは、ユーザがユーザ定義のジェスチャを実施した場合に1つまたは複数の制御/コマンド信号を生成するように構成され得る。そのような制御/コマンド信号は、計算デバイスを起動/停止し、仮想環境内のオブジェクトを制御し、たとえば当該オブジェクトの外観および/または位置を変更し、拡張現実環境内のオブジェクトを制御し、たとえば当該オブジェクトの外観および/または位置を変更し、IoTデバイス、ならびに他の適切なシステムおよび/またはデバイスを制御し得る。いくつかの実例では、単一のジェスチャが、ジェスチャの実施中にユーザが加えた力に基づいて異なる信号を生成するように構成され得る。たとえば、ユーザによって、ユーザの最大随意収縮(MVC)の半分に対応する閾値未満の力を使用して拳のジェスチャが実施されると、このシステムは、カーテンまたはブラインドシステムに接続された電気モーターを起動する信号を生成して、モーターがカーテンまたはブラインドを閉め得る。同様に、ユーザが前述の閾値以上の力を加えて拳のジェスチャを実施した場合、このシステムは、ユーザが位置する部屋の照明をオフにするように構成される第2の信号を生成し得る。他の例として、ジェスチャは、信号を制御して、そのジェスチャの実施中に加えられた力が、その信号の性質、たとえば、電圧、または拡張現実もしくは仮想現実環境で生成される他の信号に比例するように構成され得る。さらに他の例として、ジェスチャは、調光器またはポテンショメータを制御して、ジェスチャの実施中にユーザが加えた力に比例するように部屋の照明の強度を調節するよう構成され得る。
【0103】
上記の実施形態は、多くの方法のいずれでも実装することができる。たとえば、実施形態は、ハードウェア、ソフトウェア、またはそれらの組み合わせを使用して実装され得る。ソフトウェアで実装される場合、ソフトウェアコードは、単一のコンピュータで提供されるか、または複数のコンピュータに分散されるかにかかわらず、任意の適切なプロセッサまたはプロセッサの集合体で実行することができる。上述の機能を実施する任意の構成要素または構成要素の集合体は一般的に、上記で論じた機能を制御する1つまたは複数のコントローラと見なせることを理解されたい。1つまたは複数のコントローラは多くの方法で、たとえば、専用のハードウェアを使用して、または上記の機能を実施するようにマイクロコードもしくはソフトウェアを使用してプログラムされた1つもしくは複数のプロセッサを使用して実装することができる。
【0104】
この点に関して、本発明の実施形態の1つの実装形態は、プロセッサ上で実行された場合に本発明の実施形態の上記で論じた機能を実施するコンピュータプログラム(すなわち、複数の命令)を使用してコード化された少なくとも1つの非一時的コンピュータ可読記憶媒体(たとえば、コンピュータメモリ、ポータブルメモリ、コンパクトディスクなど)を含むことを理解されたい。コンピュータ可読記憶媒体は、その上に記憶されたプログラムを任意のコンピュータリソースにロードして、本明細書で論じた本発明の態様を実装することができるように、輸送可能なものとすることができる。加えて、実行された場合に上記で論じた機能を実施するコンピュータプログラムへの言及は、ホストコンピュータ上で作動するアプリケーションプログラムに限定されないことを理解されたい。むしろ、コンピュータプログラムという用語は、本明細書では一般的な意味で、本発明の上記で論じた態様を実装するようにプロセッサをプログラムするために用いることができる任意のタイプのコンピュータコード(たとえば、ソフトウェアまたはマイクロコード)を指すために使用される。
【0105】
本発明の様々な態様は、単独で、組み合わせて、または前述の実施形態で具体的に論じていない様々な構成で使用され得、したがって、それらの適用において、前述の説明に記載したまたは図面に示した構成要素の詳細および構成に限定されるものではない。たとえば、一実施形態に記載した態様は、他の実施形態に記載した態様と任意の方法で組み合わせられ得る。
【0106】
また、本発明の実施形態は、1つまたは複数の方法として実装され得、その一例を提供している。方法の一部として実施される動作は、任意の適切な方法で並べられ得る。したがって、動作が図示とは異なる順序で実施される実施形態が構築され得、異なる順序は、いくつかの動作を、例示的な実施形態では順次的な動作として示しているとしても、同時に実施することを含み得る。
【0107】
請求項要素を変更するための特許請求の範囲における「第1」、「第2」、「第3」などの序数用語の使用は、それ自体では、ある請求項要素の他の請求項要素に対する優先、先行、または順序を暗示するものではなく、方法の動作が実施される時間的順序を暗示するものでもない。そのような用語は、特定の名前を有する1つの請求項要素を(序数用語の使用を別にして)同じ名前を有する他の要素から区別するためのラベルとしてのみ使用している。
【0108】
本明細書で使用している語句は、説明を目的としたものであり、限定するものと見なされるべきではない。「含む(including)」、「備える(comprising)」、「有する(having)」、「含有する(containing)」、「伴う(involving)」、およびそれらの変形の使用は、その後に列挙された項目およびさらなる項目を包含することを意味する。
【0109】
本発明のいくつかの実施形態を詳細に説明してきたが、当業者には、様々な修正および改善が容易に思い付くであろう。そのような修正および改善は、本発明の趣旨および範囲内にあるものとする。したがって、前述の説明は単なる例であり、限定することを意図するものではない。本発明は、以下の特許請求の範囲およびその均等物により定義されるものによってのみ限定される。