(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-17
(45)【発行日】2024-06-25
(54)【発明の名称】画像ベースの位置特定
(51)【国際特許分類】
G06T 7/70 20170101AFI20240618BHJP
【FI】
G06T7/70 Z
(21)【出願番号】P 2021559671
(86)(22)【出願日】2020-03-25
(86)【国際出願番号】 US2020024766
(87)【国際公開番号】W WO2020236307
(87)【国際公開日】2020-11-26
【審査請求日】2023-03-17
(32)【優先日】2019-05-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100108213
【氏名又は名称】阿部 豊隆
(74)【代理人】
【識別番号】100134027
【氏名又は名称】松田 達也
(72)【発明者】
【氏名】ショーンベルガー,ヨハネス ルッツ
(72)【発明者】
【氏名】ポリフェイズ,マーク アンドレ レオン
【審査官】真木 健彦
(56)【参考文献】
【文献】国際公開第2012/090890(WO,A1)
【文献】国際公開第2017/057054(WO,A1)
【文献】特開2017-129508(JP,A)
【文献】特開2008-185417(JP,A)
【文献】Carlos Jaramillo et al,6-DoF pose localization in 3D point-cloud dense maps using a monocular camera,2013 IEEE International Conference on Robotics and Biomimetics (ROBIO),IEEE,2013年12月14日,P.1747-1752,https://ieeexplore.ieee.org/document/6739720
【文献】神山 朗,特徴量辞書を用いた屋外環境下における自己位置推定手法の提案,情報処理学会研究報告 コンピュータビジョンとイメージメディア(CVIM) No.185,日本,一般社団法人情報処理学会,2013年01月23日,Vol.2013-CVIM-185 No.21,P.1-4
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/70
G06T 7/50
G06T 7/00
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
画像ベースの位置特定のための方法であって、
カメラデバイスにおいて、実世界環境の複数の画像を取り込むことと、
前記複数の画像のうちの第1の画像内の画像特徴の第1のセットを検出することと、
画像特徴の追加のセットが前記複数の画像の追加の画像内で検出される前に、画像特徴の前記第1のセットを、前記カメラデバイスのポーズを推定するように構成されたリモートデバイスに送信することと、
前記リモートデバイスから、前記カメラデバイスの第1の推定されたポーズを受信することであって、前記第1の推定されたポーズは、前記複数の画像のうちの前記第1の画像内で検出された前記画像特徴の第1のセットに基づいて推定されている、ことと、
画像特徴の前記追加のセットが前記複数の画像のうちの前記
追加の画像内で検出されたときに、画像特徴の前記追加のセットを前記リモートデバイスに送信することと、
前記リモートデバイスから、前記カメラデバイスの第2の推定されたポーズを受信することであって、前記第2の推定されたポーズは、前記複数の画像のうちの2つ以上の画像内で検出された前記画像特徴の複数のセットに基づいて推定されている、ことと、
を含
み、
前記カメラデバイスの前記第1の推定されたポーズが、予備の推定されたポーズであり、画像特徴の前記追加のセットが前記複数の画像のうちの画像毎に検出される前に受信され、前記予備の推定されたポーズは、前記予備の推定されたポーズが推定される前に、前記リモートデバイスに送信された画像特徴の分量に比例する関連付けされた信頼値を有する、方法。
【請求項2】
前記実世界環境の前記複数の画像が、実質的に一度に取り込まれる、請求項1に記載の方法。
【請求項3】
前記複数の画像の各画像が、前記カメラデバイスの異なるそれぞれのカメラによって取り込まれ、前記方法が、前記カメラデバイスの前記異なるそれぞれのカメラの各々の、互いに対する空間的関係を示す情報を前記リモートデバイスに送信することをさらに含む、請求項2に記載の方法。
【請求項4】
前記実世界環境の前記複数の画像が、順次取り込まれる、請求項1に記載の方法。
【請求項5】
前記複数の画像の連続画像の取り込みの間の、前記カメラデバイスの動きに関する情報を前記リモートデバイスに送信することをさらに含む、請求項4に記載の方法。
【請求項6】
前記カメラデバイスの前記第1の推定されたポーズが、前記リモートデバイスに送信された画像特徴と、前記実世界環境に対応するデジタル環境マップ内のマップ特徴との間の識別された対応に基づいて推定される、請求項1に記載の方法。
【請求項7】
検出された各画像特徴は、前記画像特徴が前記実世界環境の対応する画像内で識別された二次元(2D)画素位置の表示を含み、前記識別された対応が、前記リモートデバイスに送信された画像特徴の2D画素位置と、前記デジタル環境マップ内のマップ特徴の三次元(3D)マップ位置との間のものである、請求項6に記載の方法。
【請求項8】
前記2D画素位置と3Dマップ位置との間の前記識別された対応が、前記カメラデバイスの前記推定されたポーズを出力するランダムサンプルコンセンサス(RANSAC)ソルバーに入力される、請求項7に記載の方法。
【請求項9】
第2の推定されたポーズは、前記予備の推定されたポーズよりも多くの検出された画像特徴に基づいて推定され、高い信頼値を有する、それに応じてより高い信頼値を有する、 請求項
1に記載の方法。
【請求項10】
最終的な信頼閾値を上回る対応する信頼値を有する最終的な推定されたポーズを受信することと、前記最終的な推定されたポーズを受信した後に、画像特徴の追加のセットを前記リモートデバイスに送信することを中止することと、を更に含む、請求項
9に記載の方法。
【請求項11】
カメラデバイスであって、
一つ以上のカメラと、
ロジックマシンであって、
前記一つ以上のカメラを介して、実世界環境の複数の画像を取り込むことと、
前記複数の画像のうちの第1の画像内の画像特徴の第1のセットを検出することと、
画像特徴の追加のセットが前記複数の画像の追加の画像内で検出される前に、画像特徴の前記第1のセットを、前記カメラデバイスのポーズを推定するように構成されたリモートデバイスに送信することと、
前記リモートデバイスから、前記カメラデバイスの予備の推定されたポーズを受信することであって、前記予備の推定されたポーズは、前記複数の画像のうちの前記第1の画像内で検出された前記画像特徴の第1のセットに基づいて推定され、前記予備の推定されたポーズは、画像特徴の前記追加のセットが前記複数の画像のうちの画像毎に検出される前に受信され、前記予備の推定されたポーズは、前記予備の推定されたポーズが推定される前に、前記リモートデバイスに送信された画像特徴の分量に比例する関連付けされた信頼値を有する、ことと、
画像特徴の前記追加のセットが前記複数の画像のうちの前記
追加の画像内で検出されたときに、画像特徴の前記追加のセットを前記リモートデバイスに送信することと、
前記リモートデバイスから、前記カメラデバイスの第2の推定されたポーズを受信することであって、前記第2の推定されたポーズは、前記予備の推定されたポーズよりも多くの検出された画像特徴に基づいて推定され、前記第2の推定されたポーズは、高い信頼値を有する、ことと、
を行うように構成されている、ロジックマシンと、
を備えるカメラデバイス。
【請求項12】
前記実世界環境の前記複数の画像が、前記カメラデバイスの異なるそれぞれのカメラによって実質的に一度に取り込まれ、前記ロジックマシンは、前記カメラデバイスの前記異なるそれぞれのカメラの各々の、互いに対する空間的関係を示す情報を前記リモートデバイスに送信するように構成されている、請求項
11に記載のカメラデバイス。
【請求項13】
前記実世界環境の前記複数の画像が、順次取り込まれ、前記ロジックマシンは、前記複数の画像の連続画像の取り込みの間の、前記カメラデバイスの動きに関する情報を前記リモートデバイスに送信するように更に構成されている、請求項
11に記載のカメラデバイス。
【請求項14】
前記カメラデバイスの前記
予備の推定されたポーズが、前記リモートデバイスに送信された画像特徴と、前記実世界環境に対応するデジタル環境マップ内のマップ特徴との間の識別された対応に基づいて推定される、請求項
11に記載のカメラデバイス。
【請求項15】
検出された各画像特徴は、前記画像特徴が前記実世界環境の対応する画像内で識別された二次元(2D)画素位置の表示を含み、前記識別された対応が、前記リモートデバイスに送信された画像特徴の2D画素位置と、前記デジタル環境マップ内のマップ特徴の三次元(3D)マップ位置との間のものである、請求項14に記載のカメラデバイス。
【請求項16】
前記ロジックマシンは、最終的な信頼閾値を上回る対応する信頼値を有する最終的な推定されたポーズを受信し、前記最終的な推定されたポーズを受信した後に、画像特徴の追加のセットを前記リモートデバイスに送信することを中止するように更に構成されている、請求項11に記載のカメラデバイス。
【請求項17】
ロジックマシンであって、
カメラデバイスから、そのカメラデバイスの1つ以上のカメラによって取り込まれた、カメラデバイスの実世界環境の複数の画像を受信することと、
実世界環境の複数の画像が受信されたときに、その複数の画像の各画像内の画像特徴のセットを検出することと、
画像特徴のセットが検出されたときに、検出された画像特徴と、実世界環境に対応するデジタル環境マップのマップ特徴との間の対応を識別することと、
それらの対応が識別されたときに、その識別された対応に基づいてカメラデバイスの複数の推定されたポーズを連続的に出力することと、
を行うように構成されたロジックマシンを備え、
各推定されたポーズは、各それぞれの推定されたポーズが出力されたときに識別された対応の分量に比例する対応する信頼値を有し、予備の信頼閾値を上回る対応する信頼値を有するカメラデバイスの予備のポーズを推定する際、および複数の画像のうちの画像毎に画像特徴のセットを検出する前に、第1のポーズをカメラデバイスに報告し、予備の信頼閾値よりも高い最終的な信頼閾値を上回る対応する信頼値を有するカメラデバイスの第2のポーズを推定する際に、第2のポーズをカメラデバイスに報告する、コンピューティングデバイス。
【発明の詳細な説明】
【背景技術】
【0001】
画像ベースの位置特定技術は、モバイルコンピューティングデバイス、ロボット、ドローン、および他のデバイスによって利用されて、物理的環境におけるそれらの位置および配向を推定することができる。例えば、デバイスによって取り込まれた1つ以上の画像は、空間の3D再構築を表す事前計算されたマップと比較することができる。
【発明の概要】
【0002】
この概要は、以下の発明を実施するための形態でさらに説明される選定された概念を簡略化された形式で紹介するために提供される。この概要は、特許請求される主題の主要な特徴または本質的な特徴を特定することを意図しておらず、特許請求される主題の範囲を制限するために使用されることも意図していない。さらに、特許請求される主題は、この開示の任意の部分に記述されたいずれかまたはすべての欠点を解決する実施態様に限定されない。
【0003】
画像ベースの位置特定のための方法は、カメラデバイスにおいて、実世界環境の複数の画像を取り込むことを含む。画像特徴の第1のセットが、複数の画像のうちの第1の画像内で検出される。画像特徴の追加のセットが複数の画像のうちの他の画像内で検出される前に、画像特徴の第1のセットは、複数の画像内で検出された画像特徴に基づいて、カメラデバイスのポーズを推定するように構成されたリモートデバイスに送信される。画像特徴の追加のセットが複数の画像のうちの他の画像内で検出されたときに、その画像特徴の追加のセットは、リモートデバイスに送信される。カメラデバイスの推定されたポーズが、リモートデバイスから受信される。
【図面の簡単な説明】
【0004】
【
図1A-1B】実世界環境の複数の画像を取り込むことを概略的に示す。
【
図2】画像ベースの位置特定のための例示的な方法を示す。
【
図3】カメラデバイスとリモートデバイスとの間のデータ交換を概略的に示す。
【
図4】画像ベースの位置特定のための例示的なフローチャートを示す。
【
図5】画像ベースの位置特定中にカメラデバイスとリモートデバイスとの間で交換されるデータの例を概略的に示す。
【
図6】例示的なコンピューティングシステムを概略的に示す。
【発明を実施するための形態】
【0005】
多種多様なデバイスおよび関連技術が、画像ベースの位置特定技術を利用することができる。例としては、拡張現実および/または仮想現実の経験を提供するヘッドマウンテドディスプレイ(HMD)デバイスなどのウェアラブルコンピューティングデバイス、モバイルデバイス(例えば、スマートフォン、タブレット)、ロボットマシン、ならびに自動運転車両が挙げられ得る。これらおよび他のデバイスは、画像ベースの位置特定技術を使用して、実世界環境におけるそれらの位置および配向(すなわち、ポーズ)を決定することができる。本明細書では、そのようなデバイスは、「カメラデバイス」と呼ぶものとする。カメラデバイスは、通常、少なくとも1つのカメラを含むか、または少なくとも1つのカメラとインターフェース接続するように構成されるが、カメラデバイスは、任意の適切なハードウェア構成を有することができる。
【0006】
画像ベースの位置特定へのいくつかのアプローチでは、実世界環境の以前のデジタル三次元(3D)マップまたはシーンモデルの知識を利用する。デジタル環境マップは、本質的に、幾何学的データを含む空間データベースである。いくつかの例では、幾何学的データは、3D空間全体にわたって分布する三次元(例えば、x、y、z)で定義されたポイントを含み、実世界環境の3Dポイント群再構築を形成する。それらの3Dポイントは、マップを構築するために使用されるソース画像またはビデオから抽出された特徴記述子(例えば、多次元ベクトル)に関連付けられ得る。したがって、それらの3Dポイントは、デジタル環境マップのマップ特徴と呼ばれる場合がある。
【0007】
実世界環境のデジタル環境マップを所与とし、カメラデバイスによって取り込まれた1つ以上の画像またはビデオを使用して、画像ベースの位置特定のタスクにより、実世界環境内のカメラデバイスの3D位置(x、y、z)および3D配向(ロール、ピッチ、ヨー)を推定することができる。カメラの位置特定アルゴリズムは、2つのステップでこのタスクを解決することができ、すなわち、まず、取り込まれた画像内の2Dポイント特徴を、3Dマップ内に3Dポイントとして保存されている3Dマップ特徴と照合することによってである。次に、カメラの6自由度(6DOF)ポーズは、2Dポイントと3Dポイントとの一致、およびそれらの基礎となる座標を使用して計算され得る。
【0008】
場合によっては、カメラの位置特定は、画像を取り込むために使用されるカメラデバイス以外のデバイスによって実行され得、カメラデバイスの処理、バッテリー、および/またはストレージリソースを節約する可能性がある。例えば、カメラデバイスによって取り込まれた画像は、リモートデバイス(例えば、サーバ)に送信され得、そのリモートデバイスは、実世界環境のデジタル環境マップにアクセスし、カメラデバイスのポーズを推定するために使用される処理ステップを実行する。さらに、画像をリモートデバイスに送信することにより、デジタル環境マップをサードパーティと共有する必要性が軽減される。
【0009】
本開示は、主にこの文脈で、画像ベースの位置特定について説明しており、そこでは、画像が、カメラデバイスからリモートデバイスに送信され、次いで、リモートデバイスが、カメラデバイスのポーズを推定する。ただし、本明細書に記載されている画像ベースの位置特定技術は、単一デバイス上に実装され得、その単一デバイスは、実世界環境の画像を取り込み、デジタル環境マップを維持し、そして画像ベースの位置特定を実行してそのデバイス自体のポーズを推定する。
【0010】
場合によっては、単一画像に基づいて画像ベースの位置特定を実行することが可能な場合もあるが、多くの場合、同時に(例えば、異なる視点から)、あるいは連続して(例えば、同じ視点から)取り込まれるいくつかの異なる画像を使用することが望ましい。これにより、カメラデバイスのより正確なポーズ推定値を出力するために使用可能な追加のデータを提供することができる。例えば、実世界環境の単一画像には、場合によっては、適切に高い信頼性でカメラデバイスをある特定のポーズに決定するのに十分な詳細内容が(例えば、固有の画像特徴の形式で)含まれない場合がある。画像ベースの位置特定のために実世界環境のより多くの画像を使用することによって、その画像には、カメラデバイスのポーズを比較的高い信頼性で推定するのに十分な詳細内容を集合的に含まれる可能性が、比較的高い。この問題は、ある特定の実世界環境において、特に顕著であり得る。例えば、視覚的に類似した複数の窓の横列を含む建物の正面外壁の前で得られる画像は、追加の詳細内容なしで任意の特定のポーズに適合させることが、困難である場合がある。
【0011】
しかしながら、同じ実世界環境のいくつかの画像に基づいて画像ベースの位置特定を実行することにより、様々な課題のセットを提示することができる。例えば、単一画像のシナリオにおいて、カメラデバイスは、画像を取り込み、その画像から画像特徴を抽出し、そしてその画像(または画像特徴)をリモートデバイスに送信することができ、そのリモートデバイスは、次いで、カメラデバイスのポーズを推定することができる。対照的に、マルチ画像のシナリオにおいて、いくつかの画像を取り込み、そのいくつかの画像の各々から画像特徴を抽出し、そして各画像(または画像特徴のセット)をリモートデバイスに送信するには、比較的より多くの時間を要し得、次いで、そのリモートデバイスは、より多くの画像特徴が提供された場合、より多くの計算が必要とされる場合があるため、カメラデバイスのポーズを推定するのに比較的長い時間がかかる可能性がある。
【0012】
したがって、本開示は、カメラデバイスのポーズを推定するために、実世界環境の複数の画像を使用する画像ベースの位置特定のための技術を対象とする。しかしながら、より詳細に考察されるように、画像ベースの位置特定プロセスに必要とされる時間は、厳密で部分的に重複しない一連のステップをすべて実行するのではなく、プロセスのステップを並行して実行することにより、本開示の実施形態を使用して短縮することができる。言い替えると、また1つの非限定的な例では、カメラデバイスは、実世界環境の複数の画像を取得し得、他の画像が取り込まれる前に特定の画像から画像特徴を抽出することを開始し得、そして画像特徴がすべての画像について抽出された後ではなく、それらの画像特徴が検出されるとすぐに、画像特徴をリモートデバイスに送信することができる。同様に、リモートデバイスは、カメラデバイスが実世界環境の画像から追加の画像特徴を依然として抽出しているときであっても、少なくともいくつかの画像特徴を受信すると、カメラデバイスのポーズを推定しようと開始することができる。とりわけ、これは、画像特徴がカメラデバイス、リモートデバイス、または他の適切なデバイスで抽出されるかどうかに関係なく、実行することができる。さらに、リモートデバイスは、あらゆる画像特徴が単一の特定画像内で検出されるのを待たずに、単一の画像特徴が検出される場合でもすぐに、カメラデバイスのポーズを推定しようと開始することができる。
【0013】
このようにして、画像ベースの位置特定は、潜在的な欠点(例えば、推定されたポーズを戻す前の潜在的により長い待ち時間)を少なくとも部分的に軽減しながら、複数の画像を使用することの利点(例えば、より高精度のポーズ推定)を実現することができる。例えば、本明細書に記載されている画像ベースの位置特定技術は、カメラデバイスのポーズを正確に決定するために必要となる、カメラデバイスの局所処理ステップがより少ないため、カメラデバイスの動作効率を向上させることができる。これにより、カメラデバイスの電力および処理能力の両方を節約することができ、代わりに、そのような電力を他のタスクに適用することが可能になる。さらに、本明細書に記載されている技術を介して、カメラデバイスのポーズを決定するのに必要となる時間量はまた、実世界環境の取り込まれた画像がすべて処理される前にポーズ推定値を生成することができるため、短縮することもできる。場合によっては、ポーズ推定値は、実世界環境の単一画像が処理される前であっても、生成することができる。
【0014】
図1Aは、構造体104を含む実世界環境102内のユーザ100を概略的に示す。ユーザ100は、1つ以上のカメラ108を装備しているカメラデバイス106を有する。この例では、カメラデバイスは、HMDの形態を取る。ただし、上で説明したように、カメラデバイスは、任意の適切な形態を取ってもよく、任意の適切なハードウェアリソースのセットを含むことができる。
【0015】
図1Bは、実世界環境102の複数の画像110A~110Cを示す。そのような画像を使用して、実世界環境に対してカメラデバイスのポーズを推定することができる。カメラデバイスが拡張または仮想現実デバイスである場合、これにより、カメラデバイスは、例えば、実世界環境内で固定された位置を当然と思うように見える(すなわち、世界がロックされている)、またはユーザに対して固定された位置を持続しているように見える(すなわち、身体がロックされている)、所望の実世界が知覚される位置を決定する仮想画像を表示することができる。ただし、任意の適切なカメラデバイスを使用することができ、またそのようなカメラデバイスは、任意の適切な目的のために推定されたカメラポーズを利用することができる。
【0016】
さらに、画像110Aは、黒丸112によって表された複数の画像特徴を含むように示されている。以下にさらに詳細に説明されるように、そのような画像特徴は、任意の適切な方法でその画像内で検出することができる。さらに、本明細書で使用される場合、「画像特徴」という用語は、ある画像の1つ以上の部分を説明ないし表現するコンピュータデータを指す。言い替えると、黒丸を用いて、画像特徴が画像110A内で検出される位置を表しているが、これは、視覚的に明確にするためだけのものである。実際の実施態様では、「画像特徴」は、単に画像内の視覚的コンテンツを説明するにすぎず、それらの画像特徴自体は、任意のポイントにおいて、表示ないし図表によっては表現されない。
【0017】
上で説明したように、カメラデバイス106によって取り込まれた実世界環境102の画像110A~110Cは、カメラポーズ推定のためにリモートデバイス(例えば、サーバ)に送信することができる。例えば、リモートデバイスは、実世界環境のデジタル環境マップを以前に取得された可能性があり、そのマップは、複数のマップ特徴を含む。このマップ特徴は、実世界環境の再構築を表す3Dポイント群として特徴付けることができる。デジタル環境マップ内のマップ特徴と、画像内で検出された画像特徴との間の対応を判定することによって、画像110A~110Cが取り込まれたそのときの、カメラデバイスのポーズを推論することができる。
【0018】
ただし、上で説明したように、カメラデバイスのポーズを推定するために複数の画像を使用することが、結果として得られるポーズ推定値の精度を高めることができるが、複数の画像を使用することはまた、プロセスを完了するために必要な時間の長さ全体も増大させ得る。したがって、
図2は、画像ベースの位置特定を行うための例示的な方法200を示しており、この方法は、使用する際、複数の画像からカメラデバイスのポーズを推定するために必要な時間を少なくとも部分的に短縮することができる。方法200は、カメラデバイスとリモートデバイスとの間の通信を必要とする。ただし、とりわけ、カメラデバイスおよびリモートデバイスの両方は、適切なハードウェア構成および形式要素を有し得る。さらに、多くの場合、カメラデバイスおよびリモートデバイスで実行される動作は、実質的に同時に生じ得る。以下にさらに詳細に考察されるように、画像の取り込み、画像特徴の検出、およびカメラポーズの推定は、少なくとも部分的に重複し得、その結果、実世界のすべての画像が取り込まれる、または取り込まれた画像内のすべての画像特徴が検出される前に、カメラデバイスのポーズが推定される。
【0019】
さらに、「リモートデバイス」という用語は、カメラデバイスとインターフェース接続し、カメラデバイスのポーズを推定するために画像ベースの位置特定を実行するように構成された任意の適切なコンピューティングデバイスを指す。カメラデバイスとリモートデバイスとの間には、任意の適切な物理的離隔距離があり得る。カメラデバイスとリモートデバイスとの間の通信は、任意の適切な方法で達成され得る。例として、カメラデバイスおよびリモートデバイスは、有線接続を使用して通信可能に結合され得、またはWi-Fi、ブルートゥース、もしくは任意の適切な無線通信プロトコルを介して無線接続を採用し得る。通信がネットワークを介して行われる場合、そのネットワークは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、有線ネットワーク、無線ネットワーク、パーソナルエリアネットワーク、セルラーネットワーク、またはそれらの組み合わせの形態を取ることもでき、インターネットを含み得る。さらに、上で説明したように、場合によっては、画像ベースの位置特定は、追加のデバイスを必要とせずに、単一のデバイス(例えば、カメラデバイス)上で実行され得る。
【0020】
202において、方法200は、実世界環境の複数の画像を取り込むことを含む。これは、
図1に関して例示されており、そこでは、カメラデバイス106は、実世界環境102の複数の画像110A~110Cを取り込む。さらに、
図3は、1つ以上のカメラ302を使用して複数の画像304Aおよび304Bを取り込むように構成された例示的なカメラデバイス300を概略的に示す。
【0021】
いくつかの例において、カメラ302は、1つ以上のRGBカメラ、IRカメラ、および/または深度カメラ(飛行時間、立体照明、または他の深度カメラの形態)を備えることができる。カメラデバイスは、任意の適切な数のカメラを含むことができ、それらには、単一のカメラ、カメラ対(例えば、立体映像カメラ対)、複数のカメラを含むカメラアレイ等が含まれる。さらに、カメラデバイスは、複数の別々のタイプのカメラ、例えば、RGBカメラおよび深度カメラを含むことができる。
【0022】
場合によっては、カメラデバイスによって取り込まれる複数の画像は、実質的に一度に取り込まれ得る。例えば、4つのオンボードカメラを備えるデバイスでは、4つのすべてのカメラは、実質的に同時に作動され得、結果として、同時に取り込まれた異なる視点を有する4つの異なる画像が得られる。そのような画像は、任意選択的に、適切な画像編集技術を使用して単一の合成画像に組み合わされ得る。カメラデバイスの種々のハードウェア構成要素が、わずかに異なる速度で動作するか、またはわずかに異なる、関連付けられた待ち時間要求を有すると想定すると、複数の画像は、正確に同時に取り込まれる必要はなく、カメラデバイスのポーズが種々の画像の取り込みの間に意味のある変化があった可能性が低いほど、時間的に互いに十分接近して取り込むことができる。例えば、1000分の1秒の期間に、カメラデバイスのポーズが下流のポーズ推定ステップと干渉するほど実質的に十分変化する可能性はほとんどない。いくつかの実施態様では、10分の1秒程度離れて取り込まれた画像でさえ、最終的に推定されたポーズの精度要件に応じて、「実質的に一度に」取り込まれたものとして説明することができる。
【0023】
カメラデバイスが複数のカメラを含む場合、その複数のカメラは、互いに対して、かつカメラデバイスの他のハードウェア構成要素に対して、任意の適切な空間的関係を有し得る。通常、複数のカメラの空間的配置は、何らかの方法で、カメラデバイスに認識されることになる。例えば、カメラデバイスは、カメラデバイスの複数のカメラの各々の相対的な3D位置を示す製造業者較正データを含み得る。追加的に、または別の方法として、複数のカメラの空間的配置は、別の適切な方法で、例えば、手動較正プロセス中にユーザによって指定することができる。以下にさらに詳細に考察されるように、複数のカメラの空間的配置に関する何らかの情報は、場合によっては、リモートデバイスに送信され得る。
【0024】
追加的に、または別の方法として、実世界環境のカメラデバイスによって取り込まれた複数の画像は、同じカメラおよび/または複数の異なるカメラによって順次取り込まれ得る。連続画像の取り込み時間間隔は、場合によっては、相対的に短く、例えば、1秒の何分の1かのオーダーであるが、任意の適切な時間間隔を使用することができる。さらに、連続画像取り込みの間の間隔は、規則的である必要はない。場合によっては、画像は、順次および同時の両方で取り込むことができ、例えば、複数のカメラで装備されたデバイスは、2つ以上のカメラを、一度に複数の回数だけ順次起動することができる。
【0025】
一時的に
図2に戻ると、204において、方法200は、複数の画像のうちの第1の画像内の画像特徴の第1のセットを検出することを含む。これは、
図3に示されており、カメラデバイス300が、画像304A、および画像特徴306Aの関連付けられたセットを含むように示されているからである。さらに、
図1Bでは、画像特徴が検出された位置は、黒丸112によって示されている。
図1Bに示された黒丸が、関連付けられた画像特徴を有し得ること、およびカメラデバイスによって取り込まれたそれぞれの別々の画像が、任意の数(例えば、数十、数百、数千、またはそれ以上)のそのような特徴を有し得ることが理解されるであろう。
【0026】
図1Bに示すように、画像特徴の二次元分布は、その画像が得られた時点で物理的環境内に存在する対象物の幾何学的属性および外観を反映し得る。本例では、画像特徴は、構造体104の形状、寸法、および他の特徴に対応する特徴を含む。
【0027】
画像特徴は、様々で適切な形式を取り得、様々で適切な方法で検出され得る。一例として、画像特徴は、倍率不変特徴変換(SIFT)の特徴であり得る。SIFT特徴には、SIFTキーポイントが含まれ、そのSIFTキーポイントは、その特徴に関係する幾何学的情報を保存し、その幾何学的情報には、その特徴の2D位置、倍率、および一次元角度配向が含まれる。SIFT特徴はまた、特徴記述子も含み、その特徴記述子は、128次元ベクトルとして実装される。マルチステッププロセスを使用して、画像内のSIFT特徴を検出することができる。ただし、画像特徴を抽出するための任意の適切なアプローチを使用することができ、そのような画像特徴は、SIFT特徴である必要はないことが理解されるであろう。別の例として、検出された画像特徴は、速度アップされた堅牢な特徴(SURF)とすることができる。通常、画像特徴は、その画像特徴が関連付けられている(例えば、特徴ベクトルとして表現される)、基礎となる画像データのいくつかの表現、およびその画像特徴が実世界環境の対応する画像内で識別された二次元(2D)画素位置の表示を含むことになる。
【0028】
一時的に
図2に戻ると、206において、方法200は、画像特徴の追加のセットがカメラデバイスによって取り込まれた複数の画像のうちの他の画像で検出される前に、画像特徴の第1のセットをリモートデバイスに送信することを含む。とりわけ、最初の画像内で検出された画像特徴のセットは、必ずしもリモートデバイスに一度にすべて送信される必要はない。逆に、いくつかの例では、画像特徴の送信は、単一画像特徴でさえ最初の画像内で検出されてもすぐに開始することができる。さらに、最初の画像内で検出された画像特徴は、任意の適切な順番で送信することができる。これには、画像特徴が検出された順番、空間的に隣接する画像特徴をともにグループ化する順番、ポーズ推定(例えば、それぞれの画像特徴の「独自性」に起因する)の目的のためにより有用であるか、またはより極めて区別できると予測される画像特徴を優先する順番等が含まれ得る。次に208において、方法200は、画像特徴の追加のセットが複数の画像のうちの他の画像内で検出されたときに、画像の追加のセットをリモートデバイスに送信することを含む。これらの画像特徴の追加のセットは、任意の時間に、かつ任意の順番で同様に送信することができる。
【0029】
リモートデバイスは、複数の画像内で検出された画像特徴に基づいて、カメラデバイスのポーズを推定するように構成することができる。さらに、リモートデバイスは、そのような画像特徴が高い信頼度を十分に有するカメラデバイスのポーズを推定するには不十分であっても、任意の画像特徴が受信されるとすぐにカメラデバイスのポーズを推定しようと開始するように構成され得る。したがって、リモートデバイスがカメラデバイスから画像特徴を受信し続けると、そのリモートデバイスは、最終的にカメラデバイスに報告するために十分高い信頼度を有する1つ以上のポーズが推定されるまで、カメラデバイスの追加のポーズを継続的に推定することができる。とりわけ、場合によっては、リモートデバイスは、カメラデバイスによって取り込まれた画像のすべての画像特徴を受信する前に、カメラデバイスの十分高い信頼度のあるポーズを推定することができる。したがって、これにより、取り込まれたあらゆる画像からの画像特徴が抽出および分析されるまでポーズが推定されない他のマルチ画像位置特定技術と比較して、時間を節約することができる。
【0030】
これは、
図3に例示されており、そこでは、カメラデバイス300が、2つの異なる画像304A/304Bを含み、それぞれは、関連付けられた画像特徴306A/306Bのセットを有する。そのような情報は、カメラポーズ推定のために、リモートデバイス308に送信することができる。しかしながら、上で説明したように、カメラデバイスは、画像特徴306Aの第1のセットが検出されるとすぐに、または単一画像特徴が画像304A内で検出されてもすぐに、画像特徴が取り込まれたあらゆる画像内で検出されるのを待たずに、画像特徴をリモートデバイスに送信することを開始することができる。言い替えると、リモートデバイスは、画像特徴306Bのすべてが検出される前に、または画像304Bが取り込まれる前であっても、1つ以上の画像特徴306Aに基づいて、カメラデバイス300のポーズを推定しようと開始することができる。
【0031】
図4は、画像ベースの位置特定のための例示的なフローチャートを示す。400において、カメラデバイス300は、
図1に示された環境102などの実世界環境の1つ以上の画像を取り込む。上で説明したように、カメラデバイス300は、場合によっては、複数の画像を実質的に同時に取り込み、かつ/または1つ以上の画像を順次取り込むことができる。402において、カメラデバイス300は、任意選択的に、400において取り込まれた画像から画像特徴を抽出することができる。とりわけ、画像特徴は、カメラデバイスにおいて、必ずしも常に検出される必要はない。言い替えると、画像特徴は、カメラデバイス、リモートデバイス、または任意の他の適切なデバイスで検出することができる。
【0032】
図4とともに続けると、404において、カメラデバイス300は、情報をリモートデバイス308に送信する。カメラデバイスによって送信された特定の情報は、画像特徴がカメラデバイスまたはリモートデバイスで検出されるかどうかに応じて、変化する場合がある。画像特徴がカメラデバイスで検出された場合には、カメラデバイスによって送信された情報は、画像特徴を含むことができ、またその特徴が検出される実際の画像を含む場合と含まない場合もある。ただし、画像特徴がリモートデバイスで検出された場合には、カメラデバイスは、任意の画像特徴を最初に検出せずに、実世界環境の画像を送信する場合がある。
【0033】
図5は、カメラデバイスからリモートデバイスに送信され得る情報500の特定の例を概略的に示す。そのような情報は、任意の適切な方法でパッケージ化またはフォーマットすることができる。情報500は、任意の適切な数の離散的なデータパケットまたは送信の間で分割することができる。さらに、
図5に含まれる特定のデータが非限定的な例として提示されていることが理解されるであろう。種々の実施態様では、カメラデバイスは、より多くの情報、より少ない情報、および/または異なる情報をリモートデバイスに送信することができる。
【0034】
図5の例では、情報500は、カメラデバイスによって取り込まれた実世界環境の画像502を含む。ただし、実施態様に応じて、カメラデバイスは、完全に取り込まれた画像をリモートデバイスに送信する場合と送信しない場合がある。例えば、画像特徴がカメラデバイスで検出された場合には、カメラデバイスからリモートデバイスに送信されたデータは、そのような画像内で検出された画像特徴を優先して、実世界環境の完全な画像を任意選択的に省略することができる。画像特徴がリモートデバイスで検出された場合には、カメラデバイスは、通常、実世界環境のその取り込まれた画像をリモートデバイスに送信し、その結果、画像特徴は、リモートデバイスによって検出することができる。
【0035】
情報500はまた、画像502に対応する画像特徴504のセットも含む。したがって、
図5の例では、画像特徴は、カメラデバイスによって検出される。各画像特徴は、記述子506、ならびに画像特徴が画像502内で検出された2D画素位置508を含む。各記述子506は、対応する画像特徴が検出された画像502の視覚的コンテンツの何らかの表現を含むことになり、例えば、多次元特徴ベクトルの形式を取る。
【0036】
情報500はまた、カメラ情報510も含み、そのカメラ情報は、画像502を取り込むために使用されるカメラデバイスのカメラに適用する任意の適切なメトリックまたは仕様を参照することができる。例として、カメラ情報510は、カメラのタイプ(例えば、RGB、IR、製造/モデル)、カメラのズームパラメータ、カメラデバイスの他のカメラに対する、カメラの空間的関係等を規定することができる。例えば、上で説明したように、場合によっては、カメラデバイスは、複数のカメラを使用して、実世界環境の複数の画像を実質的に一度に取り込むように構成することができる。そのような場合には、リモートデバイスに送信される情報は、カメラデバイスの異なる個別のカメラの各々の、互いに対する空間的関係を示す一部の情報を含むことができる。これは、任意の適切な形式を取り得る。例えば、カメラ情報510は、カメラデバイスの他のカメラ、および/または他の適切なデバイス構成要素または基準フレームに対して、画像502を取り込むために使用されるカメラの物理的距離および配向を規定することができる。別の例としては、カメラ情報510は、「内部カメラ」または「左側カメラ」などの、画像502を取り込むために使用されるカメラの参照名またはラベルを含むことができ、これは、リモートデバイスがカメラデバイスの幾何学的形状および構成に関する情報を有する場合に有用であり得る。
【0037】
図に示すように、情報500は、画像502の取り込み時間512を含む。この取り込み時間は、任意の適切な方法で表すことができる。例えば、取り込み時間は、カメラデバイスのシステムクロック、カメラデバイスとリモートデバイスとの間で共有される基準時間、特定のプロセスの開始(例えば、最初の送信が時間0で起こり得る)以来経過した時間等に対して定義され得る。
【0038】
情報500はまた、画像502が取り込まれた時点で、カメラデバイスの画像毎の相対的ポーズ514を含む。通常、カメラデバイスが実世界環境の画像を順次取り込む場合には、カメラデバイスのポーズは、連続画像の取り込みの間で変化し得る。したがって、リモートデバイスにより効率的なポーズ推定を容易にするために、カメラデバイスは、ある内部基準フレームに対してカメラデバイス自体のポーズを追跡し、そのような情報をリモートデバイスに送信することができる。本明細書で使用される場合、「相対的ポーズ」という用語は、通常、周囲の実世界環境に対する絶対位置を完全に決定せずに、カメラデバイスによって追跡されるポーズを指す。例えば、実世界環境の第1の画像を取り込んだ後に、カメラデバイスは、実世界環境の連続画像の取り込みの間にカメラデバイス自体の動きを追跡し、そのような情報をリモートデバイスに送信することができる。したがって、「相対的ポーズ」は、リモートデバイスによって出力される「推定されたポーズ」または「絶対的ポーズ」とは異なり、これは、異なる基準フレーム(例えば、実世界環境に対応する世界ロック座標系、または別の適切な基準フレーム)に対してカメラデバイスの位置および配向を定義する。
【0039】
カメラデバイスの相対的ポーズは、任意の適切な方法で決定および指定することができる。
図5は、カメラデバイスが実世界環境の画像を取り込むときに、その動きを追跡するためにカメラデバイスによって使用され得る異なるタイプの情報の種々の例を含む。具体的には、情報500は、カメラデバイスの慣性測定装置(IMU)からのデータ516、ならびに磁力計からのデータ520、および全地球測位システム(GPS)受信機からのデータ522を含む。カメラデバイスの動きは、カメラデバイスが移動したときに、追加的にまたは別の方法として、1つ以上のカメラによって観測されるオプティカルフロー518に基づいて、追跡することができる。例えば、周囲の実世界環境が静止状態のままの間に、カメラデバイスが移動する場合、カメラデバイスのカメラに表示される実世界対象物のサイズ、位置、または配向の任意の変化は、カメラデバイスの動きに起因し得、そのような動きを推定するために使用することができる。追加の例として、カメラデバイスの動きは、実世界環境内の任意のWi-Fi/セルラー/他の信号での変化を示すデータ524および/または526に基づいて推定することができ、それらの変化は、カメラデバイスの動きに対応することができる。
【0040】
とりわけ、カメラデバイスの相対的ポーズは、カメラデバイス自体によって計算される必要はない。逆に、相対的ポーズを計算するために使用される情報(例えば、IMUデータ516、オプティカルフローデータ518、磁力計データ520、GPSデータ522、Wi-Fiデータ524、および/またはセルラーデータ526)は、別の適切なデバイスに送信され、そのデバイスは、そのような情報を使用してカメラデバイスの相対的ポーズを計算することができる。したがって、いくつかの例では、カメラデバイスの相対的ポーズは、リモートデバイスがカメラデバイスの絶対的ポーズを出力するように動作するときでさえ、カメラデバイスから受信した情報に基づいて、リモートデバイスによって計算することができる。とりわけ、カメラデバイスの相対的ポーズは、どのデバイスが計算を実行するかに関係なく、任意の適切な方法で、任意の適切な情報に基づいて計算することができる。例えば、カメラデバイスの相対的ポーズは、任意の他の関連情報に加えてまたはその代わりに、取り込まれた画像特徴、および/または画像内に検出された任意の画像特徴に基づいて、リモートデバイスによって計算することができる。
【0041】
図4に戻ると、404において、カメラデバイスが情報をリモートデバイスに送信した後、406において、カメラデバイスは、実世界環境のより多くの画像が取り込まれるかどうかを判定する。はいの場合、400において、カメラデバイスは、別の画像を取り込む。いいえの場合、408において、カメラデバイスは、画像の取り込みを中止する。画像の取り込みは、所定の数の画像が取り込まれた後に、所定の時間が経過した後に、ユーザコマンドの後に、カメラデバイスが低電力またはオフモードに入り、カメラデバイスが別のデバイス(例えば、リモートデバイス)から命令を受信した後に、カメラデバイスが信頼度閾値を上回る推定されたポーズを受信した後に、かつ/または任意の他の適切な理由によって、中止することができる。さらに、408において画像取り込みが中止された後に、次いで400において、任意の適切なトリガー(例えば、デバイスポーズ推定値が、ある閾値信頼度を下回る)に応答して、新規の画像が取り込まれ得る。
【0042】
一時的に
図2に戻ると、210において、方法200は、カメラデバイスの推定されたポーズを受信することを含む。上で説明したように、推定されたポーズは、実世界環境の画像が取り込まれたときの、カメラデバイスの位置および/または配向を指定する。
【0043】
カメラデバイスのポーズは、任意の適切な方法でリモートデバイスによって推定することができる。ポーズ推定のための1つの特定のプロセスが、
図4に関して以降に説明されるであろう。404において、カメラデバイスが情報を送信した後に、その情報は、
図5に関して上述した情報のうちのいずれかまたはすべてを含み得るのだが、410において、リモートデバイスは、その情報を受信する。412において、リモートデバイスは、画像特徴の検出がリモートデバイス上で行われた場合に、カメラデバイスによって送信された、実世界環境の画像内の画像特徴を検出することができる。とりわけ、リモートデバイスでの画像特徴の検出は、リモートデバイスがカメラデバイスから情報(例えば、追加の画像)を受信し続けているときであっても、実行することができる。
【0044】
414において、リモートデバイスは、実世界環境の複数の画像内で検出された画像特徴を、実世界環境を表すデジタル環境マップ内の1つ以上のマップ特徴と照合する。
図3において、リモートデバイス308は、デジタル環境マップ310、および対応するマップ特徴312のセットを含めて示されている。検出された画像特徴と、デジタル環境マップのマップ特徴との間の対応を識別することによって、リモートデバイスは、ポーズ推定値314として
図3に示されたカメラデバイスのポーズを推定することができる。
【0045】
いくつかの例では、デジタル環境マップのマップ特徴は、実世界環境の再構築を表す3Dポイント群の形式を取ることができる。デジタル環境マップは、任意の適切な数のポイントを含むことができ、いくつかの例では、3Dポイント群は、実世界環境内の表面上に種々の場所を示す20,000、30,000、またはそれ以上の3Dポイントを含むことができる。
【0046】
そのようなデジタル環境マップは、任意の適切な方法で生成することができる。一般に、実世界環境は、異なる位置から実世界環境の複数の画像またはビデオを取り込む適切な画像化デバイスを使用してマッピングされることになる。これらの画像は、階調画像、カラー画像、深度画像等であり得る。上で説明したように、画像特徴は、各画像内で検出することができる。取り込まれた画像のうちの2つ以上に共通する画像特徴を検出することによって、画像間の空間的関係を決定することができる。各画像特徴と画像化システムとの間の距離は、異なる位置から取り込まれた複数の画像内で、同じ画像特徴が検出されたときに、観測された視差シフトから推測することができる。追加的に、または別の方法として、深度カメラからの深度情報を使用して、実世界環境の寸法、および画像化システムと各画像特徴との間の距離を識別することができる。いくつかの実施態様では、画像化システムのポーズは、その画像化システムが複数の画像を取り込んだときに追跡することができ、複数の画像を実世界環境の3D表現につなぎ合わせるために使用することができる追加の情報を提供する。
【0047】
上述したように、マップ特徴の各々は、3Dマップを構築するために使用されるソース画像から抽出された特徴記述子と関連付けられている。特徴記述子は、3Dマップ特徴の周りの表面の外観を符号化する多次元ベクトルを備えることができる。例えば、マップ特徴が検出される所与の画素周辺の画像パッチ(32x32画素など)は、そのポイント周辺の表面の外観を、よりコンパクトである特徴記述子に符号化することができる。
【0048】
特徴記述子は、3Dポイント群のあらゆる3Dマップ特徴において生成される必要はない。いくつかの例では、特徴記述子は、コーナー、高度にテクスチャ加工された領域などの、マップの特徴を区別する際に選択的に生成することができる。加えて、いくつかの例では、当初生成されたポイント群は、その群の中に含まれるマップ特徴の密度を低減するために、大幅に削減することができる。例えば、代表的なマップ特徴のサブセットが、ポイント群内で選択することができ、選択された3Dマップ特徴の所定の距離内の非選択特徴は、廃棄することができる。このようにして、大幅に間引きされて得られた3Dポイント群は、リモートデバイスによってより迅速にロードされ、より簡単に処理することができる。
【0049】
追加的に、または別の方法として、3Dマップは、実世界環境を説明する他の適切な情報を含むことができる。例として、そのような情報には、線、平面、および/もしくは他のより高次の対象物、すなわち、Wi-Fi/ブルートゥース識別子および/または信号強度、GPS座標、重力ベクトル、基本方向ベクトル(例えば、磁北)、ならびに/または実世界環境に対するカメラデバイスの位置を決定するために使用され得る任意の他の適切な情報が含まれ得る。
【0050】
カメラデバイスのポーズを推定することは、実世界環境の画像の2D画素位置で検出された画像特徴と、デジタル環境マップ内の3Dマップ位置を有するマップ特徴との間の対応を判定することを含むことができる。これは、各画像特徴に関連付けられた特徴記述子のための3Dマップを検索すること、および3Dポイント群の中で最も類似する特徴記述子を有する3Dマップ特徴を識別することによって、実行することができる。言い替えると、対応を決定することは、3Dマップ内の3Dマップ特徴の特徴記述子と一致する特徴記述子を有する画像特徴のセットを識別することを含むことができる。その結果、実世界環境の画像内で検出された2Dポイントは、3Dマップ特徴に関連付けられた3Dポイントに対応し、2Dポイントと3Dポイントの対応のセットを与える。この特徴記述子照合ステップは、多くの最近傍マッチング技術のうちの1つを使用して実施することができる。記述子ベクトル間のL2距離を使用して、ペアをなす特徴の類似性を計算することができる。
【0051】
とりわけ、決定された対応のすべてが、必ずしも正しいとは限らない。実際には、いくつかの正しくない対応が、決定される可能性がある。この理由は、基になる特徴記述子が曖昧である可能性があり、画像特徴の特徴記述子と、マップ内の3Dポイントに関連付けられた複数の特徴記述子との間の区別が常に十分であるとは限らないためである。
【0052】
さらに、実世界環境の各画像には、実世界環境がマッピングされたときには存在しなかった品物、対象物、人物などが含まれ得る。したがって、1つ以上の画像特徴が、デジタル環境マップに表されていない、カメラデバイスによって取り込まれた種々の画像の中で検出され得る。通常、そのような画像特徴は、任意の3Dマップ特徴には対応しないことになる。複数の画像内に描かれている任意のプライベートな詳細事項がデジタル環境マップ内のどの3Dマップ特徴にも対応しない可能性が高く、したがって、リモートデバイスがプライベートな詳細事項について推測することができる情報量を制限するため、これは、いくつかのシナリオでは有利であり得る。複数の画像内の画像特徴のいずれにも一致しない、マップ内のいくつかのマップ特徴も存在し得る。
【0053】
再び
図4に戻ると、414において、画像特徴とマップ特徴との間の対応が識別されると、そのような対応は、416において、カメラデバイスのポーズを推定するように構成された別のプロセスまたはアプリケーションに渡される。とりわけ、本明細書に記載されている画像ベースの位置特定プロセスの他のステップと同様に、画像特徴は、マップ特徴と照合され得、任意の適切な時点でポーズ推定のために渡され得る。言い替えると、特定の画像内のすべての画像特徴が照合または抽出される前、実世界環境のすべての画像が送信または取り込みされる前などに、識別された対応が、ポーズ推定のために渡される場合がある。
【0054】
したがって、418において、リモートデバイスは、デジタル環境マップ内のマップ特徴と照合する追加の画像特徴が存在するかどうかを判定する。はいの場合、414において、リモートデバイスは、そのような画像特徴を照合する。いいえの場合、420において、リモートデバイスは、画像特徴の照合を中止する。とりわけ、420において画像特徴の照合を中止することは、任意の照合された画像特徴を使用してカメラデバイスのポーズを推定することができるため、画像ベースの位置特定プロセス全体に対する終了を意味しない。さらに、追加の画像および/または画像特徴がカメラデバイスから受信された場合、414において、リモートデバイスは、画像特徴の照合を再開することができる。
【0055】
画像特徴とマップ特徴との間の対応が識別されると、422において、そのような対応を使用して、カメラデバイスのポーズを推定することができる。ポーズ推定は、任意の適切な方法で行うことができる。いくつかの例では、カメラデバイスのポーズを推定することは、繰り返しのランダム化プロセスとすることができ、そこでは、画像特徴の2D画素位置と、マップ特徴の3Dマップ位置との間の対応が、複数の候補カメラデバイスポーズについて識別され、これらの複数の候補カメラデバイスポーズは、それらの基礎となる対応データとの整合性について評価される。1つの例示的な手順では、カメラのポーズは、ランダムサンプルコンセンサス(RANSAC)法を使用して、決定された対応から推定することができる。そのような場合、最小または非最小ソルバーを使用して、決定された対応のサブセットから複数の候補カメラデバイスポーズを計算することができる。ただし、他の適切なアプローチを使用して、RANSACフレームワークを使用しないカメラポーズを推定することができることが理解されるであろう。
【0056】
まず初めに、リモートデバイスは、決定された2D画像特徴のセット全体から3Dマップ特徴対応への対応のサブセットを識別することができる。場合によっては、識別されたサブセット内の対応の数は、最小ソルバーとして知られている方法を使用して、有限な数の解を計算するために必要な最小数のデータポイントに対応し得る。例えば、2D線を2Dポイントのセットにフィッティングする場合、2つの一意のデータポイントの最小値が、2Dポイントを正確に通過する一意の2D線(単一の解)を見つけるために必要である。これに対して、単一のデータポイントは、無限の数のポテンシャル解と一致する場合がある。したがって、この線フィッティング例の場合、2つのデータポイントが、最小ソルバーのために必要な最小数である。対照的に、非最小ソルバーは、3つ以上のデータポイントを使用する場合がある。
【0057】
2D線フィッティング例を続けると、2Dデータポイント対の複数のサブセットを選択することができる。RANSACフレームワークでは、これらのサブセットは、ランダムに選択される。最小ソルバーが各サブセット(すなわち、2Dポイントの対)に適用されると、異なるポテンシャル解が、各サブセットから見つけることができる。ただし、いくつかのポテンシャル解(2D線)が、他のポテンシャル解よりも、入力データとより整合することになる。言い替えると、いくつかのポテンシャル線が、他のポテンシャル線よりも、データセット内でより多くの2Dポイントを通過することになる。RANSACでは、最小ソルバーによって識別された各ポテンシャル解について、その解(すなわち、2D線)は、データセット内の他の2Dデータポイントと比較されて、どのポイントが提案解と一致しないか(すなわち、「アウトライア」)、に対して、どのポイントが提案解と一致するか(すなわち、「インライア」)、を決定する。アウトライアに対するインライアの最も高い比率を有するか、または全インライアの少なくとも閾値数を有するいずれの解も、実際の解、例えば、2Dポイントのセットに最も良好にフィッティングする2D線として、受け入れることができる。
【0058】
カメラポーズ推定問題に戻ると、利用可能な情報に応じて、RANSACソルバーは、識別された対応のサブセットから有限数の解または潜在的なポーズ候補を出力することができる。言い替えると、各識別された対応のサブセットについて、リモートデバイスは、対応のサブセットを満足させる候補カメラデバイスポーズのセットを計算することができる。
【0059】
最小ソルバーに必要とされる対応の数は、場合によっては、カメラのポーズに関するいくつかの情報がすでに知られている場合、減らすことができる。例えば、実世界環境の複数の画像を取り込むときに、カメラデバイスは、その現在のポーズに対して重力ベクトルを検出することができる(例えば、オンボード3軸加速度計を介して)。この重力ベクトルは、場合によっては、カメラデバイスによってリモートデバイスに送信される情報内に含めることができる。したがって、カメラの3D配向のうちの2つの自由度(ロールおよびピッチに対応する)が、すでにわかっている場合があり、残りの自由度を推定する複雑さを軽減する。
【0060】
さらに、実世界環境の複数の画像が順次取り込まれ、カメラデバイスが、
図5に関して上で説明したように相対的ポーズ情報を送信する場合には、そのような相対的ポーズ情報は、カメラデバイスのポーズを推定するときに使用することができる。言い替えると、カメラデバイスによって取り込まれた各画像について、独立してポーズを推定するのではなく、リモートデバイスは、相対的ポーズ情報を使用して、カメラデバイスの推定されたポーズの潜在的なセットをさらに絞り込むことができる。例えば、カメラデバイスの信頼度の高いポーズは、リモートデバイスに送信される各画像、ならびに画像取り込みの間のカメラデバイスの動きと整合することになる。
【0061】
候補カメラデバイスポーズが対応の各サブセットについて計算されると、リモートデバイスは、あらゆる候補カメラデバイスポーズのセットから最も良好なカメラデバイスポーズ全体を識別することができる。言い替えると、いくつかのカメラデバイスポーズの仮説が、リモートデバイスによって識別され、それらの仮説のうちの少なくとも1つが、カメラデバイスの実際のポーズに対応する可能性が高い。一般に、最良の全体的なカメラデバイスポーズは、他の候補カメラデバイスポーズよりも、全体的な対応のセットとの一貫性がある。言い替えると、リモートデバイスは、各候補カメラデバイスポーズについて、決定された対応のうちのいくつがインライアであるか、またアウトライアであるかを決定することができ、これに基づいて最良の全体的なカメラデバイスポーズを識別することができる。
【0062】
実施態様、および使用される特定のポーズ推定技術に応じて、推定された各カメラデバイスポーズは、対応する信頼値を含むことができる。RANSACの場合、この信頼値は、上述したインライア/アウトライア比率に比例し得、その場合、より多くのインライアを有する(例えば、ポーズと一致しないよりは、そのポーズと一致する対応が多い)ポーズ推定値が、比較的より高い信頼値を有する。さらに、リモートデバイスは、カメラデバイスの単一のポーズを推定して停止する必要はない。逆に、リモートデバイスがカメラデバイスから追加の画像および/または画像特徴を受信したときに、リモートデバイスは、画像特徴とマップ特徴との間の識別された対応に基づいて、カメラデバイスの複数の推定されたポーズを累進的に出力することができる。各推定されたポーズは、それぞれの推定されたポーズが出力されたときに識別された対応の分量に比例する対応する信頼値を有することができ、その理由は、一般に、追加の画像特徴を受信することにより、より正確なポーズ推定値を生成するために使用可能なより多くのデータをリモートデバイスに提供することになるためである。
【0063】
したがって、様々な時点で、リモートデバイスは、カメラデバイスの任意の数の異なるポーズ推定値を生成することができ、それらのポーズ推定のいずれかまたはすべてをカメラデバイスに送信することができる。言い替えると、カメラデバイスによって受信された推定されたポーズは、場合によっては、より信頼度の高い最終的なポーズ推定値を後で受信する前に受信された予備の推定されたポーズであり得る。この予備の推定されたポーズは、リモートデバイスによって生成され得、任意の適切な時点でカメラデバイスによって受信され得、その適切な時点としては、カメラデバイスが実世界環境の画像の取り込みを終了する前、画像特徴のセットがカメラデバイスにより取り込まれた実世界環境の画像毎に検出される前、検出されたすべての画像特徴が対応するマップ特徴と照合する前などが挙げられる。
【0064】
いくつかの例では、リモートデバイスは、実世界環境の単一画像でさえも画像特徴を検出するために完全に分析される前に、カメラデバイスのポーズ推定値を出力することができる。言い替えると、実世界環境の単一画像を取り込むと、画像特徴は、カメラデバイスか、またはリモートデバイスのいずれかでの画像から抽出することができる。次いで、リモートデバイスは、画像内の画像特徴毎がリモートデバイスによって検出ないし受信される前に、カメラデバイスの絶対的ポーズを決定しようと開始することができる。このようにして、本明細書に考察されている画像ベースの位置特定のための技術は、単一の取り込まれた画像が画像特徴を検出するために完全に分析されるまで、通常、ポーズ推定の生成を決して開始しない、従来の単一画像ポーズ推定技術よりも、より迅速なポーズ推定値を得ることができる。
【0065】
上で説明したように、予備の推定されたポーズは、その予備の推定されたポーズが推定される前に、リモートデバイスに送信された画像特徴の分量に比例する関連付けられた信頼値を有することができる。ただし、予備の推定されたポーズがカメラデバイスに送信されるかどうかは、その予備の推定されたポーズに関連付けられた信頼値が1つ以上の信頼閾値を上回るかどうかに依存し得る。
【0066】
図4に戻ると、422において、リモートデバイスがカメラデバイスポーズを推定した後に、424において、リモートデバイスは、推定されたポーズが最終的な信頼閾値を上回るかどうかを判定する。この閾値は、比較的高い場合があり、このため、最終的な信頼閾値よりも高い信頼値を有する任意の推定されたポーズが、最終的な推定されたポーズとして指定され、その時点で、画像ベースの位置特定が中止され得る。
【0067】
推定されたポーズの信頼値が最終的な信頼閾値を上回らない場合、リモートデバイスは、信頼値が1つ以上のより低い信頼閾値を上回るかどうかを判定することができる。例えば、426において、リモートデバイスは、推定されたポーズが予備の信頼閾値を上回るかどうかを判定する。いいえの場合、428において、推定されたポーズは、この時点ではカメラデバイスに送信されず、リモートデバイスは、予備の信頼閾値を上回るポーズが推定されるまで、またはプロセスが別の理由により停止されるまで、任意選択的にポーズ推定値を生成し続けることができる。はいの場合、推定されたポーズは、予備の推定されたポーズとして指定され、430において、カメラデバイスに送信され、そして432において、カメラデバイスによって受信される。
【0068】
とりわけ、予備のポーズ推定値をカメラデバイスに送信した後であっても、リモートデバイスは、カメラデバイスから画像および/または画像特徴を受信し続け、新しいポーズ推定値を生成し続けることができる。したがって、予備のポーズ推定値を受信した後であっても、カメラデバイスは、予備の推定されたポーズよりも多くの検出された画像特徴に基づいて推定された1つ以上の追加の推定されたポーズを受信することができる。したがって、1つ以上の追加の推定されたポーズは、それに応じて、より高い信頼値を有することができる。最終的に、424において、リモートデバイスは、最終的な信頼閾値を上回る信頼値を有するカメラデバイスのポーズを推定することができる。次いで、434において、この最終的な推定されたポーズは、カメラデバイスに送信され得、436において、カメラデバイスで受信することができる。
【0069】
とりわけ、実世界環境の画像の取り込みと、対応するポーズ推定値の受信との間で、カメラデバイスの実際のポーズが変化し得る。言い替えると、カメラデバイスがリモートデバイスから、推定されたポーズを受信する時点まで、推定されたポーズは、カメラデバイスの動きに起因して、もはや正確ではない可能性がある。したがって、いくつかのシナリオでは、リモートデバイスは、推定されたポーズが基礎に置く実世界環境の1つ以上の画像の取り込み時間に対するタイムスタンプ、または時間経過の他の指標とともに推定されたカメラポーズについて報告することができる。次いで、カメラデバイスは、例えば、
図5に関して上述した相対的ポーズデータのいずれかを含む、カメラデバイス自体の内部移動追跡データに基づいて、推定されたポーズを更新することができる。例えば、推定されたポーズが過去0.25秒の時点に特有であるとリモートデバイスが示し、そしてカメラデバイスがその時点で3mm前進したとそのカメラデバイスが判定した場合、推定されたポーズは、3mm前方に調整され得る。
【0070】
追加的に、または別の方法として、リモートデバイスは、そのリモートデバイスがポーズを推定するときに、カメラデバイスの動きを予想することができる。例えば、カメラデバイスから受信した情報(例えば、相対的ポーズ情報)、および/またはポーズ推定中に予想された情報に基づいて、リモートデバイスは、カメラデバイスが特定の速度で特定の方向に移動していると判定することができる。リモートデバイスとカメラデバイスとの間の測定または推定されたネットワーク待ち時間を使用することによって、リモートデバイスは、例えば、推定されたポーズがカメラデバイスに到達するのに0.25秒かかると判定することができる。したがって、リモートデバイスは、その推定されたポーズを修正して、0.25秒の待ち時間空き状態の間のカメラデバイスの動きを考慮することができる。例えば、カメラデバイスが特定の速度で右に首をゆっくり振っているとリモートデバイスが判定した場合、リモートデバイスは、観測されたネットワーク待ち時間に比例する、右寄りに延長された運動を含む、カメラデバイスのポーズを推定することができる。同様に延長を使用し、推定されたポーズを更新して、その推定されたポーズが基礎とする実世界環境の画像の取り込み時間以来の、カメラデバイスの動きを考慮することができる。
【0071】
最終的な推定されたポーズが受信されると、カメラデバイスは、場合によっては、画像ベースの位置特定プロセスを終了させることができる。例えば、カメラデバイスは、実世界環境の新しい画像を取り込むこと、画像特徴のセットを検出するか、またはそれをリモートデバイスに送信すること、およびリモートデバイスからポーズ推定値を受信すること、を中止することができる。同様に、リモートデバイスは、カメラデバイスから画像および/または画像特徴を受信することを停止することができ、新しいポーズ推定値を生成することを停止することができる。この時点で、カメラデバイスのポーズの追跡は、カメラ自体によって、例えば、カメラデバイスの適切な位置/配向センサを介して、行うことができる。
【0072】
ただし、他の場合では、画像ベースの位置特定は、任意の特定の推定されたポーズがカメラデバイスに送信された後に停止する必要はない。逆に、画像ベースの位置特定は、潜在的に無期限に継続する可能性があり、例えば、カメラデバイスが使用されている限り、そのカメラデバイスは、実世界環境の新しい画像を取り込み、そしてリモートデバイスから新しいポーズ推定値を受信し続けることができる。これにより、IMUなどの他のオンボード運動センサを欠いているカメラデバイスの、潜在的に高精度のポーズ追跡が容易になり得る。あるいは、画像ベースの位置特定は、選択的に中止および再開することができ、例えば、カメラデバイスがその絶対的ポーズについて不確実になったときはいつでも、リモートデバイスを使用して、より確実なカメラポーズを再確立することができる。
【0073】
本明細書に記載されている方法およびプロセスは、1つ以上のコンピューティングデバイスのうちの1つのコンピューティングシステムに接続され得る。特に、そのような方法およびプロセスは、実行可能なコンピュータアプリケーションプログラム、ネットワークアクセス可能なコンピューティングサービス、アプリケーションプログラミングインターフェース(API)、ライブラリ、または上記および/もしくは他の計算リソースの組み合わせとして実装することができる。
【0074】
図6は、本明細書に記載されているコンピューティング機能のすべてにいずれかを提供するように構成されたコンピューティングシステム600の簡略化された表現を概略的に示す。コンピューティングシステム600は、1つ以上のカメラデバイス、仮想/拡張/複合現実コンピューティングデバイス、モバイル通信デバイス(例えば、スマートフォン)、タブレットコンピュータ、家庭用娯楽コンピュータ、ゲーム用デバイス、モバイルコンピューティングデバイス、ウェアラブルコンピューティングデバイス、インターネットオブシングス(IoT)デバイス、埋込型コンピューティングデバイス、パーソナルコンピュータ、ネットワークアクセス可能なサーバコンピュータ、および/または他のコンピューティングデバイスの形態をとることができる。コンピューティングシステム600の非限定的な例には、カメラデバイス106および300、ならびにリモートデバイス308が含まれ得る。
【0075】
コンピューティングシステム600は、ロジックサブシステム602およびストレージサブシステム604を含む。コンピューティングシステム600は、任意選択的に、ディスプレイサブシステム606、入力サブシステム608、通信サブシステム610、および/または
図6に示されていない他のサブシステムを含み得る。
【0076】
ロジックサブシステム602は、命令を実行するように構成された1つ以上の物理的なデバイスを含む。例えば、ロジックサブシステムは、1つ以上のアプリケーション、サービス、または他の論理構成の一部である命令を実行するように構成することができる。ロジックサブシステムは、ソフトウェア命令を実行するように構成された1つ以上のハードウェアプロセッサを含むことができる。追加的に、または別の方法として、ロジックサブシステムは、ハードウェアまたはファームウェア命令を実行するように構成された1つ以上のハードウェアまたはファームウェアデバイスを含むことができる。ロジックサブシステムのプロセッサは、シングルコアまたはマルチコアであってもよく、それらの上で実行される命令は、逐次、並列、および/または分散処理のために構成されてもよい。ロジックサブシステムの個々の構成要素は、任意選択的に、2つ以上の別個のデバイス間に分散され得、それらのデバイスは、連携動作処理のためにリモートで配置および/または構成することができる。ロジックサブシステムの態様は、クラウドコンピューティング構成で構成された、リモートアクセス可能で、ネットワーク接続されたコンピューティングデバイスによって仮想化および実行することができる。
【0077】
ストレージサブシステム604は、ロジックサブシステムによって実行可能なデータおよび命令などのコンピュータ情報を一時的にかつ/または恒久的に保持するように構成された1つ以上の物理的なデバイスを含む。ストレージサブシステムが2つ以上のデバイスを含む場合、デバイスは、一緒に配置され、かつ/またはリモートで配置することができる。ストレージサブシステム604は、揮発性、不揮発性、ダイナミック、スタティック、読み取り/書き込み、読み取り専用、ランダムアクセス、逐次アクセス、位置アドレス指定可能デバイス、ファイルアドレス指定可能デバイス、および/またはコンテンツアドレス指定可能デバイスを含むことができる。ストレージサブシステム604は、リムーバルデバイスおよび/または内蔵デバイスを含むことができる。ロジックサブシステムが命令を実行するとき、ストレージサブシステム604の状態は、例えば、様々なデータを保持するように変換することができる。
【0078】
ロジックサブシステム602およびストレージサブシステム604の態様は、1つ以上のハードウェアロジック構成要素に一緒に統合することができる。そのようなハードウェアロジック構成要素には、例えば、プログラム特定用途向け集積回路および特定用途向け集積回路(PASIC/ASIC)、プログラム特定用途向け標準製品および特定用途向け標準製品(PSSP/ASSP)、システムオンチップ(SOC)、ならびに複合プログラマブルロジックデバイス(CPLD)が含まれ得る。
【0079】
ロジックサブシステムおよびストレージサブシステムは、協働して1つ以上のロジックマシンをインスタンス化することができる。本明細書で使用される場合、「マシン」という用語は、ハードウェア、ファームウェア、ソフトウェア、命令、および/または協働してコンピュータ機能を提供する任意の他の構成要素の組み合わせを集合的に指すために使用される。言い替えると、「マシン」は、抽象的なアイデアでは決してなく、常に有形の形態を有する。マシンは、単一のコンピューティングデバイスによってインスタンス化され得、またはマシンは、2つ以上の異なるコンピューティングデバイスによってインスタンス化された2つ以上のサブ構成要素を含むことができる。いくつかの実施態様では、マシンは、リモート構成要素(例えば、サーバコンピュータのネットワークによって提供されるクラウドコンピューティングサービス)とともに協働するローカル構成要素(例えば、コンピュータプロセッサによって実行されるソフトウェアアプリケーション)を含む。特定のマシンにその機能を与えるソフトウェアおよび/または他の命令は、1つ以上の適切なストレージデバイス上に、1つ以上の未実行モジュールとして、任意選択的に保存することができる。
【0080】
ディスプレイサブシステム606が含まれる場合、それを使用して、ストレージサブシステム604によって保持されるデータの視覚的表現を提示することができる。この視覚的表現は、グラフィカルユーザインターフェース(GUI)の形式を取ることができる。ディスプレイサブシステム606は、事実上任意のタイプの技術を利用する1つ以上のディスプレイデバイスを含むことができる。いくつかの実施態様では、ディスプレイサブシステムは、1つ以上の仮想現実ディスプレイ、拡張現実ディスプレイ、または複合現実ディスプレイを含むことができる。
【0081】
入力サブシステム608が含まれる場合、それは、1つ以上の入力デバイスを備えるか、またはそれらとインターフェース接続することができる。入力デバイスは、センサデバイスまたはユーザ入力デバイスを含むことができる。ユーザ入力デバイスの例としては、キーボード、マウス、タッチスクリーン、またはゲームコントローラが挙げられる。いくつかの実施形態において、入力サブシステムは、選択された自然ユーザ入力(NUI)構成要素を備え得るか、またはそれとインターフェース接続することができる。そのような構成要素は、統合され得るかまたは周辺装置であり得、入力操作の変換および/または処理は、オンボードまたはオフボードで処理することができる。例示的なNUI構成要素としては、音声および/または音声認識のためのマイクロフホン、機械視覚および/またはジェスチャー認識のための赤外線カメラ、カラーカメラ、立体映像カメラ、および/または深度カメラ、運動検出および/または意図認識のためのヘッドトラッカー、アイトラッカー、加速度計、および/またはジャイロスコープが挙げられる。
【0082】
通信サブシステム610が含まれる場合、それは、コンピューティングシステム600を1つ以上の他のコンピューティングデバイスに通信可能に結合するように構成することができる。通信サブシステム610は、1つ以上の異なる通信プロトコルと互換性のある有線および/または無線通信デバイスを含むことができる。通信サブシステムは、パーソナルエリアネットワーク、ローカルエリアネットワーク、および/またはワイドエリアネットワークを介して通信するように構成することができる。
【0083】
本明細書に開示されている方法およびプロセスは、例えば、カメラデバイスによって取り込まれた画像、ならびにカメラデバイスの推定されたポーズを含む、任意のプライベート上かつ/または潜在的に機密性の高いデータにわたって、ユーザおよび/または任意の他の人間を制御するように構成することができる。データが保存、アクセス、および/または処理されるときはいつでも、データは、プライバシーおよび/またはセキュリティ基準に従って処理することができる。ユーザデータが収集されたとき、ユーザまたは他の利害関係者は、データがどのように使用され、かつ/または保存されるかを指定することができる。ユーザデータが何らかの目的のために収集されたときはいつでも、そのユーザデータは、ユーザプライバシーを最大限に尊重してのみ収集することができる(例えば、ユーザデータは、そのデータを所有するユーザが肯定的な同意を提供する場合のみ、収集することができ、かつ/またはそのデータを所有するユーザは、ユーザデータが収集されたときにいつでも、通知され得る)。データがユーザ以外の誰かによってアクセスされるように公開され得るか、または任意の意思決定プロセスに使用され得る場合には、そのデータの使用および/または公開の前に、ユーザの同意を収集することができる。ユーザは、いつでも、データ収集の参加および/または脱退を決めることができる。データが収集された後、ユーザは、コマンドを送出して、データを削除し、かつ/またはデータへのアクセスを制限することができる。潜在的に機密性の高いすべてのデータは、任意選択的に、暗号化することができ、かつ/または、実行可能であれば、匿名扱いにして、ユーザプライバシーをさらに保護することができる。ユーザは、データ、メタデータ、またはデータ処理の統計/結果の一部を、他の当事者への公開のために、例えば、さらなる処理のために指定することができる。プライベートおよび/または機密のデータは、完全に非公開を保つことができ、例えば、処理のために一時的に復元される場合のみ、またはユーザデバイス上での処理のために復元される場合のみ、およびそれ以外では暗号化された形式で保存することができる。ユーザは、暗号化されたデータのための暗号キーを保持および制御することができる。代替的または追加的に、ユーザは、例えば、適切な認証プロトコルに従ってユーザにデータへのアクセスを提供するために、暗号化されたデータの暗号キーを保持および制御するために、信頼できる第三者を指定することができる。
【0084】
一例において、画像ベースの位置特定のための方法は、カメラデバイスにおいて、実世界環境の複数の画像を取り込むことと、複数の画像のうちの第1の画像内の画像特徴の第1のセットを検出することと、画像特徴の追加のセットが複数の画像のうちの他の画像内で検出される前に、第1のセットの画像特徴を、複数の画像内で検出された画像特徴に基づいて、カメラデバイスのポーズを推定するように構成されたリモートデバイスに送信することと、画像特徴の追加のセットが複数の画像のうちの他の画像内で検出されたときに、画像特徴の追加のセットをリモートデバイスに送信することと、リモートデバイスから、カメラデバイスの推定されたポーズを受信することと、を含む。この例または他の任意の例において、実世界環境の複数の画像は、実質的に一度に取り込まれる。この例または他の任意の例において、複数の画像の各画像は、カメラデバイスの異なるそれぞれのカメラによって取り込まれ、その方法は、カメラデバイスの異なるそれぞれのカメラの各々の、互いに対する空間的関係を示す情報をリモートデバイスに送信することをさらに含む。この例または他の任意の例において、実世界環境の複数の画像は、順次取り込まれる。この例または他の任意の例において、その方法は、複数の画像の連続画像の取り込みの間の、カメラデバイスの動きに関する情報をリモートデバイスに送信することをさらに含む。この例または他の任意の例において、カメラデバイスの推定されたポーズは、リモートデバイスに送信された画像特徴と、実世界環境に対応するデジタル環境マップ内のマップ特徴との間の識別された対応に基づいて推定される。この例または他の任意の例において、検出された各画像特徴は、画像特徴が実世界環境の対応する画像内で識別された二次元(2D)画素位置の表示を含み、識別された対応は、リモートデバイスに送信された画像特徴の2D画素位置と、デジタル環境マップ内のマップ特徴の三次元(3D)マップ位置との間のものである。この例または他の任意の例において、2D画素位置と3Dマップ位置との間の識別された対応は、カメラデバイスの推定されたポーズを出力するランダムサンプルコンセンサス(RANSAC)ソルバーに入力される。この例または他の任意の例において、カメラデバイスの推定されたポーズは、予備の推定されたポーズであり、画像特徴の追加のセットが複数の画像のうちの画像毎に検出される前に受信され、予備の推定されたポーズは、その予備の推定されたポーズが推定される前に、リモートデバイスに送信された画像特徴の分量に比例する関連付けされた信頼値を有する。この例または他の任意の例において、その方法は、予備の推定されたポーズの後に1つ以上の追加の推定されたポーズを受信することをさらに含み、その1つ以上の追加の推定されたポーズは、予備の推定されたポーズよりも多くの検出された画像特徴に基づいて推定され、それに応じてより高い信頼値を有する。この例または他の任意の例において、その方法は、最終的な信頼閾値を上回る対応する信頼値を有する最終的な推定されたポーズを受信することと、その最終的な推定されたポーズを受信した後に、画像特徴の追加のセットをリモートデバイスに送信することを中止することと、をさらに含む。
【0085】
一例において、コンピューティングデバイスは、1つ以上のカメラと、ロジックマシンと、を備え、そのロジックマシンは、1つ以上のカメラを介して、実世界環境の複数の画像を取り込むことと、その複数の画像のうちの第1の画像内の画像特徴の第1のセットを検出することと、画像特徴の追加のセットが複数の画像のうちの他の画像内で検出される前に、複数の画像内で検出された画像特徴に基づいて、画像特徴の第1のセットを、カメラデバイスのポーズを推定するように構成されたリモートデバイスに送信することと、画像特徴の追加のセットが複数の画像のうちの他の画像内で検出されたときに、画像特徴の追加のセットをリモートデバイスに送信することと、リモートデバイスから、カメラデバイスの推定されたポーズを受信することと、を行うように構成されている。この例または他の任意の例において、実世界環境の複数の画像は、カメラデバイスの異なるそれぞれのカメラによって実質的に一度に取り込まれ、ロジックマシンは、カメラデバイスの異なるそれぞれのカメラの各々の、互いに対する空間的関係を示す情報をリモートデバイスに送信するようにさらに構成されている。この例または他の任意の例において、実世界環境の複数の画像は、順次取り込まれ、ロジックマシンは、複数の画像のうちの連続画像の取り込みの間の、カメラデバイスの動きに関する情報をリモートデバイスに送信するようにさらに構成されている。この例または他の任意の例において、カメラデバイスの推定されたポーズは、リモートデバイスに送信された画像特徴と、実世界環境に対応するデジタル環境マップ内のマップ特徴との間の識別された対応に基づいて推定される。この例または他の任意の例において、検出された各画像特徴は、画像特徴が実世界環境の対応する画像内で識別された二次元(2D)画素位置の表示を含み、識別された対応は、リモートデバイスに送信された画像特徴の2D画素位置と、デジタル環境マップ内のマップ特徴の三次元(3D)マップ位置との間のものである。この例または他の任意の例において、カメラデバイスの推定されたポーズは、予備の推定されたポーズであり、画像特徴の追加のセットが複数の画像のうちの画像毎に検出される前に受信される。この例または他の任意の例において、予備の推定されたポーズは、その予備の推定されたポーズが推定される前に、リモートデバイスに送信された画像特徴の分量に比例する関連付けされた信頼値を有し、ロジックマシンは、予備の推定されたポーズの後に、1つ以上の追加の推定されたポーズを受信するようにさらに構成され、その1つ以上の追加の推定されたポーズは、予備の推定されたポーズよりも多くの検出された画像特徴に基づいて推定され、それに応じてより高い信頼値を有する。この例または他の任意の例において、ロジックマシンは、最終的な信頼閾値を上回る対応する信頼値を有する最終的な推定されたポーズを受信するようにさらに構成され、最終的な推定されたポーズを受信した後に、リモートデバイスの画像特徴の追加のセットを送信することを中止する。
【0086】
一例において、コンピューティングデバイスは、ロジックマシンであって、カメラデバイスから、そのカメラデバイスの1つ以上のカメラによって取り込まれた、カメラデバイスの実世界環境の複数の画像を受信することと、実世界環境の複数の画像が受信されたときに、その複数の画像の各画像内の画像特徴のセットを検出することと、画像特徴のセットが検出されたときに、検出された画像特徴と、実世界環境に対応するデジタル環境マップのマップ特徴との間の対応を識別することと、それらの対応が識別されたときに、その識別された対応に基づいてカメラデバイスの複数の推定されたポーズを連続的に出力することと、を行うように構成された、ロジックマシン、を備え、各推定されたポーズは、各それぞれの推定されたポーズが出力されたときに識別された対応の分量に比例する対応する信頼値を有し、予備の信頼閾値を上回る対応する信頼値を有するカメラデバイスの予備のポーズを推定する際、および複数の画像のうちの画像毎に画像特徴のセットを検出する前に、第1のポーズをカメラデバイスに報告し、予備の信頼閾値よりも高い最終的な信頼閾値を上回る対応する信頼値を有するカメラデバイスの第2のポーズを推定する際に、第2のポーズをカメラデバイスに報告する。
【0087】
この開示は、例として、また関連付けられた図面を参照して提示されている。各図のうちの1つ以上で実質的に同じであり得る構成要素、プロセスステップ、および他の要素は、協調して識別され、最小限の繰り返しで説明される。ただし、協調して識別された要素はまた、ある程度異なる場合もあることに留意されたい。いくつかの図は、概略的であり、縮尺通りには描かれていない場合があることにさらに留意されたい。各図に示されている様々な図面尺度、アスペクト比、および構成要素の数は、特定の特徴または関係を見やすくするために、故意に歪められている場合がある。
【0088】
本明細書に記載されている構成および/またはアプローチは、本質的に例示的なものであること、およびこれらの特定の実施形態または例は、数多くのバリエーションが可能であるため、限定的な意味で考慮されるべきではないこと、が理解されるであろう。本明細書に記載されている特定のルーチンまたは方法は、任意の数の処理方策のうちの1つ以上を表し得る。したがって、例示および/または説明された様々な動作は、例示および/または説明された他の順番で、並行して、または省略して、実行することができる。同様に、上述のプロセスの順番は、変更することができる。
【0089】
本開示の主題は、様々なプロセス、システム、および構成、ならびに本明細書に開示された他の特徴、機能、動作、および/または特性のすべての新規で自明でない組み合わせおよび副組み合わせ、ならびに任意のおよびすべての同等物を含むものとする。