(57)【特許請求の範囲】
【請求項１】
単眼視覚同時局所化およびマッピングのための機械実行型の方法であって、
環境の三次元(3D)マップを受け取るステップであって、前記3Dマップが、
各キーフレームがパノラマキーフレームまたはレギュラーキーフレームである2つ以上のキーフレーム内で観察された有限深度を有する特徴と、
1つまたは複数のパノラマキーフレーム内で観察された無限深度を有する特徴であって、無限特徴が推定された深度を有さない特徴である特徴と
を備えるステップと、
カメラが6自由度(6DOF)移動から、マッピングされない場面領域へ向かうパノラマカメラ移動へ移行すると、基準パノラマキーフレームを選択するステップであって、前記パノラマカメラ移動が3自由度(3DOF)における回転カメラ移動であり、前記6DOF移動が、回転移動に加えた移動、または回転移動以外の移動を含むステップと、
前記基準パノラマキーフレームからの有限深度特徴観察および無限深度特徴観察を前記3Dマップに追加することにより、前記基準パノラマキーフレームを前記3Dマップの中に組み込むステップと、
入力画像フィードからの画像フレーム内で観察された前記3Dマップの有限深度特徴または無限深度特徴から6DOF移動でカメラを追跡するステップと
を含む機械実行型の方法。
【請求項２】
前記3Dマップ内に位置決めされた局所パノラママップを初期化するステップをさらに含み、前記3Dマップ内に位置決めされた前記局所パノラママップを初期化する前記ステップが、
前記基準パノラマキーフレームを前記局所パノラママップに割り当てるステップと、
前記基準パノラマキーフレームの6DOFポーズを使用して前記局所パノラママップを前記3Dマップ内に位置決めするステップと
を含む、請求項1に記載の方法。
【請求項３】
連続パノラマカメラ移動がマッピングされない場面領域へ向かうと、1つまたは複数の従属パノラマキーフレームを選択するステップであって、前記1つまたは複数の従属パノラマキーフレームが基準パノラマキーフレームに従属するステップと、
無限深度特徴観察を前記3Dマップに追加することにより、前記1つまたは複数の従属パノラマキーフレームを前記3Dマップの中に組み込むステップと、
前記1つまたは複数の従属パノラマキーフレームを局所パノラママップに追加することにより、前記局所パノラママップを拡張するステップと
をさらに含む、請求項1に記載の方法。
【請求項４】
前記3Dマップに対して前記1つまたは複数のパノラマキーフレームを局所化するステップをさらに含み、前記局所化するステップが、
前記1つまたは複数のパノラマキーフレーム内の前記有限深度特徴の二次元(2D)観察を見出すステップと、
前記3Dマップと前記有限深度特徴の前記2D観察との間の3D-2D符合を決定するステップと、
前記3D-2D符合を使用して前記1つまたは複数のパノラマキーフレームの6DOFカメラ位置および配向を推定するステップと
を含む、請求項1に記載の方法。
【請求項５】
無限深度特徴を第1の局所化パノラマキーフレームから前記3Dマップのための新しい有限深度特徴に変換するステップをさらに含み、前記変換するステップが、
第2の局所化キーフレーム内の前記無限深度特徴の2D観察を見出すステップであって、前記第2の局所化キーフレームが局所化されたパノラマキーフレームまたは局所化されたレギュラーキーフレームであるステップと、
前記第2の局所化キーフレームの前記2D観察から2D-2D符合を決定するステップと、
前記2D-2D符合ならびにキーフレーム対の6DOFカメラ位置および配向に基づいて前記新しい有限深度特徴を三角測量するステップと
を含む、請求項1に記載の方法。
【請求項６】
前記追跡するステップが、
前記3Dマップの前記有限深度特徴と前記無限深度特徴との間の符合、および入力画像フィードからの画像フレームを確立するステップと、
前記確立された符合に基づいて6DOFカメラ位置および配向を推定するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
前記追跡するステップが、
入力画像フィードからの画像フレーム内の無限深度特徴のみを観察すると、6DOFカメラ移動追跡からパノラマカメラ移動追跡に切り換えるステップと、
前記入力画像フィードからの前記画像フレーム内の有限深度特徴を観察すると、パノラマカメラ移動追跡から6DOFカメラ移動追跡に切り換えるステップと
をさらに含む、請求項1に記載の方法。
【請求項８】
実行されたとき、データ処理デバイスが請求項1乃至7の何れか1項に記載の方法を実行することになる実行可能プログラム命令を含んだ機械可読非一時的記憶媒体。
【請求項９】
単眼視覚同時局所化およびマッピングのための装置であって、
環境の三次元(3D)マップを受け取るための手段であって、前記3Dマップが、
各キーフレームがパノラマキーフレームまたはレギュラーキーフレームである2つ以上のキーフレーム内で観察された有限深度を有する特徴と、
1つまたは複数のパノラマキーフレーム内で観察された無限深度を有する特徴であって、無限特徴が推定された深度を有さない特徴である特徴と
を備える手段と、
カメラが6自由度(6DOF)移動から、マッピングされない場面領域へ向かうパノラマカメラ移動へ移行すると、基準パノラマキーフレームを選択するための手段であって、前記パノラマカメラ移動が3自由度(3DOF)における回転カメラ移動であり、前記6DOF移動が、回転移動に加えた移動、または回転移動以外の移動を含む手段と、
前記基準パノラマキーフレームからの有限深度特徴観察および無限深度特徴観察を前記3Dマップに追加することにより、前記基準パノラマキーフレームを前記3Dマップの中に組み込むための手段と、
入力画像フィードからの画像フレーム内で観察された前記3Dマップの有限深度特徴または無限深度特徴から6DOF移動でカメラを追跡するための手段と
を備える装置。
【請求項１０】
前記3Dマップ内に位置決めされた局所パノラママップを初期化するための手段をさらに備え、前記3Dマップ内に位置決めされた前記局所パノラママップを初期化するための前記手段が、
基準パノラマキーフレームを前記局所パノラママップに割り当てるための手段と、
前記基準パノラマキーフレームの6DOFポーズを使用して前記局所パノラママップを前記3Dマップ内に位置決めするための手段と
を備える、請求項9に記載の装置。
【請求項１１】
連続パノラマカメラ移動がマッピングされない場面領域へ向かうと、1つまたは複数の従属パノラマキーフレームを選択するための手段であって、前記1つまたは複数の従属パノラマキーフレームが基準パノラマキーフレームに従属する手段と、
無限深度特徴観察を前記3Dマップに追加することにより、前記1つまたは複数の従属パノラマキーフレームを前記3Dマップの中に組み込むための手段と、
前記1つまたは複数の従属パノラマキーフレームを局所パノラママップに追加することにより、前記局所パノラママップを拡張するための手段と
をさらに備える、請求項9に記載の装置。
【請求項１２】
前記3Dマップに対して前記1つまたは複数のパノラマキーフレームを局所化するための手段をさらに備え、前記局所化するための手段が、
前記1つまたは複数のパノラマキーフレーム内の前記有限深度特徴の二次元(2D)観察を見出すための手段と、
前記3Dマップと前記有限深度特徴の前記2D観察との間の3D-2D符合を決定するための手段と、
前記3D-2D符合を使用して前記1つまたは複数のパノラマキーフレームの6DOFカメラ位置および配向を推定するための手段と
を備える、請求項9に記載の装置。
【請求項１３】
無限深度特徴を第1の局所化パノラマキーフレームから前記3Dマップのための新しい有限深度特徴に変換するための手段をさらに備え、前記変換するための手段が、
第2の局所化キーフレーム内の前記無限深度特徴の2D観察を見出すための手段であって、前記第2の局所化キーフレームが局所化されたパノラマキーフレームまたは局所化されたレギュラーキーフレームである手段と、
前記第2の局所化キーフレームの前記2D観察から2D-2D符合を決定するための手段と、
前記2D-2D符合ならびにキーフレーム対の6DOFカメラ位置および配向に基づいて前記新しい有限深度特徴を三角測量するための手段と
を備える、請求項9に記載の装置。
【請求項１４】
前記追跡するための手段が、
前記3Dマップの前記有限深度特徴と前記無限深度特徴との間の符合、および入力画像フィードからの画像フレームを確立するための手段と
前記確立された符合に基づいて6DOFカメラ位置および配向を推定するための手段と
をさらに備える、請求項9に記載の装置。
【請求項１５】
前記追跡するための手段が、
入力画像フィードからの画像フレーム内の無限深度特徴のみを観察すると、6DOFカメラ移動追跡からパノラマカメラ移動追跡に切り換えるための手段と、
前記入力画像フィードからの前記画像フレーム内の有限深度特徴を観察すると、パノラマカメラ移動追跡から6DOFカメラ移動追跡に切り換えるための手段と
をさらに備える、請求項9に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連行為の相互参照
本出願は、参照により明確に本明細書に組み込まれている、2013年4月30日に出願した米国仮出願第61/817,808号の利益を主張するものである。
【０００２】
本明細書において開示される主題は、一般に、同時局所化およびマッピングに関する。
【背景技術】
【０００３】
視覚同時局所化およびマッピング(SLAM:Simultaneous Localization and Mapping)システムは、カメラが6自由度(6DOF:Six Degrees of Freedom)で動く際に、単一のカメラの入力を処理し、かつ、環境の三次元(3D:Three Dimensional)モデル(たとえばSLAMマップ)を連続的に作成することができる。視覚SLAMシステムは、3Dモデルに対するカメラの位置および配向(ポーズ)を同時に追跡することができる。キーフレームをベースとする視覚SLAMシステムは、入ってくるカメラ画像ストリームまたはフィードから離散的に選択されたフレームを処理することができる。キーフレームをベースとする視覚SLAMシステムは、総体的カメラ運動を想定して、運動からの構造技法を適用して3D特徴マップを生成する。
【０００４】
視覚SLAMシステムには、3Dマップ特徴を三角測量するために、場合によっては、キーフレーム対間の並進カメラ運動または総体的カメラ運動によって誘導される十分な視差が必要である。したがってすでに選択済みのキーフレームに対して、選択アルゴリズムは候補フレームを拒絶することがあり、相対回転のみカメラ運動が低下する。マッピングされない領域に対する回転のみカメラ運動は、新しく選択されたキーフレームの不足のため、視覚SLAMシステムを停止させることがある。カメラ追跡は、マップ非可用性のため、最終的には失敗することになる。その結果、視覚SLAMシステムは、追跡を再開するために、再局所化モードに強制されることになる。したがって改良型追跡技法およびマッピング技法が望ましい。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書において開示される実施形態は、単眼視覚同時局所化およびマッピングのための方法に関連付けることができる。一実施形態では、画像を処理するための機械実施方法は、環境の3Dマップを受け取る。一実施形態では、3Dマップは、2つ以上のキーフレーム内で観察された有限深度を有する特徴を含み、各キーフレームは、パノラマキーフレームまたはレギュラーキーフレームである。また、3Dマップは、1つまたは複数のパノラマキーフレーム内で観察された無限深度を有する特徴を同じく含む。一実施形態では、方法は、入力画像フィードからの画像フレーム内で観察された3Dマップの有限深度特徴または無限深度特徴から6自由度(6DOF)でカメラを追跡する。
【０００６】
本明細書において開示される実施形態は、単眼視覚同時局所化およびマッピングのための装置に関連付けることができる。装置は、環境の3Dマップを受け取るための手段を含むことができる。一実施形態では、3Dマップは、2つ以上のキーフレーム内で観察された有限深度を有する特徴を含み、各キーフレームは、パノラマキーフレームまたはレギュラーキーフレームである。また、3Dマップは、1つまたは複数のパノラマキーフレーム内で観察された無限深度を有する特徴を同じく含む。一実施形態では、装置は、入力画像フィードからの画像フレーム内で観察された3Dマップの有限深度特徴または無限深度特徴から6自由度(6DOF)でカメラを追跡するための手段を含むことができる。
【０００７】
本明細書において開示される実施形態は、単眼視覚同時局所化およびマッピングのためのデバイスに関連付けることができ、デバイスは、環境の3Dマップを受け取るためのハードウェアおよびソフトウェアを備えている。デバイスは、環境の三次元(3D)マップを受け取るための命令を処理することができる。一実施形態では、3Dマップは、2つ以上のキーフレーム内で観察された有限深度を有する特徴を含み、各キーフレームは、パノラマキーフレームまたはレギュラーキーフレームである。また、3Dマップは、1つまたは複数のパノラマキーフレーム内で観察された無限深度を有する特徴を同じく含む。一実施形態では、デバイスは、入力画像フィードからの画像フレーム内で観察された3Dマップの有限深度特徴または無限深度特徴から6自由度(6DOF)でカメラを追跡するための命令を処理することができる。
【０００８】
本明細書において開示される実施形態は、デバイス内のプロセッサによって実行されると、それに応答して、環境の3Dマップの受取りを実行する命令を記憶した非一時的記憶媒体に関連付けることができる。媒体は、環境の三次元(3D)マップを受け取る命令を記憶することができる。一実施形態では、3Dマップは、2つ以上のキーフレーム内で観察された有限深度を有する特徴を含み、各キーフレームは、パノラマキーフレームまたはレギュラーキーフレームである。また、3Dマップは、1つまたは複数のパノラマキーフレーム内で観察された無限深度を有する特徴を同じく含む。一実施形態では、媒体は、入力画像フィードからの画像フレーム内で観察された3Dマップの有限深度特徴または無限深度特徴から6自由度(6DOF)でカメラを追跡する命令を記憶することができる。
【０００９】
他の特徴および利点は、添付の図面から、また、詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】一実施形態における、本発明の態様を実践することができるシステムのブロック図である。
【図２】一実施形態における、混成SLAMの流れ図である。
【図３】一実施形態における、キーフレームと特徴との間の混成SLAMマップ表現の第1のステージを示す図である。
【図４】一実施形態における、キーフレームと特徴との間の混成SLAMマップ表現の第2のステージを示す図である。
【図５】一実施形態における、混成SLAM初期化の流れ図である。
【図６】一実施形態における、総体的カメラ運動および純回転カメラ運動が交番する、6DOFおよびパノラママッピングならびに追跡段階を示す図である。
【図７】一実施形態における、マッピング中のキーフレーム選択の異なる状態に対する状態線図である。
【図８】一実施形態における、追跡構成要素およびマッピング構成要素を含んだ混成SLAMシステムのブロック図である。
【発明を実施するための形態】
【００１１】
「例示的」または「例」という単語は、本明細書では「例、事例、または例示の働きをすること」を意味するために使用される。「例示的」もしくは「例」として本明細書に記載される任意の態様または実施形態は、他の態様もしくは実施形態に比べて好ましいか、または有利であると必ずしも解釈されるべきではない。
【００１２】
一実施形態では、6DOF SLAMおよびパノラマSLAMの機能は、組み合わせて、正規の6DOF動作のための完全に三角測量されたキーフレーム、ならびに制約が回転のみであるキーフレームの両方を受け入れることができる、頑強な運動の混成キーフレームをベースとするSLAMシステムにすることができる。一実施形態では、混成SLAM(HSLAM:Hybrid SLAM)は、純回転をうまく処理することができ、また、継目のない追跡経験をユーザに提供することができる。一実施形態では、HSLAMマッピングは、6DOFおよびパノラマキーフレームを利用して、三次元(3D)マップ(たとえば広域SLAMマップ)の新しい部分を推定している。HSLAMは、回転全体にわたって、場面のマッピングされる部分から離れた3Dマップを連続的に追跡することができ、また、回転のみ運動(たとえばパノラマ追跡)の間に観察されたカメラ画像からの情報を使用して3Dマップを更新することができる。一実施形態では、HSLAMは、単一のカメラセンサをあるタイプの単眼視覚SLAMとして使用して実施することができる。以下で説明されるように、HSLAM動作は、本明細書において説明される機能を実施するために、プロセッサの制御の下でデバイス100によって実施することができる。
【００１３】
図1は、本発明の実施形態を実践することができるシステムを示すブロック図である。
システムは、汎用プロセッサ161、画像処理モジュール171、6DOF SLAMモジュール173、パノラマモジュール175およびメモリ164を含むことができるデバイス100であってもよい。また、デバイス100は、1つまたは複数のバス177に結合された多数のデバイスセンサ、または少なくとも画像処理モジュール171、6DOF SLAMモジュール173およびパノラマSLAM175モジュールにさらに結合された信号線を含むことも可能である。モジュール171、173および175は、図には、明確にするためにプロセッサ161および/またはハードウェア162とは別に示されているが、これらは、ソフトウェア165およびファームウェア163の中の命令に基づいて、プロセッサ161および/またはハードウェア162の中で結合および/または実施することができる。制御ユニット160は、以下で説明される混成SLAMを実行する方法を実施するように構成することができる。たとえば制御ユニット160は、図2で説明されるモバイルデバイス100の機能を実施するように構成することができる。
【００１４】
デバイス100は、モバイルデバイス、ワイヤレスデバイス、セル電話、拡張現実感デバイス(AR:Augmented Reality)、パーソナルデジタルアシスタント、着用可能デバイス(たとえば眼鏡、腕時計、帽子または同様の身体装着デバイス)、モバイルコンピュータ、タブレット、パーソナルコンピュータ、ラップトップコンピュータ、データ処理デバイス/システム、または処理能力を有する任意のタイプのデバイスであってもよい。
【００１５】
一実施形態では、デバイス100はモバイル/携帯型プラットフォームである。デバイス100は、カメラ114などの画像を捕獲するための手段を含むことができ、また、任意選択で、加速度計、ジャイロスコープ、電子コンパスまたは他の同様の運動知覚要素などの運動センサ111を含むことも可能である。また、デバイス100は、前向きカメラまたは後向きカメラ(たとえばカメラ114)上の画像を捕獲することも可能である。デバイス100は、拡張現実感画像を表示するための、ディスプレイ112などの手段を含むユーザインターフェース150をさらに含むことができる。また、ユーザインターフェース150は、キーボード、キーパッド152、またはユーザが情報をデバイス100中に入力することができる他の入力デバイスを含むことも可能である。必要に応じて、タッチスクリーン/センサを有するディスプレイ112の中に仮想キーパッドを統合することにより、キーボードまたはキーパッド152を除去することができる。たとえば、デバイス100がセルラー電話のようなモバイルプラットフォームであるとき、ユーザインターフェース150は、マイクロフォン154およびスピーカー156も含み得る。デバイス100は、衛星位置システム受信機、電力デバイス(たとえば電池)などの本開示には無関係の他の要素、ならびに典型的には携帯型電子デバイスおよび非携帯型電子デバイスに結合された他の構成要素を含むことができる。
【００１６】
デバイス100は、モバイルデバイスまたはワイヤレスデバイスとして機能することができ、また、任意の適切なワイヤレス通信技術に基づくか、さもなければサポートするワイヤレスネットワークを通した1つまたは複数のワイヤレス通信リンクを介して通信することができる。たとえばいくつかの態様では、デバイス100は、クライアントまたはサーバであってもよく、また、ワイヤレスネットワークに結合することができる。いくつかの態様では、ネットワークは、ボディエリアネットワークまたはパーソナルエリアネットワーク(たとえば超広帯域ネットワーク)を備えることができる。いくつかの態様では、ネットワークは、ローカルエリアネットワークまたは広域ネットワークを備えることができる。ワイヤレスデバイスは、様々なワイヤレス通信技術、プロトコル、またはたとえば3G、LTE、Advanced LTE、4G、CDMA、TDMA、OFDM、OFDMA、WiMAXおよびWi-Fiなどの規格のうちの1つまたは複数をサポートするか、さもなければ使用することができる。同様に、ワイヤレスデバイスは、様々な対応する変調スキームまたは多重化スキームのうちの1つまたは複数をサポートするか、さもなければ使用することができる。モバイルワイヤレスデバイスは、他のモバイルデバイス、セルラーフォーン、他のワイヤードコンピュータおよびワイヤレスコンピュータ、インターネットウェブサイト、等々と無線で通信することができる。
【００１７】
上で説明したように、デバイス100は、携帯型電子デバイス(たとえばスマートフォン、専用拡張現実感(AR)デバイス、ゲームデバイス、またはAR処理能力および表示能力を有する他のデバイス)であってもよい。本明細書において説明されるARシステムを実施するデバイスは、様々な環境(たとえばショッピングモール、道路、事務所、家庭、またはユーザが自分のデバイスを使用することができる場所)で使用することができる。ユーザは、広範囲にわたる様々な状況で自分のデバイス100の複数の特徴とインターフェースすることができる。AR文脈では、ユーザは、自分のデバイスを使用して、自分のデバイスのディスプレイを通してリアルワールドの表現を見ることができる。ユーザは、自分のデバイスのカメラを使用してリアルワールド画像/ビデオを受け取り、かつ、デバイス上に表示されたリアルワールド画像/ビデオの上に追加情報または代替情報を重ねる方法で画像を処理することにより、自分のAR可能デバイスと対話することができる。ユーザは、自分のデバイス上でAR実施を見る際に、リアルワールド対象または場面をデバイスディスプレイ上で、実時間で置き換えるか、あるいは変更することができる。仮想対象(たとえばテキスト、画像、ビデオ)は、デバイスディスプレイ上に描写された場面の表現の中に挿入することができる。
【００１８】
一実施形態では、HSLAMは、上で説明される広域SLAMマップの追跡およびマッピングを含む6DOF SLAMを実行することができる。HSLAMは、単一のSLAMマップ(すなわち広域SLAMマップ)を維持することができ、また、6DOF SLAMとパノラマSLAMの両方は、広域SLAMマップにアクセスし、かつ、更新することができる。
【００１９】
いくつかの実施形態では、HSLAMは、6DOF SLAM(たとえば専用6DOFモジュール173として)を通して、捕獲した画像からキーフレームを生成することができる。HSLAMは、捕獲した画像が閾値並進と一致することを決定すると、広域SLAMマップにすでに結合されている先行するキーフレームからキーフレームを生成することができる。
【００２０】
一実施形態では、6DOF SLAM(たとえば6DOF追跡)は、キーフレームから観察された特徴を広域SLAMマップに結合することができる。6DOF SLAM(たとえば6DOF追跡)は、この特徴結合を使用して、それぞれのカメラ画像に関連するカメラ位置および配向(すなわちポーズ)を決定することができる。また、6DOFマッピングは、広域SLAMマップを更新/維持することも可能である。上で説明したように、6DOF SLAMによって維持される広域SLAMマップは、2つ以上のキーフレーム(たとえば一対のキーフレームまたは複数の対のキーフレーム)から三角測量された3D特徴点を含むことができる。たとえばキーフレームは、観察された場面を表現するために、画像またはビデオストリームまたはフィードから選択することができる。HSLAMは、キーフレームごとに、画像に結合されたそれぞれの6DOFカメラポーズを計算することができる。計算されたポーズは、本明細書においてはキーフレームポーズ(3DOFキーフレーム位置および3DOFキーフレーム配向からなる)と呼ぶことができる。
【００２１】
本明細書において使用されているパノラマSLAMは、捕獲された複数の画像をまとめて縫いつづって、回転のみカメラ運動を使用して取得された画像の結合収集にすることを意味している。パノラマSLAM(たとえばパノラマモジュール175のパノラマ追跡)を使用しているHSLAMは、6DOF SLAM(すなわち6DOFモジュール173によって計算される)の6DOFと比較すると、3回転自由度(3DOF)を計算することができる。HSLAMは、相対回転を使用してパノラマキーフレームを互いに関連付けることができる。HSLAMは、最小閾値視差または並進が一致しない場合、特徴点三角測量をバイパスまたはスキップすることができる。たとえばカメラの位置はそのままであり、先行するキーフレームから純回転のみが生じた場合、最小閾値視差または並進は一致しないことになる。
【００２２】
HSLAMは、現在のキーフレームとすでに捕獲済みのキーフレームとを比較して視差レベルまたは並進レベルを決定することができる。したがってパノラマ特徴点は、光線(すなわち無限特徴、無限深度特徴、推定された深度がない特徴または無限深度を有する特徴)と見なすことができる。一実施形態では、6DOF SLAMから生成される3D点は、有限深度特徴と呼ばれる(たとえば特徴は、規定された、あるいは推定された深度を有することができる)。
【００２３】
従来の6DOF SLAMは、純回転カメラ移動を処理することができない。追跡が失われることがあり、また、いくつかの状況では、誤って測定された有限特徴がマップ(たとえば広域SLAMマップ)を害することがある。一方、従来から並進運動中に回転運動を取り扱っているパノラマSLAMは、追加回転として符号化されることがあり、同じくマップ品質を低下させている。
【００２４】
一実施形態では、HSLAMは、6DOF SLAMおよびパノラマSLAMの利点を組み合わせて、運動の性質に応じて6DOF SLAMとパノラマSLAMとの間を動的に切り換えることができる混成システムにしている。たとえばユーザは、総体的運動または純回転である運動を実施することができる。HSLAMは、ユーザがしばしば実践する場面のマッピングされる部分から離れた一時的な回転を取り扱うことができる。また、HSLAMは、十分な追加情報が利用可能になる場合、回転運動中になされた場面の観察を後の3Dマッピングステップに組み込むことも可能である。
【００２５】
一実施形態では、HSLAMは、6DOF追跡を使用して、1つまたは複数の画像フレームまたはビデオフレームのためのカメラポーズを決定することができる。HSLAMは、3Dマップからの特徴を画像フレームまたはビデオフレーム中に投影し、かつ、確証された2D-3D符合からのカメラポーズを更新することによってカメラポーズを決定することができる。また、HSLAMは、マップの中に挿入するための新しいキーフレームを選択することも可能である。HSLAMは、現在のカメラ位置(すなわち並進)がすべての既存のキーフレーム位置から十分に離れている場合、新しいキーフレームを3Dマップの中に挿入することができる。また、HSLAMは、既知の特徴との現在のフレームのカバレージが閾値未満(たとえば3Dマップの新しい、あるいはそれ以前にマップされていない領域が現在のフレーム中に表現されている)場合、新しいキーフレームをマップの中に挿入することも可能である。さらに、HSLAMは、現在のカメラの配向が既存のキーフレーム配向から十分に離れており、また、現在のカメラの位置が既存のキーフレーム位置から最小距離だけ並進されている場合、キーフレームを挿入することができる。
【００２６】
別法としては、6DOF SLAMは、配向は変化しているが、位置はそれほど十分には変化していない場合、キーフレーム挿入をバイパスするか、あるいはスキップすることができる。配向が変化し、位置は変化していない場合、6DOF SLAMは、純回転の移動を考慮することができる。6DOF SLAMは、純回転の間、三角測量することができないか、あるいは新しい有限特徴をマップの中に挿入することができない。
【００２７】
一実施形態では、HSLAMは、閾値追跡条件が合致すると、6DOF SLAMからパノラマSLAMへの実時間切換えをトリガすることができる。たとえば閾値追跡条件は、十分な配向変化である(たとえばカメラビューを回転させる)こと、カメラ位置を維持すること(たとえばカメラロケーションが固定されるか、あるいはその前に捕獲された画像とほぼ同じ位置である)、および既存のカバレージが狭いこと(たとえば捕獲された画像領域が3Dマップ中の新しい、あるいはそれ以前にマッピングされていない領域であること)を含むことができる。たとえば狭い既存のカバレージは、現在の画像の50パーセント以下が既知の特徴点によってカバーされ、カメラビューが新しい領域に向かって回転し続ける場合、やがて追跡が失われることになることを示していることをHSLAMが検出することに基づいて決定することができる。他の実施形態では、HSLAMは、一般化されたGeometric Robust Information Criteria(すなわちGRIC)スコアを使用して、6DOF SLAMからパノラマSLAMへの切換えをトリガすることができる。
【００２８】
HSLAMは、パノラマSLAMに切り換わると、無限特徴を含んだ新しいキーフレームを生成することができる。HSLAMは、無限特徴キーフレームをキーフレームのデータベースの中に挿入することができる。たとえばキーフレームのデータベースは、広域SLAMマップに結合することができる。一実施形態では、無限特徴キーフレームは、「パノラマ」キーフレームとして印を付けることができ、あるいは識別することができる。本明細書において使用されているパノラマキーフレームは、無限特徴、または計算された深度が全くない特徴を含んだキーフレームである。
【００２９】
HSLAMは、閾値追跡条件または閾値GRICスコアが合致している間、無限特徴の追跡を継続し、かつ、追加パノラマキーフレームを挿入することができる。一実施形態では、HSLAMは、すべてのパノラマキーフレームのキーフレーム位置は、6DOF追跡からパノラマSLAMに切り換わる前に考慮されていた最後の6DOFキーフレームと同じ位置であることを想定することができる。
【００３０】
一実施形態では、HSLAMは、有限特徴および無限特徴の混成セットをまとめて処理するためのポーズ洗練アルゴリズムを使用することができる。先にポーズを初期化すると、ポーズ洗練アルゴリズムは、一組の有限マップ特徴および無限マップ特徴から、更新される6DOF/3DOFポーズおよびその対応する二次元(2D:Two Dimensional)画像測値を計算することができる。増分ポーズ更新は、有限マップ特徴と無限マップ特徴の両方に対する再投影誤差を反復して最適化することによって計算される。
【００３１】
一実施形態では、有限特徴の閾値数を利用することができる場合、6DOFポーズが計算される。いくつかの実施形態では、無限特徴から単純に構成された一組の特徴は、6DOFポーズの代わりに3DOFポーズをもたらすことができる。一実施形態では、HSLAMポーズ洗練アルゴリズムにより、パノラマSLAMと6DOF SLAM(たとえば6DOF追跡)との間を継目なく切り換えることができる。HSLAMは、利用可能である場合(たとえば捕獲された場面の画像から有限特徴点を決定することができる場合)、無限点を使用して一時的に追跡し、かつ、有限点に切り換えることができる。一実施形態では、追跡が失われると、HSLAMは、広域SLAMマップを使用して再局所化を実行することができる。追跡が失われると、HSLAMは、すべての利用可能なキーフレームに対して微小ぼやけ画像(SBI:Small Blurry Images)を使用して完全な再局所化を実行することができる。別法としては、HSLAMは、記述子整合を使用して再局所化を実行することも可能である。HSLAMは、6DOFキーフレームならびにパノラマキーフレームを使用して広域SLAMマップの再局所化を試行することができる。
【００３２】
図2は、一実施形態における混成SLAMの流れ図を示したものである。ブロック205で、一実施形態(たとえばHSLAM)は環境の3Dマップを受け取る。たとえばHSLAMは、広域SLAMマップを処理することができる。3Dマップは、2つ以上のキーフレーム内で観察された有限深度を有する特徴を有することができる。各キーフレームは、パノラマキーフレームまたはレギュラーキーフレームであってもよい。3Dマップは、1つまたは複数のパノラマキーフレーム内で観察された無限深度を有する特徴を有することができる。
【００３３】
ブロック210で、実施形態は、現在のフレーム内で観察された3Dマップの有限特徴または無限特徴から6DOFでカメラを追跡する。カメラ移動は、総体的カメラ移動または純回転カメラ移動であってもよい。一実施形態では、HSLAMは、有限特徴から6DOFポーズを推定することができ、また、無限特徴から3DOFポーズを推定することができる。パノラマカメラ移動の追跡は、受け取った3Dマップ(たとえば広域SLAMマップ)の先在する境界を超えて継続することができる。たとえば実施形態は、パノラマSLAMを使用して新しい領域を追跡し、かつ、マッピングして、受け取った3Dマップに追加することができる。広域SLAMマップは、キーフレーム、三角測量された特徴点、およびキーフレームと特徴点との間の結合(観察)のうちの1つまたは複数を含むことができる。
【００３４】
キーフレームは、捕獲された画像(たとえばデバイスカメラ114によって捕獲された画像フレーム)および捕獲された画像を生成するのに使用されたカメラパラメータからなっていてもよい。本明細書において使用されているカメラパラメータは、カメラ位置および配向(ポーズ)を含む。広域SLAMマップは、有限特徴および無限特徴を含むことができる。一実施形態では、HSLAMは、カメラ画像が十分な視差閾値または並進閾値に合致していない場合、回転のみ運動の結果として得られたカメラ画像を既存の3Dマップの中に組み込むことができる。
【００３５】
一実施形態では、HSLAMは、純回転カメラ運動を検出すると、基準キーフレーム(すなわち基準パノラマキーフレーム)として第1のパノラマキーフレームを選択する。第1のパノラマキーフレームは、3Dマップに対して局所化することができる。たとえばHSLAMは、6DOFカメラ移動からパノラマカメラ移動への移行を検出すると、受け取った第1のキーフレームを選択することができる。HSLAMは、恐らくは局所化されていない追加パノラマキーフレーム(たとえば従属キーフレーム)を選択することができる。追加パノラマキーフレームは、後に、マッピングプロセスの一部として、3Dマップに対して局所化することができる。HSLAMは、既存のマップ特徴との符合を生成する(たとえば能動探索および記述子整合技法を使用して)ことによって追加キーフレームを局所化することができる。局所化すると、HSLAMは、パノラマキーフレームの無限特徴(すなわち無限深度特徴)を、(a)それらを局所化された他のキーフレームの特徴と整合する、および(b)結果として得られた2D-2D符合を三角測量する(たとえば無限特徴を整合する)ことによって変換し、追加3Dマップ特徴を得ることができる。延いては、新しい3Dマップ特徴を使用して、局所化されていない他のパノラマキーフレームを局所化することができる。
【００３６】
図3は、一実施形態における、キーフレームと特徴との間の混成SLAMマップ表現の第1のステージを示したものである。この第1のステージは、有限マップ特徴305を観察する6DOFキーフレーム320を示している。局所パノラママップ350は、有限特徴305観察および無限特徴310観察を有する基準パノラマキーフレーム330を介して3Dマップ(たとえば広域SLAMマップ)内に位置決めすることができ、一方、残りの従属パノラマキーフレーム315は、無限特徴310を観察することができる。
【００３７】
図4は、一実施形態における、キーフレームと特徴との間の混成SLAMマップ表現の第2のステージを示したものである。第2のステージでは、(a)追加6DOFキーフレーム410と、局所化されたパノラマキーフレーム(たとえば基準パノラマキーフレーム430)との間、または(b)異なる局所パノラママップ(たとえばパノラママップ「A」440およびパノラママップ「B」450)からの局所化されたパノラマキーフレーム(たとえば基準パノラマキーフレーム430)間で整合された対応する観察から無限特徴310を三角測量することができる。追加特徴は、他のパノラマキーフレーム(たとえば従属パノラマキーフレーム415)の局所化を可能にすることができる。
【００３８】
パノラマキーフレームの頑強な局所化は、パノラマキーフレーム内の有限3Dマップ特徴の新しい2D観察を見出すための反復プロセスであってもよい。有限3Dマップ特徴に対する十分な2D観察を確立すると、全6DOFポーズを使用してパノラマフレームを局所化し、かつ、レギュラー(すなわち非パノラマ)キーフレームに変換することができる。正規のキーフレームへの変換後、HSLAMは、追加無限特徴点(たとえば2D特徴)を三角測量することができ、それにより同じく他のパノラマキーフレームを局所化することができる。
【００３９】
図5は、一実施形態における混成SLAM初期化の流れ図を示したものである。ブロック505で、実施形態(たとえばHSLAM)は、捕獲された画像を受け取ることができる。たとえば捕獲された画像は、カメラ画像またはビデオフィードからの画像であってもよい。
【００４０】
ブロック510で、実施形態は、初期3Dマップを生成するか、あるいは既存の3Dマップ515に情報を追加することによってHSLAMを初期化し、かつ、カメラ位置および配向(ポーズ)520を出力することができる。HSLAMの初期化には、捕獲された1つまたは複数の画像を処理して、無矛盾スケールを有する3Dマップ(たとえば広域SLAMマップ)を作成することを含むことができる。いくつかの実施形態では、デバイス100へのアプリケーションのローディング開始時に、HSLAMは、モデルに基づくディテクタおよびトラッカをロードして初期マップを生成することができる。既知の平面画像目標を検出すると、HSLAMは、第1の6DOFキーフレームを生成することができる。HSLAMは、画像目標の追跡を継続し、かつ、2D-2D符合のフレーム間整合を実行することができる。十分な符合を頑強に三角測量することができる場合、第2の6DOFキーフレームが選択される。したがって2つのレギュラー6DOFキーフレームおよび結果として得られる有限マップ特徴は、初期3Dマップを構成することができる。
【００４１】
3Dマップは、レギュラー6DOFキーフレームおよびパノラマキーフレーム内に2D画像観察を有する有限点特徴および無限点特徴から構成することができる。捕獲された各画像は、それぞれの画像がカメラによって捕獲された時点における、関連するカメラポーズを有することができる。一実施形態では、HSLAMは、6DOFを追跡する能力を拡張して、純カメラ回転の間、広域SLAMマップを追跡することができる。一実施形態では、HSLAMは、純カメラ回転の間に生成されたキーフレームを広域SLAMマップの中に組み込むことも可能である。
【００４２】
現在のカメラポーズは、単純な一定崩壊運動モデルによって推測することができる。HSLAMは、推測されたカメラポーズ、現在のパノラママップ(たとえばパノラママップ)の無限特徴から、可視性のための特徴をフィルタリングし、かつ、有限が好ましい場合に無限特徴の上に特徴再投影を重畳することにより、整合するための一組の特徴をすべての広域SLAMマップ特徴から選択することができる。次に、実施形態は、スコア関数としてNCCを使用して、現在のフレーム内の選択された各特徴を能動的に探索することができる。十分に高いNCCスコアとの整合は、統一相対ポーズリファイナによって処理される符合セットに追加することができる。ポーズリファイナは、更新された6DOFポーズまたは3DOFポーズのいずれかを出力することができる。増分ポーズ推定が失敗した場合、6DOFポーズを出力することができる再局所化に入る。
【００４３】
図6は、一実施形態による、6DOFおよびパノラママッピング段階および追跡段階を示したものであり、総体的カメラ運動および純回転カメラ運動が交番している。カメラ運動(たとえば総体的カメラ運動)は、3Dマップ605(たとえば広域SLAMマップ)から6DOFで追跡することができる。ドロップキーフレームを使用して3Dマップを洗練し、かつ、拡張することができる。回転のみカメラ運動625に切り換えると、ドロップキーフレームを使用して局所パノラママップ610が作成される。カメラ追跡は、パノラママップ特徴および3Dマップ特徴を使用して実行することができる。総体的カメラ運動によって追跡が破壊され、6DOFカメラポーズ再局所化635をもたらすことがある。総体的カメラ運動は3Dマップ上に戻すことができ、また、有限特徴および無限特徴を追跡することにより、滑らかに移行する640ことができる。
【００４４】
図7は、マッピング中のキーフレーム選択の異なる状態に対する状態線図を示したものである。HSLAM初期化510の後、システムは、全6DOFマッピングモード755で動作を開始する。純回転運動が検出されると760、新しいパノラママップが生成される(たとえば3DOFマッピング765)。純回転運動は、追跡された6DOFポーズの履歴に基づいてHSLAMによって検出することができる。追跡された6DOFポーズは、年代順にメモリに記憶することができる。HSLAMは、現在のポーズと記憶されているポーズとの間の視差角度を計算し、視差が大きい(たとえば5度を超える)すべてのポーズを放棄することができる。6DOF測定770は、システムを全6DOFマッピングモード755に戻すことができる。追跡が失敗すると、再局所化775が全6DOFポーズを回復することができる。
【００４５】
図8は、一実施形態における、追跡構成要素およびマッピング構成要素を含んだ混成SLAMシステムのブロック図である。構成要素は、スレッド、エンジン、またはハードウェアあるいはソフトウェアとして実施されたモジュールであってもよい。一実施形態では、HSLAMは、総体的カメラ運動および純回転カメラ運動の追跡を可能にする十分な有限特徴および無限特徴から6DOFポーズを推定することができる。純回転カメラ運動がマッピングされない場面領域に向かっていることを決定すると、HSLAMは、混成3Dおよびパノラママップ追跡815を継続することができ、また、混成キーフレーム845を3Dマップ865に割り当てることができる。純回転カメラ運動がマッピングされない場面領域に向かっていることを決定すると、HSLAMは、純パノラマ追跡820に切り換え、また、パノラマキーフレーム850を局所パノラママップ870に割り当てることができる。総体的カメラ運動がマッピングされる場面領域に向かっていることを決定すると、HSLAMは、広域SLAMマップ(たとえば3Dマップ865)上に移行して戻ることができる。総体的カメラ運動がマッピングされない場面領域に向かっていることを決定すると、追跡が失敗し、再局所化が必要であるか、または十分な視差および狭いカバレージに基づいてレギュラー6DOFキーフレームを選択することができる。いずれの場合においてもHSLAMは、3Dマップ上に移行して戻り、追跡810し、かつ、6DOFキーフレーム840を3Dマップ865に割り当てることができる。
【００４６】
一実施形態では、HSLAMポーズ追跡およびキーフレーム選択構成要素825は、較正された単一のカメラの捕獲された画像(たとえばビデオストリームまたはフィード)を処理し、3Dマップ865(たとえば広域SLAMマップ)に対する総体的カメラ運動および回転のみカメラ運動を追跡することができる。
【００４７】
追跡構成要素は、ユーザによって実行される現在の運動に応じて、全6D追跡モードとパノラマ追跡モードとの間を、動的に、かつ、継目なく切り換えることができる。追跡構成要素は、ユーザがしばしば実践する場面のマッピングされる部分から離れた一時的回転を取り扱うことができる。追跡構成要素は、これらの回転を検出し、かつ、局所パノラママップを作成するために使用される特殊な「パノラマ」キーフレームを選択することができる。局所パノラママップは、単一の無矛盾3Dマップ内に位置決めされる。総体的カメラ運動および回転のみカメラ運動は、有限特徴および無限特徴を含むことができる広域SLAMマップに対して追跡することができる。一実施形態では、HSLAMは、頑強なフレームレートカメラポーズ追跡および再局所化を可能にする。ポーズ推定は、有限特徴(既知の3Dロケーション)と無限特徴の両方の測値を組み合わせることができ、また、HSLAMは、6DOFまたは3DOFのいずれかのポーズ更新830を自動的に計算することができる。一実施形態では、増分ポーズ追跡が失敗すると、微小ぼやけ画像に基づいてHSLAMが再局所化することができる。
【００４８】
HSLAMは、キーフレーム画像から特徴を抽出することができる。本明細書において使用されている特徴(たとえば特徴点または重要な点)は、画像の重要な部分または注目すべき部分である。捕獲された画像から抽出される特徴は、三次元空間(たとえば軸X、YおよびZ上の座標)に沿った全く別の点を表すことができ、また、すべての特徴点は、関連する特徴ロケーションを有することができる。キーフレーム内の特徴は、すでに捕獲済みのキーフレームの特徴と整合しているか、または整合に失敗しているかのいずれかである(すなわちすでに捕獲済みのキーフレームの特徴と同じか、あるいは対応している)。特徴検出は、すべてのピクセルを調べて、特定のピクセルに特徴が存在しているかどうかを決定するための画像処理操作であってもよい。特徴検出は、捕獲された画像全体、別法としては捕獲された画像の特定の部分または一部を処理することができる。
【００４９】
捕獲された画像またはビデオフレームごとに特徴が検出されると、その特徴の周囲の局所画像パッチを抽出することができる。特徴を局所化し、それらの記述を生成する、Scale Invariant Feature Transform(SIFT)のようなよく知られている技法を使用して、特徴が抽出され得る。必要に応じて、Speed Up Robust Features(SURF)、Gradient Location-Orientation histogram(GLOH)、Normalized Cross Correlation(NCC)または他の匹敵し得る技法などの他の技法を使用することも可能である。ある画像に対して抽出された特徴の数が閾値(たとえば100点特徴または他の数の点)を超えていることが決定されると、その画像および特徴をキーフレームとして保存することができる。
【００５０】
マッピング構成要素875は、データ結合855洗練およびバンドル調整最適化860によってマップ品質を改善することができる。HSLAMは、キーフレーム選択を実行して、6DOF、および3Dマップ865に含めるためのパノラマキーフレーム840〜850を選択することができる。マッピング構成要素875は、再局所化を補助するために3Dマップデータ835を追跡構成要素825に送ることができる。さらに、HSLAMは、3Dマップを拡張するためにパノラマキーフレームを局所化し、かつ、無限特徴を三角測量することができる。
【００５１】
一実施形態では、HSLAMは、個別のマッピング構成要素(たとえば上で説明したマッピング構成要素875などのスレッド、エンジンまたはモジュール)を実行して、広域SLAMマップ(すなわち3Dマップ)の品質を改善することができる。たとえばマッピング構成要素875は、1つまたは複数のタイプの最適化860(たとえば3Dバンドル調整)を実行することができる。また、HSLAMは、3Dマップを拡張するために、パノラマキーフレームのための全6DOFポーズを推定し、かつ、無限特徴を三角測量することも可能である。
【００５２】
データ結合洗練855の一部として、HSLAMは、既存の特徴ロケーションおよびキーフレームポーズをさらに拘束するために、新しいキーフレーム-特徴観察を探索する。HSLAMは、能動探索および記述子整合技法を適用して2D-2D符合を確立することができる。また、HSLAMは、孤立した観察および特徴を検出し、かつ、放棄することも可能である。
【００５３】
HSLAMは、有限マップ特徴に対してパノラマキーフレームを頑強に局所化することができる。ポーズは、全6DOFでは無限特徴から正確に推定することができないため、パノラマキーフレームは、信頼することができないと見なされているポーズをパノラマ追跡から初期化することができる。しかしながら既存の有限マップ特徴に対する符合を確立することにより、HSLAMは全6DOFポーズを推定することができる。したがってHSLAMは、パノラマキーフレームを有効にレギュラー6DOFキーフレームに変換する。
【００５４】
HSLAMは、無限特徴観察を三角測量することにより、3Dマッピングのための局所パノラママップに記憶されている情報をてこ入れすることができる。HSLAMは、記述子整合を使用して、たとえば同じ場面領域を見ている個別の局所パノラママップ内の頑強に局所化されたキーフレーム間の2D-2D符合を見出すことができる。検証試験に合格する符合は、追加有限マップ特徴を構成する。したがってHSLAMは、無限特徴を有効に有限特徴に変換することができる。
【００５５】
HSLAMは、バンドル調整を使用してマップの最適化860を実行することができる。バンドル調整は、キーフレーム-特徴観察に基づいて費用関数を最小にすることにより、局所化されたキーフレームの6DOFポーズおよび有限マップ特徴の3D位置を更新する。非局所化パノラマキーフレームおよび無限特徴は、最適化の一部ではあり得ない。しかしながらHSLAMは、最適化された3Dマップ内のパノラママップの位置決めを調整することにより、マップ一貫性を維持することができる。
【００５６】
一実施形態では、カメラポーズを完全に6DOF内に拘束することができることを決定すると、HSLAMは、6DOFキーフレームとしてそれぞれのキーフレームに印を付けるか、あるいはタグを振ることができる。たとえば、ポーズ追跡に関して以下で説明されるように、十分な有限特徴点がポーズ推定の一部であるときである。さらに、HSLAMは、キーフレームが場面の新しい部分を画像化している間に既存のキーフレームに対して十分な視差を生成する場合、レギュラー6DOFキーフレームを選択することができる。視差を使用して頑強な特徴三角測量を保証することができる。
【００５７】
視差は、2つのカメラビュー(たとえば現在のカメラビュー、キーフレームカメラビュー)から観察された3D点ロケーション(たとえば有限3Dマップ特徴)のスケール依存三角測量角度である。HSLAMは、平均場面深度(たとえば現在のフレーム内で観察された有限マップ特徴の平均深度)、および現在のカメラロケーションと既存のキーフレームカメラロケーションとの間の距離の関数として現在のカメラビューの視差角度を近似することができる。カバレージは、カメラビュー(たとえば現在のカメラビュー、キーフレームカメラビュー)中に投影される有限マップ特徴で覆われる画像フレーム領域の比である。HSLAMは、画像フレームをセルを有する規則格子に分割することができ、また、カメラポーズを使用して有限マップ特徴を投影することができる。含まれている特徴の数が最少の格子セルが覆われていると見なされる。カバレージは、覆われた格子セルの数とすべての格子セルとの比である。
【００５８】
HSLAMは、十分な視差および狭いカバレージに基づいてレギュラー6DOFキーフレームを選択することができる。視差は、頑強な特徴三角測量のために必要である。カバレージは、現在のフレームポーズが投影されたマップ特徴と共に頑強に拘束されているかどうかを示す。狭いカバレージは、カメラがマッピングされない場面領域を観察していることを示す。
【００５９】
カバレージが狭く、また、現在のフレームと既存のキーフレームとの間の視差が十分でないことをHSLAMが検出すると、3Dマップ特徴を現在のフレーム内でもはや観察することができない場合、追跡が失敗する可能性がある。カメラ運動が純回転に近い場合、HSLAMは、局所化されたパノラマキーフレームの選択をトリガすることができる。狭いカバレージは、カメラ点がマッピングされない場面領域に向かっていることを示すことができる。しかしながらHSLAMは、純回転カメラ運動の視差が小さいため、レギュラー6DOFキーフレームを生成することはできない。したがってHSLAMは、3Dマップに対して局所化されたパノラマキーフレームを生成することができる。
【００６０】
HSLAMは、追跡された6DOFポーズの履歴に基づいて純回転カメラ運動を検出することができる。追跡された6DOFポーズは、年代順に履歴に記憶される。HSLAMは、現在のポーズと履歴との間の視差角度を計算し、視差が十分に大きいすべてのポーズを放棄することができる。残りの履歴ポーズは、現在のフレームと同様の3Dロケーションを有することができる。最後に、HSLAMが、履歴の中に、現在のフレームに対して視差が小さく、かつ、大きい角度を有するポーズを見出すと、HSLAMは、見る方向間の角度を計算し、純回転を検出することができる。
【００６１】
HSLAMは、狭いカバレージおよび十分な回転に基づいてパノラマキーフレームの選択を継続することができる。狭いカバレージは、カメラがマッピングされない場面領域を探査し続けていることを示すことができる。HSLAMは、現在のフレームの見る方向と現在のパノラママップのキーフレームポーズとの間の差動角度として回転を計算することができる。HSLAMは、再び3Dマップの一部を観察すると、より総体的な動作にそれとなく移動して戻ることができる。総体的な動作では、HSLAMは、同じ基準を適用して新しい6DOFキーフレームを生成することができる。
【００６２】
上で説明したように、デバイス100は、携帯型電子デバイス(たとえばスマートフォン、専用拡張現実感(AR)デバイス、ゲームデバイス、眼鏡などの着用可能デバイス、またはAR処理能力および表示能力を有する他のデバイス)であってもよい。本明細書において説明されているARシステムを実施するデバイスは、ショッピングモール、道路、部屋、またはユーザが携帯型デバイスを持っていくことができるあらゆる場所などの様々な環境で使用することができる。AR文脈では、ユーザは、デバイス100を使用して、自分のデバイスのディスプレイを通してリアルワールドの表現を見ることができる。ユーザは、自分のデバイスのカメラを使用してリアルワールド画像/ビデオを受け取り、かつ、デバイス上に表示されたリアルワールド画像/ビデオの上に追加情報または代替情報を重ねる、つまり重畳させることにより、自分のAR可能デバイスと対話することができる。ユーザは、自分のデバイス上でAR実施を見る際に、リアルワールド対象または場面をデバイスディスプレイ上で、実時間で置き換えるか、あるいは変更することができる。仮想対象(たとえばテキスト、画像、ビデオ)は、デバイスディスプレイ上に描写された場面の表現の中に挿入することができる。
【００６３】
デバイス100およびカメラ114が移動すると、ディスプレイは、広域SLAMマップ内の目標(たとえば1つまたは複数の対象または場面)の拡張を実時間で更新することになる。デバイスが初期基準画像位置から離れて移動すると、デバイスは、代替ビューから追加画像を捕獲することができる。特徴を抽出し、かつ、追加キーフレームから三角測量すると、向上した拡張精度を達成することができる(たとえば対象の周囲の境界をより正確に適合することができ、場面内の対象の表現がより写実的に出現し、また、目標をカメラ114ポーズに対してより正確に配置することができる)。
【００６４】
一実施形態では、カメラ114によって捕獲され、かつ、ディスプレイ112上に表示されたビデオストリーム(または画像)中に、対象または図形を挿入し、あるいは統合することができる。HSLAMは、任意選択で、目標を拡張するための追加情報をユーザに促すことができる。たとえばユーザは、ユーザコンテントを追加して目標の表現を拡張することができる。ユーザコンテントは、画像、3D対象、ビデオ、テキスト、または目標の表現と統合し、重畳し、あるいは置き換えることができる他のコンテントタイプであってもよい。
【００６５】
ディスプレイは、実時間で、継目のない追跡で元の場面から更新することができる。たとえばサイン上のテキストは、代替テキストと置き換えることができ、あるいは3D対象は、戦略的に場面の中に置いてデバイス100上に表示することができる。ユーザがカメラ114の位置および配向を変更すると、図形または対象を調整または拡張して、カメラ114の相対移動と整合させることができる。たとえば仮想対象が拡張された現実的ディスプレイ中に挿入される場合、仮想対象から離れたカメラ移動は、カメラ114が移動した距離に比例して仮想対象のサイズを小さくすることができる。たとえば仮想対象から4歩ステップバックすると、仮想対象から半歩ステップバックした場合と比較して仮想対象のサイズがより大きく縮小することになり、他のすべての変量についても同様である。運動図形または動画は、HSLAMによって表現された場面内で動画にすることができる。たとえば動画化された対象は、拡張された現実的ディスプレイ中に描写された場面内で「動かす」ことができる。
【００６６】
本明細書において説明されている実施形態は、AR(たとえばロボット位置決め)以外の方法で実施することができることは当業者には認識されよう。
【００６７】
HSLAMは、ソフトウェア、ファームウェア、ハードウェア、モジュールまたはエンジンとして実施することができる。一実施形態では、上記HSLAM説明は、上記所望の機能を達成するためのデバイス100内の汎用プロセッサ161によって実施することができる。一実施形態では、HSLAMは、副構成要素として画像処理モジュール171、6DOFモジュール173およびパノラマモジュール175を含むことができるエンジンまたはモジュールとして実施することができる。他の実施形態では、説明されている副構成要素のうちの1つまたは複数の特徴を組み合わせ、あるいは分割して、異なる個々の構成要素、モジュールまたはエンジンにすることができる。
【００６８】
本明細書における教示は、様々な装置(たとえばデバイス)に組み込むことができる(たとえば様々な装置(たとえばデバイス)の中で実施され、あるいは様々な装置(たとえばデバイス)によって実行される)。一実施形態では、ITCは、画像またはビデオを入力として受け取るためにプロセッサによって実行されるエンジンまたはモジュールとして実施することができる。本明細書において教示された1つまたは複数の態様は、電話(たとえばセルラーフォーン)、パーソナルデータアシスタント(「PDA」)、タブレット、モバイルコンピュータ、ラップトップコンピュータ、タブレット、娯楽デバイス(たとえば音楽デバイスまたはビデオデバイス)、ヘッドセット(たとえばヘッドホン、イヤピース、等々)、メディアデバイス(たとえば生物測定センサ、心拍数モニタ、歩数計、EKGデバイス、等々)、ユーザI/Oデバイス、コンピュータ、サーバ、売場専用デバイス、娯楽デバイス、セットトップボックスまたは任意の他の適切なデバイスに組み込むことができる。これらのデバイスは、異なる電力要件およびデータ要件を有し、各特徴または特徴のセットに対して生成される異なる電力プロファイルをもたらすことがある。
【００６９】
いくつかの態様では、ワイヤレスデバイスは、通信システムのためのアクセスデバイス(たとえばWi-Fiアクセスポイント)を備えることができる。そのようなアクセスデバイスは、たとえば、有線またはワイヤレス通信リンクを介した、トランシーバ140を通した別のネットワーク(たとえばインターネットまたはセルラーネットワークなどの広域ネットワーク)への接続性を提供することができる。したがってアクセスデバイスは、別のデバイス(たとえばWi-Fi局)による他のネットワークまたは何らかの他の機能へのアクセスを可能にすることができる。さらに、デバイスのうちの1つまたは両方は、携帯型であっても、あるいはいくつかのケースでは比較的非携帯型であってもよいことを理解されたい。
【００７０】
情報および信号は、任意の様々な異なる技術および技法を使用して表すことができることは当業者には理解されよう。たとえば上記説明全体を通して参照することができるデータ、命令、指令、情報、信号、ビット、記号およびチップは、電圧、電流、電磁波、磁界または粒子、光学場または粒子、あるいはそれらの任意の組合せによって表すことができる
【００７１】
本明細書において開示されている実施形態に関連して説明されている様々な実例論理ブロック、モジュール、エンジン、回路およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェアまたは両方の組合せとして実施することができることは当業者にはさらに理解されよう。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な実例構成要素、ブロック、モジュール、エンジン、回路およびステップは、上では、一般に、それらの機能に関して説明されている。そのような機能がハードウェアとして実施されるか、あるいはソフトウェアとして実施されるかどうかは、総合システムに課される特定のアプリケーションおよび設計制約で決まる。当業者は、説明されている機能を特定のアプリケーションごとに可変方式で実施することができるが、そのような実施態様決定は、本発明の範囲を逸脱させるものとして解釈してはならない。
【００７２】
本明細書において開示される実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタルシグナルプロセッサ(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  ソフトウェア
170  混成SLAM
171  画像処理モジュール
173  6DOF SLAM
175  パノラマSLAM
177  バス
305  有限マップ特徴、有限特徴
310  無限特徴
315、415  従属パノラマキーフレーム
320、410  6DOFキーフレーム
330、430  基準パノラマキーフレーム
350、610  局所パノラママップ
440  パノラママップ「A」
450  パノラママップ「B」
510  HSLAM初期化
605、865  3Dマップ
625  回転のみカメラ運動
635  6DOFカメラポーズ再局所化
640  滑らかな移行
755  全6DOFマッピングモード
760  純回転運動検出
765  3DOFマッピング
770  6DOF測定
775  再局所化
810  追跡
815  混成3Dおよびパノラママップ追跡
820  純パノラマ追跡
825  HSLAMポーズ追跡およびキーフレーム選択構成要素
830  ポーズ更新
835  3Dマップデータ
840  パノラマキーフレーム、6DOFキーフレーム
845  混成キーフレーム
850  パノラマキーフレーム
855  データ結合
860  バンドル調整最適化
870  局所パノラママップ
875  マッピング構成要素
【図１】
0006348574.tif 000002
【図２】
0006348574.tif 000003
【図３】
0006348574.tif 000004
【図４】
0006348574.tif 000005
【図５】
0006348574.tif 000006
【図６】
0006348574.tif 000007
【図７】
0006348574.tif 000008
【図８】
0006348574.tif 000009