(57)【特許請求の範囲】
【請求項１】
電子デバイス［１００］において、前記電子デバイスのローカライゼーション・データ［２３０］を、前記電子デバイスにおいてキャプチャされた視像［２２０］に基づいて、および、非視覚センサから取得された受信された非視覚姿勢情報［１４２］に基づいて生成する工程と、
キャプチャされた前記視像に基づいて前記電子デバイスの環境の複数のフィーチャを識別し［２２５］、前記ローカライゼーション・データ［２３０］において識別される複数のフィーチャの特徴に基づいて、識別されたフィーチャの各々に対し対応する品質値を割り当てる割り当て工程と、
品質値閾値を識別する工程であって、前記品質値閾値は、前記品質値の平均値と、前記品質値の中央値と、前記品質値閾値を超える品質値の数に基づく値と、のうちの１つ以上に基づいている、工程と、
前記品質値閾値未満の品質値を有するフィーチャに関連付けられているデータを除去することによって、前記複数のフィーチャの特徴に基づいて前記ローカライゼーション・データを削減する削減工程［２３２］と、
削減された前記ローカライゼーション・データに基づいて前記電子デバイスの前記環境をマッピングする工程［２３５］と、を備える、
方法。
【請求項２】
前記複数のフィーチャの前記特徴は、キャプチャされた前記視像の互いに異なる画像における前記複数のフィーチャのそれぞれの観察数［４５４］を含む、
請求項１に記載の方法。
【請求項３】
前記複数のフィーチャの前記特徴は、キャプチャされた前記視像の互いに異なる画像における前記複数のフィーチャのそれぞれの位置の一貫性［４５６］を含む、
請求項１に記載の方法。
【請求項４】
電子デバイス［１００］において、前記電子デバイスのローカライゼーション・データ［２３０］を、前記電子デバイスにおいてキャプチャされた視像［２２０］に基づいて、および、非視覚センサから取得された受信された非視覚姿勢情報［１４２］に基づいて生成する工程と、
キャプチャされた前記視像に基づいて前記電子デバイスの環境の複数のフィーチャを識別する工程［２２５］と、
前記複数のフィーチャの特徴に基づいて前記ローカライゼーション・データを削減する削減工程［２３２］と、
削減された前記ローカライゼーション・データに基づいて前記電子デバイスの前記環境をマッピングする工程［２３５］と、を備え、
前記複数のフィーチャの前記特徴は、キャプチャされた前記視像の互いに異なる画像における前記複数のフィーチャのそれぞれの前記電子デバイスからの距離［４５５］を含む、
方法。
【請求項５】
前記複数のフィーチャの前記特徴は、キャプチャされた前記視像の互いに異なる画像における前記複数のフィーチャの変動性［４５８］を含む、
請求項１に記載の方法。
【請求項６】
電子デバイス［１００］において、前記電子デバイスのローカライゼーション・データ［２３０］を、前記電子デバイスにおいてキャプチャされた視像［２２０］に基づいて、および、非視覚センサから取得された受信された非視覚姿勢情報［１４２］に基づいて生成する工程と、
キャプチャされた前記視像に基づいて前記電子デバイスの環境の複数のフィーチャを識別する工程［２２５］と、
前記複数のフィーチャの特徴に基づいて前記ローカライゼーション・データを削減する削減工程［２３２］と、
削減された前記ローカライゼーション・データに基づいて前記電子デバイスの前記環境をマッピングする工程［２３５］と、を備え、
前記削減工程は、前記データから前記非視覚姿勢情報を除去する工程［３４０］を含む、
方法。
【請求項７】
前記削減工程は、前記ローカライゼーション・データを幾何学的に圧縮する工程［３４４］を含む、
請求項１に記載の方法。
【請求項８】
前記削減工程は、
前記ローカライゼーション・データのキーフレームを識別する工程［３４２］と、
前記ローカライゼーション・データのキーフレームに対応しないデータを除去する工程と、を含む、
請求項１に記載の方法。
【請求項９】
前記割り当て工程は、前記品質値を、複数の画像でのフィーチャの位置の一貫性［４５６］と、フィーチャの観察数［４５４］と、前記フィーチャの距離［４５５］と、複数の画像でのフィーチャの互いに異なる位置の数［４５８］とのうち１以上に基づいて識別する工程を含む、
請求項１に記載の方法。
【請求項１０】
前記マッピングする工程は、
削減された前記ローカライゼーション・データからのフィーチャをフィーチャ記述子のデータベース［６３８，６４０］のフィーチャ記述子［４５０］と一致させる一致工程と、
前記一致工程に基づいてローカルの前記環境をマッピングする工程と、を含む、
請求項１に記載の方法。
【請求項１１】
視像をキャプチャする撮像センサ［１１４，１１８］と、
複数の非視覚センサと、
プロセッサ［６０２，６０４］と、を備える電子デバイスであって、前記プロセッサは、
電子デバイスにおいて、前記電子デバイスのローカライゼーション・データ［２３０］を、前記電子デバイスにおいてキャプチャされた視像［２２０］に基づいて、および、非視覚センサから取得された受信された非視覚姿勢情報［１４２］に基づいて生成し、
キャプチャされた前記視像に基づいて前記電子デバイスの環境の複数のフィーチャを識別し［２２５］、前記ローカライゼーション・データ［２３０］において識別される複数のフィーチャの特徴に基づいて、識別されたフィーチャの各々に対し対応する品質値を割り当て、
品質値閾値を識別することであって、前記品質値閾値は、前記品質値の平均値と、前記品質値の中央値と、前記品質値閾値を超える品質値の数に基づく値と、のうちの１つ以上に基づいている、識別することを行い、
前記品質値閾値未満の品質値を有するフィーチャに関連付けられているデータを除去することによって、前記複数のフィーチャの特徴に基づいて前記ローカライゼーション・データを削減し［２３２］、
削減された前記ローカライゼーション・データに基づいて前記電子デバイスの前記環境をマッピングする［２３５］、
電子デバイス。
【請求項１２】
前記複数のフィーチャの前記特徴は、キャプチャされた前記視像の互いに異なる画像における前記複数のフィーチャのそれぞれの観察数［４５４］を含む、
請求項１１に記載の電子デバイス。
【請求項１３】
前記複数のフィーチャの前記特徴は、キャプチャされた前記視像の互いに異なる画像における前記複数のフィーチャのそれぞれの位置の一貫性［４５６］を含む、
請求項１１に記載の電子デバイス。
【請求項１４】
視像をキャプチャする撮像センサ［１１４，１１８］と、
複数の非視覚センサと、
プロセッサ［６０２，６０４］と、を備える電子デバイスであって、前記プロセッサは、
電子デバイスにおいて、前記電子デバイスのローカライゼーション・データ［２３０］を、前記電子デバイスにおいてキャプチャされた視像［２２０］に基づいて、および、非視覚センサから取得された受信された非視覚姿勢情報［１４２］に基づいて生成し、
キャプチャされた前記視像に基づいて前記電子デバイスの環境の複数のフィーチャを識別し［２２５］、
前記複数のフィーチャの特徴に基づいて前記ローカライゼーション・データを削減し［２３２］、
削減された前記ローカライゼーション・データに基づいて前記電子デバイスの前記環境をマッピングし［２３５］、
前記複数のフィーチャの前記特徴は、キャプチャされた前記視像の互いに異なる画像における前記複数のフィーチャのそれぞれの前記電子デバイスからの距離［４５５］を含む、
電子デバイス。
【請求項１５】
前記複数のフィーチャの前記特徴は、キャプチャされた前記視像の互いに異なる画像における前記複数のフィーチャの変動性［４５８］を含む、
請求項１１に記載の電子デバイス。
【請求項１６】
視像をキャプチャする撮像センサ［１１４，１１８］と、
複数の非視覚センサと、
プロセッサ［６０２，６０４］と、を備える電子デバイスであって、前記プロセッサは、
電子デバイスにおいて、前記電子デバイスのローカライゼーション・データ［２３０］を、前記電子デバイスにおいてキャプチャされた視像［２２０］に基づいて、および、非視覚センサから取得された受信された非視覚姿勢情報［１４２］に基づいて生成し、
キャプチャされた前記視像に基づいて前記電子デバイスの環境の複数のフィーチャを識別し［２２５］、
前記複数のフィーチャの特徴に基づいて前記ローカライゼーション・データを削減し［２３２］、
削減された前記ローカライゼーション・データに基づいて前記電子デバイスの前記環境をマッピングし［２３５］、
前記プロセッサは、前記データから前記非視覚姿勢情報を除去すること［３４０］によって前記ローカライゼーション・データを削減する、
電子デバイス。
【請求項１７】
前記プロセッサは、さらに前記ローカライゼーション・データを幾何学的に圧縮すること［３４４］によって前記ローカライゼーション・データを削減する、
請求項１１に記載の電子デバイス。
【請求項１８】
前記プロセッサは、
前記ローカライゼーション・データのキーフレームを識別すること［３４２］と、
前記ローカライゼーション・データのキーフレームに対応しないデータを除去することと、によって前記ローカライゼーション・データを削減する、
請求項１１に記載の電子デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に視像キャプチャおよび処理に関し、より詳細には、電子デバイスにおけるローカライゼーション・データの管理に関する。
【背景技術】
【０００２】
モバイル・デバイスにおけるマシン・ビジョンの実装は、同時ローカライゼーション・マッピング（ＳＬＡＭ）を実現する様々なアプリケーションをサポートし、これは、デバイスによってキャプチャされるローカル環境の視像の分析を通じて、および、モバイル・デバイスの姿勢情報を識別されたオブジェクトに関連付けることを通じてデバイスのローカル環境内におけるオブジェクトの識別を可能にすることによって、様々なアプリケーション（拡張現実（ＡＲ）アプリケーションおよび仮想現実（ＶＲ）アプリケーション）をサポートすることができる。これらのフィーチャをサポートするために、モバイル・デバイスは、１以上の画像センサにおいて視像をキャプチャすることによって、および、様々な非視覚センサ（たとえば、加速度計やジャイロスコープ）からデータを受信することによって、多種多様なデータを収集することができる。しかしながら、収集された情報の密度とサイズとによって、モバイル・デバイスのストレージ・リソースに悪影響が与えられるだけでなく、オブジェクトの識別が低速化する可能性がある。
【図面の簡単な説明】
【０００３】
【図１】本開示の少なくとも一実施形態に係る、データから識別されるフィーチャの特徴に基づいてローカライゼーション・データを削減するよう構成されている電子デバイスを示す図。
【図２】本開示の少なくとも一実施形態に係る、データから識別されるフィーチャの特徴に基づいてローカライゼーション・データを削減する図１の電子デバイスの一部を示す図。
【図３】本開示の少なくとも一実施形態に係る図２のデータ削減部の図。
【図４】本開示の少なくとも一実施形態に係る、関連付けられているフィーチャの品質を識別するために図３のデータ削減部によって活用されるフィーチャ記述子を示す図。
【図５】本開示の少なくとも一実施形態に係る、図３のデータ削減部における幾何学的圧縮モジュールの例を示す図。
【図６】本開示の少なくとも一実施形態に係る、電子デバイスの処理システムを示すブロック図。
【図７】本開示の少なくとも一実施形態に係る、フィーチャ品質に基づいてローカライゼーション・データを削減する電子デバイスの動作を示すフロー図。
【発明を実施するための形態】
【０００４】
本開示は、添付の図面を参照することによって、当業者によってよりよく理解され得るし、その多くの特徴および利点も当業者に明らかになり得る。異なる図面における同じ参照符号の使用は、類似または同一の項目を示す。
【０００５】
以下の説明は、電子デバイスのローカル環境内にあるオブジェクトの画像を基にした識別に基づいて電子デバイスの相対位置または相対配向を判定することに関する多くの具体的な実施形態および詳細を提供することによって、本開示の完全な理解を伝達することを意図している。しかしながら、本開示は、単なる例示でありこれらの特定の実施形態および詳細に限定されるものではなく、本開示の範囲は、したがって、特許請求の範囲およびその均等物によってのみ限定されることが意図される、ということが理解される。既知のシステムおよび方法に照らして、当業者は、特定の設計および他の必要性に応じて、任意の数の代替実施形態における意図された目的および利益のための開示の使用が理解されるであろう、ということがさらに理解される。
【０００６】
図１〜図７は、データから識別されるフィーチャの特徴に基づいて電子デバイスにおいてローカライゼーション・データを削減するための様々な手法を示す。フィーチャの特徴に基づいて、品質値がそれぞれ識別されたフィーチャに割り当てられる。このことは、フィーチャに関連付けられているデータが電子デバイスのローカル環境をマッピングする際に有用である可能性を示す。ローカライゼーション・データは、低品質値を有するフィーチャに関連付けられているデータを除去することによって削減され、削減されたローカライゼーション・データは、電子デバイスの基準系において、削減されたローカライゼーション・データから識別されたフィーチャを設置することによって、電子デバイスのローカル環境をマッピングするために用いられる。このようにローカライゼーション・データを削減することによって、ローカライゼーション・データの全体の品質を維持しつつ、ローカライゼーション・データを記憶している１以上のデータ・ファイルのサイズが縮小される。したがって、削減されたローカライゼーション・データによって、ストレージ・スペースと処理リソースとを含む電子デバイスのリソース上でのマッピングの影響を低減しつつ、ローカル環境の高品質マッピングをサポートする。
【０００７】
フィーチャの品質値は、任意の様々な因子（キャプチャされた互いに異なる画像でのフィーチャの観察数、フィーチャが互いに異なる画像でキャプチャされた異なる角度の数、キャプチャされた互いに異なる画像でのフィーチャの一貫性、フィーチャの動的特徴（たとえば、フィーチャが頻繁に消えるか、マッピングされている環境外へ移動するかどうかを示す）、１以上のキャプチャされた画像における電子デバイスからのフィーチャの距離など）、またはそれらの任意の組み合わせに基づいて識別される。低品質値に関連付けられているそれらの特徴をローカライゼーション・データから識別および除去するよりも前または後に、電子デバイスは、ローカライゼーション・データのサイズを縮小する更なる工程を行い得る。そのような工程の例は、ローカライゼーション・データから非視覚センサ・データを除去すること、ローカライゼーション・データからキーフレームを識別してキーフレームに関連付けられていないデータを除去すること、複数のフィーチャをより小さなサブセットのフィーチャに幾何学的に圧縮することなどを含む。電子デバイスはそれによって、ローカライゼーション・データのサイズを実質的に縮小し、ローカライゼーション・データによってサポートされるマッピング工程の効率性を改善することができる。
【０００８】
図１は、本開示の少なくとも一実施形態に係る、画像および非視覚センサ・データを用いて位置情報機能（たとえば、ＳＬＡＭ、ＶＲ、またはＡＲ）をサポートするよう構成されている電子デバイス１００を示す。電子デバイス１００は、ユーザ携帯型のモバイル・デバイス（たとえば、タブレット・コンピュータ、コンピュータ使用可能の携帯電話（たとえば、「スマートフォン」）、ノート型パソコン、携帯情報端末（ＰＤＡ）、ゲーム機のリモコン、テレビのリモコンなど）を含み得る。他の実施形態において、電子デバイス１００は、他のタイプのモバイル・デバイス（たとえば、自動車、遠隔操作型ドローン、また他の機上装置など）を含み得る。説明を容易にするために、電子デバイス１００は本明細書においてモバイル・デバイス（たとえば、タブレット・コンピュータまたはスマートフォン）の例示的文脈内で一般的に説明される。しかしながら、電子デバイス１００はこれらの例示的実施形態に限定されない。
【０００９】
図示される例において、電子デバイス１００は、他の表面１０６とは反対の表面１０４を有するハウジング１０２を備える。例において、図示される例示的な薄型長方形ブロックのフォーム・ファクタにおいて、表面１０４および１０６は略並行であり、ハウジング１０２は表面１０４および１０６の間において４つの側面（上、下、左、および右）をさらに含む。ハウジング１０２は、多くの他のフォーム・ファクタにおいて実装され得る。表面１０４および１０６は非並行配向を有し得る。図示されるタブレットの実施形態について、電子デバイス１００は、ユーザ１１０に対して視覚情報を提供するための表面１０６に配置されるディスプレイ１０８を備える。したがって、容易に参照できるように、ユーザ１１０に対する電子デバイス１００の本例示的配向の反射として、表面１０６は本明細書において「前向き表面」と称され、表面１０４は本明細書において「ユーザ向き表面」と称される。ただし、これらの表面の配向は、これらの相関的な指定に限定されない。
【００１０】
電子デバイス１００は、電子デバイス１００のローカル環境１１２に関する情報を取得するための複数のセンサを備える。電子デバイス１００は、前向き表面１０６に配置される撮像センサ１１４ならびに１１６と深度センサ１２０、および、ユーザ向き表面１０４に配置される撮像センサ１１８を介して、ローカル環境１１２の視覚情報（視像）を取得する。一実施形態において、撮像センサ１１４は、表面１０６の方を向くローカル環境１１２のより広い画角を提供するための魚眼レンズまたは他の広角レンズを有する広角撮像センサとして実装される。撮像センサ１１６は、表面１０６の方を向くローカル環境１１２のより狭い画角を提供するための典型的な画角レンズを有する狭角撮像センサとして実装される。したがって、撮像センサ１１４および撮像センサ１１６は、それぞれ本明細書において、「広角撮像センサ１１４」および「狭角撮像センサ１１６」とも称される。以下でより詳細に説明されるように、広角撮像センサ１１４と狭角撮像センサ１１６とは、前向き表面１０６に配置および配向されることによって、電子デバイス１００からの規定の距離において始まるそれらの視野が重複する。それにより、画像分析を介して重複する視野の領域に配置されるローカル環境１１２内のオブジェクトの深度感知を行うことが可能になる。撮像センサ１１８は、表面１０４の方を向くローカル環境１１２の画像データをキャプチャするために用いられる。さらに、いくつかの実施形態において、撮像センサ１１８は、頭部１２２の動きのトラッキングまたは顔認識用に構成される。これによって、ディスプレイ１０８を介して提示される視像の視点を調整するために用いられ得るヘッド・トラッキング情報を提供する。
【００１１】
深度センサ１２０は、一実施形態において、変調光プロジェクタ１１９を用いて前向き表面１０６からの変調光パターンをローカル環境内に投影し、撮像センサ１１４および１１６の一方または両方を用いて、ローカル環境１１２内のオブジェクトから反射される際の変調光パターンの反射をキャプチャする。これらの変調光パターンは、空間的変調光パターンまたは一時的変調光パターンのどちらであってもよい。変調光パターンのキャプチャされた反射は、本明細書において「深度視像」と称される。深度センサ１２０はその後、深度視像の分析に基づいて、オブジェクトの深度、すなわち、電子デバイス１００からのオブジェクトの距離を算出し得る。結果的に深度センサ１２０から得られた深度データは、撮像センサ１１４および１１６によってキャプチャされた画像データの画像分析（たとえば、立体分析）から得られる深度情報を較正、もしそうでない場合は、拡張する。それに代えて、画像分析から得られた深度情報の代わりに、深度センサ１２０からの深度データが用いられ得る。たとえば、多視点分析は典型的には、明るい照明条件およびオブジェクトが比較的遠い際に、より適している。一方で、変調光に基づく深度感知は、より暗い照明条件または観察されるオブジェクトが比較的近い（たとえば、４〜５メートル以内である）際に、より適している。したがって、電子デバイス１００は、オブジェクトが屋外にあるとき、もしそうでない場合は、比較的良い照明条件にあることを感知すると、電子デバイス１００は多視点分析を用いることを選択し、オブジェクト進度を判定し得る。一方で、電子デバイス１００は、オブジェクトが屋内にあるとき、もしそうでない場合は、比較的悪い照明条件にあることを感知すると、電子デバイス１００は深度センサ１２０を介して変調光に基づく深度感知を使用することに切り替え得る。
【００１２】
電子デバイス１００はさらに、姿勢検出のための非視覚姿勢情報に依拠し得る。この非視覚姿勢情報は、１以上の非視覚センサ（図１に示されない）（たとえば、１以上のジャイロスコープ、磁力計、および加速度計を含む慣性計測装置（ＩＭＵ））を介して電子デバイス１００によって取得される。少なくとも一実施形態において、ＩＭＵは、電子デバイス１００の基準系のＸ軸、Ｙ軸、およびＺ軸と称される並進軸と、電子デバイス１００の基準系のロール軸、ピッチ軸、およびヨー軸と称される回転軸とを含む複数の運動軸に沿って姿勢情報を生成するために活用される。非視覚情報は、電子デバイス１００の位置を識別するために用いられる定常光センサならびに位置センサ（たとえば、ＧＰＳ（登録商標）センサ）または他のセンサ（たとえば、１以上の無線通信、セル無線）をさらに含み得る。
【００１３】
電子デバイス１００は動作中、画像センサ・データと非視覚センサ・データとを用いて、電子デバイス１００の姿勢を推定する。少なくとも一実施形態において、電子デバイス１００はリセット後、地理位置情報データ、他の非視覚センサ・データ、以下に詳述される視覚データ、またはそれらの組み合わせに基づいて、初期姿勢を判定する。電子デバイス１００の姿勢が変化すると、非視覚センサは、比較的高い割合で、デバイス姿勢の変化を反映する非視覚姿勢情報を生成する。同時に、視覚センサは、デバイスの姿勢変化も反映する画像をキャプチャする。この非視覚および視覚姿勢情報に基づいて、電子デバイス１００は初期姿勢を更新して、デバイスの現在の姿勢を反映される。
【００１４】
電子デバイス１００は、１以上の撮像センサ１１４、１１６、および１１８によってキャプチャされる画像データにおける空間的フィーチャの検出に基づいて、視覚姿勢情報を生成する。たとえば、図示される図１において、ローカル環境１１２は、３つの隅１２４、１２６、および１２８と、幅木１３０と、電気コンセント１３２とを有するオフィス・ビルの廊下を含む。ユーザ１１０は、電子デバイス１００の配置および配向を行うことによって、前向き撮像センサ１１４と１１６とがそれぞれ、廊下のこれらの空間的フィーチャを含む広角撮像センサ画像データ１３４と狭角撮像センサ画像データ１３６とをキャプチャする。この例において、深度センサ１２０はさらに、電子デバイス１００の現在の姿勢に対するこれらの空間的フィーチャの相対距離を反映する深度データ１３８をキャプチャする。さらに、ユーザ向き撮像センサ１１８は、ユーザ１１０の頭部１２２の現在の姿勢のヘッド・トラッキング・データ１４０を表す画像データをキャプチャする。また、非視覚センサ・データ１４２（たとえば、ＩＭＵからの示度）が、現在の姿勢である電子デバイス１００によって収集される。
【００１５】
この入力データから、電子デバイス１００は、外部ソースからの明示的絶対的ローカライゼーション情報がない状態での相対的姿勢の推定を判定することができる。たとえば、電子デバイス１００は、広角撮像センサ画像データ１３４と狭角撮像センサ画像データ１３６とを分析することによって、電子デバイス１００と隅１２４、１２６、および１２８との間の距離を判定することができる。それに代えて、深度センサ１２０から取得される深度データ１３８は、空間的フィーチャの距離を判定するために用いられる。これらの距離から、電子デバイス１００は、ローカル環境１１２によって表されるオフィス内の相対位置を三角測量、もしそうでない場合は、推量することができる。別の例として、電子デバイス１００は、画像データ１３４および１３６のキャプチャされた画像の１セット内に存在する空間的フィーチャを識別し、これらの空間的フィーチャに対する初期距離を判定し、その後、後続のキャプチャされた視像のこれらの空間的フィーチャにおける位置の変化と距離をトラッキングすることによって、自由な基準系における電子デバイス１００の姿勢の変化を判定することができる。この方法において、一定の非視覚センサ・データ（たとえば、ジャイロ・データと加速度データ）は、１つの画像において観察される空間的フィーチャを、後続の画像において観察される空間的フィーチャに関連付けるために用いられる。
【００１６】
少なくとも一実施形態において、電子デバイス１００は、画像データと非視覚データとを用いて、キャプチャされた視像において識別される空間的フィーチャのフィーチャ記述子を生成する。生成されたフィーチャ記述子はそれぞれ、１以上の識別された空間的フィーチャの配向、重力方向、尺度、および他の態様を記述する。以前に識別された空間的フィーチャとそれらに対応する姿勢とをそれぞれ識別する生成されたフィーチャ記述子（記述の目的として「既知フィーチャ記述子」と称される）は、記憶された記述子のセットと比較される。少なくとも一実施形態において、各既知フィーチャ記述子は以前に生成された記述子であって、その姿勢は、電子デバイス１００または別の電子デバイスのいずれかによって明確に構築される。既知フィーチャ記述子は、電子デバイス１００において、リモート・サーバもしくは他のストレージ・デバイスにおいて、または、それらの組み合わせにおいて、記憶される。したがって、生成されたフィーチャ記述子の比較は、電子デバイス１００において、リモート・サーバもしくは他のストレージ・デバイスにおいて、または、それらの組み合わせにおいて、行われる。
【００１７】
少なくとも一実施形態において、生成されたフィーチャ記述子の各態様（たとえば、対応するフィーチャの配向、対応するフィーチャの尺度など）を既知フィーチャ記述子の対応する態様と比較し、比較されたフィーチャ間での変動を示すエラー値を判定することによって、生成されたフィーチャ記述子は既知フィーチャ記述子と比較される。したがって、たとえば、生成されたフィーチャ記述子におけるフィーチャの配向がベクトルＡによって識別され、既知フィーチャ記述子におけるフィーチャの配向がベクトルＢによって識別される場合、電子デバイス１００は、ベクトルＡおよびＢの間における差異を算出することによって、フィーチャ記述子の配向態様のエラー値を識別することができる。エラー値が特定の統計手法（たとえば、最小二乗法）に従って組み合わせられることによって、比較されている各既知フィーチャ記述子の組み合わせられたエラー値を識別することができる。そして、一致している既知フィーチャ記述子は、組み合わされた最小エラー値を有する既知フィーチャ記述子として識別される。
【００１８】
各既知フィーチャ記述子は、対応する空間的フィーチャの姿勢（たとえば、配向または視点）を識別する１以上のフィールドを含む。したがって、既知フィーチャ記述子は、特定の解像度（たとえば、１ｃｍ）内の特定の座標系（たとえば、地球を表す地理的座標系）内における空間的フィーチャの位置、空間的フィーチャの視点の配向、フィーチャからの視点の距離などを示す姿勢情報を含み得る。生成されたフィーチャ記述子は、１以上の一致した既知フィーチャ記述子を識別するために、既知フィーチャ記述子と比較される。一致した既知フィーチャ記述子は、その後、電子デバイス１００の姿勢の識別と電子デバイス１００のローカル環境のマッピングとの両方を行うために用いられるローカライゼーション・データとして非視覚姿勢情報とともに記憶される。
【００１９】
いくつかの状況において、一致処理は、対応する生成されたフィーチャ記述子と一致する複数の既知フィーチャ記述子を識別する。それによって、以前に識別された電子デバイス１００のローカル環境における複数のフィーチャが存在することを示す。一致している既知フィーチャ記述子の対応する姿勢は変動する可能性があり、電子デバイス１００が、一致している既知フィーチャ記述子によって示される姿勢のうち特定の１つにはないことを示す。したがって、電子デバイス１００は、その推定された姿勢を、従来の挿入手法を用いて一致している既知フィーチャ記述子によって示される姿勢との間に挿入することによって、改良し得る。
【００２０】
少なくとも一実施形態において、電子デバイス１００は、データ内で識別された反映されたフィーチャの品質に基づいて、ローカライゼーション・データを削減する。本明細書において詳述される通り、電子デバイス１００は、様々な因子（複数の画像でのフィーチャの観察数、互いに異なる画像におけるフィーチャの一貫性、１以上の関連付けられている画像がキャプチャされた際の電子デバイス１００からのフィーチャの距離など、または、それらの組み合わせを含む）に基づいて各識別されたフィーチャの品質値を生成することができる。電子デバイス１００はさらに、品質値閾値（ＱＶＴ）を識別する。少なくとも一実施形態において、ＱＶＴは、電子デバイス１００のユーザ、設計者、または製造業者によって供給される固定された記憶値である。別の実施形態において、ＱＶＴは、フィーチャの生成された品質値の組み合わせから派生する。たとえば、ＱＶＴは、品質値の平均値、品質値の中央値、または、ＱＶＴを超える品質値の数に基づく値であり得る。電子デバイス１００は、ＱＶＴ未満の品質値を有するフィーチャに関連付けられているデータを除去することによって、ローカライゼーション・データを削減する。これによって、それらのより高い品質のフィーチャ、すなわち、ローカル環境の効果的かつ正確なマッピングをサポートする可能性がより高いそれらのフィーチャは、ローカライゼーション・データのサイズを縮小しつつ保存されることが確実になる。
【００２１】
フィーチャ特徴と関連付けられている品質値とに基づいてローカライゼーション・データを削減することに加えて、電子デバイス１００は、たとえば、ローカライゼーション・データから任意の非視覚センサ情報を除去することによって、ローカライゼーション・データを削減することができる。これは、そのような情報がローカル環境のマッピングをサポートする可能性がないためである。さらに、電子デバイス１００は、キーフレームを識別することによって、および、キーフレーム以外のフレームに関連付けられているデータを除去することによって、ローカライゼーション・データを削減することができる。たとえば、電子デバイス１００は、選択されたキャプチャされた画像をキーフレームとして識別し得る。キーフレーム画像は、画像の識別された品質、画像から識別されたフィーチャの数、画像が撮られた時間、画像が撮られた測定照明状況などに基づいて選択される。電子デバイス１００はその後、それらのフィーチャと、キーフレーム画像ではない画像から識別された、関連付けられているフィーチャ記述子とを識別し、識別されたフィーチャに対応するデータ（フィーチャ記述子を含む）データを除去することができる。
【００２２】
さらに、少なくとも一実施形態において、電子デバイス１００は、全ての個々の点ではなく、幾何学的形状の個々の点に関連付けられているフィーチャのセットについてのデータを、その幾何学的形状を識別する記述子のより小さいサブセットに幾何学的に圧縮することによって、ローカライゼーション・データを削減することができる。たとえば、電子デバイス１００は、同一平面（たとえば、テーブルの上面）における異なる点をそれぞれ示すフィーチャ記述子のセットを識別し、そのフィーチャ記述子のセットを、その平面の境界を識別する単一のフィーチャ記述子に圧縮することができる。それによって、より少ないデータで、環境の同一フィーチャを表す。
【００２３】
ローカライゼーション・データを削減した後、電子デバイス１００は、そのローカライゼーション・データを用いてローカル環境をマッピングすることができる。たとえば、電子デバイス１００は、ローカライゼーション・データを用いて、電子デバイス１００の基準系においてローカライゼーション・データ内に含まれる各フィーチャの位置を示すマップ・ファイルを生成することができる。マップ・ファイルは、任意の様々な位置情報サービスをサポートするために用いられる。たとえば、一実施形態において、マップ・ファイルは、電子デバイス１００のローカル環境を表す仮想現実環境またはその一部を生成するために用いられる。
【００２４】
図２は、本開示の少なくとも一実施形態に係る、データから識別されるフィーチャの特徴に基づいてローカライゼーション・データを削減する電子デバイス１００の一部のブロック図である。図示される箇所は、フィーチャ識別モジュール２２５と、データ削減部２３２と、環境マッピング部２３５とを備える。これらのモジュールはそれぞれ、本明細書において記載される動作を実行するよう構成されているハードウェア、ソフトウェア、またはそれらの組み合わせを表す。特に、フィーチャ識別モジュール２２５は、撮像センサ１１４、１１６および１１８と非視覚センサ・データ１４２とによってキャプチャされる画像を表す視像２２０を受信するよう構成される。この受信されたデータに基づいて、フィーチャ識別モジュール２２５は、フィーチャ記述子を生成することによって、および、そのフィーチャ識別を、図１を参照して上述された既知フィーチャ記述子と比較することによって、視像２２０内のフィーチャを識別する。フィーチャ識別モジュールは、フィーチャ記述子を、任意の関連付けられている非視覚データとともに、ローカライゼーション・データ２３０として記憶する。少なくとも一実施形態において、ローカライゼーション・データ２３０は、電子デバイス１００によって用いられ、ローカル環境における異なる位置と配向とを通じて動かされた際の電子デバイス１００の１以上の姿勢を識別する。これらの識別された姿勢は、ローカル環境の以前に生成および記憶されたマップ情報に併せて用いられ、電子デバイス１００の位置情報サービスをサポートまたは向上する。
【００２５】
データ削減部２３２は、ローカライゼーション・データ２３０内に含まれるフィーチャの特徴に基づいて、ローカライゼーション・データ２３０を削減するよう構成されている。少なくとも一実施形態において、データ削減部２３２は、図４を参照して以下で詳述されるように、対応するフィーチャ記述子内に示されるフィーチャの１以上の特徴に基づいて各フィーチャの品質値を識別することによって、データを削減する。データ削減部２３２はその後、フィーチャのＱＶＴを識別し、ローカライゼーション・データ２３０から、ＱＶＴ未満の品質値を有するフィーチャのフィーチャ記述子を除去する。データ削減部２３２はその後さらに、非視覚センサ・データを除去することによって、および、残りのフィーチャ記述子に対して幾何学的圧縮を行うことによって、ローカライゼーション・データ２３０を削減する。データ削減部２３２は、削減されたローカライゼーション・データを、環境マッピング部２３５に提供する。
【００２６】
環境マッピング部２３５は、削減されたローカライゼーション・データに基づいて、電子デバイス１００のローカル環境のマップを生成または修正するよう構成されている。すなわち、環境マッピング部２３５は、削減されたローカライゼーション・データ内のフィーチャ記述子を分析して、電子デバイス１００の基準系におけるフィーチャの位置を識別する。たとえば、各フィーチャ記述子は、電子デバイス１００から対応するフィーチャの関連位置を示す位置データを含み得る。環境マッピング部２３５は、様々なフィーチャの関連位置を調整することで基準系における各フィーチャの位置を識別することができ、これらの位置を１以上のマップ・ファイルに記憶することができる。マップ・ファイルは、電子デバイス１００の位置情報サービスによって用いられ、たとえば、ローカル環境の仮想現実表示を生成することができる。
【００２７】
図３は、本開示の少なくとも一実施形態に係る図２のデータ削減部２３２のブロック図である。図示される例において、データ削減部２３２は、非視覚データ・フィルタ３４０と、キーフレーム識別子３４２と、フィーチャ品質分析モジュール（ＦＱＭ）３４３と、幾何学的圧縮モジュール３４４と、を備える。非視覚データ・フィルタ３４０は、一般的に、ローカライゼーション・データ２３０から識別および除去を行うよう構成されている。たとえば、少なくとも一実施形態において、非視覚データ・フィルタは、データ識別子値に基づいて、非視覚データのフォーマットに基づいて、非視覚データがどこに記憶されているかに基づいて、あるいは他の標識に基づいて、またはそれらの組み合わせに基づいて、ローカライゼーション・データ２３０において非視覚データを識別し、その後、識別された非視覚データをローカライゼーション・データ２３０から除去（たとえば、削除）する。
【００２８】
非視覚データがフィルタリングされたあと、キーフレーム識別子３４２はローカライゼーション・データ２３０のキーフレームを識別する。たとえば、ローカライゼーション・データの各フィーチャ記述子は、フィーチャが識別された１以上の画像を識別する情報を含み得る。ローカライゼーション・データ２３０はさらに、各画像の品質を示す情報（たとえば、照明状況）を含み得る。この情報に基づいて、キーフレーム識別子３４２は、環境をマッピングするために用いられるキーフレームとして、選択される画像を識別することができる。たとえば、少なくとも一実施形態において、キーフレーム識別子３４２は、フィーチャの閾値数よりも多く関連付けられているそれらの画像を、キーフレームとして識別する。キーフレーム識別後、キーフレーム識別子３４２は、どのキーフレームとも対応しないフィーチャの任意のフィーチャ記述子および関連付けられているデータを、ローカライゼーション・データ２３０から除去することができる。それによって、ローカライゼーション・データ２３０を削減する。
【００２９】
ＦＱＭ３４３は、残りのフィーチャ記述子を分析して、識別子内に示されるフィーチャ特徴に基づいて各フィーチャの品質値を識別する。たとえば、少なくとも一実施形態において、フィーチャ記述子は、フィーチャ記述子の数（たとえば、互いに異なる画像におけるフィーチャの観察数、互いに異なる画像におけるフィーチャの位置の変動性、フィーチャの動的スコアなど）を示す。ＦＱＭ３４３は、たとえば、各特徴の値を加えることによって、品質値を生成することができ、該品質値は全特徴の合計と等しい。少なくとも一実施形態において、品質値は異なる特徴の値の加重合計であり、各特徴の重量は動的またはヒューリスティック的にＦＱＭ３４３によって識別される。品質値を識別するこれらの方法は例に過ぎないことと、他の特徴および式が各特徴の品質値を識別するのに活用されることと、が理解されるであろう。
【００３０】
ＦＱＭ３４３は、固定閾値、所望の性能を得るために電子デバイス１００のユーザによって設定された閾値、ローカライゼーション・データ２３０自体から識別された動的閾値などに基づいて、ローカライゼーション・データ２３０のＱＶＴを識別する。ＦＱＭ３４３は、各特徴の品質値をＱＶＴと比較して、ＱＶＴ未満の品質値を有するそれらのフィーチャ記述子をローカライゼーション・データ２３０から除去する。
【００３１】
幾何学的圧縮モジュール３４４は、ローカライゼーション・データ２３０の残りの記述子を識別して、同一の幾何学的形状（たとえば、線、平面、多角形、三次元形状など）に関連付けられている個々のフィーチャのセットを識別する。図５の例に関して以下に記載されるように、幾何学的圧縮モジュール３４４は、個々のフィーチャのフィーチャ記述子を、幾何学的形状を記述するより少数の記述子（たとえば、１つの記述子）に置き換える。これによって、ローカライゼーション・データ２３０によって記憶される識別子の数が減り、環境マッピング部２３５による分析の準備を行うためにデータがさらに削減される。
【００３２】
図４は、ローカライゼーション・データ２３０において記憶されるフィーチャ記述子４５０を示す。フィーチャ記述子４５０は、フィールド４５１〜４５８を含み、各フィールドは対応するフィーチャのフィーチャ特徴を示す。これらのフィーチャ特徴はＦＱＭ３４３によって活用され、対応するフィーチャの品質値を識別する。たとえば、フィーチャ名称フィールド４５１は、フィーチャの名称または他の識別子を示す。該名称または該他の識別子は、該フィーチャと他のフィーチャとを区別するために用いられる。フィーチャ・タイプ・フィールド４５２は、フィーチャのタイプ（たとえば、オブジェクトの形状のタイプ）を示す。したがって、フィーチャ・タイプ・フィールド４５２は、対応するフィーチャが点、隅、平面、多角形などであることを示し得る。
【００３３】
フィーチャ位置フィールド４５３は、対応するフィーチャの位置データ（たとえば、電子デバイス１００の姿勢に対しての基準系におけるフィーチャの位置を示す座標データ）を示す。少なくとも一実施形態において、ＦＱＭ３４３は、フィーチャ位置フィールド４５３内の情報を用いて、フィーチャの品質値を修正することができる。たとえば、いくつかの状況において、電子デバイス１００は、特定の位置または位置の範囲におけるフィーチャ（たとえば、電子デバイス１００の視界の端の近く）がより不確かに識別されることを判定し得る。したがって、ＦＱＭ３４３は、そのような位置における、または、そのような位置範囲内におけるフィーチャの品質値を下げることができる。
【００３４】
フィーチャ観察数フィールド４５４は、フィーチャが識別された互いに異なる画像の数を示す。たとえば、電子デバイス１００は、デバイスが異なる姿勢を通じて動かされる際の所与のフィーチャの複数の画像をキャプチャし得る。フィーチャ識別モジュール２２５（図２）がフィーチャのフィーチャ記述子を生成すると、フィーチャ識別モジュール２２５は、フィーチャを含む互いに異なる画像の数と、フィーチャの画像が撮られた互いに異なる角度の数とを識別することができる。少なくとも一実施形態において、より多数の画像数、または、フィーチャが観察されたより多数の異なる角度によって、フィーチャ識別モジュール２２５によってフィーチャが正しく識別された可能性が高められる。したがって、フィーチャ観察数フィールド４５４の値が上がると、ＦＱＭ３４３は対応するフィーチャの品質値を上げる。
【００３５】
フィーチャ距離フィールド４５５は、フィーチャが１以上の画像においてキャプチャされた際の電子デバイス１００からの対応するフィーチャの距離を示す。フィーチャが複数の画像においてキャプチャされた場合、フィーチャ距離フィールド４５５は、対応する距離の平均値、対応する距離の最大値、対応する距離の最小値、もしくは対応する距離の他の選択または組み合わせであり得る。いくつかの状況において、フィーチャに対してのより長い距離は、フィーチャのより不確かな識別に対応する。したがって、フィーチャ距離フィールド４５５の値がより大きくなると、ＦＱＭ３４３は対応するフィーチャの品質値を上げる。
【００３６】
フィーチャ位置変動性フィールド４５６は、フィーチャが識別された互いに異なる画像での対応するフィーチャの位置の変動量を示す値を記憶する。たとえば、電子デバイス１００は、デバイスが異なる姿勢を通じて動かされる際の所与のフィーチャの複数の画像をキャプチャし得る。フィーチャ識別モジュール２２５（図２）がフィーチャのフィーチャ記述子を生成すると、フィーチャ識別モジュール２２５は、各画像について、基準系におけるフィーチャの位置を識別し、その後、識別された位置の間における変動性を識別することができる。たとえば、その変動性は、識別された位置の標準偏差を識別することによって、示され得る。少なくとも一実施形態において、変動性が高ければ高いほど、対応するフィーチャの特徴をフィーチャ記述子が正しく識別する可能性が低くなる。したがって、フィーチャ位置変動性フィールド４５６の値が上がると、ＦＱＭ３４３は対応するフィーチャの品質値を下げる。
【００３７】
フィーチャ動的スコア・フィールド４５７は、対応するフィーチャの動的特徴を示す。動的特徴は、フィーチャがどれほどの期間において電子デバイス１００に対する所与の位置にあり続けることが見込まれるかを示すものである。フィーチャ動的スコア・フィールド４５７のより高い値は、対応するフィーチャが高度に動的であるため、位置を変更する可能性がより高いことを示す。高度に動的であるフィーチャの例は、人物、動物、移動中の車両などに対応する、または関連付けられているフィーチャを含み得る。少なくとも一実施形態において、電子デバイス１００は、複数の因子（複数の画像でのフィーチャの位置の変化、フィーチャの既知フィーチャ記述子内に提供される情報などを識別することを含む）に基づいてフィーチャの動的スコアを識別することができる。少なくとも一実施形態において、動的スコア・フィールドの値が高ければ高いほど、フィーチャ記述子がローカル環境をマッピングするのに有用である可能性がより低くなる。これは、ローカル環境のマップが生成される際、フィーチャが位置を変更しているか、ローカル環境から退出している可能性がより高いためである。したがって、フィーチャ位置変動性フィールド４５６の値が上がると、ＦＱＭ３４３は対応するフィーチャの品質値を下げる。
【００３８】
フィーチャ・シーン変動性フィールド４５８は、フィーチャ記述子４５０に対応するフィーチャと同一の画像内で識別される複数のフィーチャの変動性を示す。少なくとも一実施形態において、電子デバイス１００は、それぞれキャプチャされた画像から識別される互いに異なるフィーチャの数を識別し、所与のフィーチャが識別される画像に関してこの数の変動を判定することによって、シーン変動性を識別することができる。少なくとも一実施形態において、フィーチャ・シーン変動性フィールド４５８の値が高ければ高いほど、フィーチャ記述子がローカル環境をマッピングするのに有用である可能性がより低くなる。これは、該フィーチャが急速に変動する環境の一部である可能性がより高いためである。したがって、フィーチャ位置変動性フィールド４５６の値が上がると、ＦＱＭ３４３は対応するフィーチャの品質値を下げる。
【００３９】
図５は、本開示の少なくとも一実施形態に係る、図３の幾何学的圧縮モジュール３４４の例示的動作を示す図である。図示される例において、フィーチャ５０１、５０２、５０３、５０４、および５０６は、電子デバイス１００のローカル環境における同一線上に並置されている。したがって、たとえば、フィーチャ５０１〜５０６は、ローカル環境内のテーブル、ドア、または他のオブジェクトの端を集合的に示し得る。電子デバイス１００は、ローカル環境を通じて、またはローカル環境の周囲において動かされると、フィーチャ５０１〜５０６を含む視像をキャプチャする。この視像に基づいて、フィーチャ識別モジュール２２５はフィーチャ記述子５１１、５１２、５２３、５１４、５１６を生成する。フィーチャ記述子はそれぞれ、別の対応するフィーチャを記述する（すなわち、記述子５１１はフィーチャ５０１を記述する、記述子５１２はフィーチャ５０２を記述する、など）。図示される例において、フィーチャ記述子５０１〜５０６はそれぞれ、電子デバイス１００の基準系における対応するフィーチャの座標を含む。幾何学的圧縮モジュール３４４は、ローカライゼーション・データ２３０に記憶されるものとして、フィーチャ記述子５０１〜５０６を分析する。そして、幾何学的圧縮モジュール３４４は、各フィーチャの座標と、各フィーチャが点フィーチャであるという示唆とに基づいて、フィーチャ記述子５０１〜５０６が１つの線上に沿ったセットの点を表すことを判定する。それに応じて、幾何学的圧縮モジュール３４４は、フィーチャ記述子５０１〜５０６を、フィーチャ記述子５０１〜５０６に対応する端点を有する線を記述するフィーチャ記述子５２０に置き換える。幾何学的圧縮モジュール３４４は、したがって、幾何学的形状の異なる態様を集合的に記述する複数のフィーチャ記述子を、該幾何学的形状の単一のフィーチャ記述子に置き換える。少なくとも一実施形態において、該単一のフィーチャ記述子は、メモリ・ストレージの観点からすれば、複数のフィーチャ記述子の全体よりも小さい。したがって、フィーチャ記述子５２０は、フィーチャ記述子５０１〜５０６の全体よりも小さいストレージ・スペースを占める。したがって、フィーチャ記述子５０１および５０６をフィーチャ記述子５２０に置き換えることによって、幾何学的圧縮モジュールはローカライゼーション・データ２３０を削減する。図５が幾何学的圧縮の単なる一例を示していることと、いくつかの実施形態においては幾何学的圧縮モジュールがより複雑な形状（多角形および三次元形状を含む）のフィーチャ記述子を識別および圧縮することが可能であることと、が理解されるであろう。
【００４０】
図６は、本開示の少なくとも一実施形態に係る、電子デバイス１００によって実装される例示的処理システム６００を示す。処理システム６００は、広角撮像センサ１１４と、狭角撮像センサ１１６と、ユーザ向き撮像センサ１１８と、深度センサ１２０とを備える。処理システム６００は、二次元プロセッサ６０２と、アプリケーション・プロセッサ６０４と、表示コントローラ６０６と、非視覚センサのセット６１０と、ユーザ・インターフェース６１２とをさらに備える。
【００４１】
ユーザ・インターフェース６１２は、電子デバイス１００に対してユーザ入力を提供するためにユーザによって操作される１または複数のコンポーネント（たとえば、タッチスクリーン６１４、マウス、キーボード、マイクロフォン６１６、様々なボタンまたはスイッチ、様々な触覚アクチュエータ６１８）を含む。非視覚センサのセット６１０は、電子デバイス１００の非視覚コンテキストまたは状態を提供するために用いられる任意の様々なセンサを含み得る。そのようなセンサの例は、ジャイロスコープ６２０、磁力計６２２、加速度計６２４を有するＩＭＵ６２１と、定常光センサ６２６とを含む。非視覚センサはさらに、様々な無線送受信に基づくセンサ（たとえば、ＧＰＳ受信部６２８、無線ローカル・エリア・ネットワーク（ＷＬＡＮ）インターフェース６３０、セルラ・インターフェース６３２、ピア・トゥ・ピア（Ｐ２Ｐ）無線インターフェース６３４、近距離通信（ＮＦＣ）インターフェース６３６）を含み得る。
【００４２】
電子デバイス１００はさらに、画像処理、位置マッピング、および位置活用処理と併せて用いられる情報またはメタデータを記憶する様々なデータストアに対するアクセスを有する。これらのデータストアは、電子デバイス１００の撮像センサによってキャプチャされる視像から識別される二次元空間的フィーチャのメタデータを記憶するための二次元フィーチャ・データストア６３８と、分析または変調光に基づく深度感知を用いて二次元空間的フィーチャの深度感知から三次元フィーチャのメタデータを記憶するための三次元フィーチャ・データストア６４０と、を含む。二次元および三次元フィーチャ用に記憶されるメタデータは、たとえば、同期目的のタイムスタンプ、空間的フィーチャが識別された画像の画像識別子、使用されたキャプチャ・デバイスの識別子、較正情報などを含み得る。このメタデータはさらに、識別された空間的フィーチャを含む画像と同時期に存在していた非視覚センサ・データ（たとえば、ＧＰＳ、Ｗｉ−Ｆｉ（登録商標）、または他の無線情報、時刻情報、気候条件情報（照明に影響を与える）など）を含み得る。データストアはさらに、ＳＬＡＭに基づく情報（たとえば、電子デバイス１００によって既に探索されたローカル環境１１２（図１）の領域に関するマッピング情報）、または、ＡＲ情報（たとえば、ローカル環境１１２内の注目オブジェクトの相対位置のＣＡＤに基づく表示）を記憶するＳＬＡＭ／ＡＲデータストア６４２を含み得る。データストア６３８および６４０はさらに、既知フィーチャ記述子と、電子デバイス１００においてキャプチャされた視像に基づいて生成されるフィーチャ記述子とを記憶する。データストアは電子デバイス１００（たとえば、ハード・ドライブ、ソリッド・ステート・メモリ、または取り外し可能な記憶媒体（図示しない）上にある）に対してローカルであってもよいし、データストアは遠くに位置し、たとえば、電子デバイス１００の１以上の無線インターフェースを介してアクセス可能であってもよく、または、データストアはローカルおよびリモート・データ・ストレージの組み合わせとして実装されてもよい。
【００４３】
図示される実施形態において、処理システム６００は２つのプロセッサを活用する。その２つのプロセッサとは、電子デバイス１００の撮像センサによってキャプチャされる可視光視像と深度センサ視像とから二次元空間的フィーチャを効率的に識別するよう構成されている二次元プロセッサ６０２、および、二次元空間的フィーチャから三次元空間的フィーチャを効率的に識別し、位置情報機能（たとえば、視覚的オドメトリ、または、ＳＬＡＭ機能、ＡＲ機能など）を効率的に提供するよう構成されているアプリケーション・プロセッサ６０４である。しかしながら、他の実施形態において、二次元プロセッサ６０２とアプリケーション・プロセッサ６０４との記載された機能は、単一のプロセッサ内に実装されてもよいし、３つ以上のプロセッサ全体が該記載された機能を実装してもよい。二次元プロセッサ６０２は、たとえば、シングル・コアまたはマルチ・コア・グラフィックス処理装置（ＧＰＵ）として実装され、アプリケーション・プロセッサ６０４は、たとえば、ＧＰＵまたはシングル・コアまたはマルチ・コア中央処理装置（ＣＰＵ）として実装される。
【００４４】
二次元プロセッサ６０２は、１以上の画素行バッファ６４４内の撮像センサによってキャプチャされる画像データを受信するように、広角撮像センサ１１４と、狭角撮像センサ１１６と、ユーザ向き撮像センサ１１８とに連結される。一実施形態において、二次元プロセッサ６０２は、各撮像センサから並行して画像データを受信することができるよう、各撮像センサのインターフェースと画素行バッファ６４４とを含む。別の実施形態において、二次元プロセッサ６０２は単一のインターフェースと画素行バッファ６４４とを含むので、二次元プロセッサ６０２は撮像センサ間で多重送信を行う。
【００４５】
二次元プロセッサ６０２は、撮像センサからキャプチャされた画像データを処理し、画像データ内に存在する二次元空間的フィーチャを識別するよう構成されている。いくつかの実施形態において、二次元プロセッサ６０２は、このタスク用に特化したハードウェア構成を実装する。他の実施形態において、二次元プロセッサ６０２は、二次元空間的フィーチャ検出工程を実装するよう構成されているソフトウェア・プログラムの実行を通じて二次元空間的フィーチャ検出を提供する、より一般的なプロセッサ・アーキテクチャを含む。二次元プロセッサ６０２はさらに、この目的用の特化ハードウェアおよび特化ソフトウェアとの組み合わせを実装し得る。上述された通り、任意の様々な周知の二次元空間的フィーチャ検出または抽出アルゴリズムが、二次元プロセッサ６０２によって実装され得る。二次元プロセッサ６０２は、二次元フィーチャ・データストア６３８に、識別された二次元空間的フィーチャに関連するメタデータと他の情報とを記憶する。
【００４６】
二次元プロセッサ６０２は、一実施形態において、任意の様々な周知のヘッド・トラッキング・アルゴリズムを用いて、ユーザの頭部の現在の姿勢（たとえば、現在位置）をトラッキングするためにユーザ向き撮像センサ１１８によってキャプチャされる視像を分析するよう構成されている。図示される例において、二次元プロセッサ６０２は、ヘッド・トラッキング情報を表示コントローラ６０６に提供し、表示コントローラ６０６は表示される視像を調整して、ユーザの視野内の変化に対して、ユーザ頭部の姿勢の変化に反映されたものとして反応するよう構成されている。別の実施形態において、二次元プロセッサ６０２は、ヘッド・トラッキング情報をアプリケーション・プロセッサ６０４に提供し、アプリケーション・プロセッサ６０４は表示データが表示コントローラ６０６に提供される前に、更新された視野を反映するために表示データを修正する。
【００４７】
二次元プロセッサ６０２はさらに、ローカル環境１１２のキャプチャされた視像内で識別される空間的フィーチャの深度データを判定する際に、使用中の変調光プロジェクタ１１９を操作するコントローラとしても作動する。ある状況（たとえば、比較的明るい設定（定常光センサ６２６を用いて感知される））において、二次元プロセッサ６０２は、広角撮像センサ１１４と狭角撮像センサ１１６とによって同時にキャプチャされた視像の画像分析を用いて、キャプチャされた視像内に存在する空間的フィーチャの深度データを判定し得る。他の状況（比較的暗い照明状況）において、二次元プロセッサ６０２は、深度センサ１２０（図１）の使用に切り替えて、この深度データを判定し得る。他の実施形態において、処理システム６００は、変調光プロジェクタ１１９の動作を制御するための、二次元プロセッサ６０２とは別体のコントローラ（図示せず）を実装する。
【００４８】
上述された通り、深度センサ１２０は、ローカル環境内への変調光プロジェクタ１１９による変調光パターンの投影と、そこからの１以上の撮像センサによる変調光パターンの反映のキャプチャとに依拠する。したがって、二次元プロセッサ６０２は、前向き撮像センサ１１４および１１６の一方または両方を用いて、反映された変調光パターンに表される対応する空間的フィーチャの深度を判定するために、変調光パターンの投影の反映をキャプチャしてもよいし、反映された変調光パターンの結果として生じる視像を処理してもよい。深度示度を対応する二次元空間的フィーチャに一致させるために、二次元プロセッサ６０２は、深度視像に対して二次元空間的フィーチャ分析を実行し、二次元空間的フィーチャとその相対深度とを判定することができる、その後、二次元空間的フィーチャを、反映された変調光画像がキャプチャされたのと同一の時間において、または、その時間近辺でキャプチャされた可視光視像内で識別された対応する空間的フィーチャに一致させるよう試みることができる。別の実施形態において、二次元プロセッサ６０２は、可視光画像をキャプチャすることができ、その後すぐに、変調光パターンを投影して反映された変調光視像をキャプチャするために、変調光プロジェクタ１１９を制御することができる。二次元プロセッサ６０２はその後、反映された変調光画像からの可視光画像の深度マップを発展させることができ、可視光画像と反映された変調光画像との同時期のキャプチャによって同一座標における同一空間的フィーチャを伴う同一シーンを効果的に表す。
【００４９】
アプリケーション・プロセッサ６０４は、フィーチャ識別モジュール２２５（図２）を実装し、二次元フィーチャ・データストア６３８内に表される二次元的空間的フィーチャを用いて、および、非視覚センサのセット６１０からの非視覚センサ情報を用いて、キャプチャされた視像に表される空間的フィーチャを識別するよう構成されている。二次元プロセッサ６０２と同様に、アプリケーション・プロセッサ６０４は、特化ハードウェアを通じて、この工程用に構成されたソフトウェアの実行を通じて、または特化ハードウェア構成およびソフトウェアの組み合わせによって、この工程を行うよう構成され得る。識別された三次元空間的フィーチャのメタデータおよび他の情報は、三次元フィーチャ・データストア６４０に記憶される。少なくとも一実施形態において、アプリケーション・プロセッサ６０４は、データ削減部２３２（図２）を実装する（たとえば、実行時に、データ削減部２３２の動作を行うようアプリケーション・プロセッサ６０４を操作する命令を実行する）。したがって、アプリケーション・プロセッサ６０４は、識別されたフィーチャの特徴を識別し、上述のこれらの特徴に基づいてローカライゼーション・データ２３０を削減することができる。
【００５０】
アプリケーション・プロセッサ６０４はさらに、三次元フィーチャ・データストア６４０内に表される三次元空間的フィーチャを用いて、および、非視覚センサ・データによって表される電子デバイス１００の現在のコンテキストを用いて、ＳＬＡＭ、ＡＲ、ＶＲ、および他の位置情報機能を提供するよう構成されている。現在のコンテキストは、たとえば、ユーザ・インターフェース６１２から、または、ユーザ対話の分析を介して取得される明示的または暗示的ユーザ入力を含み得る。同様に、アプリケーション・プロセッサ６０４は、電子デバイス１００の位置／配向の履歴と、それらの位置／配向内で観察される空間的フィーチャの履歴とを用いて、削減されたローカライゼーション・データに基づいてローカル環境１１２のマップを生成することができる。
【００５１】
アプリケーション・プロセッサ６０４によって提供される位置判定機能はさらに、アプリケーション・プロセッサ６０４によって判定される現在の姿勢に基づいてディスプレイ１０８のグラフィカル・オーバーレイとして提供されるグラフィカル情報をＳＬＡＭ／ＡＲデータストア６４２から識別、および該情報にＳＬＡＭ／ＡＲデータストア６４２からアクセスすることを含むＡＲ関連またはＶＲ関連の機能を含み得る。このグラフィカル・オーバーレイは、表示コントローラ６０６を介するディスプレイ１０８における表示の現在の姿勢である撮像センサによってキャプチャされる視像に関連付けられて提供される。表示コントローラ６０６は、ディスプレイ１０８（図１）を制御するよう動作することで、アプリケーション・プロセッサ６０４から受信される表示データによって表される視像を表示する。さらに、いくつかの実施形態において、表示コントローラ６０６は、二次元プロセッサ６０２からヘッド・トラッキング情報を受信して、受信されたヘッド・トラッキング情報に表されるユーザの頭部の位置または目の位置に基づいて、表示されている視像の視野を調整することができる。
【００５２】
図７は、本開示の少なくとも一実施形態に係る、電子デバイス１００においてローカライゼーションを削減する方法７００のフロー図を示す。方法７００は、ブロック７０２において開始される。ブロック７０２において、電子デバイス１００は、ローカル環境内での異なる姿勢を通じてユーザによって動かされる際の視像と非視覚データとをキャプチャする。ブロック７０４において、フィーチャ識別モジュール２２５は、視像と非視覚データとに基づいてローカル環境のフィーチャを識別し、ローカライゼーション・データ２３０において識別されたフィーチャのフィーチャ記述子を記憶する。ブロック７０６において、電子デバイス１００はローカライゼーション・データ２３０を用いて、ローカル環境内における電子デバイス１００の１以上の姿勢を識別する。識別された姿勢は、電子デバイス１００の位置情報機能をサポートするために用いられる。たとえば、識別された姿勢は、電子デバイス１００によって実行される仮想現実または拡張現実アプリケーション内における電子デバイス１００のユーザを配向させるために用いられる。
【００５３】
ブロック７０８において、データ削減部２３２は、電子デバイス１００の非視覚センサから収集されるデータを除去するための非視覚データ・フィルタ３４０を活用することによって、ローカライゼーション・データ２３０の削減を開始する。キーフレーム識別子３４２は、ブロック７１０において、ローカライゼーション・データ２３０のキーフレームを識別し、ブロック７１２において、ローカライゼーション・データ２３０から、キーフレームに関連付けられていないフィーチャのフィーチャ記述子を除去する。ブロック７１４に進んで、フィーチャ品質分析モジュール３４３は、ローカライゼーション・データ２３０の残りのフィーチャ記述子を分析し、各フィーチャの品質値を生成する。ブロック７１６において、フィーチャ品質分析モジュールは、ローカライゼーション・データ２３０から、ＱＶＴ未満の品質値を有するそれらのフィーチャのフィーチャ記述子を除去する。ブロック７１４に進んで、幾何学的圧縮モジュール３４４は、ローカライゼーション・データ２３０の残りのフィーチャ記述子を分析し、その分析に基づいて、上述のフィーチャ記述子のセットを幾何学的に圧縮する。それによって、さらにローカライゼーション・データ２３０を削減する。ブロック７２０において、環境マッピング部２３５は削減されたローカライゼーション・データ２３０を用いて、デバイスの位置情報サービスによって用いられる電子デバイス１００のローカル環境のマップを生成および記憶する。
【００５４】
本発明の機能の多くおよび上記の本発明の原理の多くは、ソフトウェア・プログラムまたは命令および特定用途向けＩＣ（ＡＳＩＣ）などの集積回路（ＩＣ）を用いる実装、またはそれらの中における実装によく適している。本明細書に開示された概念および原理によって導かれる場合、例えば、利用可能な時間、現在の技術、および経済的考慮事項によって動機付けられた多大な努力および多くの設計選択にもかかわらず、当業者は、最小限の実験によって、そのようなソフトウェア命令、プログラム、およびＩＣを容易に生成することができるであろう。したがって、本開示に係る原理および概念を不明瞭にするリスクを最小限にするために、そのようなソフトウェアおよびＩＣの更なる説明は、もし存在するならば、好ましい実施形態内における原則および概念に関する本質的事項に限定されるであろう。
【００５５】
本明細書では、第１および第２などの関係用語は、そのような実体または動作の間における任意の実際の関係または順序を必ずしも要求または暗示することなく、ある実体または動作を別の実体または動作と区別するためにのみ使用され得る。用語「含む（ｃｏｍｐｒｉｓｅｓ）」、「含む（ｃｏｍｐｒｉｓｉｎｇ）」、またはその任意の他の変形は、非排他的な包含を対象とすることを意図し、要素の一覧を含むプロセス、方法、物品、または装置が、それらの要素のみを含むのではなく、そのようなプロセス、方法、物品、または装置に明示的に列挙されていないか固有ではない他の要素を含むことができる。「〜を備える（ｃｏｍｐｒｉｓｅｓ…ａ）」で始まる要素は、更なる制限なく、要素を含むプロセス、方法、項目、または装置内における追加の同一要素の存在を排除するものではない。本明細書で使用する「別の（ａｎｏｔｈｅｒ）」という用語は、少なくとも第２またはそれ以上のものとして定義される。本明細書で使用される「含む（ｉｎｃｌｕｄｉｎｇ）」および／または「有する（ｈａｖｉｎｇ）」という用語は、備えるものとして定義される。電気光学技術に関して本明細書で使用される用語「結合された（ｃｏｕｐｌｅｄ）」は、接続されるものとして定義されるが、必ずしも直接的ではないし、必ずしも機械的ではない。本明細書で使用する「プログラム（ｐｒｏｇｒａｍ）」という用語は、コンピュータ・システム上で実行するように設計された一連の命令として定義される。「プログラム（ｐｒｏｇｒａｍ）」または「コンピュータ・プログラム（ｃｏｍｐｕｔｅｒ  ｐｒｏｇｒａｍ）」は、サブルーチン、関数、プロシージャ、オブジェクト方法、オブジェクト実装、実行可能アプリケーション、アプレット、サーブレット、ソース符号、オブジェクト符号、共有ライブラリ／動的ロード・ライブラリ、および／またはコンピュータ・システム上での実行のために設計された他の命令シーケンスを含み得る。
【００５６】
明細書および図面は、単なる例として考えるべきであり、したがって、本開示の範囲は、以下の特許請求の範囲およびその均等物によってのみ限定されることが意図される。なお、一般的な記述の中で上述した活動または要素のすべてが必要であるとは限らないし、特定の活動または装置の一部が必要でなくてもよいし、１または複数の更なる活動が、記載されているそれらの要素に加えて、実行され得る。さらに、活動が列挙される順序は、必ずしも、それらが実施される順序ではない。上記フローチャートの工程は、別段の指定がない限り、任意の順序で行うことができ、実装に応じてステップを削除、反復、および／または追加することができる。また、これらの概念は、特定の実施形態を参照して説明されている。しかし、当業者であれば、以下の特許請求の範囲に記載された本開示の範囲から逸脱することなく、様々な修正および変更を行うことができることを理解する。したがって、明細書および図は、限定的な意味ではなく例示的な意味で考慮されるべきであり、そのような変更のすべては、本開示の範囲内に含まれることが意図される。
【００５７】
利点、他の利点、および問題に対する解決策は、特定の実施形態に関して上述されている。しかしながら、利益、利点、ならびに問題の解決策、および、利益、利点、または解決策が発生または顕在化させ得る１または複数の特徴は、任意または全ての特許請求の範囲の重要な、必須な、または不可欠な特徴と解釈されるべきではない。
【図１】
0006609640.tif 000002
【図２】
0006609640.tif 000003
【図３】
0006609640.tif 000004
【図４】
0006609640.tif 000005
【図５】
0006609640.tif 000006
【図６】
0006609640.tif 000007
【図７】
0006609640.tif 000008