シングルカメラトラッキング装置
カメラトラッキング装置において、面を横切る画像を捕えるために向きを定められるカメラによって捕えられる画像は、アクセスされる。アクセスした画像の範囲内で検出される対象物が位置する領域は、カメラの視野の範囲内の複数の定義された領域の中から決定される。ユーザー入力は、決定した領域に基づいて決定され、そして、アプリケーションは、決定したユーザー入力に基づいてコントロールされる。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、2008年10月10日に出願の米国特許仮出願番号第61/104,340号の利益を主張し、参照により本明細書に援用される。
【0002】
[技術分野]
本開示は、一般に、対象物のトラッキングに関連する。
【背景技術】
【0003】
カメラは、対象物の画像を捕えるために用いられてきた。対象物の位置を検出するために、1つ以上の画像の範囲内にある対象物の1つ以上の画像を分析するためのさまざまな技術が開発されてきた。例えば、時間内にテンポ良く連続して撮られた対象物の複数の(マルチプル)画像を分析することによって、対象物の動きを検出するために、オプティカルフローが用いられている。
【発明の概要】
【課題を解決するための手段】
【0004】
1つの態様では、電子デバイスは、面を横切る画像を捕えるために向きを定められるカメラ、および、オペレーションを実行するために構成される演算処理装置を含む。オペレーションは、カメラによって捕えられる画像にアクセスするステップ、および、カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する1つのインターフェース・コントロールに対応する、複数の(マルチプル)領域を識別するステップ、を含む。オペレーションはまた、複数の(マルチプル)定義された領域の中から、アクセスした画像の範囲内で検出される対象物が位置する(1つの)領域を決定するステップを含む。オペレーションは、決定した領域に対応する前記1つのインターフェース・コントロールに基づくユーザー入力を決定するステップ、および、決定したユーザー入力に基づいてアプリケーションをコントロールするステップ、をさらに含む。
【0005】
実施例は、以下の特徴の1つ以上を含んでよい。例えば、オペレーションは、アクセスした画像の範囲内で対象物を検出するステップ、および、アクセスした画像の範囲内で検出対象物の位置を決定するステップ、を含んでよい。この実施例では、オペレーションはまた、決定した位置を、カメラの視野の範囲内で複数の定義された領域と比較するステップ、および、比較結果に基づいて、検出対象物が位置する領域を識別するステップ、を含んでよい。
【0006】
いくつかの実施例において、オペレーションは、アクセスした画像を、各々複数の定義された領域のうちの1つに対応するセグメントに分割するステップ、および、セグメントの各々に対して、対象物がセグメントの範囲内にあるかどうか決定するためにセグメントを分析するステップ、を含んでよい。これらの実施例において、オペレーションはまた、対象物が特定のセグメントの範囲内にあるという決定に応じて、この対象物が、特定のセグメントに対応する特定の領域の範囲内に位置することを決定するステップ、を含んでよい。加えて、これらの実施例において、オペレーションは、対象物の全体が特定の領域の任意の部分の範囲内にあることを決定するステップを含んでよい。セグメントは、対象物がセグメントの範囲内にあるかどうか決定するために分析される画像の唯一の部分でもよい。
【0007】
いくつかの実施例において、電子デバイスは、グラフィカルユーザーインターフェースを表示するために構成される表示画面をさらに含み、グラフィカルユーザーインターフェースは、グラフィカルユーザーインターフェースの第1位置で表示される第1のユーザーインターフェース・コントロール、および、グラフィカルユーザーインターフェースの第2位置で表示される第2のユーザーインターフェース・コントロールを含んでよい。グラフィカルユーザーインターフェースの第2位置は、グラフィカルユーザーインターフェースの第1位置とは異なってよく、カメラは、前記表示画面の表面を横切る画像を捕えるために向きを定められてよい。これらの実施例において、オペレーションは、対象物が第1のユーザーインターフェース・コントロールに対応する画像の第1領域の範囲内にあるかどうか決定するステップ、および、対象物が第2のユーザーインターフェース・コントロールに対応する画像の第2領域の範囲内にあるかどうか決定するステップを含んでよい。さらに、これらの実施例において、オペレーションは、対象物が画像の第1領域の範囲内にあるという判定に応じて、第1のユーザーインターフェース・コントロールの活性化を検出するステップ、および、第1のユーザーインターフェース・コントロールの活性化と関連した第1のオペレーションを始動するステップを含んでよい。オペレーションはまた、対象物が画像の第2領域の範囲内にあるという判定に応じて、第2のユーザーインターフェース・コントロールの活性化を検出するステップ、および、第2のユーザーインターフェース・コントロールの活性化と関連した第2のオペレーションを始動するステップを含んでよい。
【0008】
さらに、オペレーションは、第1のユーザーインターフェース・コントロールの大きさおよび形状を画像の第1領域の範囲内に適合するように、そして、第2のユーザーインターフェース・コントロールの大きさおよび形状を画像の第2領域の範囲内に適合するように、表示画面をコントロールするステップを含んでよい。第1のユーザーインターフェース・コントロールは、第1のユーザーインターフェース・ボタンでよく、そしてオペレーションは、第1のユーザーインターフェース・ボタンの押圧を検出するステップ、および、第1のユーザーインターフェース・ボタンの押圧と関連した第1のオペレーションを始動するステップ、を含んでよい。
【0009】
第1のユーザーインターフェース・コントロールは、カメラの視野と交差する方向において画像の第1領域にわたる第1のスライダコントロールでよく、そしてオペレーションは、対象物が画像の第1領域の範囲内にあるという判定に応じて、第1のスライダコントロールの係合を検出するステップを含んでよい。オペレーションはまた、対象物の位置を、第1のスライダコントロールに沿って画像の第1領域の範囲内で決定するステップ、および、第1のスライダコントロールの係合と関連する、そして、第1のスライダコントロールに沿って画像の第1領域の範囲内で対象物の決定した位置を使用する、第1のオペレーションを始動するステップ、を含んでよい。
【0010】
いくつかの実施例において、電子デバイスは、画像の第1領域および画像の第2領域と交差する方向において、表示画面の表面全体を横切ってまっすぐ照らすように向きを定められる発光ダイオードを含んでよい。これらの実施例において、発光ダイオードからの光が導かれる、画像の第1領域の一部における作用エリア、および、発光ダイオードからの光がない、画像の第1領域の残りの部分における偽のエリア、を定義するために、発光ダイオードは、画像の第1領域の一部を横切ってまっすぐ照らしてよい。第1のユーザーインターフェース・コントロールが表示されるグラフィカルユーザーインターフェースの第1位置は、画像の第1領域の作用エリアに対応してよい。オペレーションは、画像の第1領域の作用エリアにおいて対象物を検出して、かつ画像の第1領域の偽のエリアにおいて対象物を無視するために、照らされた対象物が画像の第1領域の範囲内にあるかどうか決定するステップを含んでよい。
【0011】
いくつかの実施例において、発光ダイオードは、表示画面よりも上の第1のエリアを照らすために構成される第1の発光ダイオードである。そして、電子デバイスは、第2の発光ダイオードを含み、第2の発光ダイオードは、表示画面の表面を横切ってまっすぐ照らすように向きを定められて、第1の発光ダイオードによって照らされる表示画面よりも上の第1のエリアとは異なる表示画面よりも上の第2のエリアを照らすために構成される。これらの実施例において、第2の発光ダイオードによって照らされる表示画面よりも上の第2領域は、ジェスチャ入力領域を定義する。そして、オペレーションは、カメラによって捕えられる複数の画像の分析に基づいて第2のエリアの範囲内でジェスチャを検出するステップを含んでよい。
【0012】
加えて、オペレーションは、カメラによって捕えられる画像について順番に交互の時間に照らすために、第1の発光ダイオードおよび第2の発光ダイオードをコントロールするステップを含んでよい。カメラによって捕えられる画像は、第1の発光ダイオードが照らされて、かつ第2の発光ダイオードが照らされない第1の画像セット、および、第2の発光ダイオードが照らされて、かつ第1の発光ダイオードが照らされない第2の画像セット、に結びついてよい。オペレーションは、第1のユーザーインターフェース・コントロールの活性化を検出するために、第1の発光ダイオードが照らされて、かつ第2の発光ダイオードが照らされない第1の画像セットを処理するステップ、および、第2のエリアの範囲内でジェスチャを検出するために、第1の発光ダイオードが照らされず、かつ第2の発光ダイオードが照らされる第2の画像セットを処理するステップ、を含んでよい。
【0013】
いくつかの実施例において、オペレーションは、画像の複数の定義された領域以外の画像の部分を無視するステップを含んでよい。これらの実施例において、画像の複数の定義された領域以外の画像の部分に位置する対象物は、無視される。
【0014】
いくつかの実施例において、オペレーションは、カメラによって捕えられる複数の画像の分析に基づいて、画像の領域の範囲内で対象物によるジェスチャの実行を検出するステップ、検出したジェスチャに対応するユーザー入力コマンドを決定するステップ、および、決定したユーザー入力コマンドに対応する第1のオペレーションを始動させるステップ、を含んでよい。これらの実施例において、オペレーションは、画像の領域の範囲内でのスワイプジェスチャの実行、およびスワイプジェスチャの方向を検出するステップ、および、スワイプジェスチャの検出した方向におけるスワイプジェスチャに対応するユーザー入力コマンドを決定するステップ、を含んでよい。
【0015】
もう1つの態様において、少なくとも1つのコンピュータ読み取り可能の記憶媒体は、少なくとも1つのプロセッサによって実行されるときに、少なくとも1つのプロセッサにオペレーションを実行させる実行可能命令によってコード化される。オペレーションは、面を横切る画像を捕えるために向きを定められるカメラによって捕えられる画像にアクセスするステップ、および、カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する1つのインターフェース・コントロールに対応する、複数の領域を識別するステップ、を含んでよい。オペレーションはまた、複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する(1つの)領域を決定するステップを含む。オペレーションは、決定した領域に対応する前記1つのインターフェース・コントロールに基づくユーザー入力を決定するステップ、および、決定したユーザー入力に基づいてアプリケーションをコントロールするステップ、をさらに含む。
【0016】
さらに他の態様では、方法は、面を横切る画像を捕えるために向きを定められるカメラによって捕えられる画像にアクセスするステップ、および、カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する1つのインターフェース・コントロールに対応する、複数の領域を識別するステップ、を含む。方法はまた、複数の定義された領域の中から、アクセスした画像の範囲内で検出される対象物が位置する(1つの)領域を決定するステップを含む。方法は、決定した領域に対応する1つのインターフェース・コントロールに基づくユーザー入力を決定するステップ、および、決定したユーザー入力に基づいてアプリケーションをコントロールするステップ、をさらに含む。
【0017】
1つ以上の実施例の詳細は、添付の図面および以下の記載において説明される。開示の他の潜在的な特徴および効果は、説明および図面から、そして請求項から、明らかである。
【図面の簡単な説明】
【0018】
【図1】図1は、ユーザーインターフェースをコントロールするシステムの実施例を示す。
【図2】図2は、カメラトラッキングシステム実施例を示す。
【図3】図3は、カメラトラッキングシステムにおけるユーザー入力コマンドを決定する方法の実施例を示すフローチャートである。
【図4A】図4Aは、ディスプレイ装置の最上部に配置されるカメラを含むシステムの実施例を示す。
【図4B】図4Bは、矩形のボタンコントロールを含むシステムの実施例を示す。
【図5】図5は、ディスプレイ装置の最下部の部分を照らしてアクティブタッチエリアを生じさせるシステムの実施例を示す。
【図6】図6は、ディスプレイ装置の最上部に配置されるカメラを含むシステムの実施例を示す。
【図7】図7は、同じ領域において複数のコントロールが表示されるシステムの実施例を示す。
【図8】図8は、複数の照明器のペアを含むシステムの実施例を示す。
【図9】図9は、ディスプレイ装置のコーナーに置かれるカメラを含むシステムの実施例を示す。
【図10】図10は、矩形形状のコントロールが使われるシステムの実施例を示す。
【図11】図11は、カメラがディスプレイ装置の左上コーナーに置かれるシステムの実施例を示す。
【図12】図12は、ディスプレイ装置の左上コーナーに置かれるカメラを含むシステムの実施例を示す。
【図13】図13は、アクティブタッチエリアを定義するシステムの実施例を示す。
【図14】図14は、ユーザー入力コマンドを決定してカメラトラッキングシステムを使用するアプリケーションをコントロールする方法の実施例を示すフローチャートである。
【図15】図15は、カメラトラッキングシステムにおけるユーザー入力コマンドを決定する方法の他の実施例を示すフローチャートである。
【図16】図16は、例示的なコンピュータ処理システムのコンポーネントの実施例を示す。
【図17】図17は、図16に示されるコンピュータの内部アーキテクチャの実施例を示すブロック図である。
【0019】
類似する参照番号は、全体を通して対応する部分を示す。
【発明を実施するための形態】
【0020】
技術は、一次元のセンサを用いて二次元のインターフェースを模倣するために記述される。いくつかの実施例において、システムは、タッチスクリーン・インターフェースの表面を撮像する単一のカメラを含んでよい。これらの実施例において、このシステムは、一次元(例えば、図1に示すように、単一のカメラがタッチスクリーン・インターフェースの最上部に位置し、画像が下方にある、水平方向)での単一のカメラによって捕えた画像における対象物の位置を検出して、そして、二次元でのタッチスクリーン・インターフェースをコントロールするためにその一次元を使用する。二次元のコントロールを提供するために2つのセンサ(例えば2台のカメラ)が伝統的に必要であるにもかかわらず、このシステムは、タッチスクリーン・インターフェースにおけるインターフェースエレメントの知的な配置、および/または、タッチスクリーン・インターフェースにおける作用エリアを定義するための照明光源の使用、に基づく検出対象物の一次元を用いて、二次元でのタッチスクリーン・インターフェースをコントロールすることが可能である。これらの実施例において、二次元のコントロールを提供するために単一センサ(例えば単一のカメラ)のみが必要であるので、このシステムは、2つのセンサを要求するシステムよりも低コストを有してよい。
【0021】
図1は、ユーザーインターフェースをコントロールするシステム100を示す。システム100は、ディスプレイ装置105の表面上に接触しているかまたはホバリング(hovering)している対象物の位置を検出するように構成される。ディスプレイ装置105は、例えば、コンピュータ・モニタまたはテレビジョンスクリーンでよい。対象物は、例えば、ユーザーの手または指、スタイラスまたは他のポインティングデバイス、あるいはいくつかの他の対象物でよい。
【0022】
システム100は、ディスプレイ装置105の前に位置する対象物の画像を捕えるように構成されるカメラ110を含む。カメラ110は、ディスプレイ105の最上部に配置されてよく、そして、ディスプレイ105の表面に沿って見下ろすように向きを定められてよい。カメラ110の視野111は、ディスプレイ105に沿って下方へ広がる三角形の形状である。すなわち、カメラ110は、ディスプレイ105の最下部では全体の対象物の画像を捕えることができてよく、ディスプレイ105の最上部ではより小さいエリアを捕えることができてよいように、配置される。視野111は、多数の領域112〜116に分けられてよい。領域112〜116の各々は、例えば、角度として、または、視野111の範囲内の角度の範囲として、定義されてよい。別の実施例として、領域112〜116の各々は、カメラ110によって捕えられる画像の一部として、定義されてよい。図1に示すように、定義された領域112〜116は、別々のサイズでもよい。
【0023】
システム100は、LED(発光ダイオード)118、119を含む。いくつかの実施例において、LED以外の照明光源が用いられてよい。LED118、119は、視野111のアクティブタッチ領域を定義するために配置されてよい。そうすると、LED118、119が照らされるときに、アクティブタッチ領域において配置される対象物のみが検出される。アクティブタッチエリアは、例えば、ディスプレイ装置105の最下部で定義されてよい。
【0024】
ディスプレイ装置105は、アプリケーションによって生成される表示画像を描画してよく、そこにおいて表示画像は、1つ以上のユーザー入力コントロールを含む。各ユーザー入力コントロールは、例えば、アクティブタッチエリア(例えば、ディスプレイ装置105の最下部に対応するエリア)内に配置されてよく、そして、視野111の定義された領域と関連していてよい。例えば、「戻る」ボタンコントロール120は、領域112に対応するエリアにおけるディスプレイ装置105の最下部で表示され、そして、「進む」ボタンコントロール122は、領域116に対応するエリアにおけるディスプレイ装置105の最下部で表示される。フィルムストリップコントロール124は、領域114に対応するディスプレイ装置105のエリアにおいて表示される。フィルムストリップコントロール124は、画像エリア126における画像の表示のコントロールに使われる。
【0025】
LED118、119が照らされるにつれて、カメラ110は、ディスプレイ装置105の前で対象物(例えばユーザーの手または指)の画像を捕えてよい。捕えられた対象物に対応する領域112〜116は、決定されてよい。アプリケーション・コマンドは、決定された領域に基づいて決定されてよく、そして、決定されたアプリケーション・コマンドは、実行されてよい。
【0026】
例えば、ユーザーがフィルムストリップコントロール124を指で指してタッチすると、その指は、LED118、119によって照らされてよく、そして、カメラ110の画像に捕らえられてよい。ユーザーの指の検出された水平位置に基づいて、その指は、領域114において捕えられたと決定されてよい。決定された領域114に基づいて、画像選択コマンドは、決定されてよい。画像選択コマンドは、実行されてよく、そして、指の水平位置は、特定のサムネイル画像128a〜dにマップされてよい。マップされたサムネイル画像(例えば128b)は、画像エリア126におけるより大きいサイズにおいて表示されてよい。インジケータ130は、フィルムストリップ124におけるどのサムネイル128a〜dが、画像エリア126(例えば、図示のインジケータ130は、サムネイル128bの上に配置される)に表示されるかを示してよい。
【0027】
別の実施例として、ユーザーが「戻る」コントロールボタン120を手で指してタッチすると、その手は、LED118、119によって照らされてよく、そして、カメラ110によって捕えられてよく、そして、対応する領域112が識別されてよい。「以前の画像」コマンドは、識別された領域112に基づいて決定されてよい。以前の画像コマンドは、実行されてよい。それにより、画像エリア126におけるサムネイル128aの表示に、そして、サムネイル128aの上のインジケータ130の位置決めに、結びつく。ユーザーが繰り返し「戻る」コントロールボタン120にタッチする場合、以前の目に見えない画像は、フィルムストリップ124において現されてよい。
【0028】
さらに別の実施例として、ユーザーが「進む」ボタンコントロール122をスタイラスで指してタッチすると、そのスタイラスは、照らされてよく、そして、カメラ画像に捕えられてよい。領域116は、対応する領域として決定されてよく、そして、「次の画像」コマンドは、決定された領域116に基づいて決定されてよい。次の画像コマンドは、実行されてよい。それにより、画像エリア126におけるサムネイル128cの表示に、そして、サムネイル128cの上のインジケータ130の位置決めに、結びつく。ユーザーが繰り返し「進む」コントロールボタン122にタッチする場合、以前の目に見えない画像は、フィルムストリップ124において現されてよい。
【0029】
単にディスプレイ装置105の前で対象物の存在を捕えることに加えて、対象物によってなされるジェスチャは、検出されてよい。例えば、「左スワイプ」、「右スワイプ」、「静止」のジェスチャは、認識されてよい。ジェスチャは、検出対象物のモーションを、認識されたジェスチャと関連したモーションパターンと比較することによって認識されてよい。認識されたジェスチャは、入力コマンドにマップされてよい。例えば、「左スワイプ」ジェスチャは、「次の画像」コマンドにマップされてよく、そして、「右スワイプ」ジェスチャは、「以前の画像」コマンドにマップされてよい。「静止」ジェスチャは、例えば、表示メニューコマンドにマップされてよい。
【0030】
本明細書において全体を通じて用いられるように、「ジェスチャ」は、人間の身体または複数の人間の身体の全部または一部によってなされる非言語的なコミュニケーションの形態のことをいうことが意図され、そして、言葉でのコミュニケーション(例えば話し言葉)と対比される。例えば、ジェスチャは、第1の位置、ポーズまたは表現と、第2のポーズ、位置または表現との間の動き、変化または変形によって定義されてよい。ジェスチャの実施例は、例えば、「エアクォーツ」のジェスチャ、会釈(bowing)のジェスチャ、お辞儀(curtsy)、頬へのキス、指または手の動き、ひざまずく動き、頭の振りまたは動き、ハイタッチ、頷き、高くなった拳、敬礼、スワイプまたはウェーブモーション、親指を挙げる動き、あるいは指を指すジェスチャ等を含む。
【0031】
したがって、一連の画像から、ジェスチャは、ユーザーの考え、意見、感情、コミュニケーション、指揮、実証または表現を定義するものと推論されてよい。例えば、ユーザーのジェスチャは、単一または複数の指のジェスチャでよく、単一の手のジェスチャでよく、単一の手および腕のジェスチャでよく、単一の手および腕および身体のジェスチャでよく、頭のポーズまたは姿勢の変化でよく、身体のポーズまたは姿勢の変化でよく、または、他の任意の表現力豊かな身体の状態の変形でよい。
【0032】
簡潔さのために、関連するジェスチャを実行するのに用いる身体の一部または部分は、「制御対象」と一般に呼ばれる。例えば、ユーザーは、彼らの全身を用いて、または他の物理的実体とともに、コマンドを表現してよい。その場合、彼らの全身または他の物理的実体は、制御対象でよい。ユーザーは、指を小刻みに動かすことによって、コマンドをより微妙に表現してよい。その場合、指は、制御対象でよい。単一の画像における、または2つの画像間におけるユーザーのジェスチャは、効果的なまたは「係合」ジェスチャを表現してよい。制御対象は、物理的デバイス(例えば、赤外線の指照明、再帰反射器(retro−reflector)または遠隔制御)でよい。
【0033】
ジェスチャをしながら、ユーザーは、ディスプレイ装置105の上を擦ってよく、またはホバリングしてよい。スワイプジェスチャを実行するために、ユーザーは、ディスプレイ装置105にタッチして、指を左または右へ1つの滑らかなモーションでドラッグしてよい。静止ジェスチャを実行するために、ユーザーは、指または手を動かすことなく、ディスプレイ装置105の上にタッチまたはホバリングしてよい。ジェスチャは、視野111の範囲内でどこでも検出されてよい。いくつかのアプリケーションにおいて、双方向ボタンコントロールが表示される一方、いくつかまたはすべてのジェスチャは、認識されなくてよい。いくつかの実施例において、写真または映像の提示の間、いくつかのジェスチャは、使われてよい。その結果、画像は、ボタンコントロールと重ならないフルスクリーンで表示されることができる。
【0034】
図2は、カメラトラッキングシステム200の一実施例を示す。システム200は、カメラ210、ディスプレイ装置220、照明器230およびコンピューティング装置240を含む。システム200は、デジタルピクチャーフレーム、テレビジョン、モニタ、製品ディスプレイ装置または任意のタイプの媒体システム、の中に含まれてよく、または、それらと連動して用いられてよい。
【0035】
カメラ210は、画像を捕えるデバイスである。例えば、カメラ210は、デジタル・カメラ、デジタル・ビデオ・カメラまたは画像を捕える任意の他のタイプのデバイスでよい。いくつかの実施例において、カメラ210は、単一のカメラでよく、そして、システム200は、単一のカメラのみを含んでよい。他の実施例では、複数のカメラが用いられてよい。カメラ210は、ディスプレイ装置220に表示されるインターフェースと相互作用している対象物の画像を捕えてよい。例えば、カメラ210は、ディスプレイ装置220に表示されるインターフェースと物理的に相互作用している(例えば、指または手によって)ユーザーまたは人の画像を捕えてよい。カメラ210は、任意のタイプのイメージセンサでよく、そして、ライン走査センサでよい。
【0036】
ディスプレイ装置220は、可視表示画像を描画する。例えば、ディスプレイ装置220は、モニターディスプレイ、テレビジョンディスプレイ、液晶ディスプレイ(LCD)、プラズマディスプレイ装置、スクリーンを有するプロジェクタ、自動立体ディスプレイ、陰極線管(CRT)ディスプレイ、デジタル光処理(DLP)ディスプレイ、デジタルピクチャーフレームディスプレイ、または、可視表示画像を描画するように構成される任意の他のタイプのディスプレイ装置でよい。ディスプレイ装置220は、1つ以上のディスプレイ装置を含んでよい。ディスプレイ装置220は、アプリケーションと関連した画像を表示してよい。例えば、ディスプレイ装置220は、アプリケーション(例えば、写真を見るアプリケーション)によって生成される表示画像を描画してよい。アプリケーションによって生成される表示画像は、インターフェース・コントロールを有するインターフェースを含んでよい。
【0037】
いくつかの実施例において、システム200は、ディスプレイ装置220を含まない。例えば、システム200は、別の表面(例えば、ドア、エレベータ、機械、無線受信機、メディアプレイヤまたは他の対象物のような、他のタイプの物理的実体の表面)の前で対象物を検出するように構成されてよい。いくつかの実施例において、システム200は、スペース(例えば戸口または通路)のエリアの前に位置する。
【0038】
照明器230は、光源を提供するデバイスである。例えば、照明器230は、フラッシュ装置、白熱電球、蛍光電球、発光ダイオード(LED)、ハロゲン光源、ネオン光源、キセノン光源、赤外線光源、または、カメラ210によって撮像される対象物を照らすように構成される任意の他のタイプのデバイスでよい。照明器230は、1つ以上の照明器を含んでよい。照明器230は、カメラ210によって捕えられる対象物の高品質画像を捕えるのを支援する光を発生してよい。いくつかの実施例において、照明器230は、特定の状況において用いられてよい。例えば、照明器230は、夜間に、または暗い室内において用いられてよい。照明器230は、カメラ210の視野の範囲内でアクティブタッチエリアを定義するために配置されてよい。照明器230を使用するアクティブタッチエリアを定義することは、単一のカメラによる対象物の検出精度を高めてよく、そしてまた、単一のカメラによって検出されてよいコントロールエレメントの個数を増加させてよい。単一のカメラを使用することは、システムのコストを減らすのを支援してよく、また、ジェスチャ・ベースの入力コントロールが、より高価でないデバイスにおいて実現されることを可能にする。
【0039】
コンピューティング装置240は、カメラ210、ディスプレイ装置220および照明器230に、有線または無線経路を介して電気的に接続されて、そして、システム200のオペレーションをコントロールしてよい。いくつかの実施例において、コンピューティング装置240は、アプリケーションを実行するように構成されるプロセッサまたは他の制御回路を含んでよい。これらの実施例において、コンピューティング装置240は、カメラ210によって捕えられる画像を受け入れてよく、そして、画像の範囲内で対象物(例えばユーザーの指)の位置を検出するために、受け入れられた画像を処理してよい。画像の範囲内の対象物の検出位置は、アプリケーションの実行をコントロールするためトラッキングされてよく、使われてよい。例えば、コンピューティング装置240は、カメラの視野の範囲内で定義される領域を有する画像の範囲内で、対象物の検出位置を比較してよい。この実施例では、コンピューティング装置240は、対象物が、特定領域において配置され、その特定領域と関連したインターフェース・コントロールを識別し、そして、その識別したインターフェース・コントロールに対応する機能に基づくアプリケーションをコントロールすることを、検出してよい。
【0040】
コンピューティング装置240はまた、カメラ210、ディスプレイ装置220および照明器230のオペレーションおよび設定をコントロールしてよい。コンピューティング装置240は、命令を実行するように構成されるプロセッサまたは他の制御回路を含む、任意のタイプの電子デバイスでよい。
【0041】
図3は、カメラトラッキングシステムにおけるユーザー入力コマンドを決定する方法300の実施例を示すフローチャートである。便宜のために、図2に関して記述される特定のコンポーネントは、プロセス300を実行するものとして参照される。しかしながら、同様の方法論は、システムの構造を定義するために別々のコンポーネントが用いられるか、または、コンポーネントの中で機能性が異なって分配される、他の実施例において適用されてよい。
【0042】
コンピューティング装置240は、カメラ210の視野の領域を定義する(310)、そして、照明器230を使用するカメラ210の視野の作用エリアを定義する(320)。コンピューティング装置240は、ディスプレイ装置220に表示されるインターフェース・コントロールエレメントと一致するために、カメラ210の視野における複数の領域(例えば、カメラ210の視野の範囲内の角度、カメラ210によって捕えられる画像の一部、等)を定義してよい。例えば、図4Aは、ディスプレイ装置410の最上部に配置されるカメラ405を含むシステム400を示す。カメラ405の視野は、領域411〜415に分けられる。例えば、領域411は、ハッチングパターンによって示される。ユーザーインターフェース・コントロール421〜425は、ディスプレイ装置410に表示されて、そして、領域411〜415にそれぞれ対応する。
【0043】
図3に一旦戻って、コンピューティング装置240は、定義された領域(320)を横切るカメラ210(例えば、ディスプレイ装置220の表面全体に)の視野の一部を照らすために、照明器230をコントロールすることによって、カメラ210の視野におけるアクティブタッチエリアを定義してよい。例えば、図4Aに示すように、LED照明器430、432は、領域411〜415の最下部の部分を照らして、ディスプレイ410の最下部の部分を照らす。LED照明器430、432は、赤外線LEDでよい。
【0044】
図3に一旦戻って、コンピューティング装置240は、定義されたアクティブタッチエリアにおいて定義された領域の少なくとも一部に対応する、ディスプレイ装置220の一部のインターフェース・コントロールの表示を描画する(330)。例えば、コンピューティング装置240は、ディスプレイ装置220に、各々定義された領域における少なくとも1つのインターフェース・コントロールを表示させてよい。この実施例では、コンピューティング装置240は、ディスプレイ装置220に、照明器230によって定義されるアクティブタッチエリアに対応する位置でインターフェース・コントロールを表示させてよい。
【0045】
例えば、図4Aに示すように、ユーザーインターフェース・コントロール421〜425は、ディスプレイ装置410に表示される。ここで、各コントロール421〜425は、それぞれの領域411〜415に対応するディスプレイ装置410の一部において表示される。ユーザーインターフェース・コントロール421〜425は、LED430〜432によって照らされるアクティブタッチエリアにおいて表示される。コントロールがそれらの対応する領域の範囲内で適合するように、コントロールの形状およびサイズは、選択されてよい。例えば、卵形の大きさのコントロール(例えばボタンコントロール421〜425)は、三角形の領域(例えば領域411〜415)の範囲内で、一般にうまく適合してよい。
【0046】
他のタイプの形状は、三角形の形状または他の形状の領域の範囲内で、特にうまく適合しない。例えば、図4Bは、矩形のボタンコントロール452〜460を含むシステム450を示し、矩形のボタンコントロール452〜460の各々は、ディスプレイ装置480の対応する領域470〜475の内部にそれぞれ配置される。ここで、領域470〜475は、カメラ485の視野を分ける。図4Bに示すように、矩形のボタンは、自己の対応する領域の範囲内で完全に適合しなくてよい。例えば、矩形のボタン452は、領域471の外側に伸びる部分490で示すように、領域470の範囲内で完全には適合しない。同様に、重なり合う部分492は、矩形のボタン454が、領域472の範囲内で完全に適合しないで、領域471の内側に伸びることを示す。矩形のボタンが用いられる場合、それらは、各ボタンが対応する領域の範囲内で完全に適合することを確実にするために、各ボタンとボタンとの間に充分なスペースを有する間隔を置かれてよい。最小限のコントロール幅(例えば1インチ)が、使われてよい。
【0047】
図3に一旦戻って、コンピューティング装置240は、カメラ210によって捕えられる画像にアクセスする(340)。例えば、コンピューティング装置240は、カメラ210から1つ以上の画像を受け入れてよい。コンピューティング装置240はまた、記憶媒体から1つ以上の画像にアクセスしてよい。コンピューティング装置240は、システム200に近接するエリアの画像に連続的にアクセスしてよく、または、システム200によって受け入れられる入力コマンドに応じて、システム200に近接するエリアの画像にアクセスしてよい。
【0048】
コンピューティング装置240は、アクセスした画像における対象物を検出する(350)。例えば、コンピュータ240は、アクセスした画像におけるユーザーの指または他の対象物(例えばポインタ、スタイラス、等)を検出するために、アクセスした画像を処理または分析してよい。この実施例では、コンピューティング装置240は、アクセスした画像の特徴を、画像における対象物の典型的な特徴と比較することによって、ユーザーを検出してよく、または、アクセスした画像におけるモーションを検出することによって、対象物を検出してよい。
【0049】
コンピューティング装置240はまた、アクセスした画像の皮膚の色分析(または色分析に基づく既知の色を有する対象物を検出する)に基づいて、ユーザーを検出してよく、または、目下の画像と背景モデルとの違いを検出するために、1つ以上の対象物を含む目下の画像を背景モデルと比較することによって、対象物を検出してよい。コンピューティング装置240は、対象物の単一の画像の範囲内で、または、対象物の複数の画像セットの範囲内で対象物を検出するために、任意のタイプの技術を使用してよい。
【0050】
コンピューティング装置240は、定義されたアクティブタッチエリアの外側に位置する対象物を無視する(360)。例えば、コンピューティング装置240は、照明器230によって照らされる対象物を識別して、照明器230によって照らされない対象物を無視する。例えば、図5に示すように、LED505〜510は、ディスプレイ装置515の最下部の部分を照らして、アクティブタッチエリア520を生じさせる。アクティブタッチエリア520は、カメラ525の視野の最下部の部分を含む。カメラ525の視野の最上部の部分はLED505〜510によって照らされず、偽のタッチエリア530に結びつく。コンピューティング装置240は、アクティブタッチエリア520において照らされる対象物を識別してよく、偽のタッチエリア530における対象物を無視してよい。コンピューティング装置240は、照らされた対象物のための画像を分析することによって、偽のタッチエリア530の範囲内にある対象物を無視してよい。偽のタッチエリア530の範囲内のいかなる対象物も照らされないので、コンピューティング装置240は、これらの対象物を無視する(例えば、検出しない)。
【0051】
いくつかの実施例において、コンピューティング装置240は、カメラによって捕えられる画像のピクセルを、バイナリイメージを発生するための輝度閾値と比較することによって、照らされた対象物を検出する。例えば、閾値を上回る輝度値を有するカメラ画像のピクセルは、1の値を有するバイナリイメージにおいて識別されてよく、そして、閾値を下回る輝度値を有するピクセルは、0の値を有するバイナリイメージにおいて識別されてよい。これらの実施例において、コンピューティング装置240は、1つ以上の対象物がバイナリイメージの範囲内にあるかどうか検出するために、バイナリイメージを分析する。
【0052】
いくつかの実施例において、照明光源が照らされるときに、第1の画像がカメラによって捕えられ、そして、照明光源が照らされないときに、第2の画像がカメラによって捕えられように、照明光源は、カメラによって交互パターンに捕えられる画像については順番に照らすようにコントロールされる。これらの実施例において、結果として生じる画像を発生するために、照明光源が切られる間に捕えられるカメラ画像は、照明光源が点けられる間に捕えられるカメラ画像から差し引かれてよい。結果として生じる画像は、照明光源が点けられたときに捕えられるカメラ画像において、1つ以上の対象物が照らされるかどうか決定するために、分析されてよい。照明光源が切られたときに捕えられるカメラ画像を差し引くことは、両方のカメラ画像に存在した環境光を取り除いてよい。
【0053】
図3に一旦戻って、アクティブタッチエリアにおける対象物のために、コンピューティング装置240は、検出対象物に対応する定義された領域を決定する(370)。例えば、コンピューティング装置240は、アクセスした画像における検出対象物の位置を、カメラ210の視野の範囲内で定義された領域と比較して、そして、もしあれば、定義された領域の中で、検出対象物が配置される領域を決定する。
【0054】
コンピューティング装置240は、決定された領域に基づいて、コマンドを決定する(380)。コンピューティング装置240は、決定された領域において表示されるインターフェース・コントロールに対応する入力コマンドを識別してよい。例えば、プレイ入力コントロールが、決定された領域に対応する位置でディスプレイ装置220に表示されるときに、コンピューティング装置240は、「プレイ」コマンドを実行すると決定してよい。他の実施例として、図4を参照して、コンピューティング装置240は、コントロール421に対応するコマンドを実行するコマンドを決定してよい。
【0055】
いくつかの実施例において、コマンドの並列設定が、決定された領域と関連しているときに、コンピューティング装置240は、特定のコマンドを選択するために、決定された領域の範囲内で対象物の位置を決定してよい。これらの実施例において、摺動ノブ入力コントロールは、決定された領域に対応する位置で、ディスプレイ装置220に表示されてよい。摺動ノブ入力コントロールは、摺動ノブ入力コントロールにおけるノブの位置に基づいて、複数の可能な画像の中からディスプレイ装置220に表示する画像を選択してよい。選択された画像(または摺動ノブ入力コントロールにおけるノブの位置)は、決定された領域の範囲内で対象物の位置に基づいて決定されてよい。他の実施例において、摺動ノブ入力コントロールは、スピーカの量をコントロールしてよく、またはディスプレイのズーム設定をコントロールしてよい。
【0056】
例えば、図6は、ディスプレイ装置610の最上部に配置されるカメラ605を含むシステム600を示す。カメラ605の視野は、領域612〜616に分けられる。摺動ノブ入力コントロール620は、領域614に対応するディスプレイ装置610の位置で表示される。コントロール620は、「ノブ」622を含む。ノブ622の位置は、例えば、領域614の範囲内でユーザーの指の水平位置に基づいて決定されてよい。一連の複数の可能な画像の中から選択される画像は、コントロール620におけるノブ622の水平位置に基づいて、画像エリア630において表示されてよい。例えば、ユーザーが、領域614の左の部分に対応する位置で、彼らの指でディスプレイ装置610にタッチする場合、一連の複数の可能な画像の最初の部分に位置する画像は、画像エリア630において選択されてよく、表示されてよい。別の実施例として、ユーザーが、領域614の右の部分に対応する位置でディスプレイ装置610にタッチする場合、一連の複数の可能な画像の最後の部分に位置する画像は、画像エリア630において選択されてよく、表示されてよい。
【0057】
図3に一旦戻って、コンピューティング装置240は、決定された領域におけるジェスチャを検出して、検出したジェスチャに基づいてコマンドを決定する(390)。コンピューティング装置240は、決定された領域の範囲内で検出対象物のモーションを、認識されたジェスチャと関連したモーションパターンと比較することによって、決定された領域におけるジェスチャを検出してよい。検出対象物のモーションが、認識されたジェスチャと関連したモーションパターンと一致するときに、コンピューティング装置240は、認識されたジェスチャのパフォーマンスを識別して、認識されたジェスチャに対応するコマンドを決定する。例えば、図6の実施例で、ユーザーは、彼らの指によって「左スワイプ」のジェスチャをする。コンピューティング装置240は、左スワイプのジェスチャを認識してよく、「次の画像」コマンドを決定して、実行してよく、画像エリア630における新しい画像の表示に結びつく。ここで、新しい画像は、一連の複数の可能な画像における目下表示された画像の次にある。別の実施例として、ユーザーは、彼らの手または指によって「右スワイプ」のジェスチャをしてよい。コンピューティング装置240は、右スワイプのジェスチャを認識してよく、「以前の画像」コマンドを決定して、実行してよい。
【0058】
いくつかの実施例において、回転ノブコントロール(例えばダイヤル)は、決定された領域において表示されてよく、そして、コンピューティング装置240は、回転ノブコントロールの位置(例えば、回転ノブコントロールが回転した量)に基づいて、コマンドを決定してよい。これらの実施例において、コンピューティング装置240は、決定された領域の範囲内で検出対象物を有する円を抽出するジェスチャをするユーザーを検出してよい。コンピューティング装置240は、ユーザーが時計回りに円を抽出するか、反時計回りに円を抽出するかどうかに基づく方向に、回転ノブコントロールを回転させてよく、そして、回転後の回転ノブコントロールの位置に基づいて、コマンドを決定してよい。
【0059】
図7は、同じ領域において複数のコントロールが表示されるシステム700を示す。システム700は、ディスプレイ装置720の最上部に配置されるカメラ710を含む。カメラ710の視野は、複数の領域722〜730に分けられる。音楽プレイヤアプリケーションのためのインターフェースの画像は、ディスプレイ装置720に表示される。音楽プレイヤアプリケーションは、ボタンコントロール732〜740を含む。そしてそれは、領域722〜730にそれぞれ対応するディスプレイ装置720のエリアにおいて表示される。音楽プレイヤアプリケーションはまた、ボタンコントロール742〜750を含む。そしてそれは、領域722〜730にそれぞれ対応するディスプレイ装置720のエリアにおいても表示される。
【0060】
ボタンコントロール732〜750は、音楽プレイヤアプリケーションのコントロールに使用してよい。例えば、ボタン746は、プレイリスト755において目下選択される曲(インジケータ760は、プレイリスト755において目下選択された曲を示す)をプレイするために用いてよいプレイボタンである。ボタンコントロール742〜744および748〜750は、目下プレイしている曲を、それぞれ、巻き戻し、休止、停止および早送りするために用いてよい。ボタンコントロール732〜734は、インジケータ760をそれぞれ上または下に移動することによって、プレイリスト755の別の曲を選択するために用いてよい。ボタンコントロール736〜738は、再生ボリュームをそれぞれ減少させるかまたは増加させるために用いてよい。ボタンコントロール740は、例えば、選択された曲をプレイするために用いてよく、または、選択された曲について詳細を表示するために用いてよい。
【0061】
図7に示すように、各領域722〜730は、複数のコントロールを含む。例えば、領域726は、コントロール746およびコントロール736を含む。カメラ710が領域726においてユーザーの指を検出する場合、それは、ユーザーがコントロール736またはコントロール746のいずれを選択しようとしたのかについて曖昧でよい。この曖昧性を回避するために、ユーザーインターフェースは、各領域が1つのコントロールのみを含むように設計されてよい。加えて、ユーザーインターフェースは、双方向のはずでない偽のタッチエリアのボタン、スクロールバーまたは他のコントロールと視覚的に同様である図形を配置することを回避するように設計されてよい。
【0062】
照明器の複数セットを使用するアプローチは、同じ領域に複数コントロールを有することをサポートするために用いてよい。例えば、第1のLEDペア770〜775は、ボタンコントロール732〜740に対応するディスプレイ装置720のエリアを照らしてよい。そして、第2のLEDペア780〜785は、ボタンコントロール742〜750に対応するディスプレイ装置720のエリアを照らしてよい。LEDペア770〜775およびLEDペア780〜785は、時間を交互に照らされてよい。そのため、LED770〜775が照らされる間、カメラ710は第1のカメラ画像を捕える。そして、LED780〜785が照らされる間、カメラ710は第2のカメラ画像を捕える。
【0063】
どのカメラ画像に対象物が検出されるかに応じて、コンピューティング装置240は、ユーザーが、コントロール732〜740のうちの1つ、またはコントロール742〜750のうちの1つ、のいずれを選択しているかどうか決定してよい。例えば、LED780〜785が照らされるときに対象物が領域724において検出される場合、コンピューティング装置240は、コントロール744と関連した休止コマンドを識別して実行してよい。別の実施例として、LED770〜775が照らされるときに対象物が領域728において検出される場合、コンピューティング装置240は、コントロール738と関連したボリュームコマンドを識別して実行してよい。いくつかの実施例において、ディスプレイ装置720の2つ以上のエリアを照らすために、2ペア以上のLEDが用いられてよい。
【0064】
図8は、複数の照明器のペアを含むシステム800用のアクティブタッチエリアを示す。システム800は、LED810〜820を含む。そしてそれは、照らされるときに、アクティブタッチエリア825を生じさせる。カメラ850によって捕えられる画像をともなうシーケンスで、LED810〜820は、LED830〜840と交互の時間に照らされてよい。LED830〜840の照明は、第2のアクティブタッチエリア(図示せず)を生じさせてよい。そしてそれは、アクティブタッチエリア825よりも上方に配置される。捕えられたカメラ画像は、LED810〜820が照らされて、かつLED830〜840が照らされない状態における第1の画像セット、および、LED830〜840が照らされて、かつLED810〜820が照らされない状態における第2の画像セット、に結びついてよい。第1の画像セットは、対象物がアクティブタッチエリア825の範囲内で検出されるかどうか決定するために処理されてよい。第2の画像セットは、対象物が第2のアクティブタッチエリアの範囲内で検出されるかどうか決定するために処理されてよい。対象物が第2のアクティブタッチエリアの範囲内で検出されるときに、検出対象物の変化は、認識されたジェスチャが第2のアクティブタッチエリアにおいて実行されるかどうか決定するためにトラッキングされてよい。
【0065】
図9は、ディスプレイ装置907のコーナーに置かれるカメラ905を含むシステム900を示す。カメラ905は、ディスプレイ装置907の左上コーナー(例えば。ここでディスプレイ装置907の左側部は、ディスプレイ装置907の上側部と交差する。)に置かれる。カメラ905がディスプレイ装置907のコーナーに置かれる構成を使用することによって、ユーザーインターフェース・コントロールは、カメラ905と反対の2つの側部に沿って配置されてよい。(例えば、図9に示すように、カメラは、ディスプレイ装置907の左上コーナーに置かれる。ユーザーインターフェース・コントロール920〜924は、ディスプレイ装置907の右端縁に沿って並んで置かれる。ユーザーインターフェース・コントロール924〜928は、ディスプレイ装置907の下端縁に沿って並んで置かれる。)ユーザーインターフェース・コントロール920〜928は、領域910〜918にそれぞれ対応する。領域910〜918は、カメラ905の視野を分ける。
【0066】
図9に示すように、卵型のインターフェース・コントロールを使用することによって、コントロールは、対応する領域の内側に適合してよい。他のタイプのコントロール形状は、システム900で使用するカメラおよび領域の構成を使用するときに、対応する領域の範囲内で一般にうまく適合しなくてよい。例えば、図10は、矩形形状のコントロール1001〜1009が使われることを除いては、システム900と同様であるシステム1000を示す。コントロール1001〜1009は、カメラ1020の視野を分ける領域1010〜1018に対応する。矩形形状のコントロール1001〜1009のいくつかは、省略された部分1022〜1028によって示すように、対応する領域1010〜1018の範囲内で適合しない。
【0067】
システム900の構成は、垂直スクロールバーコントロールを考慮に入れてよい。例えば、図11は、カメラ1105がディスプレイ装置1107の左上コーナーに置かれるという点で、システム900と同様であるシステム1100を示す。領域1110〜1115は、カメラ1105の視野を分ける。スクロールバーコントロール1121は、領域1110に対応するディスプレイ装置1107の領域内にある。領域1110は、それが領域1111〜1115の各々よりも大きいくサイズ設定されて、そして、スクロールバーコントロール1121の高さを収容するためにサイズ設定される。スクロールバーコントロール1121は、プレイリスト1123から曲を選択するために上下に移動してよいスライダ1122を含む。インジケータ1124は、プレイリスト1123内の目下選択された曲を示す。ボタンコントロール1131〜1135は、早送り、停止、プレイ、休止、または、巻き戻し、にそれぞれ使用されてよい。
【0068】
システム900またはシステム1100において使われるような構成を使用するときに、所望のタッチエリアおよび偽のタッチエリアは、定義されてよい。例えば、図12は、ディスプレイ装置1210の左上コーナーに置かれるカメラ1205を含むシステム1200を示す。所望のタッチエリア1220は、カメラ1205の視野およびディスプレイ装置1210の交差の最下部および右側部で定義されてよい。所望のタッチエリア1220の上方または左方に位置するカメラ1205の視野のエリアは、偽のタッチエリア1230として定義されてよい。ユーザーインターフェースを設計するときに、コントロールを所望のタッチエリア1220内に配置すること、および、コントロールまたはコントロールに似た図形を、偽のタッチエリア1230内に配置することを回避することは、望ましくてよい。
【0069】
図13は、アクティブタッチエリアを定義するシステム1300を示す。システム1300は、ディスプレイ装置1307の左上コーナーに置かれるカメラ1305を含む。LED1310、1315は、アクティブタッチエリア1320を定義するために照らされてよい。アクティブタッチエリア1320に対応するディスプレイ装置1307の領域におけるカメラ1305の視野内の対象物は、認識されてよい。一方、アクティブタッチエリア1320の外側でカメラ1305の視野内に位置する対象物は、無視されてよい。しかしながら、対象物は、LED1330〜1335を照らすことによって、ディスプレイ装置1307の中央に(例えば、アクティブタッチエリア1320の外側で)検出されてよい。例えば、アプリケーションがジェスチャ認識モードにある間、対象物は、ディスプレイ装置1307の中央に検出されてよい。ジェスチャ認識モードにおいて、カメラ画像は、領域へのカメラ1305の視野のセグメンテーションなしで処理されてよい。(例えば、ジェスチャが視野のどこで実行されたかに関係なく、ジェスチャは認識されてよい。)
【0070】
図14は、ユーザー入力コマンドを決定して、カメラトラッキングシステムを使用するアプリケーションをコントロールする方法1400の実施例を示すフローチャートである。便宜のために、図2に関して記述される特定のコンポーネントは、プロセス1400を実行するものとして参照される。しかしながら、同様の方法論は、システムの構造を定義するために別々のコンポーネントが用いられるか、または、コンポーネントの中で機能性が異なって分配される、他の実施例において適用されてよい。
【0071】
コンピューティング装置240は、カメラによって捕えられる画像をアクセスする(1410)。例えば、コンピューティング装置240は、カメラ210が1つ以上の画像を捕えて、そして、カメラ210から1つ以上の画像を受け入れるために、カメラ210をコントロールしてよい。コンピューティング装置240はまた、記憶媒体から1つ以上の画像にアクセスしてよい。コンピューティング装置240は、画像に連続的にアクセスしてよく、または、システム200によって受け入れられる入力コマンドに応じて画像にアクセスしてよい。
【0072】
コンピューティング装置240は、カメラの視野の範囲内で複数の定義された領域の中から、アクセスした画像が位置する範囲内で検出される対象物の領域を決定する(1420)。例えば、図1に関して、コンピューティング装置240は、カメラ110によって捕えられる画像における対象物を検出してよく、そして、領域112〜116の中から、その対象物が配置される領域を決定してよい。
【0073】
いくつかの実施例において、コンピューティング装置240は、アクセスした画像の範囲内で対象物を検出して、そして、アクセスした画像の範囲内で検出対象物の位置を決定する。画像の範囲内で対象物を検出して、検出対象物の位置を決定するいかなる技術も、用いられてよい。コンピューティング装置240は、決定した位置を、カメラの視野の範囲内の複数の定義された領域と比較して、その比較結果に基づいて、検出対象物が配置される領域を識別する。例えば、コンピューティング装置240は、アクセスした画像における検出対象物の位置座標(例えばピクセル位置)を、アクセスされたカメラ画像の範囲内の定義された領域の定義された位置座標(例えばピクセル位置)のデータと比較する。
【0074】
いくつかの実施例において、コンピューティング装置240は、アクセスした画像を、各々が複数の定義された領域のうちの1つに対応するセグメントに分割する。これらの実施例において、コンピューティング装置240は、セグメントの各々に対して、対象物がセグメントの範囲内にあるかどうか決定するために、セグメントを分析してよい。対象物が特定のセグメントの範囲内にあるという判定に応じて、コンピューティング装置240は、対象物が、特定のセグメントに対応する特定領域の範囲内に配置されると決定する。これらの実施例において、セグメントは、対象物がセグメントの範囲内にあるかどうか決定するために分析される画像の唯一の部分でよい。加えて、コンピューティング装置240は、対象物全体がセグメントの任意の部分の範囲内にあるとき、その対象物がそのセグメントの範囲内にあると決定してよい。
【0075】
コンピューティング装置240は、決定された領域に基づいて、ユーザー入力を決定する(1430)。例えば、インターフェース・コントロールは、決定された領域に対応する位置で表示されてよい。コンピューティング装置240は、決定された領域をインターフェース・コントロールにマップしてよく、そして、ユーザーがインターフェース・コントロールを活性化するために入力を提供されたと決定してよい。
【0076】
いくつかの実施例において、ジェスチャは、一連の画像の範囲内で検出される対象物の位置に基づいて検出されてよく、そして、ユーザー入力コマンドは、認識されたジェスチャに基づいて決定されてよい。例えば、「スワイプ」ユーザー入力は、検出されてよく、そして、「ステーション変更」または「次の画像」ユーザー入力は、認識されたスワイプジェスチャに基づいて決定されてよい。
【0077】
コンピューティング装置240は、決定されたユーザー入力に基づいて、アプリケーションをコントロールする(1440)。例えば、コンピューティング装置240は、決定されたユーザー入力に対応するアプリケーションの範囲内で、オペレーションを始動させてよい。この実施例では、決定されたユーザー入力がインターフェース・コントロールの活性化(例えばインターフェース・ボタンの押圧)であるときに、コンピューティング装置240は、インターフェース・コントロールの活性化と関連するオペレーションを実行するために、アプリケーションをコントロールする。
【0078】
図15は、カメラトラッキングシステムにおけるユーザー入力コマンドを決定する方法1500の他の実施例を示すフローチャートである。便宜のために、図2に関して記述される特定のコンポーネントは、プロセス1500を実行するものとして参照される。しかしながら、同様の方法論は、システムの構造を定義するために別々のコンポーネントが用いられるか、または、コンポーネントの中で機能性が異なって分配される、他の実施例において適用されてよい。
【0079】
コンピューティング装置240は、カメラによって捕えた画像を、第1のユーザーインターフェース・コントロールに対応する第1領域、および、第2のユーザーインターフェース・コントロールに対応する第2領域に分割する。ここで、画像の第1領域は、画像の第2領域とは異なる(1510)。例えば、図1に関して、コンピューティング装置240は、カメラ110によって捕えた領域を、領域112〜116に分割してよい。ここで、領域112はコントロール120に対応し、そして、領域116はコントロール122に対応する。
【0080】
コンピューティング装置240は、画像の分割された第1領域の分析に基づいて、対象物が、画像の第1領域の範囲内にあるかどうか決定する(1520)。例えば、図1に関して、カメラ画像が捕えられた間、ユーザーがディスプレイ装置105の領域112にタッチしていたと仮定する。例えば、カメラ画像のピクセルを、バイナリイメージを発生するための輝度閾値と比較することによって、そして、バイナリイメージの範囲内のピクセルを、1つ以上の小塊へ集めることによって、ユーザーの指は、検出されてよい。小塊の重心は、対応する検出対象物の位置として計算されてよく、そして、検出対象物の位置は、領域112〜116を定義する位置と比較されてよい。この実施例では、コンピューティング装置240は、対象物が領域112の範囲内にあると決定してよい。
【0081】
コンピューティング装置240は、画像の分割された第1領域のみの分析に基づいて、対象物が画像の第1領域の範囲内にあるかどうか決定してよい。例えば、図1の実施例において、領域114〜116ではなく領域112が、分析されるかもしれない。コンピューティング装置240は、対象物が画像の第1領域の任意の部分の範囲内にあるかどうか決定してよい。
【0082】
コンピューティング装置240は、画像の分割された第2領域の分析に基づいて、対象物が画像の第2領域の範囲内にあるかどうか決定する(1530)。参照番号1520に関して上記の実施例を使用して、コンピューティング装置240は、対象物が領域116において検出されないと決定してよい。
【0083】
第1の画像に対する処理と同様に、コンピューティング装置240は、画像の分割された第2領域のみの分析に基づいて、対象物が画像の第2領域の範囲内にあるかどうか決定してよい。例えば、図1の実施例において、領域112〜114ではなく領域116が、分析されるかもしれない。コンピューティング装置240は、対象物が画像の第2領域の任意の部分の範囲内にあるかどうか決定してよい。
【0084】
対象物が画像の第1領域の範囲内にあるという判定に応じて、コンピューティング装置240は、第1のユーザーインターフェース・コントロールの活性化を検出して、そして、第1のユーザーインターフェース・コントロールの活性化と関連した第1のオペレーションを始動させる(1540)。上記実施例において、例えば、対象物が図1の領域112において検出されると、コンピューティング装置240は、「戻る」ボタンコントロール120の活性化を検出してよい。「以前の画像」コマンドは、決定されて、実行されてよい。それにより、画像エリア126におけるサムネイル128aの表示に、そして、サムネイル128aよりも上方のインジケータ130の位置決めに、結びつく。
【0085】
コンピューティング装置240は、対象物が位置する画像の第1領域の一部に関係なく、対象物が画像の第1領域の範囲内にあるという判定に応じて、第1のユーザーインターフェース・コントロールの活性化を検出してよい。例えば、図1の実施例において、対象物が領域112の範囲内の任意の場所において検出される場合、「戻る」ボタンコントロールは、活性化されてよい。
【0086】
対象物が画像の第2領域の範囲内にあるという判定に応じて、コンピューティング装置240は、第2のユーザーインターフェース・コントロールの活性化を検出して、そして、第2のユーザーインターフェース・コントロールの活性化と関連した第2のオペレーションを始動させる(1550)。上記実施例において、対象物が図1の領域112における代わりに領域116において検出されると仮定する。コンピューティング装置240は、対応する「進む」ボタンコントロール122の活性化を検出してよい。「次の画像」コマンドは、決定されて実行されてよい。それにより、画像エリア126におけるサムネイル128cの表示に、そして、サムネイル128cよりも上方のインジケータ130の位置決めに、結びつく。
【0087】
図16は、例示的なコンピュータ処理システムのコンポーネントを示す。簡潔に、このシステム1600は、プロセッサを含むコンピューティング装置1601を含み、そのプロセッサは、ユーザーがテキスト、数字の入力、またはオプションメニューからの選択をできるように構成されるアプリケーションをコントロールするように構成される。デバイス1601は、サーバ1602およびサーバ1604を含む1つ以上のサーバとネットワーク1606上で電子通信を交わすために構成されてよい。
【0088】
さらに詳細に、コンピューティング装置1601のハードウェア環境は、ユーザーにテキストおよび画像を表示するための表示装置1608、コンピューティング装置1601へのテキストデータおよびユーザーコマンドを入力するためのキーボード1609、表示装置1608に表示される対象物を指し示して、選択して、操作するためのマウス1610、固定ディスクドライブ1611、着脱可能なディスクドライブ1612、テープドライブ1614、ハードコピー出力装置1615、コンピュータ・ネットワーク接続1616、およびデジタル入力装置1617、を含む。
【0089】
表示装置1608は、図形、画像および、コンピューティング装置1601を作動するのに必要なオペレーティングシステム・プログラムと同様に、コンピューティング装置1601により用いられるソフトウェアアプリケーションのためのユーザーインターフェースを含むテキスト、を表示する。ユーザーは、アプリケーションプログラムと同様に、コンピュータ・オペレーティングシステム・プログラムを作動してコントロールするために、コマンドおよびデータを入力するキーボード1609を使用する。マウス1610は、ポインティングデバイスの任意のタイプでよく、ジョイスティック、トラックボール、タッチパッド、または他のポインティングデバイスでよい。ユーザーインターフェースを表示して、ユーザーがテキスト、数字を入力し、またはオプションメニューから選択できるように用いるソフトウェアは、局地的にコンピュータ読み取り可能の記憶媒体(例えば、固定ディスクドライブ1611)に格納される。
【0090】
さらなる実施例において、固定ディスクドライブ1611は、それ自体、多くの物理ドライブユニット(例えば、独立した複数のディスクからなる冗長配列(「RAID」))を含んでよく、あるいは、別個のコンピュータに物理的に位置するディスクドライブファームまたはディスクアレーでよい。この種のコンピュータ読み取り可能のメモリ媒体によって、コンピューティング装置1601は、着脱可能なおよび取り外し不可能な記憶媒体に保存される、コンピュータ実行可能なプロセスステップ、アプリケーションプログラムなどにアクセスしてよい。
【0091】
コンピュータ・ネットワーク接続1616は、モデム接続、Ethernet(登録商標)を含むローカルエリアネットワーク(「LAN」)接続、またはブロードバンド広域ネットワーク(「WAN」)接続(例えばデジタル加入者線(「DSL」)、ケーブル高速ネットワーク間接続、ダイヤルアップ接続、T−1線、T−3線、ファイバーオプティック接続またはサテライト接続)でよい。ネットワーク1606は、LANネットワーク、会社または政府WANネットワーク、インターネットまたは他のネットワークでよい。
【0092】
コンピュータ・ネットワーク接続1616は、有線または無線コネクタでよい。無線コネクタの実施例は、例えば、INFRARED DATA ASSOCIATION(登録商標)(「IrDA(登録商標)」)無線コネクタ、光学無線コネクタ、INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS(登録商標)(「IEEE(登録商標)」)スタンダード802.11無線コネクタ、BLUETOOTH(登録商標)無線コネクタ、直角周波数分割多重送信(「OFDM」)ウルトラ広帯域(「UWB」)無線コネクタ、時間調整ウルトラ広帯域(「TM−UWB」)無線コネクタ、または他の無線コネクタを含む。有線コネクタの実施例は、例えば、IEEE(登録商標)FIREWIRE(登録商標)コネクタ、ユニバーサルシリアルバス(「USB」)コネクタ、シリアルポートコネクタ、パラレルポートコネクタ、または他の有線コネクタを含む。
【0093】
着脱可能なディスクドライブ1612は、コンピューティング装置1601からデータをオフロードするか、またはコンピューティング装置1601へデータをアップロードするために用いる、着脱可能な記憶装置である。取外し可能ディスクドライブ1612は、フロッピーディスクドライブ、IOMEGA(登録商標)ZIP(登録商標)ドライブ、コンパクトディスク読取り専用メモリ(「CD−ROM」)ドライブ、CD−Rドライブ(「CD−R」)、CDリライタブルドライブ(「CD−RW」)、フラッシュメモリ、USBフラッシュドライブ、親指ドライブ、ペンドライブ、鍵ドライブ、高密度デジタル多用途ディスク(「HD−DVD」)光学ディスクドライブ、ブルーレイ光学ディスクドライブ、ホログラフィックデジタルデータストレージ(「HDDS」)光学ディスクドライブ、あるいは、「DVD−R」または「DVD+R」、「DVD−RW」または「DVD+RW」、または「DVD−RAM」のようなさまざまな記録、再書き込み可能なデジタル多用途ディスク(「DVD」)ドライブの任意の1つ、でよい。オペレーティングシステム・プログラム、アプリケーション、およびさまざまなデータ・ファイルはディスクに格納される。そしてそれは、固定ディスクドライブ1611上に、または、着脱可能なディスクドライブ1612用の取り外し可能媒体上に格納される。
【0094】
テープドライブ1614は、コンピューティング装置1601からデータをオフロードするか、またはコンピューティング装置1601上へデータをアップロードするために用いるテープ記憶装置である。テープドライブ1614は、1/4インチ・カートリッジ(「QIC」)、4mmのデジタルオーディオテープ(「DAT」)、8mmのデジタルリニアテープ(「DLT」)ドライブ、または他のタイプのテープでよい。
【0095】
ハードコピー出力装置1615は、オペレーティングシステム・プログラムおよびアプリケーションのための出力機能を提供する。ハードコピー出力装置1615は、有形の出力オブジェクトを発生するプリンタまたは任意の出力装置でよい。そしてそれは、テキストまたは画像データ、あるいは、テキストまたは画像データのグラフィック表現を含む。ハードコピー出力装置1615は、コンピューティング装置1601に直接接続されるものとして図示されているが、これである必要はない。例えば、ハードコピー出力装置は、ネットワークインターフェース(例えば有線または無線ネットワーク)を介して、コンピューティング装置1601に接続されてよい。
【0096】
さらに、コンピューティング装置1601がデスクトップPCとして上述されるにもかかわらず、さらなる実施例において、コンピューティング装置1601は、ラップトップ、ワークステーション、ミッドレンジコンピュータ、メインフレーム、組込みシステム、電話、ハンドヘルドまたはタブレットコンピュータ、PDA、あるいは他のタイプのコンピュータでよい。
【0097】
図17は、図16に示されるコンピュータの内部アーキテクチャを示すブロック図である。ここで、コンピューティング装置1601の例示的な内部アーキテクチャについて説明する。コンピューティング環境は、以下を含む:オペレーティングシステムまたはアプリケーションを含むコンピュータ命令が処理されるコンピュータ中央処理装置(「CPU」)1701;表示装置1608に図形、画像およびテキストを描画するための通信インターフェースおよび処理機能を提供する表示インターフェース1702;キーボード1609に通信インターフェースを提供するキーボードインターフェース1704;マウス1610または等価なポインティングデバイスに通信インターフェースを提供するポインティングデバイスインターフェース1705;デジタル入力装置1617に通信インターフェースを提供するデジタル入力インターフェース1706;ハードコピー出力装置1615に通信インターフェースを提供するハードコピー出力装置インターフェース1708;コンピュータ命令およびデータがコンピュータCPU1701による処理のための揮発性メモリデバイスに格納されるランダムアクセスメモリ(「RAM」)1710;基本的な入出力(「I/O」)、スタートアップ、またはキーボード1609からのキーストロークの受信のような、基本的なシステム機能のための不変の低レベルのシステム・コードまたはデータが、不揮発性メモリデバイスに格納される読取り専用メモリ(「ROM」)1711;オペレーティングシステム1721、アプリケーションプログラム1722(必要に応じて、ユーザー入力アプリケーション1723および他のアプリケーション1724を含む。)、およびデータ・ファイル1725を含むファイルが格納される、記憶装置1720または他の適切なタイプのメモリ(例えば、ランダムアクセスメモリ(「RAM」)、読取り専用メモリ(「ROM」)、プログラマブル読取り専用メモリ(「PROM」)、消去可能プログラマブル読取り専用メモリ(「EPROM」)、電気的消去可能プログラマブル読取り専用メモリ(「EEPROM」)、磁気ディスク、光ディスク、フロッピーディスク、ハードディスク、リムーバブル・カートリッジ、フラッシュドライブ);コンピュータ・ネットワーク接続1616上のネットワーク1606に通信インターフェースを提供するコンピュータ・ネットワーク・インターフェース1716。構成デバイスおよびコンピュータCPU1701は、コンピュータバス1727上の各々と通信する。
【0098】
RAM1710は、ソフトウェアプログラム(例えばオペレーティングシステム・アプリケーションプログラムおよびデバイスドライバ)の実行中にコンピュータCPU1701に迅速なRAM記憶を提供するように、コンピュータバス1727と結びつく。より詳しくは、コンピュータCPU1701は、ソフトウェアプログラムを実行するために、固定ディスクドライブ1611または他の記憶媒体からRAM1710のフィールドに、コンピュータ実行可能なプロセスステップをロードする。データはRAM1710に格納される。ここでデータは、実行中にコンピュータCPU1701によってアクセスされる。
【0099】
コンピューティング装置1601は、オペレーティングシステム1721、アプリケーションプログラム1722(例えば、ワード・プロセッシング、表計算ソフト、プレイゼンテーション、ゲーム、または他のアプリケーション)のためのコンピュータ実行可能なコードを格納する。ユーザーインターフェースを表示して、ユーザーに、上記の実施例を用いてテキスト、数字、またはオプションメニューからの選択を入力できるようにすることが可能であるにもかかわらず、ダイナミックリンクライブラリ(「DLL」)としての、または、インターネット・ウェブ・ブラウザ(例えばMICROSOFT(登録商標)インターネットエクスプローラー・ウェブ・ブラウザ)のような他のアプリケーションプログラムに対するプラグインとしての、現在の開示に従う機能を実施例することも可能である。
【0100】
コンピュータCPU1701は、多くの高性能コンピュータプロセッサのうちの1台である。そしてそれは、INTEL(登録商標)またはAMD(登録商標)プロセッサ、POWERPC(登録商標)プロセッサ、MIPS(登録商標)縮小命令セットコンピュータ(「RISC」)プロセッサ、SPARC(登録商標)プロセッサ、ACORN(登録商標)RISC Machine(「ARM(登録商標)」)アーキテクチャ・プロセッサ、HP ALPHASERVER(登録商標)プロセッサ、またはメインフレーム用の所有権のあるコンピュータプロセッサ、を含む。追加的な装置において、コンピュータCPU1701は、複数の演算処理装置である。そしてそれは、高性能ワークステーションおよびサーバにおいて見つけられるマルチプルCPU構成、またはメインフレームにおいて見つけられるマルチプルスケーラブル演算処理装置、を含む。
【0101】
オペレーティングシステム1721は、MICROSOFT(登録商標)WINDOWS NT(登録商標)/WINDOWS(登録商標)2000/WINDOWS(登録商標)XPワークステーション;WINDOWS NT(登録商標)/WINDOWS(登録商標)2000/WINDOWS(登録商標)XP Server、IBM(登録商標)ワークステーションおよびサーバのためのAIX(登録商標)を含む様々なUNIX(登録商標)風のオペレーティングシステム、SUN(登録商標)ワークステーションおよびサーバのためのSUNOS(登録商標)、INTEL(登録商標)CPUベースのワークステーションおよびサーバのためのLINUX(登録商標)、HP(登録商標)ワークステーションおよびサーバのためのHP UX WORKLOAD MANAGER(登録商標)、SGI(登録商標)ワークステーションおよびサーバのためのIRIX(登録商標)、ディジタルイクイップメント社のコンピュータのためのVAX/VMS、HP ALPHASERVER(登録商標)ベースのコンピュータのためのOPENVMS(登録商標)、POWERPC(登録商標)ベースのワークステーションおよびサーバのためのMAC OS(登録商標)X;SYMBIAN OS(登録商標)、WINDOWS MOBILE(登録商標)またはWINDOWS CE(登録商標)、PALM(登録商標)、NOKIA(登録商標)OS(「NOS」)、OSE(登録商標)、EPOC(登録商標)、または、コンピュータまたは組込みシステムのための所有権のあるオペレーティングシステム、でよい。オペレーティングシステム1721に対するアプリケーション開発プラットフォームまたはフレームワークは:BINARY RUNTIME ENVIRONMENT FOR WIRELESS(登録商標)(「BREW(登録商標)」);Javaプラットフォーム、マイクロエディション(「Java ME」)またはJava2プラットフォーム、マイクロエディション(「J2ME(登録商標)」);PYTHON(商標)、FLASH LITE(登録商標)、またはMICROSOFT(登録商標)NET Compact、でよい。
【0102】
図16、17は、ユーザーがテキスト、数字、またはオプションメニューからの選択を入力できるように構成されるアプリケーションのコントロールを達成するために構成される、プログラムコードまたはプログラムまたはプロセスステップを実行するコンピューティング装置の1つのありうる実施例を示すけれども、他のタイプのコンピュータが同様に用いられてよい。
【0103】
多くの実施例は、記述された。それにもかかわらず、さまざまな修正が、開示の趣旨および範囲から逸脱することなく、作成されてよいことが理解されよう。したがって、、他の実施例は、以下の請求項の範囲内にある。
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、2008年10月10日に出願の米国特許仮出願番号第61/104,340号の利益を主張し、参照により本明細書に援用される。
【0002】
[技術分野]
本開示は、一般に、対象物のトラッキングに関連する。
【背景技術】
【0003】
カメラは、対象物の画像を捕えるために用いられてきた。対象物の位置を検出するために、1つ以上の画像の範囲内にある対象物の1つ以上の画像を分析するためのさまざまな技術が開発されてきた。例えば、時間内にテンポ良く連続して撮られた対象物の複数の(マルチプル)画像を分析することによって、対象物の動きを検出するために、オプティカルフローが用いられている。
【発明の概要】
【課題を解決するための手段】
【0004】
1つの態様では、電子デバイスは、面を横切る画像を捕えるために向きを定められるカメラ、および、オペレーションを実行するために構成される演算処理装置を含む。オペレーションは、カメラによって捕えられる画像にアクセスするステップ、および、カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する1つのインターフェース・コントロールに対応する、複数の(マルチプル)領域を識別するステップ、を含む。オペレーションはまた、複数の(マルチプル)定義された領域の中から、アクセスした画像の範囲内で検出される対象物が位置する(1つの)領域を決定するステップを含む。オペレーションは、決定した領域に対応する前記1つのインターフェース・コントロールに基づくユーザー入力を決定するステップ、および、決定したユーザー入力に基づいてアプリケーションをコントロールするステップ、をさらに含む。
【0005】
実施例は、以下の特徴の1つ以上を含んでよい。例えば、オペレーションは、アクセスした画像の範囲内で対象物を検出するステップ、および、アクセスした画像の範囲内で検出対象物の位置を決定するステップ、を含んでよい。この実施例では、オペレーションはまた、決定した位置を、カメラの視野の範囲内で複数の定義された領域と比較するステップ、および、比較結果に基づいて、検出対象物が位置する領域を識別するステップ、を含んでよい。
【0006】
いくつかの実施例において、オペレーションは、アクセスした画像を、各々複数の定義された領域のうちの1つに対応するセグメントに分割するステップ、および、セグメントの各々に対して、対象物がセグメントの範囲内にあるかどうか決定するためにセグメントを分析するステップ、を含んでよい。これらの実施例において、オペレーションはまた、対象物が特定のセグメントの範囲内にあるという決定に応じて、この対象物が、特定のセグメントに対応する特定の領域の範囲内に位置することを決定するステップ、を含んでよい。加えて、これらの実施例において、オペレーションは、対象物の全体が特定の領域の任意の部分の範囲内にあることを決定するステップを含んでよい。セグメントは、対象物がセグメントの範囲内にあるかどうか決定するために分析される画像の唯一の部分でもよい。
【0007】
いくつかの実施例において、電子デバイスは、グラフィカルユーザーインターフェースを表示するために構成される表示画面をさらに含み、グラフィカルユーザーインターフェースは、グラフィカルユーザーインターフェースの第1位置で表示される第1のユーザーインターフェース・コントロール、および、グラフィカルユーザーインターフェースの第2位置で表示される第2のユーザーインターフェース・コントロールを含んでよい。グラフィカルユーザーインターフェースの第2位置は、グラフィカルユーザーインターフェースの第1位置とは異なってよく、カメラは、前記表示画面の表面を横切る画像を捕えるために向きを定められてよい。これらの実施例において、オペレーションは、対象物が第1のユーザーインターフェース・コントロールに対応する画像の第1領域の範囲内にあるかどうか決定するステップ、および、対象物が第2のユーザーインターフェース・コントロールに対応する画像の第2領域の範囲内にあるかどうか決定するステップを含んでよい。さらに、これらの実施例において、オペレーションは、対象物が画像の第1領域の範囲内にあるという判定に応じて、第1のユーザーインターフェース・コントロールの活性化を検出するステップ、および、第1のユーザーインターフェース・コントロールの活性化と関連した第1のオペレーションを始動するステップを含んでよい。オペレーションはまた、対象物が画像の第2領域の範囲内にあるという判定に応じて、第2のユーザーインターフェース・コントロールの活性化を検出するステップ、および、第2のユーザーインターフェース・コントロールの活性化と関連した第2のオペレーションを始動するステップを含んでよい。
【0008】
さらに、オペレーションは、第1のユーザーインターフェース・コントロールの大きさおよび形状を画像の第1領域の範囲内に適合するように、そして、第2のユーザーインターフェース・コントロールの大きさおよび形状を画像の第2領域の範囲内に適合するように、表示画面をコントロールするステップを含んでよい。第1のユーザーインターフェース・コントロールは、第1のユーザーインターフェース・ボタンでよく、そしてオペレーションは、第1のユーザーインターフェース・ボタンの押圧を検出するステップ、および、第1のユーザーインターフェース・ボタンの押圧と関連した第1のオペレーションを始動するステップ、を含んでよい。
【0009】
第1のユーザーインターフェース・コントロールは、カメラの視野と交差する方向において画像の第1領域にわたる第1のスライダコントロールでよく、そしてオペレーションは、対象物が画像の第1領域の範囲内にあるという判定に応じて、第1のスライダコントロールの係合を検出するステップを含んでよい。オペレーションはまた、対象物の位置を、第1のスライダコントロールに沿って画像の第1領域の範囲内で決定するステップ、および、第1のスライダコントロールの係合と関連する、そして、第1のスライダコントロールに沿って画像の第1領域の範囲内で対象物の決定した位置を使用する、第1のオペレーションを始動するステップ、を含んでよい。
【0010】
いくつかの実施例において、電子デバイスは、画像の第1領域および画像の第2領域と交差する方向において、表示画面の表面全体を横切ってまっすぐ照らすように向きを定められる発光ダイオードを含んでよい。これらの実施例において、発光ダイオードからの光が導かれる、画像の第1領域の一部における作用エリア、および、発光ダイオードからの光がない、画像の第1領域の残りの部分における偽のエリア、を定義するために、発光ダイオードは、画像の第1領域の一部を横切ってまっすぐ照らしてよい。第1のユーザーインターフェース・コントロールが表示されるグラフィカルユーザーインターフェースの第1位置は、画像の第1領域の作用エリアに対応してよい。オペレーションは、画像の第1領域の作用エリアにおいて対象物を検出して、かつ画像の第1領域の偽のエリアにおいて対象物を無視するために、照らされた対象物が画像の第1領域の範囲内にあるかどうか決定するステップを含んでよい。
【0011】
いくつかの実施例において、発光ダイオードは、表示画面よりも上の第1のエリアを照らすために構成される第1の発光ダイオードである。そして、電子デバイスは、第2の発光ダイオードを含み、第2の発光ダイオードは、表示画面の表面を横切ってまっすぐ照らすように向きを定められて、第1の発光ダイオードによって照らされる表示画面よりも上の第1のエリアとは異なる表示画面よりも上の第2のエリアを照らすために構成される。これらの実施例において、第2の発光ダイオードによって照らされる表示画面よりも上の第2領域は、ジェスチャ入力領域を定義する。そして、オペレーションは、カメラによって捕えられる複数の画像の分析に基づいて第2のエリアの範囲内でジェスチャを検出するステップを含んでよい。
【0012】
加えて、オペレーションは、カメラによって捕えられる画像について順番に交互の時間に照らすために、第1の発光ダイオードおよび第2の発光ダイオードをコントロールするステップを含んでよい。カメラによって捕えられる画像は、第1の発光ダイオードが照らされて、かつ第2の発光ダイオードが照らされない第1の画像セット、および、第2の発光ダイオードが照らされて、かつ第1の発光ダイオードが照らされない第2の画像セット、に結びついてよい。オペレーションは、第1のユーザーインターフェース・コントロールの活性化を検出するために、第1の発光ダイオードが照らされて、かつ第2の発光ダイオードが照らされない第1の画像セットを処理するステップ、および、第2のエリアの範囲内でジェスチャを検出するために、第1の発光ダイオードが照らされず、かつ第2の発光ダイオードが照らされる第2の画像セットを処理するステップ、を含んでよい。
【0013】
いくつかの実施例において、オペレーションは、画像の複数の定義された領域以外の画像の部分を無視するステップを含んでよい。これらの実施例において、画像の複数の定義された領域以外の画像の部分に位置する対象物は、無視される。
【0014】
いくつかの実施例において、オペレーションは、カメラによって捕えられる複数の画像の分析に基づいて、画像の領域の範囲内で対象物によるジェスチャの実行を検出するステップ、検出したジェスチャに対応するユーザー入力コマンドを決定するステップ、および、決定したユーザー入力コマンドに対応する第1のオペレーションを始動させるステップ、を含んでよい。これらの実施例において、オペレーションは、画像の領域の範囲内でのスワイプジェスチャの実行、およびスワイプジェスチャの方向を検出するステップ、および、スワイプジェスチャの検出した方向におけるスワイプジェスチャに対応するユーザー入力コマンドを決定するステップ、を含んでよい。
【0015】
もう1つの態様において、少なくとも1つのコンピュータ読み取り可能の記憶媒体は、少なくとも1つのプロセッサによって実行されるときに、少なくとも1つのプロセッサにオペレーションを実行させる実行可能命令によってコード化される。オペレーションは、面を横切る画像を捕えるために向きを定められるカメラによって捕えられる画像にアクセスするステップ、および、カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する1つのインターフェース・コントロールに対応する、複数の領域を識別するステップ、を含んでよい。オペレーションはまた、複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する(1つの)領域を決定するステップを含む。オペレーションは、決定した領域に対応する前記1つのインターフェース・コントロールに基づくユーザー入力を決定するステップ、および、決定したユーザー入力に基づいてアプリケーションをコントロールするステップ、をさらに含む。
【0016】
さらに他の態様では、方法は、面を横切る画像を捕えるために向きを定められるカメラによって捕えられる画像にアクセスするステップ、および、カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する1つのインターフェース・コントロールに対応する、複数の領域を識別するステップ、を含む。方法はまた、複数の定義された領域の中から、アクセスした画像の範囲内で検出される対象物が位置する(1つの)領域を決定するステップを含む。方法は、決定した領域に対応する1つのインターフェース・コントロールに基づくユーザー入力を決定するステップ、および、決定したユーザー入力に基づいてアプリケーションをコントロールするステップ、をさらに含む。
【0017】
1つ以上の実施例の詳細は、添付の図面および以下の記載において説明される。開示の他の潜在的な特徴および効果は、説明および図面から、そして請求項から、明らかである。
【図面の簡単な説明】
【0018】
【図1】図1は、ユーザーインターフェースをコントロールするシステムの実施例を示す。
【図2】図2は、カメラトラッキングシステム実施例を示す。
【図3】図3は、カメラトラッキングシステムにおけるユーザー入力コマンドを決定する方法の実施例を示すフローチャートである。
【図4A】図4Aは、ディスプレイ装置の最上部に配置されるカメラを含むシステムの実施例を示す。
【図4B】図4Bは、矩形のボタンコントロールを含むシステムの実施例を示す。
【図5】図5は、ディスプレイ装置の最下部の部分を照らしてアクティブタッチエリアを生じさせるシステムの実施例を示す。
【図6】図6は、ディスプレイ装置の最上部に配置されるカメラを含むシステムの実施例を示す。
【図7】図7は、同じ領域において複数のコントロールが表示されるシステムの実施例を示す。
【図8】図8は、複数の照明器のペアを含むシステムの実施例を示す。
【図9】図9は、ディスプレイ装置のコーナーに置かれるカメラを含むシステムの実施例を示す。
【図10】図10は、矩形形状のコントロールが使われるシステムの実施例を示す。
【図11】図11は、カメラがディスプレイ装置の左上コーナーに置かれるシステムの実施例を示す。
【図12】図12は、ディスプレイ装置の左上コーナーに置かれるカメラを含むシステムの実施例を示す。
【図13】図13は、アクティブタッチエリアを定義するシステムの実施例を示す。
【図14】図14は、ユーザー入力コマンドを決定してカメラトラッキングシステムを使用するアプリケーションをコントロールする方法の実施例を示すフローチャートである。
【図15】図15は、カメラトラッキングシステムにおけるユーザー入力コマンドを決定する方法の他の実施例を示すフローチャートである。
【図16】図16は、例示的なコンピュータ処理システムのコンポーネントの実施例を示す。
【図17】図17は、図16に示されるコンピュータの内部アーキテクチャの実施例を示すブロック図である。
【0019】
類似する参照番号は、全体を通して対応する部分を示す。
【発明を実施するための形態】
【0020】
技術は、一次元のセンサを用いて二次元のインターフェースを模倣するために記述される。いくつかの実施例において、システムは、タッチスクリーン・インターフェースの表面を撮像する単一のカメラを含んでよい。これらの実施例において、このシステムは、一次元(例えば、図1に示すように、単一のカメラがタッチスクリーン・インターフェースの最上部に位置し、画像が下方にある、水平方向)での単一のカメラによって捕えた画像における対象物の位置を検出して、そして、二次元でのタッチスクリーン・インターフェースをコントロールするためにその一次元を使用する。二次元のコントロールを提供するために2つのセンサ(例えば2台のカメラ)が伝統的に必要であるにもかかわらず、このシステムは、タッチスクリーン・インターフェースにおけるインターフェースエレメントの知的な配置、および/または、タッチスクリーン・インターフェースにおける作用エリアを定義するための照明光源の使用、に基づく検出対象物の一次元を用いて、二次元でのタッチスクリーン・インターフェースをコントロールすることが可能である。これらの実施例において、二次元のコントロールを提供するために単一センサ(例えば単一のカメラ)のみが必要であるので、このシステムは、2つのセンサを要求するシステムよりも低コストを有してよい。
【0021】
図1は、ユーザーインターフェースをコントロールするシステム100を示す。システム100は、ディスプレイ装置105の表面上に接触しているかまたはホバリング(hovering)している対象物の位置を検出するように構成される。ディスプレイ装置105は、例えば、コンピュータ・モニタまたはテレビジョンスクリーンでよい。対象物は、例えば、ユーザーの手または指、スタイラスまたは他のポインティングデバイス、あるいはいくつかの他の対象物でよい。
【0022】
システム100は、ディスプレイ装置105の前に位置する対象物の画像を捕えるように構成されるカメラ110を含む。カメラ110は、ディスプレイ105の最上部に配置されてよく、そして、ディスプレイ105の表面に沿って見下ろすように向きを定められてよい。カメラ110の視野111は、ディスプレイ105に沿って下方へ広がる三角形の形状である。すなわち、カメラ110は、ディスプレイ105の最下部では全体の対象物の画像を捕えることができてよく、ディスプレイ105の最上部ではより小さいエリアを捕えることができてよいように、配置される。視野111は、多数の領域112〜116に分けられてよい。領域112〜116の各々は、例えば、角度として、または、視野111の範囲内の角度の範囲として、定義されてよい。別の実施例として、領域112〜116の各々は、カメラ110によって捕えられる画像の一部として、定義されてよい。図1に示すように、定義された領域112〜116は、別々のサイズでもよい。
【0023】
システム100は、LED(発光ダイオード)118、119を含む。いくつかの実施例において、LED以外の照明光源が用いられてよい。LED118、119は、視野111のアクティブタッチ領域を定義するために配置されてよい。そうすると、LED118、119が照らされるときに、アクティブタッチ領域において配置される対象物のみが検出される。アクティブタッチエリアは、例えば、ディスプレイ装置105の最下部で定義されてよい。
【0024】
ディスプレイ装置105は、アプリケーションによって生成される表示画像を描画してよく、そこにおいて表示画像は、1つ以上のユーザー入力コントロールを含む。各ユーザー入力コントロールは、例えば、アクティブタッチエリア(例えば、ディスプレイ装置105の最下部に対応するエリア)内に配置されてよく、そして、視野111の定義された領域と関連していてよい。例えば、「戻る」ボタンコントロール120は、領域112に対応するエリアにおけるディスプレイ装置105の最下部で表示され、そして、「進む」ボタンコントロール122は、領域116に対応するエリアにおけるディスプレイ装置105の最下部で表示される。フィルムストリップコントロール124は、領域114に対応するディスプレイ装置105のエリアにおいて表示される。フィルムストリップコントロール124は、画像エリア126における画像の表示のコントロールに使われる。
【0025】
LED118、119が照らされるにつれて、カメラ110は、ディスプレイ装置105の前で対象物(例えばユーザーの手または指)の画像を捕えてよい。捕えられた対象物に対応する領域112〜116は、決定されてよい。アプリケーション・コマンドは、決定された領域に基づいて決定されてよく、そして、決定されたアプリケーション・コマンドは、実行されてよい。
【0026】
例えば、ユーザーがフィルムストリップコントロール124を指で指してタッチすると、その指は、LED118、119によって照らされてよく、そして、カメラ110の画像に捕らえられてよい。ユーザーの指の検出された水平位置に基づいて、その指は、領域114において捕えられたと決定されてよい。決定された領域114に基づいて、画像選択コマンドは、決定されてよい。画像選択コマンドは、実行されてよく、そして、指の水平位置は、特定のサムネイル画像128a〜dにマップされてよい。マップされたサムネイル画像(例えば128b)は、画像エリア126におけるより大きいサイズにおいて表示されてよい。インジケータ130は、フィルムストリップ124におけるどのサムネイル128a〜dが、画像エリア126(例えば、図示のインジケータ130は、サムネイル128bの上に配置される)に表示されるかを示してよい。
【0027】
別の実施例として、ユーザーが「戻る」コントロールボタン120を手で指してタッチすると、その手は、LED118、119によって照らされてよく、そして、カメラ110によって捕えられてよく、そして、対応する領域112が識別されてよい。「以前の画像」コマンドは、識別された領域112に基づいて決定されてよい。以前の画像コマンドは、実行されてよい。それにより、画像エリア126におけるサムネイル128aの表示に、そして、サムネイル128aの上のインジケータ130の位置決めに、結びつく。ユーザーが繰り返し「戻る」コントロールボタン120にタッチする場合、以前の目に見えない画像は、フィルムストリップ124において現されてよい。
【0028】
さらに別の実施例として、ユーザーが「進む」ボタンコントロール122をスタイラスで指してタッチすると、そのスタイラスは、照らされてよく、そして、カメラ画像に捕えられてよい。領域116は、対応する領域として決定されてよく、そして、「次の画像」コマンドは、決定された領域116に基づいて決定されてよい。次の画像コマンドは、実行されてよい。それにより、画像エリア126におけるサムネイル128cの表示に、そして、サムネイル128cの上のインジケータ130の位置決めに、結びつく。ユーザーが繰り返し「進む」コントロールボタン122にタッチする場合、以前の目に見えない画像は、フィルムストリップ124において現されてよい。
【0029】
単にディスプレイ装置105の前で対象物の存在を捕えることに加えて、対象物によってなされるジェスチャは、検出されてよい。例えば、「左スワイプ」、「右スワイプ」、「静止」のジェスチャは、認識されてよい。ジェスチャは、検出対象物のモーションを、認識されたジェスチャと関連したモーションパターンと比較することによって認識されてよい。認識されたジェスチャは、入力コマンドにマップされてよい。例えば、「左スワイプ」ジェスチャは、「次の画像」コマンドにマップされてよく、そして、「右スワイプ」ジェスチャは、「以前の画像」コマンドにマップされてよい。「静止」ジェスチャは、例えば、表示メニューコマンドにマップされてよい。
【0030】
本明細書において全体を通じて用いられるように、「ジェスチャ」は、人間の身体または複数の人間の身体の全部または一部によってなされる非言語的なコミュニケーションの形態のことをいうことが意図され、そして、言葉でのコミュニケーション(例えば話し言葉)と対比される。例えば、ジェスチャは、第1の位置、ポーズまたは表現と、第2のポーズ、位置または表現との間の動き、変化または変形によって定義されてよい。ジェスチャの実施例は、例えば、「エアクォーツ」のジェスチャ、会釈(bowing)のジェスチャ、お辞儀(curtsy)、頬へのキス、指または手の動き、ひざまずく動き、頭の振りまたは動き、ハイタッチ、頷き、高くなった拳、敬礼、スワイプまたはウェーブモーション、親指を挙げる動き、あるいは指を指すジェスチャ等を含む。
【0031】
したがって、一連の画像から、ジェスチャは、ユーザーの考え、意見、感情、コミュニケーション、指揮、実証または表現を定義するものと推論されてよい。例えば、ユーザーのジェスチャは、単一または複数の指のジェスチャでよく、単一の手のジェスチャでよく、単一の手および腕のジェスチャでよく、単一の手および腕および身体のジェスチャでよく、頭のポーズまたは姿勢の変化でよく、身体のポーズまたは姿勢の変化でよく、または、他の任意の表現力豊かな身体の状態の変形でよい。
【0032】
簡潔さのために、関連するジェスチャを実行するのに用いる身体の一部または部分は、「制御対象」と一般に呼ばれる。例えば、ユーザーは、彼らの全身を用いて、または他の物理的実体とともに、コマンドを表現してよい。その場合、彼らの全身または他の物理的実体は、制御対象でよい。ユーザーは、指を小刻みに動かすことによって、コマンドをより微妙に表現してよい。その場合、指は、制御対象でよい。単一の画像における、または2つの画像間におけるユーザーのジェスチャは、効果的なまたは「係合」ジェスチャを表現してよい。制御対象は、物理的デバイス(例えば、赤外線の指照明、再帰反射器(retro−reflector)または遠隔制御)でよい。
【0033】
ジェスチャをしながら、ユーザーは、ディスプレイ装置105の上を擦ってよく、またはホバリングしてよい。スワイプジェスチャを実行するために、ユーザーは、ディスプレイ装置105にタッチして、指を左または右へ1つの滑らかなモーションでドラッグしてよい。静止ジェスチャを実行するために、ユーザーは、指または手を動かすことなく、ディスプレイ装置105の上にタッチまたはホバリングしてよい。ジェスチャは、視野111の範囲内でどこでも検出されてよい。いくつかのアプリケーションにおいて、双方向ボタンコントロールが表示される一方、いくつかまたはすべてのジェスチャは、認識されなくてよい。いくつかの実施例において、写真または映像の提示の間、いくつかのジェスチャは、使われてよい。その結果、画像は、ボタンコントロールと重ならないフルスクリーンで表示されることができる。
【0034】
図2は、カメラトラッキングシステム200の一実施例を示す。システム200は、カメラ210、ディスプレイ装置220、照明器230およびコンピューティング装置240を含む。システム200は、デジタルピクチャーフレーム、テレビジョン、モニタ、製品ディスプレイ装置または任意のタイプの媒体システム、の中に含まれてよく、または、それらと連動して用いられてよい。
【0035】
カメラ210は、画像を捕えるデバイスである。例えば、カメラ210は、デジタル・カメラ、デジタル・ビデオ・カメラまたは画像を捕える任意の他のタイプのデバイスでよい。いくつかの実施例において、カメラ210は、単一のカメラでよく、そして、システム200は、単一のカメラのみを含んでよい。他の実施例では、複数のカメラが用いられてよい。カメラ210は、ディスプレイ装置220に表示されるインターフェースと相互作用している対象物の画像を捕えてよい。例えば、カメラ210は、ディスプレイ装置220に表示されるインターフェースと物理的に相互作用している(例えば、指または手によって)ユーザーまたは人の画像を捕えてよい。カメラ210は、任意のタイプのイメージセンサでよく、そして、ライン走査センサでよい。
【0036】
ディスプレイ装置220は、可視表示画像を描画する。例えば、ディスプレイ装置220は、モニターディスプレイ、テレビジョンディスプレイ、液晶ディスプレイ(LCD)、プラズマディスプレイ装置、スクリーンを有するプロジェクタ、自動立体ディスプレイ、陰極線管(CRT)ディスプレイ、デジタル光処理(DLP)ディスプレイ、デジタルピクチャーフレームディスプレイ、または、可視表示画像を描画するように構成される任意の他のタイプのディスプレイ装置でよい。ディスプレイ装置220は、1つ以上のディスプレイ装置を含んでよい。ディスプレイ装置220は、アプリケーションと関連した画像を表示してよい。例えば、ディスプレイ装置220は、アプリケーション(例えば、写真を見るアプリケーション)によって生成される表示画像を描画してよい。アプリケーションによって生成される表示画像は、インターフェース・コントロールを有するインターフェースを含んでよい。
【0037】
いくつかの実施例において、システム200は、ディスプレイ装置220を含まない。例えば、システム200は、別の表面(例えば、ドア、エレベータ、機械、無線受信機、メディアプレイヤまたは他の対象物のような、他のタイプの物理的実体の表面)の前で対象物を検出するように構成されてよい。いくつかの実施例において、システム200は、スペース(例えば戸口または通路)のエリアの前に位置する。
【0038】
照明器230は、光源を提供するデバイスである。例えば、照明器230は、フラッシュ装置、白熱電球、蛍光電球、発光ダイオード(LED)、ハロゲン光源、ネオン光源、キセノン光源、赤外線光源、または、カメラ210によって撮像される対象物を照らすように構成される任意の他のタイプのデバイスでよい。照明器230は、1つ以上の照明器を含んでよい。照明器230は、カメラ210によって捕えられる対象物の高品質画像を捕えるのを支援する光を発生してよい。いくつかの実施例において、照明器230は、特定の状況において用いられてよい。例えば、照明器230は、夜間に、または暗い室内において用いられてよい。照明器230は、カメラ210の視野の範囲内でアクティブタッチエリアを定義するために配置されてよい。照明器230を使用するアクティブタッチエリアを定義することは、単一のカメラによる対象物の検出精度を高めてよく、そしてまた、単一のカメラによって検出されてよいコントロールエレメントの個数を増加させてよい。単一のカメラを使用することは、システムのコストを減らすのを支援してよく、また、ジェスチャ・ベースの入力コントロールが、より高価でないデバイスにおいて実現されることを可能にする。
【0039】
コンピューティング装置240は、カメラ210、ディスプレイ装置220および照明器230に、有線または無線経路を介して電気的に接続されて、そして、システム200のオペレーションをコントロールしてよい。いくつかの実施例において、コンピューティング装置240は、アプリケーションを実行するように構成されるプロセッサまたは他の制御回路を含んでよい。これらの実施例において、コンピューティング装置240は、カメラ210によって捕えられる画像を受け入れてよく、そして、画像の範囲内で対象物(例えばユーザーの指)の位置を検出するために、受け入れられた画像を処理してよい。画像の範囲内の対象物の検出位置は、アプリケーションの実行をコントロールするためトラッキングされてよく、使われてよい。例えば、コンピューティング装置240は、カメラの視野の範囲内で定義される領域を有する画像の範囲内で、対象物の検出位置を比較してよい。この実施例では、コンピューティング装置240は、対象物が、特定領域において配置され、その特定領域と関連したインターフェース・コントロールを識別し、そして、その識別したインターフェース・コントロールに対応する機能に基づくアプリケーションをコントロールすることを、検出してよい。
【0040】
コンピューティング装置240はまた、カメラ210、ディスプレイ装置220および照明器230のオペレーションおよび設定をコントロールしてよい。コンピューティング装置240は、命令を実行するように構成されるプロセッサまたは他の制御回路を含む、任意のタイプの電子デバイスでよい。
【0041】
図3は、カメラトラッキングシステムにおけるユーザー入力コマンドを決定する方法300の実施例を示すフローチャートである。便宜のために、図2に関して記述される特定のコンポーネントは、プロセス300を実行するものとして参照される。しかしながら、同様の方法論は、システムの構造を定義するために別々のコンポーネントが用いられるか、または、コンポーネントの中で機能性が異なって分配される、他の実施例において適用されてよい。
【0042】
コンピューティング装置240は、カメラ210の視野の領域を定義する(310)、そして、照明器230を使用するカメラ210の視野の作用エリアを定義する(320)。コンピューティング装置240は、ディスプレイ装置220に表示されるインターフェース・コントロールエレメントと一致するために、カメラ210の視野における複数の領域(例えば、カメラ210の視野の範囲内の角度、カメラ210によって捕えられる画像の一部、等)を定義してよい。例えば、図4Aは、ディスプレイ装置410の最上部に配置されるカメラ405を含むシステム400を示す。カメラ405の視野は、領域411〜415に分けられる。例えば、領域411は、ハッチングパターンによって示される。ユーザーインターフェース・コントロール421〜425は、ディスプレイ装置410に表示されて、そして、領域411〜415にそれぞれ対応する。
【0043】
図3に一旦戻って、コンピューティング装置240は、定義された領域(320)を横切るカメラ210(例えば、ディスプレイ装置220の表面全体に)の視野の一部を照らすために、照明器230をコントロールすることによって、カメラ210の視野におけるアクティブタッチエリアを定義してよい。例えば、図4Aに示すように、LED照明器430、432は、領域411〜415の最下部の部分を照らして、ディスプレイ410の最下部の部分を照らす。LED照明器430、432は、赤外線LEDでよい。
【0044】
図3に一旦戻って、コンピューティング装置240は、定義されたアクティブタッチエリアにおいて定義された領域の少なくとも一部に対応する、ディスプレイ装置220の一部のインターフェース・コントロールの表示を描画する(330)。例えば、コンピューティング装置240は、ディスプレイ装置220に、各々定義された領域における少なくとも1つのインターフェース・コントロールを表示させてよい。この実施例では、コンピューティング装置240は、ディスプレイ装置220に、照明器230によって定義されるアクティブタッチエリアに対応する位置でインターフェース・コントロールを表示させてよい。
【0045】
例えば、図4Aに示すように、ユーザーインターフェース・コントロール421〜425は、ディスプレイ装置410に表示される。ここで、各コントロール421〜425は、それぞれの領域411〜415に対応するディスプレイ装置410の一部において表示される。ユーザーインターフェース・コントロール421〜425は、LED430〜432によって照らされるアクティブタッチエリアにおいて表示される。コントロールがそれらの対応する領域の範囲内で適合するように、コントロールの形状およびサイズは、選択されてよい。例えば、卵形の大きさのコントロール(例えばボタンコントロール421〜425)は、三角形の領域(例えば領域411〜415)の範囲内で、一般にうまく適合してよい。
【0046】
他のタイプの形状は、三角形の形状または他の形状の領域の範囲内で、特にうまく適合しない。例えば、図4Bは、矩形のボタンコントロール452〜460を含むシステム450を示し、矩形のボタンコントロール452〜460の各々は、ディスプレイ装置480の対応する領域470〜475の内部にそれぞれ配置される。ここで、領域470〜475は、カメラ485の視野を分ける。図4Bに示すように、矩形のボタンは、自己の対応する領域の範囲内で完全に適合しなくてよい。例えば、矩形のボタン452は、領域471の外側に伸びる部分490で示すように、領域470の範囲内で完全には適合しない。同様に、重なり合う部分492は、矩形のボタン454が、領域472の範囲内で完全に適合しないで、領域471の内側に伸びることを示す。矩形のボタンが用いられる場合、それらは、各ボタンが対応する領域の範囲内で完全に適合することを確実にするために、各ボタンとボタンとの間に充分なスペースを有する間隔を置かれてよい。最小限のコントロール幅(例えば1インチ)が、使われてよい。
【0047】
図3に一旦戻って、コンピューティング装置240は、カメラ210によって捕えられる画像にアクセスする(340)。例えば、コンピューティング装置240は、カメラ210から1つ以上の画像を受け入れてよい。コンピューティング装置240はまた、記憶媒体から1つ以上の画像にアクセスしてよい。コンピューティング装置240は、システム200に近接するエリアの画像に連続的にアクセスしてよく、または、システム200によって受け入れられる入力コマンドに応じて、システム200に近接するエリアの画像にアクセスしてよい。
【0048】
コンピューティング装置240は、アクセスした画像における対象物を検出する(350)。例えば、コンピュータ240は、アクセスした画像におけるユーザーの指または他の対象物(例えばポインタ、スタイラス、等)を検出するために、アクセスした画像を処理または分析してよい。この実施例では、コンピューティング装置240は、アクセスした画像の特徴を、画像における対象物の典型的な特徴と比較することによって、ユーザーを検出してよく、または、アクセスした画像におけるモーションを検出することによって、対象物を検出してよい。
【0049】
コンピューティング装置240はまた、アクセスした画像の皮膚の色分析(または色分析に基づく既知の色を有する対象物を検出する)に基づいて、ユーザーを検出してよく、または、目下の画像と背景モデルとの違いを検出するために、1つ以上の対象物を含む目下の画像を背景モデルと比較することによって、対象物を検出してよい。コンピューティング装置240は、対象物の単一の画像の範囲内で、または、対象物の複数の画像セットの範囲内で対象物を検出するために、任意のタイプの技術を使用してよい。
【0050】
コンピューティング装置240は、定義されたアクティブタッチエリアの外側に位置する対象物を無視する(360)。例えば、コンピューティング装置240は、照明器230によって照らされる対象物を識別して、照明器230によって照らされない対象物を無視する。例えば、図5に示すように、LED505〜510は、ディスプレイ装置515の最下部の部分を照らして、アクティブタッチエリア520を生じさせる。アクティブタッチエリア520は、カメラ525の視野の最下部の部分を含む。カメラ525の視野の最上部の部分はLED505〜510によって照らされず、偽のタッチエリア530に結びつく。コンピューティング装置240は、アクティブタッチエリア520において照らされる対象物を識別してよく、偽のタッチエリア530における対象物を無視してよい。コンピューティング装置240は、照らされた対象物のための画像を分析することによって、偽のタッチエリア530の範囲内にある対象物を無視してよい。偽のタッチエリア530の範囲内のいかなる対象物も照らされないので、コンピューティング装置240は、これらの対象物を無視する(例えば、検出しない)。
【0051】
いくつかの実施例において、コンピューティング装置240は、カメラによって捕えられる画像のピクセルを、バイナリイメージを発生するための輝度閾値と比較することによって、照らされた対象物を検出する。例えば、閾値を上回る輝度値を有するカメラ画像のピクセルは、1の値を有するバイナリイメージにおいて識別されてよく、そして、閾値を下回る輝度値を有するピクセルは、0の値を有するバイナリイメージにおいて識別されてよい。これらの実施例において、コンピューティング装置240は、1つ以上の対象物がバイナリイメージの範囲内にあるかどうか検出するために、バイナリイメージを分析する。
【0052】
いくつかの実施例において、照明光源が照らされるときに、第1の画像がカメラによって捕えられ、そして、照明光源が照らされないときに、第2の画像がカメラによって捕えられように、照明光源は、カメラによって交互パターンに捕えられる画像については順番に照らすようにコントロールされる。これらの実施例において、結果として生じる画像を発生するために、照明光源が切られる間に捕えられるカメラ画像は、照明光源が点けられる間に捕えられるカメラ画像から差し引かれてよい。結果として生じる画像は、照明光源が点けられたときに捕えられるカメラ画像において、1つ以上の対象物が照らされるかどうか決定するために、分析されてよい。照明光源が切られたときに捕えられるカメラ画像を差し引くことは、両方のカメラ画像に存在した環境光を取り除いてよい。
【0053】
図3に一旦戻って、アクティブタッチエリアにおける対象物のために、コンピューティング装置240は、検出対象物に対応する定義された領域を決定する(370)。例えば、コンピューティング装置240は、アクセスした画像における検出対象物の位置を、カメラ210の視野の範囲内で定義された領域と比較して、そして、もしあれば、定義された領域の中で、検出対象物が配置される領域を決定する。
【0054】
コンピューティング装置240は、決定された領域に基づいて、コマンドを決定する(380)。コンピューティング装置240は、決定された領域において表示されるインターフェース・コントロールに対応する入力コマンドを識別してよい。例えば、プレイ入力コントロールが、決定された領域に対応する位置でディスプレイ装置220に表示されるときに、コンピューティング装置240は、「プレイ」コマンドを実行すると決定してよい。他の実施例として、図4を参照して、コンピューティング装置240は、コントロール421に対応するコマンドを実行するコマンドを決定してよい。
【0055】
いくつかの実施例において、コマンドの並列設定が、決定された領域と関連しているときに、コンピューティング装置240は、特定のコマンドを選択するために、決定された領域の範囲内で対象物の位置を決定してよい。これらの実施例において、摺動ノブ入力コントロールは、決定された領域に対応する位置で、ディスプレイ装置220に表示されてよい。摺動ノブ入力コントロールは、摺動ノブ入力コントロールにおけるノブの位置に基づいて、複数の可能な画像の中からディスプレイ装置220に表示する画像を選択してよい。選択された画像(または摺動ノブ入力コントロールにおけるノブの位置)は、決定された領域の範囲内で対象物の位置に基づいて決定されてよい。他の実施例において、摺動ノブ入力コントロールは、スピーカの量をコントロールしてよく、またはディスプレイのズーム設定をコントロールしてよい。
【0056】
例えば、図6は、ディスプレイ装置610の最上部に配置されるカメラ605を含むシステム600を示す。カメラ605の視野は、領域612〜616に分けられる。摺動ノブ入力コントロール620は、領域614に対応するディスプレイ装置610の位置で表示される。コントロール620は、「ノブ」622を含む。ノブ622の位置は、例えば、領域614の範囲内でユーザーの指の水平位置に基づいて決定されてよい。一連の複数の可能な画像の中から選択される画像は、コントロール620におけるノブ622の水平位置に基づいて、画像エリア630において表示されてよい。例えば、ユーザーが、領域614の左の部分に対応する位置で、彼らの指でディスプレイ装置610にタッチする場合、一連の複数の可能な画像の最初の部分に位置する画像は、画像エリア630において選択されてよく、表示されてよい。別の実施例として、ユーザーが、領域614の右の部分に対応する位置でディスプレイ装置610にタッチする場合、一連の複数の可能な画像の最後の部分に位置する画像は、画像エリア630において選択されてよく、表示されてよい。
【0057】
図3に一旦戻って、コンピューティング装置240は、決定された領域におけるジェスチャを検出して、検出したジェスチャに基づいてコマンドを決定する(390)。コンピューティング装置240は、決定された領域の範囲内で検出対象物のモーションを、認識されたジェスチャと関連したモーションパターンと比較することによって、決定された領域におけるジェスチャを検出してよい。検出対象物のモーションが、認識されたジェスチャと関連したモーションパターンと一致するときに、コンピューティング装置240は、認識されたジェスチャのパフォーマンスを識別して、認識されたジェスチャに対応するコマンドを決定する。例えば、図6の実施例で、ユーザーは、彼らの指によって「左スワイプ」のジェスチャをする。コンピューティング装置240は、左スワイプのジェスチャを認識してよく、「次の画像」コマンドを決定して、実行してよく、画像エリア630における新しい画像の表示に結びつく。ここで、新しい画像は、一連の複数の可能な画像における目下表示された画像の次にある。別の実施例として、ユーザーは、彼らの手または指によって「右スワイプ」のジェスチャをしてよい。コンピューティング装置240は、右スワイプのジェスチャを認識してよく、「以前の画像」コマンドを決定して、実行してよい。
【0058】
いくつかの実施例において、回転ノブコントロール(例えばダイヤル)は、決定された領域において表示されてよく、そして、コンピューティング装置240は、回転ノブコントロールの位置(例えば、回転ノブコントロールが回転した量)に基づいて、コマンドを決定してよい。これらの実施例において、コンピューティング装置240は、決定された領域の範囲内で検出対象物を有する円を抽出するジェスチャをするユーザーを検出してよい。コンピューティング装置240は、ユーザーが時計回りに円を抽出するか、反時計回りに円を抽出するかどうかに基づく方向に、回転ノブコントロールを回転させてよく、そして、回転後の回転ノブコントロールの位置に基づいて、コマンドを決定してよい。
【0059】
図7は、同じ領域において複数のコントロールが表示されるシステム700を示す。システム700は、ディスプレイ装置720の最上部に配置されるカメラ710を含む。カメラ710の視野は、複数の領域722〜730に分けられる。音楽プレイヤアプリケーションのためのインターフェースの画像は、ディスプレイ装置720に表示される。音楽プレイヤアプリケーションは、ボタンコントロール732〜740を含む。そしてそれは、領域722〜730にそれぞれ対応するディスプレイ装置720のエリアにおいて表示される。音楽プレイヤアプリケーションはまた、ボタンコントロール742〜750を含む。そしてそれは、領域722〜730にそれぞれ対応するディスプレイ装置720のエリアにおいても表示される。
【0060】
ボタンコントロール732〜750は、音楽プレイヤアプリケーションのコントロールに使用してよい。例えば、ボタン746は、プレイリスト755において目下選択される曲(インジケータ760は、プレイリスト755において目下選択された曲を示す)をプレイするために用いてよいプレイボタンである。ボタンコントロール742〜744および748〜750は、目下プレイしている曲を、それぞれ、巻き戻し、休止、停止および早送りするために用いてよい。ボタンコントロール732〜734は、インジケータ760をそれぞれ上または下に移動することによって、プレイリスト755の別の曲を選択するために用いてよい。ボタンコントロール736〜738は、再生ボリュームをそれぞれ減少させるかまたは増加させるために用いてよい。ボタンコントロール740は、例えば、選択された曲をプレイするために用いてよく、または、選択された曲について詳細を表示するために用いてよい。
【0061】
図7に示すように、各領域722〜730は、複数のコントロールを含む。例えば、領域726は、コントロール746およびコントロール736を含む。カメラ710が領域726においてユーザーの指を検出する場合、それは、ユーザーがコントロール736またはコントロール746のいずれを選択しようとしたのかについて曖昧でよい。この曖昧性を回避するために、ユーザーインターフェースは、各領域が1つのコントロールのみを含むように設計されてよい。加えて、ユーザーインターフェースは、双方向のはずでない偽のタッチエリアのボタン、スクロールバーまたは他のコントロールと視覚的に同様である図形を配置することを回避するように設計されてよい。
【0062】
照明器の複数セットを使用するアプローチは、同じ領域に複数コントロールを有することをサポートするために用いてよい。例えば、第1のLEDペア770〜775は、ボタンコントロール732〜740に対応するディスプレイ装置720のエリアを照らしてよい。そして、第2のLEDペア780〜785は、ボタンコントロール742〜750に対応するディスプレイ装置720のエリアを照らしてよい。LEDペア770〜775およびLEDペア780〜785は、時間を交互に照らされてよい。そのため、LED770〜775が照らされる間、カメラ710は第1のカメラ画像を捕える。そして、LED780〜785が照らされる間、カメラ710は第2のカメラ画像を捕える。
【0063】
どのカメラ画像に対象物が検出されるかに応じて、コンピューティング装置240は、ユーザーが、コントロール732〜740のうちの1つ、またはコントロール742〜750のうちの1つ、のいずれを選択しているかどうか決定してよい。例えば、LED780〜785が照らされるときに対象物が領域724において検出される場合、コンピューティング装置240は、コントロール744と関連した休止コマンドを識別して実行してよい。別の実施例として、LED770〜775が照らされるときに対象物が領域728において検出される場合、コンピューティング装置240は、コントロール738と関連したボリュームコマンドを識別して実行してよい。いくつかの実施例において、ディスプレイ装置720の2つ以上のエリアを照らすために、2ペア以上のLEDが用いられてよい。
【0064】
図8は、複数の照明器のペアを含むシステム800用のアクティブタッチエリアを示す。システム800は、LED810〜820を含む。そしてそれは、照らされるときに、アクティブタッチエリア825を生じさせる。カメラ850によって捕えられる画像をともなうシーケンスで、LED810〜820は、LED830〜840と交互の時間に照らされてよい。LED830〜840の照明は、第2のアクティブタッチエリア(図示せず)を生じさせてよい。そしてそれは、アクティブタッチエリア825よりも上方に配置される。捕えられたカメラ画像は、LED810〜820が照らされて、かつLED830〜840が照らされない状態における第1の画像セット、および、LED830〜840が照らされて、かつLED810〜820が照らされない状態における第2の画像セット、に結びついてよい。第1の画像セットは、対象物がアクティブタッチエリア825の範囲内で検出されるかどうか決定するために処理されてよい。第2の画像セットは、対象物が第2のアクティブタッチエリアの範囲内で検出されるかどうか決定するために処理されてよい。対象物が第2のアクティブタッチエリアの範囲内で検出されるときに、検出対象物の変化は、認識されたジェスチャが第2のアクティブタッチエリアにおいて実行されるかどうか決定するためにトラッキングされてよい。
【0065】
図9は、ディスプレイ装置907のコーナーに置かれるカメラ905を含むシステム900を示す。カメラ905は、ディスプレイ装置907の左上コーナー(例えば。ここでディスプレイ装置907の左側部は、ディスプレイ装置907の上側部と交差する。)に置かれる。カメラ905がディスプレイ装置907のコーナーに置かれる構成を使用することによって、ユーザーインターフェース・コントロールは、カメラ905と反対の2つの側部に沿って配置されてよい。(例えば、図9に示すように、カメラは、ディスプレイ装置907の左上コーナーに置かれる。ユーザーインターフェース・コントロール920〜924は、ディスプレイ装置907の右端縁に沿って並んで置かれる。ユーザーインターフェース・コントロール924〜928は、ディスプレイ装置907の下端縁に沿って並んで置かれる。)ユーザーインターフェース・コントロール920〜928は、領域910〜918にそれぞれ対応する。領域910〜918は、カメラ905の視野を分ける。
【0066】
図9に示すように、卵型のインターフェース・コントロールを使用することによって、コントロールは、対応する領域の内側に適合してよい。他のタイプのコントロール形状は、システム900で使用するカメラおよび領域の構成を使用するときに、対応する領域の範囲内で一般にうまく適合しなくてよい。例えば、図10は、矩形形状のコントロール1001〜1009が使われることを除いては、システム900と同様であるシステム1000を示す。コントロール1001〜1009は、カメラ1020の視野を分ける領域1010〜1018に対応する。矩形形状のコントロール1001〜1009のいくつかは、省略された部分1022〜1028によって示すように、対応する領域1010〜1018の範囲内で適合しない。
【0067】
システム900の構成は、垂直スクロールバーコントロールを考慮に入れてよい。例えば、図11は、カメラ1105がディスプレイ装置1107の左上コーナーに置かれるという点で、システム900と同様であるシステム1100を示す。領域1110〜1115は、カメラ1105の視野を分ける。スクロールバーコントロール1121は、領域1110に対応するディスプレイ装置1107の領域内にある。領域1110は、それが領域1111〜1115の各々よりも大きいくサイズ設定されて、そして、スクロールバーコントロール1121の高さを収容するためにサイズ設定される。スクロールバーコントロール1121は、プレイリスト1123から曲を選択するために上下に移動してよいスライダ1122を含む。インジケータ1124は、プレイリスト1123内の目下選択された曲を示す。ボタンコントロール1131〜1135は、早送り、停止、プレイ、休止、または、巻き戻し、にそれぞれ使用されてよい。
【0068】
システム900またはシステム1100において使われるような構成を使用するときに、所望のタッチエリアおよび偽のタッチエリアは、定義されてよい。例えば、図12は、ディスプレイ装置1210の左上コーナーに置かれるカメラ1205を含むシステム1200を示す。所望のタッチエリア1220は、カメラ1205の視野およびディスプレイ装置1210の交差の最下部および右側部で定義されてよい。所望のタッチエリア1220の上方または左方に位置するカメラ1205の視野のエリアは、偽のタッチエリア1230として定義されてよい。ユーザーインターフェースを設計するときに、コントロールを所望のタッチエリア1220内に配置すること、および、コントロールまたはコントロールに似た図形を、偽のタッチエリア1230内に配置することを回避することは、望ましくてよい。
【0069】
図13は、アクティブタッチエリアを定義するシステム1300を示す。システム1300は、ディスプレイ装置1307の左上コーナーに置かれるカメラ1305を含む。LED1310、1315は、アクティブタッチエリア1320を定義するために照らされてよい。アクティブタッチエリア1320に対応するディスプレイ装置1307の領域におけるカメラ1305の視野内の対象物は、認識されてよい。一方、アクティブタッチエリア1320の外側でカメラ1305の視野内に位置する対象物は、無視されてよい。しかしながら、対象物は、LED1330〜1335を照らすことによって、ディスプレイ装置1307の中央に(例えば、アクティブタッチエリア1320の外側で)検出されてよい。例えば、アプリケーションがジェスチャ認識モードにある間、対象物は、ディスプレイ装置1307の中央に検出されてよい。ジェスチャ認識モードにおいて、カメラ画像は、領域へのカメラ1305の視野のセグメンテーションなしで処理されてよい。(例えば、ジェスチャが視野のどこで実行されたかに関係なく、ジェスチャは認識されてよい。)
【0070】
図14は、ユーザー入力コマンドを決定して、カメラトラッキングシステムを使用するアプリケーションをコントロールする方法1400の実施例を示すフローチャートである。便宜のために、図2に関して記述される特定のコンポーネントは、プロセス1400を実行するものとして参照される。しかしながら、同様の方法論は、システムの構造を定義するために別々のコンポーネントが用いられるか、または、コンポーネントの中で機能性が異なって分配される、他の実施例において適用されてよい。
【0071】
コンピューティング装置240は、カメラによって捕えられる画像をアクセスする(1410)。例えば、コンピューティング装置240は、カメラ210が1つ以上の画像を捕えて、そして、カメラ210から1つ以上の画像を受け入れるために、カメラ210をコントロールしてよい。コンピューティング装置240はまた、記憶媒体から1つ以上の画像にアクセスしてよい。コンピューティング装置240は、画像に連続的にアクセスしてよく、または、システム200によって受け入れられる入力コマンドに応じて画像にアクセスしてよい。
【0072】
コンピューティング装置240は、カメラの視野の範囲内で複数の定義された領域の中から、アクセスした画像が位置する範囲内で検出される対象物の領域を決定する(1420)。例えば、図1に関して、コンピューティング装置240は、カメラ110によって捕えられる画像における対象物を検出してよく、そして、領域112〜116の中から、その対象物が配置される領域を決定してよい。
【0073】
いくつかの実施例において、コンピューティング装置240は、アクセスした画像の範囲内で対象物を検出して、そして、アクセスした画像の範囲内で検出対象物の位置を決定する。画像の範囲内で対象物を検出して、検出対象物の位置を決定するいかなる技術も、用いられてよい。コンピューティング装置240は、決定した位置を、カメラの視野の範囲内の複数の定義された領域と比較して、その比較結果に基づいて、検出対象物が配置される領域を識別する。例えば、コンピューティング装置240は、アクセスした画像における検出対象物の位置座標(例えばピクセル位置)を、アクセスされたカメラ画像の範囲内の定義された領域の定義された位置座標(例えばピクセル位置)のデータと比較する。
【0074】
いくつかの実施例において、コンピューティング装置240は、アクセスした画像を、各々が複数の定義された領域のうちの1つに対応するセグメントに分割する。これらの実施例において、コンピューティング装置240は、セグメントの各々に対して、対象物がセグメントの範囲内にあるかどうか決定するために、セグメントを分析してよい。対象物が特定のセグメントの範囲内にあるという判定に応じて、コンピューティング装置240は、対象物が、特定のセグメントに対応する特定領域の範囲内に配置されると決定する。これらの実施例において、セグメントは、対象物がセグメントの範囲内にあるかどうか決定するために分析される画像の唯一の部分でよい。加えて、コンピューティング装置240は、対象物全体がセグメントの任意の部分の範囲内にあるとき、その対象物がそのセグメントの範囲内にあると決定してよい。
【0075】
コンピューティング装置240は、決定された領域に基づいて、ユーザー入力を決定する(1430)。例えば、インターフェース・コントロールは、決定された領域に対応する位置で表示されてよい。コンピューティング装置240は、決定された領域をインターフェース・コントロールにマップしてよく、そして、ユーザーがインターフェース・コントロールを活性化するために入力を提供されたと決定してよい。
【0076】
いくつかの実施例において、ジェスチャは、一連の画像の範囲内で検出される対象物の位置に基づいて検出されてよく、そして、ユーザー入力コマンドは、認識されたジェスチャに基づいて決定されてよい。例えば、「スワイプ」ユーザー入力は、検出されてよく、そして、「ステーション変更」または「次の画像」ユーザー入力は、認識されたスワイプジェスチャに基づいて決定されてよい。
【0077】
コンピューティング装置240は、決定されたユーザー入力に基づいて、アプリケーションをコントロールする(1440)。例えば、コンピューティング装置240は、決定されたユーザー入力に対応するアプリケーションの範囲内で、オペレーションを始動させてよい。この実施例では、決定されたユーザー入力がインターフェース・コントロールの活性化(例えばインターフェース・ボタンの押圧)であるときに、コンピューティング装置240は、インターフェース・コントロールの活性化と関連するオペレーションを実行するために、アプリケーションをコントロールする。
【0078】
図15は、カメラトラッキングシステムにおけるユーザー入力コマンドを決定する方法1500の他の実施例を示すフローチャートである。便宜のために、図2に関して記述される特定のコンポーネントは、プロセス1500を実行するものとして参照される。しかしながら、同様の方法論は、システムの構造を定義するために別々のコンポーネントが用いられるか、または、コンポーネントの中で機能性が異なって分配される、他の実施例において適用されてよい。
【0079】
コンピューティング装置240は、カメラによって捕えた画像を、第1のユーザーインターフェース・コントロールに対応する第1領域、および、第2のユーザーインターフェース・コントロールに対応する第2領域に分割する。ここで、画像の第1領域は、画像の第2領域とは異なる(1510)。例えば、図1に関して、コンピューティング装置240は、カメラ110によって捕えた領域を、領域112〜116に分割してよい。ここで、領域112はコントロール120に対応し、そして、領域116はコントロール122に対応する。
【0080】
コンピューティング装置240は、画像の分割された第1領域の分析に基づいて、対象物が、画像の第1領域の範囲内にあるかどうか決定する(1520)。例えば、図1に関して、カメラ画像が捕えられた間、ユーザーがディスプレイ装置105の領域112にタッチしていたと仮定する。例えば、カメラ画像のピクセルを、バイナリイメージを発生するための輝度閾値と比較することによって、そして、バイナリイメージの範囲内のピクセルを、1つ以上の小塊へ集めることによって、ユーザーの指は、検出されてよい。小塊の重心は、対応する検出対象物の位置として計算されてよく、そして、検出対象物の位置は、領域112〜116を定義する位置と比較されてよい。この実施例では、コンピューティング装置240は、対象物が領域112の範囲内にあると決定してよい。
【0081】
コンピューティング装置240は、画像の分割された第1領域のみの分析に基づいて、対象物が画像の第1領域の範囲内にあるかどうか決定してよい。例えば、図1の実施例において、領域114〜116ではなく領域112が、分析されるかもしれない。コンピューティング装置240は、対象物が画像の第1領域の任意の部分の範囲内にあるかどうか決定してよい。
【0082】
コンピューティング装置240は、画像の分割された第2領域の分析に基づいて、対象物が画像の第2領域の範囲内にあるかどうか決定する(1530)。参照番号1520に関して上記の実施例を使用して、コンピューティング装置240は、対象物が領域116において検出されないと決定してよい。
【0083】
第1の画像に対する処理と同様に、コンピューティング装置240は、画像の分割された第2領域のみの分析に基づいて、対象物が画像の第2領域の範囲内にあるかどうか決定してよい。例えば、図1の実施例において、領域112〜114ではなく領域116が、分析されるかもしれない。コンピューティング装置240は、対象物が画像の第2領域の任意の部分の範囲内にあるかどうか決定してよい。
【0084】
対象物が画像の第1領域の範囲内にあるという判定に応じて、コンピューティング装置240は、第1のユーザーインターフェース・コントロールの活性化を検出して、そして、第1のユーザーインターフェース・コントロールの活性化と関連した第1のオペレーションを始動させる(1540)。上記実施例において、例えば、対象物が図1の領域112において検出されると、コンピューティング装置240は、「戻る」ボタンコントロール120の活性化を検出してよい。「以前の画像」コマンドは、決定されて、実行されてよい。それにより、画像エリア126におけるサムネイル128aの表示に、そして、サムネイル128aよりも上方のインジケータ130の位置決めに、結びつく。
【0085】
コンピューティング装置240は、対象物が位置する画像の第1領域の一部に関係なく、対象物が画像の第1領域の範囲内にあるという判定に応じて、第1のユーザーインターフェース・コントロールの活性化を検出してよい。例えば、図1の実施例において、対象物が領域112の範囲内の任意の場所において検出される場合、「戻る」ボタンコントロールは、活性化されてよい。
【0086】
対象物が画像の第2領域の範囲内にあるという判定に応じて、コンピューティング装置240は、第2のユーザーインターフェース・コントロールの活性化を検出して、そして、第2のユーザーインターフェース・コントロールの活性化と関連した第2のオペレーションを始動させる(1550)。上記実施例において、対象物が図1の領域112における代わりに領域116において検出されると仮定する。コンピューティング装置240は、対応する「進む」ボタンコントロール122の活性化を検出してよい。「次の画像」コマンドは、決定されて実行されてよい。それにより、画像エリア126におけるサムネイル128cの表示に、そして、サムネイル128cよりも上方のインジケータ130の位置決めに、結びつく。
【0087】
図16は、例示的なコンピュータ処理システムのコンポーネントを示す。簡潔に、このシステム1600は、プロセッサを含むコンピューティング装置1601を含み、そのプロセッサは、ユーザーがテキスト、数字の入力、またはオプションメニューからの選択をできるように構成されるアプリケーションをコントロールするように構成される。デバイス1601は、サーバ1602およびサーバ1604を含む1つ以上のサーバとネットワーク1606上で電子通信を交わすために構成されてよい。
【0088】
さらに詳細に、コンピューティング装置1601のハードウェア環境は、ユーザーにテキストおよび画像を表示するための表示装置1608、コンピューティング装置1601へのテキストデータおよびユーザーコマンドを入力するためのキーボード1609、表示装置1608に表示される対象物を指し示して、選択して、操作するためのマウス1610、固定ディスクドライブ1611、着脱可能なディスクドライブ1612、テープドライブ1614、ハードコピー出力装置1615、コンピュータ・ネットワーク接続1616、およびデジタル入力装置1617、を含む。
【0089】
表示装置1608は、図形、画像および、コンピューティング装置1601を作動するのに必要なオペレーティングシステム・プログラムと同様に、コンピューティング装置1601により用いられるソフトウェアアプリケーションのためのユーザーインターフェースを含むテキスト、を表示する。ユーザーは、アプリケーションプログラムと同様に、コンピュータ・オペレーティングシステム・プログラムを作動してコントロールするために、コマンドおよびデータを入力するキーボード1609を使用する。マウス1610は、ポインティングデバイスの任意のタイプでよく、ジョイスティック、トラックボール、タッチパッド、または他のポインティングデバイスでよい。ユーザーインターフェースを表示して、ユーザーがテキスト、数字を入力し、またはオプションメニューから選択できるように用いるソフトウェアは、局地的にコンピュータ読み取り可能の記憶媒体(例えば、固定ディスクドライブ1611)に格納される。
【0090】
さらなる実施例において、固定ディスクドライブ1611は、それ自体、多くの物理ドライブユニット(例えば、独立した複数のディスクからなる冗長配列(「RAID」))を含んでよく、あるいは、別個のコンピュータに物理的に位置するディスクドライブファームまたはディスクアレーでよい。この種のコンピュータ読み取り可能のメモリ媒体によって、コンピューティング装置1601は、着脱可能なおよび取り外し不可能な記憶媒体に保存される、コンピュータ実行可能なプロセスステップ、アプリケーションプログラムなどにアクセスしてよい。
【0091】
コンピュータ・ネットワーク接続1616は、モデム接続、Ethernet(登録商標)を含むローカルエリアネットワーク(「LAN」)接続、またはブロードバンド広域ネットワーク(「WAN」)接続(例えばデジタル加入者線(「DSL」)、ケーブル高速ネットワーク間接続、ダイヤルアップ接続、T−1線、T−3線、ファイバーオプティック接続またはサテライト接続)でよい。ネットワーク1606は、LANネットワーク、会社または政府WANネットワーク、インターネットまたは他のネットワークでよい。
【0092】
コンピュータ・ネットワーク接続1616は、有線または無線コネクタでよい。無線コネクタの実施例は、例えば、INFRARED DATA ASSOCIATION(登録商標)(「IrDA(登録商標)」)無線コネクタ、光学無線コネクタ、INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS(登録商標)(「IEEE(登録商標)」)スタンダード802.11無線コネクタ、BLUETOOTH(登録商標)無線コネクタ、直角周波数分割多重送信(「OFDM」)ウルトラ広帯域(「UWB」)無線コネクタ、時間調整ウルトラ広帯域(「TM−UWB」)無線コネクタ、または他の無線コネクタを含む。有線コネクタの実施例は、例えば、IEEE(登録商標)FIREWIRE(登録商標)コネクタ、ユニバーサルシリアルバス(「USB」)コネクタ、シリアルポートコネクタ、パラレルポートコネクタ、または他の有線コネクタを含む。
【0093】
着脱可能なディスクドライブ1612は、コンピューティング装置1601からデータをオフロードするか、またはコンピューティング装置1601へデータをアップロードするために用いる、着脱可能な記憶装置である。取外し可能ディスクドライブ1612は、フロッピーディスクドライブ、IOMEGA(登録商標)ZIP(登録商標)ドライブ、コンパクトディスク読取り専用メモリ(「CD−ROM」)ドライブ、CD−Rドライブ(「CD−R」)、CDリライタブルドライブ(「CD−RW」)、フラッシュメモリ、USBフラッシュドライブ、親指ドライブ、ペンドライブ、鍵ドライブ、高密度デジタル多用途ディスク(「HD−DVD」)光学ディスクドライブ、ブルーレイ光学ディスクドライブ、ホログラフィックデジタルデータストレージ(「HDDS」)光学ディスクドライブ、あるいは、「DVD−R」または「DVD+R」、「DVD−RW」または「DVD+RW」、または「DVD−RAM」のようなさまざまな記録、再書き込み可能なデジタル多用途ディスク(「DVD」)ドライブの任意の1つ、でよい。オペレーティングシステム・プログラム、アプリケーション、およびさまざまなデータ・ファイルはディスクに格納される。そしてそれは、固定ディスクドライブ1611上に、または、着脱可能なディスクドライブ1612用の取り外し可能媒体上に格納される。
【0094】
テープドライブ1614は、コンピューティング装置1601からデータをオフロードするか、またはコンピューティング装置1601上へデータをアップロードするために用いるテープ記憶装置である。テープドライブ1614は、1/4インチ・カートリッジ(「QIC」)、4mmのデジタルオーディオテープ(「DAT」)、8mmのデジタルリニアテープ(「DLT」)ドライブ、または他のタイプのテープでよい。
【0095】
ハードコピー出力装置1615は、オペレーティングシステム・プログラムおよびアプリケーションのための出力機能を提供する。ハードコピー出力装置1615は、有形の出力オブジェクトを発生するプリンタまたは任意の出力装置でよい。そしてそれは、テキストまたは画像データ、あるいは、テキストまたは画像データのグラフィック表現を含む。ハードコピー出力装置1615は、コンピューティング装置1601に直接接続されるものとして図示されているが、これである必要はない。例えば、ハードコピー出力装置は、ネットワークインターフェース(例えば有線または無線ネットワーク)を介して、コンピューティング装置1601に接続されてよい。
【0096】
さらに、コンピューティング装置1601がデスクトップPCとして上述されるにもかかわらず、さらなる実施例において、コンピューティング装置1601は、ラップトップ、ワークステーション、ミッドレンジコンピュータ、メインフレーム、組込みシステム、電話、ハンドヘルドまたはタブレットコンピュータ、PDA、あるいは他のタイプのコンピュータでよい。
【0097】
図17は、図16に示されるコンピュータの内部アーキテクチャを示すブロック図である。ここで、コンピューティング装置1601の例示的な内部アーキテクチャについて説明する。コンピューティング環境は、以下を含む:オペレーティングシステムまたはアプリケーションを含むコンピュータ命令が処理されるコンピュータ中央処理装置(「CPU」)1701;表示装置1608に図形、画像およびテキストを描画するための通信インターフェースおよび処理機能を提供する表示インターフェース1702;キーボード1609に通信インターフェースを提供するキーボードインターフェース1704;マウス1610または等価なポインティングデバイスに通信インターフェースを提供するポインティングデバイスインターフェース1705;デジタル入力装置1617に通信インターフェースを提供するデジタル入力インターフェース1706;ハードコピー出力装置1615に通信インターフェースを提供するハードコピー出力装置インターフェース1708;コンピュータ命令およびデータがコンピュータCPU1701による処理のための揮発性メモリデバイスに格納されるランダムアクセスメモリ(「RAM」)1710;基本的な入出力(「I/O」)、スタートアップ、またはキーボード1609からのキーストロークの受信のような、基本的なシステム機能のための不変の低レベルのシステム・コードまたはデータが、不揮発性メモリデバイスに格納される読取り専用メモリ(「ROM」)1711;オペレーティングシステム1721、アプリケーションプログラム1722(必要に応じて、ユーザー入力アプリケーション1723および他のアプリケーション1724を含む。)、およびデータ・ファイル1725を含むファイルが格納される、記憶装置1720または他の適切なタイプのメモリ(例えば、ランダムアクセスメモリ(「RAM」)、読取り専用メモリ(「ROM」)、プログラマブル読取り専用メモリ(「PROM」)、消去可能プログラマブル読取り専用メモリ(「EPROM」)、電気的消去可能プログラマブル読取り専用メモリ(「EEPROM」)、磁気ディスク、光ディスク、フロッピーディスク、ハードディスク、リムーバブル・カートリッジ、フラッシュドライブ);コンピュータ・ネットワーク接続1616上のネットワーク1606に通信インターフェースを提供するコンピュータ・ネットワーク・インターフェース1716。構成デバイスおよびコンピュータCPU1701は、コンピュータバス1727上の各々と通信する。
【0098】
RAM1710は、ソフトウェアプログラム(例えばオペレーティングシステム・アプリケーションプログラムおよびデバイスドライバ)の実行中にコンピュータCPU1701に迅速なRAM記憶を提供するように、コンピュータバス1727と結びつく。より詳しくは、コンピュータCPU1701は、ソフトウェアプログラムを実行するために、固定ディスクドライブ1611または他の記憶媒体からRAM1710のフィールドに、コンピュータ実行可能なプロセスステップをロードする。データはRAM1710に格納される。ここでデータは、実行中にコンピュータCPU1701によってアクセスされる。
【0099】
コンピューティング装置1601は、オペレーティングシステム1721、アプリケーションプログラム1722(例えば、ワード・プロセッシング、表計算ソフト、プレイゼンテーション、ゲーム、または他のアプリケーション)のためのコンピュータ実行可能なコードを格納する。ユーザーインターフェースを表示して、ユーザーに、上記の実施例を用いてテキスト、数字、またはオプションメニューからの選択を入力できるようにすることが可能であるにもかかわらず、ダイナミックリンクライブラリ(「DLL」)としての、または、インターネット・ウェブ・ブラウザ(例えばMICROSOFT(登録商標)インターネットエクスプローラー・ウェブ・ブラウザ)のような他のアプリケーションプログラムに対するプラグインとしての、現在の開示に従う機能を実施例することも可能である。
【0100】
コンピュータCPU1701は、多くの高性能コンピュータプロセッサのうちの1台である。そしてそれは、INTEL(登録商標)またはAMD(登録商標)プロセッサ、POWERPC(登録商標)プロセッサ、MIPS(登録商標)縮小命令セットコンピュータ(「RISC」)プロセッサ、SPARC(登録商標)プロセッサ、ACORN(登録商標)RISC Machine(「ARM(登録商標)」)アーキテクチャ・プロセッサ、HP ALPHASERVER(登録商標)プロセッサ、またはメインフレーム用の所有権のあるコンピュータプロセッサ、を含む。追加的な装置において、コンピュータCPU1701は、複数の演算処理装置である。そしてそれは、高性能ワークステーションおよびサーバにおいて見つけられるマルチプルCPU構成、またはメインフレームにおいて見つけられるマルチプルスケーラブル演算処理装置、を含む。
【0101】
オペレーティングシステム1721は、MICROSOFT(登録商標)WINDOWS NT(登録商標)/WINDOWS(登録商標)2000/WINDOWS(登録商標)XPワークステーション;WINDOWS NT(登録商標)/WINDOWS(登録商標)2000/WINDOWS(登録商標)XP Server、IBM(登録商標)ワークステーションおよびサーバのためのAIX(登録商標)を含む様々なUNIX(登録商標)風のオペレーティングシステム、SUN(登録商標)ワークステーションおよびサーバのためのSUNOS(登録商標)、INTEL(登録商標)CPUベースのワークステーションおよびサーバのためのLINUX(登録商標)、HP(登録商標)ワークステーションおよびサーバのためのHP UX WORKLOAD MANAGER(登録商標)、SGI(登録商標)ワークステーションおよびサーバのためのIRIX(登録商標)、ディジタルイクイップメント社のコンピュータのためのVAX/VMS、HP ALPHASERVER(登録商標)ベースのコンピュータのためのOPENVMS(登録商標)、POWERPC(登録商標)ベースのワークステーションおよびサーバのためのMAC OS(登録商標)X;SYMBIAN OS(登録商標)、WINDOWS MOBILE(登録商標)またはWINDOWS CE(登録商標)、PALM(登録商標)、NOKIA(登録商標)OS(「NOS」)、OSE(登録商標)、EPOC(登録商標)、または、コンピュータまたは組込みシステムのための所有権のあるオペレーティングシステム、でよい。オペレーティングシステム1721に対するアプリケーション開発プラットフォームまたはフレームワークは:BINARY RUNTIME ENVIRONMENT FOR WIRELESS(登録商標)(「BREW(登録商標)」);Javaプラットフォーム、マイクロエディション(「Java ME」)またはJava2プラットフォーム、マイクロエディション(「J2ME(登録商標)」);PYTHON(商標)、FLASH LITE(登録商標)、またはMICROSOFT(登録商標)NET Compact、でよい。
【0102】
図16、17は、ユーザーがテキスト、数字、またはオプションメニューからの選択を入力できるように構成されるアプリケーションのコントロールを達成するために構成される、プログラムコードまたはプログラムまたはプロセスステップを実行するコンピューティング装置の1つのありうる実施例を示すけれども、他のタイプのコンピュータが同様に用いられてよい。
【0103】
多くの実施例は、記述された。それにもかかわらず、さまざまな修正が、開示の趣旨および範囲から逸脱することなく、作成されてよいことが理解されよう。したがって、、他の実施例は、以下の請求項の範囲内にある。
【特許請求の範囲】
【請求項1】
電子デバイスであって:
面を横切る画像を捕えるために向きを定められるカメラ;および
オペレーションを実行するために構成される演算処理装置を含み;
前記オペレーションは:
前記カメラによって捕えられる画像にアクセスするステップ;
前記カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する1つのインターフェース・コントロールに対応する、複数の領域を識別するステップ;
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定するステップ;
前記決定した領域に対応する前記1つのインターフェース・コントロールに基づくユーザー入力を決定するステップ;および
前記決定したユーザー入力に基づいてアプリケーションをコントロールするステップ;
を含む、電子デバイス。
【請求項2】
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定する前記ステップは:
前記アクセスした画像の範囲内で対象物を検出するステップ;
前記アクセスした画像の範囲内で検出対象物の位置を決定するステップ;
前記決定した位置を、前記カメラの視野の範囲内で前記複数の定義された領域と比較するステップ;および
比較結果に基づいて、前記検出対象物が位置する領域を識別するステップ;
を含む、請求項1に記載の電子デバイス。
【請求項3】
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定する前記ステップは:
前記アクセスした画像を、各々前記複数の定義された領域のうちの1つに対応するセグメントに分割するステップ;
前記セグメントの各々に対して、対象物が前記セグメントの範囲内にあるかどうか決定するために前記セグメントを分析するステップ;および
対象物が特定のセグメントの範囲内にあるという決定に応じて、前記対象物が、前記特定のセグメントに対応する特定の領域の範囲内に位置することを決定するステップ;
を含む、請求項1に記載の電子デバイス。
【請求項4】
前記対象物が、前記特定のセグメントに対応する特定の領域の範囲内に位置することを決定する前記ステップは、前記対象物の全体が前記特定の領域の任意の部分の範囲内にあることを決定するステップを含む、請求項3に記載の電子デバイス。
【請求項5】
前記セグメントは、対象物が前記セグメントの範囲内にあるかどうか決定するために分析される前記画像の唯一の部分である、請求項3に記載の電子デバイス。
【請求項6】
グラフィカルユーザーインターフェースを表示するために構成される表示画面をさらに含み、前記グラフィカルユーザーインターフェースは、前記グラフィカルユーザーインターフェースの第1位置で表示される第1のユーザーインターフェース・コントロール、および、前記グラフィカルユーザーインターフェースの第2位置で表示される第2のユーザーインターフェース・コントロールを含み、前記グラフィカルユーザーインターフェースの前記第2位置は、前記グラフィカルユーザーインターフェースの前記第1位置とは異なり、
前記カメラは、前記表示画面の表面を横切る画像を捕えるために向きを定められ、
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定する前記ステップは、対象物が前記第1のユーザーインターフェース・コントロールに対応する前記画像の第1領域の範囲内にあるかどうか決定するステップ、および、対象物が前記第2のユーザーインターフェース・コントロールに対応する前記画像の第2領域の範囲内にあるかどうか決定するステップを含み、
前記決定した領域に対応する前記1つのインターフェース・コントロールに基づくユーザー入力を決定する前記ステップ、および前記決定したユーザー入力に基づいてアプリケーションをコントロールする前記ステップは、
対象物が前記画像の第1領域の範囲内にあるという判定に応じて、前記第1のユーザーインターフェース・コントロールの活性化を検出するステップ、および、前記第1のユーザーインターフェース・コントロールの活性化と関連した第1のオペレーションを始動するステップ、ならびに
対象物が前記画像の第2領域の範囲内にあるという判定に応じて、前記第2のユーザーインターフェース・コントロールの活性化を検出するステップ、および、前記第2のユーザーインターフェース・コントロールの活性化と関連した第2のオペレーションを始動するステップ、
を含む、請求項1に記載の電子デバイス。
【請求項7】
オペレーションを実行するために構成される前記演算処理装置は、前記第1のユーザーインターフェース・コントロールの大きさおよび形状を前記画像の前記第1領域の範囲内に適合するように、そして、前記第2のユーザーインターフェース・コントロールの大きさおよび形状を前記画像の前記第2領域の範囲内に適合するように、前記表示画面をコントロールするステップ、をさらに含む、請求項6に記載の電子デバイス。
【請求項8】
前記第1のユーザーインターフェース・コントロールは、第1のユーザーインターフェース・ボタンであり;そして
前記第1のユーザーインターフェース・コントロールの活性化を検出する前記ステップ、および前記第1のユーザーインターフェース・コントロールの活性化と関連した第1のオペレーションを始動する前記ステップは、前記第1のユーザーインターフェース・ボタンの押圧を検出するステップ、および、前記第1のユーザーインターフェース・ボタンの押圧と関連した第1のオペレーションを始動するステップ、を含む、
請求項6に記載の電子デバイス。
【請求項9】
前記第1のユーザーインターフェース・コントロールは、前記カメラの視野と交差する方向において前記画像の前記第1領域にわたる第1のスライダコントロールであり;そして
前記第1のユーザーインターフェース・コントロールの活性化を検出する前記ステップ、および前記第1のユーザーインターフェース・コントロールの活性化と関連した第1のオペレーションを始動する前記ステップは、
対象物が前記画像の前記第1領域の範囲内にあるという判定に応じて、前記第1のスライダコントロールの係合を検出するステップ;
前記対象物の位置を、前記第1のスライダコントロールに沿って前記画像の前記第1領域の範囲内で決定するステップ;および
前記第1のスライダコントロールの係合と関連する、そして、前記第1のスライダコントロールに沿って前記画像の前記第1領域の範囲内で前記対象物の前記決定した位置を使用する、第1のオペレーションを始動するステップ、
を含む、請求項6に記載の電子デバイス。
【請求項10】
前記画像の前記第1領域および前記画像の前記第2領域と交差する方向において、前記表示画面の前記表面全体を横切ってまっすぐ照らすように向きを定められる発光ダイオードをさらに含む、請求項6に記載の電子デバイス。
【請求項11】
前記発光ダイオードからの光が導かれる、前記画像の前記第1領域の一部における作用エリア、および、前記発光ダイオードからの光がない、前記画像の前記第1領域の残りの部分における偽のエリア、を定義するために、前記発光ダイオードは、前記画像の前記第1領域の前記一部を横切ってまっすぐ照らす、そして、前記第1のユーザーインターフェース・コントロール表示される前記グラフィカルユーザーインターフェースの前記第1位置は、前記画像の前記第1領域の前記作用エリアに対応する、請求項10に記載の電子デバイス。
【請求項12】
対象物が前記画像の前記第1領域の範囲内にあるかどうか決定する前記ステップは、前記画像の前記第1領域の前記作用エリアにおいて対象物を検出して、かつ前記画像の前記第1領域の前記偽のエリアにおいて対象物を無視するために、照らされた対象物が前記画像の前記第1領域の範囲内にあるかどうか決定するステップ、を含む、請求項11に記載の電子デバイス。
【請求項13】
前記発光ダイオードは、前記表示画面よりも上の第1のエリアを照らすために構成される第1の発光ダイオードである、そして、第2の発光ダイオードをさらに含み、前記第2の発光ダイオードは、前記表示画面の前記表面を横切ってまっすぐ照らすように向きを定められて、前記第1の発光ダイオードによって照らされる前記表示画面よりも上の前記第1のエリアとは異なる前記表示画面よりも上の第2のエリアを照らすために構成される、請求項12に記載の電子デバイス。
【請求項14】
前記第2の発光ダイオードによって照らされる前記表示画面よりも上の前記第2領域は、ジェスチャ入力領域を定義する、そして、オペレーションを実行するために構成される前記演算処理装置は、前記カメラによって捕えられる複数の画像の分析に基づいて前記第2のエリアの範囲内でジェスチャを検出するステップをさらに含む、請求項13に記載の電子デバイス。
【請求項15】
オペレーションを実行するために構成される前記演算処理装置は:
前記カメラによって捕えられる画像について順番に交互の時間に照らして、その結果、前記カメラによって捕えられる前記画像を、前記第1の発光ダイオードが照らされて、かつ前記第2の発光ダイオードが照らされない第1の画像セット、および、前記第2の発光ダイオードが照らされて、かつ前記第1の発光ダイオードが照らされない第2の画像セット、とするために、前記第1の発光ダイオードおよび前記第2の発光ダイオードをコントロールするステップ;
前記第1のユーザーインターフェース・コントロールの活性化を検出するために、前記第1の発光ダイオードが照らされて、かつ前記第2の発光ダイオードが照らされない前記第1の画像セットを処理するステップ;および
前記第2のエリアの範囲内でジェスチャを検出するために、前記第1の発光ダイオードが照らされず、かつ前記第2の発光ダイオードが照らされる前記第2の画像セットを処理するステップ、
をさらに含む、請求項14に記載の電子デバイス。
【請求項16】
オペレーションを実行するために構成される前記演算処理装置は、前記画像の複数の定義された領域以外の画像の部分に位置する対象物が無視されるように、前記画像の複数の定義された領域以外の画像の部分を無視するステップ、をさらに含む、請求項1に記載の電子デバイス。
【請求項17】
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定する前記ステップは、前記カメラによって捕えられる複数の画像の分析に基づいて、前記画像の前記領域の範囲内で対象物によるジェスチャの実行を検出するステップを含み;
ユーザー入力を決定する前記ステップは、前記検出したジェスチャに対応するユーザー入力コマンドを決定するステップを含み;そして
前記決定したユーザー入力に基づいてアプリケーションをコントロールする前記ステップは、前記決定したユーザー入力コマンドに対応する第1のオペレーションを始動させるステップを含む、
請求項1に記載の電子デバイス。
【請求項18】
前記カメラによって捕えられる複数の画像の分析に基づいて、前記画像の前記領域の範囲内で対象物によるジェスチャを検出する前記ステップは、前記画像の前記領域の範囲内でのスワイプジェスチャの実行、および前記スワイプジェスチャの方向を検出するステップを含み;
前記検出したジェスチャに対応するユーザー入力コマンドを決定する前記ステップは、前記スワイプジェスチャの前記検出した方向における前記スワイプジェスチャに対応するユーザー入力コマンドを決定するステップを含む、
請求項17に記載の電子デバイス。
【請求項19】
少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサにオペレーションを実行させる実行可能命令によってコード化される少なくとも1つのコンピュータ読み取り可能の記憶媒体であって、前記オペレーションは:
面を横切る画像を捕えるために向きを定められるカメラによって捕えられる画像にアクセスするステップ;
前記カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する1つのインターフェース・コントロールに対応する、複数の領域を識別するステップ;
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定するステップ;
前記決定した領域に対応する前記1つのインターフェース・コントロールに基づくユーザー入力を決定するステップ;および
前記決定したユーザー入力に基づいてアプリケーションをコントロールするステップ;
を含む、コンピュータ読み取り可能の記憶媒体。
【請求項20】
方法であって:
面を横切る画像を捕えるために向きを定められるカメラによって捕えられる画像にアクセスするステップ;
前記カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する1つのインターフェース・コントロールに対応する、複数の領域を識別するステップ;
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定するステップ;
前記決定した領域に対応する前記1つのインターフェース・コントロールに基づくユーザー入力を決定するステップ;および
前記決定したユーザー入力に基づいてアプリケーションをコントロールするステップ;
を含む、方法。
【請求項1】
電子デバイスであって:
面を横切る画像を捕えるために向きを定められるカメラ;および
オペレーションを実行するために構成される演算処理装置を含み;
前記オペレーションは:
前記カメラによって捕えられる画像にアクセスするステップ;
前記カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する1つのインターフェース・コントロールに対応する、複数の領域を識別するステップ;
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定するステップ;
前記決定した領域に対応する前記1つのインターフェース・コントロールに基づくユーザー入力を決定するステップ;および
前記決定したユーザー入力に基づいてアプリケーションをコントロールするステップ;
を含む、電子デバイス。
【請求項2】
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定する前記ステップは:
前記アクセスした画像の範囲内で対象物を検出するステップ;
前記アクセスした画像の範囲内で検出対象物の位置を決定するステップ;
前記決定した位置を、前記カメラの視野の範囲内で前記複数の定義された領域と比較するステップ;および
比較結果に基づいて、前記検出対象物が位置する領域を識別するステップ;
を含む、請求項1に記載の電子デバイス。
【請求項3】
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定する前記ステップは:
前記アクセスした画像を、各々前記複数の定義された領域のうちの1つに対応するセグメントに分割するステップ;
前記セグメントの各々に対して、対象物が前記セグメントの範囲内にあるかどうか決定するために前記セグメントを分析するステップ;および
対象物が特定のセグメントの範囲内にあるという決定に応じて、前記対象物が、前記特定のセグメントに対応する特定の領域の範囲内に位置することを決定するステップ;
を含む、請求項1に記載の電子デバイス。
【請求項4】
前記対象物が、前記特定のセグメントに対応する特定の領域の範囲内に位置することを決定する前記ステップは、前記対象物の全体が前記特定の領域の任意の部分の範囲内にあることを決定するステップを含む、請求項3に記載の電子デバイス。
【請求項5】
前記セグメントは、対象物が前記セグメントの範囲内にあるかどうか決定するために分析される前記画像の唯一の部分である、請求項3に記載の電子デバイス。
【請求項6】
グラフィカルユーザーインターフェースを表示するために構成される表示画面をさらに含み、前記グラフィカルユーザーインターフェースは、前記グラフィカルユーザーインターフェースの第1位置で表示される第1のユーザーインターフェース・コントロール、および、前記グラフィカルユーザーインターフェースの第2位置で表示される第2のユーザーインターフェース・コントロールを含み、前記グラフィカルユーザーインターフェースの前記第2位置は、前記グラフィカルユーザーインターフェースの前記第1位置とは異なり、
前記カメラは、前記表示画面の表面を横切る画像を捕えるために向きを定められ、
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定する前記ステップは、対象物が前記第1のユーザーインターフェース・コントロールに対応する前記画像の第1領域の範囲内にあるかどうか決定するステップ、および、対象物が前記第2のユーザーインターフェース・コントロールに対応する前記画像の第2領域の範囲内にあるかどうか決定するステップを含み、
前記決定した領域に対応する前記1つのインターフェース・コントロールに基づくユーザー入力を決定する前記ステップ、および前記決定したユーザー入力に基づいてアプリケーションをコントロールする前記ステップは、
対象物が前記画像の第1領域の範囲内にあるという判定に応じて、前記第1のユーザーインターフェース・コントロールの活性化を検出するステップ、および、前記第1のユーザーインターフェース・コントロールの活性化と関連した第1のオペレーションを始動するステップ、ならびに
対象物が前記画像の第2領域の範囲内にあるという判定に応じて、前記第2のユーザーインターフェース・コントロールの活性化を検出するステップ、および、前記第2のユーザーインターフェース・コントロールの活性化と関連した第2のオペレーションを始動するステップ、
を含む、請求項1に記載の電子デバイス。
【請求項7】
オペレーションを実行するために構成される前記演算処理装置は、前記第1のユーザーインターフェース・コントロールの大きさおよび形状を前記画像の前記第1領域の範囲内に適合するように、そして、前記第2のユーザーインターフェース・コントロールの大きさおよび形状を前記画像の前記第2領域の範囲内に適合するように、前記表示画面をコントロールするステップ、をさらに含む、請求項6に記載の電子デバイス。
【請求項8】
前記第1のユーザーインターフェース・コントロールは、第1のユーザーインターフェース・ボタンであり;そして
前記第1のユーザーインターフェース・コントロールの活性化を検出する前記ステップ、および前記第1のユーザーインターフェース・コントロールの活性化と関連した第1のオペレーションを始動する前記ステップは、前記第1のユーザーインターフェース・ボタンの押圧を検出するステップ、および、前記第1のユーザーインターフェース・ボタンの押圧と関連した第1のオペレーションを始動するステップ、を含む、
請求項6に記載の電子デバイス。
【請求項9】
前記第1のユーザーインターフェース・コントロールは、前記カメラの視野と交差する方向において前記画像の前記第1領域にわたる第1のスライダコントロールであり;そして
前記第1のユーザーインターフェース・コントロールの活性化を検出する前記ステップ、および前記第1のユーザーインターフェース・コントロールの活性化と関連した第1のオペレーションを始動する前記ステップは、
対象物が前記画像の前記第1領域の範囲内にあるという判定に応じて、前記第1のスライダコントロールの係合を検出するステップ;
前記対象物の位置を、前記第1のスライダコントロールに沿って前記画像の前記第1領域の範囲内で決定するステップ;および
前記第1のスライダコントロールの係合と関連する、そして、前記第1のスライダコントロールに沿って前記画像の前記第1領域の範囲内で前記対象物の前記決定した位置を使用する、第1のオペレーションを始動するステップ、
を含む、請求項6に記載の電子デバイス。
【請求項10】
前記画像の前記第1領域および前記画像の前記第2領域と交差する方向において、前記表示画面の前記表面全体を横切ってまっすぐ照らすように向きを定められる発光ダイオードをさらに含む、請求項6に記載の電子デバイス。
【請求項11】
前記発光ダイオードからの光が導かれる、前記画像の前記第1領域の一部における作用エリア、および、前記発光ダイオードからの光がない、前記画像の前記第1領域の残りの部分における偽のエリア、を定義するために、前記発光ダイオードは、前記画像の前記第1領域の前記一部を横切ってまっすぐ照らす、そして、前記第1のユーザーインターフェース・コントロール表示される前記グラフィカルユーザーインターフェースの前記第1位置は、前記画像の前記第1領域の前記作用エリアに対応する、請求項10に記載の電子デバイス。
【請求項12】
対象物が前記画像の前記第1領域の範囲内にあるかどうか決定する前記ステップは、前記画像の前記第1領域の前記作用エリアにおいて対象物を検出して、かつ前記画像の前記第1領域の前記偽のエリアにおいて対象物を無視するために、照らされた対象物が前記画像の前記第1領域の範囲内にあるかどうか決定するステップ、を含む、請求項11に記載の電子デバイス。
【請求項13】
前記発光ダイオードは、前記表示画面よりも上の第1のエリアを照らすために構成される第1の発光ダイオードである、そして、第2の発光ダイオードをさらに含み、前記第2の発光ダイオードは、前記表示画面の前記表面を横切ってまっすぐ照らすように向きを定められて、前記第1の発光ダイオードによって照らされる前記表示画面よりも上の前記第1のエリアとは異なる前記表示画面よりも上の第2のエリアを照らすために構成される、請求項12に記載の電子デバイス。
【請求項14】
前記第2の発光ダイオードによって照らされる前記表示画面よりも上の前記第2領域は、ジェスチャ入力領域を定義する、そして、オペレーションを実行するために構成される前記演算処理装置は、前記カメラによって捕えられる複数の画像の分析に基づいて前記第2のエリアの範囲内でジェスチャを検出するステップをさらに含む、請求項13に記載の電子デバイス。
【請求項15】
オペレーションを実行するために構成される前記演算処理装置は:
前記カメラによって捕えられる画像について順番に交互の時間に照らして、その結果、前記カメラによって捕えられる前記画像を、前記第1の発光ダイオードが照らされて、かつ前記第2の発光ダイオードが照らされない第1の画像セット、および、前記第2の発光ダイオードが照らされて、かつ前記第1の発光ダイオードが照らされない第2の画像セット、とするために、前記第1の発光ダイオードおよび前記第2の発光ダイオードをコントロールするステップ;
前記第1のユーザーインターフェース・コントロールの活性化を検出するために、前記第1の発光ダイオードが照らされて、かつ前記第2の発光ダイオードが照らされない前記第1の画像セットを処理するステップ;および
前記第2のエリアの範囲内でジェスチャを検出するために、前記第1の発光ダイオードが照らされず、かつ前記第2の発光ダイオードが照らされる前記第2の画像セットを処理するステップ、
をさらに含む、請求項14に記載の電子デバイス。
【請求項16】
オペレーションを実行するために構成される前記演算処理装置は、前記画像の複数の定義された領域以外の画像の部分に位置する対象物が無視されるように、前記画像の複数の定義された領域以外の画像の部分を無視するステップ、をさらに含む、請求項1に記載の電子デバイス。
【請求項17】
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定する前記ステップは、前記カメラによって捕えられる複数の画像の分析に基づいて、前記画像の前記領域の範囲内で対象物によるジェスチャの実行を検出するステップを含み;
ユーザー入力を決定する前記ステップは、前記検出したジェスチャに対応するユーザー入力コマンドを決定するステップを含み;そして
前記決定したユーザー入力に基づいてアプリケーションをコントロールする前記ステップは、前記決定したユーザー入力コマンドに対応する第1のオペレーションを始動させるステップを含む、
請求項1に記載の電子デバイス。
【請求項18】
前記カメラによって捕えられる複数の画像の分析に基づいて、前記画像の前記領域の範囲内で対象物によるジェスチャを検出する前記ステップは、前記画像の前記領域の範囲内でのスワイプジェスチャの実行、および前記スワイプジェスチャの方向を検出するステップを含み;
前記検出したジェスチャに対応するユーザー入力コマンドを決定する前記ステップは、前記スワイプジェスチャの前記検出した方向における前記スワイプジェスチャに対応するユーザー入力コマンドを決定するステップを含む、
請求項17に記載の電子デバイス。
【請求項19】
少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサにオペレーションを実行させる実行可能命令によってコード化される少なくとも1つのコンピュータ読み取り可能の記憶媒体であって、前記オペレーションは:
面を横切る画像を捕えるために向きを定められるカメラによって捕えられる画像にアクセスするステップ;
前記カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する1つのインターフェース・コントロールに対応する、複数の領域を識別するステップ;
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定するステップ;
前記決定した領域に対応する前記1つのインターフェース・コントロールに基づくユーザー入力を決定するステップ;および
前記決定したユーザー入力に基づいてアプリケーションをコントロールするステップ;
を含む、コンピュータ読み取り可能の記憶媒体。
【請求項20】
方法であって:
面を横切る画像を捕えるために向きを定められるカメラによって捕えられる画像にアクセスするステップ;
前記カメラの視野の範囲内で定義される、そして、各々、前記面上に位置する1つのインターフェース・コントロールに対応する、複数の領域を識別するステップ;
前記複数の定義された領域の中から、前記アクセスした画像の範囲内で検出される対象物が位置する領域を決定するステップ;
前記決定した領域に対応する前記1つのインターフェース・コントロールに基づくユーザー入力を決定するステップ;および
前記決定したユーザー入力に基づいてアプリケーションをコントロールするステップ;
を含む、方法。
【図1】
【図2】
【図3】
【図4A】
【図4B】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4A】
【図4B】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公表番号】特表2012−505615(P2012−505615A)
【公表日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2011−531259(P2011−531259)
【出願日】平成21年10月13日(2009.10.13)
【国際出願番号】PCT/US2009/060548
【国際公開番号】WO2010/042953
【国際公開日】平成22年4月15日(2010.4.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
2.JAVA
【出願人】(506344941)ジェスチャー テック,インコーポレイテッド (19)
【Fターム(参考)】
【公表日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願日】平成21年10月13日(2009.10.13)
【国際出願番号】PCT/US2009/060548
【国際公開番号】WO2010/042953
【国際公開日】平成22年4月15日(2010.4.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
2.JAVA
【出願人】(506344941)ジェスチャー テック,インコーポレイテッド (19)
【Fターム(参考)】
[ Back to top ]