特許第6382261号(P6382261)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ クアルコム,インコーポレイテッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6382261
(24)【登録日】2018年8月10日
(45)【発行日】2018年8月29日
(54)【発明の名称】高度なカメラをベースとした入力
(51)【国際特許分類】
   G06F 3/01 20060101AFI20180820BHJP
   G06F 3/0482 20130101ALI20180820BHJP
【FI】
   G06F3/01 570
   G06F3/0482
【請求項の数】35
【全頁数】52
(21)【出願番号】特願2016-135755(P2016-135755)
(22)【出願日】2016年7月8日
(62)【分割の表示】特願2014-76997(P2014-76997)の分割
【原出願日】2008年7月25日
(65)【公開番号】特開2016-194948(P2016-194948A)
(43)【公開日】2016年11月17日
【審査請求日】2016年8月8日
(31)【優先権主張番号】60/952,448
(32)【優先日】2007年7月27日
(33)【優先権主張国】US
(31)【優先権主張番号】12/102,587
(32)【優先日】2008年4月14日
(33)【優先権主張国】US
(31)【優先権主張番号】12/124,375
(32)【優先日】2008年5月21日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【弁理士】
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】ヒルドレス エヴァン
【審査官】 原 秀人
(56)【参考文献】
【文献】 特開2004−258766(JP,A)
【文献】 特開2002−116859(JP,A)
【文献】 特開2006−091948(JP,A)
【文献】 特開2005−216061(JP,A)
【文献】 特開2006−350853(JP,A)
【文献】 特開2000−284879(JP,A)
【文献】 特開平11−039132(JP,A)
【文献】 米国特許出願公開第2002/0041327(US,A1)
【文献】 ローラ・リメイ 外,Java言語入門 アプレット,AWT,先進的機構,日本,株式会社プレンティスホール出版,1997年 5月10日,第1版,pp. 300-307
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/048
(57)【特許請求の範囲】
【請求項1】
コンピュータで実施される方法であって、
前記方法は、
シーン内のコントロールオブジェクトの画像を取得するステップと、
前記シーン内の前記コントロールオブジェクトの位置に基づいて、ディスプレイ上のユーザインタフェースにおける第1のオブジェクトの位置を決定するステップと、
項目の第1のセットを決定するステップと、
前記第1のオブジェクトの決定された位置と前記項目の第1のセット内の項目の数とに基づいて、前記ユーザインタフェースにおいて1つまたは複数のガイドラインを動的に配置するステップとを含み、前記項目が、前記ユーザインタフェースにおいて前記1つまたは複数のガイドラインと整列されるとともに、前記項目が前記第1のオブジェクトと重ならないように、前記1つまたは複数のガイドラインが配置され、前記1つまたは複数のガイドラインの曲率半径が、前記第1のオブジェクトのコントロール部分の動きの決定された範囲に基づく、コンピュータで実施される方法。
【請求項2】
前記ユーザインタフェースが、モバイルデバイスのディスプレイ上に示される請求項1に記載のコンピュータで実施される方法。
【請求項3】
前記ユーザインタフェースが、テレビディスプレイ上に示される、請求項1に記載のコンピュータで実施される方法。
【請求項4】
項目が前記第1のオブジェクトのコントロール部分の動きの決定された範囲内にあるように、前記1つまたは複数のガイドラインが配置される、請求項1に記載のコンピュータで実施される方法。
【請求項5】
前記第1のオブジェクトが、ユーザの表現を含み、前記1つまたは複数のガイドラインの曲率半径が、前記ユーザの腕の長さにさらに基づく、請求項1に記載のコンピュータで実施される方法。
【請求項6】
前記ユーザインタフェースにおける第2のオブジェクトの位置を決定するステップと、
前記項目が前記第1または第2のオブジェクトと重ならないように、前記1つまたは複数のガイドラインを再配置するステップとをさらに含む請求項1に記載のコンピュータで実施される方法。
【請求項7】
前記再配置するステップが、項目の色、項目の線の太さ、項目のサイズ、および項目の透明度のうち1つまたは複数を変更するステップを含む、請求項6に記載のコンピュータで実施される方法。
【請求項8】
前記再配置するステップが、項目が前記第2のオブジェクトのコントロール部分の動きの決定された範囲外にあるように、前記1つまたは複数のガイドラインを再配置するステップを含む、請求項6に記載のコンピュータで実施される方法。
【請求項9】
前記ユーザインタフェースにおける前記第1のオブジェクトの新しい位置を決定するステップと、
前記項目が前記第1のオブジェクトと重ならないように、前記新しい位置に基づいて前記1つまたは複数のガイドラインを再配置するステップとをさらに含む請求項1に記載のコンピュータで実施される方法。
【請求項10】
項目の選択を受信するステップと、
前記選択に基づいて、並列された項目の第2のセットを有する新しいガイドラインを生成するステップとをさらに含む、請求項1に記載のコンピュータで実施される方法。
【請求項11】
前記1つまたは複数のガイドラインのガイドラインコンポーネントが、前記ユーザインタフェースと同一のX−Y平面内に全体的に定義されるとともに、前記新しいガイドラインを生成するステップが、前記X−Y平面と異なる平面内に全体的に定義されるように前記新しいガイドラインを生成するステップを含む、請求項10に記載のコンピュータで実施される方法。
【請求項12】
前記新しいガイドラインと整列された項目のサイズが、前記新しいガイドラインの第1の端部から前記新しいガイドラインの第2の端部にかけて小さくなる、請求項11に記載のコンピュータで実施される方法。
【請求項13】
プロセッサを含むデバイスであって、
前記プロセッサが
シーン内のコントロールオブジェクトの画像を取得し、
前記シーン内の前記コントロールオブジェクトの位置に基づいて、ディスプレイ上のユーザインタフェースにおける第1のオブジェクトの位置を決定し、
項目の第1のセットを決定するとともに、
前記第1のオブジェクトの決定された位置と前記項目の第1のセット内の項目の数とに基づいて、前記ユーザインタフェースにおいて1つまたは複数のガイドラインを動的に配置するように構成され、前記項目が、前記ユーザインタフェースにおいて前記1つまたは複数のガイドラインと整列されるとともに、前記項目が前記第1のオブジェクトと重ならないように、前記1つまたは複数のガイドラインが配置され、前記1つまたは複数のガイドラインの曲率半径が、前記第1のオブジェクトのコントロール部分の動きの決定された範囲に基づく、デバイス。
【請求項14】
前記デバイスが、モバイルデバイスである請求項13に記載のデバイス。
【請求項15】
項目が前記第1のオブジェクトのコントロール部分の動きの決定された範囲内にあるように、前記1つまたは複数のガイドラインが配置される、請求項13に記載のデバイス。
【請求項16】
前記プロセッサが、
前記ユーザインタフェースにおける第2のオブジェクトの位置を決定するとともに、
前記項目が前記第1または第2のオブジェクトと重ならないように、前記1つまたは複数のガイドラインを再配置するようにさらに構成される、請求項13に記載のデバイス。
【請求項17】
前記再配置が、項目の色、項目の線の太さ、項目のサイズ、および項目の透明度のうち1つまたは複数を変更することを含む、請求項16に記載のデバイス。
【請求項18】
前記プロセッサが、項目が前記第2のオブジェクトのコントロール部分の動きの決定された範囲外にあるように、前記1つまたは複数のガイドラインを再配置するように構成される請求項16に記載のデバイス。
【請求項19】
前記プロセッサが、
前記ユーザインタフェースにおける前記第1のオブジェクトの新しい位置を決定するとともに、
前記項目が前記第1のオブジェクトと重ならないように、前記新しい位置に基づいて前記1つまたは複数のガイドラインを再配置するようにさらに構成される、請求項13に記載のデバイス。
【請求項20】
前記プロセッサが、
項目の選択を受信するとともに、
前記選択に基づいて、並列された項目の第2のセットを有する新しいガイドラインを生成するようにさらに構成される、請求項13に記載のデバイス。
【請求項21】
前記プロセッサが、
前記1つまたは複数のガイドラインのガイドラインコンポーネントが、前記ユーザインタフェースと同一のX−Y平面内に全体的に定義されるようにするとともに、
前記X−Y平面と異なる平面内に全体的に定義されるように前記新しいガイドラインを生成するようにさらに構成される、請求項20に記載のデバイス。
【請求項22】
前記プロセッサが、前記新しいガイドラインと整列された項目を、前記新しいガイドラインの第1の端部から前記新しいガイドラインの第2の端部にかけてサイズが小さくなるよう表示させるように構成される、請求項20に記載のデバイス。
【請求項23】
シーン内のコントロールオブジェクトの画像を取得する手段と、
前記シーン内の前記コントロールオブジェクトの位置に基づいて、ディスプレイ上のユーザインタフェースにおける第1のオブジェクトの位置を決定する手段と、
項目の第1のセットを決定する手段と、
前記第1のオブジェクトの決定された位置と前記項目の第1のセット内の項目の数とに基づいて、前記ユーザインタフェースにおいて1つまたは複数のガイドラインを動的に配置する手段とを含む装置であって、
前記項目が、前記ユーザインタフェースにおいて前記1つまたは複数のガイドラインと整列されるとともに、
前記項目が前記第1のオブジェクトと重ならないように、前記1つまたは複数のガイドラインが配置され、前記1つまたは複数のガイドラインの曲率半径が、前記第1のオブジェクトのコントロール部分の動きの決定された範囲に基づく、装置。
【請求項24】
項目が前記第1のオブジェクトのコントロール部分の動きの決定された範囲内にあるように、前記1つまたは複数のガイドラインを配置する手段をさらに含む請求項23に記載の装置。
【請求項25】
前記ユーザインタフェースにおける第2のオブジェクトの位置を決定する手段と、
前記項目が前記第1または第2のオブジェクトと重ならないように、前記1つまたは複数のガイドラインを再配置する手段とをさらに含む請求項23に記載の装置。
【請求項26】
前記再配置する手段が、項目の色、項目の線の太さ、項目のサイズ、および項目の透明度のうち1つまたは複数を変更する手段を含む請求項25に記載の装置。
【請求項27】
前記再配置する手段が、項目が前記第2のオブジェクトのコントロール部分の動きの決定された範囲外にあるように、前記1つまたは複数のガイドラインを再配置する手段を含む請求項25に記載の装置。
【請求項28】
前記ユーザインタフェースにおける前記第1のオブジェクトの新しい位置を決定する手段と、
前記項目が前記第1のオブジェクトと重ならないように、前記新しい位置に基づいて前記1つまたは複数のガイドラインを再配置する手段とをさらに含む請求項23に記載の装置。
【請求項29】
項目の選択を受信する手段と、
前記選択に基づいて、並列された項目の第2のセットを有する新しいガイドラインを生成する手段とをさらに含む請求項23に記載の装置。
【請求項30】
前記1つまたは複数のガイドラインのガイドラインコンポーネントが、前記ユーザインタフェースと同一のX−Y平面内に全体的に定義されるとともに、
前記新しいガイドラインを生成する手段が、前記X−Y平面と異なる平面内に全体的に定義されるように前記新しいガイドラインを生成する手段を含む、請求項29に記載の装置。
【請求項31】
前記新しいガイドラインと整列された項目のサイズが、前記新しいガイドラインの第1の端部から前記新しいガイドラインの第2の端部にかけてサイズが小さくなるようにする手段をさらに含む請求項30に記載の装置。
【請求項32】
実行された場合にコンピュータに以下の動作を行わせるための命令が符号化された持続性コンピュータ可読記録媒体であって、
前記動作が、
シーン内のコントロールオブジェクトの画像を取得するステップと、
前記シーン内の前記コントロールオブジェクトの位置に基づいて、ディスプレイ上のユーザインタフェースにおける第1のオブジェクトの位置を決定するステップと、
項目の第1のセットを決定するステップと、
前記第1のオブジェクトの決定された位置と前記項目の第1のセット内の項目の数とに基づいて、前記ユーザインタフェースにおいて1つまたは複数のガイドラインを動的に配置するステップとを含み、
前記項目が、前記ユーザインタフェースにおいて前記1つまたは複数のガイドラインと整列されるとともに、
前記項目が前記第1のオブジェクトと重ならないように、前記1つまたは複数のガイドラインが配置され、前記1つまたは複数のガイドラインの曲率半径が、前記第1のオブジェクトのコントロール部分の動きの決定された範囲に基づく、
コンピュータ可読記録媒体。
【請求項33】
項目が前記第1のオブジェクトのコントロール部分の動きの決定された範囲内にあるように、前記1つまたは複数のガイドラインを配置することを前記コンピュータにさせるための命令をさらに含む、請求項32に記載のコンピュータ可読記録媒体。
【請求項34】
前記ユーザインタフェースにおける第2のオブジェクトの位置を決定することと、
前記項目が前記第1または第2のオブジェクトと重ならないように、前記1つまたは複数のガイドラインを再配置することとを前記コンピュータにさせるための命令をさらに含む請求項32に記載のコンピュータ可読記録媒体。
【請求項35】
項目の選択を受信することと、
前記選択に基づいて、並列された項目の第2のセットを有する新しいガイドラインを生成することとを前記コンピュータにさせるための命令をさらに含む、
請求項32に記載のコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に、コンピュータ入力部に関し、一つの個別の実施例によると、カメラをベースとした人間とコンピュータとのインタフェースに関する。
【背景技術】
【0002】
[対応出願のクロスリファレンス]
本出願は、2007年7月27日出願の米国仮特許出願第60/952,448号を基礎とする、2008年5月21日出願の米国特許出願第12/124,375号、及び2008年4月14日出願の米国特許出願第12/102,587号の優先権を主張する。これらの出願に開示された内容は、参照により本明細書に組み込まれる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
ユーザインタフェースの分野では、コントロール(又はウィジェット)が、コンピュータユーザが相互連動する、ウインドウ又はテキストボックスなどのインタフェース要素である。いくつかのケースでは、コントロール(仮想ボタンなど)が、そのコントロールの物理的なカウンターパートに対して同様の機能と外見を有することがある。ユーザは通常、コンピュータマウス又はキーボードを使用してコントロールと相互連動する。
【課題を解決するための手段】
【0004】
一般的な実施例によると、本書に記載の高度なコントロールは、アルファベットから構成される文字のグループからの文字の選択、複数の機能からの機能の選択など、項目のグループからの項目の選択を容易にするために使用することができる。ガイドラインに沿ってこれらの項目を方向付け、配列することによって、ガイドラインは、オブジェクトの一部と重なる、遮断する、又は遮蔽することなく表示することができ、さらに、ガイドラインをユーザインタフェースの中に表示して、ユーザによる項目の直感的な選択を可能にできる。
【0005】
設定された時間間隔にわたりカーソルを項目の上を浮かせる、又は、カーソルを項目の上に配置する、又はその他のアプローチを行っている間に、マウスボタン又はキーボードキーなどの物理的なコントロールを選択することによって選択を行うことができる。項目の選択又は見込み選択は、項目を、その外見を変化させる(すなわち、「作動する」又は「強調表示される」)、項目をガイドラインに沿った他の項目と区別し、選択の誤りを削減することができる。ガイドラインを画成又は位置決めする基準となるオブジェクトが、それ自体、項目と相互連動して、入力デバイスの動き、又は他のユーザ入力を、ガイドラインに沿って配列された項目によって囲まれたアバターの腕の動きにマッピングするなど、することもできる。
【0006】
一つの一般的な実施例によると、コンピュータにより実施される処理は、ユーザインタフェースの中でオブジェクトに対してガイドラインを画成するステップと、前記オブジェクトを遮蔽することなく、前記ガイドラインに配列された項目を表示するステップとを含む。この処理はまた、前記表示された項目の一つの選択を受けて、選択された項目を出力するステップも含む。
【0007】
実施例は、1以上の次の特徴を含んでもよい。例えば、選択は、カーソルによるユーザ選択であってもよい。ユーザインタフェースのオブジェクトの位置を決定することができ、ここで、ガイドラインは、所定の位置の少なくとも一部を囲むように動的に画成してもよい。ユーザインタフェースの2番目のオブジェクトを検出することができ、ここで、ガイドラインは、2番目のオブジェクトに対向する、オブジェクトの側部に動的に画成することができる。所定の位置の変化を決定することができ、ここで、ガイドラインは、所定の変化に基づいて、オブジェクトに対して再画成してもよい。
【0008】
さらなる例では、ガイドラインは、直線、円形、曲線、多角形、又はジグザグ形状のガイドラインであってもよく、各々の項目が、アルファベット文字、記号、設定、又は名称を含んでもよい。選択された項目を出力するステップが、選択された項目の色、不透明度、又はサイズを変更するなど、選択された項目を強調表示することを含んでもよい。選択された項目の色、不透明度、又はサイズを変更することが、選択された項目の色、不透明度、又はサイズを第1の度合いに変更することと、選択された項目に隣接する項目の色、不透明度、又はサイズを第2の度合いに変更することを含んでもよい。項目を表示することが、ガイドラインに沿って項目を均等に分散することを含んでもよい。オブジェクトがユーザインタフェースのスペースでもよく、アバターでもよい。ガイドラインの起点と終点が、水平又は垂直に配列されてもよい。
【0009】
さらなる例では、ガイドラインを画成することが、アバターのコントロール部分の動きの範囲を決定することと、コントロール部分の動きの範囲の中で、ガイドラインを画成することとを含んでもよい。ガイドラインは、コントロール部分の動きの範囲の外縁に沿って画成されてもよい。アバターの第1の潜在的なコントロール部分又は第2の潜在的なコントロール部分をコントロール部分として指定してもよく、指定されたコントロール部分を生き生きと動かし、コントロール部分の指定を第1の潜在的なコントロール部分から第2の潜在的なコントロール部分に切り替える、又は、第2の潜在的なコントロール部分から第1の潜在的なコントロール部分に切り替えてもよい。
【0010】
さらなる一般的な実施例によると、コンピュータプログラム製品が、マシンによる可読媒体に有形に具体化される。コンピュータプログラム製品は、マシンによって読み取られると、データ処理装置に、ユーザインタフェースの中でオブジェクトに対してガイドラインを画成するステップと、オブジェクトを遮蔽することなく、ガイドラインに配列された項目を表示するステップと、表示された項目の一つの選択を受けて、選択された項目を出力するステップと、を実行させる。
【0011】
さらなる一般的な実施例によると、装置は、プロセッサとユーザインタフェースを含む。プロセッサは、ユーザインタフェースの中でオブジェクトに対してガイドラインを画成する。ユーザインタフェースは、オブジェクトを遮蔽することなく、ガイドラインに配列された項目を表示し、表示された項目の一つの選択を受けて、選択された項目を出力する。
【0012】
他の一般的な実施例では、ユーザはジェスチャ、例えば、手を振る、又は、意図的に自身の身体を囲む空間で片方の腕又は両腕を位置決めするなどして、表現することができる。カメラがユーザの画像を撮影し、ユーザの位置は、画像から決定する。この位置を用いて、検出領域をユーザの周りに画成する。ユーザが入力ジェスチャを実行することを意図した場合、ユーザの手又は腕の場所に画成してもよい。この画成された検出領域を検査してユーザの手又は腕を検出し、検出されたコントロールオブジェクトの位置又は動きをコンピュータアプリケーションの入力にマッピングする。
【0013】
一例では、ユーザの身体の可能性及び制限を規定した解剖学的モデルに基づいて、検出領域をユーザの頭部の上方からユーザの胴体の側部まで延在する画像のエリアに画成する。検出されたコントロールオブジェクトの位置又は動きは、カーソル、アバター、描写(repreesntation)、マウスイベント又はその他の要素にマッピングして、インタフェースの上のコントロール(スクロールバー、ボタン、仮想キーボード、ドロップダウンメニュー又はその他のウィジェットなど)と相互連動するようにしてもよい。
【0014】
他の一般的な実施例によると、ユーザを囲む検出領域は、シーンの内部のユーザの画像の中に画成し、検出領域の中のオブジェクト(手など)の位置を検出する。さらに、ユーザインタフェースのコントロール(仮想キーボードのキーなど)は、検出されたオブジェクトの位置に基づいて相互連動する。コントロールを相互連動することは、文字を選択することを含んでもよい。
【0015】
実施例は、1以上の以下の特徴を含んでもよい。例えば、ユーザの連動ジェスチャを検出することができる。オブジェクトの位置は、連動ジェスチャの検出に基づいて検出することができる。ユーザインタフェースは、ユーザの描写を含んでもよい。コントロールはさらに、描写に対して画成されたガイドラインに配列された項目を含み、項目は、描写を遮蔽することなく表示されるようにしてもよい。ユーザの描写は、さらにアバター又はカーソルを含んでもよい。アバターは、検出されたオブジェクトの位置に基づいて、ユーザの動きを模倣して、生き生きと動くようにしてもよい。コントロールは、描写の上方又は側方のユーザインタフェースに表示してもよい。
【0016】
さらなる例では、検出領域を検出するステップはさらに、ユーザの胴体又は頭部の位置を決定するステップと、決定された胴体又は頭部の位置に基づいて、胴体を除外して、検出領域を画成するステップと、をさらに含むことができる。ユーザの胴体の位置は、画像分割を用いて決定することができ、ユーザの頭部の位置は、顔検出を用いて決定することができる。あるいは、検出領域を画成するステップは、ユーザの腕の到達可能範囲を決定するステップと、決定された腕の到達可能範囲に基づいて、腕によって到達不能な画像の領域の少なくとも一部を除外して、検出領域を画成するステップと、を含むことができる。代わりに、検出領域を画成するステップは、決定された胴体の位置に基づいて、オブジェクトが到達することができない、画像の到達不能領域を決定するステップと、検出領域を、決定した画像の到達不能領域を除外して画成するステップと、を含んでもよい。ユーザの腕の到達範囲は、決定されたユーザの胴体、頭部、又は肩の位置に基づいて決定することができる。
【0017】
さらなる例では、画像をトリミングして、ユーザインタフェースの内部に表示してもよい。ユーザの画像をセンタリングして、画像を、センタリングした画像に基づいて画像をトリミングしてもよい。コントロールを、センタリングした画像の内部でユーザが到達可能とする拡大係数を決定し、画像は、拡大係数に基づいてトリミングしてもよい。拡大係数は解剖学的なモデルを用いて決定してもよい。ユーザの顔を検出するステップと、検出されたユーザの顔に基づいてユーザを識別するステップと、ユーザの識別に基づいてコントロールを調整するステップと、をさらに含んでもよい。検出領域の内部の2番目のオブジェクトの位置を検出してもよく、ユーザインタフェースの2番目のコントロールは、検出された2番目のコントロールオブジェクトの位置に基づいて相互連動してもよく、あるいは、コントロールを、2番目のオブジェクトの位置に基づいて調整してもよい。
【0018】
他の例では、カメラを用いて画像を撮像することができる。検出領域は、ユーザの両側に一つずつ存在する2つの線形の部分検出領域と連続するユーザの上方の円弧形状の部分検出領域として形成することができる。オブジェクトの位置は、検出領域の内部にマッピングされたガイドラインに対して検出することができる。分割された画像を、ユーザの描写として表示してもよい。
【0019】
他の一般的な実施例によると、コンピュータ可読媒体にコンピュータプログラム製品を符号化される。コンピュータプログラム製品は、実行されると、コンピュータに、シーンの内部のユーザの画像を生成するステップと、ユーザを囲む検出領域を画成するステップと、検出領域の内部にオブジェクトの位置を検出するステップと、動作させるを含む。コンピュータプログラム製品はまた、マシンによって読み取られると、データ処理装置に、検出したオブジェクトの位置に基づいて、ユーザインタフェースのコントロールと相互連動する動作を実行させる。
【0020】
さらなる一般的な実施例によると、装置はプロセッサを含む。プロセッサは、シーンの内部のユーザの画像の中にユーザを囲む検出領域を画成し、検出領域の内部のオブジェクトの位置を検出するように、構成又は設計されている、あるいは動作可能になっている。プロセッサは、また、検出されたオブジェクトの位置に基づいて、ユーザインタフェースのコントロールと相互連動するように構成されている。
【0021】
この簡単な概要は、本書で説明する様々な概念及び実施例の迅速な理解を可能とするためのものである。以下の詳細な説明を添付の図面を参照してより詳細な理解を得ることができる。他の実施例を利用することも、変形を行うことも可能であることに留意されたい
【図面の簡単な説明】
【0022】
図1】高度なカメラをベースとした入力を図示する概念図である。
図2】高度なカメラをベースとした入力を実施するために用いる装置のブロック図である。
図3】高度なカメラをベースとした入力を用いた代表的な処理を示す図である。
図4】ユーザの画像を撮像するために用いる代表的なシステムを示す図である。
図5図4のシステムを用いて撮像した、ユーザの代表的な画像を示す図である。
図6図5に示す画像の内部に画成された代表的な検出領域を示す図である。
図7】より大きな画像をセンタリングして、トリミングすることによる、より小さな画像の生成を示す図である。
図8】2つの候補ユーザを含むシーンにおいて、制御するユーザの周りに画成された検出領域を示す図である。
図9】ジェスチャからコントロール入力への代表的なマッピングを示す図である。
図10】代表的な高度なコントロールを用いるユーザインタフェースの概念図である。
図11】オブジェクトと、ガイドラインをさらに含む代表的な高度なコントロールと、を含むユーザインタフェースを示す図である。
図12】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
図13】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
図14】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
図15】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
図16】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
図17】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
図18】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
図19】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
図20】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図21】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図22】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図23】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図24】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図25】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図26】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図27】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図28】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図29】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図30】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図31】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図32】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図33】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図34】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図35】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図36】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図37】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図38】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
図39】1以上の代表的なコントロールを含むユーザインタフェースを示す図である。
図40】カメラをベースとした入力を用いた他の代表的なコントロールを示す図である。
図41】コンピュータ装置の一例の外観図である。
図42図41に示すコンピュータの内部アーキテクチャを示すブロック図である。
【発明を実施するための形態】
【0023】
一つの一般的な実施例によると、本明細書で説明する高度なコントロールは、例えば、文字のグループの中から文字を選択してアルファベットを組み立てる、又は、複数の機能から一つの機能を選択する、など、複数の項目のグループの中から一つの項目を選択することを容易にするために使用することができる。これらの項目をガイドラインに沿って方向付けをして配列することにより、対象の一部が重なり合ったり、妨げられたり、あるいは、見えにくくなることなく、ユーザインタフェースの中に表示することができ、ユーザが直感的に項目を選択できるようにする。
【0024】
さらに、本明細書で説明する高度なアプローチを用いると、ユーザは、自らの身体を囲む空間で、片方の腕、又は両腕を振ったり、あるいは位置合わせをすることによってジェスチャで表現することができる。カメラがユーザの画像を撮像して、画像からユーザの位置を決定する。この位置を用いて、ユーザがコンピュータのアプリケーションにコマンドを入力する意図がある場合に、ユーザの手又は腕を見つける可能性のある、ユーザの周囲の検出領域を画定する。ユーザの手又は腕を、画定された領域を検査することによって検出し、検出されたこれらのコントロールオブジェクトの位置又は動きを、コオンピュー他のアプリケーションへの入力として用いる。
【0025】
一例では、ユーザの身体の可能性及び制限を規定した又はモデル化した解剖学的モデルに基づいて、検出領域をユーザの頭部の上方からユーザの胴体の側部まで延在するエリアに画成する。検出されたコントロールオブジェクトの位置又は動きをカーソル、アバター、描写(repreesntation)、マウスイベント又はその他の要素にマップして、インタフェースの上のコントロール(スクロールバー、ボタン、仮想キーボード、ドロップダウンメニュー又はその他のウィジェットなど)とやりとりするようにしてもよい。
【0026】
図1は、高度なカメラ−をベースとした入力部を説明する概念図である。シーン100は、セットトップボックス104の前方のソファ102に座って、テレビ番組を視聴している、あるいは音楽を聴いているユーザ101を含む。セットトップボックス104は、テレビ105とカメラ106に接続している。セットトップボックス104とやりとりを行う一つのアプローチとして、ユーザは、自らの左手107を自らの頭部109の上方に伸ばすようにしてもよい。シーン100の画像110は、カメラ106を用いて生成する。画像は、静止カメラによって撮影された一枚の画像でもよく、あるいは、ビデオカメラを用いて撮影された1以上の一連の画像であってもよい。
【0027】
シーン100の画像110の内部には、ユーザ101を囲む検出領域111が画成される。この例では、検出領域111は、ユーザ101の側部の各々の線形の部分検出領域111b、111cと隣接する、ユーザ101の上方の円弧形状の部分検出領域111aを含む。検出領域111は、コマンドを入力するジェスチャ以外の動きがほとんど生じることのない、画像110の一部を表している。
【0028】
例えば、検出領域111は、ユーザの胴体又は頭部に関連する画像の領域を除外してもよい。これらの領域は、入力ジェスチャとは関係のない通常の身体の動きによって、程度の高い動きを行うためである。同様に、ユーザ101が無意識に動かす、又は、単に自らの位置を調整する際に、腕又は手が占めることもありうる胴体に近い領域を除外してもよい。さらに、ユーザ101が物理的に届くことのない画像の領域も検出領域111から除外してもよい。
【0029】
このように、検出領域111が、その領域の内部のコントロールオブジェクトの検出が、コマンド入力を意図したユーザ101による身振りを示す可能性がより高い、画像の一部を占めるようにする。このため、検出領域111が、コントロールオブジェクトがその領域の内部に存在するか否かを判定する後の処理動作では、これらの処理動作が、検出領域111のみ、あるいは、画像全体より小さい領域ではあるが、検出領域111を含む領域で実行してもよい。
【0030】
このため、検出領域111は、ユーザ101が身体部分の動きによって、自らがコマンド入力、合図又はジェスチャを実行していることを示すことができる、カメラ106の画角の内部に画定することができる。同様に、検出領域111は、コマンド入力を意図していないジェスチャと、コマンド入力を意図したジェスチャとの区別をつけることが困難になる動きがしばしば生じる、カメラ106の画角の一部を除外して画定することもできる。
【0031】
このため、設定又は較正動作では、ピクセルマップが、画像のピクセルごとに、デバイスの動作時に画角の内部で個々のピクセルごとに生じる動き量を数値化するようにしてもよい。このピクセルマップを用いて、所定の最小閾値を下回る動きが生じるピクセルを、背景を表すピクセル、又はユーザの到達範囲の外のピクセルとして除外して、検出領域を画定してもよい。同様に、所定の最大閾値を上回る動きが生じるピクセルを、コマンド入力を表さない動きが、発生しやすいピクセルとして、除外して、検出領域を画定してもよい。コマンド入力を表さないジェスチャ又は動きの例として、呼吸によるユーザの胸部の動き、同意したことを表すユーザの目又は顔の動き、ボディランゲージ、無意識の身体の移動、ピクピクした動きや震えなどを含むことができる。
【0032】
検出領域111は、解剖学的なモデルに基づいて画定することができる。例えば、ユーザの頭部の高さ又は幅を推定又は測定し、ユーザの手が届く通常の範囲をその測定値の3倍と推定することができる。この推定値を用いて、ユーザの胸からその測定値の2倍から3倍の間の離れた距離を弓形の検出領域を画定することができる。この推定値に基づいて、この距離を下回って生じる身体又は胴体の動きを表す動きを、ユーザの腕によっては起こりえない背景の動きを表すものとして無視することができる。
【0033】
このため、画像110は、解剖学的なモデルとユーザが座っている位置が相対的に固定されているという前提とに基づいて、手107が届かないと判断された画像110の部分を含む、到達不能領域113を含む。画像110はまた、検出領域111の中で検出された手107又はその他の物の動き又は位置よりも、カメラをベースとした入力(camera−based 入力)にとって関係の薄い、又は混乱させる、背景物とユーザの動きを含むと予想される、胴体により占められる胴体領域114を含む。カメラ106は固定した状態に保つことができるので、検出領域111は、連続する画像などの他の1以上の画像に容易にマッピングすることもできる。
【0034】
検出領域110を他の画像にマッピングする際、検出領域111の中の手107の絶対位置又は相対位置を、他の画像から検出することができる。あるいは、動きは位置よりも検出することが容易なため、手107の動きを検出領域111の中で検出してもよい。さらに、検出領域111が、ブロック112aから112gなどの複数の離散的なブロックに分割、又は画定されている場合、どのブロックが手107に最も近い、又は、手107によって最も遮蔽されているかを示す情報を出力してもよい。例えば、手107が、他の如何なるブロックよりもブロック112eを遮蔽している場合、ブロック112eが選択されたブロックであることを示す情報を出力してもよい。この情報は、ブロックを一意に識別する識別子を含んでもよい。
【0035】
ユーザインタフェース114の中で、検出領域111の中の手107の位置は、カーソルの位置、描写、又は、コントロール117と相互連動するアバター116の仮想の手115などの仮想コントロールオブジェクトにマッピングされる。コントロール117をコントロールする、又は相互に連動する際、検出領域111の中の手107の動きは、アバター116を生き生きと動かす(animate)ことにより、ユーザにとってコントロール117との相互の連動を直感性の高いものとし、視覚的に満足のいくものとすることができる。コントロール117との相互連動により、ユーザ101が項目119(文字「R」)を選択すると、その文字はユーザインタフェース114の出力領域120に現れる。
【0036】
アバターは、ユーザの物理的な外見を取り込む画像110の一部に織り込むことができる。このアプローチによって、ユーザ101は自らが、デバイスを操る、又はデバイスと物理的に相互連動するユーザインタフェース114の中にいるように思われてくる。換言すると、カメラ106はユーザ101のテクスチャ画像を撮影し、テクスチャ画像を、3次元のワイヤフレーム画像に重ね合わせることによって、アバターを作り出し、アバターにユーザ101の外見を付与することができる。
【0037】
ユーザ101の動きのアバター116へのマッピングは、動きが鏡に写し出されるように1:1の関係で行うことができ、加速も可能であり、アバターの動きを特定の「注目(snap to)」ポイントに強制することができる。さらに、速度モードでは、検出領域の中のコントロールオブジェクトの位置は、コントロールオブジェクトの位置が変化するまで、アバターが継続して移動する速度を表すこともできる。個別の所望の構成に応じて、例えば、ユーザ101の動きとアバター116の動きは、ユーザの左手107が上げられるとアバターの右手121が上がるように、お互いが鏡に写し出されるように作り出すことができる。
【0038】
図2は、高度なカメラをベースとした入力を用いたデバイス200のブロック図である。概略としては、デバイス200は、まず、ユーザインタフェース201と、記憶媒体202と、入力ユニット204と、プロセッサ205とを含む。デバイス200を利用することによって、高度なカメラをベースとした入力を用いたユーザインタフェースのコントロールとの相互連動、例えば、ユーザによる項目の選択など、を容易にすることができる。コントロールとの相互連動により、再帰反射器、ジャイロ装置、又はリモコンなどの特別な装置をユーザが手に保持する必要はなくなり、腕や手の動きをカーソル又はその他の入力部に直感的にマッピングすることになる。
【0039】
ユーザインタフェース201は、ユーザがデバイス、又はデバイスを起動するアプリケーションと相互連動することを可能とする機構である。ユーザインタフェース201は、入力と出力の両方に働きかけ、ユーザがデバイスを操作すること、又は、デバイスがユーザの操作に働きかけることを可能にする。デバイス200は、グラフィカルユーザインタフェース(GUI)、音声ユーザインタフェース、又は触覚(tactile又はhaptic)インタフェースなどあらゆる種類のユーザインタフェース201を用いることが可能である。
【0040】
ユーザインタフェース201が視覚表示画像を生成するようにしてもよい。例えば、ユーザインタフェース201は、モニタ、テレビ、液晶ディスプレイ(LCD)、プラズマディスプレイ装置、プロジェクタ画面付きプロジェクタ、自動立体ディスプレイ、陰極線管(CRT)ディスプレイ、DLP(デジタル 光 処理ing)ディスプレイ、又はディスプレイ画像を表示するように構成されたその他の種類のディスプレイ装置でよい。ユーザインタフェース201は、1以上のディスプレイ装置を含んでもよい。いくつかの構成では、ユーザインタフェース201は、コントロールと、アバターなどのオブジェクトを含む、アプリケーションによって生成されたディスプレイ画像などのアプリケーションに関連する画像を表示するように構成されてもよい。記憶媒体202は、情報又はデータを保存して記録する。記憶媒体202は、光学的記憶媒体、磁気記憶媒体、フラッシュメモリ、又はその他の種類の記憶媒体であってもよい。
【0041】
カメラ204は、画像を、スチール写真、あるいは一連の動画として撮像するために用いるデバイスである。カメラ204は、可視スペクトル光を用いて、又は、赤外線などのその他の電磁スペクトルの一部を用いることができる。例えば、カメラ204は、デジタルカメラ、デジタルビデオカメラ、又は、画像を撮像するように構成されたその他の種類のデバイスでもよい。カメラ204は、1以上のカメラを含んでもよい。いくつかの例では、カメラ204は、アプリケーションと相互連動するオブジェクト又はユーザの画像を撮像するように構成することができる。例えば、カメラ204は、カメラ204の画角の中でアプリケーションと物理的に相互連動するユーザ又は人物の画像を撮像するように構成することができる。
【0042】
カメラは、ステレオカメラ、飛行時間カメラ、又はその他の種類のカメラでもよい。例えば、カメラ204は、背景画像をサンプリングしてユーザの動き及び、同様に、ジェスチャを検出する機能を有する画像検出器でもよい。カメラ204は、グレースケール画像、カラー画像、又は、距離画像を生成することができるステレオカメラ又は飛行時間カメラなどのように距離画像を生成してもよい。ステレオカメラは、僅かに異なる視点で画像を取得する2つの画像センサを有することができ、プロセッサが異なる視点から取得した画像を比較して、画像の部分間の距離を算出する。飛行時間カメラは、光パルスを生成するエミッタを有することができる。光パルスは赤外線でもよい。光パルスがエミッタから対象物に到達してセンサに戻るまでの時間を測定し、画像の部分間の距離を算出する。
【0043】
デバイス200は、有線又は無線経路を介して、カメラ204とユーザインタフェース201と電気的に接続しており、プロセッサ205の動作を制御して、カメラをベースとした入力を機能させるように構成されている。一つの構成では、デバイス200は、プロセッサ205又はその他のコントロールを用いて、カメラをベースとした入力を機能させるアプリケーションを実行する。具体的には、デバイスは、カメラ204から入力を受信すると、受信した入力を処理してユーザインタフェース201におけるユーザの映像の位置及び動きを算出して、これらの動きに基づいてコントロールと相互連動する。
【0044】
一つの代表的な実施例では、カメラを用いてジェスチャを行うユーザの画像を検出することによって入力が生じる。例えば、携帯電話をテーブルの上に置き、顔を向いたカメラを用いてユーザの画像を生成することができる。あるいは、カメラ204を用いて、オプティカルフロー又はその他のアプローチによって「左に傾く」ジェスチャが検出されると、検出されたジェスチャからユーザを映像は左に移動させ、コントロールの左側に設けられた項目を選択させる、あるいは、「前方又は右に傾く」ジェスチャが検出されると、ユーザの映像を中立位置の上方又は右に移動させ、コントロールの上部右側に設けられた項目を選択させることができる。
【0045】
従って、カメラ204は、デバイス200の角度位置を検出することができるジャイロスコープ、加速度計、又はオプティカルフロー追跡部などの、このほかの種類の入力デバイス又はモジュールを含む、又はかかる入力デバイス又はモジュールと交換することもできる。このため、カメラを傾斜センサ入力部によって補完又は交換して、ユーザからの所望のコマンド又は機能を実行するようにしてもよい。このように、ユーザのジェスチャの検出は、カメラを用いなくても可能である。デバイスを、例えば、ユーザインタフェースのコントロールに同様の動きパターンを可視化するように移動させることによって、ユーザは、同一のインタフェース又はアプリケーションを容易で、直感的で視覚的に楽しく、刺激的な手法で制御することができる。
【0046】
簡略化のため、デバイス200をパーソナルコンピュータ(PC)又はセットトップボックスとして説明したが、この他の実施例も想到可能である。例えば、デバイス200は、テレビ、ウルトラモバイルパーソナルコンピュータ(UMPC)、モバイルインターネットデバイス(MID)、デジタルピクチャフレーム(DPF)、ポータブルメディアプレーヤー(PMP)、汎用コンピュータ(例えば、デスクトップコンピュータ、ワークステーション、又はラップトップコンピュータ)、サーバ、ゲーム機又はコンソール、又は、命令を実行するように構成されたプロセッサ又はその他の制御回路を含むその他の種類の電子デバイス、又は、ユーザインタフェースを含むその他の装置として実現することができる。
【0047】
図3に、高度なカメラをベースとした入力をリアルタイム又は略リアルタイムで用いる処理300を示す。周囲の検出領域は、ユーザの頻繁に動く部分も含めて、ユーザと重なってもよいし、重ならなくてもよい。処理300は、シーンの中のユーザの画像の中の、ユーザを囲む検出領域を画定するステップと、検出領域の中でオブジェクトの位置を検出するステップを含む。さらに、処理300は、検出されたオブジェクトの位置に基づいて、ユーザインタフェースのコントロールと相互連動するステップを含む。
【0048】
詳細には、処理300が開始すると(S301)、シーンの内部のユーザの画像の中にユーザを囲む検出領域が画成される(ステップS302)。まず、概要を説明する。図4は、ユーザ410の画像(側部から示す)を撮像するために用いられる、代表的なシステム400を示し、図5は、この代表的なシステム400を用いて撮像された、ユーザ410の代表的な画像500を示す(正面から示す)。
【0049】
具体的には、システム400は、セットトップボックス401と、カメラ402と、テレビ404とを含む。カメラ402は、画角403の中でシーンの画像を撮像する。シーンは、例えば、伸びた右手405と、頭部406と、胴体407と、ユーザ410の二本の足の一部409、ユーザ410が座っているソファ411と、ユーザ410とソファ411の背後にある、壁などの背景とを含む。
【0050】
画像500は、1枚の静止画像、又は、一連の動画からの1枚の画像であって、1以上の画像圧縮技術を用いて圧縮又は保存されていてもよい。画像500は、ユーザインタフェースにおいてユーザの接触を検出して、映像を決定し、表示するために用いるに分割されたカメラ画像でもよい。カメラ402を用いて画像を撮像した後、画像をネットワークを介して送信してもよい。
【0051】
ユーザによる連動ジェスチャの実行に続いて、ユーザを囲む検出領域を画成することができる。連動ジェスチャは、ジェスチャに基づくコマンド入力のため、他の画像をモニタして、無作為な動き、意図的でない動き、又はコマンド入力とは関係のない、その他の身体の動きを無視し、フィルタリングして、除外する機能を起動又は呼び出す。
【0052】
本明細書において「ジェスチャ」とは、1以上の人体の一部又は全体を用いた非言語コミュニケーションの形態を意味し、話しなどの言語コミュニケーションと対比するものである。例えば、ジェスチャは、第1の位置、姿勢又は表現と第2の位置、姿勢又は表現との間の動き、変化又は変形として定義されてもよい。代表的なジェスチャとして、例えば、「エアクオーツ」のジェスチャ、お辞儀のジェスチャ、挨拶、頬キス、指又は手の動き、ひざまずくこと、頭を振ること、又は頭の動き、ハイファイブ、頷き、悲しい顔、拳を上げること、敬礼、手を上げる、又は手を振る動き、親指を立てる動き、指を指すジェスチャなどを含むことができる。
【0053】
連動ジェスチャは、所定の時間保持されたディスプレイ前方のカメラの追跡領域で行われる特定の手のポーズ又は手の動きの連続とすることができる。一つの代表的なジェスチャとして、全ての親と親指を大きく広げてまっすぐに伸ばした状態に保つ手のポーズがある。他の例として、ユーザの腕を顔の前で伸ばし、頭の前で腕で円を描く円形の手の動きがある。基本的に、連動ジェスチャは、ユーザインタフェースを生成するデバイスに、ユーザがさらにカメラをベースとした入力を行う容易ができたことを伝える。誤操作を減らすため、連動ジェスチャは、通常の会話で無意識にボディランゲージとともに行われることのないジェスチャ、又は、通常の人間活動の一般的な行為として行われることのないジェスチャなど、非定型のジェスチャがよい。
【0054】
従って、二つの画像から、ユーザの考え、意見、感情、コミュニケーション、コマンド、実演又は表現を定義するジェスチャを導き出すことができる。例えば、ユーザのジェスチャは、1つ又は複数の指ジェスチャ、1つの手ジェスチャ、1つの手及び腕のジェスチャ、1つの手、腕、及び身体ジェスチャ、両手で行うジェスチャ、頭部のポーズ又は姿勢の変化、目の位置の変化、顔の表情の変化、身体のポーズ又は姿勢の変化、又は、その他のいかなる表現可能な身体の状態の変化であってもよい。
【0055】
簡潔のため、当該ジェスチャを行うために用いる身体の1以上の部分を広く、「コントロールオブジェクト」と呼ぶ。例えば、ユーザは、身体全体、又は、その他の物理的な物体を用いてコマンドを表現してもよく、そのような場合、身体全体又はその他の物理的な物体がコントロールオブジェクトとなりうる。ユーザは、目をまばたく、鼻を広げる、指をひらひらさせることによって、より微細にコマンドを表現することができる。その場合、まぶた、鼻又は指がコントロールオブジェクトとなりうる。一つの画面、又は二つの画面の間のユーザのジェスチャは、許可の表現又は「連動(連動)」ジェスチャとなりうる。コントロールオブジェクトはまた、赤外線フィンガーライト、再帰反射器、又はリモコンなどの物理的なデバイスでもよい。
【0056】
カメラ画像からユーザのジェスチャを判断するための多くの方法がある。例えば、「空に円を描く」、又は「手を脇にスワイプする」ジェスチャを、ジェスチャ分析及び検出処理によって、手、腕、身体、頭部、又はその他のオブジェクト位置情報を用いて検出してもよい。スワイプするジェスチャを行った場合など、例えば、ジェスチャが2次元又は3次元の位置の移動を含むことがあっても、別のインスタンスでは、ジェスチャは、位置の移動を伴わない変形を含む。例えば、5本の指を広げて手のひらを前に向けて手で「ストップ」という合図をする場合、手のひらを前に向けたまま、5本の指を丸めて拳にすると、手や腕の全体の位置は静止していても、ユーザのポーズは変化して、ジェスチャは表現される。
【0057】
ジェスチャは、手の位置情報が明示的なルール群に適合しているか否かを判断するなどの、発見的方法を用いて検出することができる。例えば、(1)所定の限度を下回る時間期間にわたる水平位置の変化が所定の距離を上回る、(2)その時間期間にわたる水平位置の変化が単調である、(3)その時間期間にわたる垂直位置の変化が所定の距離を下回る、(4)その時間期間の終了時における位置がその時間期間の開始時の位置よりも検出領域の境界に近い(又は境界にある)、というジェスチャ検出のルールが満たされた場合に、「手を脇にスワイプする」ジェスチャを識別することができる。
【0058】
いくつかのジェスチャは、一つのルール群が満たされると、システムが異なるルール群が適用される状態に変化する、明示的な順序で実行されて満たされる複数のルール群を用いる。このシステムは、隠れマルコフモデルを用いた場合のように、微妙なジェスチャを検出することはできない可能性がある。これらのモデルは特定の動きの連鎖を検出させることができるが、その動きが十分にジェスチャに適合しているか全体的な確率も考慮するからである。
【0059】
身体、腕又は手のジェスチャに加えて、指さすジェスチャを、1以上の画像から認識することができる。例えば、「左をさす」ジェスチャは、ユーザの指先で行い、指の画像を分析して検出することができる。指紋分析又はその他のアプローチを用いて、さしている指の先端の方向を検出することができる。他の代表的な実施例では、上述のように、口頭ジェスチャや傾斜センサ又は加速度形を用いて検出する場合のように、ジェスチャを、カメラを用いることなく検出することができる。
【0060】
カメラによって撮像されたユーザの画像で、ユーザの腕から、下にさげた第1の位置から、伸ばして手のひらを前方に向けた第2の位置への動きをジェスチャとして認識してもよい。ユーザがこの連動ジェスチャを実行することによって、ユーザインタフェースの中にコントロールとともにユーザの描写を表示するようにしてもよい。ジェスチャを実行している際に、ユーザがカメラの視野角を中心にいない場合もあるので、連動に続いて、再配置、トリミング、再センタリング又は拡大処理を呼び出してもよい。
【0061】
一つの代表的な実施例では、画像500は、カラー背景の正面に位置するユーザ410の得られた画像など、クロマキー処理されたカメラ画像である。クロマキー処理は、色が背景の色とマッチする画像500の部分を識別し、それらの部分を、画像500の背景部分として分類する。色が背景の色から逸脱する画像500の部分をユーザ410の部分である可能性が高く、前景として分類する。
【0062】
他の代表的な実施例では、画像500は、デプスキー処理されたカメラ画像である。デプスキー処理されたカメラ画像は、通常、飛行時間カメラ(CANESTA INC.製カメラなど)又はステレオカメラ(TYZX INC.製カメラ)、などの距離の深さを判定可能なカメラによって取得される。代表的な飛行時間カメラでは、赤外線エミッタが赤外線パルス光を発光し、光学センサがオブジェクトとカメラとの間を光が行き来するのに要する時間を測定し、この時間に基づいてオブジェクトの距離を算出する。
【0063】
代表的なステレオカメラでは、複数の光学センサが複数の視点からのシーンの画像を取得する。ステレオカメラは、複数の画像を比較して、複数の視点間のオブジェクトの位置の差異を判定し、この差異に基づいてオブジェクトの距離を算出することができる。この距離に基づいて画像の部分を前景と背景に分類する。分類処理は、距離を閾値と比較する処理を含む。距離が閾値を下回る場合は前景として、距離が閾値を上回る場合は背景として部分は分類される。分類処理は、背景モデルとの距離と比較する処理を含んでもよい。背景モデルは、ユーザを除くシーン(例えば、床や家具)の部分の深さを表す。距離がモデルの対応する部分を下回る場合は部分を前景として分類し、距離がモデルの対応する部分以上の場合は背景として分類することができる。
【0064】
さらなる例では、画像500は、背景色モデルを用いる。例えば、画像500を、背景の予想される外見を表す背景色モデルと比較してもよい。背景色モデルは、ユーザを除くシーンの画像を保存することによって取得することができる。部分の色が背景色モデルの対応する部分の色と類似している場合は、カメラ画像の部分を背景として分類する。部分の色が背景色モデルの対応する部分の色と類似していない場合は、カメラ画像の部分を前景として分類する。
【0065】
さらなる例では、画像500は、皮膚の色モデルを用いて分割される。例えば、画像500は、ユーザの皮膚の予想される外見を表す皮膚の色モデルと比較することができる。皮膚の色モデルは、多数の人間の画像で採取された皮膚の色に基づく、所定のものであってよい。皮膚の色モデルはまた、ユーザの皮膚の画像に基づいて決定してもよい。カメラ画像の部分は、その部分の色が皮膚のモデルの範囲内の色と類似している場合は前景として分類される。皮膚の色モデルで表される色の何れとも類似していない色の場合は、カメラ画像の部分は背景として分類される。
【0066】
さらに、画像500は、動き画像であってもよい。画像の動きを含む部分は、前景として分類され、画像の静的な部分は背景として分類される。カメラ画像を、動きによって区分することは、一連のカメラ画像を取得する工程と、連続する画像の間の差分を算出する工程と、差分を閾値と比較する工程を含むことができる。1以上の画像の動きを検出する、オプティカルフローなどのその他の技術を用いてもよい。
【0067】
以上、分割したカメラ画像を生成するための、複数の代表的なアプローチについて説明したが、その他のアプローチ又は技術も想到可能であり、これら上述のアプローチの代替として、又は付加的に、あるいは組み合わせとして用いることができる。
【0068】
(とりわけ)ユーザ410の位置(「身体位置」)を用いて、後に検出領域の位置を画定し、ユーザインタフェースの中のコントロールの位置を画定する、又は、画像をトリミング又は拡大することができるので、身体位置を画像500の中で検出する。身体位置は、顔検出を用いて決定した、頭部406の位置としてもよい。顔検出は、カメラ画像の部分を走査して、人間の顔の外見に対応する特徴を検出するようことができる。
【0069】
身体位置はまた、全ての項目が容易に到達できる範囲となるようにユーザの腕の位置としてもよく、胴体407、足409、重心又は体心の位置でもよく、あるいは、その位置は、肩の位置など、ユーザ410の他の部分又は外観に関連するものであってもよい。身体位置は、ポイント、線分、又は、ユーザの身体の全体又は部分を含む領域又はエリアとして画成することができる。計算効率のため、身体位置は、四角形、円形などの単純な形状として画成してもよい。例えば、図5に示すように、位置501(プラス符号(+)で図示)を、身体位置として決定、算出又は推定することができる。
【0070】
図6に示すように、ユーザ410を囲む検出領域600を、ユーザ410の画像500に画成する。一般的に、検出領域は、コントロールオブジェクト(すなわち、手又は腕)を検出する画像の部分を表すため、一般的に、コントロールオブジェクトが存在しえない画像500の部分、及び背景、動き、又はその他の要因によってコントロールオブジェクトを見つけることが困難、又は計算コストが高くなる部分は除外される。画像500は、例えば、検出領域600と、到達不能領域601と、胴体領域602に分割される。
【0071】
このため、検出領域600は、ユーザの胴体又は頭部に関連する胴体領域602を除くことができる。これらの身体部分は頻繁に動くためである。胴体領域602は、ユーザ410が無意識に動く、又は単に自身の位置を調整している間、腕又は手が入る可能性のある、胴体に近い画像500のエリアも含む。さらに、ユーザ410が物理的に到達することが困難な到達不能領域601も、検出領域600から除外される。残る検出領域600は、その領域の内部のコントロールオブジェクトの検出が、ユーザ410による意図的な身体の動き、即ち、コマンド入力を表す可能性が高い、画像の部分を占める。このため、検出領域600を検査して、コントロールオブジェクトがその領域の内部に存在するか否かを判断する後の処理動作では、これらの処理動作は、検出領域600のみ、又は、画像全体よりも小さが、検出領域600を含む画像の一部で行うことができる。
【0072】
検出領域600は、ユーザの動きの範囲に従って位置決めされる。動きの範囲の決定は、生物動力学的制限又は人体の能力などを模擬した複雑な解剖学的モデルに基づいて行い、これらをユーザに適用することができる。いくつかのケースでは、ユーザの頭部の寸法に乗数を乗じた積と等しい距離を、ユーザの腕の到達範囲と見積もるアプローチなど、より単純な経験的な常識も用いることもできる。他のケースでは、ユーザの腕の到達範囲をユーザの識別(例えば、顔認識に基づいて判断)、及び、デバイスに保存されているユーザに関する情報(例えば、ユーザの年齢及び性別)に基づいて推定してもよい。何れの場合でも、検出領域600の個別の位置決めは、ユーザのある外観によって定義する。同様に、ユーザは、検出領域600によって囲まれているとみなす。
【0073】
検出領域600は、このように、ユーザ410が身体部分の動きによってコマンド入力、合図又はジェスチャを行っていることを示すことが可能な、カメラの画角の中に定義することができる。しかしながら、検出領域600は同様に、動きが頻繁に発生して、意図的なコマンド入力のジェスチャと、非コマンド入力の動きとを識別することが困難な、カメラの画角の一部分の外に定義してもよい。
【0074】
ガイドライン604は、検出領域600の内部に位置決めすることができる。例えば、ガイドライン604は、検出領域600の境界603とは平行な(又は別の空間的関係にある)線として決定することができる。以下により詳細に説明するが、ガイドライン604に沿って選択可能な項目を配置することができる。例えば、図10では、選択可能な項目1010a〜1010zを、ユーザインタフェース100のガイドライン1009に沿って配置している。
【0075】
図7に、大きな画像をセンタリングしてトリミングすることによる、小さな画像の生成を図示する。具体的には、画像500と同様の画像700を、ユーザの頭部701の頭部位置703の周りにセンタリングして、拡大し、トリミングした画像702を生成した。カメラ画像の特定の部分のセンタリングと拡大は、コントロールオブジェクト(手704など)の動きを、ユーザインタフェースの中でより直感的又は容易にユーザ描写にマッピングすることができる。
【0076】
トリミング画像702、又はトリミング画像702の拡大バージョンは、ユーザインタフェースの内部に表示することができる。ユーザの画像をセンタリングして、画像のセンタリングに基づいて画像をトリミングすることができる。コントロールをセンタリングした画像の中でユーザに到達可能とする拡大係数を決定し、画像がさらに、拡大係数に基づいてトリミングできるようにする。拡大係数は、解剖学的なモデルを用いて決定することができる。
【0077】
図7の画像700は、身体位置が、ユーザインタフェースで示されたコントロールの構成要素などのある項目に対応する位置となるようにパン又はズームされている。パン又はズームは、フルサイズのカメラ画像700を撮像して、フルサイズのカメラ画像700から、ディスプレイに適合するように拡大又は圧縮するためにトリミングする画像702を選択するする処理によってシミュレーションすることができる。トリミングした画像702は、ユーザインタフェースのディスプレイ画像に適合するように拡大縮小され、フルサイズのカメラ画像の残りは、保存又は破棄される。以下にさらに詳細に説明するが、身体位置703又は手の位置704の座標などの座標は、ユーザインタフェースに表示されたユーザの描写の特徴部に対応させてマッピングしてもよい。
【0078】
検出領域は、ユーザの上方に、ユーザの両側部に一つずつ設けられた2つの線形の部分検出領域と連続する、弓形の部分検出領域を含んでもよい。検出領域について既にU字型形状のものを説明して図示したが、製造業者が既に設定したもの、又ユーザの設定に応じて、その他の形状を用いてもよく、検出領域の形状は、動的に決定してもよい。例えば、検出領域は、円形形状でもよく、線形のみでもよく、対称又は非対称の形状を含むその他の形状であってもよい。検出領域はまた、複数の、不連続な領域であってもよく、例えば、仮想キーボードコントロールとともに用いてもよい(例えば、図40参照)。
【0079】
図8に、2人の候補ユーザを含むシーンにおいて、制御するユーザの周りに画成された検出領域を示す。具体的には、画像800の中で2人の候補ユーザ801、802を検出すると、制御していないユーザ802の腕の動きの範囲805を考慮して、検出領域804が画定する。換言すると、制御していないユーザ802(又は制御していないユーザ802のコントロールオブジェクト)が検出領域804の一部に検出されると、その部分は、検出領域から除外される。さらに、検出領域の重なりが起こりうる画像のエリアにおいて、検出領域ごとの境界がトリミングされる(又は、特定の処理動作のためにマーキングされる)ように、検出領域は、ユーザインタフェース800の中のユーザごとに画成されてもよい。
【0080】
結果として、検出領域804は、より複雑で、動的に画成される形状をとることができる。あるいは、計算コストをより低くしたルールを画像に適用して、画像の被写体又はシーンに応じて検出領域を画成してもよい。例えば、ユーザが壁又は他の人間の隣にいる場合、線形又はその他の形状の検出領域を、壁又はその他の人間の対向する側のユーザの隣に画成することができる。
【0081】
相互連動的な項目を、検出領域804の中に設けてもよい。項目の位置及びサイズは、全ての項目が少なくとも部分的に検出領域804の中に配置されるように算出し、例えば、制御していないユーザ802の腕を避けるなどのため、検出領域の画成が変化しても、全ての項目が検出領域の中に残るように、再計算することができる。項目を、検出領域804の中のガイドラインに沿って配置し、項目の位置が、トリミングした検出領域の中で全ての項目が表示されるようにガイドライン沿って生き生きと動くようにすることができる。
【0082】
検出領域の内部のオブジェクト(手など)の位置を検出する(S304)。オブジェクトの位置は、同一又は他の画像、又は、続く画像などのその他の画像で、前に画定された検出領域を新しい画像に適用する、又は重ね合わせることによって、検出することができる。例えば、検出領域は、シーン領域、又は、画像領域に画成することができる。カメラ又はユーザが移動している場合、検出領域は、この動きを補償するように、画像から画像へと調節することができる。ユーザインタフェースのコントロールと相互連動するように、カーソル、指標、アバター、又は、その他のユーザの描写をユーザインタフェースの内部にマッピングするためにユーザのコントロール部分の位置(「ユーザ位置」)を決定する。
【0083】
コントロールオブジェクトの位置は、複数の方法で表現することができる。例えば、図9の画像900に示すように、ユーザ902の手の位置901を絶対又は相対座標(x,y)、又は角度θ、又は、角度θと既知のポイント904(身体位置など)からの相対距離又は絶対距離dで表現できる。さらに、検出領域905を、複数の小領域(部分領域905a〜905hなど)に分割した場合、又は、複数の相互連動要素と関連付けた場合、コントロールオブジェクトの位置は、手の位置901と重なる、又は最も近接する部分領域又は相互連動要素の固有の識別子で表現することができる。図9では、例えば、手の位置901は部分領域905eと重なるので、コントロールオブジェクトの位置は、部分領域905eと関連付けられた識別子として単純に表現することができる。1次元、2次元又は3次元でオブジェクトの位置を表現する他のアプローチを用いてもよい。
【0084】
ユーザ位置を決定することは、分割されたカメラ画像の分析を含む。ここで、カメラ画像は、前景部分と背景部分に分割される。例えば、ユーザを表す可能性のある画像部分(例えば、ピクセル)は、前景として、ユーザを表す可能性のない画像部分は、背景として分類される。分割されたカメラ画像を用いてユーザ位置を決定する場合、ガイドライン上方の画像部分を考慮し、必要に応じて、ガイドライン下方の短い距離も含むことができる。ユーザ位置は、領域の中の全前景部分の平均位置として算出することができる。分割されたカメラ画像を用いてユーザ位置を決定する場合、領域の内部の前景部分の数を計算して、閾値と計算値を比較し、計算値が閾値を上回る場合に、ユーザ位置として分類する。
【0085】
分割されたカメラ画像を用いてユーザ位置を決定する場合、また、領域内部で前景部分をクラスター化し、クラスターを選択し、クラスターの内部の全前景部分(例えば、ピクセル)の平均位置としてユーザ位置を算出することができる。平均位置を算出する場合、ガイドラインの上方の部分については部分的に重みをより大きくする、加重平均の算出を行ってもよい。
【0086】
ガイドラインの上方の部分をより大きく重み付けすることによって、平均位置がガイドラインの上方のユーザの部分となる可能性が高まる。いくつかの実施例では、システムは、ユーザインタフェースと相互連動するユーザの位置が、ほとんどの部分において、ガイドラインの下方となるように構成することができる。これらの実施例では、システムは、ユーザが、ユーザの手を頭上のガイドラインの上方に位置させることによって、キャラクタを選択することができる。さらに、これらの実施例では、ガイドラインのさらに上方の部分をより大きく重み付けすることによって、検出されたユーザの平均位置がユーザの手の先端を表す可能性がより高くなる。
【0087】
他の実施例では、分割されたカメラ画像を用いてユーザ位置を決定することは、分割されたカメラ画像の前景部分の形状を分析することを含む。前景部分の形状を分析することは、前景部分の最上部を識別し、ユーザ位置を最上部の前景部分の位置として算出することを含んでもよい。分割されたカメラ画像の前記部分の形状を分析することは、あるいは、前記部分の輪郭を生成し、輪郭の形状特徴を識別し、形状特徴が手であるか否かを判断することを含んでもよい。ユーザ位置を、手の位置として算出してもよい。
【0088】
さらに、ユーザ位置を決定することは、カメラ画像を分析して、ユーザの手を識別し、手の位置を決定することを含んでもよい。カメラ画像の中の手の位置を識別することは、カメラ画像の部分を、ユーザの皮膚の予想される外見を表す皮膚の色モデルと比較することを含んでもよい。その部分の色が皮膚の色モデルの中の色と類似している場合は、カメラ画像のその部分は皮膚として分類される。皮膚として分類された部分は、部分のクラスターにクラスター化されて、全体の位置とサイズが、位置以上の基準を満たしている部分のクラスターは、手として分類される。カメラ画像の中で手の位置を識別する様々な方法を用いることができ、手を追跡する他の方法を用いてもよいことは明らかである。
【0089】
ユーザインタフェースは、領域群を用いることができる。領域群は、群の各項目について一つの領域を有することができる。領域ごとに接触状態を判定することは、前景(例えば、ユーザ)として分類された分割されたカメラ画像の部分が領域の中にあるか否かを判定することを含むことができる。他の例では、領域ごとに接触状態を判定することは、ユーザの手として分類された分割されたカメラ画像の部分が領域の中にあるか否かを判定することを含むことができる。領域群は、部分群の各項目について領域を有することができる。領域群は、ユーザの相互連動に基づいて(例えば、ディスプレイ画面の中で移動するなど、)変化してもよい。
【0090】
ユーザの描写を表示することは、その外見をユーザによって構成設定することが可能なアバターを表示することを含んでもよい。例えば、ユーザはアバターの性別、サイズ、顔の特徴、衣服を構成設定してもよい。ユーザが描写を表示することは、ユーザの識別を検出し、検出したユーザの識別に基づいてユーザの描写を表示することを含んでもよい。ユーザの識別は、顔認識を用いて検出してもよい。検出したユーザの識別に基づくユーザの描写は、ユーザによって構成設定されるアバターを含んでもよい。
【0091】
ユーザの描写を表示することは、アバターに重ね合わせたユーザのテクスチャ画像などのカメラ画像を表示することを含んでもよい。例えば、ビデオ画像をビデオカメラから取得して、表示する。ビデオ画像は、ユーザと、ユーザがいる部屋(及びユーザがいるその他環境)の画像を含むことができる。部分群及びテキストの項目を含む前景グラフィック群を、ビデオカメラ画像の上に表示して、カメラ画像を部分的に遮蔽してもよい。
【0092】
ユーザの描写を表示することは、カメラ画像を前景部分と背景部分に分割し、分割されたカメラ画像を表示することを含んでもよい。例えば、ユーザを表す確率の高い画像部分は前景として分類し、ユーザを表す確率の低い部分は背景として分類する。
【0093】
分割されたカメラ画像を表示することは、前景として分類された部分のみを表示することを含んでもよい。前景として分類された部分のみを表示することは、不透明度を表すアルファチャネルを生成し、前景部分を不透明に、背景部分を透明に設定し、アルファチャネルを用いてカメラ画像を背景グラフィック群と組み合わせることを含んでもよい。
【0094】
このようにして、ユーザインタフェースは、前景要素と背景要素を表示することができる。前景要素は、背景要素を遮蔽してもよい。部分群の項目とテキストを含む前景グラフィック群は、前景要素と背景グラフィックの上に表示し、部分的に前景と背景要素を覆わせる。追加の前景と背景要素又はグラフィックは、アプリケーションによって生成してもよい。
【0095】
ユーザインタフェースのコントロール(仮想キーボードのキーなど)は、検出されたオブジェクトの位置に基づいて相互連動し(S305)、処理300は終了する(S306)。一つの例では、コントロールは、仮想キーボード又はマウスである。他の例では、コントロールは、描写に対して画成されたガイドラインに沿った項目を含むことができる。項目は、描写を遮蔽することなく表示される。
【0096】
図9に戻ると、コントロールオブジェクトの位置は、コントロール入力にマッピングされる。例えば、ルックアップテーブル、データベース又は式、カーソル位置への手の位置901の入力((x、y)、θ、θ+d、部分領域又は相互連動要素識別子、又はその他の指標で表現)に基づいて決定することができる。ユーザインタフェース910では、例えば、カーソル位置911は、相対又は絶対画面座標(x’、y’)又は角度θ’、又は、既知の位置(例えば位置912)からの距離d’と角度θ’として表すことができる。あるいは、ユーザインタフェース910が複数の領域914を画成する場合、出力カーソル位置911は、入力部分領域又は相互連動要素識別子に対応する領域の固有の識別子を識別することができる。図示の例では、領域914dは部分領域905eに対応するので、カーソル位置911は領域914dの中に示される。
【0097】
コントロールを用いて相互連動することは、カーソル位置に対応する機能を呼び出すことによって生じる。呼び出される機能として、例えば、カーソル位置の近くの項目の選択、アプリケーションの作動、メディアハブ機能の実行、マウスイベントの起動、コントロールの状態の変更、又は、その他のヒューマンコンピュータ入力部の実行をあげることができる。
【0098】
入力位置パラメータ(x、y、θ、又はdなど)は、出力位置パラメータと同一、又は1対1の関係でよい。例えば、ユーザの腕の角度θは、アバターの腕の角度θ’と同一、又は、鏡像の関係でよい。ユーザインタフェース920では、例えば、カーソル位置921は、アバターの身体位置922に対して角度θに位置する。このように、アバター(又はカーソル)はユーザを表し、コントロールの上部、下部、又は側部に位置することができる。
【0099】
アバターは、オブジェクトの検出された位置に基づいて、ユーザの動きを模擬するように生き生きと動くことができる。ユーザの顔を検出して、検出した顔に基づいてユーザの識別を行い、ユーザの識別に応じてコントロールを調整するようにしてもよい。検出領域の中の2番目のオブジェクトの位置を検出して、検出した2番目のオブジェクトの位置に基づいて,ユーザインタフェースの中で2番目のコントロールを相互連動させてもよい。
【0100】
図1〜9を参照して、カメラをベースとした入力を、画像に撮像されたユーザの腕の動きを、ユーザインタフェースの中のカーソル又はその他のユーザの描写にマッピングすることによって、高度なコントロールに適用した場合について説明した。以下、図10〜39を参照して、カメラをベースとした入力とともに使用する、又はカメラをベースとした入力を受け入れるように構成された、高度なコントロールの種類の非限定的な例について説明する。図40に示すコントロールなど、異なるコントロールもカメラをベースとした入力を用いてもよい。
【0101】
図10は、状態1004a〜100dに示す、カメラをベースとした入力を用いた、代表的な高度なコントロール1002を適用した、ユーザインタフェース1000の概念図である。連動ジェスチャの検出の前、又は、連動ジェスチャの検出の後であるが、画定された検出領域にコントロールオブジェクトが検出される前に生じる状態1004aでは、ユーザインタフェース1000は、(とりわけ)、アバター1006と、アバター1006の上方に配設されるコントロール1002とを含む。コントロール1002は、ガイドライン1009(状態1004aでは点線として示される)と、各々が英語のアルファベットの文字を有する項目1010a〜1010zとを含む。項目1010a〜1010zは、文字を表して示されているが、アイコン、機能、画像、オブジェクト、記号、アプリケーション、キャラクタ、グループ、又はクラスタ、あるいは異なる項目など、その他のものを表していてもよい。
【0102】
状態1004aでは、ユーザ入力はまだ検出されていない(すなわち、画像で、ユーザの周りに覚醒された領域の中で、ユーザの手又は腕が検出されていない)ので、アバター1006は中立又はリラックスした位置で、アバター1006の腕1011a及び1011bもアバター1006の胴体1012の側部にリラックスした状態で描かれている。
【0103】
アバター1006は、人間のような外見を有し、仮想世界の中を誘導することができる。アバターの例として、BLIZZARD ENTERTAINMENT(登録商標)によるWORLD OF WARCRAFT(登録商標)などのビデオゲーム、LINDEN RESEARCH, INC(登録商標)によるSECOND LIFE(登録商標)などの仮想世界で再生可能なキャラクタを含む。カメラ入力部は、アバターの手など、オブジェクトのコントロール部分にマッピングされ、ユーザの身体の周囲の空間におけるユーザの動きを、アバターの動きによって、ミラーリング又は模倣することができる。カメラでユーザのテクスチャ画像を撮像し、その画像をアバター1006に重ね合わせることによって、アバター1006はユーザの外見を有することができる。
【0104】
「項目」とは、構成単位又は要素の群からユーザが選択を所望することができる構成単位又は要素を意味し、項目と類似又は非類似の構成単位又は要素を含むが、これに限定されない。この群は、項目がゼロでもよいし、又は、数百、数千、数百万の項目を含んでもよい。一つの簡単な例では、項目はアルファベット文字であり、項目群は、英語アルファベットの26文字、又は、大文字と小文字を区別した52文字を含む。同様に、群は、/、@、#、$、%、Λ、&、*、(、)、{、}、<、>、:、;、’、”、?、/、〜、’、などの記号文字、又は、キーボード又はキーパッドの選択によって通常アクセスすることのできない、その他の記号文字から構成する、又はかかる記号文字を含むことができる。その他の群は、名称のリストから選択可能な人名又は地名などの名称、アイコン、機能、又は、メディア設定(例えば、「再生」、「音量アップ」、「電源オフ」、「連続記録(Record Series)」)などの設定を含むことができる。
【0105】
また、項目は、番号(0〜9)、文字(例えば、英語アルファベットの文字A〜Z、又は、日本語のカナ文字)、テキスト記号(例えば、スペース“ ”、ハイフン“−”、ピリオド“.”)、所定の、又は、動的に決定されるテキストのフレーズ(例えば、「.com」、「.org」、「FAQ」、「メインメニュー」、「送信」、「着呼受付」、「DVD再生」、「電源オフ」など)、名称、タイトル、時間、日付、動作、イベント、処理、又は機能(例えば、「ゲームの保存」、「ゲームのロード」、「アプリケーションの起動」、「データの送信」、「メディアプレーヤ」、「フォトビューア」、「ペイントブラシ」、「電子メール」、「地図」)、設定オプション(例えば、「640×480解像度モード」、「800×600解像度モード」、「エキスパートモード」、「ノービスモード」、「トレーニングモード」、「チートモード」)、又はその他の情報又は情報の組み合わせを含むことができる。
【0106】
状態1004bは、手などのユーザのコントロールオブジェクトが、ユーザの周りの所定の領域で検出されると発生する。この位置は、+記号で示すように、項目1010zによって占められたユーザインタフェース1000の領域の上を移動するカーソル位置にマッピングされ、マウスオーバー(Mouse Over:マウスが重なる)条件と類似した条件が確定する。マウスオーバー条件が検出されると、アバター1006の腕1011bが、アバター1006が項目1010zを指し示す、又はつかむように生き生きと動く。さらに、項目1010zは強調表示されて、サイズが大きくなり、隣接する項目1010yも少しだけサイズが大きくなる。項目1010zの上のマウスオーバー条件はまた、出力領域1040に項目1010zを表示する、又は、項目1010zを、テキスト音声変換器を用いて変換し、スピーカを用いて発話することによって、項目1010zを出力させることもできる。マウスオーバー条件はこのように、関連する項目を事前に選択された、作動された、強調状態された状態にすることができる。しかし、項目を事前に選択する、又は強調表示することは、厳密には項目にその外見を変化させることを必須とするものではない。
【0107】
ユーザがその手を伸ばし、自分の身体の周辺の空間で、自分の頭部上方の所定の領域の中の位置により近づけ、これがより垂直な位置で検出されると、ユーザインタフェース1000は状態1004cに変化する。手の位置は、コントロール1002の項目1010sの上のガイドライン1009に沿って新しいカーソル位置にマッピングされる。アバター1006の腕1011bは生き生きと動き、空間のユーザの手の動きに追随する。ユーザの描写が項目に近づく、又はガイドライン1009を超えると、近づかれた項目は、サイズが拡大して強調表示される。描写が強調表示された項目から離れると、項目のサイズは縮小する。
【0108】
ユーザが物理的ボタンを選択する、又は、他の選択ジェスチャ(自分の他の手によって行うジェスチャ、又は、自分の手のポーズを変形するなど)を実行されると、作動された項目1010sが出力されるようにすることができる。文字の上にカーソルを配置してタブ操作している間に、その文字の上を描写が所定の時間期間留まる、又は、キーボードキーで選択することによって、選択を行ってもよい。文字の選択(又は見込み選択)によって、項目が強調表示されようにして、文字を、ガイドラインに沿ったその他のものと区別できるようにすうことができる。アバター、又は、ガイドラインの位置を画定するために用いる他のオブジェクトは、ユーザの動きがアバター1006の腕1011bの動きにマッピングされるように、それ自体が項目と相互連動することができる。
【0109】
状態1004dでは、項目1010sが選択されている。選択が行われると、項目は元の強調されていない状態に戻る。さらに、アバター1006の腕1011bはその元の、胴体1012の隣の弛緩した位置に戻る。選択された項目1010sは、例えば、出力領域1014に出力される。
【0110】
様々な状態で示したように、高度なコントロールを用いて、アルファベットからなる文字グループの中から、1以上の文字を選択することを容易にすることができる。ガイドラインに沿ってこれらの項目を配置する、又は配列させることによって、アバター又はオブジェクトを妨げる、又は遮る、又はそれらと重なり合うことなく、これらの項目を表示させ、ユーザが直感的に選択できるようにすることができる。
【0111】
図2に図示したデバイスを用いて、高度なコントロールを呼び出し、出力し、使用することができる。簡潔に表現すると、この処理は、ユーザインタフェースにおいてオブジェクトに対してガイドラインを画定し、オブジェクトを遮蔽することなく、ガイドラインに項目を配置して表示する処理を含む。また、表示された項目の一つの選択を受け付けることによって、選択された項目を出力することができる。
【0112】
より詳細には、ガイドラインは、ユーザインタフェースにおいてオブジェクトに対して画定することができる。これは、ユーザが手動で高度なコントロールを表示するように指示する、又は、ユーザがテキスト入力フィールドに進むなどして、1以上の項目を入力すると判断した時に開始するようにしてもよい。強調表示される項目のサイズが増大することによって、高度なコントロールを用いて、項目が全て同一の寸法を有していた場合にユーザインタフェースに通常収まるガイドラインに沿ってより項目を表示することができるので、ガイドラインの画定はまた、高度なコントロールを用いることなく、全ての項目が効果的にユーザインタフェースに表示うることができないという決定がなされた後に開始することもできる。こうすることによって、高度なコントロールは、ユーザが、容易に信頼性をもって個別の項目の選択を行うために効率的又は有効なサイズで項目の部分群の表示を行うことができる。
【0113】
簡単に、図11に、オブジェクト1102(点線の円で示す)と、さらにガイドライン1104を有するコントロール1105と、を含むユーザインタフェース1101を示す。ガイドライン1104は、図11では点線で示しているが、他の代表的な実施例では、ガイドライン1104は実線で示すか、又は、図示していない。
【0114】
コントロール1105は、文字1106などの項目の直感的な選択又は出力を可能とするとともに、同時に、ガイドライン1104に隣接する、ガイドライン1104の近傍の、ガイドライン1104を部分的又は全体的に境界とする、又はガイドライン1104によって囲繞、あるいは、画定される領域にオブジェクト1102の一部又は全体を表示することができる。ユーザがテキストデータの入力を要求する入力フィールドを選択した時など、項目を出力する、又は選択すると判断された時、コントロールは、項目1106とオブジェクト1102を表示することができるユーザインタフェース1101の場所に配置され、オブジェクト1102に対して、オブジェクト1102に関連して、オブジェクト1102に基づいて、又はオブジェクト1102について画定される。換言すると、オブジェクト1102の位置は、ガイドライン1104、及びコントロール1105のその他の要素が方向付けされる、又は、配列される、あるいは、他の要素が位置決めされる固定位置を表すことができる。
【0115】
この固定位置を決定するために、ガイドライン1104を画定するオブジェクトと、そのオブジェクトの位置を決定する。いくつかのケースでは、オブジェクトは、コントロール1105が、アバター、ユーザの画像、つまみ、アイコン、リスト、データのテーブル、データのグラフ、テキスト入力フィールド、他のコントロール又はウィジェット、又は、ユーザインタフェース1101の既知の空白領域と組み合わせて出力される場所、又は、アバター、ユーザの画像、つまみ、アイコン、リスト、データのテーブル、データのグラフ、テキスト入力フィールド、他のコントロール又はウィジェット、又は、ユーザインタフェース1101の既知の空白領域を含む場所などに所定、又は予め画成することができる。他のケースでは、オブジェクトは、コントロール1105を出力する時に動的に決定することができる。例えば、ユーザインタフェース1101の最新の状態に基づく、ユーザインタフェース1101の空白領域の場所が存在する場所、ユーザがテキストフィールドにタブ操作をして、テキストフィールドをオブジェクトとして利用する、画面で最大、又は最重要、又は最も色彩豊かな、又は最も色彩の乏しいオブジェクトを動的にオブジェクトとして決定する、又は、焦点となる要素、領域又はウインドウを動的にオブジェクトとして決定するようにしてもよい。
【0116】
これらのケース、又は他のケースでは、オブジェクト1102のサイズ、形状、位置、境界、又はその他のコンテクストが検出され、ガイドライン1104はこれらの検出されたコンテクストに対応して画成される。例えば、ガイドライン1104は、オブジェクト又は、オブジェクトの一部と重なり合う、又は重なり合わない関係、又は、分岐する関係、分割する関係、空間を制限する、又は限定する関係、又は、オブジェクト1102のサイズ、形状、比率、解剖学的なモデルに基づく関係など、その他の関係で画成することができる。
【0117】
要約すると、とりわけ、ユーザインタフェース1101は、オブジェクト1102を含む。オブジェクト1102は、ユーザの描写、項目の群を構成する項目1106であってもよい。項目1106を、ユーザが従来通り信頼性をもって各項目を選択することができるサイズと位置に表示されるように、項目1106は動的に表示することができる。ユーザインタフェース1101の中に項目1106の各々を併せる、又は、大きいサイズでガイドライン1104に配列させることは困難なことがあるため、項目1106の部分群をより大きなサイズで表示するようにしてもよい。
【0118】
図12及び図13に、代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を図示する。図12では、ガイドライン1201は直線であり、オブジェクト1202と重なる、又はオブジェクト1202の上部三分の一を分割する、又は、オブジェクトの頭部1204をオブジェクト1202の胴体1205から分離するように画成されている。図13では、ガイドライン1303は曲線であり、オブジェクト1302の上部で所定のピクセル距離が最大となる、又は、オブジェクト1302を遮蔽しない、又は、オブジェクト1302の腕1304(又はその他のコントロール部分)の動きの範囲の中となるように画成される。
【0119】
ガイドラインは、ガイドラインに配列される項目が、オブジェクトの到達範囲の中となるようにオブジェクトに対して画成することができる。図13に示すように、曲線のガイドライン1301は、個々の項目又は項目の部分群がアバター1302の伸びた腕1304の一方によって到達できるように弧の形状を形成している。いくつかのケースでは、曲線のガイドライン1301の曲率半径を、腕1304の一方を頭部の上方に伸ばした位置として、ガイドライン1301の位置がその腕1304の一方の自然な振りに対応するように、アバター1302の腕1304の長さに基づいて決定することができる。他のケースでは、曲線のガイドライン1301の曲率半径を、入力デバイスの範囲(例えば、傾斜センサの傾斜角度の範囲、又は、ビデオゲームコントローラの方向パッドの動きの範囲)に基づいて決定することができる。他のケースでは、曲線のガイドライン1301の曲率半径を、ユーザの動きの範囲に基づいて(例えば、ユーザの腕の長さに基づいて)決定することができる。ユーザの動きの範囲を決定することは、ユーザの(顔検出を用いた)識別と、ユーザの年齢、性別、またはユーザに関するその他の情報に基づくユーザの特定の動きの範囲の推定を含む。
【0120】
以下、カーソルがガイドラインの上方を移動して項目を選択するガイドラインについて説明するが、その他のレイアウトおよび構成も可能である。例えば、ガイドラインは、選択可能な項目の上方、又は、選択可能な項目の側方に配置してもよく、水平、垂直、又は対角線方向に方向付けしてもよい。
【0121】
図12及び図13に示した直線および曲線のガイドラインの他に、ガイドラインは、ジグザグ、円形、多角形、又はその他の形状を有してもよい。ガイドラインの起点と終点は、水平又は垂直に直線上に配置されてもよく、これら起点と終点は、直線以外の態様でもよい。ガイドラインは規定された起点又は終点(又は、起点又は終点の外見)を有さない、又は、起点及び終点が一致する、円形又は連続的でもよい。ガイドラインに沿って配列された項目自体が継続的に又は断続的に移動又は生き生きと動くように、ガイドラインは、それ自体が、移動する、又は生き生きと動くオブジェクトであってもよい。
【0122】
動きの範囲は、生物動力学的な制限、又は人体の能力を模倣するモデルなど、複雑な解剖学的モデルに基づいて決定し、これらをアバター又はユーザの能力に適用することができる。ユーザの頭部の寸法に乗数を乗じた積と等しい距離を、ユーザの腕の到達範囲と見積もるアプローチなど、より単純な経験的な常識も用いることもできる。いずれの場合でも、ガイドラインの個別の位置決め、方向付け、配置、又は構成は、オブジェクトの何らかの外観によって画成される。そのようなものとして、オブジェクト1302は、ガイドライン1301によって囲まれるとみなす。
【0123】
オブジェクトの位置に基づいて、ガイドラインを、所定の位置の一部を囲むように動的に画成することができる。オブジェクト、又は、オブジェクトの一部が円の中にあり、ガイドラインがその円の何れかの一部である弧を画定する場合、ガイドラインはオブジェクトを囲むものとみなす。図13に示すように、例えば、ガイドライン1301が、オブジェクト1302の大部分を囲む円を形成するが、伸びた場合には、オブジェクト1302の指を表す小さな領域は除外され、円の外となる。
【0124】
ガイドラインは動的に画成できるので、ガイドラインがリアルタイム又は略リアルタイムに再画成して、ユーザがガイドラインの再画成又は再配置を認識又は観察できるようにしてもよい。例えば、他のオブジェクトがオブジェクトに隣接していないことを検出すると、最初にガイドラインが、図13に示すように、そのオブジェクトの上方に画成することができる。図14に示すように、2番目のオブジェクト1401が、制御をしているオブジェクト1404の左側のユーザインタフェース1402に入力されると、ガイドライン1405は再画成、又は、再配置されて、2番目のオブジェクト1401から離れる、又は、2番目のオブジェクト1401に対向するコントロールオブジェクト1404の側部に動的に画成することができる。2番目のオブジェクトは、カメラ画像の第2のユーザ、ネットワークを介して制御される2番目のユーザのアバター、プログラムによって制御される非プレーヤキャラクタのアバター、又は、他の種類のオブジェクトに対応することができる。かかる特徴は、高度なコントロールを、複数の移動するオブジェクトを有する非静止ユーザインタフェースでより効率的に利用できるようにするという利点がある。
【0125】
ガイドラインの画成は、さらに、アバターのコントロール部分の動きの範囲を決定することと、ガイドラインを、コントロール部分の動きの範囲内に画成することを含んでもよい。ガイドラインはコントロール部分の動きの範囲の外縁に沿って画定することができる。例えば、垂直の方向を向いたガイドライン1405の曲率半径は、アバターの腕の長さに基づき、垂直の方向を向いたガイドライン1405が腕を側方に伸ばした位置した時の、アバターの腕の自然な振りに対応するように、決定することができる。
【0126】
さらなる例では、項目の番号が単一のガイドラインに対応付けるには長すぎる、ユーザインタフェースが他の要素で混雑している、各項目が事実上、複数の項目、又は項目のクラスタを表している、又は、ガイドラインが部分に分割され、不連続な部分を画成している、又は、複数のガイドラインが画成されることがある。図15では、ユーザインタフェース1500は、垂直方向の長さほぼ全体を占めるオブジェクト1401を含み、ガイドライン1502は不連続な部分又は領域1504(点線で示す)を画成し、ガイドライン1502をガイドライン部分1502aと1502bに効率的に分割する。
【0127】
図16では、選択又は出力する項目の番号が大きく、単一のガイドラインで項目を表示又は選択することが困難になる、又は直感的でなくなるので、二つのガイドライン1601と1602がユーザインタフェースの中に画定される。ガイドライン1601と1602は、一般的形状が同一で、平行に図示されているが、いずれの特徴も必須ではない。例えば、ガイドライン1601は、オブジェクト1604の左側に沿って略垂直に配置されたジグザグ形状のガイドラインであってもよく、ガイドライン1602は、オブジェクト1604自体の胴体に重なるように画成された、六角形のガイドラインでもよく、又は、オブジェクト1604を全ての側面で完全に囲む円形のガイドラインでもよい。
【0128】
第1のガイドラインの項目の選択が、第2のガイドラインに配置された項目の画定又は表示を誘因するようにしてもよい。第1のガイドラインをアルファベット文字の選択に用い、アルファベットが選択されると、第1のガイドラインに表示されるアルファベット文字で開始する名称(又は他の項目の種類)が第2のガイドラインで表示される、又は出力されるようにしてもよい。
【0129】
オブジェクトに対応してガイドラインを画定する代わりに、ガイドラインもまた、ユーザインタフェースの境界に基づいて画定又は位置決めしてもよい。例えば、ガイドラインを、ユーザインタフェースの一端部(又は一端部の近傍のポイント)からユーザインタフェースの他の端部(又は対向する端部近傍のポイント)に延在するように画成してもよい。ガイドラインは、ユーザインタフェースの位置又はその他の要素、例えば、デスクトップアイコン、ユーザインタフェースボタン又は仮想世界の中のオブジェクト、に基づいて画成又は位置決めすることができる。ガイドラインは、ユーザインタフェースの境界に対して対称又は非対称でもよい。
【0130】
ガイドラインに対して配列された項目は、オブジェクトを遮蔽する、又は遮蔽しないように表示することができる。各項目の下の部分、中央部分、右の部分、左の部分、中心部分、又はその他の部分がガイドラインにある場合、又は、項目に対応するガイドラインのポイントに対して平行に設けられている場合、項目は、ガイドラインに対して配列することができる。図11で、例えば、項目1106aと1106zは厳密な意味では一直線上ではないが、それぞれの項目の部分は、ガイドライン1104に対して平行であるので、項目1106aと1106zは、各々、ガイドライン1104上に配列されている。表示される際、配列された項目1106は全体として、一般的な形状、又は、ガイドライン1104自体の外観で表示される。図12も、ガイドライン1201に対して配列された項目を示している。ガイドライン1201が直線であるため、第1の項目1206aと最後の項目1206zは略一直線上に配置されている。
【0131】
図17のユーザインタフェース1700に示すように、各々の項目の中央又はその他の内部のポイントがガイドライン1701に対して配列される場合、各項目は、その中心の周りに回転して、表示された項目をやや不均一とする、又は、より無作為な外見とすることができる。集合した項目は、ガイドラインに対してほぼ配列されている、ガイドラインによって画成された構成又は配置、方向性、一般的な外見、感性を有しながらも、この無作為さは、いくつかの項目はガイドラインの上方に、いくつかの項目はガイドラインの下方に見えるように、項目をガイドラインの上方と下方にずらすことによってさらに強調することができる。
【0132】
項目は、ガイドラインにそって均等に分散してもよいし、均等に分散しなくてもよい。例えば、最初に項目を均等に分散した後、個別の項目の上をカーソルを移動させて、不均等に再分散させ、その項目のサイズを変更させることができる。あるいは、デフォルトの、又は好ましい項目を、より好ましい項目がその他の好ましい項目よりも目立つようにガイドラインに沿って分散さてもよい。さらに、項目の間の間隔は、パターン関数又は数学関数によって規定してもよいし、完全に無作為であってもよい。
【0133】
オブジェクト又は少なくともオブジェクトの一部は、項目が表示されると可視化され、オブジェクトは、遮蔽されなくなる。換言すると、オブジェクトを遮蔽することなく、項目を表示するので、項目がオブジェクトを完全に覆う、又は妨げることはない。項目の透明度、色、又は、線の太さ、などの項目の所定の特徴を変化させて(例えば、項目がオブジェクトと重なる部分では選択的に変化させて)、オブジェクトを幾分でも可視化することができる。
【0134】
項目を初めて表示する第1の時点では、項目をオブジェクトを遮蔽することなく表示し、第1の時点の前後の第2の時点では、項目がオブジェクトを、又はオブジェクトの一部を遮蔽する、隠蔽する、不明瞭にする、遮断する又は覆うようにすることができる。一例として、図12及び図13では、ユーザインタフェースでそれぞれのオブジェクトの少なくとも一部は可視化されているため、項目は、各々のオブジェクトを遮蔽することなく表示されている。さらなる例では、図16は、どの項目のいかなる部分も、ユーザインタフェースの内部で関連するオブジェクトのいかなる部分の可視化も覆っていない、遮断していない、又は干渉していないので、項目は、関連するオブジェクトを遮蔽することなく表示されている。
【0135】
例えば、マウス又はカメラ入力を用いて、表示された項目の一つを選択したことを受け付けることができる。一実施例では、ユーザインタフェースは、各項目の周りの領域を画定し、項目に関連する領域の内部でオブジェクトのカーソル又はコントロール部分が検出されると、項目は選択される。領域は、ユーザの相互連動に応じて動的に再画成することができる。例えば、領域は、マウスオーバー条件に基づいて、又は、カーソルがガイドラインを横切ったことを検出した時に、サイズを増大し、又は、カーソルが離れ、別の項目を強調表示する時、又はガイドラインを再び横切った時に、サイズを縮小することができる。
【0136】
以下、詳細に説明するように、項目の選択は、ユーザが選択行うために使用する入力部の種類に応じて、複数のアプローチによって行うことができる。例えば、選択は、マウスのカーソルが、選択する項目の上に重なり(マウスオーバーイベントが誘発され)、マウスボタンが押下され(マウス押下イベント)、マウスボタンが解除される(マウス解除イベント)、マウスを用いたカーソル式のユーザ選択でもよい。クリックイベント、ダブルクリック(dblクリック)イベント、又は、マウスオーバーイベントのみなど、マウスによる他のマウスイベントを用いて、項目を選択してもよい。
【0137】
キーボードを用いて、ユーザは一つの項目から他の項目へタブ操作し、他のキーボードキー(例えば、スペースバー又はリターンキー)を用いて、強調表示されている項目を選択する、又は、ユーザが文字のタイプを開始して、所望の項目を絞り込み、識別して選択するようにしてもよい。ユーザは、ビデオゲームコントローラ又は手持ちのリモコンを用いて、方向パッドを押下して、強調表示される項目を変更し、ボタンを押下して、強調表示される項目を選択するようにしてもよい。ユーザは、傾斜センサを有する可動デバイスを用いて、所望の項目を強調表示するまで、デバイスを左右、上下に傾斜させて、カーソルを移動させる、又は、他のインジケータを左右、上下に移動させ、その後、キーを押下する、又は可動デバイスを振って、選択を登録するようにしてもよい。ユーザはタッチ画面デバイスを用いて、ユーザインタフェースのX、Y座標に直接触れて、所望の項目を出力させてもよい。ユーザは、音声インタフェースを用いて、「タブ」、「左」、「右」、「選択」、又はその他類似の音声コマンド、などのコマンドを発話し、カーソルを項目の間に移動し、所望の項目を選択するようにしてもよい。
【0138】
ユーザはマウス又はビデオコントローラを用いてアバターを直接制御してもよい。例えば、ユーザは、ビデオコントローラを用いて、アナログコントロールスティックを移動して、アバターの腕を移動させ、アナログコントロールスティックの角度はアバターの腕の角度にマッピングされる。ユーザは、モーションキャプチャデバイスを用いて、アバターの腕がユーザの現実の腕の動きを模倣するようにして、アバターを直接制御することができる。
【0139】
本書が説明する高度なコントロールは、ビデオに基づくコントロールシステムと互換性がある。具体的には、カメラは、ユーザの画像などの画像を検出し、画像の部分、画像の中の動き、画像から識別されたジェスチャが、リアルタイム又は略リアルタイムで動的にカーソルにマッピングされる。例えば、ユーザを囲む検出領域は、シーンの中のユーザの画像に画成され、検出領域の中のオブジェクト(例えば、手など)の位置が検出される。相互連動される高度なコントロールは、検出されたオブジェクトの位置に基づく。
【0140】
さらに他の入力機構について説明するが、アプローチ又は技術については簡潔のために省略する。項目は、想到可能なアプローチ、技術又は機構を用いて自動的又は手動で選択されるとすることで十分である。
【0141】
オブジェクトは、アバターなどのユーザの描写であってもよい。ユーザインタフェースにユーザの描写を表示することによって、ユーザは容易に、項目の位置に対するオブジェクトの位置を認識でき、迅速にカーソル又はアバターのコントロール部分(手など)の位置を移動して、所望の項目に位置と一致させることができるので、訓練要件は削減される。ここでは、カーソル又はアバターのコントロール部分の位置を用いて、ユーザインタフェースに表示される項目の選択、又は「接触」を検出する。
【0142】
オブジェクトがアバターである場合、アバターの潜在的なコントロール部分を、コントロール部分として指定して生き生きと動かすことができる。例えば、コントロール部分は、アバターの1以上の腕、足、肘、膝、手、又は指、又は、鼻、目、耳、ヘソ、首、髪、衣服、アクセサリなどのアバターの身体的特徴、又は、衣服、宝石、その他の私物品などのアバターの付属品であってもよい。ユーザ入力を受け付けると、指定されたコントロール部分は生き生きと動き、項目と相互連動する、又は項目と相互連動するように見せる。
【0143】
オブジェクトがつまみ又はスイッチの外見を有する場合、コントロール部分は、オブジェクトの身体から伸びる矢印であってもよく、オブジェクトが項目の方向を指し示して回転してもよい。オブジェクトが、炎、プラズマ、電光又は液体のシミュレーションなどの粒子システムエフェクトを含む場合、粒子は、稲妻、又は水滴の変形などの、項目の方向を指し示す拡張部を形成して、項目との相互運動を表すようにしてもよい。
【0144】
図13では、例えば、オブジェクト1302はアバターであり、アバターの腕1304aがコントロール部分として指定されている。ユーザが身体の周りの空間で腕を左右に動かすと、腕1304aは生き生きと動き出して、左右にそれぞれ移動し、腕、より詳細には、腕の手又は指に対する項目の近接度に応じて項目が選択される。同様に、手1307もまた、コントロール部分として指定することができる。類似の構成で、ユーザの身体の周りの空間における手又は両手の上下の動きは、人間の動きに適したように、腕1304a又は手1305を上下に動かす。
【0145】
これらの上下の動きは、腕1304a又は手1305を項目から離れ、腕1304a又は手1305が項目又はガイドラインに近接していない(相互連動しない)所定のポイントでは、項目を「選択」しているように見えても項目を出力させることはない。ガイドラインを画成して、アバターがガイドラインの下方のほとんどの部分となり、オブジェクトによる文字又は項目の選択が、アバター又はガイドラインの頭部上方にアバターの手を位置することによって、行われるようにしてもよい。
【0146】
アバターの潜在的なコントロール部分をコントロール部分として指定することは、他のコントロール部分に動的に切り替わることであってもよい。例えば、再び図13を参照すると、ユーザが、コントロールオブジェクトとして用いている腕を切り替える、又は、項目1306nに関連する位置を通り抜けるように一つの腕を動かすと、コントロール部分は、左腕1304aから右腕1304bに切り替わり、左腕1304aは、ガイドライン1301に沿って項目1306nの左までの全ての項目と相互連動して選択を行い、右腕1304bは、ガイドライン1301に沿って項目1306oの右までの全ての項目と相互連動して選択することができる。かかる特徴は、簡素なマウスカーソルを用いて単に項目に沿って項目を選択する代わりに、ユーザは、相互連動するアバターを現実的で直感的な手法で制御しているように思えるので、ユーザが経験する視覚的な楽しみを増大することができる。
【0147】
切り替えが行われ、左腕1304aがコントロールオブジェクトとして指定されなくなると、左腕1304aは生き生きと動き、オブジェクト1302の胴体の側部に沿った位置など、中立の、休憩、又は弛緩した位置に戻る。反対に、この切り替えによって、右腕1304bは、途切れなく生き生きと動き、弛緩した位置からオブジェクト1302の胴体の側部に沿って腕1304aが以前に占めていた位置、又はその位置に隣接した位置に移動する。この例で続けると、ユーザが片方の腕又は両腕を項目1306nと1306oによって画定されたガイドラインに沿った空間の間を迅速に往復すると、あるいは、アバターは生き生きと動き、楽しく、ユーモアをもって、あるいは視覚的に刺激となる動作で、腕をオブジェクト1302の側部からオブジェクト1302の頭部の上部に腕を振り動かせることもできる。
【0148】
さらなる例では、アバターの目をコントロールオブジェクトとして指定し、オブジェクトを囲むガイドラインに沿って項目を見つめ、目で追っているように見せることもできる。コントロールオブジェクトとして指定されていないアバターの他の部分もまた生き生きと動いて、例えば、強調表示される項目に反応する、又は、強調表示された項目に基づいて、所望のポーズ、より現実的なポーズをとるように見せてもよい。一実施例では、アバターの口が生き生きと動いて、選択された、又は強調表示された項目を話す、又は、発話しているように見せることができる。又、アバターの首又は頭部が生き生きと動いて伸び、アバターが強調表示されているオブジェクトを緊張して見ている、又は熟考している様子を一層強調させることができる。
【0149】
同様に、複数のオブジェクト(例えば、複数のアバター)がユーザインタフェースに表示された場合、ユーザの選択に基づいて、強調表示された文字、又は高度なコントロールに近づいた時、又は、他の要因に基づいて、2番目のオブジェクトを制御するオブジェクトとして切り替えることができる。このため、コントロール部分又はコントロールオブジェクトの指定は、第1の潜在的なコントロール部分又はオブジェクトから第2の潜在的なコントロール部分又はオブジェクトへ切り替わる、又は、第2の潜在的なコントロール部分又はオブジェクトから第1の潜在的なコントロール部分又はオブジェクトに切り替わることができる。
【0150】
選択された項目は出力することができる。選択された項目を出力することは、さらに、選択された項目を表示すること、選択された項目の電子的な指標(electronic indicia)を出力すること、又は、ユーザインタフェースの中で選択された項目の色、不透明度又はサイズを変化させて、選択された項目を強調表示することを含んでもよい。選択された項目、又は選択された項目の指標は、後の使用のために他のデバイス又は記憶媒体に出力することができる。
【0151】
図11では、選択された項目1106rの色、不透明度又はサイズは、第1の程度又は範囲に変化し、選択された項目1106rは、ガイドライン1104に沿って表示される項目全ての中で最大に見え、項目1106rと隣接する項目1106pと1106tの色、不透明度、サイズは、より少ない、第2の程度又は範囲に変化した。隣接する項目の色、不透明度、サイズ、又はその他の特徴が変化することによって、ユーザは、カーソル又は選択した項目の位置をより容易に識別することができ、コントロールの直感的な性質と、使いやすさが向上する。項目の色、不透明度、サイズ又はその他の特徴は、カーソルの画像が明示的に表現されない場所であってもカーソルの位置を示すことができる。
【0152】
高度なコントロールは、所与の時点で選択できる項目は少数であるので、ほとんどの項目は選択されずに残る。選択されない項目は、サイズを縮小することによって、多数の項目をユーザインタフェースの中に表示することができる。選択を検討している所定の項目のサイズは拡大するが、選択を検討している項目の全体的な認識と読みやすさは向上するため、コントロールの信頼性を向上することができる。換言すると、選択されていない項目のサイズを縮小することによって、離散的に選択又は接触することができる、より多くの選択可能な項目をユーザにより表すことができる。
【0153】
以下により詳細に説明するように、選択された項目1106rは、予想又は予測ヒューリスティクスを用いて現在選択された項目と以前に選択された項目に基づいて動的に決定される予想項目1109と、既に選択された項目1106fともに、ユーザインタフェース1101の出力領域1107で出力することができる。
【0154】
高度なコントロールは、アルファベットからの選択文字など、項目群から項目を画面上で選択することができる。ユーザの描写は、ガイドラインに沿って配列された、又は、描写に対して動的に位置決めされた選択可能な項目に、従来通り、及び信頼性をもってタッチすることができる。タッチることは、描写の一部がガイドラインに沿った項目の領域と交差する部分を決定することができる。描写の一部がタッチ領域に入ると、そのタッチ領域項目に近い項目がズーム表示、又は強調表示される。
【0155】
オブジェクト又はインタフェースの境界に対して二次元に画成されるガイドラインについて説明したが、ガイドラインは、3次元で画成してもよい。例えば、図18に示すように、ガイドライン1801は、同一のX−Y平面の中で画定された第1のガイドライン要素1802と、ユーザインタフェースのX−Y平面に対して直交して延在するように表現されたZ平面の中で画成された第2のガイドライン要素1804とを有することができる。他の平面又は軸を用いてもよい。
【0156】
3次元ガイドラインを用いることによって、コントロールと表示することができる項目の数は指数関数的に増加する。例えば、アバター1806の腕を左右に移動して、ガイドライン1801で項目「0」を選択した後、ユーザは両腕を空間の前後に移動して、選択する際に出力領域1809に表示される文字「^」1807など、他の項目を選択することができる。ガイドライン要素1802と1804の両方とも、アバター1806の腕の3次元の到達可能範囲に画成される。
【0157】
さらに、離散的な起点と終点を含むガイドラインについて説明したが、他の実施例では、ガイドラインは、起点と終点を有さない、又は起点と終点の外見を有さない、又は、起点と終点が同一であってもよい。図19のユーザインタフェース1900は、例えば、項目1902a〜1902gの選択のため、円形ガイドライン1901を含む。円形ガイドラインは、起点1905と終点1906を含むが、これらのポイントは同一であり、異なるポイントとしてガイドライン1901に強調表示又は可視化されていない。
【0158】
さらに、他のいくつかの代表的なコントロールとは異なり、項目1902a〜1902gは各々、アイコンによって表され、アプリケーションが呼び出す機能に対応する。例えば、アバター1904が地球儀のアイコン1902aを選択すると、マッピングアプリケーションが呼び出される。このように、本書で説明する高度なコントロールを使用することによって、キャラクタを選択することで、直感的で視覚的に楽しい手法でより複雑な機能の呼び出しを行うことができる。他のアイコンは、音量を上げる又は下げる機能、メール送信機能、無効コントロール機能、画像ビューワー機能などのメディア機能を含む、他の機能を表すことができる。
【0159】
図20〜24に、ガイドライン2002に沿って配列された項目群2001から個別の項目を選択する一例を図示する。図20では、マッピングされてアバターの手として表示されたカーソル2004が、関心項目2001rに向かって移動する。図21では、カーソル2004の位置が、ガイドライン2002と交差する。ガイドライン2002との交差によって、各項目とカーソル2004との間の距離に基づいて項目2001の部分群2101を選択又は識別する、さらなる検出処理を開始することができる。カーソル2004の位置は、カメラ画像によって検出された身体の周りの空間のユーザの点の位置に基づいて決定される。
【0160】
項目2001の部分群2101は、より大きなサイズ又はスケールのフォントで表示され、ユーザの選択をより容易にしている。項目2001の部分群2101の選択と、項目2001の部分群2101の表示の拡大は、カーソル2004がガイドライン2002と交差したことを検出したことに応じて行ってもよいし、又は、ガイドライン2002に対するカーソル2004の位置とは無関係に行ってもよい。基本位置2102でカーソル2004がガイドライン2001と交差したこと、又は、項目が選択されたことを検出すると、例えば、音、画像、及び/又は、振動などの触覚出力を含む、ユーザフィードバックが生成される。
【0161】
図22で、ユーザが関心項目2001rを選択する。部分群2101は強調表示され、ユーザが、関心項目2001rを含む通常エリアを選択し、そのエリアの中の項目を「ズームイン」し、文字「R」を表す関心項目2001rを信頼性をもって従来通りに選択することができる。選択は、マウス操作、キーボード、キーパッドを打つ、ジェスチャ認識、カメラをベースとした入力、又はその他の多くのアプローチを介して行うことができる。
【0162】
カーソル2004がガイドライン2001と交差した位置を表す基本位置2102の場所は、多くの方法で検出することができる。例えば、図23に示すように、基本位置2102の場所を、カーソル2004がガイドライン2001の上方に検出された後の時間に観察されたカーソル2004と最も近い、又は、項目2001rなどの強調表示された項目に最も近いガイドライン2001の位置として決定することができる。
【0163】
基本位置は、他のアプローチを用いて検出することができる。例えば、基本位置2102の場所を、カーソル2004がガイドライン2001を交差したことを検出した時、又は、ガイドライン2001と交差する前後の時間のカーソル2004の位置を用いて、検出することができる。図24は、例えば、ガイドライン2002と交差する前の時間に観察されたカーソル2004の位置を表す最終点2401と、ガイドライン2002と交差した後の時間に観察されたカーソル2004の位置を表す、最終点2402とを図示している。基本位置は、最終点2401、2402、ガイドライン2001によって画定される線分2404の交点として決定することができる。
【0164】
項目2001の部分群2101を強調表示することは、部分群2101を構成する項目のガイドライン2001に沿った位置を決定することを含む。いくつかの実施例では、基本位置2102に近接して位置する項目が、項目2001の部分群2101の部分として選択され、強調表示される(例えば、サイズを拡大して表示するなど)。このため、基本位置2102に近接する項目は、元の強調表示されていない位置、又はその近傍に残り、さらに基本位置2102から離れた項目は、項目2001の部分群2101のサイズ拡大に対応できるように外側方向に移動する。
【0165】
以下の式(1)は、部分群2101が強調表示された後に部分群2101の中にない項目の位置を決定するために用いることができる。
【0166】
【数1】
【0167】
式(1)において、Xiは、ガイドラインに沿った項目iの元の状態の位置を表し、Xi’は、ガイドラインに沿った項目iの拡大された状態での位置を表し、Xbは、ガイドラインに沿った基本位置を表し、Siは項目iの元の状態の基本サイズを表し、Si’は、項目iの拡大された状態のサイズを表す。
【0168】
図25は、項目の部分群が強調表示される前の第1の状態2501と、項目の部分群が強調表示された後の第2の状態2502とにおける、項目の部分群を示す。例えば、最初に、カーソル2505が、項目「S」の下で(基本位置2506が項目「S」と一致するように)ガイドライン2505を交差すると、項目「S」は、その元の位置の残り、項目「R」が、その元の位置に対して左の方向に距離2507だけ移動する。このようにして、第2の状態2502では、強調表示に続いて、縮尺を変更したサイズと位置で項目を表す。
【0169】
図26は、項目の部分群が強調表示される前の第1の状態2601と、項目の部分群が強調表示された後の第2の状態2602とにおける、項目の部分群を示す。例えば、最初に、カーソル2604が、項目「Q」の下で(基本位置2606が項目「Q」と一致するように)ガイドライン2605を交差すると、項目「Q」は、その元の位置の残り、項目「R」が、その元の位置に対して右の方向に距離2607だけ移動する。このようにして、第2の状態2602では、強調表示に続いて、縮尺を変更した項目を表す。したがって、特定の項目を選択するために用いるカーソル2604の位置は、カーソル2604が最初にガイドライン2605を交差した位置に依存することができる。
【0170】
図27は、項目の部分群の強調表示に対応した状態2701〜2704における項目の部分群を示す。具体的には、図27は、項目2710の第1から第3の部分群2706〜2708の選択と強調表示の概要を示す。第2及び第3の部分群2707、2708は、第1及び第2の部分群2706、2707に対して、カーソル2711の位置に応じて、位置決めすることができる。
【0171】
状態2701において、項目2710は、その元の、強調表示されていないサイズと位置を反映する。状態2702において、項目2710の第1の部分群2706が選択され、強調表示されている。状態2703において、項目2710の第2の部分群2707が選択され、強調表示されている。状態2704において、項目2710の第3の部分群2708が選択され、強調表示されている。
【0172】
状態2702において、最初に、カーソル2711が項目「S」の下で(基本位置が項目「S」と一致するように)、ガイドライン2712を交差すると、項目「S」はその元の位置に残り、周囲の文字がその元の位置から外側方向に移動する。カーソル2711が右に移動し、カーソル2711の距離の範囲内の項目2710の第2の部分群2707が選択されると、状態2702から状態2703に移行する。状態2703では、カーソル2711がガイドライン2712に沿って移動し、拡大された項目「T」と一致すると、項目「T」はその拡大された位置に残り、項目「V」が強調表示され、距離2715さらに、ガイドライン2712に沿って右方向に移動する。
【0173】
項目「W」〜項目「Z」などの特定の項目に対してガイドライン2712に十分な空間が存在しない場合、項目はガイドドライの端部から「押し出され」、表示されない。カーソル2711がさらに継続してガイドライン2712の右端部まで移動すると、状態2703から状態2704に移行し、第2の部分群2707の一部である追加項目を表示するために十分な空間が存在しなくなり、第3の部分群2708が(第2の部分群2707の部分群として)形成される。
【0174】
項目「U」などの第2の部分群2707の右部分の項目、又は、項目「W」〜「Z」などのガイドラインの「押し出された」た端部の項目を選択するため、ユーザは、ガイドライン2712をカーソル2711で再び交差し、ガイドライン2712を三回交差し、所望の項目により近い新しい基本位置を確立する。さらに、ガイドライン2712の右端部の項目を「押し出す」代わりに、ガイドラインの左端部の項目を「押し出し」、右端部の押し出されたであろう項目を表示する。いくつかの実施例では、項目を「押し出す」代わりに、ガイドラインで利用可能な空間に応じて、項目のサイズを縮小し、全ての項目をガイドラインに表示する。
【0175】
他の実施例では、項目は、ガイドラインの右端部の「押し出された」項目がガイドラインの左端部に再び出現する。連続した(例えば、円形)ガイドラインを用いた実施例では、項目はガイドラインの周りを押されて廻ることができる。このため、ユーザがカーソルを、連続したガイドラインの周りを時計方向に移動させることができる、円形ガイドラインの例では、項目の最新の部分群から除去された項目は、カーソルよりもより遅い角速度で時計方向に移動する(項目を追加する際に、項目が増大するためのスペースを設ける)ことができる。この例では、カーソルは、ガイドラインの周りを項目が一回転するごとに、ガイドラインの周りを複数回回転してもよい。
【0176】
スクローリングを行って、ガイドラインの端部で押し出されたであろう項目を容易に選択できるようにしてもよい。スクローリングは、カーソル2711が、ガイドライン2712の端部から所定の距離にあるか否かを検出することと、項目の位置に速度を適用することとを含む。基本位置(上記の式(1)を参照)に対する項目の位置を算出し、速度を基本位置に適用し、項目を移動させることができる。
【0177】
図28に、代表的な速度関数を示す。水平軸2801はガイドラインに沿った位置を表し、垂直軸2802は速度を表す。カーソル位置がガイドラインの端部の近傍にある場合は、この速度関数を用いて、速度を適用して、項目を移動又はシフトさせ、カーソル位置がガイドラインの中心にある場合は、(速度はゼロとなるので)項目を移動又はシフトさせない。
【0178】
図29に、ガイドラインに対するカーソル位置の距離(水平軸2902に反映)に基づいて項目の部分群の項目のサイズ(垂直軸2901に反映)を拡大又は縮小するために用いることができる代表的なスケーリング関数を示す。曲線2904で表すように、項目(Si’)のサイズは、カーソルの現在位置の関数であってもよい。カーソルがガイドラインを交差していない時の全ての項目、又は、強調表示されていない項目に対する基本サイズ(Si)は、ポイント2905を反映して決定することができ、線2906は、強調表示された項目に対応する最大サイズを規定する。
【0179】
代表的な一実施例では、曲線2904の傾きは、ポイント2905の近傍では略1:1であり、項目のサイズは、カーソルとの近接が減少するに従って、線形的及び比例して増大して表示される。カーソルが強調表示された項目に近づくにつれて、美的に楽しめる変遷を行うように、項目は、最大サイズに近づくと、増大しなくなる。
【0180】
図30及び図31に、特に、カーソル3001がガイドライン3002を交差する時に行われる、高度なコントロールによるスケーリング機能の使用例を示す。高さ3004は、カーソル3001の位置とガイドライン3002との距離を表し、高さ3005は、部分群3007の項目3006rなどの項目のサイズを表す。部分群3007の項目の高さ3005は、高さ3004に基づいて縮尺変更され、カーソル3001が少ない量だけガイドライン3002を交差した図30では、カーソル3001がより少ない量だけガイドライン3002を交差した図31よりも、項目がより大きく表示されるようにしている。カーソル3001の位置は、カメラをベースとした入力を基づいて決定することができる。
【0181】
図32及び図33は、項目の部分群が強調表示される代表的なガイドラインを示す。具体的には、図32は、項目3204の部分群3202が拡大表示されるガイドライン3201を示す。項目3204の部分群3202を選択することは、項目のサイズに基づいて部分群3202の中に含まれるように、所定の数の項目を選択すること、又は、複数の項目を動的に選択することを含むことができる。
【0182】
部分群3202を含む複数の項目は、部分群3202の項目がガイドライン3201の全長3207に延在するように、又は、ガイドライン3201の一部に延在するように、動的に選択することができる。図32に示すように、部分群3202から除かれた項目3205a、3205bも、ガイドライン3201に沿って表示してもよい。部分群3202の複数の項目は、部分群の中の項目のサイズに基づいても変化してもよい。例えば、部分群3007の幅を同一に保ちながら、部分群3007が5つの項目を表示してもよく(図30)、部分群3007が3つの項目を表示してもよい(図31)。
【0183】
部分群の項目を大きなサイズで表示することによって項目を強調表示することは、図32に示すように、強調表示される項目の全てを同一の大きなサイズで表示すること、又は、図25に示すように、カーソル位置に対してガイドラインに沿ったその位置に応じたサイズで部分群の中の個別の項目を表示することを含んでもよい。
【0184】
図33に、項目3304の部分群3302が項目のサイズを変更しながら表示される、代表的なガイドライン3301を示す。例えば、部分群3302の端部の項目3305pと3305t(文字「P」と「T」でそれぞれ表す)のサイズは、項目3305r(文字「R」で表す)などの、部分群3302の中央の1又は複数の項目よりも小さいサイズであってもよい。サイズを変更しながら部分群3302の項目を表示することは、外見を楽しく美的にして、高度なコントロールの使用をより直感的にすることができる。図33に示すように、部分群3302から除かれた項目3305aと3305bも、ガイドライン3301に沿って表示してもよい。
【0185】
部分群3202、3302の項目を大きなサイズで表示することは、項目を動かすことを含んでもよい。動かすことは、部分群の項目を拡大することと、短い時間期間にわたって項目の位置をガイドラインに沿って並進すること(例えば、項目をガイドラインに対して垂直に保つこと)を含んでもよい。部分群3202、3302から除かれた項目は、動いて、サイズを縮小し、ガイドラインに沿って外側方向に移動し、部分群3202、3302のための「スペース」を設ける。
【0186】
ガイドラインの端部から「押し出された」項目は、単純に消える、又は、生き生きと動いて、ガイドラインの端から消え去る、又は、燃焼、爆縮、蒸発、爆発、液化、爆砕、又はその他の技術など、視覚的に刺激となる、又は、ユーモアのある手法で破壊されてもよい。同様にガイドラインに設けた空間のために再び現れる、前に「押し出された」項目は、単純に再び現れる、又は、ユーザインタフェースの頂部から落ちてガイドラインに戻るるように生き生きと動く、又は、視覚的に刺激となる、又はユーモアのある手法で自然に生成されてもよい。
【0187】
ガイドラインが不連続な箇所では、項目は、生き生きと動いて、不連続部分を横断するようにしてもよい。項目は、生き生きと動いて、高速でギャップを横断移動する、又は、上述のいずれかの視覚的効果を用いて「押し出される」、及び「再び現れる」ようにしてもよい。同様に、ガイドラインの「押し出された」一方の端部が対向する端部で再び現れる項目を生き生きと動かして、ガイドラインの端部とポイントとの間で高速移動する、又は、上述の何れかの視覚的効果を用いて、生き生きと動かして「押し出されて」、「再び現れる」ようにしてもよい。
【0188】
図34に、ガイドラインに沿った項目の作動を示す。「作動」又は「強調表示」は、一般的に、選択する項目を決定することに関する。選択する項目を決定するシステムは、ヒステリシスを用いることができる。選択は、カーソルが最初にガイドラインを交差した時に最初に選択した項目を決定することを含むことができる。最初に選択した項目は、基本位置に対する距離が最も近い位置にある項目であってもよい。また、カーソルが項目の間に位置した時、二つの隣接する項目の間で不注意な揺らぎを削減するため、選択は、カーソルが隣接する項目の間の中点を所定の距離移動した都度、新たに選択された項目を決定することを含むことができる。
【0189】
例えば、二つの項目3402r、3402sのガイドライン3401に沿った位置が線3404r、3404sで示され、項目3402r、3402sの間の中点の位置が線3405で示され、距離3406が、所定の距離を表す。例えば、項目3402s(すなわち、文字「S」)が最初に選択した項目である場合、ユーザは、項目3402r(すなわち、文字「R」)に向かう方向の中点3405を所定の距離超えた、線3407の左のカーソルを移動して、項目3402rを選択する。項目3402rが続いて選択され、項目3402sが再び選択する場合、ユーザは、項目3402sに向かう方向に中点3405を所定の距離3406超えた線3409の右のカーソルを移動する。
【0190】
所定の距離は、無意識の身体の震えに起因するユーザの動きの影響、又は入力ユニットの限界を考慮した、ユーザが静止を保つように努めている間に、カーソルが変動又は振動し得る、所望の最大距離に基づいて規定することができる。項目は、カーソルの位置がガイドラインの下方にある場合、又は、特定のユーザインタフェース、又は、高度なコントロールにより占有されるユーザインタフェースの領域の中に、カーソルが見つからない、又は、存在しない場合は選択されない。項目の選択は、さらに、例えば、音、画像、及び/又は、振動などの触覚出力を含む、ユーザフィードバックを生成することができる。
【0191】
部分群の項目を表示することは、選択の状態について、その外見でユーザフィードバックを提供するなど、項目を表示することを含むことができる。例えば、選択された項目を固有の色で表示する、又は、燃え立つように見せるなど、視覚的効果をもって表示することができる。最新の選択された項目は、項目が、第1の所定の持続時間閾値よりも長く選択された状態にあると、作動又は強調表示される。項目は、カーソルが項目の上にある時間期間維持されると作動する。作動は、選択された項目が、第2の所定の持続時間閾値より長く、選択されたまま保たれていると、繰り返す、又は、無効となるようにしてもよい。
【0192】
さらに、項目は、カーソルの位置がある時間期間静止していると、作動又は強調表示されるようにすることができる。カーソルは、ガイドラインに平行な位置の成分の変化が、所定の時間閾値を超えて所定の距離を下回る場合に、静止していると区分できる。例えば、カーソルの位置に最も近い項目が、識別されて作動する。作動は、カーソルが第2の所定の持続時間閾値を上回る期間静止していると区分されていると、繰り返す、又は無効となるようにしてもよい。さらに、項目は、カーソルの位置と対応するガイドラインとの間の距離に基づいて作動してもよい。例えば、項目は、かかる距離が所定の距離の閾値を上回ると作動するようにしてもよい。
【0193】
他の例では、項目の作動は、項目が選択された後、別の種類のユーザ入力の結果、行われるようにしてもよい。例えば、ユーザが、別の種類のユーザ入力を行い、選択された項目を作動してもよい。これらの例では、選択された項目の作動は、ユーザが、ユーザ入力ボタン(例えば、コントローラの上)をタッチして、音声入力を行い(例えば、「作動」と発話する)、他の種類のジェスチャ(例えば、項目の選択に用いる手をディスプレイの方向に動かす、又は、ユーザの他の手をディスプレイ画面の他の部分に動かして、選択された項目を作動する)、又は、他の種類のユーザ入力を行うようにしてもよい。
【0194】
図35〜38に、代表的な項目群を示す。図35において、英語アルファベットの文字を含む項目3501は、作動する、又は、選択されると、第2の項目群を開く、項目3502を含む。選択されると、第2の項目群は、項目3501、又は項目3501の一部とともに、ガイドライン3504に沿って現れる、あるいは、第2の項目群がガイドライン3504の上の項目3501を取って代わる。項目3502を表すために使われた記号から、ユーザは、直感的に第2の項目群が番号を含むことを判断できる。
【0195】
図36に、ガイドライン3602に配列された項目3601を示す。項目3601は、図35の項目3502が選択されると表示される。第2の項目群が選択されると、ガイドライン3602の下のカーソルは除去される、又は、項目3601を表示するユーザインタフェースからカーソルは除去されて、項目3501は再び選択される、又は再び作動することができる。項目3601は、作動すると、項目3501を再び開く、再び作動する、又は再び選択する、項目3604を含む。項目3604を表すために用いた記号から、ユーザは項目3501が英語アルファベットからの文字を含むことを直感的に判断できる。
【0196】
図37に、ガイドライン3701に配列された項目3701を示す。項目は各々、標準的な電話のキーパッドのキーと関連付けて公知である、標準的な数字と文字の組み合わせを表している。図38に、項目3801の項目3702が選択された時(図37を参照)に表示される、項目3801を示す。項目3801は、標準的な電話のキーパッドのキー番号「7」に関連付けられた番号「7」と文字の組み合わせを含む。
【0197】
図35〜38に示された項目を用いて、順に文字を入力し、テキストフィールドに言葉を形成するなどする、カメラをベースとしたテキスト入力機構を提供することができる。番号、文字、テキスト、記号、又は所定のテキストを作動して、番号、文字、テキスト、記号、又は所定のテキストを、既に入力されている文字列に付加することができる。あるいは、項目(図35の項目3501からの項目など)の作動は、さらなる項目群を表示し、さらなる項目群の項目の作動は、作動した文字を文字列に付加することができる。項目の一つは、項目の列から最新の項目を除去することを容易とする、バックスペース項目でもよい。
【0198】
カメラをベースといたテキスト入力機構は、文字を組み合わせて複合文字を形成するこを含むことができる。日本語テキスト入力のテキスト入力機構は、(日本語パーソナルコンピュータキーボードのユーザには公知の方法で)カナ文字を組み合わせて漢字文字を形成することを含む。第1の項目群は、カナを表す項目を含むことができる。カナ項目が作動すると、対応するカナ文字が文字列に付加される。項目群は、作動すると、最新のカナ文字の列を漢字に変換する処理を作動する動作を表す項目を含むことができる。最新のカナ文字の列を漢字に変換する処理は、第2の候補漢字の項目群を表示することを含むことができる。漢字項目を作動すると、最新のカナ文字の列を作動した漢字で置換する処理を作動する。このカメラをベースとしたテキスト入力方法は、他の言語に拡張することができる。
【0199】
代替の日本語テキスト入力の方法は、カナを表す第1の項目群を表示することを含むことができる。カナ項目が作動すると、第2の項目群が表示される。第2の項目群は、作動したカナがその一部を形成する漢字を含むことができる。この群は、上述の第2の群よりも大きくてもよい。このテキスト入力方法は他の言語に拡張することができる。
【0200】
テキスト入力機構は、項目群に確認項目を含むことができる。作動すると、確認項目は、処理を作動して、文字列がアプリケーションに提供される。さらに、テキスト入力機構は、予測テキスト完了処理を含むことができる。予測テキスト完了処理は、辞書をサーチして、上記文字列の文字を含む最も確率の高いテキストを検索する。最も確率の高いテキストを、出力フィールドに表示することができる。予測テキスト完了処理で使用される辞書は、テキスト入力機構で使用したコンテクストに基づいて選択することができる。例えば、辞書は、テキスト入力機構を用いて名称を入力する際の名称を含んでもよい。
【0201】
アプリケーション処理は、アプリケーションの状態に応じて、ユーザインタフェースの項目を決定することができる。項目を作動することは、メッセージをアプリケーション処理に提供することを含む。アプリケーション処理は、メッセージに基づいてコントロールすることができる。
【0202】
図39に、カメラをベースとした入力と代表的な高度なコントロールを含む、代表的なユーザインタフェース3900を示す。ユーザが、ユーザインタフェース3900の様々なテキスト入力フィールドにアクセスすると、テキスト入力フィールドがオブジェクトとして使用されて、ガイドラインが画成し、テキスト入力フィールド自体を遮蔽することなく、テキスト入力フィールドに適当な項目がガイドラインに配列されて表示される。ユーザはガイドラインに配列された項目を選択して、対応するテキスト入力フィールドを満たす。ユーザインタフェース3900は、複数の視覚的な高度なコントロールを同時に示しているが、このような同時の表示は、単に例示であり、可能なコントロールの位置、構成、配列、及び項目の種類を示すものである。他のインタフェースでは、例えば、一度に一つの高度なコントロールを表示してもよい。
【0203】
例えば、ユーザがテキスト入力フィールド3901に、そのフィールドへタブ操作を行い、マウスカーソルによってそのフィールドを選択する、又は、適当なジェスチャを行って、アクセスすると、テキスト入力フィールド3901に対してガイドライン3902が画成され、テキスト入力フィールド3901を遮蔽ないように、項目3904がガイドライン3902に配列されて表示される。テキスト入力フィールド3901は、テキスト又は文字データを受け付けるので、高度なコントロールは、自動的にアルファベット文字の項目3904がオブジェクトの種別に適当であると判断する。ユーザが項目3904から項目を選択すると、テキスト入力フィールド3901は、選択された項目で満たされる。ガイドライン3902か項目を選択する代わりに、ユーザは、また、様々なフィールドに項目を満たすために、アバター3906の周りに画成された高度なコントロール3905を用いることができる。
【0204】
ユーザがジェスチャで表現して、ユーザインタフェース3900の中の他のフィールドへタブ操作又はアクセスすると、他の高度なコントロールが動的に画成され、選択のための項目を出力する。例えば、ソーシャルセキュリティ番号フィールド3907にアクセスすると、数字の項目3909がフィールド3907の上方に表示され、性別フィールド3910にアクセスすると、性別の項目3911が動的にフィールド3910の上方に出力され、市民権フィールド3912にアクセスすると、国別項目3913が、フィールド3912の上方又は下方の二つのガイドライン3914、3915にそれぞれ表示され、結婚歴フィールド3917にアクセスすると、結婚歴表示項目3919が、フィールド3917の右側のガイドライン3910に表示されて、ガイドライン3910は、空間的な制約、ユーザの好み、又は、その他の理由のために右側に動的に画成され、所在地住所フィールド3920にアクセスすると、ガイドライン3924に沿って、数字をアルファベット文字で置換する、数字とアルファベット記号3922を含む項目3921が、フィールド3920の上方のガイドライン3924に表示され、状態フィールド3925にアクセスすると、状態の名称を含む項目3926が、フィールド3925の上方に画成された二つのガイドライン2927、2929に表示される。
【0205】
高度なカメラをベースとした入力について、特定の種類のコントロールを用いて説明したが、他の種類のコントロールも使用可能である。例えば、図40に示すように、カメラをベースとした入力は、(上述のように)ガイドライン要素4002、及び仮想ボタン要素4004を含むコントロール4001と相互連動して使用することができる。コントロール4005は、アバター4007の両側に配列された複数のボタン4006a〜4006hを含む。コントロール4008は、ユーザの描写(この場合、手4010)による相互連動要素(相互連動要素4009など)の選択が、相互連動要素をさらに、相互連動要素によって表される文字又はその他の項目を表示させる、ジェスチャホイールコントロールである。
【0206】
さらに、コントロール4012は、ユーザインタフェースに設けられた仮想キー4014を含む、QWERTYキーボード構成の仮想キーボードである。コントロール4012は、ユーザインタフェースに現れるユーザの描写を必要としない。例えば、ユーザの描写として手又はアバターを示す代わりに、空間のユーザのコントロールオブジェクトが、仮想キーに対応する検出領域の中の位置を占有すると、仮想キー4014の各々が発光するようにしてもよい。コントロール4015は、描写4019を用いて相互連動することができる、アイコン4016a〜4016cと機能要素4017を含む、標準ウインドウアプリケーションデスクトップである。
【0207】
コントロール4020は、各々が左スクロール機能、右スクロール機能、呼び出し機能を表す、相互連動要素4022a〜4022cで囲まれた、ユーザの描写4021を含む。ユーザの描写4021はユーザのカメラ画像であってもよい。カメラをベースとした入力を用いて、ユーザの描写4021は、相互連動要素4022a〜4022cと関連した機能を呼び出す。この例では、スクロール機能は、ユーザインタフェースの底部に表示されたアプリケーションバーからユーザがアプリケーション4024を選択し、選択したアプリケーションを呼び出すことができる。図示の例では、描写4021は、フォトビューアアプリケーション4024dを選択して呼び出している。
【0208】
図41は、さらにプロセッサとユーザインタフェースを含むコンピュータ装置4101の一例の外観図である。プロセッサは、シーンの内部のユーザの画像の中に、ユーザを囲む検出領域を画成し、検出領域の中のオブジェクトの位置を検出するように構成、設計されている、又は、動作可能である。プロセッサはまた、検出されたオブジェクトの位置に基づいて、ユーザインタフェースのコントロールと相互連動するように構成されている。
【0209】
より詳細には、コンピュータ装置4101のハードウェア環境は、ユーザとのインタフェースとなるテキスト又は画像を表示するディスプレイモニタ4108と、テキストデータ及びユーザコマンドをコンピュータ装置4101に入力するキーボード4109と、ディスプレイモニタ4108に表示されたオブジェクトを指定、選択、及び操作するためのマウス4110と、固定ディスクドライブ4111と、脱着可能なディスクドライブ4112と、テープドライブ4114と、ハードコピー出力デバイスと、コンピュータネットワーク接続部と、デジタル入力デバイス4117と、を含む。
【0210】
ディスプレイモニタ4108は、コンピュータ装置4101によって使用されるソフトウェアアプリケーション、及び、コンピュータ装置4101を動作するために必要なオペレーティングシステムのための、ユーザインタフェースを含む、グラフィック、画像、及びテキストを表示する。ユーザは、キーボード4109を使用してコマンド及びデータを入力し、コンピュータオペレーティングシステムプログラム、及びアプリケーションプログラムを動作及び制御する。マウス4110は、ジョイスティック、トラックボール、タッチパッド、又はその他のポインティングデバイスなど、任意のポインティングデバイスであってもよい。ユーザインタフェースを表示して、ユーザがテキスト、数字を入力又は選択する、又は、オプションのメニューから選択を行うことを可能とする、ソフトウェアは、固定ディスクドライブ4111などのコンピュータが読み取り可能な記憶媒体にローカルに保存されている。
【0211】
さらなる実施例では、固定ディスクドライブ4111自体は、RAID(redundant array of independent disks)などの複数の物理ドライブユニットを含んでもよく、又、ディスクドライブファーム(disk drive farm)、又は、独立したコンピューティングユニットに物理的に配置されたディスクアレイであってもよい。上述のコンピュータが読み取り可能な記憶媒体は、コンピュータ装置4101が、脱着可能な記憶媒体、又は、固定型の記憶媒体に記憶された、コンピュータが実行可能な処理ステップ、アプリケーションプログラムなどにアクセスをすることを可能とする。
【0212】
コンピュータネットワーク接続は、モデム接続、イーサネット(登録商標)を含む、ローカルエリアネットワーク(「LAN」)接続、デジタル加入者回線(「DSL」)などのブロードバンドワイドエリアネットワーク(「WAN」)接続、ケーブル高速インターネット接続、ダイアルアップ接続、T1回線接続、T3回線接続、光ファイバー回線接続、衛星回線接続を含むことができる。ネットワーク4106は、LANネットワーク、企業又は政府WANネットワーク、インターネット、又はその他のネットワークを含むことができる。
【0213】
コンピュータネットワーク接続は、有線又は無線コネクタでもよい。代表的な無線コネクタは、Infrared Data ASSOCIATION(登録商標)(「IrDA」(登録商標))、光無線コネクタ、INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS(登録商標)(「IEEE(登録商標)」)、Standard802.11無線コネクタ、BLUETOOTH(登録商標)無線コネクタ、近距離通信(“NFC”:near field communication)コネクタ、直交周波数分割多重(“OFDM”:orthogonal frequency division multiplexing)超広域帯(“UWB”:ultra wide band)無線コネクタ、時間変調超広域帯(“TM−UWB”:time−modulated ultra wide band)無線コネクタ、またはその他の無線コネクタが含まれる。有線コネクタの例には、たとえば、IEEE(登録商標)−1394 FIREWIRE(登録商標)コネクタ、ユニバーサルシリアルバス(“USB”:Universal Serial Bus)コネクタ、シリアルポートコネクタ、パラレルポートコネクタ、またはその他の有線コネクタが含まれる。
【0214】
脱着可能なディスクドライブ4112は、コンピュータ装置4101からデータをダウンロードしたり、コンピュータ装置4101にデータをアップロードしたりするために使用される脱着可能なストレージデバイスである。脱着可能なディスクドライブ4112は、フロッピー(登録商標)ディスクドライブ、IOMEGA(登録商標)ZIP(登録商標)ドライブ、“CD−ROM”(compact disk−read only memory)ドライブ、“CD−R”(CD−Recordable)ドライブ、“CD−RW”(CD−Rewritable)ドライブ、フラッシュメモリ、USBフラッシュドライブ、サムドライブ(thumb drive)、ペンドライブ、キードライブ、“HD−DVD”(High−Density Digital Versatile Disc)光ディスクドライブ、Blu−Ray光ディスクドライブ、ホログラフィックデジタルデータストレージ“HDDS”(Holographic Digital Data Storage)光ディスクドライブ、あるいは、“DVD−R”または“DVD+R”(DVD−Recordable)、“DVD−RW”または“DVD+RW”(DVD−Rewritable)、またはDVD−RAMなどの書き込み可能または書き換え可能なさまざまなデジタル多用途ディスク(“DVD”:digital versatile disc)ドライブのいずれでもよい。ディスクに格納されるオペレーティングシステムプログラム、アプリケーション、およびさまざまなデータファイルは、固定ディスクドライブ4111、または脱着可能なディスクドライブ4112の脱着可能な媒体に格納される。
【0215】
テープドライブ4114は、コンピュータ装置4101からデータをダウンロードしたり、コンピュータ装置4101にデータをアップロードしたりするために使用されるテープストレージデバイスである。テープドライブ4114は、1/4インチカートリッジ(“QIC”)、4mmデジタルオーディオテープ(“DAT”)、8mm “DLT”(digital linear tape)ドライブ、または他のタイプのテープのいずれでもよい。
【0216】
さらに、コンピュータ装置4101はデスクトップPCとして示されているが、他の実装ではコンピュータ装置4101はラップトップ、ワークステーション、ミッドレンジコンピュータ、メインフレーム、埋め込みシステム、電話、ハンドヘルドまたはタブレットコンピュータ、PDA、ゲーム機又はコンソール、デジタルピクチャフレーム、電話会議装置、又は他のタイプのコンピュータのいずれでもよい。
【0217】
図42は、図41に示す1台のコンピュータの内部アーキテクチャを示すブロック図である。コンピュータ装置4101の代表的な内部アーキテクチャについて説明する。コンピューティング環境には、オペレーティングシステムまたはアプリケーションを含むコンピュータ命令が処理されるコンピュータの中央処理装置(“CPU”)4201、グラフィックス、イメージ、およびテキストをディスプレイモニタ4108上にレンダリングするための通信インタフェースと処理機能を提供するディスプレイインタフェース4202、キーボード4109への通信インタフェースを提供するキーボードインタフェース4204、マウス4110または同等のポインティングデバイスへの通信インタフェースを提供するポインティングデバイスインタフェース4205、デジタル入力デバイス4117への通信インタフェースを提供するデジタル入力インタフェース4206、ハードコピー出力デバイスへの通信インタフェースを提供するハードコピー出力デバイスインタフェース、コンピュータCPU 4201で処理されるコンピュータ命令とデータが揮発性のメモリデバイスに格納されるランダムアクセスメモリ(“RAM”)4210、基本的な入力および出力(“I/O”)、起動、またはキーボード4109からのキーストロークの受信などの基本的なシステム機能を実現する不変の低レベルのシステムコードまたはデータが不揮発性のメモリデバイスに格納される読み取り専用メモリ(“ROM”)4211、オペレーティングシステム4221、アプリケーションプログラム4222(高度なカメラをベースとした入力アプリケーション4223、および必要に応じてその他のアプリケーション4225を含む)、およびデータファイル4226が格納されるストレージ4220、またはその他の適切なタイプのメモリ(たとえば、ランダムアクセスメモリ(“RAM”)、読み取り専用メモリ(“ROM”)、プログラム可能ROM(“PROM”)、消去可能PROM(“EPROM”)、電気的消去可能PROM(“EEPROM”)、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク、ハードディスク、脱着可能なカートリッジ、フラッシュドライブなど)、およびコンピュータネットワーク接続を経由してネットワークへの通信インタフェースを提供するコンピュータネットワークインタフェースが含まれる。構成要素となるデバイスとコンピュータCPU 4201は、コンピュータバス4227を経由して相互に通信する。
【0218】
他の一般的な実施例では、コンピュータ可読媒体は、コンピュータプログラム製品で符号化されている。コンピュータプログラム製品には、実行された場合に、コンピュータに、シーンの中のユーザの画面に、ユーザを囲む検出領域を画成し、この検出領域の中でオブジェクトの位置を検出するように動作させる命令が含まれている。コンピュータプログラム製品には、また、マシンで読み込まれた場合に、データ処理装置に、検出されたオブジェクトの位置に基づいてユーザインタフェースのコントロールと相互連動するように動作させる命令が含まれている。
【0219】
RAM 4210は、コンピュータバス4227とインタフェースすることによって、ソフトウェアプログラム(オペレーティングシステムアプリケーションプログラム、およびデバイスドライバなど)の実行中にRAMストレージをコンピュータCPU 4201に迅速に提供する。より具体的に言えば、コンピュータCPU 4201はソフトウェアプログラムを実行するために、コンピュータ実行可能処理ステップを固定ディスクドライブ4111またはその他の媒体からRAM 4210のフィールドにロードする。データはRAM 4210に格納され、データは実行中にコンピュータCPU 4201からアクセスされる。
【0220】
コンピュータ装置4101には、オペレーティングシステム4221、およびアプリケーションプログラム4222(ワードプロセッサ、スプレッドシート、プレゼンテーション、ゲーム、またはその他のアプリケーション)のコンピュータ実行可能コードが格納される。前述の実施例を使用してカメラをベースとした入力を提供できるが、本開示による機能をダイナミックリンクライブラリ(“DLL”)として、または他のアプリケーションプログラム(たとえば、MICROSOFT(登録商標) INTERNET EXPLORER(登録商標)WebブラウザなどのインターネットWebブラウザ)への他のアプリケーションプラグインとして実装することもできる。
【0221】
コンピュータCPU 4201は、多くの高パフォーマンスコンピュータプロセッサ(INTEL(登録商標)またはAMD(登録商標)プロセッサ、POWERPC(登録商標)プロセッサ、MIPS(登録商標)“RISC”(reduced instruction set computer)プロセッサ、SPARC(登録商標)プロセッサ、ACORN RISC Machine(“ARM(登録商標)”)アーキテクチャプロセッサ、HP ALPHASERVER(登録商標)プロセッサ、またはメインフレーム専用のコンピュータプロセッサを含む)の1つである。その他の編成において、コンピュータCPU 3301は、高パフォーマンスワークステーションおよびサーバーに見られる複数CPU 構成、またはメインフレームに見られる複数の拡張可能プロセシングユニットを含む複数のプロセッシングユニットである。
【0222】
オペレーティングシステム4221は、MICROSOFT(登録商標) WINDOWS(登録商標)(登録商標) NT/WINDOWS(登録商標)(登録商標) 2000/WINDOWS(登録商標)(登録商標) XP Workstation、WINDOWS(登録商標)(登録商標) NT/WINDOWS(登録商標)(登録商標) 2000/WINDOWS(登録商標)(登録商標) XP Server、さまざまなUNIX(登録商標)系の(−flavored)オペレーティングシステム(IBM(登録商標)ワークステーション及びサーバ向けのAIX(登録商標)を含む)、SUN(登録商標)ワークステーションおよびサーバー向けのSUNOS(登録商標)、INTEL(登録商標) CPUベースのワークステーションおよびサーバー向けのLINUX(登録商標)、HP(登録商標)ワークステーションおよびサーバー向けのHP UX WORKLOAD MANAGER(登録商標)、SGI(登録商標)ワークステーションおよびサーバー向けのIRIX(登録商標)、Digital Equipment Corporationコンピュータ向けのVAX/VMS、HP ALPHASERVER(登録商標)ベースのコンピュータ向けのOPENVMS(登録商標)、INTEL(登録商標)およびPOWERPC(登録商標)ベースのワークステーションおよびサーバー向けのMAC OS X(登録商標)、SYMBIAN OS(登録商標)、MOBILEまたはWINDOWS(登録商標) CE(登録商標)、PALM(登録商標)、NOKIA(登録商標) OS(“NOS”)、OSE(登録商標)、あるいはモバイルデバイス用EPOC(登録商標)、またはコンピュータまたは埋め込みシステム専用のオペレーティングシステムのいずれでもよい。オペレーティングシステム4221用のアプリケーション開発プラットフォームまたはフレームワークは、BINARY RUNTIME ENVIRONMENT FOR WIRELESS(登録商標)(“BREW”)、Java(登録商標) Platform, Micro Edition (“Java(登録商標) ME”)またはJava(登録商標) 2 Platform, Micro Edition (“J2ME(登録商標)”)、PYTHONTM、FL
ASH LITE(登録商標)、またはMICROSOFT(登録商標) .NET Compactのいずれでもよい。
【0223】
図41及び図42は、ユーザが直感的かつ容易にテキスト、数字を入力し、複数の項目から選択を行うことができる、高度なコントロールを提供するように構成された、プログラムコード、プログラム又は処理ステップを実行するコンピュータ装置として考えられる一つの実施例を示す。他の種類のコンピュータを使用することもできる。
【0224】
複数の実施例について説明した。しかしながら、本開示の趣旨と範囲から逸脱しない限りおいて様々な変形が相当可能である。したがって、他の実施例は、特許請求の範囲の範囲に含まれる。
【符号の説明】
【0225】
100 シーン
101 ユーザ
104 セットトップボックス
105 テレビ
106 カメラ
110 画像
111 検出領域
111a 部分検出領域
111b 部分検出領域
111c 部分検出領域
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42