(57)【特許請求の範囲】
【請求項１】
一つ以上の基準点として使用されることができる表示された要素のためのアプリケーションの出力を表わし、ディスプレイ装置によってレンダリングされたディスプレイ画像を示す、ユーザ・インタフェースを分析すること、
前記アプリケーションの出力を表わす前記ユーザ・インタフェース内の前記表示された要素から前記一つ以上の基準点を選択すること、
前記アプリケーションの出力を表わす前記ユーザ・インタフェース内の前記表示された要素から選択された前記一つ以上の基準点の形状及び位置の記述を、ハンドヘルド装置へ送信すること、
前記一つ以上の基準点を備えるディスプレイ画像の少なくとも一部のカメラ画像を、前記ハンドヘルド装置によって撮像すること、
前記ディスプレイ装置から前記ハンドヘルド装置で受信した前記レンダリングされたディスプレイ画像についての情報に少なくとも部分的に基づいて、前記撮像されたカメラ画像中の前記一つ以上の基準点の位置又は前記ハンドヘルド装置に基づく原点を有する軸に関する角度を決定すること、
少なくとも前記カメラ画像中の前記一つ以上の基準点の前記決定した位置又は角度に基づいて、前記ハンドヘルド装置が向けられている前記ディスプレイ装置上の位置を決定すること、及び、
前記ディスプレイ装置上の前記決定した位置に基づいて、前記アプリケーションを制御すること、
を備える、コンピュータ実装された方法。
【請求項２】
前記制御されているアプリケーションの出力を表わす前記ユーザ・インタフェース内に、前記一つ以上の基準点をレンダリングするように、前記ディスプレイ装置を制御することを更に備える請求項１に記載の方法。
【請求項３】
前記一つ以上の基準点は、第１及び第２の基準点を備える請求項１に記載の方法。
【請求項４】
前記一つ以上の基準点は、第１乃至第４の基準点を備える請求項１に記載の方法。
【請求項５】
複数の異なる種類のディスプレイ装置の中から、前記ディスプレイ装置の種類を決定すること、
複数の異なるフィルタリング技術の中から、前記決定したディスプレイ装置の種類に適切なフィルタリング技術を選択すること、及び、
前記撮像されたカメラ画像に前記選択されたフィルタリング技術を適用すること、
を更に備える請求項１に記載の方法。
【請求項６】
前記一つ以上の基準点は更に、前記ディスプレイ装置の画面の一つ以上のコーナを備える請求項１に記載の方法。
【請求項７】
輝度又は色調の違いに基づいて、前記画面の前記一つ以上のコーナを検出することを更に備える請求項６に記載の方法。
【請求項８】
前記一つ以上の基準点は、ユーザ・インタフェース・コントロールを備える請求項１に記載の方法。
【請求項９】
前記一つ以上の基準点は、デスクトップ・アイコンを備える請求項１に記載の方法。
【請求項１０】
前記一つ以上の基準点は、ビデオ・ゲームの参照部分を備える請求項１に記載の方法。
【請求項１１】
前記一つ以上の基準点の前記形状又は前記位置を識別する情報を、前記ハンドヘルド装置のメモリからアクセスすることを更に備える請求項１に記載の方法。
【請求項１２】
前記ディスプレイ装置によってレンダリングされた前記一つ以上の基準点の表示のタイミングを識別する情報を、前記ハンドヘルド装置のメモリからアクセスすることを更に備える請求項１に記載の方法。
【請求項１３】
複数の異なる種類のディスプレイ装置の中から、ディスプレイ装置の種類を決定すること、
複数の異なる点滅技術の中から、前記決定したディスプレイ装置の種類に適切な技術を選択すること、及び、
前記選択された点滅技術を使用して、前記ディスプレイ装置上の前記一つ以上の基準点を点滅するように、前記ディスプレイ装置を制御すること、
を更に備える請求項１に記載の方法。
【請求項１４】
少なくとも前記カメラ画像中の前記一つ以上の基準点の前記決定した位置又は角度に基づいて、前記ディスプレイ装置に関する前記ハンドヘルド装置の向きを決定することを更に備え、前記アプリケーションが、前記決定した向きに更に基づいて制御される請求項１に記載の方法。
【請求項１５】
前記ハンドヘルド装置の距離又は位置を決定することを更に備え、前記ハンドヘルド装置の前記距離、位置又は向きは、前記ディスプレイ装置に関して決定される請求項１４に記載の方法。
【請求項１６】
前記ディスプレイ装置によってレンダリングされた前記一つ以上の基準点の第２のカメラ画像を、第２のハンドヘルド装置によって撮像すること、
前記撮像された第２のカメラ画像中の前記一つ以上の基準点の位置又は前記ハンドヘルド装置に基づく原点を有する軸に関する角度を決定することと、及び、
少なくとも前記第２のカメラ画像中の前記一つ以上の基準点の前記決定した位置又は角度に基づいて、前記第２のハンドヘルド装置が向けられている前記ディスプレイ装置上の第２の位置を決定すること、
を更に備え、
アプリケーションが、前記決定した位置及び前記決定した第２の位置に基づいて制御される請求項１に記載の方法。
【請求項１７】
前記ディスプレイ装置に対する前記ハンドヘルド装置の第１の距離、位置又は向きを決定すること、
前記ディスプレイ装置に対する前記第２のハンドヘルド装置の第２の距離、位置又は向きを決定すること、及び、
前記第２のハンドヘルド装置の前記決定した第２の距離、位置又は向きに対する前記ハンドヘルド装置の前記決定した第１の距離、位置又は向きに基づいて、第１のユーザの身元及び第２のユーザの身元を決定すること、
を更に備える請求項１６に記載の方法。
【請求項１８】
前記アプリケーションは、ビデオ・ゲーム・アプリケーション又はメディア・センタ・アプリケーションを備える請求項１に記載の方法。
【請求項１９】
前記アプリケーションを制御することは、前記ハンドヘルド装置の向きが変化したとの決定に基づいて、仮想世界中でのアバタの見方を変化させることを更に備える請求項１に記載の方法。
【請求項２０】
前記ディスプレイ装置によってレンダリングされた前記一つ以上の基準点の第２のカメラ画像を、前記ハンドヘルド装置によって撮像すること、
前記撮像された第２のカメラ画像中の前記一つ以上の基準点の第２の位置又は前記ハンドヘルド装置に基づく原点を有する軸に関する第２の角度を決定すること、
少なくとも前記第２のカメラ画像中の前記一つ以上の基準点の決定した第２の位置又は第２の角度に基づいて、前記ハンドヘルド装置が向けられる前記ディスプレイ装置上の前記第２の位置を決定することと、及び、
前記位置と前記第２の位置との比較に基づいて、前記ハンドヘルド装置の動きを決定すること、
を更に備え、アプリケーションは、前記決定した動きに基づいて制御される請求項１に記載の方法。
【請求項２１】
一つ以上のコンピュータ、及び、
前記一つ以上のコンピュータで実行されたときに、前記一つ以上のコンピュータに以下の動作を実行させる、その上に蓄積した指令を有する、前記一つ以上のコンピュータに結合されたコンピュータ可読媒体であって、前記動作が、
一つ以上の基準点として使用されることができる表示された要素のためのアプリケーションの出力を表わし、ディスプレイ装置によってレンダリングされたディスプレイ画像を示す、ユーザ・インタフェースを分析すること、
前記アプリケーションの出力を表わす前記ユーザ・インタフェース内の前記表示された要素から前記一つ以上の基準点を選択すること、
前記アプリケーションの出力を表わす前記ユーザ・インタフェース内の前記表示された要素から選択された前記一つ以上の基準点の形状及び位置の記述を、ハンドヘルド装置へ送信すること、
前記一つ以上の基準点を備えるディスプレイ画像の少なくとも一部のカメラ画像を、前記ハンドヘルド装置によって撮像すること、
前記ディスプレイ装置から前記ハンドヘルド装置で受信した前記レンダリングされたディスプレイ画像についての情報に少なくとも部分的に基づいて、前記撮像されたカメラ画像中の前記一つ以上の基準点の位置又は前記ハンドヘルド装置に基づく原点を有する軸に関する角度を決定すること、
少なくとも前記カメラ画像中の前記一つ以上の基準点の前記決定した位置又は角度に基づいて、前記ハンドヘルド装置が向けられている前記ディスプレイ装置上の位置を決定すること、及び、
前記ディスプレイ装置上の前記決定した位置に基づいて、前記アプリケーションを制御すること、
を備えるコンピュータ可読媒体、
を備える、システム。
【請求項２２】
データ処理装置によって実行されたときに、前記データ処理装置に以下の動作を実行させる指令を含む、コンピュータ・プログラムがコード化されたコンピュータ記憶媒体であって、前記動作が、
アプリケーションの出力を表わし、ディスプレイ装置によってレンダリングされたディスプレイ画像を示す、ユーザ・インタフェース内の表示された要素から選択された一つ以上の基準点の形状及び位置の記述を、ハンドヘルド装置で受信すること、
前記一つ以上の基準点を備えるディスプレイ画像の少なくとも一部のカメラ画像を、前記ハンドヘルド装置によって撮像すること、
前記ディスプレイ装置から前記ハンドヘルド装置で受信した前記レンダリングされたディスプレイ画像についての情報に少なくとも部分的に基づいて、前記撮像されたカメラ画像中の前記一つ以上の基準点の位置又は前記ハンドヘルド装置に基づく原点を有する軸に関する角度を決定すること、
少なくとも前記カメラ画像中の前記一つ以上の基準点の前記決定した位置又は角度に基づいて、前記ハンドヘルド装置が向けられている前記ディスプレイ装置上の位置を決定すること、及び、
前記ディスプレイ装置上の前記決定した位置に基づいて、前記アプリケーションを制御すること、
を備える、コンピュータ記憶媒体。
【請求項２３】
一つ以上の基準点として使用されることができる表示された要素のためのアプリケーションの出力を表わし、ディスプレイ装置によってレンダリングされたディスプレイ画像を示す、ユーザ・インタフェースを分析するための手段、
前記アプリケーションの出力を表わす前記ユーザ・インタフェース内の前記表示された要素から前記一つ以上の基準点を選択するための手段、
前記アプリケーションの出力を表わす前記ユーザ・インタフェース内の前記表示された要素から選択された前記一つ以上の基準点の形状及び位置の記述を、ハンドヘルド装置へ送信するための手段、
前記一つ以上の基準点を備えるディスプレイ画像の少なくとも一部のカメラ画像を、前記ハンドヘルド装置によって撮像するための手段、
前記ディスプレイ装置から前記ハンドヘルド装置で受信した前記レンダリングされたディスプレイ画像についての情報に少なくとも部分的に基づいて、前記撮像されたカメラ画像中の前記一つ以上の基準点の位置又は前記ハンドヘルド装置に基づく原点を有する軸に関する角度を決定するための手段、
少なくとも前記カメラ画像中の前記一つ以上の基準点の前記決定した位置又は角度に基づいて、前記ハンドヘルド装置が向けられている前記ディスプレイ装置上の位置を決定するための手段、及び、
前記ディスプレイ装置上の前記決定した位置に基づいて、前記アプリケーションを制御するための手段、
を備える、システム。
【請求項２４】
制御されているアプリケーションの出力を表わすユーザ・インタフェース内に、前記一つ以上の基準点をレンダリングするように、前記ディスプレイ装置を制御するための手段を更に備える請求項２３に記載のシステム。
【請求項２５】
少なくとも一つのプロセッサ、及び、
前記少なくとも一つのプロセッサによって実行されたときに、当該装置に、
アプリケーションの出力を表わし、ディスプレイ装置によってレンダリングされたディスプレイ画像を示す、ユーザ・インタフェース内の表示された要素から選択された一つ以上の基準点の形状及び位置の記述を、ハンドヘルド装置で受信すること、
前記一つ以上の基準点を備えるディスプレイ画像の少なくとも一部のカメラ画像を、前記ハンドヘルド装置によって撮像すること、
前記ディスプレイ装置から前記ハンドヘルド装置で受信した前記レンダリングされたディスプレイ画像についての情報に少なくとも部分的に基づいて、前記撮像されたカメラ画像中の前記一つ以上の基準点の位置又は前記ハンドヘルド装置に基づく原点を有する軸に関する角度を決定すること、
少なくとも前記カメラ画像中の前記一つ以上の基準点の前記決定した位置又は角度に基づいて、前記ハンドヘルド装置が向けられている前記ディスプレイ装置上の位置を決定すること、及び、
前記ディスプレイ装置上の前記決定した位置に基づいて、前記アプリケーションを制御すること、
を行わせる命令を蓄積するメモリ、
を備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］
この出願は、参照により組み込まれている２００９年４月８日に出願された米国特許仮出願第６１／１６７,７３８号の優先権を主張する。
【０００２】
本開示は、概して、ユーザ・インタフェースに関する。
【発明の概要】
【０００３】
一つの一般的な実装によると、コンピュータ実装されたプロセスは、ディスプレイ装置によってレンダリングされた一つ以上の基準点（fiducial）のカメラ画像を、ハンドヘルド装置によって撮像することと、上記撮像されたカメラ画像中の上記一つ以上の基準点の位置又は角度を決定することと、を含む。上記プロセスはまた、少なくとも上記カメラ画像中の上記一つ以上の基準点の上記決定した位置又は角度に基づいて、上記ハンドヘルド装置が向けられている上記ディスプレイ装置上の位置を決定することと、上記ディスプレイ装置上の上記決定した位置に基づいて、アプリケーションを制御することと、を含む。
【０００４】
実装例においては、上記プロセスは、制御されているアプリケーションの出力を表わすユーザ・インタフェース内に、上記一つ以上の基準点をレンダリングするように上記ディスプレイ装置を制御することを含むことができる。更に、上記一つ以上の基準点は、第１及び第２の基準点、又は、第１乃至第４の基準点を含むことができる。上記ディスプレイ装置は、ＬＣＤプラズマ・ディスプレイ、ＤＬＰディスプレイ、あるいはＣＲＴディスプレイであることができる。上記ハンドヘルド装置は更に、レーザ・ポインタを含むことができ、上記カメラ画像は、上記レーザ・ポインタによって上記ディスプレイ装置上に投影されたレーザ光を撮像することができる。上記一つ以上の基準点は更に、上記ディスプレイ装置の画面の一つ以上のコーナを含むことができる。上記プロセスはまた、輝度又は色調（hue）の違いに基づいて、上記画面の上記一つ以上のコーナを検出することを含むことができる。上記一つ以上の基準点は、会社ロゴのようなデスクトップ・アイコンであることができるユーザ・インタフェース・コントロールや、ビデオ・ゲームの参照部分（reference part）を構成することができる。
【０００５】
幾つかの実装においては、上記プロセスは、複数の異なる種類のディスプレイ装置の中から、上記ディスプレイ装置の種類を決定することを含むことができる。これらの実装において、上記プロセスは、複数の異なるフィルタリング技術の中から、上記決定したディスプレイ装置の種類に適切なフィルタリング技術を選択することと、上記撮像されたカメラ画像に上記選択されたフィルタリング技術を適用することと、を含むことができる。
【０００６】
幾つかの例においては、上記プロセスは、上記一つ以上の基準点として使用されることができる表示された要素のために制御されているアプリケーションの出力を表わすユーザ・インタフェースを分析することを含むことができる。これらの例において、上記プロセスは、上記制御されているアプリケーションの出力を表わすユーザ・インタフェース内に表示された要素から上記一つ以上の基準点を選択することと、上記制御されているアプリケーションの出力を表わすユーザ・インタフェース内に表示された要素から選択された上記一つ以上の基準点の形状及び位置の記述を、上記ハンドヘルド装置へ送信することと、を含むことができる。
【０００７】
上記プロセスはまた、上記一つ以上の基準点の形状又は位置を識別する情報、又は、上記ディスプレイ装置によってレンダリングされた上記一つ以上の基準点の表示のタイミングを識別する情報を、上記ハンドヘルド装置のメモリからアクセスすることを含むことができる。上記一つ以上の基準点は、上記ディスプレイ装置上で点滅するものでも良い。
【０００８】
幾つかの実装においては、上記プロセスは、複数の異なる種類のディスプレイ装置の中から、ディスプレイ装置の種類を決定することを含むことができる。これらの実装において、上記プロセスは、複数の異なる点滅技術の中から、上記決定したディスプレイ装置の種類に適切な技術を選択することと、上記選択された点滅技術を使用して上記ディスプレイ装置上の上記一つ以上の基準点を点滅するように、上記ディスプレイ装置を制御することと、を含むことができる。
【０００９】
上記プロセスはまた、少なくとも上記カメラ画像中の上記一つ以上の基準点の上記決定した位置又は角度に基づいて、上記ハンドヘルド装置の向きを決定することを含むことができるものであり、ここで、上記アプリケーションは、上記決定した向きに更に基づいて制御されることができる。上記プロセスはまた、上記ハンドヘルド装置の距離又は位置を決定することを含むことができ、ここで、上記ハンドヘルドの装置の上記距離、位置又は向きは、上記ディスプレイ装置に関して決定される。上記プロセスはまた、上記ハンドヘルド装置が向けられている上記ディスプレイ装置上の上記決定された位置に基づいて、上記ハンドヘルド装置のユーザの身元を決定することを含むことができる。
【００１０】
上記プロセスはまた、上記ディスプレイ装置によってレンダリングされた上記一つ以上の基準点の第２のカメラ画像を、第２のハンドヘルド装置によって撮像することと、上記撮像された第２のカメラ画像中の上記一つ以上の基準点の位置又は角度を決定することと、少なくとも上記第２のカメラ画像中の上記一つ以上の基準点の上記決定した位置又は角度に基づいて、上記第２のハンドヘルド装置が向けられている上記ディスプレイ装置上の第２の位置を決定することと、を含むことができるものであり、ここで、アプリケーションは、上記決定した位置及び上記決定した第２の位置に基づいて制御されることができる。上記アプリケーションは、ビデオ・ゲーム・アプリケーション又はメディア・センタ・アプリケーションであることができる。上記アプリケーションを制御することは、更に、上記ハンドヘルド装置の向きが変化したとの決定に基づいて、仮想世界中でのアバタの見方を変化させることを含むことができる。
【００１１】
上記プロセスはまた、上記ディスプレイ装置によってレンダリングされた上記一つ以上の基準点の第２のカメラ画像を、上記ハンドヘルド装置によって撮像することと、上記撮像された第２のカメラ画像中の上記一つ以上の基準点の第２の位置又は第２の角度を決定することと、少なくとも上記第２のカメラ画像中の上記一つ以上の基準点の決定した第２の位置又は第２の角度に基づいて、上記ハンドヘルド装置が向けられる、上記ディスプレイ装置上の上記第２の位置を決定することと、上記位置と上記第２の位置との比較に基づいて、上記ハンドヘルド装置の動きを決定することと、を含むことができ、ここで、アプリケーションは、上記決定した動きに基づいて制御されることができる。上記プロセスはまた、上記第２のハンドヘルド装置の距離、位置又は向きを決定することを含むことができ、ここで、上記ハンドヘルド装置の上記距離、位置又は向きは、上記ディスプレイ装置に関して決定されることができる。
【００１２】
上記プロセスはまた、上記第１のハンドヘルド装置の上記決定した距離、位置又は向きに対する上記第２のハンドヘルド装置の上記決定した距離、位置又は向きの比較に基づいて、ハンドヘルド装置のユーザの身元を決定することを含むことができる。上記プロセスはまた、上記ディスプレイ装置に対する上記ハンドヘルド装置の第１の距離、位置又は向きを決定することと、上記ディスプレイ装置に対する上記第２のハンドヘルド装置の第２の距離、位置又は向きを決定することと、上記第２のハンドヘルド装置の上記決定した第２の距離、位置又は向きに対する上記ハンドヘルド装置の上記決定した第１の距離、位置又は向きに基づいて、第１のユーザの身元及び第２のユーザの身元を決定することと、含むことができる。
【００１３】
別の一般的な実装によると、システムは、一つ以上のコンピュータ、及び、上記一つ以上のコンピュータで実行されたときに、上記一つ以上のコンピュータに以下の動作を実行させる、その上に蓄積した指令を有する、上記一つ以上のコンピュータに結合されたコンピュータ可読媒体を含む。上記動作は、ディスプレイ装置によってレンダリングされた一つ以上の基準点のカメラ画像を、ハンドヘルド装置によって撮像することと、上記撮像されたカメラ画像中の上記一つ以上の基準点の位置又は角度を決定することと、少なくとも上記カメラ画像中の上記一つ以上の基準点の上記決定した位置又は角度に基づいて、上記ハンドヘルド装置が向けられている上記ディスプレイ装置上の位置を決定することと、上記ディスプレイ装置上の上記決定した位置に基づいて、アプリケーションを制御することと、を含むことができる。
【００１４】
別の一般的な実装によると、コンピュータ記憶媒体は、データ処理装置によって実行されたときに、上記データ処理装置に以下の動作を実行させる指令を含む、コンピュータ・プログラムがコード化されている。上記動作は、ディスプレイ装置によってレンダリングされた一つ以上の基準点のカメラ画像を、ハンドヘルド装置によって撮像することと、上記撮像されたカメラ画像中の上記一つ以上の基準点の位置又は角度を決定することと、少なくとも上記カメラ画像中の上記一つ以上の基準点の上記決定した位置又は角度に基づいて、上記ハンドヘルド装置が向けられている上記ディスプレイ装置上の位置を決定することと、上記ディスプレイ装置上の上記決定した位置に基づいて、アプリケーションを制御することと、を含むことができる。
【００１５】
この簡単な発明の概要は、本明細書によって説明された多様な概念及び実装の短時間の理解を可能にするために提供されたものである。添付された図面と関連して、以下の詳細な説明への参照によって、より完全な理解が得られることができる。他の実装が利用されても良いことは、及び変更がされても良いことは、理解されよう。
【図面の簡単な説明】
【００１６】
【図１】図１は、具体的に説明する文脈図である。
【図２】図２は、アプリケーション制御システムを示している。
【図３】図３は、例示的プロセスのフローチャートである。
【図４】図４は、ハンドヘルド装置を使用した基準点画像撮像を示している。
【図５】図５は、基準点位置のセットに関するカーソル位置の予想精度を示している。
【図６】図６は、一つの基準点に基づくカーソルの動きを示している。
【図７Ａ】図７Ａは、一つの基準点に基づくカーソルの動きを示している。
【図７Ｂ】図７Ｂは、一つの基準点に基づくカーソルの動きを示している。
【図７Ｃ】図７Ｃは、一つの基準点に基づくカーソルの動きを示している。
【図７Ｄ】図７Ｄは、一つの基準点に基づくカーソルの動きを示している。
【図８】図８は、カーソル位置の精度を示している。
【図９】図９は、画面コーナ基準点を示している。
【図１０】図１０は、ユーザ・インタフェース制御基準点の使用を示している。
【図１１】図１１は、ビデオ画像上にオーバーレイされた基準点を示している。
【図１２】図１２は、ビデオ画像上にオーバーレイされた基準点を示している。
【図１３】図１３は、例示的コンピュータ計算装置を示している。
【発明を実施するための形態】
【００１７】
同じ参照番号は、全ての図において対応する部分を表わしている。
【００１８】
図１は、ハンドヘルド装置１０１の使用を通して、アプリケーション制御を具体的に説明する概念図である。上記ハンドヘルド装置１０１は、例えば、リモート・コントロール又はゲーム・コントローラであることができる。上記ハンドヘルド装置１０１は、ディスプレイ装置１０２と通信していても良い。上記ディスプレイ装置１０２は、例えば、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ビデオ・ゲーム・コンソール、セット・トップ・ボックス、等であることができる。上記ディスプレイ装置１０２は、ユーザ・インタフェース１０４を含む。上記ユーザ・インタフェース１０４は、例えば、コンピュータ・モニタ又はテレビ・ディスプレイであることができる。
【００１９】
上記ユーザ・インタフェース１０４は、基準点１０６ａ乃至１０６ｄをレンダリングする。基準点は、形状又は色がユニークな画像の視覚的な特徴である。例えば、上記ユーザ・インタフェース１０４上に表示された既存のユーザ・インタフェース・コンポーネントが、基準点として使用されることができる。基準点の他の例は、デスクトップ・アイコン、会社ロゴ、又は上記ユーザ・インタフェース１０４の一つ以上のコーナを含む。
【００２０】
上記ハンドヘルド装置１０１は、カメラ１０８を含む。上記カメラ１０８は、上記基準点１０６ａ乃至１０６ｄのカメラ画像を撮像する。複数のカメラ画像が撮像されても良い。例えば、ハンドヘルド装置１０１ａで図示されるように、ユーザが上記ハンドヘルド装置１０１を右の方へ動かすならば、その時、カメラ１０８ａは、第２の点で、上記基準点１０６ａ乃至１０６ｄのカメラ画像を撮像することができる。
【００２１】
上記基準点１０６ａ乃至１０６ｄの各々の位置又は角度は、各撮像されたカメラ画像中で決定されることができる。例えば、上記ハンドヘルド装置１０１で撮像されたカメラ画像１１０は、撮像された基準点画像１１２ａ乃至１１２ｄを含む。上記カメラ画像１１０が撮像されたときの上記ハンドヘルド装置１０１の角度によって作られる斜視のために、上記基準点画像１１２ａ乃至１１２ｄは、上記ユーザ・インタフェース１０４中に表示された対応する基準点１０６ａ乃至１０６ｄがそうであるように、正確に矩形に整列しては見えない。例えば、上記基準点１０６ｂが上記基準点１０６ｄの上に垂直に整列しているのに対して、上記基準点画像１１２ｄは、上記基準点画像１１２ｂの右に現れる。別の例としては、上記基準点１０６ｂが上記基準点１０６ａと水平に整列されているのに対して、上記基準点画像１１２ｂは、上記基準点画像１１２ａより上方に現れる。
【００２２】
さらに、上記ハンドヘルド装置１０１の向きが変わるにつれて、斜視に関連した歪みが変わっていくことができる。例えば、（例えば、ユーザが上記ハンドヘルド装置１０１を右の方へ動かした後に）上記ハンドヘルド装置１０１ａで撮像されたカメラ画像１１４は、上記カメラ画像１１０上に（例えば、比較のために）オーバーレイされる。上記ハンドヘルド装置１０１ｂの角度が大きくなればなるほど、上記カメラ画像１１４の右側に、上記カメラ画像１１０と比較してより大きい「伸長」を引き起こす。例えば、上記基準点画像１１６ｄは、対応する基準点画像１１２ｄよりも低く且つより右側に離れることとなり、上記基準点画像１１６ｃは、対応する基準点画像１１２ｂよりも高く且つより右側に離れることとなる。
【００２３】
上記カメラ画像１１０と１１４とが比較されることができ、上記ハンドヘルド装置１０１ａが向けられている上記ユーザ・インタフェース１０４上の位置を決定するために、上記決定した基準点位置情報に基づいて、計算が実行されることができる（例えば、三角測量）。また、幾つかの実装においては、上記ユーザ・インタフェース１０４に対する上記ハンドヘルド装置１０１の位置と距離、または向きが、決定されることができる。例えば、テーブル１２０は、第１の時点では、上記ディスプレイ装置１０１は、上記ユーザ・インタフェース１０４から６フィート（約１ｍ８３ｃｍ）であると決定され、３０度の向きであり、上記ユーザ・インタフェース１０４上の（４００，４００）の座標位置を指す、ということを示し、第２の時点では、上記ディスプレイ装置１０１は、上記ユーザ・インタフェース１０４から６フィートであると決定され、３５度の向きであり、上記ユーザ・インタフェース１０４上の（６００，４００）の座標位置を指す、ということを示す、計算された情報例を表示している。
【００２４】
アプリケーションは、上記ユーザ・インタフェース１０４上での位置の決定に応じて制御されることができる。例えば、ユーザ・インタフェース１３０は、基準点１３２ａ乃至１３２ｄと、仮想世界を提示するエリア１３４と、をレンダリングしている。上記エリア１３４は、（例えば、仮想ゲームの一部として）仮想的なドア１３６を表示する。カーソル１３８は、以前に決定した位置に表示される。ユーザが上記ハンドヘルド装置１０１を（ハンドヘルド装置１０１ａで示されるように）右の方へ動かすことに応じて、上記ユーザ・インタフェース１３０の上の新しい位置が決定されることができる。カーソル１４０は、上記新しい位置に表示されることができる（例えば、上記カーソル１３８は、カーソルの動きをシミュレーションするためのように、上記ユーザ・インタフェース１３０から削除されても良い）。位置における検出された変更に応じて、上記仮想世界において上記ドア１３６を閉めることのようなアクションが、上記仮想世界で実行されることができる。
【００２５】
図１に示された例においては、上記ユーザ・インタフェースは、上記基準点を、上記ユーザ・インタフェース内の特定のロケーション（例えば、複数の基準点の特定のパターン）に、それぞれ特定の形状及び色でレンダリングするように制御されることができる。上記基準点を上記ユーザ・インタフェース内の特定のロケーションに特定の形状及び色でレンダリングすることは、上記ユーザ・インタフェースに関する上記ハンドヘルド装置の位置及び／又は角度を決定するために、上記基準点が容易に検出され且つ分析されることを許す。上記ユーザ・インタフェースは、上記基準点を、でしゃばらない方法で他のディスプレイ要素と統合する又はオーバーレイするように制御されることができる。上記ハンドヘルドの装置又は上記ディスプレイ装置は、アプリケーション（例えば、ビデオ・ゲーム）によって提供された出力に対し、おそらく追加の要素として、上記基準点のレンダリングを行うことができる。上記ハンドヘルド装置又は上記ディスプレイ装置はまた、アプリケーション（例えば、ビデオ・ゲーム）によって提供された出力として、上記ディスプレイ装置上に既にレンダリングされている適切な基準点を選択することができる。上記基準点が上記ディスプレイ装置の上記ユーザ・インタフェース上にレンダリングされるので、上記ユーザ・インタフェースに対する上記ハンドヘルド装置の位置及び／又は角度は、上記ディスプレイ装置を補うための及び参照点を生成するための追加のハードウェア・コンポーネントを付加する必要なしに、検出されることができる。
【００２６】
図２は、アプリケーション制御システム２００を示している。上記システム２００は、ネットワーク２１１上の一つ以上のハンドヘルド装置２１２に接続されたディスプレイ装置２０１を含む。上記ディスプレイ装置２０１は、プロセッサ２０２、ユーザ・インタフェース２０４、媒体２０６及びネットワーク・インタフェース２０８を含む。上記ハンドヘルド装置２１２は、カメラ２１４、プロセッサ２１６、媒体２１８、ネットワーク・インタフェース２２０及び時計２２２を含む。
【００２７】
ディスプレイ装置２０１は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ビデオ・ゲーム・コンソール、セット・トップ・ボックス、ディジタル・ピクチャ・フレーム、又は画像を表示することができる他のどのような装置であっても良い。上記ハンドヘルド装置２１２は、リモート・コントロール、ゲーム・コントローラ、レーザ・ポインタ、移動電話、ＰＤＡ（Personal Digital Assistant）又は他の移動体装置であることができる。代替の実装においては、上記ハンドヘルド装置２１２は、静的な位置に保持されても良く、上記ディスプレイ装置２０１が、上記ハンドヘルド装置２１２の周囲を移動されるハンドヘルド・ディスプレイ装置であっても良い。
【００２８】
上記媒体２０２及び２１８は、情報又はデータを蓄積し記録するものであり、それぞれ、光記憶媒体、磁気記憶媒体、フラッシュ・メモリ又は他のどのような種類の記憶媒体でもあって良い。上記媒体２０６は基準点データベース２１０を含み、上記媒体２１８は基準点データベース２２４を含む。上記基準点データベース２１０及び２２４は、例えば、形状データと、（例えば、基準点を点滅させるための）タイミング・データと、上記ユーザ・インタフェース２０４上の基準点のロケーションと、を蓄積する。幾つかの実装においては、上記基準点データベース２１０と２２４の両方が使用される。他の実装においては、上記基準点データベース２１０及び２２４のうちの一方が使用される。上記時計２２２は、例えば、基準点を点滅する表示タイミングを調整するために使用されることができる。
【００２９】
上記ユーザ・インタフェース２０４は、視覚的な表示画像をレンダリングするように構成されることができる。例えば、上記ユーザ・インタフェース２０４は、モニタ、テレビ、液晶ディスプレイ（ＬＣＤ）、プラズマ・ディスプレイ装置、プロジェクタ画面を備えるプロジェクタ、自動立体ディスプレイ、陰極線管（ＣＲＴ）ディスプレイ、ディジタル光処理（ＤＬＰ）ディスプレイ、又は表示画像をレンダリングするように構成された他のどのような種類のディスプレイ装置であって良い。上記ユーザ・インタフェース２０４は、一つ以上のディスプレイ装置を含むことができる。幾つかの構成においては、上記ユーザ・インタフェース２０４は、制御を含むアプリケーションによって生成された表示画像のようなアプリケーションと関連した画像、及びアバタのようなオブジェクト、を表示するように構成されることができる。
【００３０】
上記ディスプレイ装置２０１は、上記ネットワーク・インタフェース２０８によって、上記ネットワーク２１１に接続されることができ、あるいは、一つ以上の他のネットワークに接続され得る。同様に、上記ハンドヘルド装置２１２は、上記ネットワーク・インタフェース２２０によって、上記ネットワーク２１１に接続されることができ、あるいは、一つ以上の他のネットワークに接続され得る。上記ネットワーク２１１は、例えば、インターネット、ワイド・エリア・ネットワーク（ＷＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、アナログ又はディジタル有線及び無線電話ネットワーク（例えば、ＰＳＴＮ、サービス統合ディジタル網（ＩＳＤＮ）及びディジタル加入者線（ｘＤＳＬ））、ラジオ、テレビ、ケーブル、衛星、及び／又はデータ・サービスを実行するための他の何れかの配信機構又はトンネリング機構、のうちの少なくとも一つを含むことができる。ネットワークは、それぞれ例えば有線又は無線のデータ経路を含み得る、複数のネットワーク又はサブネットワークを含むことができる。別の実装においては、上記ネットワーク２１１は省略され、上記ディスプレイ装置２０１は、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＷＩ−ＦＩ、変調近赤外線信号、又は変調短距離無線周波数通信を使用して直接、無線又はワイヤライン通信チャネルによって、上記ハンドヘルド装置に接続される。
【００３１】
上記カメラ２１４は、上記プロセッサ２１６に送信されることができ、また、上記ディスプレイ装置２０１に送信されることができる、カメラ画像を撮像する若しくは別の手法で提供する。上記プロセッサ２０２及び２１６は、この開示を通して説明された技術を使用して、上記カメラ画像を処理することができる。上記カメラ２１４は、静止画写真あるいは一連の動画像の何れかとして、画像を撮像することができる。上記カメラ２１４は、可視スペクトルの光、または、電磁スペクトルの他の部分の光を使用することができる。例えば、上記カメラ２１４は、ディジタル・カメラ、ディジタル・ビデオ・カメラ、あるいは、画像を撮像するように構成された他のどの種類の装置であって良い。上記カメラ1２１４は、一つ以上のカメラを含んでも良い。幾つかの例においては、上記カメラ２１４は、上記ユーザ・インタフェース２０４の画像を上記カメラ２１４の視野内で撮像するように構成されることができる。
【００３２】
上記カメラ２１４は、上記ディスプレイ装置で生成された信号を検出することが可能などのようなセンサであって良い。上記カメラ２１４は、グレー・スケール・カメラでもカラー・カメラであっても良い。あるいは、上記カメラ２１４は、上記ディスプレイ装置が赤外線画像を生成することができるならば、赤外線カメラであっても良い。
【００３３】
上記プロセッサ２１６は、上記カメラ２１４から画像を受け取って、位置データを提供するためにそれを処理することが可能であることができる。上記プロセッサ２０２は、上記ハンドヘルド装置２１２から画像を受け取って、それを位置データを提供するために処理することが可能であることができる。また、上記プロセッサ２０２はまた、上記ユーザ・インタフェース２０４上に表示されるディスプレイ画像を生成することもできる。
【００３４】
上記ディスプレイ装置２０１は、パーソナル・コンピュータ（ＰＣ）やセット・トップ・ボックスを含むかインターフェースすると説明したが、そのような説明は、単に、簡潔さのためだけになされたものであり、他の実装や具体化もまた企図される。例えば、上記ディスプレイ装置２０１は、テレビ、ウルトラ・モバイル・パーソナル・コンピュータ（ＵＭＰＣ）、モバイル・インターネット装置（ＭＩＤ）、ディジタル・ピクチャ・フレーム（ＤＰＦ）、ポータブル・メディア・プレイヤ（ＰＭＰ）、多目的コンピュータ（例えば、デスクトップ・コンピュータ、ワークステーション又はラップトップ・コンピュータ）、サーバ、ゲーム装置やコンソール、あるいは、プロセッサ又は命令を実行するように構成された他の制御電気回路を含む他のいかなる種類の電子装置、もしくは、ユーザ・インタフェースを含む他のいかなる装置、を使用して実装されることができる。
【００３５】
図３は、アプリケーションを制御するためのコンピュータ実装プロセス３００を示すフローチャートである。簡潔には、上記プロセス３００は、ディスプレイ装置によってレンダリングされた一つ以上の基準点のカメラ画像を、ハンドヘルド装置によって撮像することと、上記撮像されたカメラ画像中の上記一つ以上の基準点の位置又は角度を決定することと、少なくとも上記カメラ画像中の上記一つ以上の基準点の上記決定された位置又は角度に基づいて、上記ハンドヘルド装置が向けられている上記ディスプレイ装置上の位置を決定することと、上記ディスプレイ装置上の上記決定された位置に基づいてアプリケーションを制御することと、を含む。
【００３６】
より詳細には、プロセス３００が開始すると（Ｓ３０２）、ディスプレイ装置によってレンダリングされた一つ以上の基準点のカメラ画像が、ハンドヘルド装置によって撮像される（Ｓ３０４）。基準点は、形状又は色がユニークである、画像の視覚的な特徴である。上記撮像されたカメラ画像に含められ得る基準点例は、ユーザ・インタフェース・コンポーネント、デスクトップ・アイコン、会社ロゴ、画面コーナ及びビデオ・ゲーム参照部分（例えば、ビデオ・ゲームのヘルス・インジケータ、ビデオ・ゲーム武器部分、ビデオ・ゲーム・ロゴ、ビデオ・ゲーム・インタフェース・コントロール、その他）を含む。
【００３７】
上記撮像されたカメラ画像中の一つ以上の基準点の位置又は角度が、決定される（Ｓ３０６）。例えば、上記一つ以上の基準点の形状又は位置を識別する情報が、上記ハンドヘルド装置のメモリからアクセスされることができる。
【００３８】
上記ハンドヘルド装置が向けられる上記ディスプレイ装置上の位置が、少なくとも上記カメラ画像中の上記一つ以上の基準点の上記決定された位置又は角度に基づいて、決定される（Ｓ３０８）。
【００３９】
アプリケーションが、上記ディスプレイ装置上の上記決定された位置に基づいて制御され（Ｓ３１０）、それによって、該プロセス３００を終了する（Ｓ３１２）。例えば、ビデオ・ゲーム・アプリケーションやメディア・センタ・アプリケーションが、制御されることができる。より特定の例として、上記ハンドヘルド装置が向けられている上記ディスプレイ装置上の上記決定された位置に基づいて、上記ハンドヘルド装置のユーザの身元が決定されても良い。
【００４０】
図４は、アプリケーション−制御システム４００を示している。ハンドヘルド装置４０１は、カメラ４０２及びプロセッサ（図示せず）を含む。上記カメラ４０２は、ディスプレイ４０５のディスプレイ画像上にレンダリングされた基準点４０４ａ乃至４０４ｄのセットを検出する。上記カメラ４０２の視野４０６は、上記ハンドヘルド装置４０１が上記ディスプレイ４０５の任意の位置（例えば、位置４０７）を指しているとき、基準点４０４の上記セットが上記視野４０６内であるというようなものであることができる。カーソル４０８は、上記ディスプレイ画像上の、上記ハンドヘルド装置４０１で指された位置（例えば、位置４０７）に、レンダリングされることができる。
【００４１】
上記ハンドヘルド装置４０１は、押されることができるボタンを含んでも良い。上記ハンドヘルド装置４０１は、テレビ・リモートコントロールに類似したサイズ及び形状を持つことができる。上記ハンドヘルド装置４０１は、さらに、無線Ｂｌｕｅｔｏｏｔｈ送信機のような、送信機を含むことができる。上記送信機は、位置データ（例えば、座標）及びボタン・データをディスプレイ装置４０９に送信することができる。上記ディスプレイ装置４０９は、上記ハンドヘルド装置４０１に、（例えば、トラッキングを開始する又は停止する、基準点の種類を記述する）命令を送信することができる。
【００４２】
上記ディスプレイ装置４０９は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ビデオ・ゲーム・コンソール、セット・トップ・ボックス、その他であることができる。上記ディスプレイ装置４０９は、上記ディスプレイ４０５上に表示されるディスプレイ画像を生成することができる。ディスプレイ画像を生成することは、ビデオ画像上に基準点をオーバーレイすること、または、基準点を含むグラフィカル・ユーザ・インタフェースをレンダリングすることを含むことができる。上記システム４００の代替の変形においては、カメラ画像は、上記ディスプレイ装置４０９に送信されて、プロセッサによって上記ディスプレイ装置４０９内で処理されることができる。しかし、この実装においては、画像は、伝送のための位置データよりも多くの帯域を必要とすることができる。
【００４３】
上記システム４００の別の代替の変形においては、上記ディスプレイ画像のレンダリングは、上記ハンドヘルド装置４０１内で実行されることができる（効果的に、この実装においては、ビデオ・ゲーム・コンソールは、上記ハンドヘルド装置４０１に組み込まれる）。例えば、上記ハンドヘルド装置４０１は、光線銃ゲームを実行するおもちゃの銃であっても良いし、テレビに配線されるビデオ出力を含んでも良い。
【００４４】
上記ハンドヘルド装置４０１上に搭載された上記カメラ４０２でのトラッキングは、上記ディスプレイ４０５に搭載されたカメラ４０２でのトラッキングよりも、１桁以上正確であることができる。したがって、上記ハンドヘルド装置４０１上に上記カメラ４０２を搭載することは、上記ディスプレイ４０５に上記カメラ４０２を搭載することよりも優れていることができる。
【００４５】
上記カメラ４０２が上記ハンドヘルド装置４０１上に搭載される場合、上記カーソルが上記ディスプレイ４０５の一方の側から他方へスイープしていくにつれての上記基準点の変位は、距離、画面サイズ及びカメラの視野に依存して、上記カメラ画像の１／２乃至１／４であることができる。１０２４×７６８の解像度のセンサを仮定すると、２５０と５００の間で、離散的な水平なカーソル位置が識別されることができる。サブピクセル補間の使用は、有効解像度を増やすことができ、上記ディスプレイ画面の本来の解像度で又はその近くでカーソル位置が計算されることを許すことができる。
【００４６】
上記カメラ４０２が上記ディスプレイ４０５上に搭載され、上記ハンドヘルド装置４０１上のマーカがトラッキングされるときには、上記マーカの非常に小さい変位が、上記画面上のカーソルの大きい変位に増幅されることができる。サブピクセル補間を持ってしても、上記カーソル位置は、重大なジッタを持ち得る。
【００４７】
より詳細に以下に説明されるように、基準点を検出する及び／又は表示する様相は、使用されるディスプレイ装置の種類に基づいて変更されることができる。この事については、上記システムは、複数の異なる種類のディスプレイ装置の中から（例えば、少なくともＬＣＤディスプレイ、プラズマ・ディスプレイ、ＤＬＰディスプレイ、ＣＲＴディスプレイの中から）、使用されるディスプレイ装置の種類を決定することができる。上記システムは、複数の異なるフィルタリング技術の中から、上記ディスプレイ装置の上記決定された種類に適切であり、且つ、基準点発見を実行する際に撮像されたカメラ画像に当該選択されたフィルタリング技術を適用し得る、フィルタリング技術を選択することができる。上記フィルタリング技術は、フレーム・レートを参照することができ、及び／又は、カラー・フィルタリングは、ディスプレイ装置の上記決定された種類で表示された画像中で適切に基準点を検出する必要がある。異なるフィルタリング技術が、上記異なる種類のディスプレイ装置の各々のために適用されることができ、また、幾つかの場合においては、同じフィルタリング技術が、異なるディスプレイ装置に適用されることができる。
【００４８】
液晶（例えば、ＬＣＤ）ディスプレイ及びプラズマ・ディスプレイは、カメラで撮像された際に、比較的安定した画像を提供する。トラッキングは、上記ディスプレイ装置と同じフレーム・レート（通常、秒あたり６０フレーム）で生じることができる。より速いフレーム・レート（例えば、秒あたり２４０フレーム）でトラッキングすることは可能ではあるが、しかし、時折のフレームが捨てられることができる。例えば、上記カメラが秒あたり２４０フレームで動作しているならば、三つの連続的なカメラ・フレームは、完全なディスプレイ画像を撮像することができ、そのフレームの露出時間が上記ディスプレイ装置のリフレッシュと一致する場合には不完全なディスプレイ画像を撮像する一つのカメラ・フレームが続くことができ、あるいは、そのフレームの露出時間が二つの異なるディスプレイ・フレームの部分を撮像する場合には分裂された画像（torn image）が続くことができる。上記不完全なカメラ・フレーム又は分裂されたカメラ・フレームは、検出され（例えば、それがカメラ画像内に現れるので、上記ディスプレイ画像の輝度又は完全性に基づいて、上記プロセッサによって決定される）、捨てられることができる。より速いフレーム・レートのサポートは、ハードウェアの選択に影響を及ぼすことができ、上記ハンドヘルド装置４０１のコストに影響することができる。
【００４９】
大多数のＤＬＰ（Digital Light Processing）装置は、上記カメラ４０２で撮像されたときに点滅パターンを提供し得る、赤、緑そして青を順に表示する。多様な要因に従い、トラッキングは、通常秒あたり６０フレームである上記ディスプレイ４０５と同じフレーム・レートで実行されることができる。ＤＬＰ装置が色を循環させる上記方法のため、上記カメラ４０２は、青画像と緑画像は完全に撮像することができるが、赤画像は部分的にしか撮像することができない。別のカメラ・フレームは、青画像と赤画像は完全に撮像することができるが、緑画像は部分的にしか撮像することができない。ソフトウェアは、最も完全な（例えば、最も明るい）一つ以上のカラー・チャネルと、部分的にのみ撮像された（例えば、より暗い、不完全な画像）破棄するカラー・チャネルと、を選択するために、上記カメラ画像をフィルタリングすることができる。上記フィルタリングされた画像は、上記基準点が黒と白であれば通常に処理されることができ、あるいは、より高いフレーム・レート（例えば、連続的なカメラ・フレームそれぞれが、上記ディスプレイ画像の一つの色を検出する、上記ディスプレイ・フレーム・レートの正確に３倍）で処理されることができる。
【００５０】
幾つかの場合においては、ＤＬＰ装置をトラッキングすることは、上記基準点が色を含むならば、より遅いフレーム・レート（例えば、秒あたり３０フレーム）に制限されることができる。上記ＤＬＰの色相環の一つ以上の完全なサイクルを撮像する時間期間にわたって上記カメラ４０２を露光することは、全てのカラー・チャネル（赤、緑及び青）が完全であることを確実にすることができる。
【００５１】
ＣＲＴ（Cathode Ray Tube）ディスプレイは、上記カメラ４０２で撮像されるとき、暗帯（dark band）を提供することができる。ＣＲＴディスプレイは、上記ハンドヘルド装置４０１が上記ディスプレイに同期されられることができるならば、上記ディスプレイと同じ上記フレーム・レート（典型的に秒あたり６０フレーム）でトラッキングされる。上記ハンドヘルド装置４０１が上記ディスプレイに同期させられることができない場合には、トラッキングは、上記暗帯が上記基準点の少しの部分も暗黒にしないために、より遅いフレーム・レート（例えば、秒あたり３０フレーム）に制限されることができる。
【００５２】
ＤＬＰディスプレイ及びＣＲＴディスプレイをトラッキングするために、上記ハンドヘルド装置４０１は、前述された追加の処理を実行することができる。上記ディスプレイの種類は、それが連続的なカメラ画像内に現れるので、上記ディスプレイ画像の輝度における変化及び可干渉性を分析することによって、自動検出されることができる。上記ハンドヘルド装置４０１は、手動で調整されることができても良いし、できなくても良く、上記基準点の種類及び位置は、上記ハンドヘルド装置４０１のメモリに蓄積されても良いし、上記ハンドヘルド装置４０１に送信されても良い。複数のハンドヘルド装置４０１が、上記ディスプレイ４０５上にレンダリングされた同じ基準点を共有することができる。したがって、複数のユーザが各々ハンドヘルド装置４０１を持つならば、各ハンドヘルド装置４０１のための位置は、同時に計算又は決定されることができる。
【００５３】
上記ディスプレイ装置４０９上のプロセスは、基準点のセットを選択するために上記ディスプレイ画像を分析することができ、上記ハンドヘルド装置４０１に上記基準点の形状及び位置の記述を送信することができる。このプロセスを使用して、多くのディスプレイ画像は、上記ディスプレイ画像がコーナ及びエッジのような幾つかの強い特徴を含む限り、上記アプリケーションの外観を修正することなしに、トラッキングされることができる。
【００５４】
上記ディスプレイ画像を分析することは、ディスプレイ画像バッファ中のピクセル・データを分析することによって、コーナやエッジのような特徴を識別することを含むことができる。上記ディスプレイ画像は、例えば、ビデオ、写真、ビデオ・ゲーム、又はコンピュータ・デスクトップ・アプリケーションを含むことができる。基準点のセットを選択することは、最も強い特徴（例えば、最高のコントラストを持っている）を選択することを含むことができる。
【００５５】
別の例として、特徴は、デスクトップ・コンポーネント（例えば、ウィンドウ、タイトル・バー、メニュー、ツールバー、その他）を記述している、よりハイ・レベルのデータを分析することによって識別されることができる。特徴又は形状のセットの記述は、各種類のハイ・レベルのデスクトップ・コンポーネントのために予め決められることができる（例えば、ウィンドウは四つコーナ特徴を持つと仮定されることができる）。基準点のセットを選択することは、可視（例えば、他のデスクトップ・コンポーネントによって邪魔されない）であり、上記最も強い特徴（例えば、最高のコントラスト）を含みそうである、デスクトップ・コンポーネントを選択することを含むことができる。
【００５６】
上記ハンドヘルド装置４０１に送信される上記基準点の記述は、帯域要件を減じ得る、コンパクトでも良く、上記ディスプレイ画像の見え方が変化するにつれて、更新されることができる。別の例として、上記ディスプレイ画像は、上記ハンドヘルド装置４０１に送信されることができ、分析するステップ及び選択するステップは、（この例では、画像を送信するのに要求される帯域が高いことができるが）上記ハンドヘルド装置４０１上で実行されることができる。上記基準点の記述又は上記カメラ画像は、画像のレンダリング、表示及び撮像の待ち時間、あるいは、上記基準点記述を送信する待ち時間を原因として、バッファリングされることができる。
【００５７】
基準点は、レンダリングされたディスプレイ画像のエッジにあることは必要ではない。例えば、図５は、一対の基準点位置に関するカーソル位置の予想された精度を示している。概念的には、エラー５０２は、レーザ・ポインタがハンドヘルド装置に搭載されたような場合における、レーザ・ポイントの位置に対するカーソルのオフセットを表わす。上記装置が上記基準点の境界のさらに外側を指すにつれて、上記カーソルとレーザは、徐々に相違していくことができる。しかしながら、図５においてディスプレイ５０４中に図示されるように、上記基準点の分離が上記ディスプレイ画面の寸法の３分の１だけであったとしてさえも、レーザ・ポインタの援助なしで、ユーザは、このエラーを知覚する見込みは少ない。
【００５８】
最低限二つの基準点が使用されることができる。一つの基準点が使用される場合には、位置は判断されることができるが、実際の位置は、予想された位置から相違し得、さらに、上記ハンドヘルド装置は、上記基準点から離れた位置を指し得る。上記ハンドヘルド装置が上記基準点の方へ移動したとき、上記実際の位置と見積もられた位置とは再び収束することができる。
【００５９】
一つの基準点が使用される場合、上記ハンドヘルド装置が水平でないようにユーザがそれを持つならば、動きは不正確であることができる。図６に示すように、ユーザが、ハンドヘルド装置６０１を方向６０２の右方向に、角度６０３で上記装置６０１を保持したまま動かした場合、カーソル６０４は、上記角度６０３と同様の角度だけ、予想された経路６０６とは相違する、経路６０５に沿って移動することができる。
【００６０】
一つの基準点が使用される場合、上記ディスプレイのサイズに関してユーザの距離が決定されることができないので、動きは不適当に縮尺され得る。例が、図７Ａ乃至図７Ｄに示されている。画面からある距離で、ユーザは、ハンドヘルド装置を動かすために、ディスプレイ画面を横切ってカーソルをスイープするための角度距離を持つことができるものであり、ここで、ハンドヘルド装置の向きは、画面サイズとは独立している。例えば、図７Ａに示されるように、ディスプレイ画面７０２が小さい場合、ユーザは、ハンドヘルド装置７０６ａを、予想された向き７０８よりも遠い向き７０７に動かさなければならず、それによって、上記装置７０６ａが動きに鈍感であるという感じを与えることができる。
【００６１】
別の例として、図７Ｂに示すように、ディスプレイ画面７１０が大きい場合には、ユーザは、ハンドヘルド装置７０６ｂを予想された向き７１４よりも少ない向き７１２に動かさなければならず、それによって、上記装置７０６ｂが動きに過敏であるという感じを与えることができる。
【００６２】
堅固なサイズのディスプレイでは、ユーザは、ディスプレイを横切ってカーソルをスイープするために、ある角度距離を動かさなければないことができ、ここで、上記角度は、上記画面からの距離とは独立である。例えば、図７Ｃに示すように、ユーザがディスプレイ画面７２０から遠く離れている場合、ユーザは、ハンドヘルド装置７０６Ｃを、予想された向き７２４より以上である向き７２２に動かさなければならず、それによって、上記装置７０６Ｃが動きに鈍感であるという感じを与えることができる。別の例として、図７Ｄに示すように、ユーザがディスプレイ画面７３０に近い場合、ユーザは、ハンドヘルド装置７０６ｄを予想された向き７３４よりも少ない向き７３２に動かさなければならず、それによって、上記装置７０６ｄが動きに過敏であるという感じを与えることができる。
【００６３】
上記カメラ画像中の検出された基準点の位置は、レンズ歪みを考慮して補正されることができる。上記レンズ歪みがユーザによって検出不可能であると決定された場合のような、幾つかの状況においては、補正が実行されないことができる。補正が実行された場合、上記カメラ画像中の上記検出された基準点の上記補正された位置は、参照位置と比較されることができる。例えば、参照位置は、上記ハンドヘルド装置が上記ディスプレイの中央に向けられた場合に、上記基準点が上記カメラ画像中で出現するのを期待される位置であることができる。上記検出された位置と上記参照位置との差は、上記検出された位置をコンピュータ／ゲーム・コンソールの座標空間に再マッピングするために、倍率を乗じられることができる。算出された位置は、上記ディスプレイ画像内の上記基準点の位置と関係することができ、この場合、上記算出された位置は、上記ディスプレイ画像に関する位置を生成するために、上記基準点のディスプレイ位置から減算されることができる。カーソルは、上記ディスプレイ画像に関する位置で、上記ディスプレイ画像中にレンダリングされることができる。
【００６４】
倍率は、平均サイズのディスプレイ画面と該画面からの平均ユーザ距離とを考慮して、予め決定されていても良い。上記ユーザのディスプレイ画面サイズ又は距離が、上記予め決定された設定とかなり異なる場合には、ユーザは、上記倍率を調節するオプションを与えられることができる。
【００６５】
二つの基準点の使用は、上記ハンドヘルド装置が手で保持される角度と、上記ディスプレイ画面のサイズに関しての上記ユーザの距離と、の両方を計算するのに十分であることができる。二つの基準点を使用することは、図６及び図７Ａ乃至図７Ｄに関して、前述された問題を除去することができる。
【００６６】
図８は、（例えば、ユーザ８０１が、ディスプレイ画面８０２の正面に存在する場合や側面にずれて存在する場合のような）ユーザ８０１の位置に対するカーソル位置の精度を示している。概念的には、エラー８０３は、レーザ・ポインタがハンドヘルド装置に搭載されたような場合における、レーザ・ポイントの位置に対するカーソルのオフセットを表わす。上記カーソル位置は、上記画面８０２の正面に存在するユーザのためには、非常に正確であることができるが、上記カーソルとレーザは、ユーザが中央から離れて在住していくにつれて、徐々に相違していくことができる。同様の関係は、上記画面８０２の上方又は下方のユーザにも言える。しかし、（例えば、ユーザ８０４で示されるように）ユーザ８０１が中央から３０度程度の位置に在住する場合には、レーザ・ポインタの援助なしで、ユーザが、このエラーを知覚する見込みは少ないだろう。
【００６７】
二つの基準点の場合、倍率は、第１の基準点と第２の基準点との間の距離に基づいて計算されることができる。角度は、上記第１の基準点に対する上記第２の基準点の相対ｘ位置及びｙ位置に基づいて計算されることができる。上記計算された角度は、予想された角度（例えば、上記基準点が並んでいるならば０度）と比較されることができる。上記第２の基準点の上記検出された位置は、計算された角度の差によって、上記第１の基準点の上記検出された位置について回転させられることができる。以降の処理は、一つの基準点のための処理と同様であることができる。例えば、上記カメラ画像中の上記検出された第１の基準点の位置は、参照位置と比較されることができる。上記参照位置は、例えば、上記ハンドヘルド装置が上記ディスプレイ画面の中央に向けられるならば、上記第１の基準点が上記カメラ画像中に出現するのを期待される位置であることができる。上記検出された第１の位置と上記参照位置との差は、上記検出された第１の位置をコンピュータ／ゲーム・コンソールの座標空間に再マッピングするために、計算された倍率を乗じられることができる。算出された位置は、上記ディスプレイ画像に関する位置を生成するために、上記第１の基準点のディスプレイ位置から減算されることができる。カーソルは、上記ディスプレイ画像に関する位置で、上記ディスプレイ画像中にレンダリングされることができる。
【００６８】
四つの基準点の使用は、図５に関して前述された上記エラーをかなり減少させることができる。さらに、上記画面の右、左、上又は下に関するユーザの位置の大まかな見積もりが、四つの基準点で計算されることができる。精度はユーザの精妙な動きをトラッキングするには十分ではないが、複数のユーザが各々ハンドヘルド装置を持つシナリオにおいては、ユーザの隊列（例えば、ユーザＡはユーザＢの左に在住する）が決定されることができる。
【００６９】
基準点は、外観上は変更することができる。さらに、幾つかの方法は、特定のアプリケーションにより合わせられることができるので、上記システムは、基準点の種類を送信することによるその種類と、上記ハンドヘルド装置への上記基準点の位置と、の間で切り替えることができる。
【００７０】
上記画面のコーナやエッジが、四つの基準点として検出さることができる。画面コーナの例が、図９に示されている。上記画面のコーナやエッジは、ディスプレイ画面９０１の背景色が、輝度又は色調の何れかにおいて、上記ディスプレイ画面９０１を取り囲んでいるベゼル９０２とは異なるように出現する場合のように、検出されることができる。上記ベゼル９０２が灰色であるとしてさえも、青い背景やメニューバーのコーナ９０３は、色調に基づいて検出されることができる。
【００７１】
上記画面の上記コーナやエッジは、上記デスクトップの色が制御される、いかなる画面（例えば、Windows（登録商標） Media Center）のためにも、使用されることができる。しかし、上記画面コーナやエッジは、ビデオが、上記画面と上記ベゼルの間のコントラストを提供するにはあまりに暗い場面を含むことができるので、全画面ビデオの再生の間は、トラッキングされることができないだろう。
【００７２】
上記ディスプレイ画面のコーナは、コーナ特徴を使用することによって検出されることができる。さらに、上記ディスプレイ画面の左エッジ、右エッジ、上エッジ及び下エッジは、ハフ変換アルゴリズムを使用して検出されることができる。
【００７３】
全画面ビデオ画像１００２上にオーバーレイされて図１０に示されたメディア制御バー１００１の例のように、円や長方形のような規則的なターゲット形状は、グラフィカル・ユーザ・インタフェース内のボタンや装飾として見誤られることができる。この例では、基準点１００３及び１００４は、円形ボタンとして上記バー１００１の何れの終端上にも現れている。
【００７４】
太い縁取りが、基準点のために使用されることができる。例えば、上記縁取りは、少なくとも２ピクセルの太さとして上記カメラ画像中に現れることができる。しかし、上記カメラは、上記ディスプレイ画面よりも低い解像度であることができ、上記ディスプレイ画面は、上記カメラの視野の幅の１／４と同じくらい小さいものであることができる。よって、多数の要因に従って、上記縁取りは、最高２５ピクセルの太さである必要があり得る。高コントラストが、使用されることができる。例えば、メディア・バーは、不透明な暗い背景を持つことができる。別の例においては、上記背景は、わずかに半透明であっても良い。円及び長方形は、検出するのが比較的容易であることができ、正確なサプピクセル位置計算に導くことができるので、円及び長方形が使用されることができる。その形状の使用は、上記ユーザ・インタフェースの他の部分中では回避されることができる。上記ターゲット形状の意図的でない発生は、全ての潜在的な検出されたターゲット形状の相対的な配置に基づいて、検出されて、フィルタリングされることができる。形状の他の発生が上記ユーザ・インタフェースの他の部分中に出現する場合には、ロバストさは減らされても良い。
【００７５】
円及び長方形は、円形又は直線のエッジを検出するように構成されたハフ変換アルゴリズムを使用することによって検出されることができる。代わりに、円及び長方形は、閾値及びクラスタリング動作を実行することによって検出されることができる。閾値動作は、ローカル・ミニマム値とローカル・マキシマム値の間の閾値を選択することができ、上記閾値よりも高い又は低いとして、カメラ画像のピクセルを分類することができる。例えば、上記形状が暗い背景上で明るいならば、上記閾値より高い値として分類されたピクセルが、クラスタリングされることができる。別の例として、上記形状が明るい背景上で暗いならば、上記閾値より暗いと分類されたピクセルが、クラスタリングされることができる。クラスタリングは、隣接ピクセルのセットを形成することを含むことができる。
【００７６】
ロゴ及びアイコンが、基準点として使用されることができる。例えば、図１１は、全画面ビデオ画像１１０３上にオーバーレイされた二つのユニークに形づくられた基準点１１０１及び１１０２を示している。基準点１１０１は、フィルム・カメラ・アイコンであり、基準点１１０２は、会社ロゴである。上記基準点１１０１と１１０２は、整列していても良いし、整列していなくても良く、トラッキング・ソフトウェアは、レンダリングされた画面画像内のそれらの位置を知っていても良い。第２の例は、ビデオ・ゲーム画像１２０３上にオーバーレイされた二つのユニークに形づくられた基準点１２０１（ヘルス・インジケータ）及び１２０２（武器部分）を示している、図１２に示されている。
【００７７】
基準点の外観は、階調や濃淡を含むことができる。基準点の外観を記述するデータは、上記ハンドヘルド装置のメモリ中に蓄積されても良いし、上記ハンドヘルド装置に送信されても良い。さらに、上記形状は複雑であることができるので、それらは、上記ディスプレイ画像の他の部分内に出現することは非常に少ないことができる。
【００７８】
複雑なターゲット形状の検出は、ＳＩＦＴ（scale-invariant feature transform）アルゴリズムを利用することができる。複雑な形状を検出するための処理要件は、規則的なターゲット形状を検出するのに要求されるよりも、かなり大きく、プロセッサの選択及び上記ハンドヘルド装置のコストに影響を及ぼすことができる。
【００７９】
上記ＳＩＦＴアルゴリズム以外の複雑なターゲット形状発見アルゴリズムにおいては、上記ハンドヘルド装置がある角度（例えば、装置６０１、図６）で、手で保持されるならば、複雑な形状が検出され損なうことがあり得る。角度限界は、例えば、１０度又は１５度であることができるが、上記形状の回転されたバージョンをサーチするための追加の処理を実行することによって、拡大されることができる。複雑な形状もまた、ユーザが（例えば、図８に示されるように）ディスプレイ画面の中央からあまりに遠くに離れて在住するならば、検出され損ない得る。上記オフセットの限界は、例えば、３０度であることができるが、上記形状の視点が歪められたバージョンをサーチするための追加の処理を実行することによって、拡大されることができる。
【００８０】
基準点は、画面上で点滅されても良い。基準点位置は、ターゲットが上記画面上に表示されている時間の間、トラッキングされることができる。幾つかのディスプレイ装置が表示に先立って画像を処理する方法のために、ターゲットは、それらの視認性を増やすことができる、複数フレームの間、点滅される必要があり得る。これらの制限のために、ターゲットを点滅することは、連続的にカーソルをトラッキングするためには適切ではないかもしれないが、例えば、光線銃ゲームのために使用されることができる。
【００８１】
いくらかの実装においては、上記システムは、上記ディスプレイ装置の種類に基づいて、上記ディスプレイ装置上の上記基準点の点滅を制御することができる。これらの実装においては、システムは、複数の異なる種類のディスプレイ装置の中から（例えば、少なくとも、ＬＣＤディスプレイ、プラズマ・ディスプレイ、ＤＬＰディスプレイ、又はＣＲＴディスプレイ、の中から）、上記ディスプレイ装置の種類を決定することができる。上記システムは、複数の異なる点滅技術の中から、上記ディスプレイ装置の上記決定された種類のために適切な点滅技術を選択することができ、上記選択された点滅技術を、上記表示された基準点に適用することができる。例えば、上記システムは、ディスプレイ装置の上記決定された種類のために適切な特定のレートで、上記基準点を点滅させるために、上記ディスプレイ装置を制御することができる。異なる種類のディスプレイ装置は、異なるフレーム・レートと、異なるカラー・ディスプレイ特性を持つので、上記システムは、使用されているディスプレイ装置のための基準点の発見を増やすために、異なる方法で上記ディスプレイ装置上の上記基準点の点滅を制御することができる。選択された上記点滅技術は、上記点滅のパターンについて上記ハンドヘルド装置に警告するために、上記ハンドヘルド装置に知らせられることができ、それによって、基準点発見を増やすことができる。
【００８２】
静止型装置上のプロセスは、基準点のセットを選択するために、ディスプレイ画像を分析することができ、上記ハンドヘルド装置に上記基準点の形状及び位置の記述を送信することができる。このプロセスを使用して、多数のディスプレイ画像は、上記ディスプレイ画像がコーナやエッジのような幾つかの強い特徴を含む限り、アプリケーションの外観を修正することなく、トラッキングされることができる。
【００８３】
上記ディスプレイ画像を分析することは、ディスプレイ画像バッファ中のピクセル・データを分析することによって、コーナやエッジのような特徴を識別することを含むことができる。上記ディスプレイ画像は、ビデオ、写真、ビデオ・ゲーム、又はコンピュータ・デスクトップ・アプリケーションを含むことができる。基準点のセットを選択することは、（例えば、最も高いコントラストを持っている）最も強い特徴を選択することを含むことができる。
【００８４】
代わりに、特徴は、デスクトップ・コンポーネント（例えば、ウィンドウ、タイトル・バー、メニュー、ツールバー、その他）を記述している、よりハイ・レベルのデータを分析することによって、識別さることができる。特徴や形状記述のセットは、ハイ・レベルのデスクトップ・コンポーネントのそれぞれの種類のために、予め決定されている（例えば、ウィンドウが四つのコーナ特徴を持つと仮定されている）。基準点のセットを選択することは、可視であり（例えば、他のデスクトップ・コンポーネントによってふさがれない）、最も強い特徴（例えば、最も高コントラスト）について既知である、デスクトップ・コンポーネントを選択することを含むことができる。
【００８５】
上記ハンドヘルド装置に送信される上記基準点の上記記述は、コンパクトであり、帯域要件を最小にし、ディスプレイ画像の変更の出現として更新されることができる。代わりに、上記ディスプレイ画像は、上記ハンドヘルド装置に送信されることができ、分析するステップ及び選択するステップが、（画像を送信するのに必要とされる帯域は非常に高く、したがって、これはむしろ好ましくないとはいえ）上記ハンドヘルド装置上で実行される。
【００８６】
基準点の全ての種類のために、上記基準点の記述がバッファリングされることができ、あるいは、画像のレンダリング、表示及び撮像における待ち時間、又は、上記基準点記述を送信する待ち時間、を考慮して、上記カメラ画像がバッファリングされることができる。
【００８７】
一つ以上のハンドヘルド装置からの画像が、撮像されることができる。例えば、ディスプレイ装置上の第１の位置が第１のハンドヘルド装置に基づいて決定された後に、上記ディスプレイ装置によってレンダリングされた一つ以上の基準点の第２のカメラ画像が、第２のハンドヘルド装置によって撮像されることができ、一つ以上の基準点の位置又は角度が、上記第２の撮像されたカメラ画像中で決定されることができる。上記第２のハンドヘルド装置が向けられる上記ディスプレイ装置上の第２の位置は、上記第２のカメラ画像中の上記一つ以上の基準点の上記決定された位置又は角度に基づいて決定されることができ、アプリケーションは、上記第１の決定されたディスプレイ装置の位置及び上記第２の決定されたディスプレイ装置の位置に基づいて制御されることができる。
【００８８】
ユーザの身元は、上記ハンドヘルド装置が向けられる上記ディスプレイ装置上の上記決定された位置に基づいて決定されることができる。例えば、第１のハンドヘルド装置をコントロールしている第１のユーザは、ディスプレイ装置上の第２の位置が、分割画面ゲームの右半分のような、上記ディスプレイ装置の予め決定された領域内であるならば、身元「プレイヤ２」を割り当てられることができる。
【００８９】
第１の距離、位置又は向きは、上記ディスプレイ装置に対する上記第１のハンドヘルド装置の距離、位置又は向きとして、決定されることができる。第２の距離、位置又は向きは、上記ディスプレイ装置に対する上記第２のハンドヘルド装置の距離、位置又は向きとして決定されることができる。相対的な距離、位置又は向きは、上記第１の距離、位置又は向きに関する上記第２の距離、位置又は向きに基づいて、計算されることができる。ハンドヘルド装置のユーザの身元は、上記第１の、第２の、又は相対的な、距離、位置又は向きに基づいて、決定されることができる。例えば、第１のハンドヘルド装置をコントロールしている第１のユーザが、身元「プレイヤ２」を割り当てられることができ、第２のハンドヘルド装置をコントロールしている第２のユーザが、第１の位置の左である第２の位置である、身元「プレイヤ１」を割り当てられることができる。
【００９０】
図１３は、一般的なコンピュータ・システム１３００の例の概要の図である。上記システム１３００は、プロセッサ１３１０、メモリ１３２０、記憶装置１３３０及び入出力装置１３４０を含む。上記コンポーネント１３１０、１３２０、１３３０及び１３４０は、システム・バス１２３５０を使用して相互接続されている。上記プロセッサ１３１０は、上記システム１３００内での実行のために命令を処理することが可能である。一つの実装においては、上記プロセッサ１３１０は、シングル・スレッド型のプロセッサである。別の実装においては、上記プロセッサ１３１０は、マルチ・スレッド型のプロセッサである。上記プロセッサ１３１０は、上記入出力装置１３４０上のユーザ・インタフェースのためのグラフィック情報を表示するために、上記メモリ１３２０中に又は上記記憶装置１３３０上に蓄積された命令を処理可能である。
【００９１】
上記メモリ１３２０は、上記システム１３００内で情報を蓄積する。一つの実装においては、上記メモリ１３２０は、コンピュータ可読媒体である。別の実装においては、上記メモリ１３２０は、揮発性メモリ・ユニットである。さらに別の実装においては、上記メモリ１３２０は、不揮発性メモリ・ユニットである。
【００９２】
上記記憶装置１３３０は、上記システム１３００のための大容量記憶装置を提供することが可能性である。一つの実装においては、上記記憶装置１３３０は、コンピュータ可読媒体である。多様な異なる実装においては、上記記憶装置１３３０は、フロッピー（登録商標）ディスク装置、ハード・ディスク装置、光ディスク装置又はテープ装置であることができる。
【００９３】
上記入出力装置１３４０は、上記システム１３００のために入出力動作を提供する。一つの実装においては、上記入出力装置１３４０は、キーボード及び／又はポインティング・デバイスを含む。別の実装においては、上記入出力装置１３４０は、グラフィカル・ユーザ・インタフェースを表示するためのディスプレイ・ユニットを含む。
【００９４】
前述された特徴は、ディジタル電子電気回路中に、またはコンピュータ・ハードウェア中に、またはコンピュータ・ハードウェアとファームウェア又はソフトウェアとの組合せ中に、実装されることができる。装置は、プログラマブルなプロセッサによる実行のために、機械可読記憶装置中に明確に具体化されたコンピュータ・プログラム製品中に、実装されることができ、方法ステップは、入力データに作用して出力を生成することによって前述された実装の機能を実行するための命令のプログラムを実行する、プログラマブルなプロセッサによって実行されることができる。前述された特徴は、少なくとも一つの入力装置で、及び、少なくとも一つの出力装置で、データ記憶装置からの受信データ及び命令に、及び、データ記憶装置への送信データ及び命令に、結合された、少なくとも一つのプログラマブルなプロセッサを含むプログラマブルなシステム上で実行可能である、一つ以上のコンピュータ・プログラム中に都合よく実装されることができる。コンピュータ・プログラムは、ある活動を実行するため、又は、ある結果を引き起こすために、コンピュータにおいて直接又は間接的に使用されることができる命令のセットである。コンピュータ・プログラムは、コンパイルされた又はインタプリットされた言語を含む、プログラミング言語の何れかの形式で書かれることができ、それは、スタンドアロン・プログラムとして、あるいは、モジュール、コンポーネント、サブルーチン、又はコンピューティング環境における使用に適した他のユニットとして含む、何れかの形式で展開されることができる。
【００９５】
命令のプログラムの実行に適切なプロセッサは、例として、汎用マイクロプロセッサ及び専用マイクロプロセッサの両方と、何れかの種類のコンピュータのうちの単一プロセッサ又は複数プロセッサの一つと、を含む。一般に、プロセッサは、リードオンリ・メモリ又はランダム・アクセス・メモリから、もしくはそれらの両方から、命令及びデータを受信するだろう。コンピュータの必須の構成要素は、命令を実行するためのプロセッサと、命令及びデータを蓄積するための一つ以上のメモリである。一般に、コンピュータはまた、データ・ファイルを蓄積するための一つ以上の大容量記憶装置を含むか、あるいは、それと通信するために有効に結合されるものであり、そのような記憶装置は、内蔵ハード・ディスク及びリムーバブル・ディスク等の磁気ディスク、光磁気ディスク及び光ディスクを含む。コンピュータ・プログラム命令及びデータを具体化するのに適切な記憶装置は、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュ・メモリ装置等の半導体メモリ装置、内蔵ハード・ディスクやリムーバブル・ディスク等の磁気ディスク、光磁気ディスク、及びＣＤ−ＲＯＭディスクやＤＶＤ−ＲＯＭディスクを含む、全ての形式の不揮発性メモリを含む。上記プロセッサ及び上記メモリは、ＡＳＩＣ（特定用途向け集積回路）によって補われる、あるいは、ＡＳＩＣに組み込まれることができる。
【００９６】
ユーザとの対話を提供するために、上記特徴は、ユーザに情報を表示するためのＣＲＴ（陰極線管）モニタやＬＣＤ（液晶ディスプレイ）モニタのようなディスプレイ装置と、キーボードやユーザがコンピュータに入力を提供することができるマウス及びトラックボール等のポインティング・デバイスと、を有するコンピュータ上に実装されることができる。
【００９７】
上記特徴は、データ・サーバ等のバックエンド・コンポーネントを含む、あるいは、アプリケーション・サーバ又はインターネット・サーバ等のミドルウェア・コンポーネントを含む、あるいは、グラフィカル・ユーザ・インタフェース又はインターネット・ブラウザもしくはそれらの何れかの組合せを有するクライアント・コンピュータ等のフロントエンド・コンポーネントを含む、コンピュータ・システム中に実装されることができる。上記システムの上記コンポーネントは、通信ネットワークのようなディジタル・データ通信の何れの形式又は何れの媒体によっても接続されることができる。通信ネットワークの例としては、例えばＬＡＮ、ＷＡＮ、及び、インターネットを形成するコンピュータとネットワーク、を含む。
【００９８】
コンピュータ・システムは、クライアントとサーバを含むことができる。クライアントとサーバは、一般に互いに遠隔配置され、典型的に前述したようにネットワークを介して対話する。クライアントとサーバの上記関係は、それぞれのコンピュータ上で動いており、互いにクライアント・サーバ関係を持つ、コンピュータ・プログラムによって発生する。
【００９９】
多数の実装が、説明された。それにもかかわらず、上記開示の精神及び範囲から逸脱することなしに、多様な修正がなされ得ることは、理解されよう。従って、他の実装も以下の請求の範囲の範囲内である。
以下に、本願出願の補正前の特許請求の範囲に記載された発明を付記する。
（１）  ディスプレイ装置によってレンダリングされた一つ以上の基準点のカメラ画像を、ハンドヘルド装置によって撮像すること、
前記撮像されたカメラ画像中の前記一つ以上の基準点の位置又は角度を決定すること、
少なくとも前記カメラ画像中の前記一つ以上の基準点の前記決定した位置又は角度に基づいて、前記ハンドヘルド装置が向けられている前記ディスプレイ装置上の位置を決定すること、及び、
前記ディスプレイ装置上の前記決定した位置に基づいて、アプリケーションを制御すること、
を備える、コンピュータ実装された方法。
（２）  制御されているアプリケーションの出力を表わすユーザ・インタフェース内に、前記一つ以上の基準点をレンダリングするように、前記ディスプレイ装置を制御することを更に備える（１）に記載の方法。
（３）  前記一つ以上の基準点は、第１及び第２の基準点を備える（１）に記載の方法。
（４）  前記一つ以上の基準点は、第１乃至第４の基準点を備える（１）に記載の方法。
（５）  複数の異なる種類のディスプレイ装置の中から、前記ディスプレイ装置の種類を決定すること、
複数の異なるフィルタリング技術の中から、前記決定したディスプレイ装置の種類に適切なフィルタリング技術を選択すること、及び、
前記撮像されたカメラ画像に前記選択されたフィルタリング技術を適用すること、
を更に備える（１）に記載の方法。
（６）  前記一つ以上の基準点として使用されることができる表示された要素のために制御されているアプリケーションの出力を表わすユーザ・インタフェースを分析すること、
制御されているアプリケーションの出力を表わすユーザ・インタフェース内に表示された要素から前記一つ以上の基準点を選択すること、及び、
前記制御されているアプリケーションの出力を表わすユーザ・インタフェース内に表示された要素から選択された前記一つ以上の基準点の形状及び位置の記述を、前記ハンドヘルド装置へ送信することと、
を更に備える（１）に記載の方法。
（７）  前記一つ以上の基準点は更に、前記ディスプレイ装置の画面の一つ以上のコーナを備える（１）に記載の方法。
（８）  輝度又は色調の違いに基づいて、前記画面の前記一つ以上のコーナを検出することを更に備える（７）に記載の方法。
（９）  前記一つ以上の基準点は、ユーザ・インタフェース・コントロールを備える（１）に記載の方法。
（１０）  前記一つ以上の基準点は、デスクトップ・アイコンを備える（１）に記載の方法。
（１１）  前記一つ以上の基準点は、ビデオ・ゲームの参照部分を備える（１）に記載の方法。
（１２）  前記一つ以上の基準点の形状又は位置を識別する情報を、前記ハンドヘルド装置のメモリからアクセスすることを更に備える（１）に記載の方法。
（１３）  前記ディスプレイ装置によってレンダリングされた前記一つ以上の基準点の表示のタイミングを識別する情報を、前記ハンドヘルド装置のメモリからアクセスすることを更に備える（１）に記載の方法。
（１４）  複数の異なる種類のディスプレイ装置の中から、ディスプレイ装置の種類を決定すること、
複数の異なる点滅技術の中から、前記決定したディスプレイ装置の種類に適切な技術を選択すること、及び、
前記選択された点滅技術を使用して、前記ディスプレイ装置上の前記一つ以上の基準点を点滅するように、前記ディスプレイ装置を制御すること、
を更に備える（１）に記載の方法。
（１５）  少なくとも前記カメラ画像中の前記一つ以上の基準点の前記決定した位置又は角度に基づいて、前記ハンドヘルド装置の向きを決定することを更に備え、前記アプリケーションが、前記決定した向きに更に基づいて制御される（１）に記載の方法。
（１６）  前記ハンドヘルド装置の距離又は位置を決定することを更に備え、前記ハンドヘルドの装置の前記距離、位置又は向きは、前記ディスプレイ装置に関して決定される（１５）に記載の方法。
（１７）  前記ディスプレイ装置によってレンダリングされた前記一つ以上の基準点の第２のカメラ画像を、第２のハンドヘルド装置によって撮像すること、
前記撮像された第２のカメラ画像中の前記一つ以上の基準点の位置又は角度を決定することと、及び、
少なくとも前記第２のカメラ画像中の前記一つ以上の基準点の前記決定した位置又は角度に基づいて、前記第２のハンドヘルド装置が向けられている前記ディスプレイ装置上の第２の位置を決定すること、
を更に備え、
アプリケーションが、前記決定した位置及び前記決定した第２の位置に基づいて制御される（１）に記載の方法。
（１８）  前記ディスプレイ装置に対する前記ハンドヘルド装置の第１の距離、位置又は向きを決定すること、
前記ディスプレイ装置に対する前記第２のハンドヘルド装置の第２の距離、位置又は向きを決定すること、及び、
前記第２のハンドヘルド装置の前記決定した第２の距離、位置又は向きに対する前記ハンドヘルド装置の前記決定した第１の距離、位置又は向きに基づいて、第１のユーザの身元及び第２のユーザの身元を決定すること、
を更に備える（１７）に記載の方法。
（１９）  前記アプリケーションは、ビデオ・ゲーム・アプリケーション又はメディア・センタ・アプリケーションを備える（１）に記載の方法。
（２０）  前記アプリケーションを制御することは、前記ハンドヘルド装置の向きが変化したとの決定に基づいて、仮想世界中でのアバタの見方を変化させることを更に備える（１）に記載の方法。
（２１）  前記ディスプレイ装置によってレンダリングされた前記一つ以上の基準点の第２のカメラ画像を、前記ハンドヘルド装置によって撮像すること、
前記撮像された第２のカメラ画像中の前記一つ以上の基準点の第２の位置又は第２の角度を決定すること、
少なくとも前記第２のカメラ画像中の前記一つ以上の基準点の決定した第２の位置又は第２の角度に基づいて、前記ハンドヘルド装置が向けられる前記ディスプレイ装置上の前記第２の位置を決定することと、及び、
前記位置と前記第２の位置との比較に基づいて、前記ハンドヘルド装置の動きを決定すること、
を更に備え、アプリケーションは、前記決定した動きに基づいて制御される（１）に記載の方法。
（２２）  一つ以上のコンピュータ、及び、
前記一つ以上のコンピュータで実行されたときに、前記一つ以上のコンピュータに以下の動作を実行させる、その上に蓄積した指令を有する、前記一つ以上のコンピュータに結合されたコンピュータ可読媒体であって、前記動作が、
ディスプレイ装置によってレンダリングされた一つ以上の基準点のカメラ画像を、ハンドヘルド装置によって撮像すること、
前記撮像されたカメラ画像中の前記一つ以上の基準点の位置又は角度を決定すること、
少なくとも前記カメラ画像中の前記一つ以上の基準点の前記決定した位置又は角度に基づいて、前記ハンドヘルド装置が向けられている前記ディスプレイ装置上の位置を決定すること、及び、
前記ディスプレイ装置上の前記決定した位置に基づいて、アプリケーションを制御すること、
を備えるコンピュータ可読媒体、
を備える、システム。
（２３）  データ処理装置によって実行されたときに、前記データ処理装置に以下の動作を実行させる指令を含む、コンピュータ・プログラムがコード化されたコンピュータ記憶媒体であって、前記動作が、
ディスプレイ装置によってレンダリングされた一つ以上の基準点のカメラ画像を、ハンドヘルド装置によって撮像すること、
前記撮像されたカメラ画像中の前記一つ以上の基準点の位置又は角度を決定すること、
少なくとも前記カメラ画像中の前記一つ以上の基準点の前記決定した位置又は角度に基づいて、前記ハンドヘルド装置が向けられている前記ディスプレイ装置上の位置を決定すること、及び、
前記ディスプレイ装置上の前記決定した位置に基づいて、アプリケーションを制御すること、
を備える、コンピュータ記憶媒体。
（２４）  ディスプレイ装置によってレンダリングされた一つ以上の基準点のカメラ画像を、ハンドヘルド装置によって撮像するための手段、
前記撮像されたカメラ画像中の前記一つ以上の基準点の位置又は角度を決定するための手段、
少なくとも前記カメラ画像中の前記一つ以上の基準点の前記決定した位置又は角度に基づいて、前記ハンドヘルド装置が向けられている前記ディスプレイ装置上の位置を決定するための手段、及び、
前記ディスプレイ装置上の前記決定した位置に基づいて、アプリケーションを制御するための手段、
を備える、システム。
（２５）  制御されているアプリケーションの出力を表わすユーザ・インタフェース内に、前記一つ以上の基準点をレンダリングするように、前記ディスプレイ装置を制御するための手段を更に備える（２４）に記載のシステム。
（２６）  少なくとも一つのプロセッサ、及び、
前記少なくとも一つのプロセッサによって実行されたときに、当該装置に、
ディスプレイ装置によってレンダリングされた一つ以上の基準点のカメラ画像を、ハンドヘルド装置によって撮像すること、
前記撮像されたカメラ画像中の前記一つ以上の基準点の位置又は角度を決定すること、
少なくとも前記カメラ画像中の前記一つ以上の基準点の前記決定した位置又は角度に基づいて、前記ハンドヘルド装置が向けられている前記ディスプレイ装置上の位置を決定すること、及び、
前記ディスプレイ装置上の前記決定した位置に基づいて、アプリケーションを制御すること、
を行わせる命令を蓄積するメモリ、
を備える、装置。
（２７）  前記メモリは、前記少なくとも一つのプロセッサによって実行されたときに、出力及び制御されているアプリケーションを表わすユーザ・インタフェース内に、前記一つ以上の基準点をレンダリングするように、前記ディスプレイ装置を制御することを前記装置に更に行わせる追加の命令を蓄積する（２６）に記載の装置。
【図１】
0005710589.tif 000002
【図２】
0005710589.tif 000003
【図３】
0005710589.tif 000004
【図４】
0005710589.tif 000005
【図５】
0005710589.tif 000006
【図６】
0005710589.tif 000007
【図７Ａ】
0005710589.tif 000008
【図７Ｂ】
0005710589.tif 000009
【図７Ｃ】
0005710589.tif 000010
【図７Ｄ】
0005710589.tif 000011
【図８】
0005710589.tif 000012
【図９】
0005710589.tif 000013
【図１０】
0005710589.tif 000014
【図１１】
0005710589.tif 000015
【図１２】
0005710589.tif 000016
【図１３】
0005710589.tif 000017