(57)【特許請求の範囲】
【請求項１】
電子デバイスであって：
面を横切る画像を捕えるために向きを定められるカメラ；
前記面の一部を照らす照明器；および
オペレーションを実行するために構成される演算処理装置を含み；
前記オペレーションは：
前記カメラによって捕えられる画像にアクセスするステップ；
前記カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する１つのインターフェース・コントロールに対応する、複数の領域を識別するステップ；
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定するステップ；
前記決定した領域および前記照明器によって照らされた面の一部に対応する前記１つのインターフェース・コントロールに基づくユーザー入力を決定するステップ；および
前記決定したユーザー入力に基づいてアプリケーションをコントロールするステップ；
を含む、電子デバイス。
【請求項２】
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定する前記ステップは：
前記アクセスした画像の範囲内で対象物を検出するステップ；
前記アクセスした画像の範囲内で検出対象物の位置を決定するステップ；
前記決定した位置を、前記カメラの視野の範囲内で前記複数の定義された領域と比較するステップ；および
比較結果に基づいて、前記検出対象物が位置する領域を識別するステップ；
を含む、請求項１に記載の電子デバイス。
【請求項３】
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定する前記ステップは：
前記アクセスした画像を、各々前記複数の定義された領域のうちの１つに対応するセグメントに分割するステップ；
前記セグメントの各々に対して、対象物が前記セグメントの範囲内にあるかどうか決定するために前記セグメントを分析するステップ；および
対象物が特定のセグメントの範囲内にあるという決定に応じて、前記対象物が、前記特定のセグメントに対応する特定の領域の範囲内に位置することを決定するステップ；
を含む、請求項１に記載の電子デバイス。
【請求項４】
前記対象物が、前記特定のセグメントに対応する特定の領域の範囲内に位置することを決定する前記ステップは、前記対象物の全体が前記特定の領域の任意の部分の範囲内にあることを決定するステップを含む、請求項３に記載の電子デバイス。
【請求項５】
前記セグメントは、対象物が前記セグメントの範囲内にあるかどうか決定するために分析される前記画像の唯一の部分である、請求項３に記載の電子デバイス。
【請求項６】
グラフィカルユーザーインターフェースを表示するために構成される表示画面をさらに含み、前記グラフィカルユーザーインターフェースは、前記グラフィカルユーザーインターフェースの第１位置で表示される第１のユーザーインターフェース・コントロール、および、前記グラフィカルユーザーインターフェースの第２位置で表示される第２のユーザーインターフェース・コントロールを含み、前記グラフィカルユーザーインターフェースの前記第２位置は、前記グラフィカルユーザーインターフェースの前記第１位置とは異なり、
前記カメラは、前記表示画面の表面を横切る画像を捕えるために向きを定められ、
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定する前記ステップは、対象物が前記第１のユーザーインターフェース・コントロールに対応する前記画像の第１領域の範囲内にあるかどうか決定するステップ、および、対象物が前記第２のユーザーインターフェース・コントロールに対応する前記画像の第２領域の範囲内にあるかどうか決定するステップを含み、
前記決定した領域および前記照明器によって照らされた面の一部に対応する前記１つのインターフェース・コントロールに基づくユーザー入力を決定する前記ステップ、および前記決定したユーザー入力に基づいてアプリケーションをコントロールする前記ステップは、
対象物が前記画像の第１領域の範囲内にあるという判定に応じて、前記第１のユーザーインターフェース・コントロールの活性化を検出し、前記第１のユーザーインターフェース・コントロールの活性化と関連した第１のオペレーションを始動するステップ、ならびに
対象物が前記画像の第２領域の範囲内にあるという判定に応じて、前記第２のユーザーインターフェース・コントロールの活性化を検出し、前記第２のユーザーインターフェース・コントロールの活性化と関連した第２のオペレーションを始動するステップ、
を含む、請求項１に記載の電子デバイス。
【請求項７】
前記演算処理装置は、前記第１のユーザーインターフェース・コントロールの大きさおよび形状を前記画像の前記第１領域の範囲内に適合するように、そして、前記第２のユーザーインターフェース・コントロールの大きさおよび形状を前記画像の前記第２領域の範囲内に適合するように、前記表示画面をコントロールするステップ、をさらに含むオペレーションを実行するために構成される、請求項６に記載の電子デバイス。
【請求項８】
前記第１のユーザーインターフェース・コントロールは、第１のユーザーインターフェース・ボタンであり；そして
前記第１のユーザーインターフェース・コントロールの活性化を検出し、前記第１のユーザーインターフェース・コントロールの活性化と関連した第１のオペレーションを始動する前記ステップは、前記第１のユーザーインターフェース・ボタンの押圧を検出し、前記第１のユーザーインターフェース・ボタンの押圧と関連した第１のオペレーションを始動するステップ、を含む、
請求項６に記載の電子デバイス。
【請求項９】
前記第１のユーザーインターフェース・コントロールは、前記カメラの視野と交差する方向において前記画像の前記第１領域にわたる第１のスライダコントロールであり；そして
前記第１のユーザーインターフェース・コントロールの活性化を検出し、前記第１のユーザーインターフェース・コントロールの活性化と関連した第１のオペレーションを始動する前記ステップは、
対象物が前記画像の前記第１領域の範囲内にあるという判定に応じて、前記第１のスライダコントロールの係合を検出するステップ；
前記対象物の位置を、前記第１のスライダコントロールに沿って前記画像の前記第１領域の範囲内で決定するステップ；および
前記第１のスライダコントロールの係合と関連する、そして、前記第１のスライダコントロールに沿って前記画像の前記第１領域の範囲内で前記対象物の前記決定した位置を使用する、第１のオペレーションを始動するステップ、
を含む、請求項６に記載の電子デバイス。
【請求項１０】
前記照明器は、前記画像の前記第１領域および前記画像の前記第２領域と交差する方向において、前記表示画面の前記表面を横切って光を向けるように向きを定められる発光ダイオードを含む、請求項６に記載の電子デバイス。
【請求項１１】
前記発光ダイオードからの光が向けられる、前記画像の前記第１領域の一部における作用エリア、および、前記発光ダイオードからの光がない、前記画像の前記第１領域の残りの部分における偽のエリア、を定義するために、前記発光ダイオードは、前記画像の前記第１領域の前記一部を横切って光を向け、そして、前記第１のユーザーインターフェース・コントロールが表示される前記グラフィカルユーザーインターフェースの前記第１位置は、前記画像の前記第１領域の前記作用エリアに対応する、請求項１０に記載の電子デバイス。
【請求項１２】
対象物が前記画像の前記第１領域の範囲内にあるかどうか決定する前記ステップは、前記画像の前記第１領域の前記作用エリアにおいて対象物を検出して、かつ前記画像の前記第１領域の前記偽のエリアにおいて対象物を無視するために、照らされた対象物が前記画像の前記第１領域の範囲内にあるかどうか決定するステップ、を含む、請求項１１に記載の電子デバイス。
【請求項１３】
前記発光ダイオードは、前記表示画面よりも上の第１のエリアを照らすために構成される第１の発光ダイオードである、そして、前記照明器は、第２の発光ダイオードをさらに含み、前記第２の発光ダイオードは、前記表示画面の前記表面を横切って光を向けるように向きを定められて、前記第１の発光ダイオードによって照らされる前記表示画面よりも上の前記第１のエリアとは異なる前記表示画面よりも上の第２のエリアを照らすために構成される、
請求項１２に記載の電子デバイス。
【請求項１４】
前記第２の発光ダイオードによって照らされる前記表示画面よりも上の前記第２のエリアは、ジェスチャ入力領域を定義する、そして、前記演算処理装置は、前記カメラによって捕えられる複数の画像の分析に基づいて前記第２のエリアの範囲内でジェスチャを検出するステップをさらに含むオペレーションを実行するために構成される、請求項１３に記載の電子デバイス。
【請求項１５】
前記演算処理装置は：
前記カメラによって捕えられる画像について順番に交互の時間に照らして、その結果、前記カメラによって捕えられる前記画像を、前記第１の発光ダイオードが照らされて、かつ前記第２の発光ダイオードが照らされない第１の画像セット、および、前記第２の発光ダイオードが照らされて、かつ前記第１の発光ダイオードが照らされない第２の画像セット、とするために、前記第１の発光ダイオードおよび前記第２の発光ダイオードをコントロールするステップ；
前記第１のユーザーインターフェース・コントロールの活性化を検出するために、前記第１の発光ダイオードが照らされて、かつ前記第２の発光ダイオードが照らされない前記第１の画像セットを処理するステップ；および
前記第２のエリアの範囲内でジェスチャを検出するために、前記第１の発光ダイオードが照らされず、かつ前記第２の発光ダイオードが照らされる前記第２の画像セットを処理するステップ、
をさらに含むオペレーションを実行するために構成される、請求項１４に記載の電子デバイス。
【請求項１６】
前記演算処理装置は、前記画像の複数の定義された領域以外の画像の部分に位置する対象物が無視されるように、前記画像の複数の定義された領域以外の画像の部分を無視するステップ、をさらに含むオペレーションを実行するために構成される、請求項１に記載の電子デバイス。
【請求項１７】
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定する前記ステップは、前記カメラによって捕えられる複数の画像の分析に基づいて、前記画像の前記領域の範囲内で対象物によるジェスチャの実行を検出するステップを含み；
ユーザー入力を決定する前記ステップは、前記検出したジェスチャに対応するユーザー入力コマンドを決定するステップを含み；そして
前記決定したユーザー入力に基づいてアプリケーションをコントロールする前記ステップは、前記決定したユーザー入力コマンドに対応する第１のオペレーションを始動させるステップを含む、
請求項１に記載の電子デバイス。
【請求項１８】
前記カメラによって捕えられる複数の画像の分析に基づいて、前記画像の前記領域の範囲内で対象物によるジェスチャの実行を検出する前記ステップは、前記画像の前記領域の範囲内でのスワイプジェスチャの実行、および前記スワイプジェスチャの方向を検出するステップを含み；
前記検出したジェスチャに対応するユーザー入力コマンドを決定する前記ステップは、前記スワイプジェスチャの前記検出した方向における前記スワイプジェスチャに対応するユーザー入力コマンドを決定するステップを含む、
請求項１７に記載の電子デバイス。
【請求項１９】
少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサにオペレーションを実行させる実行可能命令によってコード化される少なくとも１つのコンピュータ読み取り可能の記憶媒体であって、前記オペレーションは：
面を横切る画像を捕えるために向きを定められるカメラによって捕えられる画像にアクセスするステップ；
前記カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する１つのインターフェース・コントロールに対応する、複数の領域を識別するステップ；
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定するステップ；
前記決定した領域および照明器によって照らされた面の一部に対応する前記１つのインターフェース・コントロールに基づくユーザー入力を決定するステップ；および
前記決定したユーザー入力に基づいてアプリケーションをコントロールするステップ；
を含む、コンピュータ読み取り可能の記憶媒体。
【請求項２０】
方法であって：
面を横切る画像を捕えるために向きを定められるカメラによって捕えられる画像にアクセスするステップ；
前記カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する１つのインターフェース・コントロールに対応する、複数の領域を識別するステップ；
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定するステップ；
前記決定した領域および照明器によって照らされた面の一部に対応する前記１つのインターフェース・コントロールに基づくユーザー入力を決定するステップ；および
前記決定したユーザー入力に基づいてアプリケーションをコントロールするステップ；
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、２００８年１０月１０日に出願の米国特許仮出願番号第６１／１０４，３４０号の利益を主張し、参照により本明細書に援用される。
【０００２】
［技術分野］
本開示は、一般に、対象物のトラッキングに関連する。
【背景技術】
【０００３】
カメラは、対象物の画像を捕えるために用いられてきた。対象物の位置を検出するために、１つ以上の画像の範囲内にある対象物の１つ以上の画像を分析するためのさまざまな技術が開発されてきた。例えば、時間内にテンポ良く連続して撮られた対象物の複数の（マルチプル）画像を分析することによって、対象物の動きを検出するために、オプティカルフローが用いられている。
【発明の概要】
【課題を解決するための手段】
【０００４】
１つの態様では、電子デバイスは、面を横切る画像を捕えるために向きを定められるカメラ、および、オペレーションを実行するために構成される演算処理装置を含む。オペレーションは、カメラによって捕えられる画像にアクセスするステップ、および、カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する１つのインターフェース・コントロールに対応する、複数の（マルチプル）領域を識別するステップ、を含む。オペレーションはまた、複数の（マルチプル）定義された領域の中から、アクセスした画像の範囲内で検出される対象物が位置する（１つの）領域を決定するステップを含む。オペレーションは、決定した領域に対応する前記１つのインターフェース・コントロールに基づくユーザー入力を決定するステップ、および、決定したユーザー入力に基づいてアプリケーションをコントロールするステップ、をさらに含む。
【０００５】
実施例は、以下の特徴の１つ以上を含んでよい。例えば、オペレーションは、アクセスした画像の範囲内で対象物を検出するステップ、および、アクセスした画像の範囲内で検出対象物の位置を決定するステップ、を含んでよい。この実施例では、オペレーションはまた、決定した位置を、カメラの視野の範囲内で複数の定義された領域と比較するステップ、および、比較結果に基づいて、検出対象物が位置する領域を識別するステップ、を含んでよい。
【０００６】
いくつかの実施例において、オペレーションは、アクセスした画像を、各々複数の定義された領域のうちの１つに対応するセグメントに分割するステップ、および、セグメントの各々に対して、対象物がセグメントの範囲内にあるかどうか決定するためにセグメントを分析するステップ、を含んでよい。これらの実施例において、オペレーションはまた、対象物が特定のセグメントの範囲内にあるという決定に応じて、この対象物が、特定のセグメントに対応する特定の領域の範囲内に位置することを決定するステップ、を含んでよい。加えて、これらの実施例において、オペレーションは、対象物の全体が特定の領域の任意の部分の範囲内にあることを決定するステップを含んでよい。セグメントは、対象物がセグメントの範囲内にあるかどうか決定するために分析される画像の唯一の部分でもよい。
【０００７】
いくつかの実施例において、電子デバイスは、グラフィカルユーザーインターフェースを表示するために構成される表示画面をさらに含み、グラフィカルユーザーインターフェースは、グラフィカルユーザーインターフェースの第１位置で表示される第１のユーザーインターフェース・コントロール、および、グラフィカルユーザーインターフェースの第２位置で表示される第２のユーザーインターフェース・コントロールを含んでよい。グラフィカルユーザーインターフェースの第２位置は、グラフィカルユーザーインターフェースの第１位置とは異なってよく、カメラは、前記表示画面の表面を横切る画像を捕えるために向きを定められてよい。これらの実施例において、オペレーションは、対象物が第１のユーザーインターフェース・コントロールに対応する画像の第１領域の範囲内にあるかどうか決定するステップ、および、対象物が第２のユーザーインターフェース・コントロールに対応する画像の第２領域の範囲内にあるかどうか決定するステップを含んでよい。さらに、これらの実施例において、オペレーションは、対象物が画像の第１領域の範囲内にあるという判定に応じて、第１のユーザーインターフェース・コントロールの活性化を検出するステップ、および、第１のユーザーインターフェース・コントロールの活性化と関連した第１のオペレーションを始動するステップを含んでよい。オペレーションはまた、対象物が画像の第２領域の範囲内にあるという判定に応じて、第２のユーザーインターフェース・コントロールの活性化を検出するステップ、および、第２のユーザーインターフェース・コントロールの活性化と関連した第２のオペレーションを始動するステップを含んでよい。
【０００８】
さらに、オペレーションは、第１のユーザーインターフェース・コントロールの大きさおよび形状を画像の第１領域の範囲内に適合するように、そして、第２のユーザーインターフェース・コントロールの大きさおよび形状を画像の第２領域の範囲内に適合するように、表示画面をコントロールするステップを含んでよい。第１のユーザーインターフェース・コントロールは、第１のユーザーインターフェース・ボタンでよく、そしてオペレーションは、第１のユーザーインターフェース・ボタンの押圧を検出するステップ、および、第１のユーザーインターフェース・ボタンの押圧と関連した第１のオペレーションを始動するステップ、を含んでよい。
【０００９】
第１のユーザーインターフェース・コントロールは、カメラの視野と交差する方向において画像の第１領域にわたる第１のスライダコントロールでよく、そしてオペレーションは、対象物が画像の第１領域の範囲内にあるという判定に応じて、第１のスライダコントロールの係合を検出するステップを含んでよい。オペレーションはまた、対象物の位置を、第１のスライダコントロールに沿って画像の第１領域の範囲内で決定するステップ、および、第１のスライダコントロールの係合と関連する、そして、第１のスライダコントロールに沿って画像の第１領域の範囲内で対象物の決定した位置を使用する、第１のオペレーションを始動するステップ、を含んでよい。
【００１０】
いくつかの実施例において、電子デバイスは、画像の第１領域および画像の第２領域と交差する方向において、表示画面の表面全体を横切ってまっすぐ照らすように向きを定められる発光ダイオードを含んでよい。これらの実施例において、発光ダイオードからの光が導かれる、画像の第１領域の一部における作用エリア、および、発光ダイオードからの光がない、画像の第１領域の残りの部分における偽のエリア、を定義するために、発光ダイオードは、画像の第１領域の一部を横切ってまっすぐ照らしてよい。第１のユーザーインターフェース・コントロールが表示されるグラフィカルユーザーインターフェースの第１位置は、画像の第１領域の作用エリアに対応してよい。オペレーションは、画像の第１領域の作用エリアにおいて対象物を検出して、かつ画像の第１領域の偽のエリアにおいて対象物を無視するために、照らされた対象物が画像の第１領域の範囲内にあるかどうか決定するステップを含んでよい。
【００１１】
いくつかの実施例において、発光ダイオードは、表示画面よりも上の第１のエリアを照らすために構成される第１の発光ダイオードである。そして、電子デバイスは、第２の発光ダイオードを含み、第２の発光ダイオードは、表示画面の表面を横切ってまっすぐ照らすように向きを定められて、第１の発光ダイオードによって照らされる表示画面よりも上の第１のエリアとは異なる表示画面よりも上の第２のエリアを照らすために構成される。これらの実施例において、第２の発光ダイオードによって照らされる表示画面よりも上の第２領域は、ジェスチャ入力領域を定義する。そして、オペレーションは、カメラによって捕えられる複数の画像の分析に基づいて第２のエリアの範囲内でジェスチャを検出するステップを含んでよい。
【００１２】
加えて、オペレーションは、カメラによって捕えられる画像について順番に交互の時間に照らすために、第１の発光ダイオードおよび第２の発光ダイオードをコントロールするステップを含んでよい。カメラによって捕えられる画像は、第１の発光ダイオードが照らされて、かつ第２の発光ダイオードが照らされない第１の画像セット、および、第２の発光ダイオードが照らされて、かつ第１の発光ダイオードが照らされない第２の画像セット、に結びついてよい。オペレーションは、第１のユーザーインターフェース・コントロールの活性化を検出するために、第１の発光ダイオードが照らされて、かつ第２の発光ダイオードが照らされない第１の画像セットを処理するステップ、および、第２のエリアの範囲内でジェスチャを検出するために、第１の発光ダイオードが照らされず、かつ第２の発光ダイオードが照らされる第２の画像セットを処理するステップ、を含んでよい。
【００１３】
いくつかの実施例において、オペレーションは、画像の複数の定義された領域以外の画像の部分を無視するステップを含んでよい。これらの実施例において、画像の複数の定義された領域以外の画像の部分に位置する対象物は、無視される。
【００１４】
いくつかの実施例において、オペレーションは、カメラによって捕えられる複数の画像の分析に基づいて、画像の領域の範囲内で対象物によるジェスチャの実行を検出するステップ、検出したジェスチャに対応するユーザー入力コマンドを決定するステップ、および、決定したユーザー入力コマンドに対応する第１のオペレーションを始動させるステップ、を含んでよい。これらの実施例において、オペレーションは、画像の領域の範囲内でのスワイプジェスチャの実行、およびスワイプジェスチャの方向を検出するステップ、および、スワイプジェスチャの検出した方向におけるスワイプジェスチャに対応するユーザー入力コマンドを決定するステップ、を含んでよい。
【００１５】
もう１つの態様において、少なくとも１つのコンピュータ読み取り可能の記憶媒体は、少なくとも１つのプロセッサによって実行されるときに、少なくとも１つのプロセッサにオペレーションを実行させる実行可能命令によってコード化される。オペレーションは、面を横切る画像を捕えるために向きを定められるカメラによって捕えられる画像にアクセスするステップ、および、カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する１つのインターフェース・コントロールに対応する、複数の領域を識別するステップ、を含んでよい。オペレーションはまた、複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する（１つの）領域を決定するステップを含む。オペレーションは、決定した領域に対応する前記１つのインターフェース・コントロールに基づくユーザー入力を決定するステップ、および、決定したユーザー入力に基づいてアプリケーションをコントロールするステップ、をさらに含む。
【００１６】
さらに他の態様では、方法は、面を横切る画像を捕えるために向きを定められるカメラによって捕えられる画像にアクセスするステップ、および、カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する１つのインターフェース・コントロールに対応する、複数の領域を識別するステップ、を含む。方法はまた、複数の定義された領域の中から、アクセスした画像の範囲内で検出される対象物が位置する（１つの）領域を決定するステップを含む。方法は、決定した領域に対応する１つのインターフェース・コントロールに基づくユーザー入力を決定するステップ、および、決定したユーザー入力に基づいてアプリケーションをコントロールするステップ、をさらに含む。
【００１７】
１つ以上の実施例の詳細は、添付の図面および以下の記載において説明される。開示の他の潜在的な特徴および効果は、説明および図面から、そして請求項から、明らかである。
【図面の簡単な説明】
【００１８】
【図１】図１は、ユーザーインターフェースをコントロールするシステムの実施例を示す。
【図２】図２は、カメラトラッキングシステム実施例を示す。
【図３】図３は、カメラトラッキングシステムにおけるユーザー入力コマンドを決定する方法の実施例を示すフローチャートである。
【図４Ａ】図４Ａは、ディスプレイ装置の最上部に配置されるカメラを含むシステムの実施例を示す。
【図４Ｂ】図４Ｂは、矩形のボタンコントロールを含むシステムの実施例を示す。
【図５】図５は、ディスプレイ装置の最下部の部分を照らしてアクティブタッチエリアを生じさせるシステムの実施例を示す。
【図６】図６は、ディスプレイ装置の最上部に配置されるカメラを含むシステムの実施例を示す。
【図７】図７は、同じ領域において複数のコントロールが表示されるシステムの実施例を示す。
【図８】図８は、複数の照明器のペアを含むシステムの実施例を示す。
【図９】図９は、ディスプレイ装置のコーナーに置かれるカメラを含むシステムの実施例を示す。
【図１０】図１０は、矩形形状のコントロールが使われるシステムの実施例を示す。
【図１１】図１１は、カメラがディスプレイ装置の左上コーナーに置かれるシステムの実施例を示す。
【図１２】図１２は、ディスプレイ装置の左上コーナーに置かれるカメラを含むシステムの実施例を示す。
【図１３】図１３は、アクティブタッチエリアを定義するシステムの実施例を示す。
【図１４】図１４は、ユーザー入力コマンドを決定してカメラトラッキングシステムを使用するアプリケーションをコントロールする方法の実施例を示すフローチャートである。
【図１５】図１５は、カメラトラッキングシステムにおけるユーザー入力コマンドを決定する方法の他の実施例を示すフローチャートである。
【図１６】図１６は、例示的なコンピュータ処理システムのコンポーネントの実施例を示す。
【図１７】図１７は、図１６に示されるコンピュータの内部アーキテクチャの実施例を示すブロック図である。
【００１９】
類似する参照番号は、全体を通して対応する部分を示す。
【発明を実施するための形態】
【００２０】
技術は、一次元のセンサを用いて二次元のインターフェースを模倣するために記述される。いくつかの実施例において、システムは、タッチスクリーン・インターフェースの表面を撮像する単一のカメラを含んでよい。これらの実施例において、このシステムは、一次元（例えば、図１に示すように、単一のカメラがタッチスクリーン・インターフェースの最上部に位置し、画像が下方にある、水平方向）での単一のカメラによって捕えた画像における対象物の位置を検出して、そして、二次元でのタッチスクリーン・インターフェースをコントロールするためにその一次元を使用する。二次元のコントロールを提供するために２つのセンサ（例えば２台のカメラ）が伝統的に必要であるにもかかわらず、このシステムは、タッチスクリーン・インターフェースにおけるインターフェースエレメントの知的な配置、および／または、タッチスクリーン・インターフェースにおける作用エリアを定義するための照明光源の使用、に基づく検出対象物の一次元を用いて、二次元でのタッチスクリーン・インターフェースをコントロールすることが可能である。これらの実施例において、二次元のコントロールを提供するために単一センサ（例えば単一のカメラ）のみが必要であるので、このシステムは、２つのセンサを要求するシステムよりも低コストを有してよい。
【００２１】
図１は、ユーザーインターフェースをコントロールするシステム１００を示す。システム１００は、ディスプレイ装置１０５の表面上に接触しているかまたはホバリング（ｈｏｖｅｒｉｎｇ）している対象物の位置を検出するように構成される。ディスプレイ装置１０５は、例えば、コンピュータ・モニタまたはテレビジョンスクリーンでよい。対象物は、例えば、ユーザーの手または指、スタイラスまたは他のポインティングデバイス、あるいはいくつかの他の対象物でよい。
【００２２】
システム１００は、ディスプレイ装置１０５の前に位置する対象物の画像を捕えるように構成されるカメラ１１０を含む。カメラ１１０は、ディスプレイ１０５の最上部に配置されてよく、そして、ディスプレイ１０５の表面に沿って見下ろすように向きを定められてよい。カメラ１１０の視野１１１は、ディスプレイ１０５に沿って下方へ広がる三角形の形状である。すなわち、カメラ１１０は、ディスプレイ１０５の最下部では全体の対象物の画像を捕えることができてよく、ディスプレイ１０５の最上部ではより小さいエリアを捕えることができてよいように、配置される。視野１１１は、多数の領域１１２〜１１６に分けられてよい。領域１１２〜１１６の各々は、例えば、角度として、または、視野１１１の範囲内の角度の範囲として、定義されてよい。別の実施例として、領域１１２〜１１６の各々は、カメラ１１０によって捕えられる画像の一部として、定義されてよい。図１に示すように、定義された領域１１２〜１１６は、別々のサイズでもよい。
【００２３】
システム１００は、ＬＥＤ（発光ダイオード）１１８、１１９を含む。いくつかの実施例において、ＬＥＤ以外の照明光源が用いられてよい。ＬＥＤ１１８、１１９は、視野１１１のアクティブタッチ領域を定義するために配置されてよい。そうすると、ＬＥＤ１１８、１１９が照らされるときに、アクティブタッチ領域において配置される対象物のみが検出される。アクティブタッチエリアは、例えば、ディスプレイ装置１０５の最下部で定義されてよい。
【００２４】
ディスプレイ装置１０５は、アプリケーションによって生成される表示画像を描画してよく、そこにおいて表示画像は、１つ以上のユーザー入力コントロールを含む。各ユーザー入力コントロールは、例えば、アクティブタッチエリア（例えば、ディスプレイ装置１０５の最下部に対応するエリア）内に配置されてよく、そして、視野１１１の定義された領域と関連していてよい。例えば、「戻る」ボタンコントロール１２０は、領域１１２に対応するエリアにおけるディスプレイ装置１０５の最下部で表示され、そして、「進む」ボタンコントロール１２２は、領域１１６に対応するエリアにおけるディスプレイ装置１０５の最下部で表示される。フィルムストリップコントロール１２４は、領域１１４に対応するディスプレイ装置１０５のエリアにおいて表示される。フィルムストリップコントロール１２４は、画像エリア１２６における画像の表示のコントロールに使われる。
【００２５】
ＬＥＤ１１８、１１９が照らされるにつれて、カメラ１１０は、ディスプレイ装置１０５の前で対象物（例えばユーザーの手または指）の画像を捕えてよい。捕えられた対象物に対応する領域１１２〜１１６は、決定されてよい。アプリケーション・コマンドは、決定された領域に基づいて決定されてよく、そして、決定されたアプリケーション・コマンドは、実行されてよい。
【００２６】
例えば、ユーザーがフィルムストリップコントロール１２４を指で指してタッチすると、その指は、ＬＥＤ１１８、１１９によって照らされてよく、そして、カメラ１１０の画像に捕らえられてよい。ユーザーの指の検出された水平位置に基づいて、その指は、領域１１４において捕えられたと決定されてよい。決定された領域１１４に基づいて、画像選択コマンドは、決定されてよい。画像選択コマンドは、実行されてよく、そして、指の水平位置は、特定のサムネイル画像１２８ａ〜ｄにマップされてよい。マップされたサムネイル画像（例えば１２８ｂ）は、画像エリア１２６におけるより大きいサイズにおいて表示されてよい。インジケータ１３０は、フィルムストリップ１２４におけるどのサムネイル１２８ａ〜ｄが、画像エリア１２６（例えば、図示のインジケータ１３０は、サムネイル１２８ｂの上に配置される）に表示されるかを示してよい。
【００２７】
別の実施例として、ユーザーが「戻る」コントロールボタン１２０を手で指してタッチすると、その手は、ＬＥＤ１１８、１１９によって照らされてよく、そして、カメラ１１０によって捕えられてよく、そして、対応する領域１１２が識別されてよい。「以前の画像」コマンドは、識別された領域１１２に基づいて決定されてよい。以前の画像コマンドは、実行されてよい。それにより、画像エリア１２６におけるサムネイル１２８ａの表示に、そして、サムネイル１２８ａの上のインジケータ１３０の位置決めに、結びつく。ユーザーが繰り返し「戻る」コントロールボタン１２０にタッチする場合、以前の目に見えない画像は、フィルムストリップ１２４において現されてよい。
【００２８】
さらに別の実施例として、ユーザーが「進む」ボタンコントロール１２２をスタイラスで指してタッチすると、そのスタイラスは、照らされてよく、そして、カメラ画像に捕えられてよい。領域１１６は、対応する領域として決定されてよく、そして、「次の画像」コマンドは、決定された領域１１６に基づいて決定されてよい。次の画像コマンドは、実行されてよい。それにより、画像エリア１２６におけるサムネイル１２８ｃの表示に、そして、サムネイル１２８ｃの上のインジケータ１３０の位置決めに、結びつく。ユーザーが繰り返し「進む」コントロールボタン１２２にタッチする場合、以前の目に見えない画像は、フィルムストリップ１２４において現されてよい。
【００２９】
単にディスプレイ装置１０５の前で対象物の存在を捕えることに加えて、対象物によってなされるジェスチャは、検出されてよい。例えば、「左スワイプ」、「右スワイプ」、「静止」のジェスチャは、認識されてよい。ジェスチャは、検出対象物のモーションを、認識されたジェスチャと関連したモーションパターンと比較することによって認識されてよい。認識されたジェスチャは、入力コマンドにマップされてよい。例えば、「左スワイプ」ジェスチャは、「次の画像」コマンドにマップされてよく、そして、「右スワイプ」ジェスチャは、「以前の画像」コマンドにマップされてよい。「静止」ジェスチャは、例えば、表示メニューコマンドにマップされてよい。
【００３０】
本明細書において全体を通じて用いられるように、「ジェスチャ」は、人間の身体または複数の人間の身体の全部または一部によってなされる非言語的なコミュニケーションの形態のことをいうことが意図され、そして、言葉でのコミュニケーション（例えば話し言葉）と対比される。例えば、ジェスチャは、第１の位置、ポーズまたは表現と、第２のポーズ、位置または表現との間の動き、変化または変形によって定義されてよい。ジェスチャの実施例は、例えば、「エアクォーツ」のジェスチャ、会釈（ｂｏｗｉｎｇ）のジェスチャ、お辞儀（ｃｕｒｔｓｙ）、頬へのキス、指または手の動き、ひざまずく動き、頭の振りまたは動き、ハイタッチ、頷き、高くなった拳、敬礼、スワイプまたはウェーブモーション、親指を挙げる動き、あるいは指を指すジェスチャ等を含む。
【００３１】
したがって、一連の画像から、ジェスチャは、ユーザーの考え、意見、感情、コミュニケーション、指揮、実証または表現を定義するものと推論されてよい。例えば、ユーザーのジェスチャは、単一または複数の指のジェスチャでよく、単一の手のジェスチャでよく、単一の手および腕のジェスチャでよく、単一の手および腕および身体のジェスチャでよく、頭のポーズまたは姿勢の変化でよく、身体のポーズまたは姿勢の変化でよく、または、他の任意の表現力豊かな身体の状態の変形でよい。
【００３２】
簡潔さのために、関連するジェスチャを実行するのに用いる身体の一部または部分は、「制御対象」と一般に呼ばれる。例えば、ユーザーは、彼らの全身を用いて、または他の物理的実体とともに、コマンドを表現してよい。その場合、彼らの全身または他の物理的実体は、制御対象でよい。ユーザーは、指を小刻みに動かすことによって、コマンドをより微妙に表現してよい。その場合、指は、制御対象でよい。単一の画像における、または２つの画像間におけるユーザーのジェスチャは、効果的なまたは「係合」ジェスチャを表現してよい。制御対象は、物理的デバイス（例えば、赤外線の指照明、再帰反射器（ｒｅｔｒｏ−ｒｅｆｌｅｃｔｏｒ）または遠隔制御）でよい。
【００３３】
ジェスチャをしながら、ユーザーは、ディスプレイ装置１０５の上を擦ってよく、またはホバリングしてよい。スワイプジェスチャを実行するために、ユーザーは、ディスプレイ装置１０５にタッチして、指を左または右へ１つの滑らかなモーションでドラッグしてよい。静止ジェスチャを実行するために、ユーザーは、指または手を動かすことなく、ディスプレイ装置１０５の上にタッチまたはホバリングしてよい。ジェスチャは、視野１１１の範囲内でどこでも検出されてよい。いくつかのアプリケーションにおいて、双方向ボタンコントロールが表示される一方、いくつかまたはすべてのジェスチャは、認識されなくてよい。いくつかの実施例において、写真または映像の提示の間、いくつかのジェスチャは、使われてよい。その結果、画像は、ボタンコントロールと重ならないフルスクリーンで表示されることができる。
【００３４】
図２は、カメラトラッキングシステム２００の一実施例を示す。システム２００は、カメラ２１０、ディスプレイ装置２２０、照明器２３０およびコンピューティング装置２４０を含む。システム２００は、デジタルピクチャーフレーム、テレビジョン、モニタ、製品ディスプレイ装置または任意のタイプの媒体システム、の中に含まれてよく、または、それらと連動して用いられてよい。
【００３５】
カメラ２１０は、画像を捕えるデバイスである。例えば、カメラ２１０は、デジタル・カメラ、デジタル・ビデオ・カメラまたは画像を捕える任意の他のタイプのデバイスでよい。いくつかの実施例において、カメラ２１０は、単一のカメラでよく、そして、システム２００は、単一のカメラのみを含んでよい。他の実施例では、複数のカメラが用いられてよい。カメラ２１０は、ディスプレイ装置２２０に表示されるインターフェースと相互作用している対象物の画像を捕えてよい。例えば、カメラ２１０は、ディスプレイ装置２２０に表示されるインターフェースと物理的に相互作用している（例えば、指または手によって）ユーザーまたは人の画像を捕えてよい。カメラ２１０は、任意のタイプのイメージセンサでよく、そして、ライン走査センサでよい。
【００３６】
ディスプレイ装置２２０は、可視表示画像を描画する。例えば、ディスプレイ装置２２０は、モニターディスプレイ、テレビジョンディスプレイ、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ装置、スクリーンを有するプロジェクタ、自動立体ディスプレイ、陰極線管（ＣＲＴ）ディスプレイ、デジタル光処理（ＤＬＰ）ディスプレイ、デジタルピクチャーフレームディスプレイ、または、可視表示画像を描画するように構成される任意の他のタイプのディスプレイ装置でよい。ディスプレイ装置２２０は、１つ以上のディスプレイ装置を含んでよい。ディスプレイ装置２２０は、アプリケーションと関連した画像を表示してよい。例えば、ディスプレイ装置２２０は、アプリケーション（例えば、写真を見るアプリケーション）によって生成される表示画像を描画してよい。アプリケーションによって生成される表示画像は、インターフェース・コントロールを有するインターフェースを含んでよい。
【００３７】
いくつかの実施例において、システム２００は、ディスプレイ装置２２０を含まない。例えば、システム２００は、別の表面（例えば、ドア、エレベータ、機械、無線受信機、メディアプレイヤまたは他の対象物のような、他のタイプの物理的実体の表面）の前で対象物を検出するように構成されてよい。いくつかの実施例において、システム２００は、スペース（例えば戸口または通路）のエリアの前に位置する。
【００３８】
照明器２３０は、光源を提供するデバイスである。例えば、照明器２３０は、フラッシュ装置、白熱電球、蛍光電球、発光ダイオード（ＬＥＤ）、ハロゲン光源、ネオン光源、キセノン光源、赤外線光源、または、カメラ２１０によって撮像される対象物を照らすように構成される任意の他のタイプのデバイスでよい。照明器２３０は、１つ以上の照明器を含んでよい。照明器２３０は、カメラ２１０によって捕えられる対象物の高品質画像を捕えるのを支援する光を発生してよい。いくつかの実施例において、照明器２３０は、特定の状況において用いられてよい。例えば、照明器２３０は、夜間に、または暗い室内において用いられてよい。照明器２３０は、カメラ２１０の視野の範囲内でアクティブタッチエリアを定義するために配置されてよい。照明器２３０を使用するアクティブタッチエリアを定義することは、単一のカメラによる対象物の検出精度を高めてよく、そしてまた、単一のカメラによって検出されてよいコントロールエレメントの個数を増加させてよい。単一のカメラを使用することは、システムのコストを減らすのを支援してよく、また、ジェスチャ・ベースの入力コントロールが、より高価でないデバイスにおいて実現されることを可能にする。
【００３９】
コンピューティング装置２４０は、カメラ２１０、ディスプレイ装置２２０および照明器２３０に、有線または無線経路を介して電気的に接続されて、そして、システム２００のオペレーションをコントロールしてよい。いくつかの実施例において、コンピューティング装置２４０は、アプリケーションを実行するように構成されるプロセッサまたは他の制御回路を含んでよい。これらの実施例において、コンピューティング装置２４０は、カメラ２１０によって捕えられる画像を受け入れてよく、そして、画像の範囲内で対象物（例えばユーザーの指）の位置を検出するために、受け入れられた画像を処理してよい。画像の範囲内の対象物の検出位置は、アプリケーションの実行をコントロールするためトラッキングされてよく、使われてよい。例えば、コンピューティング装置２４０は、カメラの視野の範囲内で定義される領域を有する画像の範囲内で、対象物の検出位置を比較してよい。この実施例では、コンピューティング装置２４０は、対象物が、特定領域において配置され、その特定領域と関連したインターフェース・コントロールを識別し、そして、その識別したインターフェース・コントロールに対応する機能に基づくアプリケーションをコントロールすることを、検出してよい。
【００４０】
コンピューティング装置２４０はまた、カメラ２１０、ディスプレイ装置２２０および照明器２３０のオペレーションおよび設定をコントロールしてよい。コンピューティング装置２４０は、命令を実行するように構成されるプロセッサまたは他の制御回路を含む、任意のタイプの電子デバイスでよい。
【００４１】
図３は、カメラトラッキングシステムにおけるユーザー入力コマンドを決定する方法３００の実施例を示すフローチャートである。便宜のために、図２に関して記述される特定のコンポーネントは、プロセス３００を実行するものとして参照される。しかしながら、同様の方法論は、システムの構造を定義するために別々のコンポーネントが用いられるか、または、コンポーネントの中で機能性が異なって分配される、他の実施例において適用されてよい。
【００４２】
コンピューティング装置２４０は、カメラ２１０の視野の領域を定義する（３１０）、そして、照明器２３０を使用するカメラ２１０の視野の作用エリアを定義する（３２０）。コンピューティング装置２４０は、ディスプレイ装置２２０に表示されるインターフェース・コントロールエレメントと一致するために、カメラ２１０の視野における複数の領域（例えば、カメラ２１０の視野の範囲内の角度、カメラ２１０によって捕えられる画像の一部、等）を定義してよい。例えば、図４Ａは、ディスプレイ装置４１０の最上部に配置されるカメラ４０５を含むシステム４００を示す。カメラ４０５の視野は、領域４１１〜４１５に分けられる。例えば、領域４１１は、ハッチングパターンによって示される。ユーザーインターフェース・コントロール４２１〜４２５は、ディスプレイ装置４１０に表示されて、そして、領域４１１〜４１５にそれぞれ対応する。
【００４３】
図３に一旦戻って、コンピューティング装置２４０は、定義された領域（３２０）を横切るカメラ２１０（例えば、ディスプレイ装置２２０の表面全体に）の視野の一部を照らすために、照明器２３０をコントロールすることによって、カメラ２１０の視野におけるアクティブタッチエリアを定義してよい。例えば、図４Ａに示すように、ＬＥＤ照明器４３０、４３２は、領域４１１〜４１５の最下部の部分を照らして、ディスプレイ４１０の最下部の部分を照らす。ＬＥＤ照明器４３０、４３２は、赤外線ＬＥＤでよい。
【００４４】
図３に一旦戻って、コンピューティング装置２４０は、定義されたアクティブタッチエリアにおいて定義された領域の少なくとも一部に対応する、ディスプレイ装置２２０の一部のインターフェース・コントロールの表示を描画する（３３０）。例えば、コンピューティング装置２４０は、ディスプレイ装置２２０に、各々定義された領域における少なくとも１つのインターフェース・コントロールを表示させてよい。この実施例では、コンピューティング装置２４０は、ディスプレイ装置２２０に、照明器２３０によって定義されるアクティブタッチエリアに対応する位置でインターフェース・コントロールを表示させてよい。
【００４５】
例えば、図４Ａに示すように、ユーザーインターフェース・コントロール４２１〜４２５は、ディスプレイ装置４１０に表示される。ここで、各コントロール４２１〜４２５は、それぞれの領域４１１〜４１５に対応するディスプレイ装置４１０の一部において表示される。ユーザーインターフェース・コントロール４２１〜４２５は、ＬＥＤ４３０〜４３２によって照らされるアクティブタッチエリアにおいて表示される。コントロールがそれらの対応する領域の範囲内で適合するように、コントロールの形状およびサイズは、選択されてよい。例えば、卵形の大きさのコントロール（例えばボタンコントロール４２１〜４２５）は、三角形の領域（例えば領域４１１〜４１５）の範囲内で、一般にうまく適合してよい。
【００４６】
他のタイプの形状は、三角形の形状または他の形状の領域の範囲内で、特にうまく適合しない。例えば、図４Ｂは、矩形のボタンコントロール４５２〜４６０を含むシステム４５０を示し、矩形のボタンコントロール４５２〜４６０の各々は、ディスプレイ装置４８０の対応する領域４７０〜４７５の内部にそれぞれ配置される。ここで、領域４７０〜４７５は、カメラ４８５の視野を分ける。図４Ｂに示すように、矩形のボタンは、自己の対応する領域の範囲内で完全に適合しなくてよい。例えば、矩形のボタン４５２は、領域４７１の外側に伸びる部分４９０で示すように、領域４７０の範囲内で完全には適合しない。同様に、重なり合う部分４９２は、矩形のボタン４５４が、領域４７２の範囲内で完全に適合しないで、領域４７１の内側に伸びることを示す。矩形のボタンが用いられる場合、それらは、各ボタンが対応する領域の範囲内で完全に適合することを確実にするために、各ボタンとボタンとの間に充分なスペースを有する間隔を置かれてよい。最小限のコントロール幅（例えば１インチ）が、使われてよい。
【００４７】
図３に一旦戻って、コンピューティング装置２４０は、カメラ２１０によって捕えられる画像にアクセスする（３４０）。例えば、コンピューティング装置２４０は、カメラ２１０から１つ以上の画像を受け入れてよい。コンピューティング装置２４０はまた、記憶媒体から１つ以上の画像にアクセスしてよい。コンピューティング装置２４０は、システム２００に近接するエリアの画像に連続的にアクセスしてよく、または、システム２００によって受け入れられる入力コマンドに応じて、システム２００に近接するエリアの画像にアクセスしてよい。
【００４８】
コンピューティング装置２４０は、アクセスした画像における対象物を検出する（３５０）。例えば、コンピュータ２４０は、アクセスした画像におけるユーザーの指または他の対象物（例えばポインタ、スタイラス、等）を検出するために、アクセスした画像を処理または分析してよい。この実施例では、コンピューティング装置２４０は、アクセスした画像の特徴を、画像における対象物の典型的な特徴と比較することによって、ユーザーを検出してよく、または、アクセスした画像におけるモーションを検出することによって、対象物を検出してよい。
【００４９】
コンピューティング装置２４０はまた、アクセスした画像の皮膚の色分析（または色分析に基づく既知の色を有する対象物を検出する）に基づいて、ユーザーを検出してよく、または、目下の画像と背景モデルとの違いを検出するために、１つ以上の対象物を含む目下の画像を背景モデルと比較することによって、対象物を検出してよい。コンピューティング装置２４０は、対象物の単一の画像の範囲内で、または、対象物の複数の画像セットの範囲内で対象物を検出するために、任意のタイプの技術を使用してよい。
【００５０】
コンピューティング装置２４０は、定義されたアクティブタッチエリアの外側に位置する対象物を無視する（３６０）。例えば、コンピューティング装置２４０は、照明器２３０によって照らされる対象物を識別して、照明器２３０によって照らされない対象物を無視する。例えば、図５に示すように、ＬＥＤ５０５〜５１０は、ディスプレイ装置５１５の最下部の部分を照らして、アクティブタッチエリア５２０を生じさせる。アクティブタッチエリア５２０は、カメラ５２５の視野の最下部の部分を含む。カメラ５２５の視野の最上部の部分はＬＥＤ５０５〜５１０によって照らされず、偽のタッチエリア５３０に結びつく。コンピューティング装置２４０は、アクティブタッチエリア５２０において照らされる対象物を識別してよく、偽のタッチエリア５３０における対象物を無視してよい。コンピューティング装置２４０は、照らされた対象物のための画像を分析することによって、偽のタッチエリア５３０の範囲内にある対象物を無視してよい。偽のタッチエリア５３０の範囲内のいかなる対象物も照らされないので、コンピューティング装置２４０は、これらの対象物を無視する（例えば、検出しない）。
【００５１】
いくつかの実施例において、コンピューティング装置２４０は、カメラによって捕えられる画像のピクセルを、バイナリイメージを発生するための輝度閾値と比較することによって、照らされた対象物を検出する。例えば、閾値を上回る輝度値を有するカメラ画像のピクセルは、１の値を有するバイナリイメージにおいて識別されてよく、そして、閾値を下回る輝度値を有するピクセルは、０の値を有するバイナリイメージにおいて識別されてよい。これらの実施例において、コンピューティング装置２４０は、１つ以上の対象物がバイナリイメージの範囲内にあるかどうか検出するために、バイナリイメージを分析する。
【００５２】
いくつかの実施例において、照明光源が照らされるときに、第１の画像がカメラによって捕えられ、そして、照明光源が照らされないときに、第２の画像がカメラによって捕えられように、照明光源は、カメラによって交互パターンに捕えられる画像については順番に照らすようにコントロールされる。これらの実施例において、結果として生じる画像を発生するために、照明光源が切られる間に捕えられるカメラ画像は、照明光源が点けられる間に捕えられるカメラ画像から差し引かれてよい。結果として生じる画像は、照明光源が点けられたときに捕えられるカメラ画像において、１つ以上の対象物が照らされるかどうか決定するために、分析されてよい。照明光源が切られたときに捕えられるカメラ画像を差し引くことは、両方のカメラ画像に存在した環境光を取り除いてよい。
【００５３】
図３に一旦戻って、アクティブタッチエリアにおける対象物のために、コンピューティング装置２４０は、検出対象物に対応する定義された領域を決定する（３７０）。例えば、コンピューティング装置２４０は、アクセスした画像における検出対象物の位置を、カメラ２１０の視野の範囲内で定義された領域と比較して、そして、もしあれば、定義された領域の中で、検出対象物が配置される領域を決定する。
【００５４】
コンピューティング装置２４０は、決定された領域に基づいて、コマンドを決定する（３８０）。コンピューティング装置２４０は、決定された領域において表示されるインターフェース・コントロールに対応する入力コマンドを識別してよい。例えば、プレイ入力コントロールが、決定された領域に対応する位置でディスプレイ装置２２０に表示されるときに、コンピューティング装置２４０は、「プレイ」コマンドを実行すると決定してよい。他の実施例として、図４を参照して、コンピューティング装置２４０は、コントロール４２１に対応するコマンドを実行するコマンドを決定してよい。
【００５５】
いくつかの実施例において、コマンドの並列設定が、決定された領域と関連しているときに、コンピューティング装置２４０は、特定のコマンドを選択するために、決定された領域の範囲内で対象物の位置を決定してよい。これらの実施例において、摺動ノブ入力コントロールは、決定された領域に対応する位置で、ディスプレイ装置２２０に表示されてよい。摺動ノブ入力コントロールは、摺動ノブ入力コントロールにおけるノブの位置に基づいて、複数の可能な画像の中からディスプレイ装置２２０に表示する画像を選択してよい。選択された画像（または摺動ノブ入力コントロールにおけるノブの位置）は、決定された領域の範囲内で対象物の位置に基づいて決定されてよい。他の実施例において、摺動ノブ入力コントロールは、スピーカの量をコントロールしてよく、またはディスプレイのズーム設定をコントロールしてよい。
【００５６】
例えば、図６は、ディスプレイ装置６１０の最上部に配置されるカメラ６０５を含むシステム６００を示す。カメラ６０５の視野は、領域６１２〜６１６に分けられる。摺動ノブ入力コントロール６２０は、領域６１４に対応するディスプレイ装置６１０の位置で表示される。コントロール６２０は、「ノブ」６２２を含む。ノブ６２２の位置は、例えば、領域６１４の範囲内でユーザーの指の水平位置に基づいて決定されてよい。一連の複数の可能な画像の中から選択される画像は、コントロール６２０におけるノブ６２２の水平位置に基づいて、画像エリア６３０において表示されてよい。例えば、ユーザーが、領域６１４の左の部分に対応する位置で、彼らの指でディスプレイ装置６１０にタッチする場合、一連の複数の可能な画像の最初の部分に位置する画像は、画像エリア６３０において選択されてよく、表示されてよい。別の実施例として、ユーザーが、領域６１４の右の部分に対応する位置でディスプレイ装置６１０にタッチする場合、一連の複数の可能な画像の最後の部分に位置する画像は、画像エリア６３０において選択されてよく、表示されてよい。
【００５７】
図３に一旦戻って、コンピューティング装置２４０は、決定された領域におけるジェスチャを検出して、検出したジェスチャに基づいてコマンドを決定する（３９０）。コンピューティング装置２４０は、決定された領域の範囲内で検出対象物のモーションを、認識されたジェスチャと関連したモーションパターンと比較することによって、決定された領域におけるジェスチャを検出してよい。検出対象物のモーションが、認識されたジェスチャと関連したモーションパターンと一致するときに、コンピューティング装置２４０は、認識されたジェスチャのパフォーマンスを識別して、認識されたジェスチャに対応するコマンドを決定する。例えば、図６の実施例で、ユーザーは、彼らの指によって「左スワイプ」のジェスチャをする。コンピューティング装置２４０は、左スワイプのジェスチャを認識してよく、「次の画像」コマンドを決定して、実行してよく、画像エリア６３０における新しい画像の表示に結びつく。ここで、新しい画像は、一連の複数の可能な画像における目下表示された画像の次にある。別の実施例として、ユーザーは、彼らの手または指によって「右スワイプ」のジェスチャをしてよい。コンピューティング装置２４０は、右スワイプのジェスチャを認識してよく、「以前の画像」コマンドを決定して、実行してよい。
【００５８】
いくつかの実施例において、回転ノブコントロール（例えばダイヤル）は、決定された領域において表示されてよく、そして、コンピューティング装置２４０は、回転ノブコントロールの位置（例えば、回転ノブコントロールが回転した量）に基づいて、コマンドを決定してよい。これらの実施例において、コンピューティング装置２４０は、決定された領域の範囲内で検出対象物を有する円を抽出するジェスチャをするユーザーを検出してよい。コンピューティング装置２４０は、ユーザーが時計回りに円を抽出するか、反時計回りに円を抽出するかどうかに基づく方向に、回転ノブコントロールを回転させてよく、そして、回転後の回転ノブコントロールの位置に基づいて、コマンドを決定してよい。
【００５９】
図７は、同じ領域において複数のコントロールが表示されるシステム７００を示す。システム７００は、ディスプレイ装置７２０の最上部に配置されるカメラ７１０を含む。カメラ７１０の視野は、複数の領域７２２〜７３０に分けられる。音楽プレイヤアプリケーションのためのインターフェースの画像は、ディスプレイ装置７２０に表示される。音楽プレイヤアプリケーションは、ボタンコントロール７３２〜７４０を含む。そしてそれは、領域７２２〜７３０にそれぞれ対応するディスプレイ装置７２０のエリアにおいて表示される。音楽プレイヤアプリケーションはまた、ボタンコントロール７４２〜７５０を含む。そしてそれは、領域７２２〜７３０にそれぞれ対応するディスプレイ装置７２０のエリアにおいても表示される。
【００６０】
ボタンコントロール７３２〜７５０は、音楽プレイヤアプリケーションのコントロールに使用してよい。例えば、ボタン７４６は、プレイリスト７５５において目下選択される曲（インジケータ７６０は、プレイリスト７５５において目下選択された曲を示す）をプレイするために用いてよいプレイボタンである。ボタンコントロール７４２〜７４４および７４８〜７５０は、目下プレイしている曲を、それぞれ、巻き戻し、休止、停止および早送りするために用いてよい。ボタンコントロール７３２〜７３４は、インジケータ７６０をそれぞれ上または下に移動することによって、プレイリスト７５５の別の曲を選択するために用いてよい。ボタンコントロール７３６〜７３８は、再生ボリュームをそれぞれ減少させるかまたは増加させるために用いてよい。ボタンコントロール７４０は、例えば、選択された曲をプレイするために用いてよく、または、選択された曲について詳細を表示するために用いてよい。
【００６１】
図７に示すように、各領域７２２〜７３０は、複数のコントロールを含む。例えば、領域７２６は、コントロール７４６およびコントロール７３６を含む。カメラ７１０が領域７２６においてユーザーの指を検出する場合、それは、ユーザーがコントロール７３６またはコントロール７４６のいずれを選択しようとしたのかについて曖昧でよい。この曖昧性を回避するために、ユーザーインターフェースは、各領域が１つのコントロールのみを含むように設計されてよい。加えて、ユーザーインターフェースは、双方向のはずでない偽のタッチエリアのボタン、スクロールバーまたは他のコントロールと視覚的に同様である図形を配置することを回避するように設計されてよい。
【００６２】
照明器の複数セットを使用するアプローチは、同じ領域に複数コントロールを有することをサポートするために用いてよい。例えば、第１のＬＥＤペア７７０〜７７５は、ボタンコントロール７３２〜７４０に対応するディスプレイ装置７２０のエリアを照らしてよい。そして、第２のＬＥＤペア７８０〜７８５は、ボタンコントロール７４２〜７５０に対応するディスプレイ装置７２０のエリアを照らしてよい。ＬＥＤペア７７０〜７７５およびＬＥＤペア７８０〜７８５は、時間を交互に照らされてよい。そのため、ＬＥＤ７７０〜７７５が照らされる間、カメラ７１０は第１のカメラ画像を捕える。そして、ＬＥＤ７８０〜７８５が照らされる間、カメラ７１０は第２のカメラ画像を捕える。
【００６３】
どのカメラ画像に対象物が検出されるかに応じて、コンピューティング装置２４０は、ユーザーが、コントロール７３２〜７４０のうちの１つ、またはコントロール７４２〜７５０のうちの１つ、のいずれを選択しているかどうか決定してよい。例えば、ＬＥＤ７８０〜７８５が照らされるときに対象物が領域７２４において検出される場合、コンピューティング装置２４０は、コントロール７４４と関連した休止コマンドを識別して実行してよい。別の実施例として、ＬＥＤ７７０〜７７５が照らされるときに対象物が領域７２８において検出される場合、コンピューティング装置２４０は、コントロール７３８と関連したボリュームコマンドを識別して実行してよい。いくつかの実施例において、ディスプレイ装置７２０の２つ以上のエリアを照らすために、２ペア以上のＬＥＤが用いられてよい。
【００６４】
図８は、複数の照明器のペアを含むシステム８００用のアクティブタッチエリアを示す。システム８００は、ＬＥＤ８１０〜８２０を含む。そしてそれは、照らされるときに、アクティブタッチエリア８２５を生じさせる。カメラ８５０によって捕えられる画像をともなうシーケンスで、ＬＥＤ８１０〜８２０は、ＬＥＤ８３０〜８４０と交互の時間に照らされてよい。ＬＥＤ８３０〜８４０の照明は、第２のアクティブタッチエリア（図示せず）を生じさせてよい。そしてそれは、アクティブタッチエリア８２５よりも上方に配置される。捕えられたカメラ画像は、ＬＥＤ８１０〜８２０が照らされて、かつＬＥＤ８３０〜８４０が照らされない状態における第１の画像セット、および、ＬＥＤ８３０〜８４０が照らされて、かつＬＥＤ８１０〜８２０が照らされない状態における第２の画像セット、に結びついてよい。第１の画像セットは、対象物がアクティブタッチエリア８２５の範囲内で検出されるかどうか決定するために処理されてよい。第２の画像セットは、対象物が第２のアクティブタッチエリアの範囲内で検出されるかどうか決定するために処理されてよい。対象物が第２のアクティブタッチエリアの範囲内で検出されるときに、検出対象物の変化は、認識されたジェスチャが第２のアクティブタッチエリアにおいて実行されるかどうか決定するためにトラッキングされてよい。
【００６５】
図９は、ディスプレイ装置９０７のコーナーに置かれるカメラ９０５を含むシステム９００を示す。カメラ９０５は、ディスプレイ装置９０７の左上コーナー（例えば。ここでディスプレイ装置９０７の左側部は、ディスプレイ装置９０７の上側部と交差する。）に置かれる。カメラ９０５がディスプレイ装置９０７のコーナーに置かれる構成を使用することによって、ユーザーインターフェース・コントロールは、カメラ９０５と反対の２つの側部に沿って配置されてよい。（例えば、図９に示すように、カメラは、ディスプレイ装置９０７の左上コーナーに置かれる。ユーザーインターフェース・コントロール９２０〜９２４は、ディスプレイ装置９０７の右端縁に沿って並んで置かれる。ユーザーインターフェース・コントロール９２４〜９２８は、ディスプレイ装置９０７の下端縁に沿って並んで置かれる。）ユーザーインターフェース・コントロール９２０〜９２８は、領域９１０〜９１８にそれぞれ対応する。領域９１０〜９１８は、カメラ９０５の視野を分ける。
【００６６】
図９に示すように、卵型のインターフェース・コントロールを使用することによって、コントロールは、対応する領域の内側に適合してよい。他のタイプのコントロール形状は、システム９００で使用するカメラおよび領域の構成を使用するときに、対応する領域の範囲内で一般にうまく適合しなくてよい。例えば、図１０は、矩形形状のコントロール１００１〜１００９が使われることを除いては、システム９００と同様であるシステム１０００を示す。コントロール１００１〜１００９は、カメラ１０２０の視野を分ける領域１０１０〜１０１８に対応する。矩形形状のコントロール１００１〜１００９のいくつかは、省略された部分１０２２〜１０２８によって示すように、対応する領域１０１０〜１０１８の範囲内で適合しない。
【００６７】
システム９００の構成は、垂直スクロールバーコントロールを考慮に入れてよい。例えば、図１１は、カメラ１１０５がディスプレイ装置１１０７の左上コーナーに置かれるという点で、システム９００と同様であるシステム１１００を示す。領域１１１０〜１１１５は、カメラ１１０５の視野を分ける。スクロールバーコントロール１１２１は、領域１１１０に対応するディスプレイ装置１１０７の領域内にある。領域１１１０は、それが領域１１１１〜１１１５の各々よりも大きいくサイズ設定されて、そして、スクロールバーコントロール１１２１の高さを収容するためにサイズ設定される。スクロールバーコントロール１１２１は、プレイリスト１１２３から曲を選択するために上下に移動してよいスライダ１１２２を含む。インジケータ１１２４は、プレイリスト１１２３内の目下選択された曲を示す。ボタンコントロール１１３１〜１１３５は、早送り、停止、プレイ、休止、または、巻き戻し、にそれぞれ使用されてよい。
【００６８】
システム９００またはシステム１１００において使われるような構成を使用するときに、所望のタッチエリアおよび偽のタッチエリアは、定義されてよい。例えば、図１２は、ディスプレイ装置１２１０の左上コーナーに置かれるカメラ１２０５を含むシステム１２００を示す。所望のタッチエリア１２２０は、カメラ１２０５の視野およびディスプレイ装置１２１０の交差の最下部および右側部で定義されてよい。所望のタッチエリア１２２０の上方または左方に位置するカメラ１２０５の視野のエリアは、偽のタッチエリア１２３０として定義されてよい。ユーザーインターフェースを設計するときに、コントロールを所望のタッチエリア１２２０内に配置すること、および、コントロールまたはコントロールに似た図形を、偽のタッチエリア１２３０内に配置することを回避することは、望ましくてよい。
【００６９】
図１３は、アクティブタッチエリアを定義するシステム１３００を示す。システム１３００は、ディスプレイ装置１３０７の左上コーナーに置かれるカメラ１３０５を含む。ＬＥＤ１３１０、１３１５は、アクティブタッチエリア１３２０を定義するために照らされてよい。アクティブタッチエリア１３２０に対応するディスプレイ装置１３０７の領域におけるカメラ１３０５の視野内の対象物は、認識されてよい。一方、アクティブタッチエリア１３２０の外側でカメラ１３０５の視野内に位置する対象物は、無視されてよい。しかしながら、対象物は、ＬＥＤ１３３０〜１３３５を照らすことによって、ディスプレイ装置１３０７の中央に（例えば、アクティブタッチエリア１３２０の外側で）検出されてよい。例えば、アプリケーションがジェスチャ認識モードにある間、対象物は、ディスプレイ装置１３０７の中央に検出されてよい。ジェスチャ認識モードにおいて、カメラ画像は、領域へのカメラ１３０５の視野のセグメンテーションなしで処理されてよい。（例えば、ジェスチャが視野のどこで実行されたかに関係なく、ジェスチャは認識されてよい。）
【００７０】
図１４は、ユーザー入力コマンドを決定して、カメラトラッキングシステムを使用するアプリケーションをコントロールする方法１４００の実施例を示すフローチャートである。便宜のために、図２に関して記述される特定のコンポーネントは、プロセス１４００を実行するものとして参照される。しかしながら、同様の方法論は、システムの構造を定義するために別々のコンポーネントが用いられるか、または、コンポーネントの中で機能性が異なって分配される、他の実施例において適用されてよい。
【００７１】
コンピューティング装置２４０は、カメラによって捕えられる画像をアクセスする（１４１０）。例えば、コンピューティング装置２４０は、カメラ２１０が１つ以上の画像を捕えて、そして、カメラ２１０から１つ以上の画像を受け入れるために、カメラ２１０をコントロールしてよい。コンピューティング装置２４０はまた、記憶媒体から１つ以上の画像にアクセスしてよい。コンピューティング装置２４０は、画像に連続的にアクセスしてよく、または、システム２００によって受け入れられる入力コマンドに応じて画像にアクセスしてよい。
【００７２】
コンピューティング装置２４０は、カメラの視野の範囲内で複数の定義された領域の中から、アクセスした画像が位置する範囲内で検出される対象物の領域を決定する（１４２０）。例えば、図１に関して、コンピューティング装置２４０は、カメラ１１０によって捕えられる画像における対象物を検出してよく、そして、領域１１２〜１１６の中から、その対象物が配置される領域を決定してよい。
【００７３】
いくつかの実施例において、コンピューティング装置２４０は、アクセスした画像の範囲内で対象物を検出して、そして、アクセスした画像の範囲内で検出対象物の位置を決定する。画像の範囲内で対象物を検出して、検出対象物の位置を決定するいかなる技術も、用いられてよい。コンピューティング装置２４０は、決定した位置を、カメラの視野の範囲内の複数の定義された領域と比較して、その比較結果に基づいて、検出対象物が配置される領域を識別する。例えば、コンピューティング装置２４０は、アクセスした画像における検出対象物の位置座標（例えばピクセル位置）を、アクセスされたカメラ画像の範囲内の定義された領域の定義された位置座標（例えばピクセル位置）のデータと比較する。
【００７４】
いくつかの実施例において、コンピューティング装置２４０は、アクセスした画像を、各々が複数の定義された領域のうちの１つに対応するセグメントに分割する。これらの実施例において、コンピューティング装置２４０は、セグメントの各々に対して、対象物がセグメントの範囲内にあるかどうか決定するために、セグメントを分析してよい。対象物が特定のセグメントの範囲内にあるという判定に応じて、コンピューティング装置２４０は、対象物が、特定のセグメントに対応する特定領域の範囲内に配置されると決定する。これらの実施例において、セグメントは、対象物がセグメントの範囲内にあるかどうか決定するために分析される画像の唯一の部分でよい。加えて、コンピューティング装置２４０は、対象物全体がセグメントの任意の部分の範囲内にあるとき、その対象物がそのセグメントの範囲内にあると決定してよい。
【００７５】
コンピューティング装置２４０は、決定された領域に基づいて、ユーザー入力を決定する（１４３０）。例えば、インターフェース・コントロールは、決定された領域に対応する位置で表示されてよい。コンピューティング装置２４０は、決定された領域をインターフェース・コントロールにマップしてよく、そして、ユーザーがインターフェース・コントロールを活性化するために入力を提供されたと決定してよい。
【００７６】
いくつかの実施例において、ジェスチャは、一連の画像の範囲内で検出される対象物の位置に基づいて検出されてよく、そして、ユーザー入力コマンドは、認識されたジェスチャに基づいて決定されてよい。例えば、「スワイプ」ユーザー入力は、検出されてよく、そして、「ステーション変更」または「次の画像」ユーザー入力は、認識されたスワイプジェスチャに基づいて決定されてよい。
【００７７】
コンピューティング装置２４０は、決定されたユーザー入力に基づいて、アプリケーションをコントロールする（１４４０）。例えば、コンピューティング装置２４０は、決定されたユーザー入力に対応するアプリケーションの範囲内で、オペレーションを始動させてよい。この実施例では、決定されたユーザー入力がインターフェース・コントロールの活性化（例えばインターフェース・ボタンの押圧）であるときに、コンピューティング装置２４０は、インターフェース・コントロールの活性化と関連するオペレーションを実行するために、アプリケーションをコントロールする。
【００７８】
図１５は、カメラトラッキングシステムにおけるユーザー入力コマンドを決定する方法１５００の他の実施例を示すフローチャートである。便宜のために、図２に関して記述される特定のコンポーネントは、プロセス１５００を実行するものとして参照される。しかしながら、同様の方法論は、システムの構造を定義するために別々のコンポーネントが用いられるか、または、コンポーネントの中で機能性が異なって分配される、他の実施例において適用されてよい。
【００７９】
コンピューティング装置２４０は、カメラによって捕えた画像を、第１のユーザーインターフェース・コントロールに対応する第１領域、および、第２のユーザーインターフェース・コントロールに対応する第２領域に分割する。ここで、画像の第１領域は、画像の第２領域とは異なる（１５１０）。例えば、図１に関して、コンピューティング装置２４０は、カメラ１１０によって捕えた領域を、領域１１２〜１１６に分割してよい。ここで、領域１１２はコントロール１２０に対応し、そして、領域１１６はコントロール１２２に対応する。
【００８０】
コンピューティング装置２４０は、画像の分割された第１領域の分析に基づいて、対象物が、画像の第１領域の範囲内にあるかどうか決定する（１５２０）。例えば、図１に関して、カメラ画像が捕えられた間、ユーザーがディスプレイ装置１０５の領域１１２にタッチしていたと仮定する。例えば、カメラ画像のピクセルを、バイナリイメージを発生するための輝度閾値と比較することによって、そして、バイナリイメージの範囲内のピクセルを、１つ以上の小塊へ集めることによって、ユーザーの指は、検出されてよい。小塊の重心は、対応する検出対象物の位置として計算されてよく、そして、検出対象物の位置は、領域１１２〜１１６を定義する位置と比較されてよい。この実施例では、コンピューティング装置２４０は、対象物が領域１１２の範囲内にあると決定してよい。
【００８１】
コンピューティング装置２４０は、画像の分割された第１領域のみの分析に基づいて、対象物が画像の第１領域の範囲内にあるかどうか決定してよい。例えば、図１の実施例において、領域１１４〜１１６ではなく領域１１２が、分析されるかもしれない。コンピューティング装置２４０は、対象物が画像の第１領域の任意の部分の範囲内にあるかどうか決定してよい。
【００８２】
コンピューティング装置２４０は、画像の分割された第２領域の分析に基づいて、対象物が画像の第２領域の範囲内にあるかどうか決定する（１５３０）。参照番号１５２０に関して上記の実施例を使用して、コンピューティング装置２４０は、対象物が領域１１６において検出されないと決定してよい。
【００８３】
第１の画像に対する処理と同様に、コンピューティング装置２４０は、画像の分割された第２領域のみの分析に基づいて、対象物が画像の第２領域の範囲内にあるかどうか決定してよい。例えば、図１の実施例において、領域１１２〜１１４ではなく領域１１６が、分析されるかもしれない。コンピューティング装置２４０は、対象物が画像の第２領域の任意の部分の範囲内にあるかどうか決定してよい。
【００８４】
対象物が画像の第１領域の範囲内にあるという判定に応じて、コンピューティング装置２４０は、第１のユーザーインターフェース・コントロールの活性化を検出して、そして、第１のユーザーインターフェース・コントロールの活性化と関連した第１のオペレーションを始動させる（１５４０）。上記実施例において、例えば、対象物が図１の領域１１２において検出されると、コンピューティング装置２４０は、「戻る」ボタンコントロール１２０の活性化を検出してよい。「以前の画像」コマンドは、決定されて、実行されてよい。それにより、画像エリア１２６におけるサムネイル１２８ａの表示に、そして、サムネイル１２８ａよりも上方のインジケータ１３０の位置決めに、結びつく。
【００８５】
コンピューティング装置２４０は、対象物が位置する画像の第１領域の一部に関係なく、対象物が画像の第１領域の範囲内にあるという判定に応じて、第１のユーザーインターフェース・コントロールの活性化を検出してよい。例えば、図１の実施例において、対象物が領域１１２の範囲内の任意の場所において検出される場合、「戻る」ボタンコントロールは、活性化されてよい。
【００８６】
対象物が画像の第２領域の範囲内にあるという判定に応じて、コンピューティング装置２４０は、第２のユーザーインターフェース・コントロールの活性化を検出して、そして、第２のユーザーインターフェース・コントロールの活性化と関連した第２のオペレーションを始動させる（１５５０）。上記実施例において、対象物が図１の領域１１２における代わりに領域１１６において検出されると仮定する。コンピューティング装置２４０は、対応する「進む」ボタンコントロール１２２の活性化を検出してよい。「次の画像」コマンドは、決定されて実行されてよい。それにより、画像エリア１２６におけるサムネイル１２８ｃの表示に、そして、サムネイル１２８ｃよりも上方のインジケータ１３０の位置決めに、結びつく。
【００８７】
図１６は、例示的なコンピュータ処理システムのコンポーネントを示す。簡潔に、このシステム１６００は、プロセッサを含むコンピューティング装置１６０１を含み、そのプロセッサは、ユーザーがテキスト、数字の入力、またはオプションメニューからの選択をできるように構成されるアプリケーションをコントロールするように構成される。デバイス１６０１は、サーバ１６０２およびサーバ１６０４を含む１つ以上のサーバとネットワーク１６０６上で電子通信を交わすために構成されてよい。
【００８８】
さらに詳細に、コンピューティング装置１６０１のハードウェア環境は、ユーザーにテキストおよび画像を表示するための表示装置１６０８、コンピューティング装置１６０１へのテキストデータおよびユーザーコマンドを入力するためのキーボード１６０９、表示装置１６０８に表示される対象物を指し示して、選択して、操作するためのマウス１６１０、固定ディスクドライブ１６１１、着脱可能なディスクドライブ１６１２、テープドライブ１６１４、ハードコピー出力装置１６１５、コンピュータ・ネットワーク接続１６１６、およびデジタル入力装置１６１７、を含む。
【００８９】
表示装置１６０８は、図形、画像および、コンピューティング装置１６０１を作動するのに必要なオペレーティングシステム・プログラムと同様に、コンピューティング装置１６０１により用いられるソフトウェアアプリケーションのためのユーザーインターフェースを含むテキスト、を表示する。ユーザーは、アプリケーションプログラムと同様に、コンピュータ・オペレーティングシステム・プログラムを作動してコントロールするために、コマンドおよびデータを入力するキーボード１６０９を使用する。マウス１６１０は、ポインティングデバイスの任意のタイプでよく、ジョイスティック、トラックボール、タッチパッド、または他のポインティングデバイスでよい。ユーザーインターフェースを表示して、ユーザーがテキスト、数字を入力し、またはオプションメニューから選択できるように用いるソフトウェアは、局地的にコンピュータ読み取り可能の記憶媒体（例えば、固定ディスクドライブ１６１１）に格納される。
【００９０】
さらなる実施例において、固定ディスクドライブ１６１１は、それ自体、多くの物理ドライブユニット（例えば、独立した複数のディスクからなる冗長配列（「ＲＡＩＤ」））を含んでよく、あるいは、別個のコンピュータに物理的に位置するディスクドライブファームまたはディスクアレーでよい。この種のコンピュータ読み取り可能のメモリ媒体によって、コンピューティング装置１６０１は、着脱可能なおよび取り外し不可能な記憶媒体に保存される、コンピュータ実行可能なプロセスステップ、アプリケーションプログラムなどにアクセスしてよい。
【００９１】
コンピュータ・ネットワーク接続１６１６は、モデム接続、Ｅｔｈｅｒｎｅｔ（登録商標）を含むローカルエリアネットワーク（「ＬＡＮ」）接続、またはブロードバンド広域ネットワーク（「ＷＡＮ」）接続（例えばデジタル加入者線（「ＤＳＬ」）、ケーブル高速ネットワーク間接続、ダイヤルアップ接続、Ｔ−１線、Ｔ−３線、ファイバーオプティック接続またはサテライト接続）でよい。ネットワーク１６０６は、ＬＡＮネットワーク、会社または政府ＷＡＮネットワーク、インターネットまたは他のネットワークでよい。
【００９２】
コンピュータ・ネットワーク接続１６１６は、有線または無線コネクタでよい。無線コネクタの実施例は、例えば、ＩＮＦＲＡＲＥＤ  ＤＡＴＡ  ＡＳＳＯＣＩＡＴＩＯＮ（登録商標）（「ＩｒＤＡ（登録商標）」）無線コネクタ、光学無線コネクタ、ＩＮＳＴＩＴＵＴＥ  ＯＦ  ＥＬＥＣＴＲＩＣＡＬ  ＡＮＤ  ＥＬＥＣＴＲＯＮＩＣＳ  ＥＮＧＩＮＥＥＲＳ（登録商標）（「ＩＥＥＥ（登録商標）」）スタンダード８０２．１１無線コネクタ、ＢＬＵＥＴＯＯＴＨ（登録商標）無線コネクタ、直角周波数分割多重送信（「ＯＦＤＭ」）ウルトラ広帯域（「ＵＷＢ」）無線コネクタ、時間調整ウルトラ広帯域（「ＴＭ−ＵＷＢ」）無線コネクタ、または他の無線コネクタを含む。有線コネクタの実施例は、例えば、ＩＥＥＥ（登録商標）ＦＩＲＥＷＩＲＥ（登録商標）コネクタ、ユニバーサルシリアルバス（「ＵＳＢ」）コネクタ、シリアルポートコネクタ、パラレルポートコネクタ、または他の有線コネクタを含む。
【００９３】
着脱可能なディスクドライブ１６１２は、コンピューティング装置１６０１からデータをオフロードするか、またはコンピューティング装置１６０１へデータをアップロードするために用いる、着脱可能な記憶装置である。取外し可能ディスクドライブ１６１２は、フロッピーディスクドライブ、ＩＯＭＥＧＡ（登録商標）ＺＩＰ（登録商標）ドライブ、コンパクトディスク読取り専用メモリ（「ＣＤ−ＲＯＭ」）ドライブ、ＣＤ−Ｒドライブ（「ＣＤ−Ｒ」）、ＣＤリライタブルドライブ（「ＣＤ−ＲＷ」）、フラッシュメモリ、ＵＳＢフラッシュドライブ、親指ドライブ、ペンドライブ、鍵ドライブ、高密度デジタル多用途ディスク（「ＨＤ−ＤＶＤ」）光学ディスクドライブ、ブルーレイ光学ディスクドライブ、ホログラフィックデジタルデータストレージ（「ＨＤＤＳ」）光学ディスクドライブ、あるいは、「ＤＶＤ−Ｒ」または「ＤＶＤ＋Ｒ」、「ＤＶＤ−ＲＷ」または「ＤＶＤ＋ＲＷ」、または「ＤＶＤ−ＲＡＭ」のようなさまざまな記録、再書き込み可能なデジタル多用途ディスク（「ＤＶＤ」）ドライブの任意の１つ、でよい。オペレーティングシステム・プログラム、アプリケーション、およびさまざまなデータ・ファイルはディスクに格納される。そしてそれは、固定ディスクドライブ１６１１上に、または、着脱可能なディスクドライブ１６１２用の取り外し可能媒体上に格納される。
【００９４】
テープドライブ１６１４は、コンピューティング装置１６０１からデータをオフロードするか、またはコンピューティング装置１６０１上へデータをアップロードするために用いるテープ記憶装置である。テープドライブ１６１４は、１／４インチ・カートリッジ（「ＱＩＣ」）、４ｍｍのデジタルオーディオテープ（「ＤＡＴ」）、８ｍｍのデジタルリニアテープ（「ＤＬＴ」）ドライブ、または他のタイプのテープでよい。
【００９５】
ハードコピー出力装置１６１５は、オペレーティングシステム・プログラムおよびアプリケーションのための出力機能を提供する。ハードコピー出力装置１６１５は、有形の出力オブジェクトを発生するプリンタまたは任意の出力装置でよい。そしてそれは、テキストまたは画像データ、あるいは、テキストまたは画像データのグラフィック表現を含む。ハードコピー出力装置１６１５は、コンピューティング装置１６０１に直接接続されるものとして図示されているが、これである必要はない。例えば、ハードコピー出力装置は、ネットワークインターフェース（例えば有線または無線ネットワーク）を介して、コンピューティング装置１６０１に接続されてよい。
【００９６】
さらに、コンピューティング装置１６０１がデスクトップＰＣとして上述されるにもかかわらず、さらなる実施例において、コンピューティング装置１６０１は、ラップトップ、ワークステーション、ミッドレンジコンピュータ、メインフレーム、組込みシステム、電話、ハンドヘルドまたはタブレットコンピュータ、ＰＤＡ、あるいは他のタイプのコンピュータでよい。
【００９７】
図１７は、図１６に示されるコンピュータの内部アーキテクチャを示すブロック図である。ここで、コンピューティング装置１６０１の例示的な内部アーキテクチャについて説明する。コンピューティング環境は、以下を含む：オペレーティングシステムまたはアプリケーションを含むコンピュータ命令が処理されるコンピュータ中央処理装置（「ＣＰＵ」）１７０１；表示装置１６０８に図形、画像およびテキストを描画するための通信インターフェースおよび処理機能を提供する表示インターフェース１７０２；キーボード１６０９に通信インターフェースを提供するキーボードインターフェース１７０４；マウス１６１０または等価なポインティングデバイスに通信インターフェースを提供するポインティングデバイスインターフェース１７０５；デジタル入力装置１６１７に通信インターフェースを提供するデジタル入力インターフェース１７０６；ハードコピー出力装置１６１５に通信インターフェースを提供するハードコピー出力装置インターフェース１７０８；コンピュータ命令およびデータがコンピュータＣＰＵ１７０１による処理のための揮発性メモリデバイスに格納されるランダムアクセスメモリ（「ＲＡＭ」）１７１０；基本的な入出力（「Ｉ／Ｏ」）、スタートアップ、またはキーボード１６０９からのキーストロークの受信のような、基本的なシステム機能のための不変の低レベルのシステム・コードまたはデータが、不揮発性メモリデバイスに格納される読取り専用メモリ（「ＲＯＭ」）１７１１；オペレーティングシステム１７２１、アプリケーションプログラム１７２２（必要に応じて、ユーザー入力アプリケーション１７２３および他のアプリケーション１７２４を含む。）、およびデータ・ファイル１７２５を含むファイルが格納される、記憶装置１７２０または他の適切なタイプのメモリ（例えば、ランダムアクセスメモリ（「ＲＡＭ」）、読取り専用メモリ（「ＲＯＭ」）、プログラマブル読取り専用メモリ（「ＰＲＯＭ」）、消去可能プログラマブル読取り専用メモリ（「ＥＰＲＯＭ」）、電気的消去可能プログラマブル読取り専用メモリ（「ＥＥＰＲＯＭ」）、磁気ディスク、光ディスク、フロッピーディスク、ハードディスク、リムーバブル・カートリッジ、フラッシュドライブ）；コンピュータ・ネットワーク接続１６１６上のネットワーク１６０６に通信インターフェースを提供するコンピュータ・ネットワーク・インターフェース１７１６。構成デバイスおよびコンピュータＣＰＵ１７０１は、コンピュータバス１７２７上の各々と通信する。
【００９８】
ＲＡＭ１７１０は、ソフトウェアプログラム（例えばオペレーティングシステム・アプリケーションプログラムおよびデバイスドライバ）の実行中にコンピュータＣＰＵ１７０１に迅速なＲＡＭ記憶を提供するように、コンピュータバス１７２７と結びつく。より詳しくは、コンピュータＣＰＵ１７０１は、ソフトウェアプログラムを実行するために、固定ディスクドライブ１６１１または他の記憶媒体からＲＡＭ１７１０のフィールドに、コンピュータ実行可能なプロセスステップをロードする。データはＲＡＭ１７１０に格納される。ここでデータは、実行中にコンピュータＣＰＵ１７０１によってアクセスされる。
【００９９】
コンピューティング装置１６０１は、オペレーティングシステム１７２１、アプリケーションプログラム１７２２（例えば、ワード・プロセッシング、表計算ソフト、プレイゼンテーション、ゲーム、または他のアプリケーション）のためのコンピュータ実行可能なコードを格納する。ユーザーインターフェースを表示して、ユーザーに、上記の実施例を用いてテキスト、数字、またはオプションメニューからの選択を入力できるようにすることが可能であるにもかかわらず、ダイナミックリンクライブラリ（「ＤＬＬ」）としての、または、インターネット・ウェブ・ブラウザ（例えばＭＩＣＲＯＳＯＦＴ（登録商標）インターネットエクスプローラー・ウェブ・ブラウザ）のような他のアプリケーションプログラムに対するプラグインとしての、現在の開示に従う機能を実施例することも可能である。
【０１００】
コンピュータＣＰＵ１７０１は、多くの高性能コンピュータプロセッサのうちの１台である。そしてそれは、ＩＮＴＥＬ（登録商標）またはＡＭＤ（登録商標）プロセッサ、ＰＯＷＥＲＰＣ（登録商標）プロセッサ、ＭＩＰＳ（登録商標）縮小命令セットコンピュータ（「ＲＩＳＣ」）プロセッサ、ＳＰＡＲＣ（登録商標）プロセッサ、ＡＣＯＲＮ（登録商標）ＲＩＳＣ  Ｍａｃｈｉｎｅ（「ＡＲＭ（登録商標）」）アーキテクチャ・プロセッサ、ＨＰ  ＡＬＰＨＡＳＥＲＶＥＲ（登録商標）プロセッサ、またはメインフレーム用の所有権のあるコンピュータプロセッサ、を含む。追加的な装置において、コンピュータＣＰＵ１７０１は、複数の演算処理装置である。そしてそれは、高性能ワークステーションおよびサーバにおいて見つけられるマルチプルＣＰＵ構成、またはメインフレームにおいて見つけられるマルチプルスケーラブル演算処理装置、を含む。
【０１０１】
オペレーティングシステム１７２１は、ＭＩＣＲＯＳＯＦＴ（登録商標）ＷＩＮＤＯＷＳ  ＮＴ（登録商標）／ＷＩＮＤＯＷＳ（登録商標）２０００／ＷＩＮＤＯＷＳ（登録商標）ＸＰワークステーション；ＷＩＮＤＯＷＳ  ＮＴ（登録商標）／ＷＩＮＤＯＷＳ（登録商標）２０００／ＷＩＮＤＯＷＳ（登録商標）ＸＰ  Ｓｅｒｖｅｒ、ＩＢＭ（登録商標）ワークステーションおよびサーバのためのＡＩＸ（登録商標）を含む様々なＵＮＩＸ（登録商標）風のオペレーティングシステム、ＳＵＮ（登録商標）ワークステーションおよびサーバのためのＳＵＮＯＳ（登録商標）、ＩＮＴＥＬ（登録商標）ＣＰＵベースのワークステーションおよびサーバのためのＬＩＮＵＸ（登録商標）、ＨＰ（登録商標）ワークステーションおよびサーバのためのＨＰ  ＵＸ  ＷＯＲＫＬＯＡＤ  ＭＡＮＡＧＥＲ（登録商標）、ＳＧＩ（登録商標）ワークステーションおよびサーバのためのＩＲＩＸ（登録商標）、ディジタルイクイップメント社のコンピュータのためのＶＡＸ／ＶＭＳ、ＨＰ  ＡＬＰＨＡＳＥＲＶＥＲ（登録商標）ベースのコンピュータのためのＯＰＥＮＶＭＳ（登録商標）、ＰＯＷＥＲＰＣ（登録商標）ベースのワークステーションおよびサーバのためのＭＡＣ  ＯＳ（登録商標）Ｘ；ＳＹＭＢＩＡＮ  ＯＳ（登録商標）、ＷＩＮＤＯＷＳ  ＭＯＢＩＬＥ（登録商標）またはＷＩＮＤＯＷＳ  ＣＥ（登録商標）、ＰＡＬＭ（登録商標）、ＮＯＫＩＡ（登録商標）ＯＳ（「ＮＯＳ」）、ＯＳＥ（登録商標）、ＥＰＯＣ（登録商標）、または、コンピュータまたは組込みシステムのための所有権のあるオペレーティングシステム、でよい。オペレーティングシステム１７２１に対するアプリケーション開発プラットフォームまたはフレームワークは：ＢＩＮＡＲＹ  ＲＵＮＴＩＭＥ  ＥＮＶＩＲＯＮＭＥＮＴ  ＦＯＲ  ＷＩＲＥＬＥＳＳ（登録商標）（「ＢＲＥＷ（登録商標）」）；Ｊａｖａプラットフォーム、マイクロエディション（「Ｊａｖａ  ＭＥ」）またはＪａｖａ２プラットフォーム、マイクロエディション（「Ｊ２ＭＥ（登録商標）」）；ＰＹＴＨＯＮ（商標）、ＦＬＡＳＨ  ＬＩＴＥ（登録商標）、またはＭＩＣＲＯＳＯＦＴ（登録商標）ＮＥＴ  Ｃｏｍｐａｃｔ、でよい。
【０１０２】
図１６、１７は、ユーザーがテキスト、数字、またはオプションメニューからの選択を入力できるように構成されるアプリケーションのコントロールを達成するために構成される、プログラムコードまたはプログラムまたはプロセスステップを実行するコンピューティング装置の１つのありうる実施例を示すけれども、他のタイプのコンピュータが同様に用いられてよい。
【０１０３】
多くの実施例は、記述された。それにもかかわらず、さまざまな修正が、開示の趣旨および範囲から逸脱することなく、作成されてよいことが理解されよう。したがって、、他の実施例は、以下の請求項の範囲内にある。
【図１】
0005529146.tif 000002
【図２】
0005529146.tif 000003
【図３】
0005529146.tif 000004
【図４Ａ】
0005529146.tif 000005
【図４Ｂ】
0005529146.tif 000006
【図５】
0005529146.tif 000007
【図６】
0005529146.tif 000008
【図７】
0005529146.tif 000009
【図８】
0005529146.tif 000010
【図９】
0005529146.tif 000011
【図１０】
0005529146.tif 000012
【図１１】
0005529146.tif 000013
【図１２】
0005529146.tif 000014
【図１３】
0005529146.tif 000015
【図１４】
0005529146.tif 000016
【図１５】
0005529146.tif 000017
【図１６】
0005529146.tif 000018
【図１７】
0005529146.tif 000019