(57)【要約】【課題】本発明は、カメラをベースとした人間とコンピュータとのインタフェースを提供する。【解決手段】ユーザを囲む検出領域を、シーンの内部でユーザの画像の中に画成し、検出領域の中でオブジェクト（手など）の位置を検出する、高度なカメラをベースとした入力。さらに、ユーザインタフェースのコントロール（仮想キーボードのキーなど）は、オブジェクトの検出された位置に基づいて相互連動する。【選択図】図１
2014149856.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータプログラムを符号化したコンピュータ可読媒体であって、
前記コンピュータプログラムは、実行されると、コンピュータに、
シーンの内部のユーザの画像を生成するステップと、
前記画像の中にユーザを囲む検出領域を画成するステップと、
前記検出領域の中のユーザの手の位置を検出するステップと、
検出された前記手の位置に基づいて、ユーザインタフェースの中のコントロールと相互連動するステップと、を含む動作を実行させる命令を備え、
前記画像の中にユーザを囲む検出領域を画成するステップは、
ユーザの胴体の位置と腕の到達範囲を決定するステップと、
前記胴体と、前記腕によって到達不能な画像の領域の少なくとも一部と、を除外して、前記検出領域を画成するステップと、
第２のユーザが検出された前記検出領域の一部を決定するステップと、
前記第２のユーザが検出された前記検出領域の一部を除外して、前記検出領域を画成するステップとを含み、
前記コントロールは、前記ユーザインタフェースの前記ユーザのアバターの描写に対して画定されたガイドラインに配列された項目を含む、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、コンピュータ入力部に関し、一つの個別の実施例によると、カメラをベースとした人間とコンピュータとのインタフェースに関する。
【背景技術】
【０００２】
［対応出願のクロスリファレンス］
本出願は、２００７年７月２７日出願の米国仮特許出願第６０／９５２，４４８号を基礎とする、２００８年５月２１日出願の米国特許出願第１２／１２４，３７５号、及び２００８年４月１４日出願の米国特許出願第１２／１０２，５８７号の優先権を主張する。これらの出願に開示された内容は、参照により本明細書に組み込まれる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ユーザインタフェースの分野では、コントロール（又はウィジェット）が、コンピュータユーザが相互連動する、ウインドウ又はテキストボックスなどのインタフェース要素である。いくつかのケースでは、コントロール（仮想ボタンなど）が、そのコントロールの物理的なカウンターパートに対して同様の機能と外見を有することがある。ユーザは通常、コンピュータマウス又はキーボードを使用してコントロールと相互連動する。
【課題を解決するための手段】
【０００４】
一般的な実施例によると、本書に記載の高度なコントロールは、アルファベットから構成される文字のグループからの文字の選択、複数の機能からの機能の選択など、項目のグループからの項目の選択を容易にするために使用することができる。ガイドラインに沿ってこれらの項目を方向付け、配列することによって、ガイドラインは、オブジェクトの一部と重なる、遮断する、又は遮蔽することなく表示することができ、さらに、ガイドラインをユーザインタフェースの中に表示して、ユーザによる項目の直感的な選択を可能にできる。
【０００５】
設定された時間間隔にわたりカーソルを項目の上を浮かせる、又は、カーソルを項目の上に配置する、又はその他のアプローチを行っている間に、マウスボタン又はキーボードキーなどの物理的なコントロールを選択することによって選択を行うことができる。項目の選択又は見込み選択は、項目を、その外見を変化させる（すなわち、「作動する」又は「強調表示される」）、項目をガイドラインに沿った他の項目と区別し、選択の誤りを削減することができる。ガイドラインを画成又は位置決めする基準となるオブジェクトが、それ自体、項目と相互連動して、入力デバイスの動き、又は他のユーザ入力を、ガイドラインに沿って配列された項目によって囲まれたアバターの腕の動きにマッピングするなど、することもできる。
【０００６】
一つの一般的な実施例によると、コンピュータにより実施される処理は、ユーザインタフェースの中でオブジェクトに対してガイドラインを画成するステップと、前記オブジェクトを遮蔽することなく、前記ガイドラインに配列された項目を表示するステップとを含む。この処理はまた、前記表示された項目の一つの選択を受けて、選択された項目を出力するステップも含む。
【０００７】
実施例は、１以上の次の特徴を含んでもよい。例えば、選択は、カーソルによるユーザ選択であってもよい。ユーザインタフェースのオブジェクトの位置を決定することができ、ここで、ガイドラインは、所定の位置の少なくとも一部を囲むように動的に画成してもよい。ユーザインタフェースの２番目のオブジェクトを検出することができ、ここで、ガイドラインは、２番目のオブジェクトに対向する、オブジェクトの側部に動的に画成することができる。所定の位置の変化を決定することができ、ここで、ガイドラインは、所定の変化に基づいて、オブジェクトに対して再画成してもよい。
【０００８】
さらなる例では、ガイドラインは、直線、円形、曲線、多角形、又はジグザグ形状のガイドラインであってもよく、各々の項目が、アルファベット文字、記号、設定、又は名称を含んでもよい。選択された項目を出力するステップが、選択された項目の色、不透明度、又はサイズを変更するなど、選択された項目を強調表示することを含んでもよい。選択された項目の色、不透明度、又はサイズを変更することが、選択された項目の色、不透明度、又はサイズを第１の度合いに変更することと、選択された項目に隣接する項目の色、不透明度、又はサイズを第２の度合いに変更することを含んでもよい。項目を表示することが、ガイドラインに沿って項目を均等に分散することを含んでもよい。オブジェクトがユーザインタフェースのスペースでもよく、アバターでもよい。ガイドラインの起点と終点が、水平又は垂直に配列されてもよい。
【０００９】
さらなる例では、ガイドラインを画成することが、アバターのコントロール部分の動きの範囲を決定することと、コントロール部分の動きの範囲の中で、ガイドラインを画成することとを含んでもよい。ガイドラインは、コントロール部分の動きの範囲の外縁に沿って画成されてもよい。アバターの第１の潜在的なコントロール部分又は第２の潜在的なコントロール部分をコントロール部分として指定してもよく、指定されたコントロール部分を生き生きと動かし、コントロール部分の指定を第１の潜在的なコントロール部分から第２の潜在的なコントロール部分に切り替える、又は、第２の潜在的なコントロール部分から第１の潜在的なコントロール部分に切り替えてもよい。
【００１０】
さらなる一般的な実施例によると、コンピュータプログラム製品が、マシンによる可読媒体に有形に具体化される。コンピュータプログラム製品は、マシンによって読み取られると、データ処理装置に、ユーザインタフェースの中でオブジェクトに対してガイドラインを画成するステップと、オブジェクトを遮蔽することなく、ガイドラインに配列された項目を表示するステップと、表示された項目の一つの選択を受けて、選択された項目を出力するステップと、を実行させる。
【００１１】
さらなる一般的な実施例によると、装置は、プロセッサとユーザインタフェースを含む。プロセッサは、ユーザインタフェースの中でオブジェクトに対してガイドラインを画成する。ユーザインタフェースは、オブジェクトを遮蔽することなく、ガイドラインに配列された項目を表示し、表示された項目の一つの選択を受けて、選択された項目を出力する。
【００１２】
他の一般的な実施例では、ユーザはジェスチャ、例えば、手を振る、又は、意図的に自身の身体を囲む空間で片方の腕又は両腕を位置決めするなどして、表現することができる。カメラがユーザの画像を撮影し、ユーザの位置は、画像から決定する。この位置を用いて、検出領域をユーザの周りに画成する。ユーザが入力ジェスチャを実行することを意図した場合、ユーザの手又は腕の場所に画成してもよい。この画成された検出領域を検査してユーザの手又は腕を検出し、検出されたコントロールオブジェクトの位置又は動きをコンピュータアプリケーションの入力にマッピングする。
【００１３】
一例では、ユーザの身体の可能性及び制限を規定した解剖学的モデルに基づいて、検出領域をユーザの頭部の上方からユーザの胴体の側部まで延在する画像のエリアに画成する。検出されたコントロールオブジェクトの位置又は動きは、カーソル、アバター、描写（ｒｅｐｒｅｅｓｎｔａｔｉｏｎ）、マウスイベント又はその他の要素にマッピングして、インタフェースの上のコントロール（スクロールバー、ボタン、仮想キーボード、ドロップダウンメニュー又はその他のウィジェットなど）と相互連動するようにしてもよい。
【００１４】
他の一般的な実施例によると、ユーザを囲む検出領域は、シーンの内部のユーザの画像の中に画成し、検出領域の中のオブジェクト（手など）の位置を検出する。さらに、ユーザインタフェースのコントロール（仮想キーボードのキーなど）は、検出されたオブジェクトの位置に基づいて相互連動する。コントロールを相互連動することは、文字を選択することを含んでもよい。
【００１５】
実施例は、１以上の以下の特徴を含んでもよい。例えば、ユーザの連動ジェスチャを検出することができる。オブジェクトの位置は、連動ジェスチャの検出に基づいて検出することができる。ユーザインタフェースは、ユーザの描写を含んでもよい。コントロールはさらに、描写に対して画成されたガイドラインに配列された項目を含み、項目は、描写を遮蔽することなく表示されるようにしてもよい。ユーザの描写は、さらにアバター又はカーソルを含んでもよい。アバターは、検出されたオブジェクトの位置に基づいて、ユーザの動きを模倣して、生き生きと動くようにしてもよい。コントロールは、描写の上方又は側方のユーザインタフェースに表示してもよい。
【００１６】
さらなる例では、検出領域を検出するステップはさらに、ユーザの胴体又は頭部の位置を決定するステップと、決定された胴体又は頭部の位置に基づいて、胴体を除外して、検出領域を画成するステップと、をさらに含むことができる。ユーザの胴体の位置は、画像分割を用いて決定することができ、ユーザの頭部の位置は、顔検出を用いて決定することができる。あるいは、検出領域を画成するステップは、ユーザの腕の到達可能範囲を決定するステップと、決定された腕の到達可能範囲に基づいて、腕によって到達不能な画像の領域の少なくとも一部を除外して、検出領域を画成するステップと、を含むことができる。代わりに、検出領域を画成するステップは、決定された胴体の位置に基づいて、オブジェクトが到達することができない、画像の到達不能領域を決定するステップと、検出領域を、決定した画像の到達不能領域を除外して画成するステップと、を含んでもよい。ユーザの腕の到達範囲は、決定されたユーザの胴体、頭部、又は肩の位置に基づいて決定することができる。
【００１７】
さらなる例では、画像をトリミングして、ユーザインタフェースの内部に表示してもよい。ユーザの画像をセンタリングして、画像を、センタリングした画像に基づいて画像をトリミングしてもよい。コントロールを、センタリングした画像の内部でユーザが到達可能とする拡大係数を決定し、画像は、拡大係数に基づいてトリミングしてもよい。拡大係数は解剖学的なモデルを用いて決定してもよい。ユーザの顔を検出するステップと、検出されたユーザの顔に基づいてユーザを識別するステップと、ユーザの識別に基づいてコントロールを調整するステップと、をさらに含んでもよい。検出領域の内部の２番目のオブジェクトの位置を検出してもよく、ユーザインタフェースの２番目のコントロールは、検出された２番目のコントロールオブジェクトの位置に基づいて相互連動してもよく、あるいは、コントロールを、２番目のオブジェクトの位置に基づいて調整してもよい。
【００１８】
他の例では、カメラを用いて画像を撮像することができる。検出領域は、ユーザの両側に一つずつ存在する２つの線形の部分検出領域と連続するユーザの上方の円弧形状の部分検出領域として形成することができる。オブジェクトの位置は、検出領域の内部にマッピングされたガイドラインに対して検出することができる。分割された画像を、ユーザの描写として表示してもよい。
【００１９】
他の一般的な実施例によると、コンピュータ可読媒体にコンピュータプログラム製品を符号化される。コンピュータプログラム製品は、実行されると、コンピュータに、シーンの内部のユーザの画像を生成するステップと、ユーザを囲む検出領域を画成するステップと、検出領域の内部にオブジェクトの位置を検出するステップと、動作させるを含む。コンピュータプログラム製品はまた、マシンによって読み取られると、データ処理装置に、検出したオブジェクトの位置に基づいて、ユーザインタフェースのコントロールと相互連動する動作を実行させる。
【００２０】
さらなる一般的な実施例によると、装置はプロセッサを含む。プロセッサは、シーンの内部のユーザの画像の中にユーザを囲む検出領域を画成し、検出領域の内部のオブジェクトの位置を検出するように、構成又は設計されている、あるいは動作可能になっている。プロセッサは、また、検出されたオブジェクトの位置に基づいて、ユーザインタフェースのコントロールと相互連動するように構成されている。
【００２１】
この簡単な概要は、本書で説明する様々な概念及び実施例の迅速な理解を可能とするためのものである。以下の詳細な説明を添付の図面を参照してより詳細な理解を得ることができる。他の実施例を利用することも、変形を行うことも可能であることに留意されたい
【図面の簡単な説明】
【００２２】
【図１】高度なカメラをベースとした入力を図示する概念図である。
【図２】高度なカメラをベースとした入力を実施するために用いる装置のブロック図である。
【図３】高度なカメラをベースとした入力を用いた代表的な処理を示す図である。
【図４】ユーザの画像を撮像するために用いる代表的なシステムを示す図である。
【図５】図４のシステムを用いて撮像した、ユーザの代表的な画像を示す図である。
【図６】図５に示す画像の内部に画成された代表的な検出領域を示す図である。
【図７】より大きな画像をセンタリングして、トリミングすることによる、より小さな画像の生成を示す図である。
【図８】２つの候補ユーザを含むシーンにおいて、制御するユーザの周りに画成された検出領域を示す図である。
【図９】ジェスチャからコントロール入力への代表的なマッピングを示す図である。
【図１０】代表的な高度なコントロールを用いるユーザインタフェースの概念図である。
【図１１】オブジェクトと、ガイドラインをさらに含む代表的な高度なコントロールと、を含むユーザインタフェースを示す図である。
【図１２】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
【図１３】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
【図１４】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
【図１５】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
【図１６】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
【図１７】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
【図１８】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
【図１９】代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を示す図である。
【図２０】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図２１】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図２２】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図２３】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図２４】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図２５】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図２６】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図２７】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図２８】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図２９】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図３０】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図３１】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図３２】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図３３】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図３４】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図３５】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図３６】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図３７】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図３８】ガイドラインに沿って配列された項目の代表的な選択を示す図である。
【図３９】１以上の代表的なコントロールを含むユーザインタフェースを示す図である。
【図４０】カメラをベースとした入力を用いた他の代表的なコントロールを示す図である。
【図４１】コンピュータ装置の一例の外観図である。
【図４２】図４１に示すコンピュータの内部アーキテクチャを示すブロック図である。
【発明を実施するための形態】
【００２３】
一つの一般的な実施例によると、本明細書で説明する高度なコントロールは、例えば、文字のグループの中から文字を選択してアルファベットを組み立てる、又は、複数の機能から一つの機能を選択する、など、複数の項目のグループの中から一つの項目を選択することを容易にするために使用することができる。これらの項目をガイドラインに沿って方向付けをして配列することにより、対象の一部が重なり合ったり、妨げられたり、あるいは、見えにくくなることなく、ユーザインタフェースの中に表示することができ、ユーザが直感的に項目を選択できるようにする。
【００２４】
さらに、本明細書で説明する高度なアプローチを用いると、ユーザは、自らの身体を囲む空間で、片方の腕、又は両腕を振ったり、あるいは位置合わせをすることによってジェスチャで表現することができる。カメラがユーザの画像を撮像して、画像からユーザの位置を決定する。この位置を用いて、ユーザがコンピュータのアプリケーションにコマンドを入力する意図がある場合に、ユーザの手又は腕を見つける可能性のある、ユーザの周囲の検出領域を画定する。ユーザの手又は腕を、画定された領域を検査することによって検出し、検出されたこれらのコントロールオブジェクトの位置又は動きを、コオンピュー他のアプリケーションへの入力として用いる。
【００２５】
一例では、ユーザの身体の可能性及び制限を規定した又はモデル化した解剖学的モデルに基づいて、検出領域をユーザの頭部の上方からユーザの胴体の側部まで延在するエリアに画成する。検出されたコントロールオブジェクトの位置又は動きをカーソル、アバター、描写（ｒｅｐｒｅｅｓｎｔａｔｉｏｎ）、マウスイベント又はその他の要素にマップして、インタフェースの上のコントロール（スクロールバー、ボタン、仮想キーボード、ドロップダウンメニュー又はその他のウィジェットなど）とやりとりするようにしてもよい。
【００２６】
図１は、高度なカメラ−をベースとした入力部を説明する概念図である。シーン１００は、セットトップボックス１０４の前方のソファ１０２に座って、テレビ番組を視聴している、あるいは音楽を聴いているユーザ１０１を含む。セットトップボックス１０４は、テレビ１０５とカメラ１０６に接続している。セットトップボックス１０４とやりとりを行う一つのアプローチとして、ユーザは、自らの左手１０７を自らの頭部１０９の上方に伸ばすようにしてもよい。シーン１００の画像１１０は、カメラ１０６を用いて生成する。画像は、静止カメラによって撮影された一枚の画像でもよく、あるいは、ビデオカメラを用いて撮影された１以上の一連の画像であってもよい。
【００２７】
シーン１００の画像１１０の内部には、ユーザ１０１を囲む検出領域１１１が画成される。この例では、検出領域１１１は、ユーザ１０１の側部の各々の線形の部分検出領域１１１ｂ、１１１ｃと隣接する、ユーザ１０１の上方の円弧形状の部分検出領域１１１ａを含む。検出領域１１１は、コマンドを入力するジェスチャ以外の動きがほとんど生じることのない、画像１１０の一部を表している。
【００２８】
例えば、検出領域１１１は、ユーザの胴体又は頭部に関連する画像の領域を除外してもよい。これらの領域は、入力ジェスチャとは関係のない通常の身体の動きによって、程度の高い動きを行うためである。同様に、ユーザ１０１が無意識に動かす、又は、単に自らの位置を調整する際に、腕又は手が占めることもありうる胴体に近い領域を除外してもよい。さらに、ユーザ１０１が物理的に届くことのない画像の領域も検出領域１１１から除外してもよい。
【００２９】
このように、検出領域１１１が、その領域の内部のコントロールオブジェクトの検出が、コマンド入力を意図したユーザ１０１による身振りを示す可能性がより高い、画像の一部を占めるようにする。このため、検出領域１１１が、コントロールオブジェクトがその領域の内部に存在するか否かを判定する後の処理動作では、これらの処理動作が、検出領域１１１のみ、あるいは、画像全体より小さい領域ではあるが、検出領域１１１を含む領域で実行してもよい。
【００３０】
このため、検出領域１１１は、ユーザ１０１が身体部分の動きによって、自らがコマンド入力、合図又はジェスチャを実行していることを示すことができる、カメラ１０６の画角の内部に画定することができる。同様に、検出領域１１１は、コマンド入力を意図していないジェスチャと、コマンド入力を意図したジェスチャとの区別をつけることが困難になる動きがしばしば生じる、カメラ１０６の画角の一部を除外して画定することもできる。
【００３１】
このため、設定又は較正動作では、ピクセルマップが、画像のピクセルごとに、デバイスの動作時に画角の内部で個々のピクセルごとに生じる動き量を数値化するようにしてもよい。このピクセルマップを用いて、所定の最小閾値を下回る動きが生じるピクセルを、背景を表すピクセル、又はユーザの到達範囲の外のピクセルとして除外して、検出領域を画定してもよい。同様に、所定の最大閾値を上回る動きが生じるピクセルを、コマンド入力を表さない動きが、発生しやすいピクセルとして、除外して、検出領域を画定してもよい。コマンド入力を表さないジェスチャ又は動きの例として、呼吸によるユーザの胸部の動き、同意したことを表すユーザの目又は顔の動き、ボディランゲージ、無意識の身体の移動、ピクピクした動きや震えなどを含むことができる。
【００３２】
検出領域１１１は、解剖学的なモデルに基づいて画定することができる。例えば、ユーザの頭部の高さ又は幅を推定又は測定し、ユーザの手が届く通常の範囲をその測定値の３倍と推定することができる。この推定値を用いて、ユーザの胸からその測定値の２倍から３倍の間の離れた距離を弓形の検出領域を画定することができる。この推定値に基づいて、この距離を下回って生じる身体又は胴体の動きを表す動きを、ユーザの腕によっては起こりえない背景の動きを表すものとして無視することができる。
【００３３】
このため、画像１１０は、解剖学的なモデルとユーザが座っている位置が相対的に固定されているという前提とに基づいて、手１０７が届かないと判断された画像１１０の部分を含む、到達不能領域１１３を含む。画像１１０はまた、検出領域１１１の中で検出された手１０７又はその他の物の動き又は位置よりも、カメラをベースとした入力（ｃａｍｅｒａ−ｂａｓｅｄ 入力）にとって関係の薄い、又は混乱させる、背景物とユーザの動きを含むと予想される、胴体により占められる胴体領域１１４を含む。カメラ１０６は固定した状態に保つことができるので、検出領域１１１は、連続する画像などの他の１以上の画像に容易にマッピングすることもできる。
【００３４】
検出領域１１０を他の画像にマッピングする際、検出領域１１１の中の手１０７の絶対位置又は相対位置を、他の画像から検出することができる。あるいは、動きは位置よりも検出することが容易なため、手１０７の動きを検出領域１１１の中で検出してもよい。さらに、検出領域１１１が、ブロック１１２ａから１１２ｇなどの複数の離散的なブロックに分割、又は画定されている場合、どのブロックが手１０７に最も近い、又は、手１０７によって最も遮蔽されているかを示す情報を出力してもよい。例えば、手１０７が、他の如何なるブロックよりもブロック１１２ｅを遮蔽している場合、ブロック１１２ｅが選択されたブロックであることを示す情報を出力してもよい。この情報は、ブロックを一意に識別する識別子を含んでもよい。
【００３５】
ユーザインタフェース１１４の中で、検出領域１１１の中の手１０７の位置は、カーソルの位置、描写、又は、コントロール１１７と相互連動するアバター１１６の仮想の手１１５などの仮想コントロールオブジェクトにマッピングされる。コントロール１１７をコントロールする、又は相互に連動する際、検出領域１１１の中の手１０７の動きは、アバター１１６を生き生きと動かす（ａｎｉｍａｔｅ）ことにより、ユーザにとってコントロール１１７との相互の連動を直感性の高いものとし、視覚的に満足のいくものとすることができる。コントロール１１７との相互連動により、ユーザ１０１が項目１１９（文字「Ｒ」）を選択すると、その文字はユーザインタフェース１１４の出力領域１２０に現れる。
【００３６】
アバターは、ユーザの物理的な外見を取り込む画像１１０の一部に織り込むことができる。このアプローチによって、ユーザ１０１は自らが、デバイスを操る、又はデバイスと物理的に相互連動するユーザインタフェース１１４の中にいるように思われてくる。換言すると、カメラ１０６はユーザ１０１のテクスチャ画像を撮影し、テクスチャ画像を、３次元のワイヤフレーム画像に重ね合わせることによって、アバターを作り出し、アバターにユーザ１０１の外見を付与することができる。
【００３７】
ユーザ１０１の動きのアバター１１６へのマッピングは、動きが鏡に写し出されるように１：１の関係で行うことができ、加速も可能であり、アバターの動きを特定の「注目（ｓｎａｐ ｔｏ）」ポイントに強制することができる。さらに、速度モードでは、検出領域の中のコントロールオブジェクトの位置は、コントロールオブジェクトの位置が変化するまで、アバターが継続して移動する速度を表すこともできる。個別の所望の構成に応じて、例えば、ユーザ１０１の動きとアバター１１６の動きは、ユーザの左手１０７が上げられるとアバターの右手１２１が上がるように、お互いが鏡に写し出されるように作り出すことができる。
【００３８】
図２は、高度なカメラをベースとした入力を用いたデバイス２００のブロック図である。概略としては、デバイス２００は、まず、ユーザインタフェース２０１と、記憶媒体２０２と、入力ユニット２０４と、プロセッサ２０５とを含む。デバイス２００を利用することによって、高度なカメラをベースとした入力を用いたユーザインタフェースのコントロールとの相互連動、例えば、ユーザによる項目の選択など、を容易にすることができる。コントロールとの相互連動により、再帰反射器、ジャイロ装置、又はリモコンなどの特別な装置をユーザが手に保持する必要はなくなり、腕や手の動きをカーソル又はその他の入力部に直感的にマッピングすることになる。
【００３９】
ユーザインタフェース２０１は、ユーザがデバイス、又はデバイスを起動するアプリケーションと相互連動することを可能とする機構である。ユーザインタフェース２０１は、入力と出力の両方に働きかけ、ユーザがデバイスを操作すること、又は、デバイスがユーザの操作に働きかけることを可能にする。デバイス２００は、グラフィカルユーザインタフェース（ＧＵＩ）、音声ユーザインタフェース、又は触覚（ｔａｃｔｉｌｅ又はｈａｐｔｉｃ）インタフェースなどあらゆる種類のユーザインタフェース２０１を用いることが可能である。
【００４０】
ユーザインタフェース２０１が視覚表示画像を生成するようにしてもよい。例えば、ユーザインタフェース２０１は、モニタ、テレビ、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ装置、プロジェクタ画面付きプロジェクタ、自動立体ディスプレイ、陰極線管（ＣＲＴ）ディスプレイ、ＤＬＰ（デジタル 光 処理ｉｎｇ）ディスプレイ、又はディスプレイ画像を表示するように構成されたその他の種類のディスプレイ装置でよい。ユーザインタフェース２０１は、１以上のディスプレイ装置を含んでもよい。いくつかの構成では、ユーザインタフェース２０１は、コントロールと、アバターなどのオブジェクトを含む、アプリケーションによって生成されたディスプレイ画像などのアプリケーションに関連する画像を表示するように構成されてもよい。記憶媒体２０２は、情報又はデータを保存して記録する。記憶媒体２０２は、光学的記憶媒体、磁気記憶媒体、フラッシュメモリ、又はその他の種類の記憶媒体であってもよい。
【００４１】
カメラ２０４は、画像を、スチール写真、あるいは一連の動画として撮像するために用いるデバイスである。カメラ２０４は、可視スペクトル光を用いて、又は、赤外線などのその他の電磁スペクトルの一部を用いることができる。例えば、カメラ２０４は、デジタルカメラ、デジタルビデオカメラ、又は、画像を撮像するように構成されたその他の種類のデバイスでもよい。カメラ２０４は、１以上のカメラを含んでもよい。いくつかの例では、カメラ２０４は、アプリケーションと相互連動するオブジェクト又はユーザの画像を撮像するように構成することができる。例えば、カメラ２０４は、カメラ２０４の画角の中でアプリケーションと物理的に相互連動するユーザ又は人物の画像を撮像するように構成することができる。
【００４２】
カメラは、ステレオカメラ、飛行時間カメラ、又はその他の種類のカメラでもよい。例えば、カメラ２０４は、背景画像をサンプリングしてユーザの動き及び、同様に、ジェスチャを検出する機能を有する画像検出器でもよい。カメラ２０４は、グレースケール画像、カラー画像、又は、距離画像を生成することができるステレオカメラ又は飛行時間カメラなどのように距離画像を生成してもよい。ステレオカメラは、僅かに異なる視点で画像を取得する２つの画像センサを有することができ、プロセッサが異なる視点から取得した画像を比較して、画像の部分間の距離を算出する。飛行時間カメラは、光パルスを生成するエミッタを有することができる。光パルスは赤外線でもよい。光パルスがエミッタから対象物に到達してセンサに戻るまでの時間を測定し、画像の部分間の距離を算出する。
【００４３】
デバイス２００は、有線又は無線経路を介して、カメラ２０４とユーザインタフェース２０１と電気的に接続しており、プロセッサ２０５の動作を制御して、カメラをベースとした入力を機能させるように構成されている。一つの構成では、デバイス２００は、プロセッサ２０５又はその他のコントロールを用いて、カメラをベースとした入力を機能させるアプリケーションを実行する。具体的には、デバイスは、カメラ２０４から入力を受信すると、受信した入力を処理してユーザインタフェース２０１におけるユーザの映像の位置及び動きを算出して、これらの動きに基づいてコントロールと相互連動する。
【００４４】
一つの代表的な実施例では、カメラを用いてジェスチャを行うユーザの画像を検出することによって入力が生じる。例えば、携帯電話をテーブルの上に置き、顔を向いたカメラを用いてユーザの画像を生成することができる。あるいは、カメラ２０４を用いて、オプティカルフロー又はその他のアプローチによって「左に傾く」ジェスチャが検出されると、検出されたジェスチャからユーザを映像は左に移動させ、コントロールの左側に設けられた項目を選択させる、あるいは、「前方又は右に傾く」ジェスチャが検出されると、ユーザの映像を中立位置の上方又は右に移動させ、コントロールの上部右側に設けられた項目を選択させることができる。
【００４５】
従って、カメラ２０４は、デバイス２００の角度位置を検出することができるジャイロスコープ、加速度計、又はオプティカルフロー追跡部などの、このほかの種類の入力デバイス又はモジュールを含む、又はかかる入力デバイス又はモジュールと交換することもできる。このため、カメラを傾斜センサ入力部によって補完又は交換して、ユーザからの所望のコマンド又は機能を実行するようにしてもよい。このように、ユーザのジェスチャの検出は、カメラを用いなくても可能である。デバイスを、例えば、ユーザインタフェースのコントロールに同様の動きパターンを可視化するように移動させることによって、ユーザは、同一のインタフェース又はアプリケーションを容易で、直感的で視覚的に楽しく、刺激的な手法で制御することができる。
【００４６】
簡略化のため、デバイス２００をパーソナルコンピュータ（ＰＣ）又はセットトップボックスとして説明したが、この他の実施例も想到可能である。例えば、デバイス２００は、テレビ、ウルトラモバイルパーソナルコンピュータ（ＵＭＰＣ）、モバイルインターネットデバイス（ＭＩＤ）、デジタルピクチャフレーム（ＤＰＦ）、ポータブルメディアプレーヤー（ＰＭＰ）、汎用コンピュータ（例えば、デスクトップコンピュータ、ワークステーション、又はラップトップコンピュータ）、サーバ、ゲーム機又はコンソール、又は、命令を実行するように構成されたプロセッサ又はその他の制御回路を含むその他の種類の電子デバイス、又は、ユーザインタフェースを含むその他の装置として実現することができる。
【００４７】
図３に、高度なカメラをベースとした入力をリアルタイム又は略リアルタイムで用いる処理３００を示す。周囲の検出領域は、ユーザの頻繁に動く部分も含めて、ユーザと重なってもよいし、重ならなくてもよい。処理３００は、シーンの中のユーザの画像の中の、ユーザを囲む検出領域を画定するステップと、検出領域の中でオブジェクトの位置を検出するステップを含む。さらに、処理３００は、検出されたオブジェクトの位置に基づいて、ユーザインタフェースのコントロールと相互連動するステップを含む。
【００４８】
詳細には、処理３００が開始すると（Ｓ３０１）、シーンの内部のユーザの画像の中にユーザを囲む検出領域が画成される（ステップＳ３０２）。まず、概要を説明する。図４は、ユーザ４１０の画像（側部から示す）を撮像するために用いられる、代表的なシステム４００を示し、図５は、この代表的なシステム４００を用いて撮像された、ユーザ４１０の代表的な画像５００を示す（正面から示す）。
【００４９】
具体的には、システム４００は、セットトップボックス４０１と、カメラ４０２と、テレビ４０４とを含む。カメラ４０２は、画角４０３の中でシーンの画像を撮像する。シーンは、例えば、伸びた右手４０５と、頭部４０６と、胴体４０７と、ユーザ４１０の二本の足の一部４０９、ユーザ４１０が座っているソファ４１１と、ユーザ４１０とソファ４１１の背後にある、壁などの背景とを含む。
【００５０】
画像５００は、１枚の静止画像、又は、一連の動画からの１枚の画像であって、１以上の画像圧縮技術を用いて圧縮又は保存されていてもよい。画像５００は、ユーザインタフェースにおいてユーザの接触を検出して、映像を決定し、表示するために用いるに分割されたカメラ画像でもよい。カメラ４０２を用いて画像を撮像した後、画像をネットワークを介して送信してもよい。
【００５１】
ユーザによる連動ジェスチャの実行に続いて、ユーザを囲む検出領域を画成することができる。連動ジェスチャは、ジェスチャに基づくコマンド入力のため、他の画像をモニタして、無作為な動き、意図的でない動き、又はコマンド入力とは関係のない、その他の身体の動きを無視し、フィルタリングして、除外する機能を起動又は呼び出す。
【００５２】
本明細書において「ジェスチャ」とは、１以上の人体の一部又は全体を用いた非言語コミュニケーションの形態を意味し、話しなどの言語コミュニケーションと対比するものである。例えば、ジェスチャは、第１の位置、姿勢又は表現と第２の位置、姿勢又は表現との間の動き、変化又は変形として定義されてもよい。代表的なジェスチャとして、例えば、「エアクオーツ」のジェスチャ、お辞儀のジェスチャ、挨拶、頬キス、指又は手の動き、ひざまずくこと、頭を振ること、又は頭の動き、ハイファイブ、頷き、悲しい顔、拳を上げること、敬礼、手を上げる、又は手を振る動き、親指を立てる動き、指を指すジェスチャなどを含むことができる。
【００５３】
連動ジェスチャは、所定の時間保持されたディスプレイ前方のカメラの追跡領域で行われる特定の手のポーズ又は手の動きの連続とすることができる。一つの代表的なジェスチャとして、全ての親と親指を大きく広げてまっすぐに伸ばした状態に保つ手のポーズがある。他の例として、ユーザの腕を顔の前で伸ばし、頭の前で腕で円を描く円形の手の動きがある。基本的に、連動ジェスチャは、ユーザインタフェースを生成するデバイスに、ユーザがさらにカメラをベースとした入力を行う容易ができたことを伝える。誤操作を減らすため、連動ジェスチャは、通常の会話で無意識にボディランゲージとともに行われることのないジェスチャ、又は、通常の人間活動の一般的な行為として行われることのないジェスチャなど、非定型のジェスチャがよい。
【００５４】
従って、二つの画像から、ユーザの考え、意見、感情、コミュニケーション、コマンド、実演又は表現を定義するジェスチャを導き出すことができる。例えば、ユーザのジェスチャは、１つ又は複数の指ジェスチャ、１つの手ジェスチャ、１つの手及び腕のジェスチャ、１つの手、腕、及び身体ジェスチャ、両手で行うジェスチャ、頭部のポーズ又は姿勢の変化、目の位置の変化、顔の表情の変化、身体のポーズ又は姿勢の変化、又は、その他のいかなる表現可能な身体の状態の変化であってもよい。
【００５５】
簡潔のため、当該ジェスチャを行うために用いる身体の１以上の部分を広く、「コントロールオブジェクト」と呼ぶ。例えば、ユーザは、身体全体、又は、その他の物理的な物体を用いてコマンドを表現してもよく、そのような場合、身体全体又はその他の物理的な物体がコントロールオブジェクトとなりうる。ユーザは、目をまばたく、鼻を広げる、指をひらひらさせることによって、より微細にコマンドを表現することができる。その場合、まぶた、鼻又は指がコントロールオブジェクトとなりうる。一つの画面、又は二つの画面の間のユーザのジェスチャは、許可の表現又は「連動（連動）」ジェスチャとなりうる。コントロールオブジェクトはまた、赤外線フィンガーライト、再帰反射器、又はリモコンなどの物理的なデバイスでもよい。
【００５６】
カメラ画像からユーザのジェスチャを判断するための多くの方法がある。例えば、「空に円を描く」、又は「手を脇にスワイプする」ジェスチャを、ジェスチャ分析及び検出処理によって、手、腕、身体、頭部、又はその他のオブジェクト位置情報を用いて検出してもよい。スワイプするジェスチャを行った場合など、例えば、ジェスチャが２次元又は３次元の位置の移動を含むことがあっても、別のインスタンスでは、ジェスチャは、位置の移動を伴わない変形を含む。例えば、５本の指を広げて手のひらを前に向けて手で「ストップ」という合図をする場合、手のひらを前に向けたまま、５本の指を丸めて拳にすると、手や腕の全体の位置は静止していても、ユーザのポーズは変化して、ジェスチャは表現される。
【００５７】
ジェスチャは、手の位置情報が明示的なルール群に適合しているか否かを判断するなどの、発見的方法を用いて検出することができる。例えば、（１）所定の限度を下回る時間期間にわたる水平位置の変化が所定の距離を上回る、（２）その時間期間にわたる水平位置の変化が単調である、（３）その時間期間にわたる垂直位置の変化が所定の距離を下回る、（４）その時間期間の終了時における位置がその時間期間の開始時の位置よりも検出領域の境界に近い（又は境界にある）、というジェスチャ検出のルールが満たされた場合に、「手を脇にスワイプする」ジェスチャを識別することができる。
【００５８】
いくつかのジェスチャは、一つのルール群が満たされると、システムが異なるルール群が適用される状態に変化する、明示的な順序で実行されて満たされる複数のルール群を用いる。このシステムは、隠れマルコフモデルを用いた場合のように、微妙なジェスチャを検出することはできない可能性がある。これらのモデルは特定の動きの連鎖を検出させることができるが、その動きが十分にジェスチャに適合しているか全体的な確率も考慮するからである。
【００５９】
身体、腕又は手のジェスチャに加えて、指さすジェスチャを、１以上の画像から認識することができる。例えば、「左をさす」ジェスチャは、ユーザの指先で行い、指の画像を分析して検出することができる。指紋分析又はその他のアプローチを用いて、さしている指の先端の方向を検出することができる。他の代表的な実施例では、上述のように、口頭ジェスチャや傾斜センサ又は加速度形を用いて検出する場合のように、ジェスチャを、カメラを用いることなく検出することができる。
【００６０】
カメラによって撮像されたユーザの画像で、ユーザの腕から、下にさげた第１の位置から、伸ばして手のひらを前方に向けた第２の位置への動きをジェスチャとして認識してもよい。ユーザがこの連動ジェスチャを実行することによって、ユーザインタフェースの中にコントロールとともにユーザの描写を表示するようにしてもよい。ジェスチャを実行している際に、ユーザがカメラの視野角を中心にいない場合もあるので、連動に続いて、再配置、トリミング、再センタリング又は拡大処理を呼び出してもよい。
【００６１】
一つの代表的な実施例では、画像５００は、カラー背景の正面に位置するユーザ４１０の得られた画像など、クロマキー処理されたカメラ画像である。クロマキー処理は、色が背景の色とマッチする画像５００の部分を識別し、それらの部分を、画像５００の背景部分として分類する。色が背景の色から逸脱する画像５００の部分をユーザ４１０の部分である可能性が高く、前景として分類する。
【００６２】
他の代表的な実施例では、画像５００は、デプスキー処理されたカメラ画像である。デプスキー処理されたカメラ画像は、通常、飛行時間カメラ（ＣＡＮＥＳＴＡ ＩＮＣ．製カメラなど）又はステレオカメラ（ＴＹＺＸ ＩＮＣ．製カメラ）、などの距離の深さを判定可能なカメラによって取得される。代表的な飛行時間カメラでは、赤外線エミッタが赤外線パルス光を発光し、光学センサがオブジェクトとカメラとの間を光が行き来するのに要する時間を測定し、この時間に基づいてオブジェクトの距離を算出する。
【００６３】
代表的なステレオカメラでは、複数の光学センサが複数の視点からのシーンの画像を取得する。ステレオカメラは、複数の画像を比較して、複数の視点間のオブジェクトの位置の差異を判定し、この差異に基づいてオブジェクトの距離を算出することができる。この距離に基づいて画像の部分を前景と背景に分類する。分類処理は、距離を閾値と比較する処理を含む。距離が閾値を下回る場合は前景として、距離が閾値を上回る場合は背景として部分は分類される。分類処理は、背景モデルとの距離と比較する処理を含んでもよい。背景モデルは、ユーザを除くシーン（例えば、床や家具）の部分の深さを表す。距離がモデルの対応する部分を下回る場合は部分を前景として分類し、距離がモデルの対応する部分以上の場合は背景として分類することができる。
【００６４】
さらなる例では、画像５００は、背景色モデルを用いる。例えば、画像５００を、背景の予想される外見を表す背景色モデルと比較してもよい。背景色モデルは、ユーザを除くシーンの画像を保存することによって取得することができる。部分の色が背景色モデルの対応する部分の色と類似している場合は、カメラ画像の部分を背景として分類する。部分の色が背景色モデルの対応する部分の色と類似していない場合は、カメラ画像の部分を前景として分類する。
【００６５】
さらなる例では、画像５００は、皮膚の色モデルを用いて分割される。例えば、画像５００は、ユーザの皮膚の予想される外見を表す皮膚の色モデルと比較することができる。皮膚の色モデルは、多数の人間の画像で採取された皮膚の色に基づく、所定のものであってよい。皮膚の色モデルはまた、ユーザの皮膚の画像に基づいて決定してもよい。カメラ画像の部分は、その部分の色が皮膚のモデルの範囲内の色と類似している場合は前景として分類される。皮膚の色モデルで表される色の何れとも類似していない色の場合は、カメラ画像の部分は背景として分類される。
【００６６】
さらに、画像５００は、動き画像であってもよい。画像の動きを含む部分は、前景として分類され、画像の静的な部分は背景として分類される。カメラ画像を、動きによって区分することは、一連のカメラ画像を取得する工程と、連続する画像の間の差分を算出する工程と、差分を閾値と比較する工程を含むことができる。１以上の画像の動きを検出する、オプティカルフローなどのその他の技術を用いてもよい。
【００６７】
以上、分割したカメラ画像を生成するための、複数の代表的なアプローチについて説明したが、その他のアプローチ又は技術も想到可能であり、これら上述のアプローチの代替として、又は付加的に、あるいは組み合わせとして用いることができる。
【００６８】
（とりわけ）ユーザ４１０の位置（「身体位置」）を用いて、後に検出領域の位置を画定し、ユーザインタフェースの中のコントロールの位置を画定する、又は、画像をトリミング又は拡大することができるので、身体位置を画像５００の中で検出する。身体位置は、顔検出を用いて決定した、頭部４０６の位置としてもよい。顔検出は、カメラ画像の部分を走査して、人間の顔の外見に対応する特徴を検出するようことができる。
【００６９】
身体位置はまた、全ての項目が容易に到達できる範囲となるようにユーザの腕の位置としてもよく、胴体４０７、足４０９、重心又は体心の位置でもよく、あるいは、その位置は、肩の位置など、ユーザ４１０の他の部分又は外観に関連するものであってもよい。身体位置は、ポイント、線分、又は、ユーザの身体の全体又は部分を含む領域又はエリアとして画成することができる。計算効率のため、身体位置は、四角形、円形などの単純な形状として画成してもよい。例えば、図５に示すように、位置５０１（プラス符号（＋）で図示）を、身体位置として決定、算出又は推定することができる。
【００７０】
図６に示すように、ユーザ４１０を囲む検出領域６００を、ユーザ４１０の画像５００に画成する。一般的に、検出領域は、コントロールオブジェクト（すなわち、手又は腕）を検出する画像の部分を表すため、一般的に、コントロールオブジェクトが存在しえない画像５００の部分、及び背景、動き、又はその他の要因によってコントロールオブジェクトを見つけることが困難、又は計算コストが高くなる部分は除外される。画像５００は、例えば、検出領域６００と、到達不能領域６０１と、胴体領域６０２に分割される。
【００７１】
このため、検出領域６００は、ユーザの胴体又は頭部に関連する胴体領域６０２を除くことができる。これらの身体部分は頻繁に動くためである。胴体領域６０２は、ユーザ４１０が無意識に動く、又は単に自身の位置を調整している間、腕又は手が入る可能性のある、胴体に近い画像５００のエリアも含む。さらに、ユーザ４１０が物理的に到達することが困難な到達不能領域６０１も、検出領域６００から除外される。残る検出領域６００は、その領域の内部のコントロールオブジェクトの検出が、ユーザ４１０による意図的な身体の動き、即ち、コマンド入力を表す可能性が高い、画像の部分を占める。このため、検出領域６００を検査して、コントロールオブジェクトがその領域の内部に存在するか否かを判断する後の処理動作では、これらの処理動作は、検出領域６００のみ、又は、画像全体よりも小さが、検出領域６００を含む画像の一部で行うことができる。
【００７２】
検出領域６００は、ユーザの動きの範囲に従って位置決めされる。動きの範囲の決定は、生物動力学的制限又は人体の能力などを模擬した複雑な解剖学的モデルに基づいて行い、これらをユーザに適用することができる。いくつかのケースでは、ユーザの頭部の寸法に乗数を乗じた積と等しい距離を、ユーザの腕の到達範囲と見積もるアプローチなど、より単純な経験的な常識も用いることもできる。他のケースでは、ユーザの腕の到達範囲をユーザの識別（例えば、顔認識に基づいて判断）、及び、デバイスに保存されているユーザに関する情報（例えば、ユーザの年齢及び性別）に基づいて推定してもよい。何れの場合でも、検出領域６００の個別の位置決めは、ユーザのある外観によって定義する。同様に、ユーザは、検出領域６００によって囲まれているとみなす。
【００７３】
検出領域６００は、このように、ユーザ４１０が身体部分の動きによってコマンド入力、合図又はジェスチャを行っていることを示すことが可能な、カメラの画角の中に定義することができる。しかしながら、検出領域６００は同様に、動きが頻繁に発生して、意図的なコマンド入力のジェスチャと、非コマンド入力の動きとを識別することが困難な、カメラの画角の一部分の外に定義してもよい。
【００７４】
ガイドライン６０４は、検出領域６００の内部に位置決めすることができる。例えば、ガイドライン６０４は、検出領域６００の境界６０３とは平行な（又は別の空間的関係にある）線として決定することができる。以下により詳細に説明するが、ガイドライン６０４に沿って選択可能な項目を配置することができる。例えば、図１０では、選択可能な項目１０１０ａ〜１０１０ｚを、ユーザインタフェース１００のガイドライン１００９に沿って配置している。
【００７５】
図７に、大きな画像をセンタリングしてトリミングすることによる、小さな画像の生成を図示する。具体的には、画像５００と同様の画像７００を、ユーザの頭部７０１の頭部位置７０３の周りにセンタリングして、拡大し、トリミングした画像７０２を生成した。カメラ画像の特定の部分のセンタリングと拡大は、コントロールオブジェクト（手７０４など）の動きを、ユーザインタフェースの中でより直感的又は容易にユーザ描写にマッピングすることができる。
【００７６】
トリミング画像７０２、又はトリミング画像７０２の拡大バージョンは、ユーザインタフェースの内部に表示することができる。ユーザの画像をセンタリングして、画像のセンタリングに基づいて画像をトリミングすることができる。コントロールをセンタリングした画像の中でユーザに到達可能とする拡大係数を決定し、画像がさらに、拡大係数に基づいてトリミングできるようにする。拡大係数は、解剖学的なモデルを用いて決定することができる。
【００７７】
図７の画像７００は、身体位置が、ユーザインタフェースで示されたコントロールの構成要素などのある項目に対応する位置となるようにパン又はズームされている。パン又はズームは、フルサイズのカメラ画像７００を撮像して、フルサイズのカメラ画像７００から、ディスプレイに適合するように拡大又は圧縮するためにトリミングする画像７０２を選択するする処理によってシミュレーションすることができる。トリミングした画像７０２は、ユーザインタフェースのディスプレイ画像に適合するように拡大縮小され、フルサイズのカメラ画像の残りは、保存又は破棄される。以下にさらに詳細に説明するが、身体位置７０３又は手の位置７０４の座標などの座標は、ユーザインタフェースに表示されたユーザの描写の特徴部に対応させてマッピングしてもよい。
【００７８】
検出領域は、ユーザの上方に、ユーザの両側部に一つずつ設けられた２つの線形の部分検出領域と連続する、弓形の部分検出領域を含んでもよい。検出領域について既にＵ字型形状のものを説明して図示したが、製造業者が既に設定したもの、又ユーザの設定に応じて、その他の形状を用いてもよく、検出領域の形状は、動的に決定してもよい。例えば、検出領域は、円形形状でもよく、線形のみでもよく、対称又は非対称の形状を含むその他の形状であってもよい。検出領域はまた、複数の、不連続な領域であってもよく、例えば、仮想キーボードコントロールとともに用いてもよい（例えば、図４０参照）。
【００７９】
図８に、２人の候補ユーザを含むシーンにおいて、制御するユーザの周りに画成された検出領域を示す。具体的には、画像８００の中で２人の候補ユーザ８０１、８０２を検出すると、制御していないユーザ８０２の腕の動きの範囲８０５を考慮して、検出領域８０４が画定する。換言すると、制御していないユーザ８０２（又は制御していないユーザ８０２のコントロールオブジェクト）が検出領域８０４の一部に検出されると、その部分は、検出領域から除外される。さらに、検出領域の重なりが起こりうる画像のエリアにおいて、検出領域ごとの境界がトリミングされる（又は、特定の処理動作のためにマーキングされる）ように、検出領域は、ユーザインタフェース８００の中のユーザごとに画成されてもよい。
【００８０】
結果として、検出領域８０４は、より複雑で、動的に画成される形状をとることができる。あるいは、計算コストをより低くしたルールを画像に適用して、画像の被写体又はシーンに応じて検出領域を画成してもよい。例えば、ユーザが壁又は他の人間の隣にいる場合、線形又はその他の形状の検出領域を、壁又はその他の人間の対向する側のユーザの隣に画成することができる。
【００８１】
相互連動的な項目を、検出領域８０４の中に設けてもよい。項目の位置及びサイズは、全ての項目が少なくとも部分的に検出領域８０４の中に配置されるように算出し、例えば、制御していないユーザ８０２の腕を避けるなどのため、検出領域の画成が変化しても、全ての項目が検出領域の中に残るように、再計算することができる。項目を、検出領域８０４の中のガイドラインに沿って配置し、項目の位置が、トリミングした検出領域の中で全ての項目が表示されるようにガイドライン沿って生き生きと動くようにすることができる。
【００８２】
検出領域の内部のオブジェクト（手など）の位置を検出する（Ｓ３０４）。オブジェクトの位置は、同一又は他の画像、又は、続く画像などのその他の画像で、前に画定された検出領域を新しい画像に適用する、又は重ね合わせることによって、検出することができる。例えば、検出領域は、シーン領域、又は、画像領域に画成することができる。カメラ又はユーザが移動している場合、検出領域は、この動きを補償するように、画像から画像へと調節することができる。ユーザインタフェースのコントロールと相互連動するように、カーソル、指標、アバター、又は、その他のユーザの描写をユーザインタフェースの内部にマッピングするためにユーザのコントロール部分の位置（「ユーザ位置」）を決定する。
【００８３】
コントロールオブジェクトの位置は、複数の方法で表現することができる。例えば、図９の画像９００に示すように、ユーザ９０２の手の位置９０１を絶対又は相対座標（ｘ，ｙ）、又は角度θ、又は、角度θと既知のポイント９０４（身体位置など）からの相対距離又は絶対距離ｄで表現できる。さらに、検出領域９０５を、複数の小領域（部分領域９０５ａ〜９０５ｈなど）に分割した場合、又は、複数の相互連動要素と関連付けた場合、コントロールオブジェクトの位置は、手の位置９０１と重なる、又は最も近接する部分領域又は相互連動要素の固有の識別子で表現することができる。図９では、例えば、手の位置９０１は部分領域９０５ｅと重なるので、コントロールオブジェクトの位置は、部分領域９０５ｅと関連付けられた識別子として単純に表現することができる。１次元、２次元又は３次元でオブジェクトの位置を表現する他のアプローチを用いてもよい。
【００８４】
ユーザ位置を決定することは、分割されたカメラ画像の分析を含む。ここで、カメラ画像は、前景部分と背景部分に分割される。例えば、ユーザを表す可能性のある画像部分（例えば、ピクセル）は、前景として、ユーザを表す可能性のない画像部分は、背景として分類される。分割されたカメラ画像を用いてユーザ位置を決定する場合、ガイドライン上方の画像部分を考慮し、必要に応じて、ガイドライン下方の短い距離も含むことができる。ユーザ位置は、領域の中の全前景部分の平均位置として算出することができる。分割されたカメラ画像を用いてユーザ位置を決定する場合、領域の内部の前景部分の数を計算して、閾値と計算値を比較し、計算値が閾値を上回る場合に、ユーザ位置として分類する。
【００８５】
分割されたカメラ画像を用いてユーザ位置を決定する場合、また、領域内部で前景部分をクラスター化し、クラスターを選択し、クラスターの内部の全前景部分（例えば、ピクセル）の平均位置としてユーザ位置を算出することができる。平均位置を算出する場合、ガイドラインの上方の部分については部分的に重みをより大きくする、加重平均の算出を行ってもよい。
【００８６】
ガイドラインの上方の部分をより大きく重み付けすることによって、平均位置がガイドラインの上方のユーザの部分となる可能性が高まる。いくつかの実施例では、システムは、ユーザインタフェースと相互連動するユーザの位置が、ほとんどの部分において、ガイドラインの下方となるように構成することができる。これらの実施例では、システムは、ユーザが、ユーザの手を頭上のガイドラインの上方に位置させることによって、キャラクタを選択することができる。さらに、これらの実施例では、ガイドラインのさらに上方の部分をより大きく重み付けすることによって、検出されたユーザの平均位置がユーザの手の先端を表す可能性がより高くなる。
【００８７】
他の実施例では、分割されたカメラ画像を用いてユーザ位置を決定することは、分割されたカメラ画像の前景部分の形状を分析することを含む。前景部分の形状を分析することは、前景部分の最上部を識別し、ユーザ位置を最上部の前景部分の位置として算出することを含んでもよい。分割されたカメラ画像の前記部分の形状を分析することは、あるいは、前記部分の輪郭を生成し、輪郭の形状特徴を識別し、形状特徴が手であるか否かを判断することを含んでもよい。ユーザ位置を、手の位置として算出してもよい。
【００８８】
さらに、ユーザ位置を決定することは、カメラ画像を分析して、ユーザの手を識別し、手の位置を決定することを含んでもよい。カメラ画像の中の手の位置を識別することは、カメラ画像の部分を、ユーザの皮膚の予想される外見を表す皮膚の色モデルと比較することを含んでもよい。その部分の色が皮膚の色モデルの中の色と類似している場合は、カメラ画像のその部分は皮膚として分類される。皮膚として分類された部分は、部分のクラスターにクラスター化されて、全体の位置とサイズが、位置以上の基準を満たしている部分のクラスターは、手として分類される。カメラ画像の中で手の位置を識別する様々な方法を用いることができ、手を追跡する他の方法を用いてもよいことは明らかである。
【００８９】
ユーザインタフェースは、領域群を用いることができる。領域群は、群の各項目について一つの領域を有することができる。領域ごとに接触状態を判定することは、前景（例えば、ユーザ）として分類された分割されたカメラ画像の部分が領域の中にあるか否かを判定することを含むことができる。他の例では、領域ごとに接触状態を判定することは、ユーザの手として分類された分割されたカメラ画像の部分が領域の中にあるか否かを判定することを含むことができる。領域群は、部分群の各項目について領域を有することができる。領域群は、ユーザの相互連動に基づいて（例えば、ディスプレイ画面の中で移動するなど、）変化してもよい。
【００９０】
ユーザの描写を表示することは、その外見をユーザによって構成設定することが可能なアバターを表示することを含んでもよい。例えば、ユーザはアバターの性別、サイズ、顔の特徴、衣服を構成設定してもよい。ユーザが描写を表示することは、ユーザの識別を検出し、検出したユーザの識別に基づいてユーザの描写を表示することを含んでもよい。ユーザの識別は、顔認識を用いて検出してもよい。検出したユーザの識別に基づくユーザの描写は、ユーザによって構成設定されるアバターを含んでもよい。
【００９１】
ユーザの描写を表示することは、アバターに重ね合わせたユーザのテクスチャ画像などのカメラ画像を表示することを含んでもよい。例えば、ビデオ画像をビデオカメラから取得して、表示する。ビデオ画像は、ユーザと、ユーザがいる部屋（及びユーザがいるその他環境）の画像を含むことができる。部分群及びテキストの項目を含む前景グラフィック群を、ビデオカメラ画像の上に表示して、カメラ画像を部分的に遮蔽してもよい。
【００９２】
ユーザの描写を表示することは、カメラ画像を前景部分と背景部分に分割し、分割されたカメラ画像を表示することを含んでもよい。例えば、ユーザを表す確率の高い画像部分は前景として分類し、ユーザを表す確率の低い部分は背景として分類する。
【００９３】
分割されたカメラ画像を表示することは、前景として分類された部分のみを表示することを含んでもよい。前景として分類された部分のみを表示することは、不透明度を表すアルファチャネルを生成し、前景部分を不透明に、背景部分を透明に設定し、アルファチャネルを用いてカメラ画像を背景グラフィック群と組み合わせることを含んでもよい。
【００９４】
このようにして、ユーザインタフェースは、前景要素と背景要素を表示することができる。前景要素は、背景要素を遮蔽してもよい。部分群の項目とテキストを含む前景グラフィック群は、前景要素と背景グラフィックの上に表示し、部分的に前景と背景要素を覆わせる。追加の前景と背景要素又はグラフィックは、アプリケーションによって生成してもよい。
【００９５】
ユーザインタフェースのコントロール（仮想キーボードのキーなど）は、検出されたオブジェクトの位置に基づいて相互連動し（Ｓ３０５）、処理３００は終了する（Ｓ３０６）。一つの例では、コントロールは、仮想キーボード又はマウスである。他の例では、コントロールは、描写に対して画成されたガイドラインに沿った項目を含むことができる。項目は、描写を遮蔽することなく表示される。
【００９６】
図９に戻ると、コントロールオブジェクトの位置は、コントロール入力にマッピングされる。例えば、ルックアップテーブル、データベース又は式、カーソル位置への手の位置９０１の入力（（ｘ、ｙ）、θ、θ＋ｄ、部分領域又は相互連動要素識別子、又はその他の指標で表現）に基づいて決定することができる。ユーザインタフェース９１０では、例えば、カーソル位置９１１は、相対又は絶対画面座標（ｘ’、ｙ’）又は角度θ’、又は、既知の位置（例えば位置９１２）からの距離ｄ’と角度θ’として表すことができる。あるいは、ユーザインタフェース９１０が複数の領域９１４を画成する場合、出力カーソル位置９１１は、入力部分領域又は相互連動要素識別子に対応する領域の固有の識別子を識別することができる。図示の例では、領域９１４ｄは部分領域９０５ｅに対応するので、カーソル位置９１１は領域９１４ｄの中に示される。
【００９７】
コントロールを用いて相互連動することは、カーソル位置に対応する機能を呼び出すことによって生じる。呼び出される機能として、例えば、カーソル位置の近くの項目の選択、アプリケーションの作動、メディアハブ機能の実行、マウスイベントの起動、コントロールの状態の変更、又は、その他のヒューマンコンピュータ入力部の実行をあげることができる。
【００９８】
入力位置パラメータ（ｘ、ｙ、θ、又はｄなど）は、出力位置パラメータと同一、又は１対１の関係でよい。例えば、ユーザの腕の角度θは、アバターの腕の角度θ’と同一、又は、鏡像の関係でよい。ユーザインタフェース９２０では、例えば、カーソル位置９２１は、アバターの身体位置９２２に対して角度θに位置する。このように、アバター（又はカーソル）はユーザを表し、コントロールの上部、下部、又は側部に位置することができる。
【００９９】
アバターは、オブジェクトの検出された位置に基づいて、ユーザの動きを模擬するように生き生きと動くことができる。ユーザの顔を検出して、検出した顔に基づいてユーザの識別を行い、ユーザの識別に応じてコントロールを調整するようにしてもよい。検出領域の中の２番目のオブジェクトの位置を検出して、検出した２番目のオブジェクトの位置に基づいて，ユーザインタフェースの中で２番目のコントロールを相互連動させてもよい。
【０１００】
図１〜９を参照して、カメラをベースとした入力を、画像に撮像されたユーザの腕の動きを、ユーザインタフェースの中のカーソル又はその他のユーザの描写にマッピングすることによって、高度なコントロールに適用した場合について説明した。以下、図１０〜３９を参照して、カメラをベースとした入力とともに使用する、又はカメラをベースとした入力を受け入れるように構成された、高度なコントロールの種類の非限定的な例について説明する。図４０に示すコントロールなど、異なるコントロールもカメラをベースとした入力を用いてもよい。
【０１０１】
図１０は、状態１００４ａ〜１００ｄに示す、カメラをベースとした入力を用いた、代表的な高度なコントロール１００２を適用した、ユーザインタフェース１０００の概念図である。連動ジェスチャの検出の前、又は、連動ジェスチャの検出の後であるが、画定された検出領域にコントロールオブジェクトが検出される前に生じる状態１００４ａでは、ユーザインタフェース１０００は、（とりわけ）、アバター１００６と、アバター１００６の上方に配設されるコントロール１００２とを含む。コントロール１００２は、ガイドライン１００９（状態１００４ａでは点線として示される）と、各々が英語のアルファベットの文字を有する項目１０１０ａ〜１０１０ｚとを含む。項目１０１０ａ〜１０１０ｚは、文字を表して示されているが、アイコン、機能、画像、オブジェクト、記号、アプリケーション、キャラクタ、グループ、又はクラスタ、あるいは異なる項目など、その他のものを表していてもよい。
【０１０２】
状態１００４ａでは、ユーザ入力はまだ検出されていない（すなわち、画像で、ユーザの周りに覚醒された領域の中で、ユーザの手又は腕が検出されていない）ので、アバター１００６は中立又はリラックスした位置で、アバター１００６の腕１０１１ａ及び１０１１ｂもアバター１００６の胴体１０１２の側部にリラックスした状態で描かれている。
【０１０３】
アバター１００６は、人間のような外見を有し、仮想世界の中を誘導することができる。アバターの例として、ＢＬＩＺＺＡＲＤ ＥＮＴＥＲＴＡＩＮＭＥＮＴ（登録商標）によるＷＯＲＬＤ ＯＦ ＷＡＲＣＲＡＦＴ（登録商標）などのビデオゲーム、ＬＩＮＤＥＮ ＲＥＳＥＡＲＣＨ， ＩＮＣ（登録商標）によるＳＥＣＯＮＤ ＬＩＦＥ（登録商標）などの仮想世界で再生可能なキャラクタを含む。カメラ入力部は、アバターの手など、オブジェクトのコントロール部分にマッピングされ、ユーザの身体の周囲の空間におけるユーザの動きを、アバターの動きによって、ミラーリング又は模倣することができる。カメラでユーザのテクスチャ画像を撮像し、その画像をアバター１００６に重ね合わせることによって、アバター１００６はユーザの外見を有することができる。
【０１０４】
「項目」とは、構成単位又は要素の群からユーザが選択を所望することができる構成単位又は要素を意味し、項目と類似又は非類似の構成単位又は要素を含むが、これに限定されない。この群は、項目がゼロでもよいし、又は、数百、数千、数百万の項目を含んでもよい。一つの簡単な例では、項目はアルファベット文字であり、項目群は、英語アルファベットの２６文字、又は、大文字と小文字を区別した５２文字を含む。同様に、群は、／、＠、＃、＄、％、Λ、＆、＊、（、）、｛、｝、＜、＞、：、；、’、”、？、／、〜、’、などの記号文字、又は、キーボード又はキーパッドの選択によって通常アクセスすることのできない、その他の記号文字から構成する、又はかかる記号文字を含むことができる。その他の群は、名称のリストから選択可能な人名又は地名などの名称、アイコン、機能、又は、メディア設定（例えば、「再生」、「音量アップ」、「電源オフ」、「連続記録（Ｒｅｃｏｒｄ Ｓｅｒｉｅｓ）」）などの設定を含むことができる。
【０１０５】
また、項目は、番号（０〜９）、文字（例えば、英語アルファベットの文字Ａ〜Ｚ、又は、日本語のカナ文字）、テキスト記号（例えば、スペース” ”、ハイフン”−”、ピリオド”．”）、所定の、又は、動的に決定されるテキストのフレーズ（例えば、「．ｃｏｍ」、「．ｏｒｇ」、「ＦＡＱ」、「メインメニュー」、「送信」、「着呼受付」、「ＤＶＤ再生」、「電源オフ」など）、名称、タイトル、時間、日付、動作、イベント、処理、又は機能（例えば、「ゲームの保存」、「ゲームのロード」、「アプリケーションの起動」、「データの送信」、「メディアプレーヤ」、「フォトビューア」、「ペイントブラシ」、「電子メール」、「地図」）、設定オプション（例えば、「６４０×４８０解像度モード」、「８００×６００解像度モード」、「エキスパートモード」、「ノービスモード」、「トレーニングモード」、「チートモード」）、又はその他の情報又は情報の組み合わせを含むことができる。
【０１０６】
状態１００４ｂは、手などのユーザのコントロールオブジェクトが、ユーザの周りの所定の領域で検出されると発生する。この位置は、＋記号で示すように、項目１０１０ｚによって占められたユーザインタフェース１０００の領域の上を移動するカーソル位置にマッピングされ、マウスオーバー（Ｍｏｕｓｅ Ｏｖｅｒ：マウスが重なる）条件と類似した条件が確定する。マウスオーバー条件が検出されると、アバター１００６の腕１０１１ｂが、アバター１００６が項目１０１０ｚを指し示す、又はつかむように生き生きと動く。さらに、項目１０１０ｚは強調表示されて、サイズが大きくなり、隣接する項目１０１０ｙも少しだけサイズが大きくなる。項目１０１０ｚの上のマウスオーバー条件はまた、出力領域１０４０に項目１０１０ｚを表示する、又は、項目１０１０ｚを、テキスト音声変換器を用いて変換し、スピーカを用いて発話することによって、項目１０１０ｚを出力させることもできる。マウスオーバー条件はこのように、関連する項目を事前に選択された、作動された、強調状態された状態にすることができる。しかし、項目を事前に選択する、又は強調表示することは、厳密には項目にその外見を変化させることを必須とするものではない。
【０１０７】
ユーザがその手を伸ばし、自分の身体の周辺の空間で、自分の頭部上方の所定の領域の中の位置により近づけ、これがより垂直な位置で検出されると、ユーザインタフェース１０００は状態１００４ｃに変化する。手の位置は、コントロール１００２の項目１０１０ｓの上のガイドライン１００９に沿って新しいカーソル位置にマッピングされる。アバター１００６の腕１０１１ｂは生き生きと動き、空間のユーザの手の動きに追随する。ユーザの描写が項目に近づく、又はガイドライン１００９を超えると、近づかれた項目は、サイズが拡大して強調表示される。描写が強調表示された項目から離れると、項目のサイズは縮小する。
【０１０８】
ユーザが物理的ボタンを選択する、又は、他の選択ジェスチャ（自分の他の手によって行うジェスチャ、又は、自分の手のポーズを変形するなど）を実行されると、作動された項目１０１０ｓが出力されるようにすることができる。文字の上にカーソルを配置してタブ操作している間に、その文字の上を描写が所定の時間期間留まる、又は、キーボードキーで選択することによって、選択を行ってもよい。文字の選択（又は見込み選択）によって、項目が強調表示されようにして、文字を、ガイドラインに沿ったその他のものと区別できるようにすうことができる。アバター、又は、ガイドラインの位置を画定するために用いる他のオブジェクトは、ユーザの動きがアバター１００６の腕１０１１ｂの動きにマッピングされるように、それ自体が項目と相互連動することができる。
【０１０９】
状態１００４ｄでは、項目１０１０ｓが選択されている。選択が行われると、項目は元の強調されていない状態に戻る。さらに、アバター１００６の腕１０１１ｂはその元の、胴体１０１２の隣の弛緩した位置に戻る。選択された項目１０１０ｓは、例えば、出力領域１０１４に出力される。
【０１１０】
様々な状態で示したように、高度なコントロールを用いて、アルファベットからなる文字グループの中から、１以上の文字を選択することを容易にすることができる。ガイドラインに沿ってこれらの項目を配置する、又は配列させることによって、アバター又はオブジェクトを妨げる、又は遮る、又はそれらと重なり合うことなく、これらの項目を表示させ、ユーザが直感的に選択できるようにすることができる。
【０１１１】
図２に図示したデバイスを用いて、高度なコントロールを呼び出し、出力し、使用することができる。簡潔に表現すると、この処理は、ユーザインタフェースにおいてオブジェクトに対してガイドラインを画定し、オブジェクトを遮蔽することなく、ガイドラインに項目を配置して表示する処理を含む。また、表示された項目の一つの選択を受け付けることによって、選択された項目を出力することができる。
【０１１２】
より詳細には、ガイドラインは、ユーザインタフェースにおいてオブジェクトに対して画定することができる。これは、ユーザが手動で高度なコントロールを表示するように指示する、又は、ユーザがテキスト入力フィールドに進むなどして、１以上の項目を入力すると判断した時に開始するようにしてもよい。強調表示される項目のサイズが増大することによって、高度なコントロールを用いて、項目が全て同一の寸法を有していた場合にユーザインタフェースに通常収まるガイドラインに沿ってより項目を表示することができるので、ガイドラインの画定はまた、高度なコントロールを用いることなく、全ての項目が効果的にユーザインタフェースに表示うることができないという決定がなされた後に開始することもできる。こうすることによって、高度なコントロールは、ユーザが、容易に信頼性をもって個別の項目の選択を行うために効率的又は有効なサイズで項目の部分群の表示を行うことができる。
【０１１３】
簡単に、図１１に、オブジェクト１１０２（点線の円で示す）と、さらにガイドライン１１０４を有するコントロール１１０５と、を含むユーザインタフェース１１０１を示す。ガイドライン１１０４は、図１１では点線で示しているが、他の代表的な実施例では、ガイドライン１１０４は実線で示すか、又は、図示していない。
【０１１４】
コントロール１１０５は、文字１１０６などの項目の直感的な選択又は出力を可能とするとともに、同時に、ガイドライン１１０４に隣接する、ガイドライン１１０４の近傍の、ガイドライン１１０４を部分的又は全体的に境界とする、又はガイドライン１１０４によって囲繞、あるいは、画定される領域にオブジェクト１１０２の一部又は全体を表示することができる。ユーザがテキストデータの入力を要求する入力フィールドを選択した時など、項目を出力する、又は選択すると判断された時、コントロールは、項目１１０６とオブジェクト１１０２を表示することができるユーザインタフェース１１０１の場所に配置され、オブジェクト１１０２に対して、オブジェクト１１０２に関連して、オブジェクト１１０２に基づいて、又はオブジェクト１１０２について画定される。換言すると、オブジェクト１１０２の位置は、ガイドライン１１０４、及びコントロール１１０５のその他の要素が方向付けされる、又は、配列される、あるいは、他の要素が位置決めされる固定位置を表すことができる。
【０１１５】
この固定位置を決定するために、ガイドライン１１０４を画定するオブジェクトと、そのオブジェクトの位置を決定する。いくつかのケースでは、オブジェクトは、コントロール１１０５が、アバター、ユーザの画像、つまみ、アイコン、リスト、データのテーブル、データのグラフ、テキスト入力フィールド、他のコントロール又はウィジェット、又は、ユーザインタフェース１１０１の既知の空白領域と組み合わせて出力される場所、又は、アバター、ユーザの画像、つまみ、アイコン、リスト、データのテーブル、データのグラフ、テキスト入力フィールド、他のコントロール又はウィジェット、又は、ユーザインタフェース１１０１の既知の空白領域を含む場所などに所定、又は予め画成することができる。他のケースでは、オブジェクトは、コントロール１１０５を出力する時に動的に決定することができる。例えば、ユーザインタフェース１１０１の最新の状態に基づく、ユーザインタフェース１１０１の空白領域の場所が存在する場所、ユーザがテキストフィールドにタブ操作をして、テキストフィールドをオブジェクトとして利用する、画面で最大、又は最重要、又は最も色彩豊かな、又は最も色彩の乏しいオブジェクトを動的にオブジェクトとして決定する、又は、焦点となる要素、領域又はウインドウを動的にオブジェクトとして決定するようにしてもよい。
【０１１６】
これらのケース、又は他のケースでは、オブジェクト１１０２のサイズ、形状、位置、境界、又はその他のコンテクストが検出され、ガイドライン１１０４はこれらの検出されたコンテクストに対応して画成される。例えば、ガイドライン１１０４は、オブジェクト又は、オブジェクトの一部と重なり合う、又は重なり合わない関係、又は、分岐する関係、分割する関係、空間を制限する、又は限定する関係、又は、オブジェクト１１０２のサイズ、形状、比率、解剖学的なモデルに基づく関係など、その他の関係で画成することができる。
【０１１７】
要約すると、とりわけ、ユーザインタフェース１１０１は、オブジェクト１１０２を含む。オブジェクト１１０２は、ユーザの描写、項目の群を構成する項目１１０６であってもよい。項目１１０６を、ユーザが従来通り信頼性をもって各項目を選択することができるサイズと位置に表示されるように、項目１１０６は動的に表示することができる。ユーザインタフェース１１０１の中に項目１１０６の各々を併せる、又は、大きいサイズでガイドライン１１０４に配列させることは困難なことがあるため、項目１１０６の部分群をより大きなサイズで表示するようにしてもよい。
【０１１８】
図１２及び図１３に、代表的なガイドラインの配置と、ガイドラインとオブジェクトとの代表的な関係を図示する。図１２では、ガイドライン１２０１は直線であり、オブジェクト１２０２と重なる、又はオブジェクト１２０２の上部三分の一を分割する、又は、オブジェクトの頭部１２０４をオブジェクト１２０２の胴体１２０５から分離するように画成されている。図１３では、ガイドライン１３０３は曲線であり、オブジェクト１３０２の上部で所定のピクセル距離が最大となる、又は、オブジェクト１３０２を遮蔽しない、又は、オブジェクト１３０２の腕１３０４（又はその他のコントロール部分）の動きの範囲の中となるように画成される。
【０１１９】
ガイドラインは、ガイドラインに配列される項目が、オブジェクトの到達範囲の中となるようにオブジェクトに対して画成することができる。図１３に示すように、曲線のガイドライン１３０１は、個々の項目又は項目の部分群がアバター１３０２の伸びた腕１３０４の一方によって到達できるように弧の形状を形成している。いくつかのケースでは、曲線のガイドライン１３０１の曲率半径を、腕１３０４の一方を頭部の上方に伸ばした位置として、ガイドライン１３０１の位置がその腕１３０４の一方の自然な振りに対応するように、アバター１３０２の腕１３０４の長さに基づいて決定することができる。他のケースでは、曲線のガイドライン１３０１の曲率半径を、入力デバイスの範囲（例えば、傾斜センサの傾斜角度の範囲、又は、ビデオゲームコントローラの方向パッドの動きの範囲）に基づいて決定することができる。他のケースでは、曲線のガイドライン１３０１の曲率半径を、ユーザの動きの範囲に基づいて（例えば、ユーザの腕の長さに基づいて）決定することができる。ユーザの動きの範囲を決定することは、ユーザの（顔検出を用いた）識別と、ユーザの年齢、性別、またはユーザに関するその他の情報に基づくユーザの特定の動きの範囲の推定を含む。
【０１２０】
以下、カーソルがガイドラインの上方を移動して項目を選択するガイドラインについて説明するが、その他のレイアウトおよび構成も可能である。例えば、ガイドラインは、選択可能な項目の上方、又は、選択可能な項目の側方に配置してもよく、水平、垂直、又は対角線方向に方向付けしてもよい。
【０１２１】
図１２及び図１３に示した直線および曲線のガイドラインの他に、ガイドラインは、ジグザグ、円形、多角形、又はその他の形状を有してもよい。ガイドラインの起点と終点は、水平又は垂直に直線上に配置されてもよく、これら起点と終点は、直線以外の態様でもよい。ガイドラインは規定された起点又は終点（又は、起点又は終点の外見）を有さない、又は、起点及び終点が一致する、円形又は連続的でもよい。ガイドラインに沿って配列された項目自体が継続的に又は断続的に移動又は生き生きと動くように、ガイドラインは、それ自体が、移動する、又は生き生きと動くオブジェクトであってもよい。
【０１２２】
動きの範囲は、生物動力学的な制限、又は人体の能力を模倣するモデルなど、複雑な解剖学的モデルに基づいて決定し、これらをアバター又はユーザの能力に適用することができる。ユーザの頭部の寸法に乗数を乗じた積と等しい距離を、ユーザの腕の到達範囲と見積もるアプローチなど、より単純な経験的な常識も用いることもできる。いずれの場合でも、ガイドラインの個別の位置決め、方向付け、配置、又は構成は、オブジェクトの何らかの外観によって画成される。そのようなものとして、オブジェクト１３０２は、ガイドライン１３０１によって囲まれるとみなす。
【０１２３】
オブジェクトの位置に基づいて、ガイドラインを、所定の位置の一部を囲むように動的に画成することができる。オブジェクト、又は、オブジェクトの一部が円の中にあり、ガイドラインがその円の何れかの一部である弧を画定する場合、ガイドラインはオブジェクトを囲むものとみなす。図１３に示すように、例えば、ガイドライン１３０１が、オブジェクト１３０２の大部分を囲む円を形成するが、伸びた場合には、オブジェクト１３０２の指を表す小さな領域は除外され、円の外となる。
【０１２４】
ガイドラインは動的に画成できるので、ガイドラインがリアルタイム又は略リアルタイムに再画成して、ユーザがガイドラインの再画成又は再配置を認識又は観察できるようにしてもよい。例えば、他のオブジェクトがオブジェクトに隣接していないことを検出すると、最初にガイドラインが、図１３に示すように、そのオブジェクトの上方に画成することができる。図１４に示すように、２番目のオブジェクト１４０１が、制御をしているオブジェクト１４０４の左側のユーザインタフェース１４０２に入力されると、ガイドライン１４０５は再画成、又は、再配置されて、２番目のオブジェクト１４０１から離れる、又は、２番目のオブジェクト１４０１に対向するコントロールオブジェクト１４０４の側部に動的に画成することができる。２番目のオブジェクトは、カメラ画像の第２のユーザ、ネットワークを介して制御される２番目のユーザのアバター、プログラムによって制御される非プレーヤキャラクタのアバター、又は、他の種類のオブジェクトに対応することができる。かかる特徴は、高度なコントロールを、複数の移動するオブジェクトを有する非静止ユーザインタフェースでより効率的に利用できるようにするという利点がある。
【０１２５】
ガイドラインの画成は、さらに、アバターのコントロール部分の動きの範囲を決定することと、ガイドラインを、コントロール部分の動きの範囲内に画成することを含んでもよい。ガイドラインはコントロール部分の動きの範囲の外縁に沿って画定することができる。例えば、垂直の方向を向いたガイドライン１４０５の曲率半径は、アバターの腕の長さに基づき、垂直の方向を向いたガイドライン１４０５が腕を側方に伸ばした位置した時の、アバターの腕の自然な振りに対応するように、決定することができる。
【０１２６】
さらなる例では、項目の番号が単一のガイドラインに対応付けるには長すぎる、ユーザインタフェースが他の要素で混雑している、各項目が事実上、複数の項目、又は項目のクラスタを表している、又は、ガイドラインが部分に分割され、不連続な部分を画成している、又は、複数のガイドラインが画成されることがある。図１５では、ユーザインタフェース１５００は、垂直方向の長さほぼ全体を占めるオブジェクト１４０１を含み、ガイドライン１５０２は不連続な部分又は領域１５０４（点線で示す）を画成し、ガイドライン１５０２をガイドライン部分１５０２ａと１５０２ｂに効率的に分割する。
【０１２７】
図１６では、選択又は出力する項目の番号が大きく、単一のガイドラインで項目を表示又は選択することが困難になる、又は直感的でなくなるので、二つのガイドライン１６０１と１６０２がユーザインタフェースの中に画定される。ガイドライン１６０１と１６０２は、一般的形状が同一で、平行に図示されているが、いずれの特徴も必須ではない。例えば、ガイドライン１６０１は、オブジェクト１６０４の左側に沿って略垂直に配置されたジグザグ形状のガイドラインであってもよく、ガイドライン１６０２は、オブジェクト１６０４自体の胴体に重なるように画成された、六角形のガイドラインでもよく、又は、オブジェクト１６０４を全ての側面で完全に囲む円形のガイドラインでもよい。
【０１２８】
第１のガイドラインの項目の選択が、第２のガイドラインに配置された項目の画定又は表示を誘因するようにしてもよい。第１のガイドラインをアルファベット文字の選択に用い、アルファベットが選択されると、第１のガイドラインに表示されるアルファベット文字で開始する名称（又は他の項目の種類）が第２のガイドラインで表示される、又は出力されるようにしてもよい。
【０１２９】
オブジェクトに対応してガイドラインを画定する代わりに、ガイドラインもまた、ユーザインタフェースの境界に基づいて画定又は位置決めしてもよい。例えば、ガイドラインを、ユーザインタフェースの一端部（又は一端部の近傍のポイント）からユーザインタフェースの他の端部（又は対向する端部近傍のポイント）に延在するように画成してもよい。ガイドラインは、ユーザインタフェースの位置又はその他の要素、例えば、デスクトップアイコン、ユーザインタフェースボタン又は仮想世界の中のオブジェクト、に基づいて画成又は位置決めすることができる。ガイドラインは、ユーザインタフェースの境界に対して対称又は非対称でもよい。
【０１３０】
ガイドラインに対して配列された項目は、オブジェクトを遮蔽する、又は遮蔽しないように表示することができる。各項目の下の部分、中央部分、右の部分、左の部分、中心部分、又はその他の部分がガイドラインにある場合、又は、項目に対応するガイドラインのポイントに対して平行に設けられている場合、項目は、ガイドラインに対して配列することができる。図１１で、例えば、項目１１０６ａと１１０６ｚは厳密な意味では一直線上ではないが、それぞれの項目の部分は、ガイドライン１１０４に対して平行であるので、項目１１０６ａと１１０６ｚは、各々、ガイドライン１１０４上に配列されている。表示される際、配列された項目１１０６は全体として、一般的な形状、又は、ガイドライン１１０４自体の外観で表示される。図１２も、ガイドライン１２０１に対して配列された項目を示している。ガイドライン１２０１が直線であるため、第１の項目１２０６ａと最後の項目１２０６ｚは略一直線上に配置されている。
【０１３１】
図１７のユーザインタフェース１７００に示すように、各々の項目の中央又はその他の内部のポイントがガイドライン１７０１に対して配列される場合、各項目は、その中心の周りに回転して、表示された項目をやや不均一とする、又は、より無作為な外見とすることができる。集合した項目は、ガイドラインに対してほぼ配列されている、ガイドラインによって画成された構成又は配置、方向性、一般的な外見、感性を有しながらも、この無作為さは、いくつかの項目はガイドラインの上方に、いくつかの項目はガイドラインの下方に見えるように、項目をガイドラインの上方と下方にずらすことによってさらに強調することができる。
【０１３２】
項目は、ガイドラインにそって均等に分散してもよいし、均等に分散しなくてもよい。例えば、最初に項目を均等に分散した後、個別の項目の上をカーソルを移動させて、不均等に再分散させ、その項目のサイズを変更させることができる。あるいは、デフォルトの、又は好ましい項目を、より好ましい項目がその他の好ましい項目よりも目立つようにガイドラインに沿って分散さてもよい。さらに、項目の間の間隔は、パターン関数又は数学関数によって規定してもよいし、完全に無作為であってもよい。
【０１３３】
オブジェクト又は少なくともオブジェクトの一部は、項目が表示されると可視化され、オブジェクトは、遮蔽されなくなる。換言すると、オブジェクトを遮蔽することなく、項目を表示するので、項目がオブジェクトを完全に覆う、又は妨げることはない。項目の透明度、色、又は、線の太さ、などの項目の所定の特徴を変化させて（例えば、項目がオブジェクトと重なる部分では選択的に変化させて）、オブジェクトを幾分でも可視化することができる。
【０１３４】
項目を初めて表示する第１の時点では、項目をオブジェクトを遮蔽することなく表示し、第１の時点の前後の第２の時点では、項目がオブジェクトを、又はオブジェクトの一部を遮蔽する、隠蔽する、不明瞭にする、遮断する又は覆うようにすることができる。一例として、図１２及び図１３では、ユーザインタフェースでそれぞれのオブジェクトの少なくとも一部は可視化されているため、項目は、各々のオブジェクトを遮蔽することなく表示されている。さらなる例では、図１６は、どの項目のいかなる部分も、ユーザインタフェースの内部で関連するオブジェクトのいかなる部分の可視化も覆っていない、遮断していない、又は干渉していないので、項目は、関連するオブジェクトを遮蔽することなく表示されている。
【０１３５】
例えば、マウス又はカメラ入力を用いて、表示された項目の一つを選択したことを受け付けることができる。一実施例では、ユーザインタフェースは、各項目の周りの領域を画定し、項目に関連する領域の内部でオブジェクトのカーソル又はコントロール部分が検出されると、項目は選択される。領域は、ユーザの相互連動に応じて動的に再画成することができる。例えば、領域は、マウスオーバー条件に基づいて、又は、カーソルがガイドラインを横切ったことを検出した時に、サイズを増大し、又は、カーソルが離れ、別の項目を強調表示する時、又はガイドラインを再び横切った時に、サイズを縮小することができる。
【０１３６】
以下、詳細に説明するように、項目の選択は、ユーザが選択行うために使用する入力部の種類に応じて、複数のアプローチによって行うことができる。例えば、選択は、マウスのカーソルが、選択する項目の上に重なり（マウスオーバーイベントが誘発され）、マウスボタンが押下され（マウス押下イベント）、マウスボタンが解除される（マウス解除イベント）、マウスを用いたカーソル式のユーザ選択でもよい。クリックイベント、ダブルクリック（ｄｂｌクリック）イベント、又は、マウスオーバーイベントのみなど、マウスによる他のマウスイベントを用いて、項目を選択してもよい。
【０１３７】
キーボードを用いて、ユーザは一つの項目から他の項目へタブ操作し、他のキーボードキー（例えば、スペースバー又はリターンキー）を用いて、強調表示されている項目を選択する、又は、ユーザが文字のタイプを開始して、所望の項目を絞り込み、識別して選択するようにしてもよい。ユーザは、ビデオゲームコントローラ又は手持ちのリモコンを用いて、方向パッドを押下して、強調表示される項目を変更し、ボタンを押下して、強調表示される項目を選択するようにしてもよい。ユーザは、傾斜センサを有する可動デバイスを用いて、所望の項目を強調表示するまで、デバイスを左右、上下に傾斜させて、カーソルを移動させる、又は、他のインジケータを左右、上下に移動させ、その後、キーを押下する、又は可動デバイスを振って、選択を登録するようにしてもよい。ユーザはタッチ画面デバイスを用いて、ユーザインタフェースのＸ、Ｙ座標に直接触れて、所望の項目を出力させてもよい。ユーザは、音声インタフェースを用いて、「タブ」、「左」、「右」、「選択」、又はその他類似の音声コマンド、などのコマンドを発話し、カーソルを項目の間に移動し、所望の項目を選択するようにしてもよい。
【０１３８】
ユーザはマウス又はビデオコントローラを用いてアバターを直接制御してもよい。例えば、ユーザは、ビデオコントローラを用いて、アナログコントロールスティックを移動して、アバターの腕を移動させ、アナログコントロールスティックの角度はアバターの腕の角度にマッピングされる。ユーザは、モーションキャプチャデバイスを用いて、アバターの腕がユーザの現実の腕の動きを模倣するようにして、アバターを直接制御することができる。
【０１３９】
本書が説明する高度なコントロールは、ビデオに基づくコントロールシステムと互換性がある。具体的には、カメラは、ユーザの画像などの画像を検出し、画像の部分、画像の中の動き、画像から識別されたジェスチャが、リアルタイム又は略リアルタイムで動的にカーソルにマッピングされる。例えば、ユーザを囲む検出領域は、シーンの中のユーザの画像に画成され、検出領域の中のオブジェクト（例えば、手など）の位置が検出される。相互連動される高度なコントロールは、検出されたオブジェクトの位置に基づく。
【０１４０】
さらに他の入力機構について説明するが、アプローチ又は技術については簡潔のために省略する。項目は、想到可能なアプローチ、技術又は機構を用いて自動的又は手動で選択されるとすることで十分である。
【０１４１】
オブジェクトは、アバターなどのユーザの描写であってもよい。ユーザインタフェースにユーザの描写を表示することによって、ユーザは容易に、項目の位置に対するオブジェクトの位置を認識でき、迅速にカーソル又はアバターのコントロール部分（手など）の位置を移動して、所望の項目に位置と一致させることができるので、訓練要件は削減される。ここでは、カーソル又はアバターのコントロール部分の位置を用いて、ユーザインタフェースに表示される項目の選択、又は「接触」を検出する。
【０１４２】
オブジェクトがアバターである場合、アバターの潜在的なコントロール部分を、コントロール部分として指定して生き生きと動かすことができる。例えば、コントロール部分は、アバターの１以上の腕、足、肘、膝、手、又は指、又は、鼻、目、耳、ヘソ、首、髪、衣服、アクセサリなどのアバターの身体的特徴、又は、衣服、宝石、その他の私物品などのアバターの付属品であってもよい。ユーザ入力を受け付けると、指定されたコントロール部分は生き生きと動き、項目と相互連動する、又は項目と相互連動するように見せる。
【０１４３】
オブジェクトがつまみ又はスイッチの外見を有する場合、コントロール部分は、オブジェクトの身体から伸びる矢印であってもよく、オブジェクトが項目の方向を指し示して回転してもよい。オブジェクトが、炎、プラズマ、電光又は液体のシミュレーションなどの粒子システムエフェクトを含む場合、粒子は、稲妻、又は水滴の変形などの、項目の方向を指し示す拡張部を形成して、項目との相互運動を表すようにしてもよい。
【０１４４】
図１３では、例えば、オブジェクト１３０２はアバターであり、アバターの腕１３０４ａがコントロール部分として指定されている。ユーザが身体の周りの空間で腕を左右に動かすと、腕１３０４ａは生き生きと動き出して、左右にそれぞれ移動し、腕、より詳細には、腕の手又は指に対する項目の近接度に応じて項目が選択される。同様に、手１３０７もまた、コントロール部分として指定することができる。類似の構成で、ユーザの身体の周りの空間における手又は両手の上下の動きは、人間の動きに適したように、腕１３０４ａ又は手１３０５を上下に動かす。
【０１４５】
これらの上下の動きは、腕１３０４ａ又は手１３０５を項目から離れ、腕１３０４ａ又は手１３０５が項目又はガイドラインに近接していない（相互連動しない）所定のポイントでは、項目を「選択」しているように見えても項目を出力させることはない。ガイドラインを画成して、アバターがガイドラインの下方のほとんどの部分となり、オブジェクトによる文字又は項目の選択が、アバター又はガイドラインの頭部上方にアバターの手を位置することによって、行われるようにしてもよい。
【０１４６】
アバターの潜在的なコントロール部分をコントロール部分として指定することは、他のコントロール部分に動的に切り替わることであってもよい。例えば、再び図１３を参照すると、ユーザが、コントロールオブジェクトとして用いている腕を切り替える、又は、項目１３０６ｎに関連する位置を通り抜けるように一つの腕を動かすと、コントロール部分は、左腕１３０４ａから右腕１３０４ｂに切り替わり、左腕１３０４ａは、ガイドライン１３０１に沿って項目１３０６ｎの左までの全ての項目と相互連動して選択を行い、右腕１３０４ｂは、ガイドライン１３０１に沿って項目１３０６ｏの右までの全ての項目と相互連動して選択することができる。かかる特徴は、簡素なマウスカーソルを用いて単に項目に沿って項目を選択する代わりに、ユーザは、相互連動するアバターを現実的で直感的な手法で制御しているように思えるので、ユーザが経験する視覚的な楽しみを増大することができる。
【０１４７】
切り替えが行われ、左腕１３０４ａがコントロールオブジェクトとして指定されなくなると、左腕１３０４ａは生き生きと動き、オブジェクト１３０２の胴体の側部に沿った位置など、中立の、休憩、又は弛緩した位置に戻る。反対に、この切り替えによって、右腕１３０４ｂは、途切れなく生き生きと動き、弛緩した位置からオブジェクト１３０２の胴体の側部に沿って腕１３０４ａが以前に占めていた位置、又はその位置に隣接した位置に移動する。この例で続けると、ユーザが片方の腕又は両腕を項目１３０６ｎと１３０６ｏによって画定されたガイドラインに沿った空間の間を迅速に往復すると、あるいは、アバターは生き生きと動き、楽しく、ユーモアをもって、あるいは視覚的に刺激となる動作で、腕をオブジェクト１３０２の側部からオブジェクト１３０２の頭部の上部に腕を振り動かせることもできる。
【０１４８】
さらなる例では、アバターの目をコントロールオブジェクトとして指定し、オブジェクトを囲むガイドラインに沿って項目を見つめ、目で追っているように見せることもできる。コントロールオブジェクトとして指定されていないアバターの他の部分もまた生き生きと動いて、例えば、強調表示される項目に反応する、又は、強調表示された項目に基づいて、所望のポーズ、より現実的なポーズをとるように見せてもよい。一実施例では、アバターの口が生き生きと動いて、選択された、又は強調表示された項目を話す、又は、発話しているように見せることができる。又、アバターの首又は頭部が生き生きと動いて伸び、アバターが強調表示されているオブジェクトを緊張して見ている、又は熟考している様子を一層強調させることができる。
【０１４９】
同様に、複数のオブジェクト（例えば、複数のアバター）がユーザインタフェースに表示された場合、ユーザの選択に基づいて、強調表示された文字、又は高度なコントロールに近づいた時、又は、他の要因に基づいて、２番目のオブジェクトを制御するオブジェクトとして切り替えることができる。このため、コントロール部分又はコントロールオブジェクトの指定は、第１の潜在的なコントロール部分又はオブジェクトから第２の潜在的なコントロール部分又はオブジェクトへ切り替わる、又は、第２の潜在的なコントロール部分又はオブジェクトから第１の潜在的なコントロール部分又はオブジェクトに切り替わることができる。
【０１５０】
選択された項目は出力することができる。選択された項目を出力することは、さらに、選択された項目を表示すること、選択された項目の電子的な指標（ｅｌｅｃｔｒｏｎｉｃ ｉｎｄｉｃｉａ）を出力すること、又は、ユーザインタフェースの中で選択された項目の色、不透明度又はサイズを変化させて、選択された項目を強調表示することを含んでもよい。選択された項目、又は選択された項目の指標は、後の使用のために他のデバイス又は記憶媒体に出力することができる。
【０１５１】
図１１では、選択された項目１１０６ｒの色、不透明度又はサイズは、第１の程度又は範囲に変化し、選択された項目１１０６ｒは、ガイドライン１１０４に沿って表示される項目全ての中で最大に見え、項目１１０６ｒと隣接する項目１１０６ｐと１１０６ｔの色、不透明度、サイズは、より少ない、第２の程度又は範囲に変化した。隣接する項目の色、不透明度、サイズ、又はその他の特徴が変化することによって、ユーザは、カーソル又は選択した項目の位置をより容易に識別することができ、コントロールの直感的な性質と、使いやすさが向上する。項目の色、不透明度、サイズ又はその他の特徴は、カーソルの画像が明示的に表現されない場所であってもカーソルの位置を示すことができる。
【０１５２】
高度なコントロールは、所与の時点で選択できる項目は少数であるので、ほとんどの項目は選択されずに残る。選択されない項目は、サイズを縮小することによって、多数の項目をユーザインタフェースの中に表示することができる。選択を検討している所定の項目のサイズは拡大するが、選択を検討している項目の全体的な認識と読みやすさは向上するため、コントロールの信頼性を向上することができる。換言すると、選択されていない項目のサイズを縮小することによって、離散的に選択又は接触することができる、より多くの選択可能な項目をユーザにより表すことができる。
【０１５３】
以下により詳細に説明するように、選択された項目１１０６ｒは、予想又は予測ヒューリスティクスを用いて現在選択された項目と以前に選択された項目に基づいて動的に決定される予想項目１１０９と、既に選択された項目１１０６ｆともに、ユーザインタフェース１１０１の出力領域１１０７で出力することができる。
【０１５４】
高度なコントロールは、アルファベットからの選択文字など、項目群から項目を画面上で選択することができる。ユーザの描写は、ガイドラインに沿って配列された、又は、描写に対して動的に位置決めされた選択可能な項目に、従来通り、及び信頼性をもってタッチすることができる。タッチることは、描写の一部がガイドラインに沿った項目の領域と交差する部分を決定することができる。描写の一部がタッチ領域に入ると、そのタッチ領域項目に近い項目がズーム表示、又は強調表示される。
【０１５５】
オブジェクト又はインタフェースの境界に対して二次元に画成されるガイドラインについて説明したが、ガイドラインは、３次元で画成してもよい。例えば、図１８に示すように、ガイドライン１８０１は、同一のＸ−Ｙ平面の中で画定された第１のガイドライン要素１８０２と、ユーザインタフェースのＸ−Ｙ平面に対して直交して延在するように表現されたＺ平面の中で画成された第２のガイドライン要素１８０４とを有することができる。他の平面又は軸を用いてもよい。
【０１５６】
３次元ガイドラインを用いることによって、コントロールと表示することができる項目の数は指数関数的に増加する。例えば、アバター１８０６の腕を左右に移動して、ガイドライン１８０１で項目「０」を選択した後、ユーザは両腕を空間の前後に移動して、選択する際に出力領域１８０９に表示される文字「＾」１８０７など、他の項目を選択することができる。ガイドライン要素１８０２と１８０４の両方とも、アバター１８０６の腕の３次元の到達可能範囲に画成される。
【０１５７】
さらに、離散的な起点と終点を含むガイドラインについて説明したが、他の実施例では、ガイドラインは、起点と終点を有さない、又は起点と終点の外見を有さない、又は、起点と終点が同一であってもよい。図１９のユーザインタフェース１９００は、例えば、項目１９０２ａ〜１９０２ｇの選択のため、円形ガイドライン１９０１を含む。円形ガイドラインは、起点１９０５と終点１９０６を含むが、これらのポイントは同一であり、異なるポイントとしてガイドライン１９０１に強調表示又は可視化されていない。
【０１５８】
さらに、他のいくつかの代表的なコントロールとは異なり、項目１９０２ａ〜１９０２ｇは各々、アイコンによって表され、アプリケーションが呼び出す機能に対応する。例えば、アバター１９０４が地球儀のアイコン１９０２ａを選択すると、マッピングアプリケーションが呼び出される。このように、本書で説明する高度なコントロールを使用することによって、キャラクタを選択することで、直感的で視覚的に楽しい手法でより複雑な機能の呼び出しを行うことができる。他のアイコンは、音量を上げる又は下げる機能、メール送信機能、無効コントロール機能、画像ビューワー機能などのメディア機能を含む、他の機能を表すことができる。
【０１５９】
図２０〜２４に、ガイドライン２００２に沿って配列された項目群２００１から個別の項目を選択する一例を図示する。図２０では、マッピングされてアバターの手として表示されたカーソル２００４が、関心項目２００１ｒに向かって移動する。図２１では、カーソル２００４の位置が、ガイドライン２００２と交差する。ガイドライン２００２との交差によって、各項目とカーソル２００４との間の距離に基づいて項目２００１の部分群２１０１を選択又は識別する、さらなる検出処理を開始することができる。カーソル２００４の位置は、カメラ画像によって検出された身体の周りの空間のユーザの点の位置に基づいて決定される。
【０１６０】
項目２００１の部分群２１０１は、より大きなサイズ又はスケールのフォントで表示され、ユーザの選択をより容易にしている。項目２００１の部分群２１０１の選択と、項目２００１の部分群２１０１の表示の拡大は、カーソル２００４がガイドライン２００２と交差したことを検出したことに応じて行ってもよいし、又は、ガイドライン２００２に対するカーソル２００４の位置とは無関係に行ってもよい。基本位置２１０２でカーソル２００４がガイドライン２００１と交差したこと、又は、項目が選択されたことを検出すると、例えば、音、画像、及び／又は、振動などの触覚出力を含む、ユーザフィードバックが生成される。
【０１６１】
図２２で、ユーザが関心項目２００１ｒを選択する。部分群２１０１は強調表示され、ユーザが、関心項目２００１ｒを含む通常エリアを選択し、そのエリアの中の項目を「ズームイン」し、文字「Ｒ」を表す関心項目２００１ｒを信頼性をもって従来通りに選択することができる。選択は、マウス操作、キーボード、キーパッドを打つ、ジェスチャ認識、カメラをベースとした入力、又はその他の多くのアプローチを介して行うことができる。
【０１６２】
カーソル２００４がガイドライン２００１と交差した位置を表す基本位置２１０２の場所は、多くの方法で検出することができる。例えば、図２３に示すように、基本位置２１０２の場所を、カーソル２００４がガイドライン２００１の上方に検出された後の時間に観察されたカーソル２００４と最も近い、又は、項目２００１ｒなどの強調表示された項目に最も近いガイドライン２００１の位置として決定することができる。
【０１６３】
基本位置は、他のアプローチを用いて検出することができる。例えば、基本位置２１０２の場所を、カーソル２００４がガイドライン２００１を交差したことを検出した時、又は、ガイドライン２００１と交差する前後の時間のカーソル２００４の位置を用いて、検出することができる。図２４は、例えば、ガイドライン２００２と交差する前の時間に観察されたカーソル２００４の位置を表す最終点２４０１と、ガイドライン２００２と交差した後の時間に観察されたカーソル２００４の位置を表す、最終点２４０２とを図示している。基本位置は、最終点２４０１、２４０２、ガイドライン２００１によって画定される線分２４０４の交点として決定することができる。
【０１６４】
項目２００１の部分群２１０１を強調表示することは、部分群２１０１を構成する項目のガイドライン２００１に沿った位置を決定することを含む。いくつかの実施例では、基本位置２１０２に近接して位置する項目が、項目２００１の部分群２１０１の部分として選択され、強調表示される（例えば、サイズを拡大して表示するなど）。このため、基本位置２１０２に近接する項目は、元の強調表示されていない位置、又はその近傍に残り、さらに基本位置２１０２から離れた項目は、項目２００１の部分群２１０１のサイズ拡大に対応できるように外側方向に移動する。
【０１６５】
以下の式（１）は、部分群２１０１が強調表示された後に部分群２１０１の中にない項目の位置を決定するために用いることができる。
【０１６６】
【数１】
2014149856.tif 000003
【０１６７】
式（１）において、Ｘｉは、ガイドラインに沿った項目ｉの元の状態の位置を表し、Ｘｉ’は、ガイドラインに沿った項目ｉの拡大された状態での位置を表し、Ｘｂは、ガイドラインに沿った基本位置を表し、Ｓｉは項目ｉの元の状態の基本サイズを表し、Ｓｉ’は、項目ｉの拡大された状態のサイズを表す。
【０１６８】
図２５は、項目の部分群が強調表示される前の第１の状態２５０１と、項目の部分群が強調表示された後の第２の状態２５０２とにおける、項目の部分群を示す。例えば、最初に、カーソル２５０５が、項目「Ｓ」の下で（基本位置２５０６が項目「Ｓ」と一致するように）ガイドライン２５０５を交差すると、項目「Ｓ」は、その元の位置の残り、項目「Ｒ」が、その元の位置に対して左の方向に距離２５０７だけ移動する。このようにして、第２の状態２５０２では、強調表示に続いて、縮尺を変更したサイズと位置で項目を表す。
【０１６９】
図２６は、項目の部分群が強調表示される前の第１の状態２６０１と、項目の部分群が強調表示された後の第２の状態２６０２とにおける、項目の部分群を示す。例えば、最初に、カーソル２６０４が、項目「Ｑ」の下で（基本位置２６０６が項目「Ｑ」と一致するように）ガイドライン２６０５を交差すると、項目「Ｑ」は、その元の位置の残り、項目「Ｒ」が、その元の位置に対して右の方向に距離２６０７だけ移動する。このようにして、第２の状態２６０２では、強調表示に続いて、縮尺を変更した項目を表す。したがって、特定の項目を選択するために用いるカーソル２６０４の位置は、カーソル２６０４が最初にガイドライン２６０５を交差した位置に依存することができる。
【０１７０】
図２７は、項目の部分群の強調表示に対応した状態２７０１〜２７０４における項目の部分群を示す。具体的には、図２７は、項目２７１０の第１から第３の部分群２７０６〜２７０８の選択と強調表示の概要を示す。第２及び第３の部分群２７０７、２７０８は、第１及び第２の部分群２７０６、２７０７に対して、カーソル２７１１の位置に応じて、位置決めすることができる。
【０１７１】
状態２７０１において、項目２７１０は、その元の、強調表示されていないサイズと位置を反映する。状態２７０２において、項目２７１０の第１の部分群２７０６が選択され、強調表示されている。状態２７０３において、項目２７１０の第２の部分群２７０７が選択され、強調表示されている。状態２７０４において、項目２７１０の第３の部分群２７０８が選択され、強調表示されている。
【０１７２】
状態２７０２において、最初に、カーソル２７１１が項目「Ｓ」の下で（基本位置が項目「Ｓ」と一致するように）、ガイドライン２７１２を交差すると、項目「Ｓ」はその元の位置に残り、周囲の文字がその元の位置から外側方向に移動する。カーソル２７１１が右に移動し、カーソル２７１１の距離の範囲内の項目２７１０の第２の部分群２７０７が選択されると、状態２７０２から状態２７０３に移行する。状態２７０３では、カーソル２７１１がガイドライン２７１２に沿って移動し、拡大された項目「Ｔ」と一致すると、項目「Ｔ」はその拡大された位置に残り、項目「Ｖ」が強調表示され、距離２７１５さらに、ガイドライン２７１２に沿って右方向に移動する。
【０１７３】
項目「Ｗ」〜項目「Ｚ」などの特定の項目に対してガイドライン２７１２に十分な空間が存在しない場合、項目はガイドドライの端部から「押し出され」、表示されない。カーソル２７１１がさらに継続してガイドライン２７１２の右端部まで移動すると、状態２７０３から状態２７０４に移行し、第２の部分群２７０７の一部である追加項目を表示するために十分な空間が存在しなくなり、第３の部分群２７０８が（第２の部分群２７０７の部分群として）形成される。
【０１７４】
項目「Ｕ」などの第２の部分群２７０７の右部分の項目、又は、項目「Ｗ」〜「Ｚ」などのガイドラインの「押し出された」た端部の項目を選択するため、ユーザは、ガイドライン２７１２をカーソル２７１１で再び交差し、ガイドライン２７１２を三回交差し、所望の項目により近い新しい基本位置を確立する。さらに、ガイドライン２７１２の右端部の項目を「押し出す」代わりに、ガイドラインの左端部の項目を「押し出し」、右端部の押し出されたであろう項目を表示する。いくつかの実施例では、項目を「押し出す」代わりに、ガイドラインで利用可能な空間に応じて、項目のサイズを縮小し、全ての項目をガイドラインに表示する。
【０１７５】
他の実施例では、項目は、ガイドラインの右端部の「押し出された」項目がガイドラインの左端部に再び出現する。連続した（例えば、円形）ガイドラインを用いた実施例では、項目はガイドラインの周りを押されて廻ることができる。このため、ユーザがカーソルを、連続したガイドラインの周りを時計方向に移動させることができる、円形ガイドラインの例では、項目の最新の部分群から除去された項目は、カーソルよりもより遅い角速度で時計方向に移動する（項目を追加する際に、項目が増大するためのスペースを設ける）ことができる。この例では、カーソルは、ガイドラインの周りを項目が一回転するごとに、ガイドラインの周りを複数回回転してもよい。
【０１７６】
スクローリングを行って、ガイドラインの端部で押し出されたであろう項目を容易に選択できるようにしてもよい。スクローリングは、カーソル２７１１が、ガイドライン２７１２の端部から所定の距離にあるか否かを検出することと、項目の位置に速度を適用することとを含む。基本位置（上記の式（１）を参照）に対する項目の位置を算出し、速度を基本位置に適用し、項目を移動させることができる。
【０１７７】
図２８に、代表的な速度関数を示す。水平軸２８０１はガイドラインに沿った位置を表し、垂直軸２８０２は速度を表す。カーソル位置がガイドラインの端部の近傍にある場合は、この速度関数を用いて、速度を適用して、項目を移動又はシフトさせ、カーソル位置がガイドラインの中心にある場合は、（速度はゼロとなるので）項目を移動又はシフトさせない。
【０１７８】
図２９に、ガイドラインに対するカーソル位置の距離（水平軸２９０２に反映）に基づいて項目の部分群の項目のサイズ（垂直軸２９０１に反映）を拡大又は縮小するために用いることができる代表的なスケーリング関数を示す。曲線２９０４で表すように、項目（Ｓｉ’）のサイズは、カーソルの現在位置の関数であってもよい。カーソルがガイドラインを交差していない時の全ての項目、又は、強調表示されていない項目に対する基本サイズ（Ｓｉ）は、ポイント２９０５を反映して決定することができ、線２９０６は、強調表示された項目に対応する最大サイズを規定する。
【０１７９】
代表的な一実施例では、曲線２９０４の傾きは、ポイント２９０５の近傍では略１：１であり、項目のサイズは、カーソルとの近接が減少するに従って、線形的及び比例して増大して表示される。カーソルが強調表示された項目に近づくにつれて、美的に楽しめる変遷を行うように、項目は、最大サイズに近づくと、増大しなくなる。
【０１８０】
図３０及び図３１に、特に、カーソル３００１がガイドライン３００２を交差する時に行われる、高度なコントロールによるスケーリング機能の使用例を示す。高さ３００４は、カーソル３００１の位置とガイドライン３００２との距離を表し、高さ３００５は、部分群３００７の項目３００６ｒなどの項目のサイズを表す。部分群３００７の項目の高さ３００５は、高さ３００４に基づいて縮尺変更され、カーソル３００１が少ない量だけガイドライン３００２を交差した図３０では、カーソル３００１がより少ない量だけガイドライン３００２を交差した図３１よりも、項目がより大きく表示されるようにしている。
カーソル３００１の位置は、カメラをベースとした入力を基づいて決定することができる。
【０１８１】
図３２及び図３３は、項目の部分群が強調表示される代表的なガイドラインを示す。具体的には、図３２は、項目３２０４の部分群３２０２が拡大表示されるガイドライン３２０１を示す。項目３２０４の部分群３２０２を選択することは、項目のサイズに基づいて部分群３２０２の中に含まれるように、所定の数の項目を選択すること、又は、複数の項目を動的に選択することを含むことができる。
【０１８２】
部分群３２０２を含む複数の項目は、部分群３２０２の項目がガイドライン３２０１の全長３２０７に延在するように、又は、ガイドライン３２０１の一部に延在するように、動的に選択することができる。図３２に示すように、部分群３２０２から除かれた項目３２０５ａ、３２０５ｂも、ガイドライン３２０１に沿って表示してもよい。部分群３２０２の複数の項目は、部分群の中の項目のサイズに基づいても変化してもよい。例えば、部分群３００７の幅を同一に保ちながら、部分群３００７が５つの項目を表示してもよく（図３０）、部分群３００７が３つの項目を表示してもよい（図３１）。
【０１８３】
部分群の項目を大きなサイズで表示することによって項目を強調表示することは、図３２に示すように、強調表示される項目の全てを同一の大きなサイズで表示すること、又は、図２５に示すように、カーソル位置に対してガイドラインに沿ったその位置に応じたサイズで部分群の中の個別の項目を表示することを含んでもよい。
【０１８４】
図３３に、項目３３０４の部分群３３０２が項目のサイズを変更しながら表示される、代表的なガイドライン３３０１を示す。例えば、部分群３３０２の端部の項目３３０５ｐと３３０５ｔ（文字「Ｐ」と「Ｔ」でそれぞれ表す）のサイズは、項目３３０５ｒ（文字「Ｒ」で表す）などの、部分群３３０２の中央の１又は複数の項目よりも小さいサイズであってもよい。サイズを変更しながら部分群３３０２の項目を表示することは、外見を楽しく美的にして、高度なコントロールの使用をより直感的にすることができる。図３３に示すように、部分群３３０２から除かれた項目３３０５ａと３３０５ｂも、ガイドライン３３０１に沿って表示してもよい。
【０１８５】
部分群３２０２、３３０２の項目を大きなサイズで表示することは、項目を動かすことを含んでもよい。動かすことは、部分群の項目を拡大することと、短い時間期間にわたって項目の位置をガイドラインに沿って並進すること（例えば、項目をガイドラインに対して垂直に保つこと）を含んでもよい。部分群３２０２、３３０２から除かれた項目は、動いて、サイズを縮小し、ガイドラインに沿って外側方向に移動し、部分群３２０２、３３０２のための「スペース」を設ける。
【０１８６】
ガイドラインの端部から「押し出された」項目は、単純に消える、又は、生き生きと動いて、ガイドラインの端から消え去る、又は、燃焼、爆縮、蒸発、爆発、液化、爆砕、又はその他の技術など、視覚的に刺激となる、又は、ユーモアのある手法で破壊されてもよい。同様にガイドラインに設けた空間のために再び現れる、前に「押し出された」項目は、単純に再び現れる、又は、ユーザインタフェースの頂部から落ちてガイドラインに戻るるように生き生きと動く、又は、視覚的に刺激となる、又はユーモアのある手法で自然に生成されてもよい。
【０１８７】
ガイドラインが不連続な箇所では、項目は、生き生きと動いて、不連続部分を横断するようにしてもよい。項目は、生き生きと動いて、高速でギャップを横断移動する、又は、上述のいずれかの視覚的効果を用いて「押し出される」、及び「再び現れる」ようにしてもよい。同様に、ガイドラインの「押し出された」一方の端部が対向する端部で再び現れる項目を生き生きと動かして、ガイドラインの端部とポイントとの間で高速移動する、又は、上述の何れかの視覚的効果を用いて、生き生きと動かして「押し出されて」、「再び現れる」ようにしてもよい。
【０１８８】
図３４に、ガイドラインに沿った項目の作動を示す。「作動」又は「強調表示」は、一般的に、選択する項目を決定することに関する。選択する項目を決定するシステムは、ヒステリシスを用いることができる。選択は、カーソルが最初にガイドラインを交差した時に最初に選択した項目を決定することを含むことができる。最初に選択した項目は、基本位置に対する距離が最も近い位置にある項目であってもよい。また、カーソルが項目の間に位置した時、二つの隣接する項目の間で不注意な揺らぎを削減するため、選択は、カーソルが隣接する項目の間の中点を所定の距離移動した都度、新たに選択された項目を決定することを含むことができる。
【０１８９】
例えば、二つの項目３４０２ｒ、３４０２ｓのガイドライン３４０１に沿った位置が線３４０４ｒ、３４０４ｓで示され、項目３４０２ｒ、３４０２ｓの間の中点の位置が線３４０５で示され、距離３４０６が、所定の距離を表す。例えば、項目３４０２ｓ（すなわち、文字「Ｓ」）が最初に選択した項目である場合、ユーザは、項目３４０２ｒ（すなわち、文字「Ｒ」）に向かう方向の中点３４０５を所定の距離超えた、線３４０７の左のカーソルを移動して、項目３４０２ｒを選択する。項目３４０２ｒが続いて選択され、項目３４０２ｓが再び選択する場合、ユーザは、項目３４０２ｓに向かう方向に中点３４０５を所定の距離３４０６超えた線３４０９の右のカーソルを移動する。
【０１９０】
所定の距離は、無意識の身体の震えに起因するユーザの動きの影響、又は入力ユニットの限界を考慮した、ユーザが静止を保つように努めている間に、カーソルが変動又は振動し得る、所望の最大距離に基づいて規定することができる。項目は、カーソルの位置がガイドラインの下方にある場合、又は、特定のユーザインタフェース、又は、高度なコントロールにより占有されるユーザインタフェースの領域の中に、カーソルが見つからない、又は、存在しない場合は選択されない。項目の選択は、さらに、例えば、音、画像、及び／又は、振動などの触覚出力を含む、ユーザフィードバックを生成することができる。
【０１９１】
部分群の項目を表示することは、選択の状態について、その外見でユーザフィードバックを提供するなど、項目を表示することを含むことができる。例えば、選択された項目を固有の色で表示する、又は、燃え立つように見せるなど、視覚的効果をもって表示することができる。最新の選択された項目は、項目が、第１の所定の持続時間閾値よりも長く選択された状態にあると、作動又は強調表示される。項目は、カーソルが項目の上にある時間期間維持されると作動する。作動は、選択された項目が、第２の所定の持続時間閾値より長く、選択されたまま保たれていると、繰り返す、又は、無効となるようにしてもよい。
【０１９２】
さらに、項目は、カーソルの位置がある時間期間静止していると、作動又は強調表示されるようにすることができる。カーソルは、ガイドラインに平行な位置の成分の変化が、所定の時間閾値を超えて所定の距離を下回る場合に、静止していると区分できる。例えば、カーソルの位置に最も近い項目が、識別されて作動する。作動は、カーソルが第２の所定の持続時間閾値を上回る期間静止していると区分されていると、繰り返す、又は無効となるようにしてもよい。さらに、項目は、カーソルの位置と対応するガイドラインとの間の距離に基づいて作動してもよい。例えば、項目は、かかる距離が所定の距離の閾値を上回ると作動するようにしてもよい。
【０１９３】
他の例では、項目の作動は、項目が選択された後、別の種類のユーザ入力の結果、行われるようにしてもよい。例えば、ユーザが、別の種類のユーザ入力を行い、選択された項目を作動してもよい。これらの例では、選択された項目の作動は、ユーザが、ユーザ入力ボタン（例えば、コントローラの上）をタッチして、音声入力を行い（例えば、「作動」と発話する）、他の種類のジェスチャ（例えば、項目の選択に用いる手をディスプレイの方向に動かす、又は、ユーザの他の手をディスプレイ画面の他の部分に動かして、選択された項目を作動する）、又は、他の種類のユーザ入力を行うようにしてもよい。
【０１９４】
図３５〜３８に、代表的な項目群を示す。図３５において、英語アルファベットの文字を含む項目３５０１は、作動する、又は、選択されると、第２の項目群を開く、項目３５０２を含む。選択されると、第２の項目群は、項目３５０１、又は項目３５０１の一部とともに、ガイドライン３５０４に沿って現れる、あるいは、第２の項目群がガイドライン３５０４の上の項目３５０１を取って代わる。項目３５０２を表すために使われた記号から、ユーザは、直感的に第２の項目群が番号を含むことを判断できる。
【０１９５】
図３６に、ガイドライン３６０２に配列された項目３６０１を示す。項目３６０１は、図３５の項目３５０２が選択されると表示される。第２の項目群が選択されると、ガイドライン３６０２の下のカーソルは除去される、又は、項目３６０１を表示するユーザインタフェースからカーソルは除去されて、項目３５０１は再び選択される、又は再び作動することができる。項目３６０１は、作動すると、項目３５０１を再び開く、再び作動する、又は再び選択する、項目３６０４を含む。項目３６０４を表すために用いた記号から、ユーザは項目３５０１が英語アルファベットからの文字を含むことを直感的に判断できる。
【０１９６】
図３７に、ガイドライン３７０１に配列された項目３７０１を示す。項目は各々、標準的な電話のキーパッドのキーと関連付けて公知である、標準的な数字と文字の組み合わせを表している。図３８に、項目３８０１の項目３７０２が選択された時（図３７を参照）に表示される、項目３８０１を示す。項目３８０１は、標準的な電話のキーパッドのキー番号「７」に関連付けられた番号「７」と文字の組み合わせを含む。
【０１９７】
図３５〜３８に示された項目を用いて、順に文字を入力し、テキストフィールドに言葉を形成するなどする、カメラをベースとしたテキスト入力機構を提供することができる。番号、文字、テキスト、記号、又は所定のテキストを作動して、番号、文字、テキスト、記号、又は所定のテキストを、既に入力されている文字列に付加することができる。あるいは、項目（図３５の項目３５０１からの項目など）の作動は、さらなる項目群を表示し、さらなる項目群の項目の作動は、作動した文字を文字列に付加することができる。項目の一つは、項目の列から最新の項目を除去することを容易とする、バックスペース項目でもよい。
【０１９８】
カメラをベースといたテキスト入力機構は、文字を組み合わせて複合文字を形成するこを含むことができる。日本語テキスト入力のテキスト入力機構は、（日本語パーソナルコンピュータキーボードのユーザには公知の方法で）カナ文字を組み合わせて漢字文字を形成することを含む。第１の項目群は、カナを表す項目を含むことができる。カナ項目が作動すると、対応するカナ文字が文字列に付加される。項目群は、作動すると、最新のカナ文字の列を漢字に変換する処理を作動する動作を表す項目を含むことができる。最新のカナ文字の列を漢字に変換する処理は、第２の候補漢字の項目群を表示することを含むことができる。漢字項目を作動すると、最新のカナ文字の列を作動した漢字で置換する処理を作動する。このカメラをベースとしたテキスト入力方法は、他の言語に拡張することができる。
【０１９９】
代替の日本語テキスト入力の方法は、カナを表す第１の項目群を表示することを含むことができる。カナ項目が作動すると、第２の項目群が表示される。第２の項目群は、作動したカナがその一部を形成する漢字を含むことができる。この群は、上述の第２の群よりも大きくてもよい。このテキスト入力方法は他の言語に拡張することができる。
【０２００】
テキスト入力機構は、項目群に確認項目を含むことができる。作動すると、確認項目は、処理を作動して、文字列がアプリケーションに提供される。さらに、テキスト入力機構は、予測テキスト完了処理を含むことができる。予測テキスト完了処理は、辞書をサーチして、上記文字列の文字を含む最も確率の高いテキストを検索する。最も確率の高いテキストを、出力フィールドに表示することができる。予測テキスト完了処理で使用される辞書は、テキスト入力機構で使用したコンテクストに基づいて選択することができる。例えば、辞書は、テキスト入力機構を用いて名称を入力する際の名称を含んでもよい。
【０２０１】
アプリケーション処理は、アプリケーションの状態に応じて、ユーザインタフェースの項目を決定することができる。項目を作動することは、メッセージをアプリケーション処理に提供することを含む。アプリケーション処理は、メッセージに基づいてコントロールすることができる。
【０２０２】
図３９に、カメラをベースとした入力と代表的な高度なコントロールを含む、代表的なユーザインタフェース３９００を示す。ユーザが、ユーザインタフェース３９００の様々なテキスト入力フィールドにアクセスすると、テキスト入力フィールドがオブジェクトとして使用されて、ガイドラインが画成し、テキスト入力フィールド自体を遮蔽することなく、テキスト入力フィールドに適当な項目がガイドラインに配列されて表示される。ユーザはガイドラインに配列された項目を選択して、対応するテキスト入力フィールドを満たす。ユーザインタフェース３９００は、複数の視覚的な高度なコントロールを同時に示しているが、このような同時の表示は、単に例示であり、可能なコントロールの位置、構成、配列、及び項目の種類を示すものである。他のインタフェースでは、例えば、一度に一つの高度なコントロールを表示してもよい。
【０２０３】
例えば、ユーザがテキスト入力フィールド３９０１に、そのフィールドへタブ操作を行い、マウスカーソルによってそのフィールドを選択する、又は、適当なジェスチャを行って、アクセスすると、テキスト入力フィールド３９０１に対してガイドライン３９０２が画成され、テキスト入力フィールド３９０１を遮蔽ないように、項目３９０４がガイドライン３９０２に配列されて表示される。テキスト入力フィールド３９０１は、テキスト又は文字データを受け付けるので、高度なコントロールは、自動的にアルファベット文字の項目３９０４がオブジェクトの種別に適当であると判断する。ユーザが項目３９０４から項目を選択すると、テキスト入力フィールド３９０１は、選択された項目で満たされる。ガイドライン３９０２か項目を選択する代わりに、ユーザは、また、様々なフィールドに項目を満たすために、アバター３９０６の周りに画成された高度なコントロール３９０５を用いることができる。
【０２０４】
ユーザがジェスチャで表現して、ユーザインタフェース３９００の中の他のフィールドへタブ操作又はアクセスすると、他の高度なコントロールが動的に画成され、選択のための項目を出力する。例えば、ソーシャルセキュリティ番号フィールド３９０７にアクセスすると、数字の項目３９０９がフィールド３９０７の上方に表示され、性別フィールド３９１０にアクセスすると、性別の項目３９１１が動的にフィールド３９１０の上方に出力され、市民権フィールド３９１２にアクセスすると、国別項目３９１３が、フィールド３９１２の上方又は下方の二つのガイドライン３９１４、３９１５にそれぞれ表示され、結婚歴フィールド３９１７にアクセスすると、結婚歴表示項目３９１９が、フィールド３９１７の右側のガイドライン３９１０に表示されて、ガイドライン３９１０は、空間的な制約、ユーザの好み、又は、その他の理由のために右側に動的に画成され、所在地住所フィールド３９２０にアクセスすると、ガイドライン３９２４に沿って、数字をアルファベット文字で置換する、数字とアルファベット記号３９２２を含む項目３９２１が、フィールド３９２０の上方のガイドライン３９２４に表示され、状態フィールド３９２５にアクセスすると、状態の名称を含む項目３９２６が、フィールド３９２５の上方に画成された二つのガイドライン２９２７、２９２９に表示される。
【０２０５】
高度なカメラをベースとした入力について、特定の種類のコントロールを用いて説明したが、他の種類のコントロールも使用可能である。例えば、図４０に示すように、カメラをベースとした入力は、（上述のように）ガイドライン要素４００２、及び仮想ボタン要素４００４を含むコントロール４００１と相互連動して使用することができる。コントロール４００５は、アバター４００７の両側に配列された複数のボタン４００６ａ〜４００６ｈを含む。コントロール４００８は、ユーザの描写（この場合、手４０１０）による相互連動要素（相互連動要素４００９など）の選択が、相互連動要素をさらに、相互連動要素によって表される文字又はその他の項目を表示させる、ジェスチャホイールコントロールである。
【０２０６】
さらに、コントロール４０１２は、ユーザインタフェースに設けられた仮想キー４０１４を含む、ＱＷＥＲＴＹキーボード構成の仮想キーボードである。コントロール４０１２は、ユーザインタフェースに現れるユーザの描写を必要としない。例えば、ユーザの描写として手又はアバターを示す代わりに、空間のユーザのコントロールオブジェクトが、仮想キーに対応する検出領域の中の位置を占有すると、仮想キー４０１４の各々が発光するようにしてもよい。コントロール４０１５は、描写４０１９を用いて相互連動することができる、アイコン４０１６ａ〜４０１６ｃと機能要素４０１７を含む、標準ウインドウアプリケーションデスクトップである。
【０２０７】
コントロール４０２０は、各々が左スクロール機能、右スクロール機能、呼び出し機能を表す、相互連動要素４０２２ａ〜４０２２ｃで囲まれた、ユーザの描写４０２１を含む。ユーザの描写４０２１はユーザのカメラ画像であってもよい。カメラをベースとした入力を用いて、ユーザの描写４０２１は、相互連動要素４０２２ａ〜４０２２ｃと関連した機能を呼び出す。この例では、スクロール機能は、ユーザインタフェースの底部に表示されたアプリケーションバーからユーザがアプリケーション４０２４を選択し、選択したアプリケーションを呼び出すことができる。図示の例では、描写４０２１は、フォトビューアアプリケーション４０２４ｄを選択して呼び出している。
【０２０８】
図４１は、さらにプロセッサとユーザインタフェースを含むコンピュータ装置４１０１の一例の外観図である。プロセッサは、シーンの内部のユーザの画像の中に、ユーザを囲む検出領域を画成し、検出領域の中のオブジェクトの位置を検出するように構成、設計されている、又は、動作可能である。プロセッサはまた、検出されたオブジェクトの位置に基づいて、ユーザインタフェースのコントロールと相互連動するように構成されている。
【０２０９】
より詳細には、コンピュータ装置４１０１のハードウェア環境は、ユーザとのインタフェースとなるテキスト又は画像を表示するディスプレイモニタ４１０８と、テキストデータ及びユーザコマンドをコンピュータ装置４１０１に入力するキーボード４１０９と、ディスプレイモニタ４１０８に表示されたオブジェクトを指定、選択、及び操作するためのマウス４１１０と、固定ディスクドライブ４１１１と、脱着可能なディスクドライブ４１１２と、テープドライブ４１１４と、ハードコピー出力デバイスと、コンピュータネットワーク接続部と、デジタル入力デバイス４１１７と、を含む。
【０２１０】
ディスプレイモニタ４１０８は、コンピュータ装置４１０１によって使用されるソフトウェアアプリケーション、及び、コンピュータ装置４１０１を動作するために必要なオペレーティングシステムのための、ユーザインタフェースを含む、グラフィック、画像、及びテキストを表示する。ユーザは、キーボード４１０９を使用してコマンド及びデータを入力し、コンピュータオペレーティングシステムプログラム、及びアプリケーションプログラムを動作及び制御する。マウス４１１０は、ジョイスティック、トラックボール、タッチパッド、又はその他のポインティングデバイスなど、任意のポインティングデバイスであってもよい。ユーザインタフェースを表示して、ユーザがテキスト、数字を入力又は選択する、又は、オプションのメニューから選択を行うことを可能とする、ソフトウェアは、固定ディスクドライブ４１１１などのコンピュータが読み取り可能な記憶媒体にローカルに保存されている。
【０２１１】
さらなる実施例では、固定ディスクドライブ４１１１自体は、ＲＡＩＤ（ｒｅｄｕｎｄａｎｔ ａｒｒａｙ ｏｆ ｉｎｄｅｐｅｎｄｅｎｔ ｄｉｓｋｓ）などの複数の物理ドライブユニットを含んでもよく、又、ディスクドライブファーム（ｄｉｓｋ ｄｒｉｖｅ ｆａｒｍ）、又は、独立したコンピューティングユニットに物理的に配置されたディスクアレイであってもよい。上述のコンピュータが読み取り可能な記憶媒体は、コンピュータ装置４１０１が、脱着可能な記憶媒体、又は、固定型の記憶媒体に記憶された、コンピュータが実行可能な処理ステップ、アプリケーションプログラムなどにアクセスをすることを可能とする。
【０２１２】
コンピュータネットワーク接続は、モデム接続、イーサネット（登録商標）を含む、ローカルエリアネットワーク（「ＬＡＮ」）接続、デジタル加入者回線（「ＤＳＬ」）などのブロードバンドワイドエリアネットワーク（「ＷＡＮ」）接続、ケーブル高速インターネット接続、ダイアルアップ接続、Ｔ１回線接続、Ｔ３回線接続、光ファイバー回線接続、衛星回線接続を含むことができる。ネットワーク４１０６は、ＬＡＮネットワーク、企業又は政府ＷＡＮネットワーク、インターネット、又はその他のネットワークを含むことができる。
【０２１３】
コンピュータネットワーク接続は、有線又は無線コネクタでもよい。代表的な無線コネクタは、Ｉｎｆｒａｒｅｄ Ｄａｔａ ＡＳＳＯＣＩＡＴＩＯＮ（登録商標）（「ＩｒＤＡ」（登録商標））、光無線コネクタ、ＩＮＳＴＩＴＵＴＥ ＯＦ ＥＬＥＣＴＲＩＣＡＬ ＡＮＤ ＥＬＥＣＴＲＯＮＩＣＳ ＥＮＧＩＮＥＥＲＳ（登録商標）（「ＩＥＥＥ（登録商標）」）、Ｓｔａｎｄａｒｄ８０２．１１無線コネクタ、ＢＬＵＥＴＯＯＴＨ（登録商標）無線コネクタ、近距離通信（”ＮＦＣ”：ｎｅａｒ ｆｉｅｌｄ ｃｏｍｍｕｎｉｃａｔｉｏｎ）コネクタ、直交周波数分割多重（”ＯＦＤＭ”：ｏｒｔｈｏｇｏｎａｌ ｆｒｅｑｕｅｎｃｙ ｄｉｖｉｓｉｏｎ ｍｕｌｔｉｐｌｅｘｉｎｇ）超広域帯（”ＵＷＢ”：ｕｌｔｒａ ｗｉｄｅ ｂａｎｄ）無線コネクタ、時間変調超広域帯（”ＴＭ−ＵＷＢ”：ｔｉｍｅ−ｍｏｄｕｌａｔｅｄ ｕｌｔｒａ ｗｉｄｅ ｂａｎｄ）無線コネクタ、またはその他の無線コネクタが含まれる。有線コネクタの例には、たとえば、ＩＥＥＥ（登録商標）−１３９４ ＦＩＲＥＷＩＲＥ（登録商標）コネクタ、ユニバーサルシリアルバス（”ＵＳＢ”：Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ）コネクタ、シリアルポートコネクタ、パラレルポートコネクタ、またはその他の有線コネクタが含まれる。
【０２１４】
脱着可能なディスクドライブ４１１２は、コンピュータ装置４１０１からデータをダウンロードしたり、コンピュータ装置４１０１にデータをアップロードしたりするために使用される脱着可能なストレージデバイスである。脱着可能なディスクドライブ４１１２は、フロッピー（登録商標）ディスクドライブ、ＩＯＭＥＧＡ（登録商標）ＺＩＰ（登録商標）ドライブ、”ＣＤ−ＲＯＭ”（ｃｏｍｐａｃｔ ｄｉｓｋ−ｒｅａｄ ｏｎｌｙ ｍｅｍｏｒｙ）ドライブ、”ＣＤ−Ｒ”（ＣＤ−Ｒｅｃｏｒｄａｂｌｅ）ドライブ、”ＣＤ−ＲＷ”（ＣＤ−Ｒｅｗｒｉｔａｂｌｅ）ドライブ、フラッシュメモリ、ＵＳＢフラッシュドライブ、サムドライブ（ｔｈｕｍｂ ｄｒｉｖｅ）、ペンドライブ、キードライブ、”ＨＤ−ＤＶＤ”（Ｈｉｇｈ−Ｄｅｎｓｉｔｙ Ｄｉｇｉｔａｌ Ｖｅｒｓａｔｉｌｅ Ｄｉｓｃ）光ディスクドライブ、Ｂｌｕ−Ｒａｙ光ディスクドライブ、ホログラフィックデジタルデータストレージ”ＨＤＤＳ”（Ｈｏｌｏｇｒａｐｈｉｃ Ｄｉｇｉｔａｌ Ｄａｔａ Ｓｔｏｒａｇｅ）光ディスクドライブ、あるいは、”ＤＶＤ−Ｒ”または”ＤＶＤ＋Ｒ”（ＤＶＤ−Ｒｅｃｏｒｄａｂｌｅ）、”ＤＶＤ−ＲＷ”または”ＤＶＤ＋ＲＷ”（ＤＶＤ−Ｒｅｗｒｉｔａｂｌｅ）、またはＤＶＤ−ＲＡＭなどの書き込み可能または書き換え可能なさまざまなデジタル多用途ディスク（”ＤＶＤ”：ｄｉｇｉｔａｌ ｖｅｒｓａｔｉｌｅ ｄｉｓｃ）ドライブのいずれでもよい。ディスクに格納されるオペレーティングシステムプログラム、アプリケーション、およびさまざまなデータファイルは、固定ディスクドライブ４１１１、または脱着可能なディスクドライブ４１１２の脱着可能な媒体に格納される。
【０２１５】
テープドライブ４１１４は、コンピュータ装置４１０１からデータをダウンロードしたり、コンピュータ装置４１０１にデータをアップロードしたりするために使用されるテープストレージデバイスである。テープドライブ４１１４は、１／４インチカートリッジ（”ＱＩＣ”）、４ｍｍデジタルオーディオテープ（”ＤＡＴ”）、８ｍｍ ”ＤＬＴ”（ｄｉｇｉｔａｌ ｌｉｎｅａｒ ｔａｐｅ）ドライブ、または他のタイプのテープのいずれでもよい。
【０２１６】
さらに、コンピュータ装置４１０１はデスクトップＰＣとして示されているが、他の実装ではコンピュータ装置４１０１はラップトップ、ワークステーション、ミッドレンジコンピュータ、メインフレーム、埋め込みシステム、電話、ハンドヘルドまたはタブレットコンピュータ、ＰＤＡ、ゲーム機又はコンソール、デジタルピクチャフレーム、電話会議装置、又は他のタイプのコンピュータのいずれでもよい。
【０２１７】
図４２は、図４１に示す１台のコンピュータの内部アーキテクチャを示すブロック図である。コンピュータ装置４１０１の代表的な内部アーキテクチャについて説明する。コンピューティング環境には、オペレーティングシステムまたはアプリケーションを含むコンピュータ命令が処理されるコンピュータの中央処理装置（”ＣＰＵ”）４２０１、グラフィックス、イメージ、およびテキストをディスプレイモニタ４１０８上にレンダリングするための通信インタフェースと処理機能を提供するディスプレイインタフェース４２０２、キーボード４１０９への通信インタフェースを提供するキーボードインタフェース４２０４、マウス４１１０または同等のポインティングデバイスへの通信インタフェースを提供するポインティングデバイスインタフェース４２０５、デジタル入力デバイス４１１７への通信インタフェースを提供するデジタル入力インタフェース４２０６、ハードコピー出力デバイスへの通信インタフェースを提供するハードコピー出力デバイスインタフェース、コンピュータＣＰＵ ４２０１で処理されるコンピュータ命令とデータが揮発性のメモリデバイスに格納されるランダムアクセスメモリ（”ＲＡＭ”）４２１０、基本的な入力および出力（”Ｉ／Ｏ”）、起動、またはキーボード４１０９からのキーストロークの受信などの基本的なシステム機能を実現する不変の低レベルのシステムコードまたはデータが不揮発性のメモリデバイスに格納される読み取り専用メモリ（”ＲＯＭ”）４２１１、オペレーティングシステム４２２１、アプリケーションプログラム４２２２（高度なカメラをベースとした入力アプリケーション４２２３、および必要に応じてその他のアプリケーション４２２５を含む）、およびデータファイル４２２６が格納されるストレージ４２２０、またはその他の適切なタイプのメモリ（たとえば、ランダムアクセスメモリ（”ＲＡＭ”）、読み取り専用メモリ（”ＲＯＭ”）、プログラム可能ＲＯＭ（”ＰＲＯＭ”）、消去可能ＰＲＯＭ（”ＥＰＲＯＭ”）、電気的消去可能ＰＲＯＭ（”ＥＥＰＲＯＭ”）、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク、ハードディスク、脱着可能なカートリッジ、フラッシュドライブなど）、およびコンピュータネットワーク接続を経由してネットワークへの通信インタフェースを提供するコンピュータネットワークインタフェースが含まれる。構成要素となるデバイスとコンピュータＣＰＵ ４２０１は、コンピュータバス４２２７を経由して相互に通信する。
【０２１８】
他の一般的な実施例では、コンピュータ可読媒体は、コンピュータプログラム製品で符号化されている。コンピュータプログラム製品には、実行された場合に、コンピュータに、シーンの中のユーザの画面に、ユーザを囲む検出領域を画成し、この検出領域の中でオブジェクトの位置を検出するように動作させる命令が含まれている。コンピュータプログラム製品には、また、マシンで読み込まれた場合に、データ処理装置に、検出されたオブジェクトの位置に基づいてユーザインタフェースのコントロールと相互連動するように動作させる命令が含まれている。
【０２１９】
ＲＡＭ ４２１０は、コンピュータバス４２２７とインタフェースすることによって、ソフトウェアプログラム（オペレーティングシステムアプリケーションプログラム、およびデバイスドライバなど）の実行中にＲＡＭストレージをコンピュータＣＰＵ ４２０１に迅速に提供する。より具体的に言えば、コンピュータＣＰＵ ４２０１はソフトウェアプログラムを実行するために、コンピュータ実行可能処理ステップを固定ディスクドライブ４１１１またはその他の媒体からＲＡＭ ４２１０のフィールドにロードする。データはＲＡＭ ４２１０に格納され、データは実行中にコンピュータＣＰＵ ４２０１からアクセスされる。
【０２２０】
コンピュータ装置４１０１には、オペレーティングシステム４２２１、およびアプリケーションプログラム４２２２（ワードプロセッサ、スプレッドシート、プレゼンテーション、ゲーム、またはその他のアプリケーション）のコンピュータ実行可能コードが格納される。前述の実施例を使用してカメラをベースとした入力を提供できるが、本開示による機能をダイナミックリンクライブラリ（”ＤＬＬ”）として、または他のアプリケーションプログラム（たとえば、ＭＩＣＲＯＳＯＦＴ（登録商標） ＩＮＴＥＲＮＥＴ ＥＸＰＬＯＲＥＲ（登録商標）ＷｅｂブラウザなどのインターネットＷｅｂブラウザ）への他のアプリケーションプラグインとして実装することもできる。
【０２２１】
コンピュータＣＰＵ ４２０１は、多くの高パフォーマンスコンピュータプロセッサ（ＩＮＴＥＬ（登録商標）またはＡＭＤ（登録商標）プロセッサ、ＰＯＷＥＲＰＣ（登録商標）プロセッサ、ＭＩＰＳ（登録商標） ”ＲＩＳＣ”（ｒｅｄｕｃｅｄ ｉｎｓｔｒｕｃｔｉｏｎ ｓｅｔ ｃｏｍｐｕｔｅｒ）プロセッサ、ＳＰＡＲＣ（登録商標）プロセッサ、ＡＣＯＲＮ ＲＩＳＣ Ｍａｃｈｉｎｅ（”ＡＲＭ（登録商標）”）アーキテクチャプロセッサ、ＨＰ ＡＬＰＨＡＳＥＲＶＥＲ（登録商標）プロセッサ、またはメインフレーム専用のコンピュータプロセッサを含む）の１つである。その他の編成において、コンピュータＣＰＵ ３３０１は、高パフォーマンスワークステーションおよびサーバーに見られる複数ＣＰＵ 構成、またはメインフレームに見られる複数の拡張可能プロセシングユニットを含む複数のプロセッシングユニットである。
【０２２２】
オペレーティングシステム４２２１は、ＭＩＣＲＯＳＯＦＴ（登録商標） WINDOWS(登録商標）（登録商標） ＮＴ／WINDOWS(登録商標）（登録商標） ２０００／WINDOWS(登録商標）（登録商標） ＸＰ Ｗｏｒｋｓｔａｔｉｏｎ、WINDOWS(登録商標）（登録商標） ＮＴ／WINDOWS(登録商標）（登録商標） ２０００／WINDOWS(登録商標）（登録商標） ＸＰ Ｓｅｒｖｅｒ、さまざまなＵＮＩＸ（登録商標）系の（−ｆｌａｖｏｒｅｄ）オペレーティングシステム（ＩＢＭ（登録商標）ワークステーション及びサーバ向けのＡＩＸ（登録商標）を含む）、ＳＵＮ（登録商標）ワークステーションおよびサーバー向けのＳＵＮＯＳ（登録商標）、ＩＮＴＥＬ（登録商標） ＣＰＵベースのワークステーションおよびサーバー向けのＬＩＮＵＸ（登録商標）、ＨＰ（登録商標）ワークステーションおよびサーバー向けのＨＰ ＵＸ ＷＯＲＫＬＯＡＤ ＭＡＮＡＧＥＲ（登録商標）、ＳＧＩ（登録商標）ワークステーションおよびサーバー向けのＩＲＩＸ（登録商標）、Ｄｉｇｉｔａｌ Ｅｑｕｉｐｍｅｎｔ Ｃｏｒｐｏｒａｔｉｏｎコンピュータ向けのＶＡＸ／ＶＭＳ、ＨＰ ＡＬＰＨＡＳＥＲＶＥＲ（登録商標）ベースのコンピュータ向けのＯＰＥＮＶＭＳ（登録商標）、ＩＮＴＥＬ（登録商標）およびＰＯＷＥＲＰＣ（登録商標）ベースのワークステーションおよびサーバー向けのＭＡＣ ＯＳ Ｘ（登録商標）、ＳＹＭＢＩＡＮ ＯＳ（登録商標）、ＭＯＢＩＬＥまたはWINDOWS(登録商標） ＣＥ（登録商標）、ＰＡＬＭ（登録商標）、ＮＯＫＩＡ（登録商標） ＯＳ（”ＮＯＳ”）、ＯＳＥ（登録商標）、あるいはモバイルデバイス用ＥＰＯＣ（登録商標）、またはコンピュータまたは埋め込みシステム専用のオペレーティングシステムのいずれでもよい。オペレーティングシステム４２２１用のアプリケーション開発プラットフォームまたはフレームワークは、ＢＩＮＡＲＹ ＲＵＮＴＩＭＥ ＥＮＶＩＲＯＮＭＥＮＴ ＦＯＲ ＷＩＲＥＬＥＳＳ（登録商標）（”ＢＲＥＷ”）、Ｊａｖａ（登録商標） Ｐｌａｔｆｏｒｍ， Ｍｉｃｒｏ Ｅｄｉｔｉｏｎ （”Ｊａｖａ（登録商標） ＭＥ”）またはＪａｖａ（登録商標） ２ Ｐｌａｔｆｏｒｍ， Ｍｉｃｒｏ Ｅｄｉｔｉｏｎ （”Ｊ２ＭＥ（登録商標）”）、ＰＹＴＨＯＮＴＭ、ＦＬＡＳＨ ＬＩＴＥ（登録商標）、またはＭＩＣＲＯＳＯＦＴ（登録商標） ．ＮＥＴ Ｃｏｍｐａｃｔのいずれでもよい。
【０２２３】
図４１及び図４２は、ユーザが直感的かつ容易にテキスト、数字を入力し、複数の項目から選択を行うことができる、高度なコントロールを提供するように構成された、プログラムコード、プログラム又は処理ステップを実行するコンピュータ装置として考えられる一つの実施例を示す。他の種類のコンピュータを使用することもできる。
【０２２４】
複数の実施例について説明した。しかしながら、本開示の趣旨と範囲から逸脱しない限りおいて様々な変形が相当可能である。したがって、他の実施例は、特許請求の範囲の範囲に含まれる。
【符号の説明】
【０２２５】
１００  シーン
１０１  ユーザ
１０４  セットトップボックス
１０５  テレビ
１０６  カメラ
１１０  画像
１１１  検出領域
１１１ａ  部分検出領域
１１１ｂ  部分検出領域
１１１ｃ  部分検出領域
【図１】
2014149856.tif 000004
【図２】
2014149856.tif 000005
【図３】
2014149856.tif 000006
【図４】
2014149856.tif 000007
【図５】
2014149856.tif 000008
【図６】
2014149856.tif 000009
【図７】
2014149856.tif 000010
【図８】
2014149856.tif 000011
【図９】
2014149856.tif 000012
【図１０】
2014149856.tif 000013
【図１１】
2014149856.tif 000014
【図１２】
2014149856.tif 000015
【図１３】
2014149856.tif 000016
【図１４】
2014149856.tif 000017
【図１５】
2014149856.tif 000018
【図１６】
2014149856.tif 000019
【図１７】
2014149856.tif 000020
【図１８】
2014149856.tif 000021
【図１９】
2014149856.tif 000022
【図２０】
2014149856.tif 000023
【図２１】
2014149856.tif 000024
【図２２】
2014149856.tif 000025
【図２３】
2014149856.tif 000026
【図２４】
2014149856.tif 000027
【図２５】
2014149856.tif 000028
【図２６】
2014149856.tif 000029
【図２７】
2014149856.tif 000030
【図２８】
2014149856.tif 000031
【図２９】
2014149856.tif 000032
【図３０】
2014149856.tif 000033
【図３１】
2014149856.tif 000034
【図３２】
2014149856.tif 000035
【図３３】
2014149856.tif 000036
【図３４】
2014149856.tif 000037
【図３５】
2014149856.tif 000038
【図３６】
2014149856.tif 000039
【図３７】
2014149856.tif 000040
【図３８】
2014149856.tif 000041
【図３９】
2014149856.tif 000042
【図４０】
2014149856.tif 000043
【図４１】
2014149856.tif 000044
【図４２】
2014149856.tif 000045
【手続補正書】
【提出日】平成26年5月2日(2014.5.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、
前記方法は、
シーン内のコントロールオブジェクトの画像を取得するステップと、
前記シーン内の前記コントロールオブジェクトの位置に基づいて、ディスプレイ上のユーザインタフェースにおける第１のオブジェクトの位置を決定するステップと、
項目の第１のセットを決定するステップと、
前記第１のオブジェクトの決定された位置と前記項目の第１のセット内の項目の数とに基づいて、前記ユーザインタフェースにおいて１つまたは複数のガイドラインを動的に配置するステップとを含み、前記項目が、前記ユーザインタフェースにおいて前記１つまたは複数のガイドラインと整列されるとともに、前記項目が前記第１のオブジェクトと重ならないように、前記１つまたは複数のガイドラインが配置される、コンピュータで実施される方法。
【請求項２】
前記ユーザインタフェースが、モバイルデバイスのディスプレイ上に示される請求項１に記載のコンピュータで実施される方法。
【請求項３】
前記ユーザインタフェースが、テレビディスプレイ上に示される、請求項１に記載のコンピュータで実施される方法。
【請求項４】
項目が前記第１のオブジェクトのコントロール部分の動きの決定された範囲内にあるように、前記１つまたは複数のガイドラインが配置される、請求項１に記載のコンピュータで実施される方法。
【請求項５】
前記第１のオブジェクトが、ユーザの表現を含む、請求項１に記載のコンピュータで実施される方法。
【請求項６】
前記ユーザインタフェースにおける第２のオブジェクトの位置を決定するステップと、
前記項目が前記第１または第２のオブジェクトと重ならないように、前記１つまたは複数のガイドラインを再配置するステップとをさらに含む請求項１に記載のコンピュータで実施される方法。
【請求項７】
前記再配置するステップが、項目の色、項目の線の太さ、項目のサイズ、および項目の透明度のうち１つまたは複数を変更するステップを含む、請求項６に記載のコンピュータで実施される方法。
【請求項８】
前記再配置するステップが、項目が前記第２のオブジェクトのコントロール部分の動きの決定された範囲外にあるように、前記１つまたは複数のガイドラインを再配置するステップを含む、請求項６に記載のコンピュータで実施される方法。
【請求項９】
前記ユーザインタフェースにおける前記第１のオブジェクトの新しい位置を決定するステップと、
前記項目が前記第１のオブジェクトと重ならないように、前記新しい位置に基づいて前記１つまたは複数のガイドラインを再配置するステップとをさらに含む請求項１に記載のコンピュータで実施される方法。
【請求項１０】
項目の選択を受信するステップと、
前記選択に基づいて、並列された項目の第２のセットを有する新しいガイドラインを生成するステップとをさらに含む、請求項１に記載のコンピュータで実施される方法。
【請求項１１】
前記１つまたは複数のガイドラインのガイドラインコンポーネントが、前記ユーザインタフェースと同一のＸ−Ｙ平面内に全体的に定義されるとともに、前記新しいガイドラインを生成するステップが、前記Ｘ−Ｙ平面と異なる平面内に全体的に定義されるように前記新しいガイドラインを生成するステップを含む、請求項１０に記載のコンピュータで実施される方法。
【請求項１２】
前記新しいガイドラインと整列された項目のサイズが、前記新しいガイドラインの第１の端部から前記新しいガイドラインの第２の端部にかけて小さくなる、請求項１１に記載のコンピュータで実施される方法。
【請求項１３】
プロセッサを含むデバイスであって、
前記プロセッサが
シーン内のコントロールオブジェクトの画像を取得し、
前記シーン内の前記コントロールオブジェクトの位置に基づいて、ディスプレイ上のユーザインタフェースにおける第１のオブジェクトの位置を決定し、
項目の第１のセットを決定するとともに、
前記第１のオブジェクトの決定された位置と前記項目の第１のセット内の項目の数とに基づいて、前記ユーザインタフェースにおいて１つまたは複数のガイドラインを動的に配置するように構成され、前記項目が、前記ユーザインタフェースにおいて前記１つまたは複数のガイドラインと整列されるとともに、前記項目が前記第１のオブジェクトと重ならないように、前記１つまたは複数のガイドラインが配置される、デバイス。
【請求項１４】
前記デバイスが、モバイルデバイスである請求項１３に記載のデバイス。
【請求項１５】
項目が前記第１のオブジェクトのコントロール部分の動きの決定された範囲内にあるように、前記１つまたは複数のガイドラインが配置される、請求項１３に記載のデバイス。
【請求項１６】
前記プロセッサが、
前記ユーザインタフェースにおける第２のオブジェクトの位置を決定するとともに、
前記項目が前記第１または第２のオブジェクトと重ならないように、前記１つまたは複数のガイドラインを再配置するようにさらに構成される、請求項１３に記載のデバイス。
【請求項１７】
前記再配置が、項目の色、項目の線の太さ、項目のサイズ、および項目の透明度のうち１つまたは複数を変更することを含む、請求項１６に記載のデバイス。
【請求項１８】
前記プロセッサが、項目が前記第２のオブジェクトのコントロール部分の動きの決定された範囲外にあるように、前記１つまたは複数のガイドラインを再配置するように構成される請求項１６に記載のデバイス。
【請求項１９】
前記プロセッサが、
前記ユーザインタフェースにおける前記第１のオブジェクトの新しい位置を決定するとともに、
前記項目が前記第１のオブジェクトと重ならないように、前記新しい位置に基づいて前記１つまたは複数のガイドラインを再配置するようにさらに構成される、請求項１３に記載のデバイス。
【請求項２０】
前記プロセッサが、
項目の選択を受信するとともに、
前記選択に基づいて、並列された項目の第２のセットを有する新しいガイドラインを生成するようにさらに構成される、請求項１３に記載のデバイス。
【請求項２１】
前記プロセッサが、
前記１つまたは複数のガイドラインのガイドラインコンポーネントが、前記ユーザインタフェースと同一のＸ−Ｙ平面内に全体的に定義されるようにするとともに、
前記Ｘ−Ｙ平面と異なる平面内に全体的に定義されるように前記新しいガイドラインを生成するようにさらに構成される、請求項２０に記載のデバイス。
【請求項２２】
前記プロセッサが、前記新しいガイドラインと整列された項目を、前記新しいガイドラインの第１の端部から前記新しいガイドラインの第２の端部にかけてサイズが小さくなるよう表示させるように構成される、請求項２０に記載のデバイス。
【請求項２３】
シーン内のコントロールオブジェクトの画像を取得する手段と、
前記シーン内の前記コントロールオブジェクトの位置に基づいて、ディスプレイ上のユーザインタフェースにおける第１のオブジェクトの位置を決定する手段と、
項目の第１のセットを決定する手段と、
前記第１のオブジェクトの決定された位置と前記項目の第１のセット内の項目の数とに基づいて、前記ユーザインタフェースにおいて１つまたは複数のガイドラインを動的に配置する手段とを含む装置であって、
前記項目が、前記ユーザインタフェースにおいて前記１つまたは複数のガイドラインと整列されるとともに、
前記項目が前記第１のオブジェクトと重ならないように、前記１つまたは複数のガイドラインが配置される、装置。
【請求項２４】
項目が前記第１のオブジェクトのコントロール部分の動きの決定された範囲内にあるように、前記１つまたは複数のガイドラインを配置する手段をさらに含む請求項２３に記載の装置。
【請求項２５】
前記ユーザインタフェースにおける第２のオブジェクトの位置を決定する手段と、
前記項目が前記第１または第２のオブジェクトと重ならないように、前記１つまたは複数のガイドラインを再配置する手段とをさらに含む請求項２３に記載の装置。
【請求項２６】
前記再配置する手段が、項目の色、項目の線の太さ、項目のサイズ、および項目の透明度のうち１つまたは複数を変更する手段を含む請求項２５に記載の装置。
【請求項２７】
前記再配置する手段が、項目が前記第２のオブジェクトのコントロール部分の動きの決定された範囲外にあるように、前記１つまたは複数のガイドラインを再配置する手段を含む請求項２５に記載の装置。
【請求項２８】
前記ユーザインタフェースにおける前記第１のオブジェクトの新しい位置を決定する手段と、
前記項目が前記第１のオブジェクトと重ならないように、前記新しい位置に基づいて前記１つまたは複数のガイドラインを再配置する手段とをさらに含む請求項２３に記載の装置。
【請求項２９】
項目の選択を受信する手段と、
前記選択に基づいて、並列された項目の第２のセットを有する新しいガイドラインを生成する手段とをさらに含む請求項２３に記載の装置。
【請求項３０】
前記１つまたは複数のガイドラインのガイドラインコンポーネントが、前記ユーザインタフェースと同一のＸ−Ｙ平面内に全体的に定義されるとともに、
前記新しいガイドラインを生成する手段が、前記Ｘ−Ｙ平面と異なる平面内に全体的に定義されるように前記新しいガイドラインを生成する手段を含む、請求項２９に記載の装置。
【請求項３１】
前記新しいガイドラインと整列された項目のサイズが、前記新しいガイドラインの第１の端部から前記新しいガイドラインの第２の端部にかけてサイズが小さくなるようにする手段をさらに含む請求項３０に記載の装置。
【請求項３２】
実行された場合にコンピュータに以下の動作を行わせるための命令が符号化された持続性コンピュータ可読記録媒体であって、
前記動作が、
シーン内のコントロールオブジェクトの画像を取得するステップと、
前記シーン内の前記コントロールオブジェクトの位置に基づいて、ディスプレイ上のユーザインタフェースにおける第１のオブジェクトの位置を決定するステップと、
項目の第１のセットを決定するステップと、
前記第１のオブジェクトの決定された位置と前記項目の第１のセット内の項目の数とに基づいて、前記ユーザインタフェースにおいて１つまたは複数のガイドラインを動的に配置するステップとを含み、
前記項目が、前記ユーザインタフェースにおいて前記１つまたは複数のガイドラインと整列されるとともに、
前記項目が前記第１のオブジェクトと重ならないように、前記１つまたは複数のガイドラインが配置される、コンピュータ可読記録媒体。
【請求項３３】
項目が前記第１のオブジェクトのコントロール部分の動きの決定された範囲内にあるように、前記１つまたは複数のガイドラインを配置することを前記コンピュータにさせるための命令をさらに含む、請求項３２に記載のコンピュータ可読記録媒体。
【請求項３４】
前記ユーザインタフェースにおける第２のオブジェクトの位置を決定することと、
前記項目が前記第１または第２のオブジェクトと重ならないように、前記１つまたは複数のガイドラインを再配置することとを前記コンピュータにさせるための命令をさらに含む請求項３２に記載のコンピュータ可読記録媒体。
【請求項３５】
項目の選択を受信することと、
前記選択に基づいて、並列された項目の第２のセットを有する新しいガイドラインを生成することとを前記コンピュータにさせるための命令をさらに含む、
請求項３２に記載のコンピュータ可読記録媒体。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2014149856.tif 000046
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2014149856.tif 000047
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図１９
【補正方法】変更
【補正の内容】
【図１９】
2014149856.tif 000048
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図２８
【補正方法】変更
【補正の内容】
【図２８】
2014149856.tif 000049
【手続補正６】
【補正対象書類名】図面
【補正対象項目名】図２９
【補正方法】変更
【補正の内容】
【図２９】
2014149856.tif 000050
【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図３９
【補正方法】変更
【補正の内容】
【図３９】
2014149856.tif 000051
【手続補正８】
【補正対象書類名】図面
【補正対象項目名】図４０
【補正方法】変更
【補正の内容】
【図４０】
2014149856.tif 000052
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図４２
【補正方法】変更
【補正の内容】
【図４２】
2014149856.tif 000053