(57)【要約】デジタルカメラから取り込まれた画像を使用して、３次元ユーザインターフェースの操作を制御するためのシステムおよび方法。一連の画像は、カメラにより取り込まれた画像の連続フレームを追跡するための特徴点を特定すべく解析されうる。カメラが適所でシフトまたは回転される場合の、画像における特徴点の期待挙動に基づいて、複数の分類子を使用して、シフトジェスチャと回転ジェスチャとを判別してもよい。種々の分類子は、シフトジェスチャおよび回転ジェスチャについて投票値を生成してもよく、システムは、履歴ジェスチャ情報を使用して、現在のジェスチャのカテゴリ化を支援することができる。【選択図】図２
2011528819.tif 000002
【特許請求の範囲】
【請求項１】
カメラからの現在のビデオ画像において複数の特徴点を特定することと；
前記特徴点の位置と、前記カメラからの過去のビデオ画像における前記特徴点の位置とを比較することと；
前記特徴点の前記位置の変化から、前記カメラの３次元移動を判断することと；
前記カメラの前記３次元移動の識別をジェスチャ出力として出力することと；
を含む、方法。
【請求項２】
前記判断することは、前記現在の画像と前記過去の画像との間の前記特徴点の位置の差に複数の分類子を適用することによって、前記カメラのシフトジェスチャと回転ジェスチャとを区別する、請求項１に記載の方法。
【請求項３】
前記複数の分類子は、複数の特徴点が共通の移動距離を共有するか否かに基づく第１の分類子を含む、請求項２に記載の方法。
【請求項４】
前記複数の分類子は、前記特徴点のうち異なる特徴点は異なる距離を移動したか否かに基づく第２の分類子を含む、請求項２または３に記載の方法。
【請求項５】
前記複数の分類子は、前記特徴点の平均移動速度に基づく第３の分類子を含む、請求項２から４のいずれか１項に記載の方法。
【請求項６】
前記現在のビデオ画像において特定された特徴点のうち前記過去のビデオ画像にも見られた特徴点の数を数えることと；
前記特定された特徴点の数を、予め定められた、特徴点の最小数と比較することと；
前記特定された特徴点の数が前記予め定められた最小数を下回る場合に、前記現在のビデオ画像において１つ以上の新しい特徴点を特定することによって、前記特徴点を更新することと；
をさらに含む、請求項１から５のいずれか１項に記載の方法。
【請求項７】
前記判断することは、前記更新を実行する頻度に基づいて、前記カメラのシフトジェスチャと回転ジェスチャとを区別する、請求項６に記載の方法。
【請求項８】
前記カメラの移動がシフト移動または回転移動であったことを判断することと；
対応するシフト移動または回転移動を前記カメラの移動履歴に記録するが、前記移動履歴に記録された前記移動とは異なるジェスチャを出力することと；
をさらに含む、請求項１から６のいずれか１項に記載の方法。
【請求項９】
前記移動がシフト移動であると判断された場合、前記出力することにおいて前記移動を回転移動と識別し、
前記移動が回転移動であると判断された場合、前記出力することおいて前記移動をシフト移動と識別する、
請求項８に記載の方法。
【請求項１０】
前記複数の分類子は、
前記複数の特徴点が共通の移動距離を有するか否かに基づく第１の分類子と；
前記特徴点のうちの２つの移動距離における差に基づく第２の分類子と；
新しい特徴点が必要とされる頻度に基づく第３の分類子と；
前記特徴点の平均移動速度に基づく第４の分類子と；
を含む、請求項２に記載の方法。
【請求項１１】
コンピュータ上の３次元ユーザインターフェースを操作するために、携帯電話機カメラを使用すること；
をさらに含む、請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
前記判断することは、前記３次元移動がズーム移動であることを判断する、請求項１から１１のいずれか１項に記載の方法。
【請求項１３】
カメラからビデオ画像データを受信するように構成されるビデオ入力部と、プロセッサとを備える装置であって、前記プロセッサが：
前記カメラからの現在のビデオ画像において複数の特徴点を特定することと；
前記特徴点の位置と、前記カメラからの過去のビデオ画像における前記特徴点の位置とを比較することと；
前記特徴点の前記位置の変化から、前記カメラの３次元移動を判断することと；
前記カメラの前記３次元移動の識別をジェスチャ出力として出力することと；
を実行するように構成される、装置。
【請求項１４】
前記判断することは、前記現在の画像と前記過去の画像との間の前記特徴点の位置の差に複数の分類子を適用することによって、前記カメラのシフトジェスチャと回転ジェスチャとを区別する、請求項１３に記載の装置。
【請求項１５】
前記複数の分類子は、複数の特徴点が共通の移動距離を共有するか否かに基づく第１の分類子を含む、請求項１４に記載の装置。
【請求項１６】
前記複数の分類子は、前記特徴点のうち異なる特徴点は異なる距離を移動したか否かに基づく第２の分類子を含む、請求項１４から１５のいずれか１項に記載の装置。
【請求項１７】
前記複数の分類子は、前記特徴点の平均移動速度に基づく第３の分類子を含む、請求項１４から１６のいずれか１項に記載の装置。
【請求項１８】
前記プロセッサは、さらに、
前記現在のビデオ画像において特定された特徴点のうち前記過去のビデオ画像にも見られた特徴点の数を数えることと；
前記特定された特徴点の数を、予め定められた、特徴点の最小数と比較することと；
前記特定された特徴点の数が前記予め定められた最小数を下回る場合に、前記現在のビデオ画像において１つ以上の新しい特徴点を特定することによって、前記特徴点を更新することと；
を実行するように構成される、請求項１３から１７のいずれか１項に記載の装置。
【請求項１９】
前記判断することは、前記更新を実行する頻度に基づいて、前記カメラのシフトジェスチャと回転ジェスチャとを区別する、請求項１８に記載の装置。
【請求項２０】
前記プロセッサは、さらに、
前記カメラの移動がシフト移動または回転移動であったことを判断することと；
対応するシフト移動または回転移動を前記カメラの移動履歴に記録するが、前記移動履歴に記録された前記移動とは異なるジェスチャを出力することと；
を実行するように構成される、請求項１３から１９のいずれか１項に記載の装置。
【請求項２１】
前記移動がシフト移動であると判断された場合、前記出力することにおいて前記移動を回転移動と識別し、
前記移動が回転移動であると判断された場合、前記出力することおいて前記移動をシフト移動と識別する、
請求項２０に記載の装置。
【請求項２２】
前記複数の分類子は、
複数の前記特徴点が共通の移動距離を有するか否かに基づく第１の分類子と；
前記特徴点のうちの２つの移動距離における差に基づく第２の分類子と；
新しい特徴点が必要とされる頻度に基づく第３の分類子と；
前記特徴点の平均移動速度に基づく第４の分類子と；
を含む、請求項１４に記載の装置。
【請求項２３】
前記装置は、前記カメラに通信可能に接続されるコンピュータであり、前記カメラはコンピュータマウス入力デバイスの一部である、請求項１３から２２のいずれか１項に記載の装置。
【請求項２４】
前記判断することは、前記３次元移動がズーム移動であることを判断する、請求項１３から２３のいずれか１項に記載の装置。
【請求項２５】
カメラからの現在のビデオ画像において複数の特徴点を特定することと；
前記特徴点の位置と、前記カメラからの過去のビデオ画像における前記特徴点の位置とを比較することと；
前記特徴点の前記位置の変化から、前記カメラの３次元移動を判断することと；
前記カメラの前記３次元移動の識別をジェスチャ出力として出力することと；
を実行するための、コンピュータにより実行可能な命令を格納する、コンピュータ可読媒体。
【請求項２６】
前記判断することは、前記現在の画像と前記過去の画像との間の前記特徴点の位置の差に複数の分類子を適用することによって、前記カメラのシフトジェスチャと回転ジェスチャとを区別する、請求項２５に記載のコンピュータ可読媒体。
【請求項２７】
前記複数の分類子は、複数の特徴点が共通の移動距離を共有するか否かに基づく第１の分類子を含む、請求項２６に記載のコンピュータ可読媒体。
【請求項２８】
前記複数の分類子は、前記特徴点のペアにおける相対位置の変化に基づく第２の分類子を含む、請求項２６から２７のいずれか１項に記載のコンピュータ可読媒体。
【請求項２９】
前記複数の分類子は、前記特徴点の平均移動速度に基づく第３の分類子を含む、請求項２６から２８のいずれか１項に記載のコンピュータ可読媒体。
【請求項３０】
前記現在のビデオ画像において特定された特徴点のうち前記過去のビデオ画像にも見られた特徴点の数を数えることと；
前記特定された特徴点の数を、予め定められた、特徴点の最小数と比較することと；
前記特定された特徴点の数が前記予め定められた最小数を下回る場合に、前記現在のビデオ画像において１つ以上の新しい特徴点を特定することによって、前記特徴点を更新することと；
をさらに実行するための、コンピュータにより実行可能な命令を格納する、請求項２５から２９のいずれか１項に記載のコンピュータ可読媒体。
【請求項３１】
前記判断することは、前記更新を実行する頻度に基づいて、前記カメラのシフトジェスチャと回転ジェスチャとを区別する、請求項３０に記載のコンピュータ可読媒体。
【請求項３２】
前記カメラの移動がシフト移動または回転移動であったことを判断することと；
対応するシフト移動を前記カメラの移動履歴に記録するが、前記出力することにおいて前記移動を回転移動として識別することと；
をさらに実行するための、コンピュータにより実行可能な命令を格納する、請求項２５から３１のいずれか１項に記載のコンピュータ可読媒体。
【請求項３３】
前記複数の分類子は、
複数の前記特徴点が共通の移動距離を有するか否かに基づく第１の分類子と；
前記特徴点のペアにおける相対位置における差に基づく第２の分類子と；
新しい特徴点が必要とされる頻度に基づく第３の分類子と；
前記特徴点の平均移動速度に基づく第４の分類子と；
を含む、請求項２６に記載のコンピュータ可読媒体。
【請求項３４】
前記カメラの前記移動がズーム移動であったことを判断すること；
をさらに実行するための、コンピュータにより実行可能な命令を格納する、請求項２５から３３のいずれか１項に記載のコンピュータ可読媒体。
【請求項３５】
前記カメラの移動がシフト移動または回転移動であったことを判断することと；
対応するシフト移動または回転移動を前記カメラの移動履歴に記録するが、前記移動履歴に記録された前記移動とは異なるジェスチャを出力することと；
をさらに実行するためのコンピュータにより実行可能な命令を格納する、請求項２５から３４のいずれか１項に記載のコンピュータ可読媒体。
【請求項３６】
前記コンピュータにより実行可能な命令により、実行時に、
前記移動がシフト移動であると判断された場合、前記出力することにおいて前記移動を回転移動と識別することと；
前記移動が回転移動であると判断された場合、前記出力することおいて前記移動をシフト移動と識別することと；
をさらに生じさせる、請求項３５に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、主にユーザインターフェース制御のためのカメラジェスチャに関する。
【背景】
【０００２】
人間は、視覚的な合図に依存するところが大きい。パーソナルコンピュータのグラフィカルユーザインターフェースは、パーソナルコンピュータが幅広い支持を得るのに一役買っており、ハイパーテキストマークアップランゲージ（HyperText Markup Language; HTML）は、そのデータのグラフィック提示により、インターネットについて同様の役割を果たしている。
【０００３】
これらのビジュアルインターフェースの主要な構成要素は、ユーザ入力のための機構である。ハンドヘルドコンピュータマウス、トラックボール、タッチパッド等の機器は、ビジュアルインターフェースにおいてスクリーン上のカーソルの直感的な移動を可能にするために使用される。しかし、これらは、コンピュータディスプレイ上の２次元ユーザインターフェースへの入力の提供に有用な２次元入力デバイスである。
【０００４】
コンピュータ処理能力が増加するにつれて、３次元的な特徴を組み込むユーザインターフェースがますます増えている。残念ながら、現在使用されているマウスやトラックボール、タッチパッドは、３次元環境の操作には理想的とは言えない。したがって、３次元インターフェースの操作に対する改善された手法の必要性が存在する。
【概要】
【０００５】
本明細書に説明する一定の特徴は、３次元環境の操作に対する新しい手法を提供する。この手法の種々の実施形態では、カメラを操作デバイスとして使用する。ある実施形態では、現在使用されているカメラ（例えば多くの携帯電話機に組み込まれているデジタルカメラ）が、例えば、コンピュータ上の３次元仮想空間においてカーソルを移動させるために、３次元操作ツールとして使用されうる。
【０００６】
ある実施形態では、システムは、カメラからの現在のビデオ画像において複数の特徴点を特定し、前記特徴点の位置と、前記カメラからの過去のビデオ画像における前記特徴点の位置とを比較し、前記特徴点の前記位置の変化から、前記カメラの３次元移動を判断し、前記カメラの前記３次元移動の識別をジェスチャ出力として出力してもよい。
【０００７】
ある実施形態では、前記判断することは、前記現在の画像と前記過去の画像との間の前記特徴点の位置の差に複数の分類子（classifier）を適用することによって、前記カメラのシフトジェスチャと回転ジェスチャとを区別する。
【０００８】
前記分類子は、複数の特徴点が共通の移動距離を共有するか否かに基づく第１の分類子と、前記特徴点のうち異なる特徴点は異なる距離を移動したか否かに基づく第２の分類子と、前記特徴点の平均移動速度に基づく第３の分類子と、新しい特徴点が必要とされた頻度に基づく第４の分類子とを含んでもよい。
【０００９】
ある実施形態では、所定の範囲の特徴点が動作に必要とされうる。ある実施形態では、記録されたジェスチャの履歴ファイルを記録する。実施形態によっては、あるジェスチャは前記履歴においてシフトとして記録されるが、インターフェースアプリケーションには回転として出力されうる（反対も同様である）。
【００１０】
ある実施形態では、携帯電話機カメラは、パーソナルコンピュータ上の３次元ユーザインターフェースを操作するために使用されうる。
【００１１】
他の特徴や側面について、以下に説明する。
【図面の簡単な説明】
【００１２】
添付の図面を考慮して以下の説明を参照することによって、本明細書に説明する特徴及びその利点をより詳しく理解することができる。図面において、同一の参照数字は同一の特徴を表す。
【図１】本明細書に説明する特徴が実装されうるコンピューティングシステムの基本構成要素を図示する。
【図２】例示的景色を写しているハンドヘルドカメラの例示的実施形態を図示する。
【図３】図２におけるカメラの例示的な移動の種類を図示する。
【図４】３次元操作ツールとしてカメラを使用する例示的方法を図示する。
【図５】図２の例示的景色を図示するが、例示的特徴点が特定されている。
【図６】図５の例示的特徴点だけを画素座標とともに図示する。
【図７】ジェスチャをズームとして分類するための、移動距離の比較を図示する。
【図８】シフト移動を回転移動と区別可能である分類子についての移動距離の比較を図示する。
【図９】シフト移動を回転移動と区別可能である第２の分類子についての移動距離の比較を図示する。
【実施形態の詳細な説明】
【００１３】
以下の説明において、説明の一部を形成する添付の図面を参照する。これらの図面において、使用されうる種々の特徴が例示される。本出願の範囲および精神から逸脱することなく、他の実施形態を利用してもよいこと、および構造的および機能的な修正を加えうることを理解されたい。
【００１４】
図１は、本明細書に説明する一側面において、本明細書に説明される特徴が実装されうるコンピューティングシステムの基本構成要素を図示する。システム100は、パーソナルコンピュータ等の汎用コンピュータの形式をとり得る。代替として、システム100は、モバイル携帯電話機、モバイル通信機器、携帯情報端末（personal data assistant; PDA）、ポケットベル、TV機器、音楽プレーヤ、AM/FM/デジタル無線受信機、ビデオプレーヤ、カメラ等の任意の据置型電子機器またはモバイル電子機器として実装されてもよい。
【００１５】
システム100は、プログラマブル論理機器または多目的マイクロプロセッサ等の１つ以上のプロセッサ101であって、本明細書に説明する特徴を提供するように命令を実行してもよいプロセッサ101を備えてもよい。これらの命令は、メモリ機器102等の、１つ以上のコンピュータ可読媒体または電子ストレージ媒体上にコンピュータ可読命令として格納されてもよく、メモリ機器102は、動的および/または静的ランダムアクセスメモリ（random access memory; RAM）、読み取り専用メモリ（read-only memory; ROM）、磁気ディスクもしくは光ディスク、または任意の他の所望のコンピュータ可読ストレージ機器であってもよい。また、システム100は、本明細書に説明するデータ（例えばコンピュータ可読命令、以下に説明するデータ等）のいずれかを格納しうる１つ以上のリムーバブルメディアも備えてもよい。リムーバブルメディア103は、リムーバブルFLASHメモリ、ディスクドライブ、光ディスクまたは磁気ディスク等の、任意の所望の種類であってもよい。
【００１６】
システム100は、情報およびフィードバックをユーザに提供するために、１つ以上の出力機器を備えてもよい。これらの出力機器にはディスプレイ104等のビデオ出力機器が含まれてもよい。ディスプレイ104は、メニュー選択、対話型ディスプレイ、ビデオ、または任意の他の視覚的情報をユーザに表示することができる。また出力機器には、１つ以上のスピーカ105が含まれてもよく、スピーカ105は、ユーザに音声トラックまたは歌を再生するために使用可能である。
【００１７】
また、システム100は、１つ以上のユーザ入力デバイス106を備えてもよい。ユーザ入力デバイス106は、例えば、キーボード（例えばデスクトップ型コンピュータのキーボード、携帯電話機のキーパッド等）上の英数字押しボタン、ノート型パソコン上のタッチセンサー式および/または容量感応性パッド、コンピュータマウス、トラックボール、感知入力範囲またはディスプレイ上のスタイラス等であってもよい。
【００１８】
システム100は、一体型システムとして図示されるが、必要に応じて、種々の個別の構成要素に分離されてもよい。例えば、カメラ107は、有線および/または無線インターフェースを介してシステムに通信可能に接続される、外付け型のハンドヘルドカメラであってもよい。すなわち例えば、携帯電話機等のカメラであってもよい。例えば、カメラ107は、（例えばBluetooth（登録商標）接続を介して）ローカルデスクトップ型コンピュータと通信する携帯電話機の一部であってもよい。プロセッサ101は、このようなコンピュータシステムのプロセッサであってもよく、またはカメラ107と同じ機器内に設けられるものであってもよい。別の実施形態として、カメラ107は、システム100への有線接続により接続される、コンピュータマウス等のハンドヘルド入力デバイスであってもよい。
【００１９】
図２に図示するように、カメラ107は、景色201を撮影し、その景色に対応するデータをプロセッサ101に返送してもよい。データは、*.jpg、*.pdf、*.bmp等の任意の所望のビデオ画像フォーマットであってもよい。景色201自体は、木202、家203、雲204等に例示される種々の要素を有してもよく、撮影された要素中の特徴の特定は、以下に説明するように行われる。
【００２０】
カメラ107は経時的に様々な形態で移動しうる。図３は、３つの主要な移動形態を図示する。図示するように、カメラは、Z軸に一致する視線によって示される。１つの移動形態は、ズーム移動であり、これは、撮影される景色に近づくか離れるかするZ軸に沿った移動を伴う。第２の移動形態は、シフト移動であり、これは、X-Y平面における移動を伴う（100%のシフト移動であれば、Z要素またはズーム要素を含まない）。第３の移動形態は、回転移動である。図示するように、回転は、Y軸を中心に回転することであってもよい。また、回転は、X軸中心またはZ軸中心であってもよいが、本明細書における説明は、X軸中心またはY軸中心の回転に焦点を合わせる。また、Z軸中心の回転を、シフトの種類として調べてもよい。後述のように、本明細書に説明するシステムは、撮影される画像における変化に基づいてカメラの移動を判別し、その移動を使用して、３次元ユーザインターフェース等のインターフェースとインタラクトすることができる。例えば、３次元ユーザインターフェースは、対象の３次元グラフィックシミュレーションを含み、この空間の操作は、従来のコンピュータインターフェースのように、上/下/左/右に移動するだけでなく、インターフェースの内外に移動することも伴い得る。
【００２１】
図４は、カメラ107をジェスチャ入力デバイスとして使用して、ズーム、シフト、および回転入力を、プロセッサ101上で実行する３次元ユーザインターフェースアプリケーションに提供しうる例示的方法を図示する。最初に、ステップ401において、ビデオ画像がカメラ107から取り込まれる。ビデオ画像は、１秒当たり３０フレーム等の、任意の所望の速度でサンプリングされうる。速度は、カメラ107が画像を実際に提供する速度と同一であってもよいか、実装形態によっては、システムは、（例えば５フレーム毎に１つ等）カメラ107が提供する画像の一部だけをサンプリングしてもよい401。
【００２２】
ステップ402において、画像は、既知の特徴点を特定するために処理される。特徴点は、複数の画像において追跡可能である画像における点である。任意の所望のパターン認識プロセスを使用して、特徴点を特定してもよい。図５は、図２の例示的景色201と、いくつかの例示的特徴点501とを図示する。点は、色の対比、深さ、形状、または所望のパターン認識方法により認識可能なあらゆる特徴もしくはパターンに基づいて識別されうる。例示的なパターン認識プロセスが、次の非特許文献１，２に説明されている。
【非特許文献１】Jianbo Shi et al., "Good Features to Track", Proc. EEEE Comput. Soc. Conf.Comput. Vision and Pattern Recogn., pp. 593-600, 1994
【非特許文献２】Bouguet, J.V., "Pyramidal Implementation of the Lucas Kanade Feature Tracker Description of the Algorithm," Intel Corp. Microprocessor Research Labs, 1999
【００２３】
図６は、図５の特徴点501の組の例を取り出して図示したものである。これらの特徴点を特定する際、システムは、２次元X-Y座標値を、視野内における点の位置に割り当て得る。例えば、カメラ画像が、320×240ピクセルに対応する場合、システムは、320×240画素座標系を使用して、視野内における点の位置を記述することができる。図６の例において、点501aの視野上の位置を（50ピクセル，10ピクセル）と表してもよい。
【００２４】
システムは、過去の画像から追跡された所定数の既知の特徴点を必要とするように構成されうる。例えば、システムは、現在の画像における特徴点のうち、過去の画像にも見られた特徴点を、最小で５個、最大で３０個、必要としてもよい。これらの既知の点または追跡点の移動を使用して、カメラ107の運動を解釈する。ステップ402の初めに、過去の追跡点が存在しない場合、システムは、パターン認識プロセスを使用して、所望の最大数の特徴点（例えば30個）を特定し、特定した特徴点を反映するデータをメモリに格納してもよい。ステップ402の後続の処理において、カメラ107が移動して、特徴点が視野の内外に移動する際、システムは、特に追跡点だけを見るようにしてもよい。これらの後続処理402において、システムは、最近検出された特徴点を特定するデータを、前に格納された特徴点情報と比較して、追跡に用いる既知の特徴点を決定してもよい。
【００２５】
ステップ403において、システムは、現在の画像において十分な数の追跡点が検出されたか否かを判断してもよい。この十分性は、任意の所望の範囲であってもよい。例えば、システムは、追跡点の最小数を例えば５個と、追跡点の最大数を例えば３０個と、することとしてもよい。特定された追跡点の数が、この範囲外である場合（例えば５個未満の追跡点しか検出されない）、システムは、新しい特徴点を入手して、使用する追跡点を更新するために、ステップ404に進んでもよい。ステップ404において、パターン認識プロセスを実行して、メモリに格納される追跡点の組を置換するために現在の画像から追加の特徴点を決定するか、または単に、既存の追跡点を補充するために追加の追跡点を識別して、総数を所望のレベル（例えば元々の最大数の30個）まで戻してもよい。新しい組の追跡点が適所にある状態で、システムは、次の画像を取り込むためにステップ401に戻ってもよい。
【００２６】
ステップ403において、現在の画像において十分な追跡点が検出された場合、処理はステップ405に移動し、移動が少しでも検出されるか否かを判断してもよい。これは、追跡点のうちの１つ（またはそれ以上）が所定の距離よりも移動したかを調べることによって実行されうる。例えば、システムは、種々の追跡点について移動した平均距離を探索して確認してもよく、その平均距離が２画素以下である場合、システムは、実際の移動またはジェスチャがまだ発生していないとみなしてもよい。この所定の距離は、ユーザの手が不安定であることを考慮しうる任意の距離であってよい。移動が検出されない場合、処理は次の画像を取り込むためにステップ401に戻ってもよい。
【００２７】
ステップ405において、移動ジェスチャが発生したと判断される場合、処理はステップ406に進み、カメラ107によりズームジェスチャが行われたか否かを判断してもよい。図３に図示するように、ズームジェスチャは、景色に向かうように、または景色から離れるように、Z軸に沿ってカメラを移動させることを伴う。このようなジェスチャによって、特徴点は、画像の外周に向かって、または外周から離れるように移動する。図７Ａ〜図７Ｂは、この移動を図示する。図７Ａでは、６個の追跡点が、過去の画像においては位置A〜Fに示され、現在の画像においてはA1〜F1の位置に示されている。新しい位置A1〜F1は、カメラが景色に向かって（景色に近づくように）移動した結果として、画像の外周に近づいている。また、これらの点は、景色の中心点から離れるように移動する。図７Ｂは、異なるズーム、つまり、カメラが景色から離れるように移動するズームを示し、特徴点は、画像の外周701から離れるように（または中心点に向かって）移動する。
【００２８】
ステップ406において、システムは、視野における追跡点の位置の変化を使用して、ズームジェスチャが実行されたか否かを判断してもよい。これは、多種多様の方式で実行可能である。一例では、システムは、特徴点（例えば図７Ａ〜図７Ｂの例における点A、B、D、E、F）の選択された部分集合を結合することによって多角形を画定し、視野において多角形の総面積が増加または減少したか否かを判断してもよい。増加した場合、カメラ107は、景色に向かってズームしているが、総面積が減少した場合はその反対が当てはまる。別の例として、システムは、特徴点が画像における視野の外周701に近づいているか、外周から遠ざかっているかを調べてもよい。追跡された特徴点が、周囲701の各端に近づいている点を含む場合（例えば少なくとも１つの点が左端に近づいており、少なくとも１つの点が上端に近づいており、少なくとも１つの点が右端に近づいており、少なくとも１つの点が底端に近づいている場合）、カメラ107は、景色に近付いてしてズームしている。代替として、追跡された特徴点が外周から遠ざかっている場合、または中心点に近づいている場合、カメラ107は、景色から離れるように遠くへズームされている。
【００２９】
ステップ406において、カメラ107がズームジェスチャを実行したことが判断される場合、ステップ407においてズーム標示が出力される。この出力は、単に、カメラ107がズームしたというプロセッサ101からの信号であってもよい。ズーム出力信号は、ソフトウェアプロセス（例えばプロセッサ101上で実行する別のプロセス）に提供されてもよく、このソフトウェアプロセスは、独自の処理においてズームジェスチャを使用することができる。例えば、３次元ユーザインターフェースアプリケーションは、メモリ102またはリムーバブルメディア103に格納されてもよく、ズームジェスチャを使用して３次元ユーザインターフェースにおいて対応するズームを実行するようにプロセッサ101上で実行されうる。このように、カメラの移動によって、３次元ユーザインターフェースアプリケーションにおいて対応するカーソルの移動を生じさせ、３次元要素が操作されてもよい。
【００３０】
ステップ408において、ズームジェスチャが行われたという事実を、システムが検出した種々のジェスチャを記録する履歴ファイル（例えばメモリ102）に加えることができる。履歴ファイルは、カメラ107により行われたジェスチャに対応するデータを記録し、過去における所定の時間帯のデータを記録することができる。例えば、履歴は、処理された最後の５フレームのデータを格納してもよい。５〜１０フレームのいずれか等の他の時間帯を使用してもよい。データは、ズームが発生したことを単に示すものであってもよいが、ジェスチャの時間、検出されたズームの量、追跡点と中心点および/または外周との間の距離、ズームの分類に使用する追跡点の数および識別情報、画定される多角形（存在する場合）およびその画定に使用する特徴点、多角形の計算された面積等の、より具体的な情報を含んでもよい。履歴ファイルは、時間帯内に行われた全てのジェスチャを記録してもよく、また、移動が検出されなかった取り込み画像の情報も格納してもよい（例えばステップ405において、移動が検出されない場合、履歴は、移動ジェスチャの欠如を示すために「静的なジェスチャ」を記録することができる）。履歴ファイルを更新した後、システムは、次の画像を取り込むためにステップ401に戻ってもよい。
【００３１】
ステップ406において、ズームジェスチャが行われなかったことをシステムが判断した場合、システムはステップ409に進み、シフトジェスチャまたは回転ジェスチャが行われたかを判断するために分類子を処理してもよい。種々の分類子を使用して、この区別を行ってもよい。各分類子は、カメラがシフトまたは回転ジェスチャを受信したかについて投票的に処理するような、撮影された画像の所定の側面を分析するプロセスまたはプログラムであってもよい。
【００３２】
異なる分類子およびそれらについて考慮すべき側面について説明する。その全ては、投票的なプロセスであってもよい。例えば、一方の分類子は、ジェスチャがシフトであると考えられることを示してもよいが、別の分類子は、ジェスチャが回転であると考えられることを示してもよい。システムは、メモリにおける集計実行において各々について投票を総計し、最終結果（例えばジェスチャがシフトであったという結論を下す）を出力として提供してもよい。
【００３３】
ある実施形態では、各分類子ルーチンは、シフトまたは回転のいずれかに単一の票を投じ得る。他の実施形態では、種々の分類子ルーチンは、その信頼水準に基づいて重み付け票を投じ得る。したがって、例えば、１つの分類子ルーチンが、ジェスチャがシフトである可能性が高いと判断し、別の分類子の不同意が弱かった場合、結果として生じる集計は、ジェスチャがシフトである可能性が高いことを反映することができる。重み付け可能性の例について、分類子とともに説明する。
【００３４】
第１の「全点移動」分類子は、特徴点のうちの全て、またはそのうちの少なくとも所定数が、過去の画像におけるその位置から同じ大きさの距離を移動したか否かを判断することに基づき得る。図８Ａに図示するように、視野における全ての点が同じ大きさだけ移動する場合、ジェスチャは、シフトであった可能性が高い。それに反して、図８Ｂに図示するように、ジェスチャが回転である場合、カメラから遠くに位置する特徴点（例えば図８Ｂにおける特徴点Ｂ）は、近くにある点（例えば図８Ｂにおける特徴点Ａ）よりも、視野内において多くの距離を移動しうる。従って、ジェスチャが回転である場合、各特徴点は、カメラ107に対するその近接性に応じて異なる距離を移動することが期待されうる。
【００３５】
この分類子を実装するために、システムは、まず、追跡された特徴点が視野において移動した距離（例えば200画素）と、移動方向（30度の角度）とを判断してもよい。次いで、システムは、追跡された特徴点のうちの所定数の検出された移動量が同一（シフトジェスチャが行われたことを示唆する）であるか否かを調べてもよく、または回転ジェスチャであるような十分な違いが存在するかを調べてもよい。例えば、システムは、追跡された特徴のうちの全てが同一の移動量を有するか否かを判断することができる。この場合、分類子は、シフトに投票してもよい。同一の移動量を有する点の数が所定数より少ない場合（例えば追跡された点のうちの９０％未満）、または追跡された点の移動量が、閾値（例えば距離および/または角度における１０％の差）を超えて異なった場合、分類子は、シフトに投票しないことを決定し、回転に投票してもよい。
【００３６】
また、「全点移動」分類子は、重み付けされてもよい。例えば、９０％の点しか同一の距離を移動しない場合、分類子は、シフトに対して若干弱い票を投じ得る（例えば0.8の票）。また、移動の距離や角度が若干変動する場合（例えば５％）、分類子は、シフトに対して弱い票を投じ得る。同様に、距離が、別の所定量を超えて異なった場合、または多くの点が異なる移動を有した場合、分類子は、回転に対して強い票を投じ得るが、いくつかの点の移動距離が同じ（例えば10%）である場合、またはいくつかの点（例えば点のうちの１０％）の移動が同じである場合、分類子は、回転に対して、より弱い票を投じ得る。
【００３７】
第２の分類子、または「相対位置変化」分類子は、近接する特徴点の間の相対位置について調査する。この分類子は、第１の分類子と同様に、図８Ａおよび図８Ｂに図示するような、遠い特徴点および近い特徴点に関する移動量の期待差に基づく。しかしながら、特徴点の移動を個々に調査する代わりに、第２の分類子は、ペアとなる特徴点間の距離における変化を調べる。図９Ａおよび図９Ｂにこの概念を図示する。図９Ａに示すように、カメラが位置をシフトする場合、先の画像における位置ＡおよびＢにおける特徴点は、位置Ａ１およびＢ１にある場合に相互にその相対位置を維持すると期待されうる。これらの特徴点（例えば図９Ａにおける四角形）を有する物理的対象は、同一の比率のままである。言い換えると、ＡとＢとの間の距離は、Ａ１とＢ１との間の距離と同一であるはずである。しかし、カメラが回転する場合、対象の見え方が異なり、特徴点間の位置が変化すると期待されうる。したがって、図９Ｂに図示するように、ＡとＢとの間の距離は、Ａ１とＢ１との間の距離と同一ではなく、その角度関係も異なる（ＡとＢとの間では平坦な水平線であるが、Ａ１とＢ１との間では角度のある線である）。
【００３８】
この分類子は多数の方式で実装されうる。例えば、特徴点の座標間の差は、軸毎に計算されうる。したがって、例えば、点A、B、A1、B1が座標（XA, YA）、（XB, YB）、（XA1, YA1）、（XB1, YB1）をそれぞれ有する場合、分類子ルーチンは、X方向およびY方向における位置間の差を計算してもよい。したがって、元の画像では、X方向の距離ΔX = XB - XAであり、一方、Y方向の距離ΔY = YB - YAであってもよい。新しい画像では、その差はΔX1 = XB1 - XA1およびΔY1 = YB1 - YA1であり、差が同一である場合、または相互に近い場合、点は、その相対位置を維持しており、分類子は、回転の代わりにシフトに投票してもよい。したがって、例えば、X軸における距離の変化が、所定値ε（εは10画素等の小さい値である）未満であり、|ΔX - ΔX1| < εであり、Y軸方向においても同様である場合、相対距離は同一であるとしてもよい。反対に、２つの特徴点間のX軸またはY軸距離における差が所定の量ζ（例えば100画素）を超える場合、分類子は、回転が図９Ｂに図示するように相対位置を変更することから、回転ジェスチャに対する投票を登録してもよい。
【００３９】
この「相対位置変化」分類子プロセスは、２つの点だけについて実行されうるが、代替として、追跡された特徴点の全ての可能なペアについて実行されてもよい。各可能な対は、その特定のペアがその相対位置を保持するか否かに応じて、独自の投票（シフトまたは回転）を登録してもよく、この第２の分類子からの全体の投票は、ペア毎の個々の投票に基づき得る。例えば、10個の追跡された特徴点（P1〜P10）が存在する場合、この相対位置計算は、点の全ての可能なペアについて実行可能であり、以下のような表がもたらされる。
【表１】
2011528819.tif 000003
【００４０】
上記例において、可能なペアのうちの３６対は、その相対位置を維持した（すなわちシフトジェスチャが発生したという結論を支持している）が、可能な対のうちの９対は、その相対位置を変更した（すなわち回転ジェスチャが発生したという結論を支持している）。本例により、ペアの８０％（３６／４５）はシフトが発生したことを示唆しており、２０％（９／４５）は回転を示唆している。この第２の分類子の最終投票は、単に、多い方の結果（この場合、シフト）の完全投票であってもよく、または投票は、分割（例えばシフトに対する０．８投票）を反映するように重み付けされてもよい。
【００４１】
第３の分類子である「更新速度」分類子は、システムがステップ404において更新を生成する必要のある頻度に基づき得る。上述のように、更新は、現在の画像に発見されうる追跡された特徴点の数が不十分である場合と、新しい/追加の特徴点が必要とされる場合とに必要とされる。一般に、回転は新しい特徴点を必要とする可能性が高いため（回転中、特徴点は、シフト中よりも視野中を速く移動する）、システムが更新を極めて頻繁に行う場合、それはカメラ107が回転中であることを示唆する。一実施形態では、この頻度は、取り込まれた画像に関して測定されうる。例えば、最近の５つの処理フレームの中で１以上の更新が行われた場合、この分類子は、現フレームにおいて回転ジェスチャへの票を生成してもよい。
【００４２】
判断が所定数の処理画像に基づくことに対する代わりに、システムは、単に、更新が実行される時間を記録してもよい。この第３の分類子は、各更新後に、所定の時間量（例えば500ms）について回転への票を生成してもよい。
【００４３】
また、第４の分類子、または「平均移動速度」分類子を使用してもよい。この第４の分類子は、全ての追跡された特徴点について平均移動速度を計算することと、特徴点がシフト中よりも回転中に視野において速く移動する傾向にあるという事実を踏まえることとを伴い得る。平均速度が第１の所定値（例えば320×240画素フレームにおいて、30fpsでフレーム当たり18画素）を超える場合、分類子は、回転が発生したことを判断する。平均速度が、第２の所定値（例えば320×240画素フレームにおいて、30fpsでフレーム当たり13画素）を下回る場合、この第４の分類子は、シフトが発生したという結論を下してもよい。平均速度がこれらの値の間（例えば例示的環境において13画素と18画素との間）にある場合、分類子は、単に投票を控える。
【００４４】
種々の分類子の全てが画像を処理すると、これらの分類子によりシフトまたは回転に投じられた票の全てがメモリに格納される。次いで、プロセスは、この全てを使用して、現在のジェスチャを解釈する出力を生成し、記録されたジェスチャの履歴を更新する。
【００４５】
ステップ410において、この履歴を確認して、履歴が空であるか否かを判断する。履歴が空である場合（例えば履歴の期間中にジェスチャが登録されていない場合）、プロセスは、ステップ411に移動し、適用した分類子から最高投票数を有するジェスチャ（シフトまたは回転）を特定するエントリにより履歴ファイルを更新してもよい。また、履歴に記録されたジェスチャは、３次元インターフェースアプリケーションによる使用のために、検出されたジェスチャとして出力されうる。出力（および履歴ファイルエントリ）は、シフトまたは回転が検出されたかを単に識別することに加え、シフトの距離（例えば画素）、シフトの方向（例えば角度）、回転の角度方向（例えば時計回り）、または回転の角度量（例えば回転軸に対する角度）を識別する情報を含んでもよい。出力がシフトである場合、システムは、上述の「相対位置変化」分類子において生成された測定および計算に基づいて、シフトの距離および方向を判断してもよい。出力が回転である場合、回転の方向も、「相対位置変化」分類子において生成されたデータから判断可能である（例えば点が右に移動した場合、カメラは左に回転している）。
【００４６】
ステップ410において、履歴が空でない場合、プロセスは、ステップ412へと移動し、シフトへの票と回転への票とでどちらが多かったかを判断してもよい。シフトに多く投票されていた場合、プロセスは、ステップ413に移動し、シフトジェスチャの注記を履歴に追加する。
【００４７】
次いで、ステップ414において、システムは、前に出力されたジェスチャもシフトであったか否かを判断してもよい。上述のように、履歴ファイルは、システムが検出したジェスチャを示す情報を格納してもよい。以下に説明するように、あるジェスチャが出力されるものの、履歴に記録されるジェスチャは異なるケースがあってもよい。したがって、履歴ファイルは、履歴に記録された前のエントリに加え、実際に出力された最後のジェスチャを示す情報も格納してもよい（または別のファイルに格納してもよい）。シフトであった場合、プロセスは、ステップ415に移動し、ステップ415において、シフトは、検出されたジェスチャとして出力される。次いで、プロセスは、次の画像を処理するためにステップ401に戻ってもよい。
【００４８】
しかしながら、ステップ414において前に出力されたジェスチャがシフトでなかった場合、プロセスは、シフトまたは回転のどのジェスチャが履歴においてより頻繁に出現するかを判断するために、ステップ416に移動してもよい。シフトが多く登録されている場合、プロセスはステップ415に移動し、シフトを出力する。一方、回転が多く登録されている場合、または回転とシフトが同数登録されている場合、プロセスはステップ417に移動し、ステップ417において回転を出力する。この興味深い事象の転換、つまり、シフトを履歴に記録するが、回転ジェスチャを出力することは、境界上の状況においてシフトの解釈と回転の解釈との間を頻繁に行き来することを防止するのに有用でありうる。出力を行った後、プロセスは、次の画像を処理するためにステップ401に戻ってもよい。
【００４９】
ステップ412に戻って、現在の集計において回転に対する投票が多い場合、プロセスは、ステップ418に移動し、回転を履歴に記録してもよい。ステップ419において、前に出力されたジェスチャも回転であった場合、プロセスは、ステップ417に移動し、回転ジェスチャを出力する。ステップ419において、前に出力されたジェスチャが回転でなかった場合、プロセスは、シフトまたは回転のどのジェスチャが履歴においてより頻繁に出現するかを判断するためにステップ420に移動する。
【００５０】
回転が多く出現する場合、または回転とシフトが同数出現する場合、プロセスは、ステップ417に移動し、回転を出力する。シフトが多く出現する場合、プロセスは、ステップ415に移動し、シフトを出力する。前述のように、この状況、つまり、回転を履歴に記録するがシフトを出力することは、境界状況について２つの解釈の間を頻繁に行き来することを防止するのに役立つ。
【００５１】
上述の特徴により、デジタルカメラを入力デバイスまたは操作デバイスとして使用した、３次元ユーザインターフェースのための自然で直感的なインターフェースが実現される。ある実施形態では、通常のハンドヘルドコンピュータマウスにカメラを装備することができ、そのマウスを取り付けたパーソナルコンピュータ上の追加ソフトウェアにより、ユーザは、典型的な２次元インターフェースアプリケーションのためには通常のマウスとしてそのデバイスを使用し、３次元インターフェースアプリケーションの使用時にはマウスを持ち上げて、カメラを入力デバイスとして使用することが可能になり得る。別の例では、プロセッサ101は、汎用パーソナルコンピュータプロセッサであってもよく、カメラは、携帯電話機の一部であってもよい。このような構成では、ユーザは、自身の携帯電話機を使用して、パーソナルコンピュータに（例えば無線接続を介して）接続し、携帯電話機カメラを使用して、３次元ユーザインターフェースを操作してもよい。例えば、携帯電話機は、Bluetooth無線接続を使用して、パーソナルコンピュータに接続することができる。
【００５２】
上述の種々の実施形態および特徴は例示であり、必要に応じて変更を加えてもよい。例えば、図１に示す物理的構成は、単なる構成例である。種々の構成要素を別のように配置してもよく、細分化もしくは組み合わせてもよく、または修正してもよいが、依然として本明細書の範囲内にある。
【００５３】
また、図４に示すプロセスは例示であるが、必要に応じて変更を加えてもよい。本明細書の範囲に含まれる所望の結果を達成すべく、ステップの位置を交換したり、いずれかのステップを省略または追加したりしてもよい。
【００５４】
上述の特徴は例である。本特許の範囲は、全ての説明された特徴を必要とするように限定されるべきではなく、むしろ、以下の特許請求の範囲によってのみ限定されるべきである。
【図１】
2011528819.tif 000004
【図２】
2011528819.tif 000005
【図３】
2011528819.tif 000006
【図４】
2011528819.tif 000007
【図５】
2011528819.tif 000008
【図６】
2011528819.tif 000009
【図７】
2011528819.tif 000010
【図８】
2011528819.tif 000011
【図９】
2011528819.tif 000012
【手続補正書】
【提出日】平成23年1月19日(2011.1.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
カメラからの現在のビデオ画像において複数の特徴点を特定することと；
前記複数の特徴点の位置と、前記カメラからの過去のビデオ画像における前記複数の特徴点の位置とを比較することと；
前記特徴点の前記位置の変化から、前記カメラの３次元移動を判断することと；
前記カメラの前記３次元移動の識別をジェスチャ出力として出力することと；
を含む、方法。
【請求項２】
前記判断することは、前記現在の画像と前記過去の画像との間の前記複数の特徴点の位置の差に複数の分類子を適用することによって、前記カメラのシフトジェスチャと回転ジェスチャとを区別する、請求項１に記載の方法。
【請求項３】
前記複数の分類子は、前記複数の特徴点が共通の移動距離を共有するか否かに基づく第１の分類子を含む、請求項２に記載の方法。
【請求項４】
前記複数の分類子は、前記複数の特徴点のうち異なる特徴点は異なる距離を移動したか否かに基づく第２の分類子を含む、請求項２または３に記載の方法。
【請求項５】
前記複数の分類子は、前記複数の特徴点の平均移動速度に基づく第３の分類子を含む、請求項２から４のいずれか１項に記載の方法。
【請求項６】
前記現在のビデオ画像において特定された特徴点のうち前記過去のビデオ画像にも見られた特徴点の数を数えることと；
前記特定された特徴点の数を、予め定められた、特徴点の最小数と比較することと；
前記特定された特徴点の数が前記予め定められた最小数を下回る場合に、前記現在のビデオ画像において１つ以上の新しい特徴点を特定することによって、前記特徴点を更新することと；
をさらに含む、請求項１から５のいずれか１項に記載の方法。
【請求項７】
前記判断することは、前記更新を実行する頻度に基づいて、前記カメラのシフトジェスチャと回転ジェスチャとを区別する、請求項６に記載の方法。
【請求項８】
前記カメラの移動がシフト移動または回転移動であったことを判断することと；
対応するシフト移動または回転移動を前記カメラの移動履歴に記録するが、前記移動履歴に記録された前記移動とは異なるジェスチャを出力することと；
をさらに含む、請求項１から６のいずれか１項に記載の方法。
【請求項９】
前記移動がシフト移動であると判断された場合、前記出力することにおいて前記移動を回転移動と識別し、
前記移動が回転移動であると判断された場合、前記出力することおいて前記移動をシフト移動と識別する、
請求項８に記載の方法。
【請求項１０】
前記複数の分類子は、
前記複数の特徴点が共通の移動距離を有するか否かに基づく第１の分類子と；
前記複数の特徴点のうちの２つの移動距離における差に基づく第２の分類子と；
新しい特徴点が必要とされる頻度に基づく第３の分類子と；
前記複数の特徴点の平均移動速度に基づく第４の分類子と；
を含む、請求項２に記載の方法。
【請求項１１】
コンピュータ上の３次元ユーザインターフェースを操作するために、携帯電話機カメラを使用すること；
をさらに含む、請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
前記判断することは、前記３次元移動がズーム移動であることを判断する、請求項１から１１のいずれか１項に記載の方法。
【請求項１３】
カメラからビデオ画像データを受信するように構成されるビデオ入力部と、プロセッサとを備える装置であって、前記プロセッサが：
前記カメラからの現在のビデオ画像において複数の特徴点を特定することと；
前記複数の特徴点の位置と、前記カメラからの過去のビデオ画像における前記複数の特徴点の位置とを比較することと；
前記複数の特徴点の前記位置の変化から、前記カメラの３次元移動を判断することと；
前記カメラの前記３次元移動の識別をジェスチャ出力として出力することと；
を実行するように構成される、装置。
【請求項１４】
前記プロセッサが、請求項２から１２のいずれか１項に記載の方法を実行するように構成される、請求項１３に記載の装置。
【請求項１５】
コンピュータに、請求項１から１２のいずれか１項に記載の方法を実行させるように構成される命令を備える、コンピュータプログラム。
【国際調査報告】
2011528819.tif 000013
2011528819.tif 000014
2011528819.tif 000015
2011528819.tif 000016