IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ニューラル・ラブ・インコーポレーテッドの特許一覧

特表2024-534472タッチレス式画像ベース入力インタフェース
<>
  • 特表-タッチレス式画像ベース入力インタフェース 図1A
  • 特表-タッチレス式画像ベース入力インタフェース 図1B
  • 特表-タッチレス式画像ベース入力インタフェース 図2
  • 特表-タッチレス式画像ベース入力インタフェース 図3
  • 特表-タッチレス式画像ベース入力インタフェース 図4
  • 特表-タッチレス式画像ベース入力インタフェース 図5
  • 特表-タッチレス式画像ベース入力インタフェース 図6
  • 特表-タッチレス式画像ベース入力インタフェース 図7
  • 特表-タッチレス式画像ベース入力インタフェース 図8
  • 特表-タッチレス式画像ベース入力インタフェース 図9
  • 特表-タッチレス式画像ベース入力インタフェース 図10
  • 特表-タッチレス式画像ベース入力インタフェース 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-20
(54)【発明の名称】タッチレス式画像ベース入力インタフェース
(51)【国際特許分類】
   G06F 3/01 20060101AFI20240912BHJP
   G06F 3/0346 20130101ALI20240912BHJP
   G06F 3/04812 20220101ALI20240912BHJP
   G06F 3/038 20130101ALI20240912BHJP
【FI】
G06F3/01 570
G06F3/01 510
G06F3/0346 422
G06F3/0346 423
G06F3/04812
G06F3/038 350D
G06F3/038 310A
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024517060
(86)(22)【出願日】2022-09-14
(85)【翻訳文提出日】2024-04-15
(86)【国際出願番号】 US2022076441
(87)【国際公開番号】W WO2023044352
(87)【国際公開日】2023-03-23
(31)【優先権主張番号】63/261,242
(32)【優先日】2021-09-15
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】524101951
【氏名又は名称】ニューラル・ラブ・インコーポレーテッド
(74)【代理人】
【識別番号】100098394
【弁理士】
【氏名又は名称】山川 茂樹
(72)【発明者】
【氏名】チャン,シェリー・エス
(72)【発明者】
【氏名】チェン,オリヴァー・ダブリュ
【テーマコード(参考)】
5B087
5E555
【Fターム(参考)】
5B087AA02
5B087AA09
5B087AB02
5B087AB09
5B087BC12
5B087BC32
5B087DD01
5B087DD03
5B087DD06
5B087DE03
5B087DE07
5E555AA11
5E555AA46
5E555BA01
5E555BA20
5E555BA22
5E555BA31
5E555BB01
5E555BB20
5E555BB22
5E555BB31
5E555BC01
5E555BC05
5E555BC16
5E555CA42
5E555CA47
5E555CB42
5E555CB55
5E555CB64
5E555CB65
5E555CB66
5E555CC01
5E555CC05
5E555DB06
5E555DC19
5E555DC20
5E555DC58
5E555DC59
5E555DC84
5E555EA14
5E555EA19
5E555EA22
5E555EA27
5E555FA00
(57)【要約】
コンピューティングデバイスにおける入力検出の方法は、カメラから、ユーザの手を示す複数の画像を受信するステップを含む。上記複数の画像は、上記ユーザの手によって実行された事前定義された起動ジェスチャを含む、複数のユーザ意図パラメータを検出するために処理される。ジェスチャ入力起動条件を満たす上記複数のユーザ意図パラメータに応答して、上記複数の画像は、事前定義された入力ジェスチャと一致する上記ユーザの手の動きを検出するために処理される。上記事前定義された入力ジェスチャは、コンピュータ制御アクションにマッピングされ、上記定義された入力ジェスチャに応答して上記コンピュータ制御アクションが実行される。
【選択図】図1A
【特許請求の範囲】
【請求項1】
コンピューティングデバイスにおけるユーザ入力検出の方法であって、
前記方法は:
カメラから、人間のユーザのユーザの手を示す複数の画像を受信するステップ;
前記複数の画像を処理して複数のユーザ意図パラメータを検出するステップであって、前記複数のユーザ意図パラメータは、前記ユーザの手によって実行された、事前定義された起動ジェスチャを含む、ステップ;
ジェスチャ入力起動条件を満たす前記複数のユーザ意図パラメータに応答して、前記複数の画像を処理することにより、事前定義された入力ジェスチャと一致する前記ユーザの手の動きを検出するステップ;
前記事前定義された入力ジェスチャをコンピュータ制御アクションにマッピングするステップ;及び
前記事前定義された入力ジェスチャに応答して前記コンピュータ制御アクションを実行するステップ
を含む、方法。
【請求項2】
前記カメラによってキャプチャされる前記複数の画像は、RGB色値を有する2次元画像ピクセルデータを含む、請求項1に記載の方法。
【請求項3】
前記カメラは、前記コンピューティングデバイスに統合されたウェブカメラである、請求項2に記載の方法。
【請求項4】
前記複数の画像は更に、前記人間のユーザの、ユーザの目を示し、前記複数のユーザ意図パラメータは更に、前記ユーザの目の、検出された視線方向を含む、請求項1に記載の方法。
【請求項5】
前記複数のユーザ意図パラメータは更に、前記人間のユーザの、前記ユーザの手以外の1つ以上の更なるユーザ身体部分のポーズを含む、請求項1に記載の方法。
【請求項6】
前記複数のユーザ意図パラメータは更に、前記複数の画像内で検出された異なる人間のユーザの人数を含む、請求項1に記載の方法。
【請求項7】
前記複数のユーザ意図パラメータは更に、前記人間のユーザの、認識されたアイデンティティを含む、請求項1に記載の方法。
【請求項8】
前記複数の画像は更に、前記人間のユーザの顔を示し、前記人間のユーザの前記アイデンティティは、顔認識によって認識される、請求項7に記載の方法。
【請求項9】
前記複数の画像は更に、前記ユーザの手で保持されている、認識された物体を示し、前記複数のユーザ意図パラメータは、前記認識された物体の、検出された存在を含む、請求項1に記載の方法。
【請求項10】
前記複数のユーザ意図パラメータは更に、前記人間のユーザの、検出された発話を含む、請求項1に記載の方法。
【請求項11】
前記複数のユーザ意図パラメータは更に、最後の事前定義された入力ジェスチャに応答して最後のコンピュータ制御アクションが実行されてからの時間長を含む、請求項1に記載の方法。
【請求項12】
前記事前定義された入力ジェスチャを前記コンピュータ制御アクションにマッピングする前記ステップは更に、第2の人間のユーザの第2のユーザの手の動きを検出するステップを含む、請求項1に記載の方法。
【請求項13】
前記ユーザの手に関連付けられたオンスクリーングラフィカルカーソルを表示するステップを更に含む、請求項1に記載の方法。
【請求項14】
第2の人間のユーザの第2のユーザの手に関連付けられた第2のオンスクリーングラフィカルカーソルを表示するステップを更に含む、請求項13に記載の方法。
【請求項15】
前記オンスクリーングラフィカルカーソルの表示位置を、前記ユーザの手の検出された前記動きに少なくとも部分的に基づいて決定された距離及び方向に移動させるステップを更に含む、請求項13に記載の方法。
【請求項16】
前記オンスクリーングラフィカルカーソルの前記表示位置を移動させる前記ステップは、初期ジッタースムージング値と、前記ユーザの手の動きの距離及び前記ユーザの手の動きの速度のうちの一方又は両方に基づいて計算された、更新されたジッタースムージング値との影響を、少なくとも部分的に受ける、請求項15に記載の方法。
【請求項17】
前記オンスクリーングラフィカルカーソルの表示位置を、前記事前定義された入力ジェスチャの終了までロックするステップを更に含む、請求項13に記載の方法。
【請求項18】
前記複数の画像内の前記人間のユーザの視認できるサイズに少なくとも部分的に基づいて、前記複数の画像をクロッピング又はズームするステップを更に含む、請求項1に記載の方法。
【請求項19】
カメラ;
論理サブシステム;及び
前記論理サブシステムによって:
前記カメラから、人間のユーザのユーザの手を示す複数の画像を受信し;
前記複数の画像を処理して複数のユーザ意図パラメータを検出し、ここで前記複数のユーザ意図パラメータは、前記ユーザの手によって実行された、事前定義された起動ジェスチャを含み;
ジェスチャ入力起動条件を満たす前記複数のユーザ意図パラメータに応答して、前記複数の画像を処理することにより、事前定義された入力ジェスチャと一致する前記ユーザの手の動きを検出し;
前記事前定義された入力ジェスチャをコンピュータ制御アクションにマッピングし;
前記事前定義された入力ジェスチャに応答して前記コンピュータ制御アクションを実行する
ために実行可能な命令を保持する、記憶サブシステム
を備える、コンピューティングデバイス。
【請求項20】
コンピューティングデバイスにおけるユーザ入力検出の方法であって、
前記方法は:
前記コンピューティングデバイスの一体型ウェブカメラから、人間のユーザのユーザの手を示す複数の画像を受信するステップ;
前記複数の画像を処理して前記ユーザの手によって実行された、事前定義された起動ジェスチャを検出し、前記人間のユーザのユーザの目の視線方向が前記コンピューティングデバイスのディスプレイに向けられていることを検出する、ステップ;
ジェスチャ入力起動条件を満たす前記複数のユーザ意図パラメータに応答して、前記複数の画像を処理することにより、事前定義された入力ジェスチャと一致する前記ユーザの手の動きを検出するステップ;
オンスクリーングラフィカルカーソルの表示位置を、前記ユーザの手の検出された前記動きに少なくとも部分的に基づいて決定された距離及び方向に移動させるステップ;
前記事前定義された入力ジェスチャをコンピュータ制御アクションにマッピングするステップ;並びに
前記事前定義された入力ジェスチャに応答して前記コンピュータ制御アクションを実行するステップ
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願との相互参照
本出願は、2021年9月15日出願の米国仮特許出願第63/261,242号に対する優先権を主張するものであり、上記仮特許出願の内容は、あらゆる目的のために、参照により本出願に援用される。
【背景技術】
【0002】
この数十年のコンピュータユーザインタフェースは、キーボード、マウス、ジョイスティック、及びユーザが物理的に操作/タッチするほかの入力用周辺機器に大きく依存してきた。これらのタイプの入力メカニズムは極めて効果的であり、依然として至る所に存在している。更に、多くの現行のインタフェースは:タッチセンサ;モーションセンサ;音声認識;及び表示されているコンテンツに対する入力の位置を示す、キャプチャされた画像、例えば手のジェスチャ又は自然な入力の解釈を活用している。画像ベースのインタフェースに関しては、これらのシステムは着実に改良されているものの、多様なユースケースの環境にわたる正確な認識/解釈には、相当な複雑さが伴う場合がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
この「発明の概要」は、以下の「発明を実施するための形態」で更に説明される複数の概念の選択肢を、簡略化された形式で紹介するために提供される。この「発明の概要」は、請求対象となる主題の重要な特徴又は必須の特徴を特定することを意図したものではなく、請求対象となる主題の範囲を限定するために使用されることを意図したものでもない。更に、請求対象となる主題は、本開示のいずれかの箇所に記載されている欠点のいずれか又は全てを解決する実装形態に限定されない。
【課題を解決するための手段】
【0004】
コンピューティングデバイスでの入力検出方法は、ユーザの手を示す複数の画像をカメラから受信するステップを含む。上記複数の画像を処理することにより、上記ユーザの手によって実行された事前定義された起動ジェスチャを含む、複数のユーザ意図パラメータが検出される。あるジェスチャ入力起動条件を満たす上記複数のユーザ意図パラメータに応答して、上記複数の画像を処理することにより、事前定義された入力ジェスチャと一致する上記ユーザの手の動きが検出される。上記事前定義された入力ジェスチャはコンピュータ制御アクションにマッピングされ、上記コンピュータ制御アクションは、上記事前定義された入力ジェスチャに応答して実行される。
【図面の簡単な説明】
【0005】
図1A図1A、1Bは、人間のユーザのユーザの手を示す複数の画像を受信するコンピューティングデバイスの概略図である。
図1B図1A、1Bは、人間のユーザのユーザの手を示す複数の画像を受信するコンピューティングデバイスの概略図である。
図2図2は、ユーザ入力検出のための例示的な方法を示す。
図3図3は、コンピューティングデバイスへのユーザ入力に関する安定性制御動作を説明する例示的な処理フローを示す。
図4図4は、コンピューティングデバイスによって実行されるカーソルロック動作のために採用できる、例示的なアンカーポイントロック決定テーブルを示す。
図5図5は、タッチレス式対話中の様々なジェスチャに対して使用できる例示的なロックのシナリオ及び非ロックのシナリオを示す。
図6図6は、意図的でない複数回のクリックによるユーザ入力を阻止するためにコンピューティングデバイスが実行できる動作を説明する、例示的な処理フローを示す。
図7図7は、タッチレス式対話中にカーソルを移動させるための、2つの例示的なロック及びスクロールのシナリオを示す。
図8図8は、人間のユーザを示す画像にクロップ及び/又はズームを適用する、例示的なシナリオを示す。
図9図9は、タッチレス式ユーザ対話を最適化するためにコンピューティングシステムがコンテキストアウェアネスを採用する、例示的なシナリオを示す。
図10図10は、例示的なコンテキストベースのジェスチャマッピングスキームを示す。
図11図11は、例示的なコンピューティングシステムの概略図である。
【発明を実施するための形態】
【0006】
多くのユーザインタフェースはユーザに、キーボード、タッチスクリーン、又は上記インタフェースを操作するための他の構造に接触することを要求する。物理的接触が必要となることは、環境によっては望ましくない場合がある。例えばウイルス又は他の病原体の伝染を回避するために、ATM、情報キオスク、販売時点情報管理システム等の共有デバイスでは、非接触式インタフェースが大きな利益をもたらすことができる。非接触式インタフェースは、病院及び手術室といった滅菌環境、ガレージ又は工場環境といった汚れが酷い環境、プレゼンテーション等を目的としたデバイスの遠隔制御、又は複合現実の没入型ゲーム及びトレーニングのための高度な体験においても有用である。更に、タッチレス式ユーザインタフェースのためのソリューションについての過去の試みには、3次元(3D)ToF(time of flight)カメラ、赤外線センサ、ジャイロスコープ、又は他のセンサに依存する、独自のアドオン周辺デバイスが必要であり、これらは複雑かつ高コストなタッチレス式ユーザインタフェースをもたらす。
【0007】
従って本開示は、タッチレス式ユーザインタフェースを実装するための、コンピューティングシステム及び対応するコンピュータ実装式の方法を対象とし、上記タッチレス式ユーザインタフェースは、画像処理を用いてユーザからのジェスチャ入力を認識して、上記タッチレス式ユーザインタフェースを簡潔かつコスト効率の高い方法で制御するためのコマンドに上記ジェスチャ入力を変換する。以下で更に詳細に説明されるように、タッチレス式ユーザインタフェースとのタッチレス式対話を改善するために、様々な最適化動作を実行できる。タッチフリー動作が望ましい場合が多いものの、本明細書に記載のコンピューティングシステムは、デバイスの接触の回避が問題とならない環境でも、大きな利益を提供できる。
【0008】
図1Aは、人間のユーザ102によってコンピューティングデバイス100が制御される例示的なシナリオの概略図である。具体的には、人間のユーザは、その手104を動かすことによってコンピューティングデバイスに入力を提供する。ユーザの手の動きは、コンピューティングデバイスのカメラ106によって検出される。この例では、コンピューティングデバイスは、オンスクリーングラフィカルカーソル108の表示位置を移動させることによって、ユーザの手の動きに応答する。これはユーザの手から延びる破線110Aによって示されており、この破線110Aは経時的な手の動きを示し、また経時的なカーソルの動きを示す、グラフィカルカーソルから延びる破線110Bに対応する。
【0009】
図1に示されているコンピューティングデバイスは非限定的なものであり、例示のために大幅に簡略化されたものであることが理解されるだろう。本明細書に記載の技法は、1つ以上のコンピューティングデバイスからなるいずれの好適なコンピューティングシステムによって実装でき、各コンピューティングデバイスは、いずれの好適な機能、ハードウェア構成、及びフォームファクタを有してよい。いくつかの例では、本明細書に記載の技法は、図11に関連して以下で説明されるコンピューティングシステム1100によって実装できる。
【0010】
ユーザの手の動きは、カメラ106によってキャプチャされた画像を介して検出される。これは図1Bに示されており、この図は、カメラ106によってキャプチャされた、ユーザの手104を示す3つの例示的な画像112A~112Cを示す。簡潔にするために、画像112A~112Cではユーザの手、及びユーザの手首の一部のみが示されている。ユーザの身体のいずれの部分又は全身を、本明細書に記載されているようにキャプチャされる画像内に、1つ以上の他のユーザの全身又は一部、背景環境の細部等と共に示すことができることが理解されるだろう。
【0011】
図1Bにおいて各画像112A~112Cは、ユーザの手の運動中の異なる時点においてキャプチャされたものである。従って手は各画像において異なる位置で確認できる。これにより、コンピューティングデバイスはユーザの手の動きを検出するために複数の画像を処理でき、また以下で更に詳細に説明されるように、この動きに適切に応答できる。いずれの好適な個数の異なる画像をキャプチャしてよく、またこれらの画像をいずれの好適なレートでキャプチャしてよいことが理解されるだろう。
【0012】
いずれのタイプの光学入力メカニズムを、タッチレス式ユーザインタフェースの制御のために処理される画像のキャプチャのために採用してよい。とは言うものの、いくつかの例では、赤・緑・青色(RGB)、グレースケール、又は他の可視光領域で動作する、単純で広く普及している2次元(2D)カメラを採用することが、特に有利となる。換言すれば、カメラによってキャプチャされる複数の画像は、RGB色値を有する2次元画像ピクセルデータを含むことができる。本明細書に記載の技法は有利には、コンピューティングデバイスの一体型ウェブカメラを用いて実装でき、これにより外部カメラを取得して構成する必要が軽減される。以下で説明されるように、このようなシステムは既存の画像認識コンポーネントを活用でき、深度ベースのトラッキングシステム及び他の3Dシステムで見られる複雑性及びコストの多くを回避できる。更にいくつかの例では、このようなシステムは、複雑なアプリケーションプログラミングインタフェース(Application Programming Interface:API)又はソフトウェア開発キット(Software Development Kit:SDK)の統合を必要としない、「プラグ・アンド・プレイ(plug and play)」動作を可能とすることができる。
【0013】
本明細書におけるジェスチャの認識は、コンピュータビジョンと深層学習との組み合わせを利用して、一般的に入手可能な2Dカメラのみを用いた上述のタッチレス式・非接触式のユーザインタフェースを形成できる。一例として、コンピュータビジョン及び深層ニューラルネットワーク(deep neural network:DNN)学習を用いて、人間の手及び指の位置を検出でき、続いてこれらは、表示されたユーザインタフェースの要素(例えばスクリーン上に表示されたボタン)にマッピングされる。本記載のコンピュータ実装型の方法は、AIモデルとポストネットワーク処理との新規の組み合わせを採用して、異なる複数の環境条件下でジェスチャを特定する。好適なAI及び/又は機械学習(machine learning:ML)技法の非限定的な例を、図11に関連して以下で説明する。例えばこのような処理は、右手と左手、異なる皮膚の色、手袋をはめた指、複数の照明条件、及び複数のユーザがカメラの視野内にいる場合の一次対話と二次対話の区別のために実行できる。
【0014】
図2は、コンピューティングデバイスへの入力を提供するための例示的な方法200を示す。方法200のステップは、1つ以上のコンピューティングデバイスからなるいずれの好適なコンピューティングシステムによって実施できる。一例として、方法200は、図11に関連して以下で詳細に説明されるコンピューティングシステム1100によって実装できる。
【0015】
202では、方法200は、人間のユーザのユーザの手を示す複数の画像を受信するステップを含む。これは実質的に、図1A、1Bに関連して上述されているように実施できる。より詳細には、いずれの好適なカメラ又は複数のカメラのアレイによって、複数の画像をキャプチャできる。例えばカメラは、2Dウェブカメラ、又は別の容易に入手可能な「在庫品の(off the shelf)」カメラを含んでよい。
【0016】
204では、方法200は、上記複数の画像を処理して複数のユーザ意図パラメータを検出するステップを含む。一般に、「ユーザ意図パラメータ(user intent parameter)」は、ユーザにコンピューティングデバイスを制御する意図があるかどうか、及び/又はコンピューティングデバイスがユーザの手の将来の動きを制御入力として扱うべきかどうかを判定するために使用可能ないずれの好適なデータ又はコンテキストを指す。
【0017】
一例として、上記複数のユーザ意図パラメータは、ユーザの手によって実行される、事前定義された起動ジェスチャを含む。例えば上記起動ジェスチャは、図1A、1Bに示されているように、人差し指でコンピューティングデバイスを指すことを含んでよい。より一般的には、ユーザは、画像フィードを介してキャプチャされるタッチレス式対話を開始する意図を示す、起動ジェスチャ若しくはポーズ、又は一連のジェスチャ及びポーズを実行してよい。コンピューティングシステムは、画像フィードを処理してユーザの1つ以上のジェスチャを認識し、上記1つ以上のジェスチャが適切な1つ以上の起動ジェスチャに対応することを判定し、認識された1つ以上の起動ジェスチャに基づいてタッチレス式対話を開始させるように構成される。換言すれば、コンピューティングシステムは、本明細書では「ジェスチャ入力起動条件」と呼ばれる指定された規則又は条件が、タッチレス式ユーザ入力に基づいて満たされた場合に、ユーザとタッチレス式ユーザインタフェースとの間の対話を開始させるように構成される。
【0018】
いくつかの例では、コンピューティングシステムは、手のジェスチャ等の個々のジェスチャをユーザ意図パラメータとして認識するように構成されていてよい。いくつかの例では、コンピューティングシステムは、視線のトラッキング、頭部のポーズ等と組み合わされた手のジェスチャといった、複数の身体部分を含むマルチモーダルジェスチャを認識するように構成されていてよい。いくつかの例では、コンピューティングシステムは、発話認識等の音声モダリティを活用できる。換言すれば、上記複数のユーザ意図パラメータは、人間のユーザの検出された発話を含んでよく、これは例えば、コンピューティングシステムに通信可能に結合されたマイクロフォンを介して検出される。
【0019】
ユーザの手の動きを入力ジェスチャとして解釈する前にユーザの意図を評価することは、ユーザの手の動きがコンピューティングシステムによって意図的でない制御入力として解釈されて予想外の挙動を引き起こすシナリオを抑制するのに役立ち得る。例えば、ユーザはインタフェースの操作を意図することなく手を動かしながら、別の人物と会話している場合がある。これは、キャプチャされた画像内に複数のユーザを確認でき、かつ上記ユーザのうち1人しか(又は誰も)コンピューティングデバイスを制御しようとしていないシナリオを、抑制することもできる。従って上記複数のユーザ意図パラメータは、人間のユーザの、認識されたアイデンティティを含んでよい。例えば、カメラによってキャプチャされた複数の画像は、人間のユーザの顔を含むことができ、従って人間のユーザのアイデンティティは顔認識によって認識できる。更に、又はあるいは、人間のユーザのアイデンティティは、例えば発話認識、セキュリティ認証(例えばユーザに、パスワードの提供又はセキュリティチャレンジへの応答を要求すること)、肌の色調の分析といった、他の好適な方法で認識できる。一般に、本明細書に記載の技法は、固定的な事前構成済みパラメータに依存することも、対話パターンを研究してジェスチャ入力起動条件が満たされているかどうかを動的にリアルタイムで判断するAIアルゴリズムに依存することもできる。
【0020】
より一般的には、上記複数のユーザ意図パラメータは、以下の非限定的な例のうちのいずれかを含んでよい。上記複数のユーザ意図パラメータは、上記複数の画像内で検出された異なる人間のユーザの人数を含んでよい。例えば、ユースケースに応じて、いくつかのシナリオでは1つの手と1人のユーザ(例えば手術中に画像を操作する外科医)しか必要なく、又はシナリオが複数のユーザ及び複数の手を必要とする場合もある(例えばマルチプレイヤーゲームのシナリオ)。従って様々な場合において、上記ジェスチャ入力起動条件は、1人のユーザ(例えば手術を実施する外科医)のみが確認できる場合にしか満たされない場合もあり、又は上記条件は、2人以上のユーザが確認できる場合(例えばマルチプレイヤーゲームのシナリオ)にしか満たされない場合もある。
【0021】
上記複数のユーザ意図パラメータは、コンピューティングシステムとの対話を開始又は終了するべきかどうかを判断するための所定のトリガーシーケンスを検出することを含んでよい。これは、上述のような事前定義された起動ジェスチャ、例えばユーザが手のひらを一定の間隔で上に向けること、又は手のひらを上に向け、ピースサインをしてから拳を握るといった、ユーザが偶然トリガーしてしまう可能性が比較的低い更に複雑なジェスチャのシーケンスを実行することを含んでよい。場合によっては、上記トリガーシーケンスは、ユーザの身体の2つ以上の部分によって実行される動き又はポーズ、例えば両手の動き、ユーザの頭部の動き、カメラに対するユーザの胴体又は身体の配向等を含んでよい。換言すれば、上記複数のユーザ意図パラメータは、人間のユーザの、ユーザの手以外の追加の1つ以上のユーザ身体部分のポーズを含んでよい。終了シーケンス(例えばユーザの手の動きを制御入力として解釈するのをコンピューティングシステムに中止させるシーケンス)は、ユーザが手のひらを下に向けること、スクリーンから目を離すこと、又は対話からの離脱を示す他のアクションの実行といった、単純なものであってよい。
【0022】
上記複数のユーザ意図パラメータは、例えば複数の画像が人間のユーザの目を示している場合には、ユーザの目の、検出された視線方向を含んでよい。換言すれば、上記ジェスチャ入力起動条件は、ユーザがスクリーンを見ている場合にのみ満たすことができ、上記条件はユーザがスクリーンを見ていないときには満たすことができない。しかしながら、視線の検出は全てのシナリオに適しているわけではないため、追加又は代替として他のユーザ意図パラメータも考慮できることが理解されるだろう。場合によっては、コンピューティングシステムは、背景ノイズを除去するためのバックグラウンドセグメンテーション技法を採用してよく、これによって画像処理を、前景でアクティブな動きをしている人物のみに集中させることができる。
【0023】
上記複数のユーザ意図パラメータは、カメラによってキャプチャされた複数の画像内に、認識された物体が示されている場合に、ユーザの手で保持されているこのような認識された物体の存在を検出することを含んでよい。換言すれば、コンピューティングシステムは、物体検出を採用することによって、環境内のユーザの意図を評価できる。既知のアクティビティにおいて、ある環境で保持された特定の物体が検出されることは、実行するべき望ましいアクションを示す場合がある(例えば美術において筆を用いて広い幅の部分を塗ったり、細線の鉛筆を用いて描画したりする、又は飛行機内でヨークを動かす若しくはレバーを押す)。これにより、物理的に保持された物体を完全に機械的に装備してアプリケーション自体に接続する必要なしに、アプリケーション上で正しいアクティビティをトリガーできるようになる。物体検出は、保持されている物体が手自体の一部を部分的に覆い隠す場合に、意図を更に評価する。というのは、見えているグリップ又は身体のポーズによって、意図されるアクションの可能性が制限されることになるためである。また物体検出を、ある環境における人物のメインの手がどちらであるかに関する切り替え機構として採用することもできる。例えば外科医がトリガーアクションシーケンスを利き手で開始し、利き手を用いて医療器具を持ち上げる場合、利き手でない方の手がユーザインタフェースを制御し続けることができる。
【0024】
場合によっては、コンピューティングシステムは、ユーザの動きの速度及び/又は一貫性を追跡してよい。これは、ある特定の運動が、最適に意図された運動と比較してどの程度良好に実行されたかを確認するための、パフォーマンスの評価として使用でき、これを用いてユーザの身体的トレーニングのための推奨事項を生成できる。長期にわたって定期的に収集された運動データを用いて、ある特定の人物に合わせて意図の検出を調整するため又は経時的な運動の範囲の変化を補償するために使用されるDNNモデルを再訓練することもできる。
【0025】
コンピューティングシステムは、いずれの好適な訓練プロセスによって生成されたいずれのタイプのニューラルネットワークを用いて、ジェスチャ認識を実施するように構成されていてよい。例えば、画像フィード内の一連の画像をループさせて、例えば深層ニューラルネットワーク処理を用いて連続的に処理することにより、ユーザの手及び身体のポーズ並びに/又は特徴を抽出してよい。事前訓練済みの身体及び手のポーズのDNNモデルの組み合わせを採用できる。DNNモデルの弱点(肘が見えないと手を検出できない等)を補償するために、非MLアルゴリズムを用いて、手の形状及び色に基づいて手を検出してもよい。肘関節が見えないこと又は肌の色の検出を妨げる照明条件のせいで、手の位置を検出できない場合、カスタム訓練を用いた手の形状の検出を使用してもよい。更に、手の推論に関する正確度が低い場合、コンピュータビジョン技法を用いて、肌の色調及び汚れのばらつきを大きくすることができる。人間が拳を握る方法は、その人の手の指の長さ、厚み、及び柔軟性といった身体的属性に基づいて、人によって様々であるため、手の指を、長さを含まず角度及び方向に基づくそのルートベクトルへと分解できる。これにより、ジェスチャの定義を多数の異なる身体的属性にわたって正確に特定できる。コンピューティングシステムは、ジェスチャ認識のためにいずれの好適なML及びNN技術を採用するように構成されていてよい。
【0026】
上述のように、コンピューティングシステムは任意に、画像フィードを処理することにより、ユーザの顔の顔面特徴部分又はキーポイントを認識して、ユーザの一意識別子を作成するように構成されていてよい。このような顔面特徴部分ベースの一意のユーザ識別により、コンピューティングシステムは、協調的なマルチユーザタッチレス式対話を提供できるようになる可能性がある。このようにして複数の異なるユーザを一意に識別することにより、同一時点で実行された複数の異なるジェスチャを認識し、上記異なるジェスチャを異なるユーザに関連付けることによって、複数のユーザがタッチレス式ユーザインタフェースと同時に対話できるようにするように、コンピューティングシステムを構成できる。例えばこのような協調的な対話は、それぞれが両手を用いる2人のユーザを含んでよく、従ってコンピューティングシステムは、4つの手全てを追跡し、これらの手のジェスチャを特定のユーザに同時に関連付けることができる。一例として、このような協調的なマルチユーザタッチレス式対話としては、2人の人間の間に、4つの手全てを使用して大きな旗を広げる動作をシミュレーションするものが挙げられる。別のより単純な例は、コンピューティングシステムが複数のプレイヤーを認識して、ゲーム全体を通して個々のプレイヤーの非協調的なアクションを追跡できる、マルチプレイヤーゲームのシナリオである。
【0027】
このような顔面特徴部分ベースの一意のユーザ識別は、カメラがユーザの顔を複数の画像にキャプチャできるシナリオに適用可能であることが理解されるだろう。ユーザの顔が画像フィードによってキャプチャされない他のシナリオでは、コンピューティングシステムは、他のユーザ識別技法を採用するように構成されていてよい。ユーザの認証を目的として、コンピューティングシステムは、プリセットされた顔のキーポイント、又は個人を一意に識別する(単純な空中での署名を行うこと等による)マルチモーダルな身体ジェスチャに一致する人間のみに、対話をロックしてもよい。これは、認証されたユーザのみがコンピューティングデバイスを制御できるようにすることが意図されている場合に望ましい。
【0028】
図2に簡単に戻ると、206では、方法200は、ジェスチャ入力起動条件を満たす上記複数のユーザ意図パラメータに応答して、上記複数の画像を処理することにより、事前定義された入力ジェスチャと一致する上記ユーザの手の動きを検出するステップを含む。上述のように、ジェスチャ入力起動条件は、ユーザ意図パラメータのいずれの好適な組み合わせに基づいて、例えば事前定義された入力ジェスチャ、視線方向、確認できるユーザの人数、ユーザの認識されたアイデンティティ等の検出に基づいて、満たすことができる。実装形態に応じて異なるユーザ意図パラメータが考慮され得ることが理解されるだろう。一般に、本明細書に記載の技法は、固定的な事前構成済みパラメータに依存することも、対話パターンを研究してジェスチャ入力起動条件が満たされているかどうかを動的にリアルタイムで判断するAIアルゴリズムに依存することもできる。
【0029】
ユーザの手の動きは、いずれの好適な方法で、事前定義された入力ジェスチャにマッピングできる。例えば人差し指での指差し、手のひらを外側に向ける、手のひらを下に向ける、ピースサイン、親指と小指とを互いから横方向に遠ざけるように伸ばす、といった、いずれの好適な個数の多様な異なる入力ジェスチャが認識され得る。このようなジェスチャは一般に、キャプチャされた画像のコンピュータビジョン分析によって検出され、これは実装形態に応じていずれの好適な方法で実施できる。
【0030】
場合によっては、コンピューティングシステムは、1つ以上のオンスクリーングラフィカルカーソルを表示でき、各上記カーソルは異なるユーザの手に関連付けることができ、例えばユーザの一方の手のみが検出された場合には、カーソルが1つだけ表示される。例えば図1Aに示されているグラフィカルカーソル108を参照されたい。表示された各カーソルはユーザの運動によって制御でき、例えばユーザの手が動くと、これに対応してカーソルが移動する。場合によっては、カーソルは、検出されたユーザの手の動きに少なくとも部分的に基づいて決定された距離及び方向に、移動させることができる。しかしながら、他のシナリオでは、カーソルの動きは、以下で更に詳細に説明されるように、ユーザの手の動きから少なくとも部分的に独立していてよい。2人以上のユーザが存在する場合、2つ以上のカーソルが表示され得る。例えばシステムは、第2の人間のユーザの第2のユーザの手に関連付けられた、第2のオンスクリーングラフィカルカーソルを表示する。ユーザは、コンピューティングシステムによって処理される後続のジェスチャを提供することにより、タッチレス式ユーザインタフェース上でのアクションをトリガーできる。このようなジェスチャの中には、カーソルに関連付けられているものもあってよい。他のこのようなジェスチャは、カーソルとは独立していてもよい。
【0031】
ある例では、ユーザの身体又は身体の一部(例えば手)の動き/位置は、所望のUIイベントに変換される。手の指等の視覚的要素のXY座標を、1つ以上のUI要素(カーソル、ボタン、キーパッド等)にマッピングできる。解釈の一態様には、あるUI要素上でのホバリングに費やされる時間が関与し得る。例えば、閾値持続時間を超えるホバリング時間は、別の要素へと移動する際にその上をただ通過する場合とは反対に、表示されているUI要素をユーザが作動させるつもりであるという判断をトリガーし得る。
【0032】
いくつかの例では、従来の2Dカメラを使用する場合であっても、ジェスチャ認識及び/又はマルチユーザタッチレス式入力シナリオを支援するために、3D情報を近似又は導出できる。このような技法を採用する場合、ユーザの身体の部分の関節のペアの平均長さがどの程度長いかの推定を用いて、2Dデータから3D情報(又はZ座標情報)を近似できる。二次カメラを使用する場合、3D位置データを融合することにより、遮蔽された視野が1つ以上の他のカメラによって補完される。更に、フレームのバッファを保存できるため、例えば肘が過去には確認できたが現在はスクリーン外に移動している場合に、過去のフレームを合成に使用して、肘が位置的にフレーム外に存在するであろう位置を拡張して推定でき、これによってユーザの位置データをジェスチャ認識及び/又は他の処理のために提供できる。
【0033】
場合によっては、以下で更に詳細に説明されるように、様々な最適化をユーザ入力/ジェスチャに適用することにより、タッチレス式ユーザインタフェースとのタッチレス式対話を改善できる。例えばこのような最適化操作としては、限定するものではないが、安定性制御、アンカーポイントの最適化、及びユーザの意図のアウェアネスが挙げられる。
【0034】
ジッターは、マウスポインタ又は人差し指といった対話の焦点が飛び回りすぎて正確にアクションを実行できない場合に頻繁に発生する問題である。ジッターの過剰な補償も、対話が遅く感じられるようになることによって、問題を発生させる。いくつかの例では、このような問題に対処するために、コンピューティングシステムは、ユーザ入力/ジェスチャに対して安定性制御の最適化を実施するように構成されていてよい。換言すれば、表示されたオンスクリーンカーソルの動きに対して、ジッタースムージング値の影響を及ぼすことができる。
【0035】
図3は、ジッターのスムージングのための例示的な処理フロー300を示す。302では、コンピューティングシステムは、ディスプレイサイズ、カメラの解像度、及び手のサイズ(又は他の身体部分のサイズ)といった動作条件に基づいて、ユーザ入力モーションに対する初期スムージング値を計算して適用する。コンピューティングシステムは、ユーザ入力モーションに対して上記初期スムージング値を適用することにより、ジッターを低減するように構成されていてよい。
【0036】
304では、コンピューティングシステムは、ユーザ入力モーションの実行中に、ユーザ入力モーションに関する更新済みジッタースムージング値を計算する。スムージング値のこのような動的な再計算を、いずれの好適なサンプリングレートに従って繰り返すことができる。
【0037】
ステップ306では、コンピューティングシステムは、ユーザ入力モーションが速い(例えば閾値速度を超える)及び/又は長距離の(例えば閾値距離を超える)動きであるかどうかを判断するように構成される。結果が肯定である場合、ステップ308においてコンピューティングシステムはスムージング値を増大させ、更新済みスムージング値をユーザ入力モーションに適用する。あるいはステップ310では、コンピューティングシステムは、ユーザ入力モーションが遅い(例えば閾値速度未満である)かどうか、及び/又は正確な(例えば閾値距離を超える)動きであるかどうかを判断する。結果が肯定である場合、ステップ312においてコンピューティングシステムはスムージング値を減少させ、更新済みスムージング値をユーザ入力モーションに適用する。安定性制御のこのような動的な最適化操作を実施することにより、例えばユーザが手振れの問題を抱えている場合、又はコンピューティングシステムのリフレッシュレート若しくは解像度が高すぎる場合に、ジッターを動的に補償できる。換言すれば、表示されたカーソルの動きに対して、初期ジッタースムージング値と、ユーザの手の動きの距離及びユーザの手の動きの速度のうちの一方又は両方に基づいて計算された、更新済みジッタースムージング値との影響を、少なくとも部分的に及ぼすことができる。
【0038】
いくつかの例では、コンピューティングシステムは、ユーザ入力/ジェスチャに基づいてアンカーポイントロック最適化操作を実施してよい。これは、表示されているオンスクリーングラフィカルカーソルの位置を、ユーザの手によって実行される事前定義された入力ジェスチャの終了までロックするステップを含む。アンカーポイントはスクリーンの座標に関して定義でき、あるアクションの実行時に、カーソルのX座標及びY座標をディスプレイ上でロックできる。コンピューティングシステムは、ユーザがジェスチャの形成を開始していることをコンピューティングシステムが検出したことに基づいて、カーソル(又は別の目立ったUI要素)の位置をアンカーポイントにロックするように構成されていてよい。コンピューティングシステムは、ユーザがジェスチャの実行を完了したことをコンピューティングシステムが検出するまで、カーソル(又は別の目立ったUI要素)をアンカーポイントにロックするように構成されていてよい。コンピューティングシステムは、選択されたユーザ対話に最適なアンカーポイントを動的に選択するように構成されていてよい。
【0039】
いくつかの例では、コンピューティングシステムはいくつかのジェスチャに関して、カーソルをあるアンカーポイントのスクリーン座標にロックしてよく、またコンピューティングシステムは他のジェスチャに関して、カーソルをあるアンカーポイントのスクリーン座標にロックしなくてよい。例示的なアンカーポイントロック決定テーブル400を図4に示す。図4に示されている決定テーブルによると、一例として、親指と人差し指でつまむジェスチャは、マウスの左クリック操作にマッピングされる。親指と人差し指でつまむジェスチャのためのアンカーポイントは、手首である。このジェスチャについて、コンピューティングシステムはジェスチャが実行されている間、カーソルを手首アンカーポイントにロックする。別の例として、マウスの中央のボタンのスクロール操作にマッピングされた拳を握るジェスチャとなるように、ユーザの指を丸める場合がある。拳を握るジェスチャのためのアンカーポイントは、手首である。このジェスチャについて、コンピューティングシステムはジェスチャが実行されている間、カーソルを手首アンカーポイントにロックする。更に別の例として、人差し指を上に向ける(垂直に指差す)ジェスチャは、ドラッグ&ドロップ操作にマッピングされる。人差し指を上に向けるジェスチャのためのアンカーポイントは、人差し指の指先である。このジェスチャについて、コンピューティングシステムはジェスチャが実行されている間、カーソルをアンカーポイントにロックしない。また更に別の例として、手を開くジェスチャは、カーソルを移動させる操作にマッピングされる。手を開くジェスチャのためのアンカーポイントは、ユーザの手の手のひらである。このジェスチャについて、コンピューティングシステムはジェスチャが実行されている間、カーソルをアンカーポイントにロックしない。これらのジェスチャは非限定的な例として提供されている。いずれの好適なジェスチャはいずれの好適なアンカーポイントを有することができ、これを用いて、ジェスチャが実行されている間、カーソル(又は別の目立ったUI要素)をアンカーポイントに選択的にロックできる。
【0040】
例示的なロック及び非ロックのシナリオを図5に示す。具体的には、図5は、ロックプロセスフロー500及び非ロックプロセスフロー502を示す。図5の上部の上側に示されている例示的なロックのシナリオ500は、タッチレス式ユーザインタフェース上のカーソルの動きを制御するためにユーザが手を振っている。この時点では、カーソルはユーザの手首に対応するアンカーポイントにロックされていないため、カーソルをタッチレス式ユーザインタフェース内で移動させることができる。次にユーザの手は、親指と小指とを横方向に伸ばすジェスチャの実行に移行する。このジェスチャの開始の認識に基づいて、コンピューティングシステムは、ジェスチャが実行されている間、カーソルをユーザの手の手首に対応するアンカーポイントにロックする。コンピューティングシステムは上記ジェスチャを認識して、決定テーブルにおいてルックアップ動作を実施し、認識されたジェスチャに基づいてカーソルをアンカーポイントにロックするべきかどうかを判断する。この場合、上記ジェスチャは、ユーザの手首のアンカーポイントへの、カーソルのスクリーン座標のロックをトリガーする。続いて、ユーザの手を、マウスの中央のボタンをスクロールするジェスチャを示す拳となるように丸め、ここでこのジェスチャが実施されている間、カーソルはアンカーポイントにロックされる。
【0041】
図5の下部に示されている例示的な非ロックのシナリオ502は、タッチレス式ユーザインタフェース上のカーソルの動きを制御するためにユーザが手を振っている。この時点では、カーソルはユーザの手首に対応するアンカーポイントにロックされていないため、カーソルをタッチレス式ユーザインタフェース内で移動させることができる。次にユーザの手は、親指と小指とを横方向に伸ばすジェスチャの実行に移行する。このジェスチャの開始の認識に基づいて、コンピューティングシステムは、ジェスチャが実行されている間、カーソルをユーザの手の手首に対応するアンカーポイントにロックする。コンピューティングシステムは上記ジェスチャを認識して、決定テーブルにおいてルックアップ動作を実施し、認識されたジェスチャに基づいてカーソルをアンカーポイントにロックするべきかどうかを判断する。この場合、上記ジェスチャは、ユーザの手首のアンカーポイントへの、カーソルのスクリーン座標のロックをトリガーしない。続いて、ユーザの手は、ドラッグ&ドロップ操作に対応する、人差し指を上に向けるジェスチャを取り、ここでこのジェスチャが実施されている間、カーソルはアンカーポイントにロックされず、ドラッグ&ドロップ操作が実行されている間、カーソルはタッチレス式ユーザインタフェース内を動き回る。
【0042】
上述のシナリオは、コンピューティングシステムが実施できるアンカーポイントロック最適化操作の非限定的な例として提供されている。このようなアンカーポイントロック最適化操作を実施することにより、意図しない結果につながり得る誤ったトリガー及び/又は不正確なカーソル制御を防止できる。
【0043】
タッチレス式ユーザ対話中にユーザの手が同じ場所にとどまっているとき、複数回の入力ジェスチャ、例えば「クリック」又は「選択」タイプの入力が意図せず認識される場合がある。このような意図的でない入力は、タッチレス式対話中に、不正確な制御やユーザのフラストレーションを引き起こし得る。いくつかの例では、このような問題に対処するために、コンピューティングシステムは、意図的でない複数回のクリックによるユーザ入力を阻止する最適化操作を実施するように構成されていてよい。より一般的には、上記複数のユーザ意図パラメータは、最後の事前定義された入力ジェスチャに応答して最後のコンピュータ制御アクションが実行されてからの時間長、例えばコンピュータがユーザのジェスチャに応答して最後に「クリック」アクションを実行してからどの程度の時間が経過したかを、含んでよい。
【0044】
意図的でないユーザ入力が繰り返されるのを阻止するためにコンピューティングシステムが実行できる最適化操作を説明する例示的な処理フロー600が、図6に示されている。図6の例は特に「クリック」タイプのアクションに焦点を当てているが、これは非限定的なものであり、図6のステップを、ユーザのジェスチャに応答して実行されるいずれのタイプのコンピュータアクションに対して、同様に実施できることが理解されるだろう。
【0045】
このプロセスフローは、クリックコマンドにマッピングされた親指と人差し指とでつまむジェスチャ等のジェスチャを検出することから始まる。クリックジェスチャが検出されると、602において、これが最初のクリックであるかどうか、例えば:デバイスの電源を入れてから;休止状態からの起動後;特定のユーザがログインしてから;閾値時間が経過してから;及び/又は他の何らかの好適な条件が満たされてから、最初に検出されたクリックであるかどうかが判断される。これが最初のクリックである場合、604においてクリックがトリガーされる。即ちクリックコマンドが発行される。
【0046】
これが最初のクリックではない(例えば2番目のクリックである)場合、606において、ユーザの手が依然として同じジェスチャ(例えば親指と人差し指とでつまむジェスチャ)を取り続けているかどうかが判断される。同じジェスチャが依然として取られ続けている場合、608においてクリックが停止される。即ちクリックコマンドが発行されない。反対に同じジェスチャが取られ続けていない場合、610においてカーソル移動距離が計算される。カーソル移動距離が閾値距離を満たす場合、別のクリックコマンドが発行される。反対にカーソル移動距離が閾値距離を満たさない場合、クリックは停止される。即ちクリックコマンドが発行されない。図6に示されている例示的なプロセスフローは、カーソル及び/又はユーザ入力の時間、動き、及び位置を利用して、どのクリックが意図的なものであり、どのクリックが意図的でないクリックであるかに関する判断を行う。図6に示されている例示的なプロセスフローは、意図的でないクリックコマンドが発行されるのを阻止するために、クリックジェスチャが検出されるたびにコンピューティングシステムによって実施できる。
【0047】
いくつかの例では、タッチレス式ユーザインタフェースは、ユーザの腕の長さだけで操縦するには大きすぎるディスプレイ上に、視覚的に提示される。例えばこのような例は、巨大なモニターの場合、又はユーザがディスプレイから遠く離れている場合に発生し得る。これらの例では、コンピューティングシステムは、カーソル位置の基準として手の位置に依存する代わりにロック操作及びスクロール操作の形態で最適化操作を実行する、又は対話により適した寸法を使用するために画像をリサイズするためのクロッピング/ズーム技法を実行するように、構成されていてよい。2つの例示的なロック及びスクロールのシナリオが図7に示されており、一方で図8にはクロッピング/ズーム技法が示されている。
【0048】
図7の上部に示されている第1の例示的なシナリオ700では、カーソルを再位置決めするためにロックジェスチャが実行されている。ステップ1ではカーソルのロックは解除されており、手の長さだけで、境界線のボックスで示されているタッチレス式ユーザインタフェースの右下の対話領域内でカーソルを動かすためには十分である。タッチレス式ユーザインタフェースの異なる領域と対話するために、ステップ2では、ユーザは、この例では拳を握ることによって、ロックジェスチャを実行する。ロックジェスチャが検出されたことに基づいて、カーソル位置がロックされ、タッチレス式ユーザインタフェースは、ロックされたカーソル位置に対して変位させられる。特に対話領域は、タッチレス式ユーザインタフェースの左下から、カーソルを中心とした中央部へと変位させられる。ステップ3では、ユーザは拳を握ったジェスチャを維持し、手の位置を動かすことによって、対話領域をカーソルに対して変位させる。ステップ4では、ユーザの手が開かれることによってカーソルの位置のロックが解除され、これによりカーソルを対話領域内で動かすことができる。
【0049】
図7の下部に示されている第2の例示的なシナリオ702では、カーソルを再位置決めするために指差しジェスチャが実行されている。ステップ1ではカーソルのロックは解除されており、手の長さだけで、境界線のボックスで示されているタッチレス式ユーザインタフェースの右下の対話領域内でカーソルを動かすためには十分である。ステップ2では、ユーザは、この例では上方であるカーソルの移動方向を人差し指で指す、指差しジェスチャを実行する。ステップ3では、ユーザが指差しジェスチャの実行を中止するまで、カーソルは指差された方向に移動する。ステップ4では、ユーザの手が指差しジェスチャから開かれ、これによってカーソルを、変位した対話領域内で移動させることができるようになる。
【0050】
カーソルをロックして変位させるためのこれらの例示的な最適化操作を実施することにより、タッチレス式ユーザインタフェースとの対話時のユーザの疲労を軽減できる。例えば、指定された位置にユーザの手を保持しなければならない代わりに、ユーザは手を休ませながら、カーソルを所定の位置にロックできる。
【0051】
図8は、ユーザとコンピューティングデバイスとの間の距離に基づいてクロッピング及び/又はズームが適用される、例示的なシナリオを示す。具体的には、図8は、コンピューティングデバイスのカメラ、例えば図1Aのカメラ106によってキャプチャされた、2つの異なる画像800A、800Bを示す。図8では、人間のユーザの身体802のサイズは、キャプチャされた画像全体のサイズに比べて相対的に小さく、これはユーザがデバイスから比較的遠く離れていることを示している可能性がある。従って、画像800Bをクロッピング/ズームしてユーザ802に焦点を当てることにより、コンピューティングデバイスとのより容易な対話を促進できる。換言すれば、上記複数の画像内の人間のユーザの視認できるサイズに少なくとも部分的に基づいて、上記複数の画像をクロッピング及び/又はズームしてよい。
【0052】
いくつかの例では、コンピューティングシステムは、1人のユーザの一連の入力を経時的に追跡し、コンテキストアウェアネスを適用することにより、応答性を改善するように構成されていてよい。例えば用途がクイックサービス注文メニューである場合、「クリック」アクションの位置を経時的に追跡でき、これによって、カーソルの動きを、過去に追跡した「クリック」アクションポイントから離れるほど速くすることができ、また既知の「クリック」アクションポイントに近づくにつれて遅くすることができる。1回の注文が連続した複数のアクションを含む場合、このシーケンス内の次のアクションを予測して、提案されるアクションとして使用できる。
【0053】
コンピューティングシステムによってコンテキストアウェアネスが採用される例示的なシナリオを図9に示す。コンピューティングシステムは、ユーザが最も頻繁に対話するタッチレス式ユーザインタフェースのエリアを経時的に学習するように構成されていてよい。具体的には、図9はユーザ対話のグレースケールヒートマップとして示された例示的なインタフェース900を示し、対話が最も多いエリアは明るい陰影で示され、対話が少ないエリアについてはより暗い陰影へと移行する。更にコンピューティングシステムは、対話シーケンス内の複数のステップの順序、及びこれらのステップに対応するインタフェースのエリアを、経時的に学習するように構成されていてよい。例えば図9では、ある例示的なタッチレス式対話は、このタッチレス式対話を実施するために、エリア1~4とのこの順序での対話を含み得る。コンピューティングシステムは、カーソルの動き、クリックの速度等を、エリアが使用される頻度に応じて動的に調整することにより、タッチレス式対話中のタッチ入力の正確度を改善するように構成されていてよい。
【0054】
図2に簡単に戻ると、208では、方法200は、上記事前定義された入力ジェスチャをコンピュータ制御アクションにマッピングするステップを含む。より一般的には、コンピューティングシステムは、上記認識されたジェスチャを、コンピューティングシステム及び/又はタッチレス式ユーザインタフェースが実行/追跡するアクション、操作、及び/又はイベントにマッピングしてよい。いくつかの例では、コンピューティングシステムは、計算アクション、操作、及び/又はイベントと関連付けるデータベース(例えばルックアップテーブル)を用いて、このようなマッピングを実施してよい。いずれの好適なジェスチャを、コンピューティングシステムの記憶デバイスに記憶されたデータベース内のいずれの好適な計算アクション、操作、及び/又はイベントにマッピングしてよい。
【0055】
UI要素上でホバリングする例に戻ると、上記認識されたアクション(例えば検出された指が、閾値時間量より長くUI要素上でホバリングすること)は、UIがサポートするイベントにマッピングされる。例えば0.5秒を超える人差し指のホバリング=キーの押下;0.5秒を超える人差し指及び中指のホバリング=ダブルクリックである。全体を通して示されているように、多くの例において、例えばユーザの指の動き/位置に関する視覚的フィードバックを提供するために、ディスプレイを採用してよい。UI要素上でホバリングする例では、ディスプレイは、ユーザの指先が、表示された数字パッドを横断して移動し、表示された特定の数字上で留まるときの、ユーザの指先の視覚的フィードバックを視覚的に提示できる。閾値ホバリング時間(例えば0.5秒)の経過後、システムは該アクション(閾値を超えたホバリング)を、計算機又は他の番号受信アプリケーションへの入力のための該数字の選択にマッピングする。他の例では、ディスプレイは、タッチレス式ユーザ入力の1人以上のユーザに対して、他の形態の視覚的フィードバックを視覚的に提示してよい。
【0056】
いくつかの例では、コンピューティングシステムは、マウス、キーボード、及び/又はタッチアクションへのジェスチャのマッピングを組み合わせるように構成されていてよい。いくつかの例では、マッピングはシステム全体に適用することも、個々のユーザに対してカスタマイズすることもできる。いくつかの例では、マッピングは、複数のゲーム又は仕事用アプリケーションに対する異なるマッピングのように、コンテキストごとに異なるものとすることができる。例えば上述のように、本明細書に記載の技法は場合によってはマルチユーザ環境に適用され得る。従って、上記コンピュータ制御アクションに対する上記事前定義された入力ジェスチャのマッピングは、第2の人間のユーザの第2のユーザの手の動きを検出するステップを含むことができ、例えば2つの手の動きが、ビデオゲームの制御入力といった単一の制御アクションに共にマッピングされる。別の例として、ビデオ会議及びビデオゲームアプリケーションに対する異なるマッピングのように、アプリケーションプログラムごとに異なるマッピングを適用してよい。
【0057】
ある例示的なマッピングスキームが図10に示されており、この図は、例示的なマッピングテーブル1000を示す。この例示的なマッピングスキームでは、親指と人差し指とでつまむジェスチャは、コンピューティングシステムによって実行されるあらゆる計算アプリケーションのためのマウス左クリックコマンドにマッピングされる。更にこのジェスチャは、仕事関連コンテキストのためのマウス左クリックコマンドにマッピングされる。拳を握るジェスチャは、コンピューティングシステムによって実行されるあらゆる計算アプリケーションのためのマウス中央ボタンスクロールコマンドにマッピングされる。更にこのジェスチャは、家庭関連コンテキストのためのマウス中央ボタンスクロールコマンドにマッピングされる。人差し指を上に向けるジェスチャは、コンピューティングシステムによって実行される「エイリアンアタック」ビデオゲーム及びビデオ通話アプリケーションのためのドラッグ&ドロップコマンドにマッピングされる。更にこのジェスチャは、仕事及びゲームのコンテキストのためのドラッグ&ドロップ操作にマッピングされる。手を開くジェスチャは、コンピューティングシステムによって実行されるあらゆる計算アプリケーションのためのマウスカーソル移動コマンドにマッピングされる。更にこのジェスチャは、家庭のコンテキストのためのマウスカーソル移動コマンドにマッピングされる。図10に示されているマッピングスキームは、非限定的な例として提供されている。本明細書において、いずれの好適なコンテキストベースマッピングスキームを企図できる。
【0058】
図2に簡単に戻ると、210では、コンピューティングシステムは、上記事前定義された入力ジェスチャに応答して上記コンピュータ制御アクションを実行する。換言すれば、コンピューティングシステムは、ジェスチャにマッピングされた、タッチレス式ユーザインタフェース又は適切な計算アプリケーションにおいて実行するべき適切な計算アクション、操作、及び/又はイベントをトリガーする。いくつかの例では、コンピューティングシステムは、将来、更なるタッチレス式ユーザ入力が提供されたときにユーザの意図の更なる分析に使用するために、実行された上記アクション、操作、及び/又はイベントの記録又はログを取ってよい。
【0059】
いくつかの例では、本明細書に記載のシステムは、タッチフリーのユーザ入力を可能にするという利点を提供することが理解されるだろう。例えば本明細書に記載の技法は、数量、品目コード、署名、及びチェックアウトの意思表示の、タッチスクリーン/ペンベースの入力の代わりとなるように、店頭で実現できる。接触を必要としない既存の機能をそのまま維持して、本記載のインタフェースにシームレスに統合できる。
【0060】
本明細書に記載の技法は、ますます普及してきたAR/VR技術とシームレスに統合できる。例えば別個に設置されるカメラの代わりに、AR及びVRヘッドセットは本明細書に記載の機能を組み込むことができる。UI要素を外部のスクリーンに表示する代わりに、これらのデバイスはUIを眼鏡に投影し、ユーザは手及び指を用いてUIと対話する。
【0061】
本説明では頻繁に「ジェスチャ」について言及しているが、この語の範囲は、ユーザの身体部分の単純な位置/配置にまで及ぶことが理解されるだろう。例えば場合によっては、例えば特定のXY配置/位置に入ったユーザの指先の位置を特定することだけが重要となり、このような状況が特定の手/腕の動きによって生じることは必ずしも重要でない場合がある。
【0062】
本明細書に記載の方法及びプロセスのうちのいずれか又は全ては、実行可能なアプリケーション、ネットワークアクセス可能なサービス、アプリケーションプログラミングインタフェース(API)、ライブラリ、及び/又は他のいずれの好適なコンピュータリソース若しくは複数のコンピュータリソースの組み合わせとして、実装できる。
【0063】
図11は、本明細書に記載の技法のうちのいずれか又は全てを実施するように構成されたコンピューティングシステム1100の簡略化された概略図である。コンピューティングシステム1100は、1つ以上のパーソナルコンピュータ、ネットワークアクセス可能なサーバーコンピュータ、モバイルコンピューティングデバイス、移動体通信デバイス(例えばスマートフォン)、モノのインターネット(Internet of Things:IoT)デバイス、埋込式コンピューティングデバイス、及び/又は他のコンピューティングデバイスの形態を取ってよい。
【0064】
コンピューティングシステム1100は、論理サブシステム1102及び記憶サブシステム1104を含む。コンピューティングシステム1100は任意に、ディスプレイサブシステム1106、入力サブシステム1108、通信サブシステム1110、及び/又は図11に示されていない他のサブシステムを含んでよい。
【0065】
論理サブシステム1102は、コンピュータ命令を実行するように構成された1つ以上の物理論理デバイスを含む。例えば上記論理サブシステムは、1つ以上のソフトウェアアプリケーション若しくは他の実行可能なデータ構成の一部である命令を実行するように構成された、ハードウェア要素を含んでよく、及び/又は上記論理サブシステムは、ハードウェア若しくはファームウェア命令を実行するように構成された1つ以上のハードウェア若しくはファームウェア要素を含んでよい。論理サブシステムのプロセッサは、いずれの好適な個数のコアを有してよく、順次処理、並列処理、及び/又は分散処理によって命令を実行できる。論理サブシステムの個々のコンポーネントは任意に、場合によっては離して配置されていてもよい2つ以上の別個のデバイスに分散させてよい。場合によっては、論理サブシステムの態様を、遠隔アクセス可能なネットワーク化された複数のコンピューティングデバイス、例えばクラウドコンピューティング構成で構成されたものによって、仮想化及び実行できる。
【0066】
記憶サブシステム1104は、コンピュータ情報、例えば論理サブシステムによって実行可能な命令、及び/又は他の好適なデータを、一時的及び/又は恒久的に保持するように構成された、1つ以上の物理記憶デバイスを含む。上記記憶サブシステムが2つ以上のデバイスを含む場合、これらのデバイスは同じ場所にあってよく、及び/又は離して配置されていてもよい。記憶サブシステム1104としては、揮発性、不揮発性、動的、静的、読み書き用、読み出し専用、ランダムアクセス、順次アクセス、場所アドレス指定式、ファイルアドレス指定式、及び/又はコンテンツアドレス指定式のデバイスが挙げられる。記憶サブシステム1104は、取り外し可能なデバイス及び/又は内蔵型デバイスを含んでよい。場合によっては、論理サブシステムによる命令の実行により、記憶サブシステムが保存しているデータを変更でき、例えばこれによって新しいデータを記憶できる。
【0067】
場合によっては、論理サブシステム1102及び/又は記憶サブシステム1104のうちのいずれか又は全ての態様を、1つ以上のハードウェア論理コンポーネントへと統合してよい。このようなハードウェア論理コンポーネントとしては、例えば、特定プログラム用途向け集積回路/特定用途向け集積回路(PASIC/ASIC)、特定プログラム向け標準品/特定用途向け標準品(PSSP/ASSP)、システム・オン・チップ(SOC)、及びコンプレックス・プログラマブル論理デバイス(CPLD)が挙げられる。
【0068】
上記論理サブシステム及び上記記憶サブシステムは協働して、1つ以上の論理マシンを実装できる。本明細書中で使用される場合、用語「マシン(machine)」は全体として、一体となってコンピュータの機能を提供する、コンピュータハードウェア、ファームウェア、ソフトウェア、命令、及び/又は他のいずれのコンポーネントの組み合わせを指すために使用される。換言すれば、「マシン」は決して抽象的な概念ではなく、必ず具体的な形態を有する。マシンは、単一のコンピューティングデバイスによってインスタンス化でき、又はマシンは、2つ以上の異なるコンピューティングデバイスの複数のコンポーネント間に分散されていてもよい。マシンは、リモートコンポーネント(例えば1つ以上のリモートコンピューティングデバイスによって提供されるネットワークアクセス可能なサービス)と協働する、ローカルコンポーネント(例えばローカルコンピュータのプロセッサによって実行されるソフトウェアアプリケーション)を含んでよい。
【0069】
マシンは、最先端及び/又は将来の機械学習(machine learning:ML)、人工知能(artificial intelligence:AI)、及び/又は自然言語処理(natural language processing:NLP)技法の、いずれの好適な組み合わせを用いて実装できる。1つ以上のマシンの実装に組み込むことができる技法の非限定的な例としては、サポートベクターマシン、マルチレイヤーニューラルネットワーク、畳み込みニューラルネットワーク(例えば画像及び/若しくはビデオの処理のための空間畳み込みネットワーク、音声信号及び/若しくは自然言語文の処理のための時間畳み込みニューラルネットワーク、並びに/又は1つ以上の時間及び/若しくは空間的次元にわたって特徴を畳み込んでプールするように構成された他のいずれの好適な畳み込みニューラルネットワークを含む)、リカレントニューラルネットワーク(例えば長期短期記憶ネットワーク)、連想メモリ(例えばルックアップテーブル、ハッシュテーブル、ブルームフィルタ、ニューラルチューリングマシン、及び/又はニューラルランダムアクセスメモリ)、単語埋込みモデル(例えばGloVe又はWord2Vec)、教師なし空間及び/又はクラスタリング法(例えば最近傍アルゴリズム、トポロジカルデータ分析、及び/又はk平均法クラスタリング)、グラフィカルモデル(例えば(隠れ)マルコフモデル、マルコフランダムフィールド、(隠れ)条件付きランダムフィールド、及び/又はAI知識ベース)、並びに/あるいは自然言語処理技法(例えばトークン化、ステミング、構成関係及び/若しくは依存関係解析、並びに/又は意図認識、セグメントモデル、並びに/又は上位セグメントモデル(例えば隠れ動的モデル))が挙げられる。
【0070】
いくつかの例では、本明細書に記載の方法及びプロセスは、1つ以上の微分可能関数を用いて実装でき、上記微分可能関数の傾きは、上記微分可能関数の入力及び/又は出力に関して(例えば訓練データに関して、及び/又は目的関数に関して)、計算及び/又は推定できる。このような方法及びプロセスは、訓練可能なパラメータのセットによって、少なくとも部分的に決定できる。従って、ある特定の方法又はプロセスのための訓練可能なパラメータを、いずれの好適な訓練手順によって調整することにより、上記方法又はプロセスの機能を継続的に改善できる。
【0071】
訓練可能なパラメータを調整するための訓練手順の非限定的な例としては、(例えば勾配降下法又は他のいずれの好適な最適化方法を用いた)教師あり訓練、ゼロショット、少数ショット、教師なし学習法(例えば教師なしクラスタリング法から導出されたクラスに基づく分類)、強化学習(例えばフィードバックに基づく深層Q学習)及び/又は敵対的生成ニューラルネットワーク訓練法、確率伝播法、RANSAC(random sample consensus:ランダムサンプルコンセンサス)、文脈バンディット法、最尤法、並びに/あるいは期待値最大化法が挙げられる。いくつかの例では、本明細書に記載の複数の方法、複数のプロセス、及び/又はシステムの複数のコンポーネントを、複数のコンポーネントの集合的な機能のパフォーマンスを測定する目的関数に関して(例えば強化フィードバックに関して、及び/又はラベル付き訓練データに関して)同時に訓練できる。複数の方法、プロセス、及び/又はコンポーネントを同時に訓練することにより、上述のような集合的な機能を改善できる。いくつかの例では、1つ以上の方法、プロセス、及び/又はコンポーネントを、他のコンポーネントから独立して訓練してよい(例えば履歴データに対するオフライン訓練)。
【0072】
ディスプレイサブシステム1106が含まれている場合、これは、記憶サブシステム1104が保持しているいずれかの又は全てのデータの視覚的表示を提示するために使用できる。一例として、上記視覚的表示は、人間のユーザに情報を提示し、また任意に人間のユーザからの入力を受信する、ユーザインタフェースの形態を取ってよい。ディスプレイサブシステム1106は、実質的にあらゆる好適なタイプのディスプレイ技術を利用する1つ以上のディスプレイデバイスを含んでよい。
【0073】
入力サブシステム1108が含まれている場合、これは、1つ以上の入力デバイスを備えてよく、又は1つ以上の入力デバイスとインタフェース接続されていてよい。入力デバイスは、ユーザ入力デバイス及び/又はセンサ入力デバイスを含んでよい。ユーザ入力デバイスの非限定的な例としては、キーボード、マウス、又はタッチスクリーンが挙げられる。入力サブシステムの入力デバイスは、統合デバイス及び/又は周辺デバイスを含んでよい。
【0074】
通信サブシステム1110が含まれている場合、これは、コンピューティングシステム1100のいずれかの又は全てのコンポーネントを、例えば他のコンピューティングデバイスに対応するものである1つ以上の他のコンピュータコンポーネントと、通信可能に結合するように構成されていてよい。通信サブシステム1110は、いずれの好適なデータ通信プロトコルと互換性のある有線及び/又は無線通信デバイスを含んでよい。通信サブシステムは、パーソナルネットワーク、ローカルネットワーク、及び/又は広域ネットワークを介して通信するように構成されていてよい。
【0075】
本明細書に記載の構成及び/又はアプローチは、本質的に例示的なものであること、並びにこれらの具体的実施形態又は具体例は、多数の変形例が可能であるため、限定的な意味で考慮するべきものではないことが、理解されるだろう。本明細書に記載の特定のルーチン又は方法は、任意の個数の処理の戦略のうちの1つ以上を表し得る。従って、図示及び/又は説明された様々な動作は、図示及び/若しくは説明された順序で、他の順序で、若しくは並行して実施してよく、又は省略される場合もある。同様に、上述のプロセスの順序も変更可能である。
【0076】
本開示の主題は、本明細書で開示されている様々なプロセス、システム、及び構成、並びに他の特徴、機能、動作、及び/又は特性、並びにそのあらゆる均等物の、新規で非自明である組み合わせ及び部分組み合わせを含む。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
【国際調査報告】