(57)【特許請求の範囲】
【請求項１】
平面ターゲットの生成およびトラッキングのためのプロセッサで実装される方法であって、
単一の第1の基準画像からかつ後続の画像を処理する前に平面ターゲットを初期化するステップと、
1つまたは複数の後続の画像を処理するステップと、
前記1つまたは複数の後続の画像を前記処理すると、6自由度で前記平面ターゲットをトラッキングするステップと、
前記処理された1つまたは複数の後続の画像から第2の基準画像を選択するステップと、
前記第2の基準画像を選択すると、前記平面ターゲットをより正確な平面ターゲットへ精緻化するステップと
を含み、
前記単一の第1の基準画像から前記平面ターゲットを前記初期化するステップは、
前記単一の第1の基準画像から複数の基準特徴を抽出するステップと、
抽出した基準特徴ごとに、前記平面ターゲット内のそれぞれの基準特徴位置を決定するステップと
をさらに含み、
前記処理された1つまたは複数の後続の画像から前記第2の基準画像を前記選択するステップは、
前記後続の画像の各々の前記処理に基づいて、前記基準特徴位置の1つまたは複数についての更新された基準特徴位置を決定するステップと、
前記単一の第1の基準画像に関連した基準カメラビューと前記後続の画像の1つとそれぞれ関連する複数の後続のカメラビューとの間の平行移動を測定するステップと、
それぞれの後続の画像について、対応する測定された平行移動が平行移動閾値を満たすことを判定するステップと、
前記それぞれの後続の画像を前記第2の基準画像として割り当てるステップと
をさらに含み、
前記平面ターゲットを前記より正確な平面ターゲットへ精緻化するステップは、前記単一の第1の基準画像からの前記基準特徴を前記第2の基準画像からの対応する特徴を用いて三角測量するステップをさらに含む、
方法。
【請求項２】
前記平面ターゲットを初期化するためのパラメータとして前記平面ターゲットの前額平行ビューを仮定するステップ
をさらに含む、請求項1に記載のプロセッサで実装される方法。
【請求項３】
前記単一の第1の基準画像も前記第2の基準画像も前記平面ターゲットの実際の前額平行ビューでない場合、前記単一の第1の基準画像または前記第2の基準画像から前記平面ターゲットの修正されたビューを生成するステップ
をさらに含む、請求項2に記載のプロセッサで実装される方法。
【請求項４】
前記1つまたは複数の後続の画像を処理するステップは、前記1つまたは複数の後続の画像の各々から複数の特徴を抽出するステップをさらに含む、請求項1に記載のプロセッサで実装される方法。
【請求項５】
前記単一の第1の基準画像から前記平面ターゲットを前記初期化するステップは、前記単一の第1の基準画像全体を前記平面ターゲットとして割り当てるステップをさらに含む、請求項1に記載のプロセッサで実装される方法。
【請求項６】
前記単一の第1の基準画像からの前記基準特徴を前記第2の基準画像からの対応する特徴を用いて三角測量するステップは、
前記単一の第1の基準画像および前記第2の基準画像内の前記平面ターゲットによってカバーされる領域を計算するステップと、
前記単一の第1の基準画像および第2の基準画像内の前記平面ターゲットの真の平面の法線を計算するステップと
を含む、請求項1に記載のプロセッサで実装される方法。
【請求項７】
前記平面ターゲットは、前記単一の第1の基準画像内で部分的に閉塞されている、任意の平面形状である、または重力に対して任意の配向である、のうちの1つまたは複数である、請求項1に記載のプロセッサで実装される方法。
【請求項８】
前記平面ターゲットを初期化すると、かつ前記後続の画像を処理する前に、前記平面ターゲットの拡張現実の表示画像を表示するステップと、
6自由度で前記平面ターゲットを前記トラッキングすることに基づいて、前記拡張現実の表示画像を更新するステップと
をさらに含む、請求項1に記載のプロセッサで実装される方法。
【請求項９】
請求項1〜8のいずれか一項に記載の方法をデータ処理デバイスに実行させる実行可能プログラム命令を含む、コンピュータ可読非一時的記憶媒体。
【請求項１０】
平面ターゲットの生成およびトラッキングのための装置であって、
単一の第1の基準画像からかつ後続の画像を処理する前に平面ターゲットを初期化するための手段と、
1つまたは複数の後続の画像を処理するための手段と、
前記1つまたは複数の後続の画像を前記処理すると、6自由度で前記平面ターゲットをトラッキングするための手段と、
前記処理された1つまたは複数の後続の画像から第2の基準画像を選択するための手段と、
前記第2の基準画像を選択すると、前記平面ターゲットをより正確な平面ターゲットへ精緻化するための手段と
を備え、
前記単一の第1の基準画像から前記平面ターゲットを前記初期化するための手段は、
前記単一の第1の基準画像から複数の基準特徴を抽出するための手段と、
抽出した基準特徴ごとに、前記平面ターゲット内のそれぞれの基準特徴位置を決定するための手段と
をさらに備え、
前記処理された1つまたは複数の後続の画像から前記第2の基準画像を前記選択するための手段は、
前記後続の画像の各々の前記処理に基づいて、前記基準特徴位置の1つまたは複数についての更新された基準特徴位置を決定するための手段と、
前記単一の第1の基準画像に関連した基準カメラビューと前記後続の画像の1つとそれぞれ関連する複数の後続のカメラビューとの間の平行移動を測定するための手段と、
それぞれの後続の画像について、対応する測定された平行移動が平行移動閾値を満たすことを判定するための手段と、
前記それぞれの後続の画像を前記第2の基準画像として割り当てるための手段と
をさらに備え、
前記平面ターゲットを前記より正確な平面ターゲットへ前記精緻化するための手段は、前記単一の第1の基準画像からの前記基準特徴を前記第2の基準画像からの対応する特徴を用いて三角測量するための手段を備える、
装置。
【請求項１１】
前記平面ターゲットを初期化するためのパラメータとして前記平面ターゲットの前額平行ビューを仮定するための手段
をさらに備える、請求項10に記載の装置。
【請求項１２】
前記単一の第1の基準画像も前記第2の基準画像も前記平面ターゲットの実際の前額平行ビューでない場合、前記単一の第1の基準画像または前記第2の基準画像から前記平面ターゲットの修正されたビューを生成するための手段
をさらに備える、請求項11に記載の装置。
【請求項１３】
前記1つまたは複数の後続の画像を前記処理するための手段は、前記1つまたは複数の後続の画像の各々から複数の特徴を抽出するための手段をさらに備える、請求項10に記載の装置。
【請求項１４】
前記単一の第1の基準画像から前記平面ターゲットを前記初期化するための手段は、前記単一の第1の基準画像全体を前記平面ターゲットとして割り当てるための手段をさらに備える、請求項10に記載の装置。
【請求項１５】
前記単一の第1の基準画像からの前記基準特徴を前記第2の基準画像からの対応する特徴を用いて三角測量するための手段は、
前記単一の第1の基準画像および前記第2の基準画像内の前記平面ターゲットによってカバーされる領域を計算するための手段と、
前記単一の第1の基準画像および第2の基準画像内の前記平面ターゲットの真の平面の法線を計算するための手段と
を備える、請求項10に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、「In Situ Creation of Planar Natural Feature Targets」と題し2013年3月14日に出願した米国特許出願第13/802,834号の利益および優先権を主張するものであり、これは、その譲受人に譲渡されているとともに、本明細書に全体として参照により組み込まれる。
【０００２】
本明細書に開示されている主題は、一般に、平面ターゲットの生成およびトラッキングに関する。
【背景技術】
【０００３】
環境の3Dマップを構築するために、カメラセンサのデータまたは画像が入力として使用され得る。拡張現実(AR)システムでは、仮想オブジェクトが、デバイスディスプレイの中に挿入可能であり、仮想オブジェクトは、現実/物理世界オブジェクトと相互作用する、または現実/物理世界オブジェクトに置き換えられる。ARシステムは、カメラセンサからの入力を含み、それによって現実世界オブジェクトを画像または映像として記録し、デバイスディスプレイ上にARビューを表示することができる。
【０００４】
ARシステムは、基準に対してのユーザの位置(position)および向き(orientation)(姿勢(pose))を推定するトラッキングシステムを実装することができる。従来のトラッキングシステムは、トラッキングされる基準のタイプによって、ならびにトラッキングを開始するために使用される初期化の手続きによって制限を受ける。たとえば、従来のトラッキングシステムでは、前もって取得された基準または人工のマーカを使用して環境の3次元(3D)モデルのトラッキングを初期化することができる。さもなければ、前もって知られている基準がない場合、オブジェクトは、間違った位置に出現する、または環境のマップのまわりで浮く可能性がある。
【０００５】
単一のカメラを利用するトラッキングシステムは、単一のカメラによって取り込まれた2枚の後続の基準画像から3Dマップを初期化することにやはり頼り得る。2枚の基準画像に基づく従来の技法を用いて3Dマップを生成することは、2枚の基準画像の間のカメラの動きが適切である場合にのみ可能であり、両方の画像内のシーン同士の間で十分な重複も維持する。
【０００６】
従来のトラッキングの実装は、2枚の基準画像を選択するために直接のユーザ入力にやはり頼ることがあり、または3Dマップが初期化され得る前に6自由度(6DoF)のカメラの動きを記録するために追加の視覚的ターゲットを与え得る。
【０００７】
たとえば、いくつかのトラッキング方法は、視覚的フィードバックなしでユーザが特定の直感的でない動きのシーケンスを実行することが必要とされ、その結果、3D再構築法を使用してターゲットの実際の面を見出すことができる。
【０００８】
トラッキング技術の従来の方法の上記の制限の結果として、現在の拡張現実のユーザ体験は、不自然さを感じる可能性がある。その上、大部分のユーザは、2枚の基準画像を用いる従来のトラッキングの初期化に必要な動きを知るまたは理解することがありそうにない。典型的なユーザは、拡張現実システムがシーンについてのトラッキングの更新を表示できる前に特定の動きをユーザが実行しなければならないのかに関してしばしば困惑させられもする。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって、改善されたユーザフレンドリーな3D環境の初期化およびトラッキングが望まれている。
【課題を解決するための手段】
【００１０】
本明細書に開示されている実施形態は、平面ターゲットの生成およびトラッキングのための方法に関し得る。この方法は、単一の第1の基準画像からかつ後続の画像を処理する前に3次元ターゲットを初期化するステップを含む。上記方法は、1つまたは複数の後続の画像を処理するステップと、1つまたは複数の後続の画像を処理すると、6自由度(6DoF)で平面ターゲットをトラッキングするステップとをさらに含む。上記方法は、処理された1つまたは複数の後続の画像から第2の基準画像を選択するステップと、平面ターゲットをより正確な平面ターゲットへ精緻化するステップとをさらに含む。
【００１１】
本明細書に開示されている実施形態は、平面ターゲットの生成およびトラッキングを実行する命令を有するコンピュータ可読非一時的記憶媒体にも関し得る。この媒体は、単一の第1の基準画像からかつ後続の画像を処理する前に3次元ターゲットを初期化するステップを含む。上記媒体は、1つまたは複数の後続の画像を処理するステップと、1つまたは複数の後続の画像を処理すると、6DoFで平面ターゲットをトラッキングするステップとをさらに含む。上記媒体は、処理された1つまたは複数の後続の画像から第2の基準画像を選択するステップと、平面ターゲットをより正確な平面ターゲットへ精緻化するステップとをさらに含む。
【００１２】
本明細書に開示されている実施形態は、単一の第1の基準画像からかつ後続の画像を処理する前に3次元ターゲットを初期化するための手段を備えた装置にも関し得る。この装置は、1つまたは複数の後続の画像を処理するための手段と、1つまたは複数の後続の画像を処理すると、6DoFで平面ターゲットをトラッキングするための手段とをさらに備える。この装置は、処理された1つまたは複数の後続の画像から第2の基準画像を選択するための手段と、平面ターゲットをより正確な平面ターゲットへ精緻化するための手段とをさらに備える。
【００１３】
本明細書に開示されている実施形態は、プロセッサと、平面ターゲットの生成およびトラッキングを実行する命令を記憶するように構成可能な記憶デバイスとを備えたデータ処理システムにさらに関し得る。この命令は、プロセッサに、単一の第1の基準画像からかつ後続の画像を処理する前に3次元ターゲットを初期化させる。上記命令は、さらに、プロセッサに、1つまたは複数の後続の画像を処理させ、処理された1つまたは複数の後続の画像から第2の基準画像を選択させ、6DoFで平面ターゲットをトラッキングさせ、平面ターゲットをより正確な平面ターゲットへ精緻化させる。
【００１４】
他の実施形態では、上記平面ターゲットは、前額平行ビュー(fronto-parallel view)から初期化されるように仮定され、基準画像全体が、平面ターゲットを初期化するために使用される。
【００１５】
他の特徴および利点は、添付図面および詳細な説明から明らかになろう。
【図面の簡単な説明】
【００１６】
【図１】開示した方法を実行できるシステムの一実施形態のブロック図である。
【図２】in-situターゲット生成のための方法の一実施形態の流れ図である。
【図３】カメラ面に前額平行である例示的なターゲットを示す図である。
【図４】平面ターゲットのほぼ正面に位置決めされたデバイスからの第1の視点を示す図である。
【図５】平面ターゲットの正面に位置決めされたデバイスからの第2の視点を示す図である。
【図６】一実施形態における、それぞれのターゲットの表示画像が正確に推定されたターゲット面を有する、図4と同じデバイスの視点を示す図である。
【図７】一実施形態における、それぞれのターゲットの表示画像が正確に推定されたターゲット面を有する、図5と同じデバイスの視点を示す図である。
【図８】in-situターゲット生成のための方法の別の実施形態の流れ図を示す図である。
【発明を実施するための形態】
【００１７】
本明細書において、単語「例示的」または「例」は、「例、実例、または例示」として働くことを意味するように使用されている。「例示的」または「例」として本明細書に説明されている任意の態様または実施形態は、他の態様または実施形態を上回る好ましいまたは有利なものとして必ずしも解釈されない。
【００１８】
図1は、本発明の実施形態を実施することができるシステムを示すブロック図である。このシステムは、汎用プロセッサ161と、画像プロセッサ166と、姿勢プロセッサ168と、グラフィックエンジン167と、メモリ164とを含むことができるデバイス100であり得る。デバイス100は、1つまたは複数のバス177または信号線に結合されているいくつかのデバイスセンサを含むこともでき、この1つまたは複数のバス177または信号線は、プロセッサ161、166、および168の少なくとも1つにさらに結合されている。デバイス100は、モバイルデバイス、ワイヤレスデバイス、携帯電話、携帯情報端末(personal digital assistant)、ウェアラブルデバイス(たとえば、めがね、腕時計、帽子、または同様の身体に取り付けられるデバイス)、モバイルコンピュータ、タブレット、パーソナルコンピュータ、ラップトップコンピュータ、または処理能力を有する任意のタイプのデバイスであり得る。
【００１９】
一実施形態では、デバイス100は、モバイル/ポータブルプラットフォームであり得る。デバイス100は、カメラ114および/またはCMOSセンサ(図示せず)などの画像を取り込むための手段を含むことができるとともに、適宜、加速度計、ジャイロスコープ、電子コンパス、または他の類似する運動感知素子などのモーションセンサ111を含むこともできる。デバイス100は、正面向きカメラおよび/または背面向きカメラ(たとえば、カメラ114)上の画像を取り込むこともできる。デバイス100は、ディスプレイ112などの拡張現実の画像を表示するための手段を含むユーザインターフェース150をさらに含むこともできる。ユーザインターフェース150には、キーボード、キーパッド152、またはデバイス100にユーザが情報を入力できる他の入力デバイスも含まれ得る。必要に応じて、タッチスクリーン/センサを備えたディスプレイ112にバーチャルキーパッドを組み込むことによって、キーボードまたはキーパッド152を不要にすることができる。たとえば、デバイス100が携帯電話などのモバイルプラットフォームである場合、ユーザインターフェース150は、マイクロフォン154とスピーカ156とを含むこともできる。デバイス100は、衛星測位システム受信機、電源デバイス(たとえば、バッテリ)などの様々な他の要素、ならびにポータブルおよび非ポータブルな電子デバイスに典型的には関連した他の構成部品を含むことができる。
【００２０】
デバイス100は、モバイルまたはワイヤレスデバイスとして機能することができるとともに、任意の適切なワイヤレス通信技術に基づいているまたはそうでなければサポートするワイヤレスネットワークを通じた1つまたは複数のワイヤレス通信リンクを介して通信することができる。たとえば、いくつかの態様では、デバイス100は、クライアントまたはサーバとすることができるとともに、ワイヤレスネットワークと関連付けることができる。いくつかの態様では、ネットワークは、ボディエリアネットワーク、またはパーソナルエリアネットワーク(たとえば、超広帯域ネットワーク)を備えることができる。いくつかの態様では、ネットワークは、ローカルエリアネットワークまたは広域ネットワークを備えることができる。ワイヤレスデバイスは、様々なワイヤレス通信技術、プロトコル、または規格(たとえば、CDMA、TDMA、OFDM、OFDMA、WiMAX、およびWi-Fiなど)の1つまたは複数をサポートする、またはそうでなければ使用することができる。同様に、ワイヤレスデバイスは、様々な対応する変調方式または多重化方式の1つまたは複数をサポートするまたはそうでなければ使用することができる。モバイルワイヤレスデバイスは、他のモバイルデバイス、携帯電話、他の有線およびワイヤレスコンピュータ、インターネットウェブサイトなどとワイヤレスで通信することができる。
【００２１】
一実施形態では、本明細書に説明されているようなin-situターゲット生成モジュール(ITC: in-situ target creation module)は、単一の基準画像から即座に平面ターゲットを初期化することができる。モジュールとの用語は、記載した機能を実行することができるハードウェア、ファームウェア、ソフトウェア、またはそれらのいくつかの組合せを指すために用いられている。たとえば、ITCは、単一のカメラ114または単眼の視覚的入力から画像または映像を受け取ることができる。平面ターゲットの初期化は、単一の基準画像を処理すると、任意の他の画像が処理される前に行うことができる。ITCは、単一の基準画像を処理する(たとえば、ターゲットに関連した特徴点を抽出する)ことができ、一組の点の対応関係から6自由度のカメラ位置および配向(姿勢)を(たとえば、2つ以上の画像から特徴を)推定することができる。本明細書に用いられるとき、特徴点の検出、および特徴点に対する6自由度のカメラの姿勢の推定は、ターゲットの「トラッキング」と併せて呼ばれる。ITCは、ユーザの環境の予備知識を用いることなく(たとえば、予め実装されたマップ、CADモデル、シーン内のマーカ、または同様の予め定められたターゲット記述子を用いることなく)、かつ、2つの異なる精密な基準画像を使用することなく、平面ターゲットを初期化することができる。いくつかの実施形態では、ITCは、初期化中に、視覚的フィードバック(たとえば、表示されたターゲットの調整)を行うことができる。
【００２２】
ITCは、画像または映像の入力を受け取った後に、入力された画像または映像の拡張現実(AR)の表示画像を出力または表示することができる。いくつかの実施形態では、ITCは、デバイス100の能力に応じて、単一の画像からターゲットを初期化するとリアルタイムで、ほぼリアルタイムで、短時間のウィンドウ内で、または瞬時に、ターゲットのAR表示画像を表示(たとえば、現実世界のシーンの中への仮想オブジェクトの変更または追加)することができる。いくつかの実施形態では、ITCモジュールは、任意の追加のセンサ入力を用いずに(たとえば、位置を決定するために使用される加速度計、レーザ距離計、ジャイロスコープ、GPS、または他のセンサの助けを借りずに)AR表示画像を初期化および表示することができる。したがって、高価で複雑な複数のカメラアレイシステムを最小化することができ、ITCは一般に入手可能なカメラセンサに結合することができる。たとえば、ITCは、単一のカメラ、スマートフォンなどのモバイルデバイス、またはARめがねなどのウェアラブルデバイスに結合することができる。
【００２３】
一実施形態では、ITCは、取り込んだカメラ画像全体(たとえば、単一の基準画像)をターゲットオブジェクトの前額平行ビューとして扱う(たとえば、初期化中に視点のパラメータ/設定を渡す)ことによって平面ターゲットを初期化することができる。他の実施形態では、ITCは、カメラ画像全体の一部または小区分で平面ターゲットを初期化することができる。ITCは、所定のマーカまたはタグを何ら用いることなく平面ターゲット固有の特徴のトラッキングについての正確なデータセットを生成することができる。
【００２４】
ITCは、単一の基準画像から平面ターゲットを完全に初期化することができるので、トラッキングが開始できる前に追加の特定のカメラの動きまたは入力が使用されることはない。いくつかの実施形態では、ITCは、直ちに、リアルタイムで、ほぼリアルタイムで、または基準画像を受け取る短時間のウィンドウ内でシーンまたはオブジェクトをトラッキングすることができるとともに、コンカレントなリアルタイムARアップデート(たとえば、ターゲットの拡張(augmentation))をディスプレイに与えることができる。単一の初期基準画像の初期化からターゲットのトラッキングを可能にすることによって、ユーザは、自然に(すなわち、特定の指示または命令なしで)カメラを移動させ/カメラの位置を動かし続けるように促され、カメラを用いてターゲットまたはシーンを探索する。異なる角度および視点でのシーンがより多く探索されると、第1の基準画像から十分な平行移動(translation)の試験を受け得る追加の後続の画像をITCが収集することが可能になる。十分な平行移動を伴う画像が検出されると、この画像は、三角測量、またはマップ、ターゲット、およびカメラの姿勢のさらなる精緻化に使用される第2の基準画像として割り当てられ得る。
【００２５】
図2は、in-situターゲット生成の一実施形態の流れ図を示す。ブロック205において、ITCは、(たとえば、単一の基準画像として)取り込んだ画像からかつ任意の他の/後続の画像を処理する前に平面ターゲットを初期化することができる。いくつかの実施形態では、初期化は、直ちに、リアルタイムで、ほぼリアルタイムで、または基準画像取り込みの短時間のウィンドウ内で行うことができる。ITCは、単一の基準画像の処理に基づいて平面ターゲットを生成することができる。本明細書に用いられる場合、平面は、2次元表面を備えたほぼ平坦なオブジェクトを説明するために使用されている。たとえば、取り込んだ画像(たとえば、カメラ114から取り込まれた初期化画像)の処理は、一組の抽出された特徴または特徴点を計算することと、ターゲットの前額平行ビューとして単一の基準画像を扱うこととを含み得る。平面ターゲットの初期化は、以下により詳細に説明される。
【００２６】
ブロック210において、ITCは、1つまたは複数の後続の画像を処理することができる。処理は、後続の画像内の一組の特徴を決定することを含むことができる。この一組の特徴は、単一の基準画像の処理後に決定される同じ特徴であり得るが、1つまたは複数の特徴についての基準特徴位置は、カメラの姿勢が単一の基準画像の処理以降に変わった場合、後続の画像において異なり得る。
【００２７】
ブロック215において、ITCは、1つまたは複数の後続の画像を処理すると、6自由度で平面ターゲット(たとえば、平面固有の特徴のターゲット)をトラッキングすることができる。いくつかの実施形態では、ITCトラッキングは、直ちに、瞬時に、リアルタイムで、ほぼリアルタイムで、または単一の基準画像のITCによる受け取りの後の短時間の期間内で行うことができる。ターゲットのトラッキングは、単一の基準画像からの各特徴点の位置を後続の画像における対応する特徴と比較することと、両方の画像内で見出された同じ特徴点の1つまたは複数の位置の変化を判定することとを含むことができる。後続の画像(たとえば、初期基準画像の後に取り込まれ処理された画像)ごとに、ITCは、更新されたカメラの姿勢を与えるように基準特徴位置を更新することができる。
【００２８】
ITCは、1つまたは複数の後続の画像(たとえば、単一の基準画像の取り込みから後の時点で取り込まれた1つまたは複数の画像)の処理に基づいて、ターゲット(たとえば、シーン、オブジェクト、またはマップ)をトラッキングし続けることができる。いくつかの実施形態では、ITCは、デバイスディスプレイに、ターゲットの拡張現実の表示画像を、直ちに、リアルタイムで、ほぼリアルタイムで、または平面ターゲットの初期化の短時間のウィンドウ内で出力させることもできる。
【００２９】
ブロック216において、ITCは、処理された1つまたは複数の後続の画像から第2の基準画像を選択することができる。たとえば、第2の基準画像は、第1の基準画像に対しての第2の基準画像の平行移動が平行移動閾値を満たすとITCが判定すると選択され得る。
【００３０】
ブロック220において、ITCは、平面ターゲットをより正確な平面ターゲットへさらに精緻化することができる。たとえば、ITCは、平行移動閾値を満たす後続の画像からの蓄積した特徴に基づいてカメラおよびモデル(ターゲット)を最適化することができる。平面ターゲットの精緻化に関するさらなる詳細は後述される。
【００３１】
いくつかの実施形態では、ITCは、直ちに、リアルタイムで、ほぼリアルタイムで、または取り込んだ画像(すなわち、単一の基準画像)を受け取る短時間のウィンドウ内で、かつ任意の後続の画像を処理する前に、平面ターゲットを初期化することができる。いくつかの実施形態では、ITCは、単一の基準画像の処理に完全に基づいて完全な平面ターゲットを生成することができる。
【００３２】
さらに、いくつかの実施形態では、ITCは、オブジェクトまたはシーンマーカなどのターゲット、マップ、変動するセンサデータ測定値、または初期の取り込んだ画像の前に収集された他のターゲットの情報についての所定の情報に関する入力にアクセスできなくてもよいとともに、その入力を求めなくてもよい。
【００３３】
いくつかの実施形態では、デバイス(たとえば、デバイス100)は、直接または手動のユーザのインタラクションが何らなくても(たとえば、プロセッサ161を用いることで)ITCを自動的に開始、実行、またはラン(run)することができる。いくつかの実施形態では、このデバイスは、カメラ(たとえば、カメラ114)から第1の画像を取り込み、平面ターゲットの初期化、トラッキング、および/または拡張現実処理のために画像をITCに送信することができる。代替として、いくつかの実施形態では、ITCは、タッチスクリーンのタッチ、ボタンの押下、または同様の入力によってターゲットの初期化およびトラッキングをユーザに開始するようにデバイスに促させることができる。ITCは、アプリケーションまたはプログラムに組み込まれてもよく、このアプリケーションまたはプログラムは、単一の基準画像を取り込み、ITCをトリガすることができる。
【００３４】
いくつかの実施形態では、取り込んだ画像は、デバイス上に送られた画像フィードから受け取ることができ、またはユーザは、取り込んだ画像のキャプチャを開始することができる。単一の基準画像は、カメラの移動または動きが検出されるときにカメラ114によって自動的に取り込むことができる。取り込んだ画像は、静止カメラ画像またはビデオフィードからのフレームであってもよい。
【００３５】
本明細書に用いられる場合、特徴(たとえば、特徴点または関心点)は、画像の興味深いまたは注目すべき部分である。画像から抽出された特徴は、3次元空間に沿った別個の点(たとえば、x、y、およびz軸上の座標)を表すことができ、すべての特徴点は、関連した特徴位置を有することができる。単一の基準画像は、後続の画像に見出される特徴との比較のために用いられる基準特徴を有することができる。後続の画像中の特徴は、単一の基準画像の基準特徴に適合する(すなわち同じ)であるか、単一の基準画像の基準特徴に適合できないかのいずれかである。特徴検出は、特徴が特定の画素に存在するか判定するためにすべての画素を調べる画像処理作業であり得る。特徴検出は、画像全体、または代替として、画像のある一部または部分を処理し得る。
【００３６】
取り込んだ画像または映像フレームごとに、特徴が検出されると、特徴のまわりのローカル画像パッチを抽出することができる。特徴は、特徴を局所化しそれらの説明を発生させるスケール不変特徴変換(SIFT: Scale Invariant Feature Transform)などのよく知られた技法を用いて抽出することができる。必要に応じて、スピードアップロバスト特徴(SURF: Speed Up Robust Features)、勾配位置オリエンテーションヒストグラム(GLOH: Gradient Location-Orientation histogram)、正規化相互相関(NCC: Normalized Cross Correlation)、または他の比較可能な技法などの他の技法を使用することもできる。画像について抽出された特徴の個数が閾値(たとえば、100箇所の特徴または他の個数の箇所)を超えると判定されるとき、この画像は、単一の基準画像として保存することができ、抽出された特徴は、ターゲットの基準特徴/点(または抽出された特徴点)として定義することができる。
【００３７】
本明細書に用いられるとき、ターゲットは、画像内の単一の孤立したオブジェクト、または複数のオブジェクトから抽出された特徴を含むことができる。たとえば、画像に取り込まれたシーン全体は、複数のオブジェクトを含むことができ、各オブジェクトは、1つまたは複数の抽出された特徴を有することができる。画像またはシーン内のオブジェクトのグループは、グループ全体に関連した集合的な組み合わされた特徴セットを有することもできる。
【００３８】
ITCは、単一の基準画像全体からの特徴を使用して平面ターゲットを生成することができる。ターゲットを決定するために、ITCは、すべての特徴がカメラ面(基準特徴が、見る方向に直角なカメラから同じ距離/深さで初期化され得る)に平行な面にあるという当初の仮定を行うことができる。
【００３９】
初期化された平面ターゲットは、メモリ(たとえば、メモリ164)に記憶され、単一の基準画像から抽出または計算された1つまたは複数の特徴と関連付けられ得る。
【００４０】
一実施形態では、ITCは、直ちに、リアルタイムで、ほぼリアルタイムで、平面ターゲットの初期化の短時間のウィンドウ内でターゲットのトラッキングを可能にすることができる。いくつかの実施形態では、ITCは、単一の基準画像からその後に取り込んだ画像へ、直ちに、リアルタイムで、またはほぼリアルタイムで、カメラのトラッキングを行うことができる。いくつかの実施形態では、本明細書に概説されているトラッキング方法は、部分的に閉塞されたターゲットのITCトラッキングを容易にすることができる。その上、開示されているこの方法は、オブジェクト(たとえば、水平または垂直に並べられたオブジェクトは、ITCトラッキングについて等しく実行可能である)の特定の回転から独立したターゲットのITCトラッキングを容易にすることができる。
【００４１】
一実施形態では、デバイスがターゲット(たとえば、基準画像内の1つまたは複数のオブジェクトまたはシーン)に対して移動するとき、カメラは、異なる視点からターゲットの後続の追加の画像を取り込み、処理し続けることができる。ITCは、処理された画像に関連したAR表示画像をデバイスディスプレイ(たとえば、ディスプレイ112)に出力することができる。一実施形態では、in-situターゲット生成は、リアルタイムフィードバックを行い、さらなるカメラの動きを与えるようにユーザが促されるように何らかのトラッキングエラーの瞬時、リアルタイム、またはほぼリアルタイムの表示を行うことができる。追加のカメラの動きは、ターゲットをさらに精緻化する有用な追加の画像の参照をもたらすことができる。たとえば、初期トラッキングエラーがある場合でも、ITCは、第2の基準画像が発見されるまでユーザによるさらなるシーンの探索を促進するのに十分正確なターゲットの表示画像を与えることができる。第2の基準画像を使用してあらゆるエラーをさらに減少させ、ターゲットを精緻化することができる。一実施形態では、初期の先行のターゲットトラッキングエラーは、第1の基準画像が、トラッキングされているターゲットに対して前額平行ビューに近い/接近しているときに減少させられる。
【００４２】
図3は、カメラ面に前額平行であるターゲットを示す。図3は、平面ターゲット310上の4つの円形オブジェクト360、365、370、および375を示す。4つのオブジェクトは、各オブジェクトが同じZ座標およびカメラ/デバイス面から等しい深さを有するように同じ面に沿って位置する。デバイス100は、現実世界オブジェクト310の表示画像330を(たとえば、デバイスディスプレイ112によって)表示することができる。現実世界オブジェクト310の表示画像330は、以下により詳細に説明されるような拡張現実を含むことができる。
【００４３】
一般に、ITCは、基準画像を得るためにほぼ前額平行である画像に関して動作することができ、正確に前額平行なターゲットの取り込みおよび処理に限定されない。ITCは、第1の基準画像430全体をターゲットとして割り当てることができるとともに、カメラ面がターゲットに対して正確に前額平行でない場合に前額平行ビューを仮定することができる。
【００４４】
図4は、一実施形態における、平面ターゲットのほぼ正面に位置決めするデバイスからの第1の視点を示す。図4は、デバイス100の全体像からのターゲット405(たとえば、絵)のおおよそ前額平行な視点を示す。デバイス100は、現実世界オブジェクト405の表示画像425を(たとえば、デバイスディスプレイ112を通じて)表示することができる。現実世界オブジェクト405の表示画像425は、以下により詳細に説明されるような拡張現実を含むことができる。例の第1の視点400は、ディスプレイ112中の画像全体に基づいたターゲット430の生成を示す。図4は、隅410および415(特徴)が異なるZ座標上にあり得るとともに、カメラ114の面に対して異なる深さを有し得ることを示す。
【００４５】
図5は、一実施形態における、平面ターゲットのほぼ正面に位置決めするデバイス100からの第2の視点を示す。図5は、第1の視点からトラッキングターゲット(すなわち、第1の基準画像430全体)による強い歪み515を示す。基準画像430の歪み515は、歪んだAR表示画像をやはり発生させ得る。たとえば、基準画像420全体を用いる初期の仮定は、近似的であり得るが、トラッキングは、さらなるユーザのインタラクションを促すのに十分正確であり得る。ユーザは、ターゲットの表示画像(たとえば、デバイスディスプレイ112上に表示された歪んだAR)を見ると、デバイス100の位置再位置決めし、ターゲットの代わりの角度を取り込もうと当然試み得る。後続の基準画像が処理された(たとえば、第2の基準画像が、十分な平行移動を有すると判定された)後、ITCは、ターゲットの特徴を正確に三角測量して第1のおよび第2の基準画像における平面ターゲットによって覆われた領域、および第1のおよび第2の基準画像における平面ターゲットの真の平面の法線を計算することができる。
【００４６】
図6および図7は、一実施形態における、それぞれのターゲットの表示画像610および710が正確に推定されたターゲット面を有することを除いて、それぞれ、図4および図5の同じデバイスの視点を示す。たとえば、ITCは、図4中の平面ターゲットとして第1の基準画像全体を用いて初期化し、十分なベースラインまたは平行移動を伴う第2の基準画像を判定すると、ITCは、図6および図7に示されるようにターゲットを正確に推定することができる。
【００４７】
図6および図7は、(たとえば、第1のおよび第2の基準フレームの三角測量後に)正しい反りを有し、ARシステムに使用されるとき、現実世界オブジェクトの表示画像を正確に拡張することができる。たとえば、図6および図7の色が濃くされた領域は、元の絵405以外の異なるオブジェクトに置き換えられるまたはオーバーレイされ得る(たとえば、代替として新しい絵、商業広告、ユーザが選択した画像、映像、またはいくつかの他のARオブジェクトを挿入する)。
【００４８】
一実施形態では、ITCは、画像内のターゲットを識別し、座標系に対してのおよび/またはカメラ面に対してのターゲットの位置および配向を決定する。この情報は、たとえば、ユーザがデバイスをARシステムとして使用することを可能にするために使用でき、または未知の環境を航行するロボットによって使用できる。カメラの位置および配向(姿勢)は、基準の姿勢から観察された姿勢へオブジェクトをもたらす回転および平行移動の変換によって説明することができる。この回転変換は、様々な手法で(たとえば、回転行列、四元数(quaternion)、または他の表示画像として)表すことができる。
【００４９】
一実施形態では、ITCは、カメラ114の動きが観察された場合に更新できるシーンの部分(たとえば、抽出された特徴点)を自動的に選択する。一実施形態では、ITCは、カメラ114が動いており、画像を記録している間に取り込まれた画像から、完全な3Dマップの初期化に使用する第2の基準画像を自動的に選択することができる。さらに、ITCは、初期の平面ターゲットからのカメラ114の動きを推定し、第2の画像フレームが受け取られまたは処理される前に瞬時のカメラのトラッキングを行うことができる。一実施形態では、ITCは、ユーザの入力なしで、任意の他の外部のトラッキング方法に頼ることなく、動作することができる。
【００５０】
上述のように、デバイス100は、ポータブル電子デバイス(たとえば、スマートフォン、専用の拡張現実(AR)デバイス、ゲームデバイス、めがねなどのウェアラブルデバイス、またはAR処理および表示能力を有する他のデバイス)であり得る。本明細書に説明されているARシステムを実装するデバイスは、ショッピングモール、通り(street)、部屋、またはユーザがポータブルデバイスを持って行くことができるどこかなどの様々な環境で使用することができる。ARの文脈では、ユーザは、それらのデバイスのディスプレイを通じて現実世界の表示画像を見るためにデバイス100を使用することができる。ユーザは、現実世界の画像/映像を受け取るそれらのデバイスのカメラを用いることによってそれらのAR可能なデバイスと情報をやりとりし、デバイス上に表示された現実世界の画像/映像の上へ追加または代替の情報を重畳またはオーバーレイすることができる。ユーザがそれらのデバイス上でARの実装を見るとき、現実世界オブジェクトまたはシーンは、デバイスディスプレイ上でリアルタイムに置き換えるまたは変更することができる。仮想オブジェクト(たとえば、テキスト、画像、映像)は、デバイスディスプレイに示されたシーンの表示画像に挿入することができる。
【００５１】
一実施形態では、ARデバイスのユーザ体験は、ユーザの環境の予備知識なしでユーザがデバイスを移動させるときにデバイス上に表示されるARを自動的に更新することによって大いに強化することができる。たとえば、いくつかの実施形態では、ITCは、マップ、CADモデル、シーン内のマーカなどなしで動作することができる。ITCは、複数の異なるかつ精密な画像の取り込みなしで視覚的フィードバック(たとえば、ディスプレイ112上に表されたターゲットへのAR更新)を与えることによってユーザ体験を強化することもできる。いくつかの実施形態では、ARシステムへの視覚的更新は、リアルタイムで、ほぼリアルタイムで、ほとんど瞬時に、または第1の基準画像を取り込む短時間のウィンドウ内でディスプレイおよびユーザに与えられ得る。
【００５２】
デバイス100および/またはカメラ114の移動は、リアルタイムで、またはほぼリアルタイムで、ディスプレイに更新させることができ、ターゲット(たとえば、1つまたは複数のオブジェクトまたはシーン)の拡張がトラッキングされる。初期基準画像の位置から離れるようなデバイスの移動の場合、このデバイスは、代替のビューから追加の画像を取り込むことができる。この代替のビューが表示されるとき、シーンの拡張はより正確になり得、一方、ITCは追加の画像を処理する。一実施形態では、(たとえば、ユーザまたはロボットが開始した移動によって)カメラ114が移動し、カメラの姿勢が変化するとき、ITCは、第2の基準画像として使用される適切な画像を選択することができる。第2の基準画像は、画像のフィードまたはストリームから選択することができる。一実施形態では、初期基準画像から十分な平行移動を伴う画像が発見されると、この発見された画像は、第2の基準画像として自動的に割り当てられ得る。第2の基準画像からの特徴は、第1の画像フレームからの特徴を用いて抽出および三角測量されて、ターゲットを精緻化するととともに、トラッキング精度を向上させることができる。第2の基準画像からの特徴の抽出および三角測量の後、拡張の精度の向上が、実現され得る(たとえば、オブジェクトの周囲の境界は、より精密にフィットでき、シーン内のオブジェクトの表示画像は、より本物のように現れ、カメラ114の姿勢に対してのターゲットの配置は、より正確になり得る)。
【００５３】
一実施形態では、オブジェクトまたはグラフィックが、カメラ114によって取り込まれディスプレイ112上に表示された映像ストリーム(または画像)の中に挿入されまたは組み込まれ得る。いくつかの実施形態では、ITCは、ターゲットを拡張するために追加の情報についてユーザに適宜指示することができる。たとえば、ユーザは、ターゲットの表示画像を拡張するためにユーザのコンテンツを加えることができる。ユーザのコンテンツは、ターゲットの表示画像に組み込まれる、またはそれにオーバーレイされる、またはそれを置き換えることができる画像、3Dオブジェクト、映像、テキスト、または他のコンテンツのタイプであり得る。
【００５４】
ディスプレイは、元のシーンからシームレスなトラッキングでリアルタイムに更新することができる。たとえば、サイン上のテキストは、代わりのテキストに置き換えられてもよく、または3Dオブジェクトは、シーン内に戦略的に配置され、デバイス100上に表示され得る。ユーザがカメラ114の位置および配向を変更するとき、グラフィックまたはオブジェクトは、カメラ114の相対移動にマッチするように調整または拡張することができる。たとえば、仮想オブジェクトが拡張現実ディスプレイに挿入される場合、仮想オブジェクトから離れるようなカメラの移動は、カメラ114によって移動される距離に対して仮想オブジェクトのサイズを減少させることができる。たとえば、仮想オブジェクトから4歩下がると、仮想オブジェクトから半歩下がるのに比べて、仮想オブジェクトのサイズがより大きく減少することになるはずであり、他のすべての変数は等しい。動きのあるグラフィックまたはアニメーションは、ITCによって表されたシーン内で動画化され得る。たとえば、動画化されたオブジェクトは、拡張現実ディスプレイに示されたシーン内で「動く」ことができる。
【００５５】
本明細書に説明されている実施形態が、AR以外の手法(たとえば、平面固有の特徴のターゲットのin-situ生成を利用するロボットの位置決めまたは他の実装)で実装されてもよいことを当業者は認識されよう。
【００５６】
図8は、in-situターゲット生成の一実施形態を示す流れ図である。ブロック810において、ITCは、上述したように、第1の基準画像から平面ターゲットを生成または初期化することができる。
【００５７】
ブロック815において、ITCは、ターゲットのトラッキングを開始することができる。一実施形態では、初期のターゲットトラッキングは、カメラ114が任意の方向に(たとえば、6DoFで)移動するときに開始される。一実施形態では、ITCは、6DoFでターゲットをトラッキングする一方、カメラまたは画像センサは、ターゲットへの少なくとも部分的な視線(すなわち、完全には閉塞されていない)を維持する。
【００５８】
ブロック820において、ITCは、現在の取り込んだ画像をターゲットを精緻化するために使用する第2の基準画像として選択する前に、平行移動またはベースラインの閾値が満たされているか判定することができる。たとえば、平行移動閾値は、第1の基準画像の第1のカメラの姿勢(たとえば、第1の基準画像が取り込まれた瞬間のカメラの姿勢)から第2の基準画像の第2のカメラの姿勢(たとえば、第2の基準画像が取り込まれた瞬間のカメラの姿勢)へのカメラの姿勢の移動量または変化量に基づき得る。カメラの移動により第1のカメラ位置から第2の(すなわち、現在の)カメラ位置へ見る方向の間の角度の形成になる。この角度が十分な個数の特徴に十分大きい(すなわち、予め定められた閾値が実現されている)とき、ITCは、第1の基準画像および第2の基準画像を用いてロバストな三角測量を実行することができる。
【００５９】
一実施形態では、閾値の平行移動が生じるとき、ITCは、平行移動閾値を満たすことに関連した画像(たとえば、後続の/取り込んだ画像)を第2の基準画像として割り当て、ブロック825に続くことができる。さもなければ、ブロック815において、ITCは、初期の平面ターゲットをトラッキングし続けることができる。一実施形態では、ITCは、(たとえば、カメラ114から取り込まれた一連のフレームからの)複数の画像を通じて、各画像の処理を繰り返して、平行移動閾値が満たされているか判定することができる。
【００６０】
ブロック825において、ITCは、第1の基準画像からの1つまたは複数の抽出された/計算された特徴(たとえば、特徴点、または基準特徴)を第2の基準画像と整合することができる。
【００６１】
ブロック830において、ITCは、第1のおよび第2の基準画像ならびにそれらのそれぞれの特徴に基づいて整合された特徴を三角測量することができる。ITCは、異なる見る方向からのオブジェクトまたはシーンの同じ部分を示す2枚の画像を処理することができる。ITCは、相関性(すなわち、第1の画像と第2の画像との両方に見出される同じシーンの特徴点)を見つけることができる。ITCは、第1の基準画像から第2の基準画像へカメラを動かせた動きとともに、これらの対応する特徴点の3D構造を計算することができる。
【００６２】
ブロック835において、ITCは、相対的なカメラの姿勢および特徴点(たとえば、3D特徴座標)をより正確に推定するために、バンドル調整を行うことができる。この特徴点は、3次元空間内の1つまたは複数の点の位置を表すことができ、各点は、3つのデカルト座標によって記述される。異なる視点からいくつかの特徴点を示す一組の画像が与えられた場合、バンドル調整は、シーンの幾何学的配置を記述する3D座標、ならびに画像を取得するために用いられているカメラの相対運動および光学的特徴に関するパラメータを同時に精緻化することとして定義され得る。いくつかの実施形態では、バンドル調整は、観察された画像の位置と予測された画像点との間の再投影誤差を最小化するのを助けることができる。バンドル調整は、観察された画像の特徴に関連したノイズに関する最適な再構成を得るために、ビューイングパラメータ(たとえば、カメラの姿勢、固有キャリブレーション(intrinsic calibration)、および半径方向の歪み)を考慮に入れることができる。
【００６３】
ブロック840において、ITCは、面内の特徴を保持することができる。一実施形態では、ITCは、基準画像が推定した面を表すのにより良く適していることに応じて、単一の基準画像(すなわち、第1の基準画像)または第2の基準画像のいずれかを用いて(たとえば、選択して)、すべての特徴のセットを平面内にある特徴に減らし、新しいターゲットデータセットを生成することができる。一実施形態では、ITCは、第1の基準画像も第2の基準画像も前額平行な閾値に十分に近くない場合、修正されたビューからターゲットを生成するために、第1の基準画像または第2の基準画像の歪みをとる(unwarp)ことができる。
【００６４】
ブロック845において、ITCは、追加の基準画像から蓄積した特徴に基づいてカメラおよびモデル(ターゲット)をさらに最適化することができる。一実施形態では、ITCは、記録されたカメラの移動(たとえば、初期基準画像の後の移動)に基づいてカメラおよびモデルを最適化する。(たとえば、ユーザが開始した移動、またはロボットの移動によって)カメラが移動するとき、ディスプレイは、リアルタイムで更新することができる。リアルタイムフィードバックを受け取ることにより、ユーザにカメラを移動し続けるように促すことができる。追加のカメラの移動は、モデルのさらなる精緻化、およびより優れたトラッキング精度をもたらすことができる。たとえば、拡張現実の文脈において、デバイスは、組み込まれたグラフィックまたはオブジェクトをシーンの中に表示し、グラフィックまたはオブジェクトは、カメラが移動させられる(たとえば、1つまたは複数の6DoFでの移動)ときに、グラフィックまたはオブジェクトが、他のオブジェクトに対するその相対位置または(第1の基準画像から決定された位置および配向に対しての)環境を維持するようにシーン内に位置決めされる。
【００６５】
ブロック850において、ITCは、精緻化されたターゲットをトラッキングし続け、適宜、ターゲットの拡張された表示画像をディスプレイに与えることができる。ITCは、精緻化されたターゲットを継続されたトラッキングおよびAR表示のための別のモジュールに出力することができる。
【００６６】
本明細書中の教示は、様々な装置(たとえば、デバイス)に組み込む(たとえば、その内で実装またはそれによって実行する)ことができる。一実施形態では、ITCは、画像または映像を入力として受け取るプロセッサによって実行されるエンジンとして実装することができる。本明細書に教示されている1つまたは複数の態様は、電話(たとえば、携帯電話)、携帯情報端末(「PDA」)、タブレット、モバイルコンピュータ、ラップトップコンピュータ、タブレット、エンターテイメントデバイス(たとえば、音楽または映像のデバイス)、ヘッドセット(たとえば、ヘッドフォン、イヤホンなど)、医療デバイス(たとえば、生体測定センサ、心拍数モニタ、歩数計、EKGデバイスなど)、ユーザI/Oデバイス、コンピュータ、サーバ、販売時点管理デバイス、エンターテイメントデバイス、セットトップボックス、または任意の他の適切なデバイスに組み込むことができる。これらのデバイスは、様々な電源およびデータの要求を有し得、各特徴または特徴のセットについて生成される異なる電源プロファイルになり得る。
【００６７】
いくつかの態様では、ワイヤレスデバイスは、通信システム用のアクセスデバイス(たとえば、Wi-Fiアクセスポイント)を備えることができる。そのようなアクセスデバイスは、たとえば、有線通信リンクまたはワイヤレス通信リンクを介して送受信機140を通じた別のネットワーク(たとえば、インターネットまたはセルラーネットワークなどの広域ネットワーク)への接続性を与えることができる。したがって、アクセスデバイスは、別のデバイス(たとえば、Wi-Fiステーション)が他のネットワークまたはいくつかの他の機能にアクセスすることを可能にし得る。加えて、デバイスの一方または両方は、ポータブルであってもよく、または、いくつかの場合には、比較的ポータブルでなくてもよいことを理解されたい。
【００６８】
当業者は、情報および信号が、様々な異なる技術および技法のいずれかを使用して表現可能であることを理解されよう。たとえば、上の説明全体を通じて参照可能であるデータ、命令、コマンド、情報、信号、ビット、符号、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光粒子、またはそれらの任意の組合せによって表現可能である。
【００６９】
本明細書に開示されている実施形態に関連して記載されている様々な例示的な論理ブロック、モジュール、エンジン、回路、およびアルゴリズムのステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装することができることを当業者はさらに理解されよう。ハードウェアおよびソフトウェアのこの互換性を明確に示すため、様々な例示的な構成部品、ブロック、モジュール、エンジン、回路、およびステップは、一般にそれらの機能の観点で上述されている。そのような機能がハードウェアまたはソフトウェアとして実装されるかどうかは、システム全体に課された特定のアプリケーションおよび設計の制約次第である。当業者は、特定のアプリケーションごとに様々な手法で説明した機能を実施することができるが、そのような実装の決定は、本発明の範囲から逸脱させるものとして解釈されるべきではない。
【００７０】
本明細書に開示されている実施形態と関係して説明されている様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェアコンポーネント、または本明細書に説明されている機能を実行するように設計されているそれらの任意の組合せによって実装可能または実行可能である。汎用プロセッサは、マイクロプロセッサであってよいが、代替では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってよい。プロセッサは、コンピューティングデバイスの組合せとして、たとえば、DSPとマイクロプロセッサとの組合せとして、複数のマイクロプロセッサの組合せとして、DSPコアと連動する1つもしくは複数のマイクロプロセッサの組合せとして、または任意の他のそのような構成として実装することもできる。
【００７１】
本明細書に開示されている実施形態に関連して記載されている方法またはアルゴリズムのステップは、ハードウェアに、プロセッサによって実行されたソフトウェアモジュールに、または2つの組合せで直接具体化されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当業者に知られている記憶媒体の任意の他の形態で常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み出し、記憶媒体へ情報を書き込むことができるようにプロセッサに結合されている。代替例では、記憶媒体は、プロセッサに組み込まれていてもよい。プロセッサおよび記憶媒体は、ASICに常駐し得る。ASICは、ユーザ端末に常駐し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末内の個別構成部品として常駐し得る。
【００７２】
1つまたは複数の例示的な実施形態では、記載されている機能またはモジュールは、ハードウェア(たとえば、ハードウェア162)、ソフトウェア(たとえば、ソフトウェア165)、ファームウェア(たとえば、ファームウェア163)、またはそれらの任意の組合せで実装することができる。コンピュータプログラム製品としてソフトウェアで実装される場合、機能またはモジュールは、非一時的コンピュータ可読媒体上の1つまたは複数の命令またはコードとして記憶または伝送することができる。コンピュータ可読媒体は、ある場所から別の場所へコンピュータプログラムを伝送するのを助ける任意の媒体を含むコンピュータ記憶媒体と通信媒体の両方を含み得る。記憶媒体は、コンピュータによってアクセスできる任意の利用できる媒体であり得る。例としてであり、限定ではなく、そのような非一時的コンピュータ可読媒体には、RAM、ROM、EEPROM、CD-ROM、または他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気記憶デバイス、または命令またはデータ構造の形態の所望のプログラムコードを移送および記憶するために使用できるとともにコンピュータによりアクセスできる任意の他の媒体が含まれ得る。また、任意の接続は、正しくはコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアがウェブサイト、サーバ、または他の遠隔ソースから同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を用いて伝送される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ディスク(disk)およびディスク(disc)には、本明細書に用いられるとき、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスクが含まれ、ここでディスク(disk)は、通常、データを磁気的に再生し、一方、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記のものの組合せは、非一時的コンピュータ可読媒体の範囲内にやはり含まれるものとする。
【００７３】
開示された実施形態の先の説明は、当業者が本発明を作製または使用できるように与えられている。これらの実施形態の様々な修正形態は、当業者に容易に明らかであり、本明細書に定められた一般的な原理は、本発明の趣旨および範囲から逸脱することなく他の実施形態に適用することができる。したがって、本発明は、本明細書に示された実施形態に限定されるものではないが、本明細書に開示されている原理および新規な特徴と一致する最も幅広い範囲を与えられるべきである。
【符号の説明】
【００７４】
100  デバイス
111  モーションセンサ
112  ディスプレイ、デバイスディスプレイ
114  カメラ
140  送受信機
150  ユーザインターフェース
152  キーパッド
154  マイクロフォン
156  スピーカ
160  制御部
161  汎用プロセッサ、プロセッサ
162  ハードウェア
163  ファームウェア
164  メモリ
165  ソフトウェア
166  画像プロセッサ、プロセッサ
167  グラフィックエンジン
168  姿勢プロセッサ、プロセッサ
177  バス
310  平面ターゲット、現実世界オブジェクト
330  表示画像
360  円形オブジェクト
365  円形オブジェクト
360  円形オブジェクト
375  円形オブジェクト
400  第1の視点
405  ターゲット、現実世界オブジェクト、元の絵
410  隅
415  隅
420  基準画像
425  表示画像
430  第1の基準画像、基準画像、ターゲット
515  歪み
610  表示画像
710  表示画像
【図１】
0006456347.tif 000002
【図２】
0006456347.tif 000003
【図３】
0006456347.tif 000004
【図４】
0006456347.tif 000005
【図５】
0006456347.tif 000006
【図６】
0006456347.tif 000007
【図７】
0006456347.tif 000008
【図８】
0006456347.tif 000009