(57)【要約】  カメラがパノラマSLAMを実行しており、有限特徴の追跡のための3次元マップを初期化する間に、少なくとも1つの運動センサを使用して、カメラの移動の並進運動を検出することに基づく単眼視覚的同時位置特定およびマッピング(SLAM)のための技法を提示する。運動センサは、モバイルデバイスに内蔵された慣性(ジャイロスコープ、加速度計)センサ、磁気(コンパス)センサ、視覚(カメラ)センサ、または他のセンサを含む、1つまたは複数のセンサを含み得る。
2017518547.tif 000002
【特許請求の範囲】
【請求項１】
パノラマ同時位置特定およびマッピング(SLAM)モードでデバイスを追跡する間に、並進運動を検出するための方法であって、
前記デバイスに関する視覚ベースの回転運動角度を決定するステップであって、前記視覚ベースの回転運動角度が、複数のキーフレームに対して画像処理を実行することによって決定される、決定するステップと、
前記複数のキーフレーム間の前記デバイスに関するセンサベースの回転運動角度を決定するステップであって、前記センサベースの回転運動角度が、前記デバイスに結合された1つまたは複数の運動センサを使用して決定される、決定するステップと、
前記デバイスに関する視差角度を決定するステップであって、前記視差角度が、前記視野ベースの回転運動角度と前記センサベースの回転運動角度とを比較することによって決定される、決定するステップと、
前記視差角度をしきい値と比較するステップと、
前記視差角度が前記しきい値を上回ることに基づいて、前記並進運動を検出するステップと
を含む、方法。
【請求項２】
前記複数のキーフレーム間の少なくとも前記視差角度を使用して、前記並進運動を決定するステップをさらに含む、請求項1に記載の方法。
【請求項３】
少なくとも前記並進運動を使用して、前記デバイスからの1つまたは複数の特徴に関する距離を三角測量することによって、前記デバイスに関する前記1つまたは複数の特徴に関する深度情報を決定するステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記並進運動の検出に少なくとも基づいて、一般運動モードで前記デバイスを追跡するために3次元(3D)マップを初期化するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記並進運動を検出することに基づいて、6自由度(6DOF)SLAMマッピングに切り替えるステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記並進運動の検出に少なくとも基づいて、2つのキーフレームを使用した3次元(3D)マップのステレオ初期化を使用して、前記デバイスを追跡するために3Dマップを初期化するステップをさらに含む、請求項1に記載の方法。
【請求項７】
第1の時点において獲得された参照キーフレームと第2の時点において獲得された現在キーフレームとの間の運動に関して、前記視覚ベースの回転運動角度と前記センサベースの回転運動角度とが検出される、請求項1に記載の方法。
【請求項８】
前記運動センサが、ジャイロスコープ、加速度計、または磁力計のうちの1つまたは複数を含む、請求項1に記載の方法。
【請求項９】
パノラマ同時位置特定およびマッピング(SLAM)モードでデバイスを追跡する間に、並進運動を検出するためのデバイスであって、
メモリと、
物理的シーンに関する情報を取得するために前記デバイスに結合されたカメラと、
前記メモリに結合されたプロセッサとを含み、前記プロセッサが、
前記デバイスに関する視覚ベースの回転運動角度を決定することであって、前記視覚ベースの回転運動角度が、複数のキーフレームに対して画像処理を実行することによって決定される、決定することと、
前記複数のキーフレーム間の前記デバイスに関するセンサベースの回転運動角度を決定することであって、前記センサベースの回転運動角度が、前記デバイスに結合された1つまたは複数の運動センサを使用して決定される、決定することと、
前記デバイスに関する視差角度を決定することであって、前記視差角度が、前記視野ベースの回転運動角度と前記センサベースの回転運動角度とを比較することによって決定される、決定することと、
前記視差角度をしきい値と比較することと、
前記視差角度が前記しきい値を上回ることに基づいて、前記並進運動を検出することと
を行うように構成される、デバイス。
【請求項１０】
前記プロセッサが、前記複数のキーフレーム間の少なくとも前記視差角度を使用して、前記並進運動を決定するように構成されることをさらに含む、請求項9に記載のデバイス。
【請求項１１】
前記プロセッサが、少なくとも前記並進運動を使用して、前記デバイスからの1つまたは複数の特徴に関する距離を三角測量することによって、前記デバイスについての前記1つまたは複数の特徴に関する深度情報を決定するように構成されることをさらに含む、請求項10に記載のデバイス。
【請求項１２】
前記プロセッサが、前記並進運動の検出に少なくとも基づいて、一般運動モードで前記デバイスを追跡するために3次元(3D)マップを初期化することをさらに含む、請求項9に記載のデバイス。
【請求項１３】
前記プロセッサが6自由度(6DOF)SLAMに切り替えることをさらに含む、請求項9に記載のデバイス。
【請求項１４】
前記プロセッサが、前記並進運動の検出に少なくとも基づいて、2つのキーフレームを使用した3次元(3D)マップのステレオ初期化を使用して、前記デバイスを追跡するために3Dマップを初期化することをさらに含む、請求項9に記載のデバイス。
【請求項１５】
前記プロセッサが、前記並進運動の検出に少なくとも基づいて、知られている追跡ターゲットを使用することによって、前記デバイスを追跡するために3次元(3D)マップを初期化することをさらに含む、請求項9に記載のデバイス。
【請求項１６】
第1の時点において獲得された参照キーフレームと第2の時点において獲得された現在キーフレームとの間の運動に関して、前記視覚ベースの回転運動角度と前記センサベースの回転運動角度とが検出される、請求項9に記載のデバイス。
【請求項１７】
前記運動センサが、ジャイロスコープ、加速度計、または磁力計のうちの1つまたは複数を含む、請求項9に記載のデバイス。
【請求項１８】
同時位置特定およびマッピング(SLAM)を実行するためにプロセッサによって実行可能な命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令が
デバイスに関する視覚ベースの回転運動角度を決定することであって、前記視覚ベースの回転運動角度が、複数のキーフレームに対して画像処理を実行することによって決定される、決定することと、
前記複数のキーフレーム間の前記デバイスに関するセンサベースの回転運動角度を決定することであって、前記センサベースの回転運動角度が、前記デバイスに結合された1つまたは複数の運動センサを使用して決定される、決定することと、
前記デバイスに関する視差角度を決定することであって、前記視差角度が、前記視野ベースの回転運動角度と前記センサベースの回転運動角度とを比較することによって決定される、決定することと、
前記視差角度をしきい値と比較することと、
前記視差角度が前記しきい値を上回ることに基づいて、並進運動を検出することと
を行うための命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記複数のキーフレーム間の少なくとも前記視差角度を使用して、前記並進運動を決定することをさらに含む、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
少なくとも前記並進運動を使用して、前記デバイスからの1つまたは複数の特徴に関する距離を三角測量することによって、前記デバイスについての前記1つまたは複数の特徴に関する深度情報を決定することをさらに含む、請求項19に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
第1の時点において獲得された参照キーフレームと第2の時点において獲得された現在キーフレームとの間の運動に関して、前記視覚ベースの回転運動角度と前記センサベースの回転運動角度とが検出される、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項２２】
前記運動センサが、ジャイロスコープ、加速度計、または磁力計のうちの1つまたは複数を含む、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項２３】
デバイスに関する視覚ベースの回転運動角度を決定するための手段であって、前記視覚ベースの回転運動角度が、複数のキーフレームに対して画像処理を実行することによって決定される、決定するための手段と、
前記複数のキーフレーム間の前記デバイスに関するセンサベースの回転運動角度を決定するための手段であって、前記センサベースの回転運動角度が、前記デバイスに結合された1つまたは複数の運動センサを使用して決定される、決定するための手段と、
前記デバイスに関する視差角度を決定するための手段であって、前記視差角度が、前記視野ベースの回転運動角度と前記センサベースの回転運動角度とを比較することによって決定される、決定するための手段と、
前記視差角度をしきい値と比較するための手段と、
前記視差角度が前記しきい値を上回ることに基づいて、並進運動を検出するための手段と
を含む、装置。
【請求項２４】
前記複数のキーフレーム間の少なくとも前記視差角度を使用して、前記並進運動を決定するための手段をさらに含む、請求項23に記載の装置。
【請求項２５】
少なくとも前記並進運動を使用して、前記デバイスからの1つまたは複数の特徴に関する距離を三角測量することによって、前記デバイスについての前記1つまたは複数の特徴に関する深度情報を決定するステップをさらに含む、請求項23に記載の装置。
【請求項２６】
第1の時点において獲得された参照キーフレームと第2の時点において獲得された現在キーフレームとの間の運動に関して、前記視覚ベースの回転運動角度と前記センサベースの回転運動角度とが検出される、請求項23に記載の装置。
【請求項２７】
前記運動センサが、ジャイロスコープ、加速度計、または磁力計のうちの1つまたは複数を含む、請求項23に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、特許協力条約出願であり、すべての目的のために、参照によりその全体が本明細書に組み込まれている、「SENSOR-BASED CAMERA MOTION DETECTION FOR UNCONSTRAINED SLAM」と題する、2014年3月14日に出願した米国仮出願第61/953,122号、および「SENSOR-BASED CAMERA MOTION DETECTION FOR UNCONSTRAINED SLAM」と題する、2015年3月12日に出願した非仮出願第14/645,675号の利益および優先権を主張するものである。本出願は、2014年1月9日に出願した、「MONOCULAR VISUAL SLAM WITH GENERAL AND PANORAMA CAMERA MOVEMENTS」と題する米国出願第14/151,766号の全体を参照によりやはり組み込む。
【０００２】
本明細書で開示される主題は、一般に、ロケーション検出に関し、詳細には、同時位置特定およびマッピング(SLAM:Simultaneous Localization and Mapping)に関する。
【背景技術】
【０００３】
視覚的同時位置特定およびマッピング(VSLAM:Visual Simultaneous Localization and Mapping)システムは、デバイスに結合された単一のカメラの入力を処理して、カメラが移動するにつれて、環境のマップ(別名、モデル)を連続的に構築することができる。視覚的SLAMシステムは、マップに対するデバイスの位置および配向(姿勢)を同時に追跡する。視覚的SLAMシステムは、デバイスを追跡して、そのデバイスの移動に基づいてマップを構築するために異なるモードで動作することができる。たとえば、デバイスが並進運動を含む一般運動を受けている間、デバイスは一般運動モードに遷移して、一般運動に関するマップを構築することができる。同様に、デバイスが回転しているだけで、ある場所から別の場所に移動してないとき、デバイスは回転専用モードに切り替わり、回転専用マップを構築することができる。
【０００４】
本開示のいくつかの態様は、回転専用モードから一般運動モードにロバストに切り替えるための技法について論じる。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書で開示する主題は、一般に、カメラ運動検出に関し、より詳細には、同時位置特定およびマッピング(SLAM)に関する。
【０００６】
本開示の態様は、一般カメラ運動と回転専用カメラ運動との間、および対応するパノラマ/3Dの追跡モードとマッピングモードとの間の遷移をロバストに検出するための技法を提供する。不正確な遷移は、誤って測定された特徴で3Dとパノラママップの両方を破損し、追跡障害をもたらす。モデル選択アルゴリズムなどの既存の視覚専用方法と対照的に、本開示の態様は、慣性(ジャイロスコープ、加速度計)センサ、磁気(コンパス)センサ、および視覚(カメラ)センサを含む、1つまたは複数のセンサを使用することができる。
【０００７】
本開示のいくつかの態様は、カメラが3DOF回転運動モデルを使用してパノラママップから追跡される間に、回転専用モードから一般運動モードへの遷移を検出する。回転専用モードの間、視覚的パノラママップトラッカーは、その回転運動推定において並進運動を追加の仮想回転として符号化する。平行して、運動センサからの回転が測定される。視覚センサおよび運動センサの回転推定間の差異を計算することによって、並進運動を決定する際に使用され得る視差角度が導出される。視差角度、したがって並進運動を確実に決定することは、新しい3Dマップの初期化をトリガすることを可能にし、これはフル6DOFにおけるカメラの連続的な追跡を可能にする。
【０００８】
本開示の態様は、デバイスに関する視覚ベースの回転運動角度を決定するステップであって、視覚ベースの回転運動角度が、複数のキーフレームに対して画像処理を実行することによって決定される、決定するステップと、複数のキーフレーム間のデバイスに関するセンサベースの回転運動角度を決定するステップであって、センサベースの回転運動角度が、デバイスに結合された1つまたは複数の運動センサを使用して決定される、決定するステップと、デバイスに関する視差角度を決定するステップであって、視差角度が、視覚ベースの回転運動角度とセンサベースの回転運動角度とを比較することによって決定される、決定するステップと、視差角度をしきい値と比較するステップと、視差角度がしきい値を上回ることに基づいて、並進運動を検出するステップとを含む、パノラマ同時位置特定およびマッピング(SLAM)モードでデバイスを追跡する間に並進運動を検出するための例示的な方法、装置、非一時的コンピュータ可読媒体、および手段について説明する。いくつかの態様では、運動センサは、ジャイロスコープ、加速度計、磁力計、カメラ、または運動を検出するための任意の他の適切なセンサを含み得る。
【０００９】
いくつかの態様では、非一時的コンピュータ可読記憶媒体は、本明細書で説明する同時位置特定およびマッピング(SLAM)の態様を実行するためにプロセッサによって実行可能な命令を含み得る。さらに、パノラマ同時位置特定およびマッピング(SLAM)モードでデバイスを追跡する間に並進運動を検出するためのデバイスおよび装置は、マップおよび他のデータ構造を記憶するためのメモリと、物理的シーンに関する情報を取得するためにデバイス/装置に結合された1つまたは複数のカメラと、メモリに結合された1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは本明細書で説明する態様を実行するように構成される。
【００１０】
本開示の態様は、複数のキーフレーム間の少なくとも視差角度を使用して、並進運動を決定するステップをさらに含む。本開示のいくつかの態様はまた、少なくとも並進運動を使用して、デバイスからの1つまたは複数の特徴に関する距離を三角測量することによって、そのデバイスについての1つまたは複数の特徴に関する深度情報を決定するステップを含む。また、本開示のいくつかの態様は、並進運動の検出に少なくとも基づいて、一般運動モードでデバイスを追跡するために3次元(3D)マップを初期化するステップをさらに含む。いくつかの態様は、並進運動を検出することに基づいて、6自由度(6DOF)SLAMマッピングに切り替えるステップを含み得る。本開示のいくつかの態様は、並進運動の検出に少なくとも基づいて、2つのキーフレームを使用した3次元(3D)マップのステレオ初期化を使用して、デバイスを追跡するために3Dマップを初期化するステップを含む。本開示のいくつかの態様では、第1の時点において獲得された参照キーフレームと第2の時点において獲得された現在キーフレームとの間の運動に関して、視覚ベースの回転運動角度およびセンサベースの回転運動角度が検出される。
【００１１】
前記の説明では、次の詳細な説明を理解しやすくするために例の特徴および技術的利点の概略をかなり広範にわたって述べている。以下で、さらなる特徴および利点を説明する。本開示の同じ目的を実行するために他の構造を修正または設計する際の基礎として、開示する概念および特定の実施例を容易に利用することができる。そのような等価な構造は、添付の特許請求の範囲の趣旨および範囲から逸脱しない。本明細書で開示する概念の特性であると考えられる特徴は、その編成と動作方法の両方に関して、添付の図とともに検討すると、関連する利点とともに以下の説明からよりよく理解されよう。図の各々は、特許請求の範囲の限界を定めるものとしてではなく、例示および説明のみの目的で与えられる。
【００１２】
本開示の態様は例として示される。以下の説明は図面を参照して提供され、全体を通して、同じ参照番号は同じ要素を指すために使用される。本明細書では1つまたは複数の技法の様々な詳細について説明するが、他の技法も同様に可能である。場合によっては、様々な技法の説明を容易にするために、周知の構造およびデバイスがブロック図の形式で示されている。
【００１３】
明細書の残りの部分および図面を参照することによって、本開示によって与えられる実施例の性質および利点をさらに理解することができ、同様の参照番号が、同様の構成要素を指すために、いくつかの図面全体で用いられる。いくつかの場合には、複数の同様の構成要素の1つを指すために、サブラベルが参照番号と関連付けられる。存在するサブラベルを識別することなく、参照番号に言及する場合、参照番号はそのようなすべての同様の構成要素を指す。
【図面の簡単な説明】
【００１４】
【図１】本開示のいくつかの態様による、システムのブロック図である。
【図２】本開示のいくつかの態様による、例示的なSLAMシステムに関するマップを生成するためのフローチャートを示す図である。
【図３】本開示のいくつかの態様による、有限3D特徴を含む、時間tにおける、グローバルSLAMマップ表現を示す図である。
【図４】本開示のいくつかの態様による、有限3D特徴と無限3D特徴とを含む、時間t+1における、グローバルSLAMマップ表現を示す図である。
【図５】本開示のいくつかの態様による、有限3D特徴と無限3D特徴とを含む、時間t+2における、グローバルSLAMマップ表現を示す図である。
【図６】本開示のいくつかの態様による、有限3D特徴と無限3D特徴とを含む、時間t+3における、グローバルSLAMマップ表現を示す図である。
【図７】本開示のいくつかの態様による、有限3D特徴と無限3D特徴とを含む、時間t+4における、グローバルSLAMマップ表現を示す図である。
【図８】本開示のいくつかの態様による、有限3D特徴と無限3D特徴とを含む、時間t+5における、グローバルSLAMマップ表現を示す図である。
【図９】本開示のいくつかの態様による、例示的な並進SLAMモジュールの態様を示すブロック図である。
【図１０】本開示の1つまたは複数の態様による方法を実行するための流れ図である。
【発明を実施するための形態】
【００１５】
ここで、本明細書の一部を形成する添付の図面に関連して、いくつかの例示的な実施形態を説明する。本開示の1つまたは複数の態様が実装され得る特定の実施形態を以下で説明するが、本開示の範囲または添付の特許請求の範囲の趣旨から逸脱することなく、他の実施形態が使用されることがあり、種々の修正が行われることがある。
【００１６】
ここで、本明細書の一部を形成する添付の図面に関連して、いくつかの例示的な実施形態を説明する。本開示の1つまたは複数の態様が実装され得る特定の実施形態を以下で説明するが、本開示の範囲または添付の特許請求の範囲の趣旨から逸脱することなく、他の実施形態が使用されることがあり、種々の修正が行われることがある。
【００１７】
「例示的」または「例」という単語は、本明細書では「例、事例、または例示としての役割を果たすこと」を意味するために使用される。「例示的」もしくは「例」として本明細書において説明するいずれの態様または実施形態も、他の態様もしくは実施形態に比べて好ましいか、または有利であると必ずしも解釈されるべきではない。
【００１８】
本開示の態様は、これに限定はされないが、視覚的SLAM(VSLAM)および空中協調視覚的同時位置特定およびマッピング(C-VSLAM:Airborne Cooperative Visual Simultaneous Localization and Mapping)など、同時位置特定およびマッピング(SLAM)システムに関する。SLAMシステムは、単一のカメラの入力を処理して、カメラが移動するにつれて、環境のマップ(別名、モデル)を連続的に構築することができる。環境のマップは、3次元(3D)特徴など、環境のいくつかの態様を表し得る。視覚的SLAMシステムは、マップに対するカメラの位置および配向(姿勢)を同時に追跡するように構成され得る。いくつかの最適化されたSLAMシステムは、マッピングからの追跡を減結合して、これらのタスクを非対称的に実行することができる。いくつかの実装形態では、追跡機能およびマッピング機能は、マルチコアプロセッサ上で平行して実行され得る別個の処理スレッドを使用して実行され得る。キーフレームベースのSLAMシステムは、着信カメラ画像ストリームまたはビデオフィードからのフレームを別々に選択して、(たとえば、マップを拡張するために)マッピングおよび追跡するためにこれらのフレームを使用する。そのような別々に選択されたカメラ画像フレームは、キーフレームと呼ばれる場合がある。
【００１９】
6自由度(6DOF)を備えたSLAMシステムは、一般カメラ運動(並進、および、オプションで回転を含む運動)を想定して、運動からの構造復元(structure-from-motion)技法を適用して、3D特徴マップを作成する。運動からの構造復元技法は、2次元キーフレームから環境に関する3D情報を抽出することを含み得る。複数のカメラ視点の観測からの3Dマップ特徴のロバストな三角測量は、並進カメラ運動または一般カメラ運動によって十分な視差が誘導されることを必要とする。視差角度は、2つの視点間でデバイスの並進運動によって誘導された2つの視点間の角度である。本明細書で説明するように、6DOF運動および一般運動は、本開示の範囲から逸脱せずに、交換可能に使用され得る。
【００２０】
対照的に、パノラマSLAMシステムは、回転専用カメラ運動を想定し、3自由度(3DOF)でカメラを追跡する。視差が観測されないため、特徴点は三角測量されず、したがって、深度情報を伴わない光線または特徴としてだけ記述され得る。本明細書で説明する場合、そのような光点(ray point)特徴は有限特徴と呼ばれ、深度情報を含む、6DOF SLAMからの3D点特徴は無限特徴と呼ばれる。本明細書で説明する場合、パノラマSLAMは3DOF SLAMと呼ばれる場合があり、パノラマ回転は3DOF回転と呼ばれる場合があり、本開示の範囲から逸脱せずに、交換可能に使用され得る。
【００２１】
制約なしSLAM(USLAM:Unconstrained SLAM)システムは、一般カメラ運動と回転専用カメラ運動の両方に対処する。現在のカメラ運動に応じて、これらのSLAMシステムは、運動からの構造復元技法またはパノラマ追跡およびマッピング技法のいずれかを適用し、3Dマップおよびパノラママップのセットをもたらす。一般カメラ運動は、フル6DOFでカメラを追跡することを可能にする有限深度を備えた特徴からなる3Dマップにマッピングされる。対照的に、回転専用カメラ運動は、3DOF回転としてだけ、カメラを追跡することを可能にする無限深度を備えた特徴からなるパノラママップにマッピングされる。USLAMは、ハイブリッドSLAM(HSLAM:Hybrid SLAM)と呼ばれる場合もあり、本開示の範囲から逸脱せずに、これらの用語は本明細書を通して交換可能に使用され得る。
【００２２】
USLAMマッピングおよび追跡は、ユーザによって実行されるカメラ運動に応じて、ユーザが一般運動と純回転運動との間をシームレスに切り替えることを可能にする。一実施形態では、USLAMマッピングは、6DOFキーフレームおよびパノラマキーフレームを利用して、三次元(3D)マップの新しい部分を推定する。6DOF情報とパノラマ情報とを組み合わせるそのようなマップは、グローバルSLAM(Global SLAM)マップと呼ばれる場合がある。したがって、グローバルSLAMマップを、1つまたは複数の一般運動マップおよびパノラママップのコンテナと説明することができる。グローバルSLAMマップは、ハイブリッドマップと呼ばれることもあり、本開示の範囲から逸脱せずに、グローバルSLAMマップと交換可能に使用され得る。
【００２３】
USLAMシステムは、一般に、可能な場合はいつでも、一般運動マップとパノラママップとをマージして(共通尺度を含む)共通座標系を備えたより大きなマップにすることを目的とする。たとえば、USLAMシステムは、マップの対同士の間に十分な重複を用いて、一般運動マップとパノラママップとをマージすることができる。概して、グローバルSLAMマップは、一般に、連結されていないいくつかのマップを含むことが可能であり、これは、個々の3D/パノラママップ間の空間変換が知られていない(または、部分的にだけ知られている)ことを意味する。
【００２４】
本開示のいくつかの態様によれば、デバイスは、パノラマSLAMモードで動作する間に、並進運動を受ける場合がある。場合によっては、並進運動は、デバイスのユーザによる、パンなど、偶発的な運動の結果であり得る。従来は、そのような並進運動は、パノラマSLAMにおいて特徴の追跡のエラーおよび損失を生じさせる。
【００２５】
本開示の態様は、並進運動をロバストに検出して、回転専用運動モードと一般運動モードとの間、および対応するパノラマ/3Dの追跡モードとマッピングモードとの間を遷移するための技法について説明する。不正確な遷移は、誤って測定された特徴で3Dとパノラママップの両方を破損し、追跡障害をもたらす。モデル選択アルゴリズムなどの既存の視覚専用方法と対照的に、本開示の態様は、慣性(ジャイロスコープ、加速度計)センサ、磁気(コンパス)センサ、視覚(カメラ)センサ、または任意の他のセンサを含む、1つまたは複数のセンサを使用する。
【００２６】
下でより詳細に説明するように、いくつかの態様では、USLAMシステムは、シーンのマッピングされた部分から離れた回転(別名、6DOFマッピングからパノラママッピングへの遷移)に対処するように構成される。これらの回転が検出されて、無限特徴を含むパノラママップを構築するために使用される特殊な「パノラマ」(別名、3DOF)キーフレームが選択される。パノラママップは、3Dマップの一部として登録される。場合によっては、パノラマキーフレームは、カメラがシーンのマッピングされた部分から離れるにつれて、パノラママップを構築するための基礎として、最後の一般運動キーフレームを使用する。
【００２７】
USLAMシステムは、パノラママップから別の3Dマップへの遷移をサポートする。シーンのマッピングされた部分から離れるカメラ並進は、視覚センサおよび運動センサの姿勢を比較し、続いて、グローバルSLAMマップに追加される(他の3Dマップと整合しない)新しい3Dマップを初期化することによって、検出される。
【００２８】
具体的には、カメラが3DOF回転運動モデルを使用してパノラママップから追跡される間に、回転専用運動から一般運動への遷移を検出するための技法について説明する。2つのカメラ視点間で検出される並進運動の検出は、画像処理技法およびセンサを使用して獲得された回転角度を比較することによって実行され得る。視覚ベースの回転運動角度とも呼ばれる、画像処理を使用して検出された回転角度は、並進運動によってもたらされた視覚角度成分を含み得る。他方で、センサベースの回転運動角度とも呼ばれる、センサからの回転角度は、2つのカメラ視野間のデバイスの実際の(または、実際に近い)回転を表す。並進運動によってもたらされた2つの視点間の角度である視差角度は、視覚ベースの回転運動角度をセンサベースの回転運動角度と比較することによって算出され得る。キーフレームは、視差ヒューリスティックとカバレッジヒューリスティックとを使用して選択され得る。視差角度は並進運動の基線およびシーンの深度に左右され、したがって、並進運動を決定するために使用され得る。2つの視野点間で決定された並進運動を使用して、2つの視野において共通して観測された特徴を三角測量し、それによって、特徴の深度を決定することができる。2つのカメラ視野は、6DOFキーフレームとして選択され、三角測量された有限特徴とともに新しい3Dマップに追加される。次に、新しい3DマップがグローバルSLAMマップに追加される。したがって、視差角度を確実に決定することは、新しい3Dマップのロバストな初期化を可能にし、これはフル6DOFにおけるカメラの連続的な追跡を可能にする。
【００２９】
本明細書で説明する技法は、パノラマSLAMモードで動作する間に検出された並進運動を使用して、追加の6DOFマップでグローバルSLMマップをポピュレートすることを可能にし、グローバルSLAMマップの品質を強化する。さらに、技法は、6DOF SLAMを使用して、並進運動を適切に検出し、追跡し続けることによって、パノラマSLAMモードの並進運動による特徴の追跡損失を防ぐことができる。
【００３０】
図1は、本発明の態様を実施することができるシステムを示すブロック図である。システムは、1つまたは複数の汎用プロセッサ161と、画像処理モジュール171と、追跡モジュール181と、6DOF SLAMモジュール173、3DOF SLAMモジュール175、およびマッピングモード切替えモジュール179を含むマッピングモジュール180と、メモリ164とを含み得るデバイス100であってよい。デバイス100はまた、ソフトウェアインターフェース、ハードウェアインターフェース、またはそれらの何らかの組合せを介して、追跡モジュール181と、画像処理モジュール171と、マッピングモジュール180(6DOF SLAMモジュール173、3DOF SLAMモジュール175、およびマッピングモード切替えモジュール179)を直接的にまたは間接的にのいずれかで結合する、1つもしくは複数のバス177または信号線を含み得る。モジュール170、171、173、175、179、180、および181は、明確にするためにプロセッサ161および/またはハードウェア162とは別に示されているが、これらは、ソフトウェア165およびファームウェア163内の命令に基づいて、プロセッサ161および/またはハードウェア162内で結合および/または実装(もしくは、その上で実行)可能である。制御ユニット160は、下で説明するUSLAMを実行するための方法を実装するように構成され得る。たとえば、制御ユニット160は、図2〜図10で説明するモバイルデバイス100の機能を実装するように構成され得る。いくつかの実施形態では、ソフトウェア165またはファームウェア163の命令は、非一時的コンピュータ可読媒体上に記憶され得る。
【００３１】
デバイス100は、モバイルデバイス、ワイヤレスデバイス、セルフォン、拡張現実感(AR:augmented reality)デバイス、パーソナルデジタルアシスタント、着用可能デバイス(たとえば、眼鏡、腕時計、帽子、頭部装着デバイス(HMD:head mounted device)または同様の身体装着デバイス)、モバイルコンピュータ、タブレット、パーソナルコンピュータ、ラップトップコンピュータ、データ処理デバイス/システム、または処理能力を有する任意のタイプのデバイスであってもよい。
【００３２】
一実施形態では、デバイス100はモバイル/携帯型プラットフォームである。デバイス100は、カメラ114などの画像を捕獲するための手段を含むことができ、また、加速度計、ジャイロスコープ、電子コンパス、または他の同様の運動知覚要素などの運動センサ111を含むことも可能である。そのような運動センサ111は、センサベースの回転運動角度、したがって、デバイス100に関連する並進運動を決定するために使用され得る。
【００３３】
デバイス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実施を見る際に、実世界対象またはシーンをデバイスディスプレイ上で、実時間で置き換えるか、または変更することができる。仮想対象(たとえばテキスト、画像、ビデオ)は、デバイスディスプレイ上に描写されたシーンの表現の中に挿入され得る。
【００３６】
本開示の態様によれば、USLAMシステム170は、非一時的コンピュータ可読媒体から取り出された命令を使用して実行され得る。一実装形態では、これらの命令はソフトウェア165としてメモリ164内に記憶される。これらの命令は、1つまたは複数のプロセッサ161を使用して実行され得る。
【００３７】
いくつかの実施形態では、USLAMシステム170の構成要素は、(1)マッピングモジュール180と、(2)追跡モジュール181と、(3)マッピングモジュール180および追跡モジュール181によって共有されるグローバルSLAMマップデータ構造とを含み得る。加えて、USLAMシステム170は、画像処理モジュール171を含み得る。
【００３８】
一実施形態では、USLAMシステム170は、有限特徴および無限特徴を備えたマップのデータベースとして実装され得るグローバルSLAMマップを維持する。グローバルSLAMマップ166の一部はメモリ165内でバッファリングされ得る。マップデータベースは、複数の3Dマップを含み得る。いくつかの実装形態では、任意の所与の時点で、3Dマップのうちの1つだけがアクティブであり得る。
【００３９】
追跡モジュール181は、カメラからのビデオストリームをフレームレートで処理して、アクティブな3Dマップに対する一般カメラ運動と回転専用カメラ運動の両方を追跡する。統合された姿勢推定器は、有限3Dマップ特徴と無限3Dマップ特徴の両方の測定を組み合わせて、6DOF姿勢または3DOF姿勢のいずれかを自動的に計算する。6DOF姿勢は、3Dマップに対するカメラ画像の3DOF回転(別名、配向)および3DOF姿勢(別名、並進)を決定する。3DOF姿勢は、3Dマップに対する3DOF回転を単に決定する。いくつかの実装形態では、追跡モジュール181はまた、マッピングモジュール180に渡されるキーフレームを選択する。計算された姿勢のDOFカウントに対応して、これらのキーフレームは6DOFキーフレームまたは3DOFキーフレームと呼ばれる場合がある。
【００４０】
マッピングモジュール180は、追跡モジュール181によって選択された6DOFキーフレームとパノラマキーフレームとに基づいて、グローバルSLAMマップを拡張し、改良する。キーフレームは、視差ヒューリスティックとカバレッジヒューリスティックとを使用して選択され得る。視差は、共通して閲覧されるシーンジオメトリ(別名、有限3Dマップ特徴)上への2つのカメラフレームの視野方向間の(たとえば、現在フレームと既存のキーフレームとの間の)角度である。カバレッジは、有限特徴投影でカバーされるフレーム面積比である。
【００４１】
マッピングモジュール180は、6DOF SLAMモジュール173と、パノラマSLAMモジュール175と、マッピングモード切替えモジュール179とを含み得る。6DOF SLAMモジュール173とパノラマSLAMモジュール175は両方とも、メモリ164内に記憶されたグローバルSLAMマップ166にアクセスし、更新することができる。
【００４２】
いくつかの実施形態では、6DOF SLAMモジュール173は、捕獲された画像からの有限特徴を用いてキーフレームを作成することができる。6DOF SLAMモジュール173は、捕獲した画像がグローバルSLAMマップとすでに関連付けられている前のキーフレームからのしきい値並進と一致すると決定すると、キーフレームを生成することができる。上で論じたように、6DOF SLAMモジュール173は、2つ以上のキーフレーム(たとえば、一対のキーフレームまたは複数の対のキーフレーム)から三角測量された3D特徴点を含み得るマップを生成して、そのマップをグローバルSLAMマップ166内に挿入することができる。
【００４３】
いくつかの他の実施形態では、パノラマSLAMモジュール175は無限特徴を用いてパノラママップを作成する。他の実施形態では、パノラマSLAMモジュール175は、捕獲された複数の画像をまとめて縫いつづって、回転専用カメラ運動を用いて取得された画像の結合収集にすることもできる。3DOF SLAM(たとえば、パノラマSLAMモジュール175による回転追跡)を使用するUSLAMシステム170は、(すなわち、6DOF SLAMモジュール173によって算出される)6DOF SLAMの6DOFと比べて、3回転自由度(3DOF)を算出することができる。パノラマSLAMモジュール175は、相対回転を使用して回転キーフレームを互いに関連付けることができる。USLAMシステム170は、最小しきい値視差または並進が一致しないとき、特徴点三角測量をバイパスまたはスキップすることができる。たとえば、カメラの位置はそのままであり、先行するキーフレームから純回転のみが生じたとき、最小しきい値の視差または並進は一致しないことになる。
【００４４】
本開示のいくつかの態様は、パノラマSLAMモードで動作する間にカメラの移動における並進運動を検出することに基づく単眼VSLAMに関する技法について説明する。並進運動は、運動センサ111からの回転運動を使用して算出され得る。動きセンサ111は、加速度計、ジャイロスコープなどの慣性センサと、磁力計などの磁気センサとを含み得る。さらに、運動センサはまた、カメラセンサと、運動を決定するための関連するハードウェアおよび/またはソフトウェア論理とを含み得る。パノラマSLAMを実行する間に並進運動を検出することに基づいて、6DOFキーフレームと有限マップ特徴とからなる新しい3Dマップを初期化することができ、6DOF SLAMへの切替え、および新しい3Dマップに対するカメラの連続的な追跡を引き起こすことができる。
【００４５】
いくつかの実施形態によれば、並進運動の検出は、マッピングモード切替えモジュール179によって実行される。2つのカメラ視野間の並進運動の検出は、画像処理技法およびセンサを使用して獲得された回転角度を比較することによって実行され得る。視覚ベースの回転運動角度とも呼ばれる、画像処理を使用して検出された回転角度は、並進運動によってもたらされた視覚角度成分を含み得る。他方で、センサベースの回転運動角度とも呼ばれる、センサからの回転角度は、2つのカメラ視野間のデバイスの実際の回転を表す。並進運動によってもたらされた2つの視点間の角度である視差角度は、視覚ベースの回転運動角度をセンサベースの回転運動角度と比較することによって算出され得る。その後、視差角度を使用して、並進運動を算出することができる。いくつかの態様では、パノラマSLAMマッピングから6DOF SLAMマッピングに切り替えるためのインジケータとして、あるしきい値を超える(視差角度によって示される)並進運動を使用することができる。
【００４６】
パノラマSLAMマッピングから6DOF SLAMマッピングへの切替えは、並進運動が利用可能である場合、さもなければ、それらに関連するそのような深度情報を有さないことになる点特徴に関する深度を含めることによって、グローバルGlobal SLAMマップの強化を可能にする。
【００４７】
図2は、本開示のいくつかの態様による、制約なしSLAMシステム170に関するフローチャートを示す。図2では、202および204と標示されたブロックは3Dマップを表す。各3Dマップは、複数のパノラママップと一般運動マップとを備えたコンテナとして処理され得る。システム起動において、(a)少なくとも2つのキーフレームを使用するステレオ初期化(ユーザが並進/一般カメラ運動を実行する)、(b)知られている追跡ターゲットに関する検出など、1つまたは複数の初期化方法、または任意の他の適切な方法を使用して、第1の3Dマップを初期化する(ブロック206)。
【００４８】
その後、ユーザによって実行されるカメラ運動に応じて、様々なマッピングモードを実行することができる。概して、一般カメラ運動の段階の間に、6DOF SLAMモジュール173によって6DOFマッピング210が実行され、純回転カメラ運動の段階の間に、パノラマSLAMモジュール175によって3DOFマッピング212が実行される。それに応じて、マッピングエンジンは、以下を行うことができる。
a.(視覚ベースの方法を使用して)純回転運動が検出されたとき、6DOFマッピング210から3DOFマッピング212への遷移、および、
b.(視覚ベースの方法を使用して)生成された運動が検出されて、カメラが知られているマップ領域(すでに3D内にマッピングされているシーンの部分)に向けて移動するとき、3DOFマッピング212から6DOFマッピング210への遷移。
【００４９】
場合によっては、(視覚センサおよび運動センサを使用して)一般運動が検出されて、カメラが知られていないマップ領域(すでに3D内にマッピングされていないシーンの部分)に向けて移動するとき、マッピングモジュール180は、3DOFマッピング212から3Dマップ初期化208に遷移する。3DOFマッピング212から3Dマップ初期化208への遷移については、下でさらに詳細に説明する。
【００５０】
知られていないマップ領域3Dマップ初期化208ならびに(6DOFおよび3DOF)マッピングに関するブロック206、210、および212に関して前に説明した手順と同様のことを実行することができる。新しい3Dマップ204が初期化されて、マッピングモジュール180は、一般運動に関して6DOFマッピング214を実行し、純回転運動、および、遷移が知られているマップ領域内である限り、2つの間の遷移に関して3DOFマッピング216を実行することができる。
【００５１】
図3は、有限3D特徴306を含む、時間tにおける、グローバルSLAMマップ表現を示す。有限特徴は、6DOF SLAMモジュール173によって、検出され、3Dマップの一部として記憶され得る。ブロック302および304は、経時的なカメラの異なる位置および配向に関連するキーフレームを表す。点線ブロック302は、時間t-1において、過去に生じたキーフレームを表すのに対して、実線ブロック304は、時間tにおける現在フレームを表す。図3は、一般カメラ運動に関する6DOFマッピングを示すが、カメラ姿勢は6DOFマッピングにおいて完全に制約される。6DOFキーフレームがシーンの新しい部分を画像化する間に既存のキーフレームに対して十分な視差を生成するとき、6DOFキーフレームが選択される。6DOFマッピング110用のロバストな特徴三角測定のために十分な視差が望ましい。一実施形態では、6DOFキーフレームを3Dマップに挿入するとき、新しい有限マップ特徴が追加される。
【００５２】
図4は、本開示のいくつかの態様による、有限3D特徴306と無限特徴410とを含む、時間t+1における、グローバルSLAMマップ表現の部分を示す。
【００５３】
ブロック302、304、および408は、経時的なカメラの異なる位置および配向に関連するキーフレームを表す。点線ブロック302および304は、時間t-1およびtにおいて、過去に生じたキーフレームを表すのに対して、実線ブロック408は、時間t+1における現在フレームを表す。システムが準回転運動を検出したとき、新しいパノラママップを構成し、回転のその中心を定義する参照パノラマキーフレーム408が選択される。参照パノラマキーフレーム408は6DOF姿勢を有し、したがって、3Dマップに対して十分に位置特定されていることに留意されたい。純回転カメラ運動は、追跡された6DOF姿勢の履歴に基づいて検出され得る。たとえば、現在フレームが、6DOFフレーム履歴内に含まれたフレームに関して低い視差および十分な角度を示す場合、純回転が想定され得る。いくつかの実装形態では、参照パノラマキーフレームを挿入する一環として、1つまたは複数の新しい無限マップ特徴をマップ内に挿入することができる。
【００５４】
図5は、本開示のいくつかの態様による、有限3D特徴306と無限特徴410とを含む、時間t+2における、グローバルSLAMマップ表現の部分を示す。ブロック302、304、408、および512は、経時的なカメラの異なる位置および配向に関連するキーフレームを表す。点線ブロック302、304、および408は、時間t-1、t、およびt+1において、過去に生じたキーフレームを表すのに対して、実線ブロックは、時間t+2における現在フレーム512を表す。
【００５５】
連続的な順回転カメラ運動を実行する間に、パノラマモジュール175は、狭いカバレッジと十分な回転とに基づいて、従属パノラマキーフレーム512を選択し続ける。狭いカバレージは、カメラがマッピングされないシーン領域を探査し続けていることを示す。回転は、現在のフレームの視野方向と現在のパノラママップのキーフレーム姿勢との間の差動角度として計算され得る。これらのキーフレームは従属キーフレームと呼ばれるが、これはこれらのキーフレームは参照パノラマキーフレームからその3D位置を採用するためである。いくつかの実装形態では、パノラマキーフレームを挿入する一環として、1つまたは複数の新しい無限マップ特徴を3Dマップ内に挿入することができる。
【００５６】
図6は、本開示のいくつかの態様による、有限3D特徴306と無限特徴410とを含む、時間t+3における、グローバルSLAMマップ表現の一部を示す。点線ブロック302、304、および他の番号付けされていないブロックは、時間t-1、t、t+1、およびt+2において、過去に生じたキーフレームを表すのに対して、実線ブロックは、時間t+3における現在フレーム614を表す。図6に示すように、カメラが、フル6DOF姿勢を推定することができるように、パノラマの中心から離れて、すでに知られている3Dマップ領域に戻る場合、システムは、(図2を参照して説明したように)すでに開始された3Dマップ202に関して、3DOFマッピング212から6DOFマッピング210に切り替える。
【００５７】
図7は、本開示のいくつかの態様による、有限3D特徴306と無限特徴410とを含む、時間t+4における、グローバルSLAMマップ表現の部分を示す。点線ブロック302、304、および716は、時間t-1、t、t+1、t+2、およびt+3において、過去に生じたキーフレームを表すのに対して、実線ブロック718は、時間t+4における現在フレームを表す。
カメラデバイスが知られていないシーン領域に向けてパノラマの中心から並進するとき、十分な視差を提供する2つのキーフレームが見出されるとすぐに、新しい3Dマップが開始する(ブロック208)。
【００５８】
いくつかの実施形態では、参照キーフレーム716(たとえば、パノラママップの参照キーフレーム)と現在フレーム718との間の運動に関して視覚および慣性/磁気センサから別個に、かつ同時に推定された2つの3DOF回転を比較することによって、デバイスのカメラ並進が決定される。視覚回転(別名、3DOF姿勢)はパノラママップの無限特徴から推定される。パノラママップ追跡は並進を測定することを可能にしないため、生じる回転推定は仮想回転を含む。運動センサから推定されたセンサ3DOF回転は、キーフレーム(716および718)間のデバイスの実際の(実際に近い)回転を表す。センサベースの回転運動角度は、カスタムセンサ融合フレームワーク(custom sensor fusion framework)を使用して計算することができるか、または現代のモバイルOSプラットフォームによって提供されるAPI呼出しを使用して取り出すことができる。
【００５９】
本開示の態様によれば、並進は1つまたは複数のセンサから直接的に推定されず、代わりに、回転運動が決定され、次いで、並進運動を推定する際に使用される。1つまたは複数のセンサから直接的に導出された並進運動に依存しないことによって、本開示の態様は、加速度計ドリフトに伴うよく知られている問題を回避する。言い換えれば、慣性/磁気センサから3DOF回転を推定することは、フル6DOF姿勢を推定するよりもロバストである。
【００６０】
カメラ並進を決定するために、マッピングモード切替えモジュール179は、参照キーフレーム716と現在フレーム718との間の回転に関する視覚センサおよび運動センサの3DOF回転推定間の差分を検出することができる。実験を使用して決定されるように、生じる差分回転角度は、視覚回転の推定のために使用される画像特徴の平均視差角度にほぼ対応する。したがって、マッピングモード切替えモジュール179は、3DOFパノラママッピングおよび追跡から6DOF一般マッピングおよび追跡への遷移をトリガするために都合がよく、かつ設定可能なしきい値視差角度オフセットを決定することができる。しきい値は、後続のマップ初期化ステップにおけるロバストな特徴三角測定を確実にし得る。
【００６１】
図8で、ブロック208に関して前に説明したように、時間t+5において、新しい3Dマップを初期化することができる。遷移がトリガされると、6DOFでカメラデバイスの連続的な追跡を可能にする新しい3Dマップが異なるビューから作成される。新しい3Dマップは、2D観測からの有限3D特徴を三角測定することによって、一対のキーフレーム(たとえば、回転比較のために使用される参照フレームおよび現在フレーム)から初期化される。このタスクの場合、任意のステレオ初期化方法(たとえば、5点アルゴリズムと組み合わせたワイドベースライン整合)を使用することができる。「新しい」3Dマップ(ジグザグ)720と「古い」3Dマップ(ジグザグ)306を接続することができないことに留意されたい。2つのマップ間の空間変換は、部分的にだけ知られている場合があり、たとえば、2つの3Dマップの各々は別個の基準を有し得る。新しい3Dマップ720はグローバルSLAMマップに追加されて、「アクティブ」として設定される。ブロック822によって示すように、追加の一般運動は、有限3D特徴を用いて新しい3Dマップ720をさらに改良する際に使用され得る。
【００６２】
図9は、本開示のいくつかの態様による、例示的な並進SLAMモジュールの態様を示すブロック図である。マッピングモード切替えモジュール179は、視覚ベースの回転運動決定器モジュール902と、センサベースの回転角度決定器モジュール904と、視差角度決定器モジュール906と、並進運動決定器モジュール908と、SLAM切替えモジュール910と、深度決定モジュール912とを含み得る。マッピングモード切替えモジュール179の構成要素は、画像処理モジュール171と、運動センサモジュール111と、3DOF SLAMモジュール175と、6DOF SLAMモジュール173とに結合され得る。図9で説明するモジュールは、ソフトウェア165およびファームウェア163内の命令に基づいて、プロセッサ161および/またはハードウェア162など、図1に説明した構成要素を使用して組合せおよび/または実装可能である。いくつかの実施形態では、ソフトウェア165またはファームウェア163の命令は、非一時的コンピュータ可読媒体上に記憶され得る。
【００６３】
いくつかの実装形態では、回転専用モードで動作する間に、画像処理モジュール171は、さらなる処理のためにカメラ114からいくつかの画像またはキーフレームを獲得することができる。図1の追跡モジュール181は、キーフレームを使用してパノラママップに対してデバイスを追跡することができる。加えて、マッピングモジュール180は、追加の無限特徴を検出して、これらの特徴を3Dマップ内に挿入することができる。
【００６４】
視覚ベースの回転運動決定器902は、画像処理モジュール171からキーフレームを受け取って、画像処理技法を使用して、2つのキーフレーム間でデバイスが受ける回転に関する視覚ベースの回転運動角度を決定することができる。デバイスが受ける並進運動による視覚ベースの回転運動角度の一部として、視覚角度と呼ばれる、追加の回転角度成分を符号化することができる。本質的に、パノラマモードの間、SLAMシステムは、回転運動だけを予想して、デバイスが回転運動だけを受けていると想定して、視覚ベースの回転運動角度を算出する。したがって、任意の並進運動は視覚ベースの回転運動の一部として誤って符号化される。場合によっては、並進運動は、パノラマSLAMモードでユーザの一部に偶発的にパンすることに起因し得る。
【００６５】
平行して、センサベースの回転運動決定器904は、視覚ベースの回転運動角度が算出される同じ期間にわたってセンサベースの回転運動角度を決定することができる。たとえば、(参照キーフレームと現在キーフレームとを備える)一対のキーフレームに関して視覚ベースの回転運動角度が算出される場合、センサベースの回転運動角度も参照キーフレームと現在キーフレームとが獲得された時点でのセンサ示度を使用して算出される。センサベースの回転運動角度は、キーフレーム間のデバイスに関する実際の(または、実際に近い)回転角度を表す。
【００６６】
視差角度決定器モジュール906は、センサベースの回転運動角度と視覚ベースの回転運動角度とを比較することによって、視差角度を決定する。視差角度、すなわち、並進運動によってもたらされた2つの視点間の角度は、ベースラインとシーンの深度との間の差分をやはり表す。いくつかの実施形態では、視差角度はしきい値角度と比較される。視差角度がしきい値以下である場合、視差角度はノイズとして無視されてよい。
【００６７】
視差角度がしきい値を超える場合、並進運動決定器モジュール908の一部として並進運動が決定される。並進運動決定器モジュール908は、視差角度を使用して並進運動を決定する。並進運動が決定されると、深度決定器モジュール912は、並進運動を使用して、デバイスからの1つまたは複数の特徴に関する距離を三角測量することによって、そのデバイスについての1つまたは複数の特徴に関する深度を決定することができる。SLAM切替えモジュール910は、パノラマSLAMモジュール175から6DOF SLAMモジュール173にマッピングモジュール180を切り替えることができる。場合によっては、カメラがアクティブな3Dマップ領域外の新しい領域に移動するとき、6DOF SLAM173に切り替える前に、新しい3Dマップをやはり初期化することができる。
【００６８】
図10は、本開示の1つまたは複数の態様による方法を実行するための流れ図を示す。1つまたは複数の態様によれば、図10に示す流れ図1000で説明した方法および/または方法ステップのいずれかおよび/またはすべてが、たとえば、デバイス100、図1でより詳細に説明した構成要素によって、かつ/またはそれらにおいて実装され得る。一実施形態では、図10に関して以下で説明する方法プロセスのうちの1つまたは複数は、プロセッサ161または別のプロセッサなどの、モバイルデバイスのプロセッサによって実装される。加えてまたは代替として、本明細書で説明する方法および/または方法ステップのいずれかおよび/またはすべては、メモリ164または別のコンピュータ可読媒体などのコンピュータ可読媒体上に記憶されたコンピュータ可読命令などのコンピュータ可読命令で実装され得る。
【００６９】
ブロック1002で、デバイスの構成要素は、複数のキーフレーム間のデバイスに関する視覚ベースの回転運動角度を決定し、視覚ベースの回転運動角度は、複数のキーフレームに対して画像処理を実行することによって決定される。
【００７０】
ブロック1004で、デバイスの構成要素は、複数のキーフレーム間のデバイスに関するセンサベースの回転運動角度を決定し、センサベースの回転運動角度は、デバイスに結合された1つまたは複数の運動センサを使用して決定される。1つまたは複数のセンサは、デバイスに内蔵された慣性(ジャイロスコープ、加速度計)センサ、磁気(コンパス)センサ、および/または視覚(カメラ)センサを含み得る。
【００７１】
ブロック1006で、デバイスの構成要素は、デバイスに関する視差角度を決定し、視差角度は、視野ベースの回転運動角度をセンサベースの回転運動角度と比較することによって決定される。いくつかの態様では、第1の時点において獲得された参照キーフレームと第2の時点において獲得された現在キーフレームとの間の運動に関して、視覚ベースの回転運動角度とセンサベースの回転運動角度とが検出される。
【００７２】
ブロック1008で、デバイスの構成要素は視差角度をしきい値と比較する。しきい値は設定可能であってよい。
【００７３】
ブロック1010で、視差角度がしきい値を超える場合、デバイスの構成要素は並進運動を検出する。いくつかの実装形態では、視差角度がしきい値以下である場合、視差角度の変化は無視できると決定されてよい。
【００７４】
ブロック1012で、デバイスの構成要素は、視差角度を使用して並進運動を決定する。加えて、視差角度が決定されると、デバイスの態様は、少なくとも並進運動を使用して、デバイスからの1つまたは複数の特徴に関する距離を三角測量することによって、そのデバイスに関する1つまたは複数の特徴を決定することができる。
【００７５】
デバイスの構成要素は、並進運動の検出に少なくとも基づいて、一般運動モードでデバイスを追跡するために3次元(3D)マップをさらに初期化することができる。デバイスの構成要素は、6自由度(6DOF) SLAMマッピングに切り替えることもできる。一態様では、デバイスを追跡するために3次元(3D)マップを初期化することは、並進運動の検出に少なくとも基づいて、2つのキーフレームを使用した3Dマップのステレオ初期化を含み得る。
【００７６】
図10に示す具体的なステップは、本開示のある実施形態による、動作モードを切り替える特定の方法を提供することを諒解されたい。したがって、代替実施形態ではステップの他のシーケンスが実行されてもよい。たとえば、代替実施形態は、異なる順序で、上で概説されたステップを実行することができる。例示のために、ユーザは、第3の動作モードから第1の動作モードに、またはそれらの間の任意の組合せに変えることを選択し得る。さらに、図10に示した個別のステップは、個別のステップに適している通りに様々なシーケンスで実行され得る複数のサブステップを含み得る。さらに、追加のステップが、具体的な用途に応じて、追加または削除され得る。当業者であれば、プロセスの多くの変形形態、修正形態、および代替形態を認識し、諒解するであろう。
【符号の説明】
【００７７】
100  デバイス
110  6DOFマッピング
111  運動センサ、運動センサモジュール
112  ディスプレイ
114  カメラ
150  インターフェース
152  キーパッド
154  マイクロフォン
156  スピーカー
160  制御ユニット
161  汎用プロセッサ、プロセッサ
162  ハードウェア
163  ファームウェア
164  メモリ
165  ソフトウェア
166  グローバルSLAMマップ
170  モジュール、USLAMシステム
171  画像処理モジュール、モジュール
173  6DOF SLAMモジュール、モジュール
175  3DOF SLAMモジュール、モジュール、パノラマSLAMモジュール、パノラマモジュール
177  バス
179  マッピングモード切替えモジュール、モジュール
180  マッピングモジュール、モジュール
181  追跡モジュール、モジュール
202  3Dマップ
204  新しい3Dマップ
208  3Dマップ初期化
210  6DOFマッピング
212  3DOFマッピング
214  6DOFマッピング
216  3DOFマッピング
306  有限3D特徴、「古い」3Dマップ
408  参照パノラマキーフレーム
410  無限3D特徴
510  現在フレーム
512  現在フレーム、従属パノラマキーフレーム
614  現在フレーム
716  参照キーフレーム、キーフレーム
718  現在フレーム、キーフレーム
720  「新しい」3Dマップ、3Dマップ
902  視覚ベースの回転運動決定器モジュール
904  センサベースの回転角度決定器モジュール
906  視差角度決定器モジュール
908  並進運動決定器モジュール
910  SLAM切替えモジュール
912  深度決定モジュール
【図１】
2017518547.tif 000003
【図２】
2017518547.tif 000004
【図３】
2017518547.tif 000005
【図４】
2017518547.tif 000006
【図５】
2017518547.tif 000007
【図６】
2017518547.tif 000008
【図７】
2017518547.tif 000009
【図８】
2017518547.tif 000010
【図９】
2017518547.tif 000011
【図１０】
2017518547.tif 000012
【手続補正書】
【提出日】平成28年9月5日(2016.9.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
パノラマ同時位置特定およびマッピング(SLAM)モードでデバイスを追跡する間に、並進運動を検出するための方法であって、
前記デバイスに関する視覚ベースの回転運動角度を決定するステップであって、前記視覚ベースの回転運動角度が、複数のキーフレームに対して画像処理を実行することによって決定される、決定するステップと、
前記複数のキーフレーム間の前記デバイスに関するセンサーベースの回転運動角度を決定するステップであって、前記センサーベースの回転運動角度が、前記デバイスに結合された1つまたは複数の運動センサーを使用して決定される、決定するステップと、
前記デバイスに関する視差角度を決定するステップであって、前記視差角度が、前記視野ベースの回転運動角度と前記センサーベースの回転運動角度とを比較することによって決定される、決定するステップと、
前記視差角度をしきい値と比較するステップと、
前記視差角度が前記しきい値を上回ることに基づいて、前記並進運動を検出するステップと
を含む、方法。
【請求項２】
前記複数のキーフレーム間の少なくとも前記視差角度を使用して、前記並進運動を決定するステップをさらに含む、請求項1に記載の方法。
【請求項３】
少なくとも前記並進運動を使用して、前記デバイスからの1つまたは複数の特徴に関する距離を三角測量することによって、前記デバイスに関する前記1つまたは複数の特徴に関する深度情報を決定するステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記並進運動の検出に少なくとも基づいて、一般運動モードで前記デバイスを追跡するために3次元(3D)マップを初期化するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記並進運動を検出することに基づいて、6自由度(6DOF)SLAMマッピングに切り替えるステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記並進運動の検出に少なくとも基づいて、2つのキーフレームを使用した3次元(3D)マップのステレオ初期化を使用して、前記デバイスを追跡するために3Dマップを初期化するステップをさらに含む、請求項1に記載の方法。
【請求項７】
第1の時点において獲得された参照キーフレームと第2の時点において獲得された現在キーフレームとの間の運動に関して、前記視覚ベースの回転運動角度と前記センサーベースの回転運動角度とが検出される、請求項1に記載の方法。
【請求項８】
前記1つまたは複数の運動センサーが、ジャイロスコープ、加速度計、または磁力計のうちの1つまたは複数を含む、請求項1に記載の方法。
【請求項９】
パノラマ同時位置特定およびマッピング(SLAM)モードでデバイスを追跡する間に、並進運動を検出するためのデバイスであって、
メモリと、
物理的シーンに関する情報を取得するために前記デバイスに結合されたカメラと、
前記メモリに結合されたプロセッサとを含み、前記プロセッサが、
前記デバイスに関する視覚ベースの回転運動角度を決定することであって、前記視覚ベースの回転運動角度が、複数のキーフレームに対して画像処理を実行することによって決定される、決定することと、
前記複数のキーフレーム間の前記デバイスに関するセンサーベースの回転運動角度を決定することであって、前記センサーベースの回転運動角度が、前記デバイスに結合された1つまたは複数の運動センサーを使用して決定される、決定することと、
前記デバイスに関する視差角度を決定することであって、前記視差角度が、前記視野ベースの回転運動角度と前記センサーベースの回転運動角度とを比較することによって決定される、決定することと、
前記視差角度をしきい値と比較することと、
前記視差角度が前記しきい値を上回ることに基づいて、前記並進運動を検出することと
を行うように構成される、デバイス。
【請求項１０】
前記プロセッサが、前記複数のキーフレーム間の少なくとも前記視差角度を使用して、前記並進運動を決定するように構成されることをさらに含む、請求項9に記載のデバイス。
【請求項１１】
前記プロセッサが、少なくとも前記並進運動を使用して、前記デバイスからの1つまたは複数の特徴に関する距離を三角測量することによって、前記デバイスに関する前記1つまたは複数の特徴に関する深度情報を決定するように構成されることをさらに含む、請求項10に記載のデバイス。
【請求項１２】
前記プロセッサが、前記並進運動の検出に少なくとも基づいて、一般運動モードで前記デバイスを追跡するために3次元(3D)マップを初期化することをさらに含む、請求項9に記載のデバイス。
【請求項１３】
前記プロセッサが6自由度(6DOF)SLAMに切り替えることをさらに含む、請求項9に記載のデバイス。
【請求項１４】
前記プロセッサが、前記並進運動の検出に少なくとも基づいて、2つのキーフレームを使用した3次元(3D)マップのステレオ初期化を使用して、前記デバイスを追跡するために3Dマップを初期化することをさらに含む、請求項9に記載のデバイス。
【請求項１５】
前記プロセッサが、前記並進運動の検出に少なくとも基づいて、知られている追跡ターゲットを使用することによって、前記デバイスを追跡するために3次元(3D)マップを初期化することをさらに含む、請求項9に記載のデバイス。
【請求項１６】
第1の時点において獲得された参照キーフレームと第2の時点において獲得された現在キーフレームとの間の運動に関して、前記視覚ベースの回転運動角度と前記センサーベースの回転運動角度とが検出される、請求項9に記載のデバイス。
【請求項１７】
前記1つまたは複数の運動センサーが、ジャイロスコープ、加速度計、または磁力計のうちの1つまたは複数を含む、請求項9に記載のデバイス。
【請求項１８】
同時位置特定およびマッピング(SLAM)を実行するためにプロセッサによって実行可能な命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令が
デバイスに関する視覚ベースの回転運動角度を決定することであって、前記視覚ベースの回転運動角度が、複数のキーフレームに対して画像処理を実行することによって決定される、決定することと、
前記複数のキーフレーム間の前記デバイスに関するセンサーベースの回転運動角度を決定することであって、前記センサーベースの回転運動角度が、前記デバイスに結合された1つまたは複数の運動センサーを使用して決定される、決定することと、
前記デバイスに関する視差角度を決定することであって、前記視差角度が、前記視野ベースの回転運動角度と前記センサーベースの回転運動角度とを比較することによって決定される、決定することと、
前記視差角度をしきい値と比較することと、
前記視差角度が前記しきい値を上回ることに基づいて、並進運動を検出することと
を行うための命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記複数のキーフレーム間の少なくとも前記視差角度を使用して、前記並進運動を決定することをさらに含む、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
少なくとも前記並進運動を使用して、前記デバイスからの1つまたは複数の特徴に関する距離を三角測量することによって、前記デバイスに関する前記1つまたは複数の特徴に関する深度情報を決定することをさらに含む、請求項19に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
第1の時点において獲得された参照キーフレームと第2の時点において獲得された現在キーフレームとの間の運動に関して、前記視覚ベースの回転運動角度と前記センサーベースの回転運動角度とが検出される、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項２２】
前記1つまたは複数の運動センサーが、ジャイロスコープ、加速度計、または磁力計のうちの1つまたは複数を含む、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項２３】
デバイスに関する視覚ベースの回転運動角度を決定するための手段であって、前記視覚ベースの回転運動角度が、複数のキーフレームに対して画像処理を実行することによって決定される、決定するための手段と、
前記複数のキーフレーム間の前記デバイスに関するセンサーベースの回転運動角度を決定するための手段であって、前記センサーベースの回転運動角度が、前記デバイスに結合された1つまたは複数の運動センサーを使用して決定される、決定するための手段と、
前記デバイスに関する視差角度を決定するための手段であって、前記視差角度が、前記視野ベースの回転運動角度と前記センサーベースの回転運動角度とを比較することによって決定される、決定するための手段と、
前記視差角度をしきい値と比較するための手段と、
前記視差角度が前記しきい値を上回ることに基づいて、並進運動を検出するための手段と
を含む、装置。
【請求項２４】
前記複数のキーフレーム間の少なくとも前記視差角度を使用して、前記並進運動を決定するための手段をさらに含む、請求項23に記載の装置。
【請求項２５】
少なくとも前記並進運動を使用して、前記デバイスからの1つまたは複数の特徴に関する距離を三角測量することによって、前記デバイスに関する前記1つまたは複数の特徴に関する深度情報を決定するステップをさらに含む、請求項23に記載の装置。
【請求項２６】
第1の時点において獲得された参照キーフレームと第2の時点において獲得された現在キーフレームとの間の運動に関して、前記視覚ベースの回転運動角度と前記センサーベースの回転運動角度とが検出される、請求項23に記載の装置。
【請求項２７】
前記1つまたは複数の運動センサーが、ジャイロスコープ、加速度計、または磁力計のうちの1つまたは複数を含む、請求項23に記載の装置。
【国際調査報告】
2017518547.tif 000013
2017518547.tif 000014