(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-28
(54)【発明の名称】3Dマップを索出する方法、装置、及びコンピュータプログラム
(51)【国際特許分類】
G06F 16/51 20190101AFI20240621BHJP
G09B 29/00 20060101ALI20240621BHJP
G06T 17/05 20110101ALI20240621BHJP
【FI】
G06F16/51
G09B29/00 A
G06T17/05
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023574730
(86)(22)【出願日】2021-07-09
(85)【翻訳文提出日】2024-01-15
(86)【国際出願番号】 CN2021105625
(87)【国際公開番号】W WO2022252347
(87)【国際公開日】2022-12-08
(31)【優先権主張番号】PCT/CN2021/098482
(32)【優先日】2021-06-04
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】PCT/CN2021/098483
(32)【優先日】2021-06-04
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】カオ、シャオラン
(72)【発明者】
【氏名】ワン、ペイ
(72)【発明者】
【氏名】カイ、カンイン
【テーマコード(参考)】
2C032
5B050
5B175
【Fターム(参考)】
2C032HB05
5B050AA10
5B050BA09
5B050EA05
5B050EA07
5B050EA27
5B175CA08
5B175DA02
(57)【要約】
本願の実施形態は、非対称バイナリデータ索出を通して索出性能を改善するために、3Dマップを索出する方法及び装置を開示し、これは、3Dマップ技術の分野に属する。
3Dマップを索出する方法は、複数の3Dマップ記述子のバイナリデータを取得する段階、ここで、前記複数の3Dマップ記述子は、3Dマップの少なくとも1つの3Dマップ点に対応する;索出記述子を取得する段階、ここで、前記索出記述子は、実環境に対応し、かつ電子デバイスのセンサによって収集された視覚的情報から抽出される特徴である;及び前記索出記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の前記バイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得する段階、ここで、前記複数の3Dマップ記述子の各々のバイナリデータの長さは、前記索出記述子の前記バイナリデータの長さとは異なる、を備えてよい。
【特許請求の範囲】
【請求項1】
3Dマップを索出する方法であって、
複数の3Dマップ記述子のバイナリデータを取得する段階、ここで、前記複数の3Dマップ記述子は、3Dマップの少なくとも1つの3Dマップ点に対応する;
索出記述子のバイナリデータを取得する段階、ここで、前記索出記述子は、実環境に対応し、かつ電子デバイスのセンサによって収集された視覚的情報から抽出される特徴である;及び
前記索出記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の前記バイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得する段階、ここで、前記複数の3Dマップ記述子の各々のバイナリデータの長さは、前記索出記述子の前記バイナリデータの長さとは異なる
を備える、方法。
【請求項2】
前記少なくとも1つのターゲット3Dマップ記述子に対応する3Dマップ点は、前記索出記述子に対応するマップ点に一致し、前記方法は、
前記少なくとも1つのターゲット3Dマップ記述子に対応する前記3Dマップ点に基づいて測位を実行して、前記電子デバイスの姿勢情報を取得する段階
を更に備える、請求項1に記載の方法。
【請求項3】
前記索出記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の前記バイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得する前記段階は、
前記索出記述子の前記バイナリデータ及び前記複数の3Dマップ記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の各々及び前記索出記述子の間の第1の距離を決定する段階、ここで、前記複数の3Dマップ記述子のうちの任意の1つ及び索出記述子の間の第1の距離は、複数の第2の距離に基づいて決定され;前記複数の第2の距離のうちの任意の1つは、前記索出記述子の前記バイナリデータの部分データ及び前記3Dマップ記述子の前記バイナリデータの部分データに基づいて決定されるか、又は前記索出記述子の前記バイナリデータの部分データ及び前記3Dマップ記述子の前記バイナリデータの全データに基づいて決定されるか、又は前記3Dマップ記述子の前記バイナリデータの部分データ及び前記索出記述子の前記バイナリデータの部分データに基づいて決定されるか、又は前記3Dマップ記述子の前記バイナリデータの部分データ及び前記索出記述子の前記バイナリデータの全データに基づいて決定される;及び
前記複数の3Dマップ記述子の各々及び前記索出記述子の間の前記第1の距離に基づいて前記少なくとも1つのターゲット3Dマップ記述子として前記複数の3Dマップ記述子から少なくとも1つの3Dマップ記述子を選択する段階
を有する、請求項1又は2に記載の方法。
【請求項4】
前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の第1の距離の歪みは、歪み閾値よりも低く;
前記第1の距離の前記歪みは、前記第1の距離及び対応する元の距離の間の差の程度を示し、前記元の距離は、前記3Dマップ記述子及び前記索出記述子の間の距離である、請求項3に記載の方法。
【請求項5】
前記索出記述子の前記バイナリデータの部分データの長さは、前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さと同じであるか;又は前記索出記述子の前記バイナリデータの部分データの長さは、前記複数の3Dマップ記述子の各々の前記バイナリデータの全データの長さと同じであるか;又は前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さは、前記索出記述子の前記バイナリデータの部分データの長さと同じであるか;又は前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さは、前記索出記述子の前記バイナリデータの全データの長さと同じである、請求項3又は4に記載の方法。
【請求項6】
前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の前記第1の距離は、前記複数の第2の距離、及び前記複数の第2の距離に別個に対応する重み付け係数に基づいて決定される、請求項3~5のいずれか1項に記載の方法。
【請求項7】
前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも小さい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の複数の第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の少なくとも1つの第2のバイナリサブストリングを含み、前記複数の第1のバイナリサブストリングの各々の長さは、前記少なくとも1つの第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第1のバイナリサブストリングの各々及び前記少なくとも1つの第2のバイナリサブストリングの間の距離を含み;又は
前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも大きい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の少なくとも1つの第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の複数の第2のバイナリサブストリングを含み、前記少なくとも1つの第1のバイナリサブストリングの各々の長さは、前記複数の第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第2のバイナリサブストリングの各々及び前記少なくとも1つの第1のバイナリサブストリングの間の距離を含む、請求項3~6のいずれか1項に記載の方法。
【請求項8】
前記複数の3Dマップ記述子のうちの任意の1つは、エリア記述子又は3Dマップ点記述子を含む、請求項1~7のいずれか1項に記載の方法。
【請求項9】
複数の3Dマップ記述子のバイナリデータを取得する前記段階は、
前記3Dマップの圧縮されたデータを取得する段階、ここで、前記3Dマップの前記圧縮されたデータは、前記複数の3Dマップ記述子の前記バイナリデータを含む;
前記3Dマップの圧縮されたデータを取得し、前記3Dマップの前記圧縮されたデータを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得する段階;又は
前記3Dマップのビットストリームを受信し、前記3Dマップの前記ビットストリームを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得する段階
を有する、請求項1~8のいずれか1項に記載の方法。
【請求項10】
索出記述子のバイナリデータを取得する前記段階は、
前記索出記述子を受信し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得する段階;
前記視覚的情報を受信し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得する段階;又は
ユーザによって入力された視覚的情報収集動作に応答して、前記実環境に対して視覚的情報収集を実行するように前記センサをトリガして前記視覚的情報を取得し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して前記索出記述子の前記バイナリデータを取得する段階
を有する、請求項1~9のいずれか1項に記載の方法。
【請求項11】
3Dマップを索出する装置であって、
複数の3Dマップ記述子のバイナリデータを取得するように構成された第1の取得モジュール、ここで、前記複数の3Dマップ記述子は、3Dマップの少なくとも1つの3Dマップ点に対応する;
索出記述子のバイナリデータを取得するように構成された第2の取得モジュール、ここで、前記索出記述子は、実環境に対応し、かつ電子デバイスのセンサによって収集された視覚的情報から抽出される特徴である;及び
前記索出記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の前記バイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得するように構成された索出モジュール、ここで、前記複数の3Dマップ記述子の各々のバイナリデータの長さは、前記索出記述子の前記バイナリデータの長さとは異なる
を備える、装置。
【請求項12】
前記少なくとも1つのターゲット3Dマップ記述子に対応する3Dマップ点は、前記索出記述子に対応するマップ点に一致し、前記装置は、姿勢決定モジュールを更に備え;
前記姿勢決定モジュールは、前記少なくとも1つのターゲット3Dマップ記述子に対応する前記3Dマップ点に基づいて測位を実行して、前記電子デバイスの姿勢情報を取得するように構成されている、請求項11に記載の装置。
【請求項13】
前記索出モジュールは、
前記索出記述子の前記バイナリデータ及び前記複数の3Dマップ記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の各々及び前記索出記述子の間の第1の距離を決定すること、ここで、前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の第1の距離は、複数の第2の距離に基づいて決定され;前記複数の第2の距離のうちの任意の1つは、前記索出記述子の前記バイナリデータの部分データ及び前記3Dマップ記述子の前記バイナリデータの部分データに基づいて決定されるか、又は前記索出記述子の前記バイナリデータの部分データ及び前記3Dマップ記述子の前記バイナリデータの全データに基づいて決定されるか、又は前記3Dマップ記述子の前記バイナリデータの部分データ及び前記索出記述子の前記バイナリデータの部分データに基づいて決定されるか、又は前記3Dマップ記述子の前記バイナリデータの部分データ及び前記索出記述子の前記バイナリデータの全データに基づいて決定される;及び
前記複数の3Dマップ記述子の各々及び前記索出記述子の間の前記第1の距離に基づいて前記少なくとも1つのターゲット3Dマップ記述子として前記複数の3Dマップ記述子から少なくとも1つの3Dマップ記述子を選択すること
を行うように具体的に構成されている、請求項11又は12に記載の装置。
【請求項14】
前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の第1の距離の歪みは、歪み閾値よりも低く;
前記第1の距離の前記歪みは、前記第1の距離及び対応する元の距離の間の差の程度を示し、前記元の距離は、前記3Dマップ記述子及び前記索出記述子の間の距離である、請求項13に記載の装置。
【請求項15】
前記索出記述子の前記バイナリデータの部分データの長さは、前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さと同じであるか;又は前記索出記述子の前記バイナリデータの部分データの長さは、前記複数の3Dマップ記述子の各々の前記バイナリデータの全データの長さと同じであるか;又は前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さは、前記索出記述子の前記バイナリデータの部分データの長さと同じであるか;又は前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さは、前記索出記述子の前記バイナリデータの全データの長さと同じである、請求項13又は14に記載の装置。
【請求項16】
前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の前記第1の距離は、前記複数の第2の距離、及び前記複数の第2の距離にそれぞれ対応する重み付け係数に基づいて決定される、請求項13~15のいずれか1項に記載の装置。
【請求項17】
前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも小さい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の複数の第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の少なくとも1つの第2のバイナリサブストリングを含み、前記複数の第1のバイナリサブストリングの各々の長さは、前記少なくとも1つの第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第1のバイナリサブストリングの各々及び前記少なくとも1つの第2のバイナリサブストリングの間の距離を含み;又は
前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも大きい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の少なくとも1つの第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の複数の第2のバイナリサブストリングを含み、前記少なくとも1つの第1のバイナリサブストリングの各々の長さは、前記複数の第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第2のバイナリサブストリングの各々及び前記少なくとも1つの第1のバイナリサブストリングの間の距離を含む、請求項13~16のいずれか1項に記載の装置。
【請求項18】
前記複数の3Dマップ記述子のうちの任意の1つは、エリア記述子又は3Dマップ点記述子を含む、請求項11~17のいずれか1項に記載の装置。
【請求項19】
前記第1の取得モジュールは、前記3Dマップの圧縮されたデータを取得するように構成されており、前記3Dマップの前記圧縮されたデータは、前記複数の3Dマップ記述子の前記バイナリデータを含み;
前記第1の取得モジュールは、前記3Dマップの圧縮されたデータを取得し、前記3Dマップの前記圧縮されたデータを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得するように構成されており;又は
前記第1の取得モジュールは、前記3Dマップのビットストリームを受信し、前記3Dマップの前記ビットストリームを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得するように構成されている、請求項11~18のいずれか1項に記載の装置。
【請求項20】
前記第2の取得モジュールは、前記索出記述子を受信し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得するように構成されており;
前記第2の取得モジュールは、前記視覚的情報を受信し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得するように構成されており;又は
前記第2の取得モジュールは、ユーザによって入力された視覚的情報収集動作に応答して、前記実環境に対して視覚的情報収集を実行するように前記センサをトリガして前記視覚的情報を取得し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して前記索出記述子の前記バイナリデータを取得するように構成されている、請求項19に記載の装置。
【請求項21】
1つ又は複数のプロセッサ;及び
1つ又は複数のプログラムを記憶するように構成されたメモリ
を備え、前記1つ又は複数のプログラムが前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサは、請求項1~10のいずれか1項に記載の方法を実装するように有効化される、3Dマップを索出する装置。
【請求項22】
コンピュータプログラムを備え、前記コンピュータプログラムがコンピュータ上で実行されると、前記コンピュータは、請求項1~10のいずれか1項に記載の方法を実行するように有効化される、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、3Dマップ技術に関し、特に、3Dマップを索出する方法及び装置に関する。
【背景技術】
【0002】
仮想現実(Virtual Reality、VR)、拡張現実(Augmented Reality、AR)、及び複合現実(Mixed Reality、MR)技術は、近年新たに登場しているマルチメディア仮想シナリオ技術である。そのような技術は、仮想現実を作成し、それを、実世界にオーバレイして新たな視覚的環境及びインタラクティブなエクスペリエンスを生成するのに使用され得る。そのような応用では、電子デバイスは、仮想オブジェクト及び現実のシーンの間の融合を正確に実装するために、現在の環境における電子デバイスの姿勢情報を決定することを必要とする。
【0003】
加えて、自律運転、自律ナビゲーション、無人航空機自動検査、及び産業ロボット等の応用では、車両、無人航空機、又はロボット等の搬送デバイスは、正確なルート計画、ナビゲーション、検出、及び制御を実行するように、現在の環境における搬送デバイスの姿勢を決定するために、搬送デバイスによって保持される電子デバイスの姿勢を決定することを必要とする。
【0004】
前述の応用では、現在の環境における電子デバイスの姿勢が決定される必要があるという問題について、典型的な解決策は次のとおりである:電子デバイスは、サーバ又は別のデバイスから、電子デバイスが位置する環境の3次元(3-dimensional、3D)マップを受信し、ローカルセンサを使用することによって環境における視覚的情報を収集し、収集された視覚的情報に基づいてダウンロードされた3Dマップにおいて索出を実行して、電子デバイスの現在の姿勢を決定する。
【0005】
しかしながら、元の3Dマップは、通常、大きいデータボリュームを含み、索出のための計算量は、通常非常に大きい。これは、大量のコンピューティングリソースを要求するとともに、長時間を要し、それによって、ユーザエクスペリエンスが影響を受ける。
【発明の概要】
【0006】
本願の実施形態は、バイナリデータ索出を使用することによって索出性能を改善するために、3Dマップを索出する方法及び装置を提供する。
【0007】
第1の態様によれば、本願の一実施形態は、3Dマップを索出する方法を提供する。前記方法は、複数の3Dマップ記述子のバイナリデータを取得する段階、ここで、前記複数の3Dマップ記述子は、3Dマップの少なくとも1つの3Dマップ点に対応する;索出記述子のバイナリデータを取得する段階、ここで、前記索出記述子は、実環境に対応し、かつ電子デバイスのセンサによって収集された視覚的情報から抽出される特徴である;及び前記索出記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の前記バイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得する段階、ここで、前記複数の3Dマップ記述子の各々のバイナリデータの長さは、前記索出記述子の前記バイナリデータの長さとは異なる、を備えてよい。
【0008】
この実施形態では、非対称バイナリデータ索出を使用することによって索出性能を改善することができることが認識され得る。索出のために使用される索出記述子のバイナリデータの長さは、複数の3Dマップ記述子の各々のバイナリデータの長さとは異なり、それにより、より小さい長さを有する記述子(3Dマップ記述子又は索出記述子)は、より高い圧縮比を有し得、それによって、記憶空間及び/又は送信リソースオーバヘッドが節約され、又はより大きい長さを有する記述子(索出記述子又は3Dマップ記述子)は、索出のためにより多くの情報を提供し得、それによって、索出の正確さが改善される。
【0009】
例えば、3Dマップ記述子のバイナリデータの長さは、索出記述子のバイナリデータの長さよりも大きい。3Dマップ記述子のバイナリデータは、索出記述子のバイナリデータよりも多くのビットを有する。このようにして、3Dマップ記述子のより多くの元の情報が保持され得、それによって、索出を通して取得される少なくとも1つのターゲット3Dマップ記述子の正確さが改善される。索出記述子のバイナリデータは、3Dマップ記述子のバイナリデータよりも少ないビットを有する。このようにして、索出記述子のビットオーバヘッドは削減され得、それにより、索出記述子は、より高い圧縮比を有し得、それによって、記憶空間及び/又は送信リソースオーバヘッドが節約される。
【0010】
別の例の場合、3Dマップ記述子のバイナリデータの長さは、索出記述子のバイナリデータの長さよりも小さい。3Dマップ記述子のバイナリデータは、索出記述子のバイナリデータよりも少ないビットを有する。このようにして、3Dマップの記憶空間及び/又は送信リソースオーバヘッドは節約され得る。索出記述子のバイナリデータは、3Dマップ記述子のバイナリデータよりも多くのビットを有する。このようにして、索出記述子のより多くの元の情報が保持され得、それによって、索出を通して取得される少なくとも1つのターゲット3Dマップ記述子の正確さが改善される。
【0011】
可能な設計では、前記少なくとも1つのターゲット3Dマップ記述子に対応する3Dマップ点は、前記索出記述子に対応するマップ点に一致し、前記方法は、前記少なくとも1つのターゲット3Dマップ記述子に対応する前記3Dマップ点に基づいて測位を実行して、前記電子デバイスの姿勢情報を取得する段階を更に備えてよい。
【0012】
この実装では、索出性能は、バイナリデータ索出を使用することによって改善され得る。索出を通して取得された前記少なくとも1つのターゲット3Dマップ記述子に対応する3Dマップ点が、前記索出記述子に対応するマップ点に一致する場合、前記少なくとも1つのターゲット3Dマップ記述子に対応する前記3Dマップ点に基づいて測位が実行されてよい。これは、測位性能を改善することに役立つ。
【0013】
可能な設計では、前記索出記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の前記バイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得する前記段階は、前記索出記述子の前記バイナリデータ及び前記複数の3Dマップ記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の各々及び前記索出記述子の間の第1の距離(例えば、複数のハミング距離に基づいて取得される距離、又は複数のカスタマイズされた距離に基づいて取得される距離)を決定する段階を含む。前記複数の3Dマップ記述子のうちの任意の1つ及び索出記述子の間の第1の距離は、複数の第2の距離(例えば、ハミング距離、又はカスタマイズされた距離)に基づいて決定され、前記複数の第2の距離のうちの任意の1つは、前記索出記述子の前記バイナリデータの部分データ及び対応する3Dマップ記述子のバイナリデータの部分データに基づいて決定されるか、又は前記索出記述子の前記バイナリデータの部分データ及び対応する3Dマップ記述子のバイナリデータの全データに基づいて決定されるか、又は前記3Dマップ記述子のバイナリデータの部分データ及び前記索出記述子の前記バイナリデータの部分データに基づいて決定されるか、又は前記3Dマップ記述子のバイナリデータの部分データ及び前記索出記述子の前記バイナリデータの全データに基づいて決定される;及び前記複数の3Dマップ記述子の各々及び前記索出記述子の間の前記第1の距離に基づいて前記少なくとも1つのターゲット3Dマップ記述子として前記複数の3Dマップ記述子から少なくとも1つの3Dマップ記述子を選択する。
【0014】
第1の距離、第2の距離、第3の距離等における「第1」、「第2」、及び「第3」は、順番になっているわけではなく、互いを区別するために使用されているに過ぎないことが理解されるべきである。
【0015】
カスタマイズされた距離を計算する方式は、2つのバイナリデータの対応するビット同士の間の差分値の絶対値を取得すること、及び全ての差分の絶対値を合計することであってよい。
【0016】
例えば、3Dマップ記述子のバイナリデータの長さが索出記述子のバイナリデータの長さよりも大きい場合、3Dマップ記述子及び索出記述子の間の第1の距離は、複数の第2の距離に基づいて決定されてよく、複数の第2の距離のうちの任意の1つは、3Dマップ記述子のバイナリデータの部分データ及び索出記述子のバイナリデータの部分データに基づいて決定されるか、又は3Dマップ記述子のバイナリデータの部分データ及び索出記述子のバイナリデータの全データに基づいて決定される。
【0017】
3Dマップ記述子のバイナリデータの、1つの第2の距離を決定するのに使用される、部分データの長さは、索出記述子のバイナリデータの部分データの長さと同じであってよい。第2の距離は、ハミング距離、カスタマイズされた距離等であってよい。代替的には、3Dマップ記述子のバイナリデータの、1つの第2の距離を決定するのに使用される、部分データの長さは、索出記述子のバイナリデータの部分データの長さとは異なってよい。第2の距離は、既知の距離であってよく、例えば、表をルックアップする等の方式で取得されてよい。
【0018】
同じ原理に従って、3Dマップ記述子のバイナリデータの、1つの第2の距離を決定するのに使用される、部分データの長さは、索出記述子のバイナリデータの全データの長さと同じであってもよいし、又は異なってもよい。
【0019】
例えば、3Dマップ記述子及び索出記述子の間の第1の距離は、2つの第2の距離(第2の距離1及び第2の距離2))に基づいて決定されてよい。第2の距離1は、3Dマップ記述子のバイナリデータの第1の部分データ及び索出記述子のバイナリデータの全データに基づいて決定され、第2の距離2は、3Dマップ記述子のバイナリデータの第2の部分データ及び索出記述子のバイナリデータの全データに基づいて決定される。3Dマップ記述子のバイナリデータの長さは、第1の部分データ及び第2の部分データの長さの総和よりも小さくてよく、すなわち、第1の部分データ及び第2の部分データの間に重複が存在する。3Dマップ記述子のバイナリデータの長さは、第1の部分データ及び第2の部分データの長さの総和よりも大きいか又はこれに等しくてよく、すなわち、第1の部分データ及び第2の部分データの間に重複は存在しない。
【0020】
例えば、3Dマップ記述子のバイナリデータの長さが索出記述子のバイナリデータの長さよりも小さい場合、3Dマップ記述子及び索出記述子の間の第1の距離は、複数の第2の距離に基づいて決定されてよく、複数の第2の距離のうちの任意の1つは、索出記述子のバイナリデータの部分データ及び3Dマップ記述子のバイナリデータの部分データに基づいて決定されるか、又は索出記述子のバイナリデータの部分データ及び3Dマップ記述子のバイナリデータの全データに基づいて決定される。
【0021】
索出記述子の、1つの第2の距離を決定するのに使用される、バイナリデータの部分データの長さは、3Dマップ記述子のバイナリデータの部分データの長さと同じであってもよいし、又は異なってもよい。
【0022】
索出記述子の、1つの第2の距離を決定するのに使用される、バイナリデータの部分データの長さは、3Dマップ記述子のバイナリデータの全データの長さと同じであってもよいし、又は異なってもよい。
【0023】
例えば、3Dマップ記述子及び索出記述子の間の第1の距離は、2つの第2の距離(第2の距離1及び第2の距離2)に基づいて決定されてよい。第2の距離1は、索出記述子のバイナリデータの第1の部分データ及び3Dマップ記述子のバイナリデータの全データに基づいて決定され、第2の距離2は、索出記述子のバイナリデータの第2の部分データ及び3Dマップ記述子のバイナリデータの全データに基づいて決定される。索出記述子のバイナリデータの長さは、第1の部分データ及び第2の部分データの長さの総和よりも小さくてよく、すなわち、第1の部分データ及び第2の部分データの間に重複が存在してよい。索出記述子のバイナリデータの長さは、第1の部分データ及び第2の部分データの長さの総和よりも大きいか又はこれに等しくてよく、すなわち、第1の部分データ及び第2の部分データの間に重複は存在しない。
【0024】
この実装では、非対称である3Dマップ記述子のバイナリデータ及び索出記述子のバイナリデータの間の第1の距離は、複数の第2の距離を使用することによって決定され、その後、索出が第1の距離に基づいて実行され、それにより、より小さい長さを有する記述子(3Dマップ記述子又は索出記述子)は、より高い圧縮比を有し得、それによって、記憶空間及び/又は送信リソースオーバヘッドが節約され、より大きい長さを有する記述子(索出記述子又は3Dマップ記述子)は、索出のためにより多くの情報を提供し得、それによって、索出の正確さが改善される。
【0025】
可能な設計では、複数の3Dマップ記述子のうちの任意の1つ及び索出記述子の間の第1の距離の歪みは、歪み閾値よりも低い。第1の距離の歪みは、第1の距離及び対応する元の距離の間の差の程度を示しており、元の距離は、3Dマップ記述子及び索出記述子の間の距離(例えば、ユークリッド距離又はマンハッタン距離)である。例えば、元の距離は、3Dマップ記述子及び索出記述子の間であり、かつユークリッド距離計算方式で直接計算されるユークリッド距離として理解され得る。
【0026】
この実施形態では、複数の第2の距離を使用することによって決定される3Dマップ記述子のバイナリデータ及び索出記述子のバイナリデータの間の第1の距離の歪みは、歪み閾値よりも低い。索出のために使用される3Dマップ記述子のバイナリデータ及び索出記述子のバイナリデータの間の第1の距離は歪み閾値よりも低いので、索出結果の正確さが保証され得る。索出のために使用される第1の距離のより小さい歪みは、より良好に索出の正確さを改善することに役立つ。
【0027】
異なる設計方式では、歪み閾値は、事前設定閾値であってもよいし、又は対応する3Dマップ記述子及び索出記述子の間の第3の距離の歪みであってもよい。第3の距離は、索出記述子のバイナリデータの部分データ及び3Dマップ記述子のバイナリデータの全データの間の距離であるか、又は索出記述子のバイナリデータの全データ及び3Dマップ記述子のバイナリデータの部分データの間の距離である。
【0028】
例えば、3Dマップ記述子のバイナリデータの長さが索出記述子のバイナリデータの長さよりも大きい場合、3Dマップ記述子及び索出記述子の間の第3の距離は、索出記述子のバイナリデータの全データ及び3Dマップ記述子のバイナリデータの部分データの間の距離である。換言すれば、3Dマップ記述子のバイナリデータの長さが索出記述子のバイナリデータの長さよりも大きい場合、3Dマップ記述子及び索出記述子の間の第1の距離の歪みは、3Dマップ記述子のバイナリデータの部分データ及び索出記述子のバイナリデータの全データの間の距離の歪みよりも低い。3Dマップ記述子のバイナリデータの部分データの長さは、3Dマップ記述子のバイナリデータの全データの長さと同じであってよい。3Dマップ記述子のバイナリデータの長さが索出記述子のバイナリデータの長さよりも小さい場合、3Dマップ記述子及び索出記述子の間の第3の距離は、索出記述子のバイナリデータの部分データ及び3Dマップ記述子のバイナリデータの全データの間の距離である。換言すれば、3Dマップ記述子のバイナリデータの長さが索出記述子のバイナリデータの長さよりも小さい場合、3Dマップ記述子及び索出記述子の間の第1の距離の歪みは、3Dマップ記述子のバイナリデータの全データ及び3Dマップ記述子のバイナリデータの部分データの間の距離の歪みよりも低い。3Dマップ記述子のバイナリデータの全データの長さは、3Dマップ記述子のバイナリデータの部分データの長さと同じであってよい。
【0029】
この実装では、非対称である3Dマップ記述子のバイナリデータ及び索出記述子のバイナリデータの間の第1の距離の歪みは、対称である3Dマップ記述子のバイナリデータの部分データ及び索出記述子のバイナリデータの全データの間の距離の歪みよりも低いか、又は対称である3Dマップ記述子のバイナリデータの全データ及び索出記述子のバイナリデータの部分データの間の距離の歪みよりも低い。索出のために使用される第1の距離のより小さい歪みは、より良好に索出の正確さを改善することに役立つ。
【0030】
可能な設計では、索出記述子のバイナリデータの部分データの長さは、複数の3Dマップ記述子の各々のバイナリデータの部分データ又は全データの長さと同じであるか、又は複数の3Dマップ記述子の各々のバイナリデータの部分データの長さは、索出記述子のバイナリデータの部分データ又は全データの長さと同じである。
【0031】
可能な設計では、前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の前記第1の距離は、前記複数の第2の距離、及び前記複数の第2の距離にそれぞれ対応する重み付け係数に基づいて決定される。
【0032】
この実装では、異なる第2の距離が重み付け係数を使用することによって重み付けされて、第1の距離の歪みが削減され、それによって、索出精度の改善に役立つ。
【0033】
複数の第2の距離にそれぞれ対応する重み付け係数は、複数の第2の距離のそれぞれの重要度であってよく、重要度は、第1の距離の歪みに対する対応する第2の距離の影響の程度を示す。
【0034】
複数の第2の距離にそれぞれ対応する重要度は、次のうちの少なくとも1つに基づいて決定される:索出記述子のバイナリデータの、第2の距離に対応する、部分データのロケーション、又は3Dマップ記述子のバイナリデータの、第2の距離に対応する、部分データのロケーション。本明細書におけるロケーションは、対応するバイナリデータの全データにおける部分データのロケーション、例えば、対応するバイナリデータの全データにおける部分データの開始ロケーション又は終了ロケーションであってよい。
【0035】
例えば、3Dマップ記述子及び索出記述子の間の第1の距離は、2つの第2の距離(第2の距離1及び第2の距離2)に基づいて決定されてよい。第2の距離1は、索出記述子のバイナリデータの第1の部分データ及び3Dマップ記述子のバイナリデータの全データに基づいて決定され、第2の距離2は、索出記述子のバイナリデータの第2の部分データ及び3Dマップ記述子のバイナリデータの全データに基づいて決定される。第1の部分データの開始ロケーションは、第2の部分データの開始ロケーションよりも高く、第2の距離1に対応する重要度は、第2の距離2に対応する重要度よりも大きい。
【0036】
可能な設計では、前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも小さい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の複数の第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の少なくとも1つの第2のバイナリサブストリングを含み、前記複数の第1のバイナリサブストリングの各々の長さは、前記少なくとも1つの第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第1のバイナリサブストリングの各々及び前記少なくとも1つの第2のバイナリサブストリングの間の距離を含む。
【0037】
前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも大きい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の少なくとも1つの第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の複数の第2のバイナリサブストリングを含み、前記少なくとも1つの第1のバイナリサブストリングの各々の長さは、前記複数の第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第2のバイナリサブストリングの各々及び前記少なくとも1つの第1のバイナリサブストリングの間の距離を含む。
【0038】
この実装では、対称バイナリサブストリング間の複数の第2の距離が計算され、非対称バイナリデータ間の第1の距離が、複数の第2の距離に基づいて計算され、索出が、第1の距離に基づいて実行される。第1の距離は、削減された歪みを有する。したがって、これは、索出精度を改善することに役立つ。
【0039】
可能な設計では、前記複数の3Dマップ記述子のうちの任意の1つは、エリア記述子又は3Dマップ点記述子を含む。
【0040】
可能な設計では、複数の3Dマップ記述子のバイナリデータを取得する前記段階は、前記3Dマップの圧縮されたデータを取得する段階を有してよく、ここで、前記3Dマップの前記圧縮されたデータは、前記複数の3Dマップ記述子の前記バイナリデータを含む。第1の態様における索出方法を実行するように構成された実行本体(これは、電子デバイスであってもよいし、又はサーバ(例えば、クラウドサーバ)であってもよい)は、記憶モジュールから3Dマップの圧縮されたデータを取得し、圧縮されたデータから複数の3Dマップ記述子のバイナリデータを取得してよい。
【0041】
別の可能な設計では、複数の3Dマップ記述子のバイナリデータを取得する前記段階は、前記3Dマップの圧縮されたデータを取得し、前記3Dマップの前記圧縮されたデータを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得する段階を有してよい。第1の態様における索出方法を実行するように構成された実行本体(これは、電子デバイスであってもよいし、又はサーバ(例えば、クラウドサーバ)であってもよい)は、記憶モジュールから3Dマップの圧縮されたデータを取得し、3Dマップの圧縮されたデータを解凍して、複数の3Dマップ記述子のバイナリデータを取得してよい。
【0042】
更に別の可能な設計では、複数の3Dマップ記述子のバイナリデータを取得する前記段階は、前記3Dマップのビットストリームを受信し、前記3Dマップの前記ビットストリームを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得する段階を有してよい。第1の態様における索出方法を実行するように構成された実行本体(これは、電子デバイスであってもよいし、又はサーバ(例えば、クラウドサーバ)であってもよい)は、送信モジュールから3Dマップのビットストリームを受信し、3Dマップのビットストリームを解凍して、複数の3Dマップ記述子のバイナリデータを取得してよい。
【0043】
可能な設計では、索出記述子のバイナリデータを取得する前記段階は、前記索出記述子を受信し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得する段階を有する。第1の態様における索出方法を実行するように構成された実行本体(これは、電子デバイスであってもよいし、又はサーバ(例えば、クラウドサーバ)であってもよい)は、別のデバイスによって送信された索出記述子を受信してよい。例えば、第1の態様において索出方法を実行するように構成された実行本体は、別の電子デバイスによって収集及び抽出された索出記述子を受信する。
【0044】
別の可能な設計では、索出記述子のバイナリデータを取得する前記段階は、前記視覚的情報を受信し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得する段階を有する。第1の態様における索出方法を実行するように構成された実行本体(これは、電子デバイス又はサーバであってよい)は、別のデバイスによって送信された視覚的情報を受信し、視覚的情報から索出記述子を抽出してよい。
【0045】
更に別の可能な設計では、索出記述子のバイナリデータを取得する前記段階は、ユーザによって入力された視覚的情報収集動作に応答して、前記実環境に対して視覚的情報収集を実行するように前記センサをトリガして前記視覚的情報を取得し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して前記索出記述子の前記バイナリデータを取得する段階を有する。第1の態様における索出方法を実行するように構成された実行本体(これは、電子デバイス又はサーバであってよい)は、視覚的情報を収集し、視覚的情報から索出記述子を抽出してよい。
【0046】
第2の態様によれば、本願は、3Dマップを索出する装置を提供する。装置は、電子デバイス又はサーバ、例えば、電子デバイス又はサーバにおけるチップ又はシステムオンチップであってよく、例えば、電子デバイス又はサーバにあり、かつ第1の態様又は第1の態様の任意の可能な実装を実装するように構成されている機能モジュールであってよい。例えば、3Dマップを索出する装置は、複数の3Dマップ記述子のバイナリデータを取得するように構成された第1の取得モジュール、ここで、前記複数の3Dマップ記述子は、3Dマップの少なくとも1つの3Dマップ点に対応する;索出記述子のバイナリデータを取得するように構成された第2の取得モジュール、ここで、前記索出記述子は、実環境に対応し、かつ電子デバイスのセンサによって収集された視覚的情報から抽出される特徴である;及び前記索出記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の前記バイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得するように構成された索出モジュール、ここで、前記複数の3Dマップ記述子の各々のバイナリデータの長さは、前記索出記述子の前記バイナリデータの長さとは異なる、を備える。
【0047】
可能な設計では、前記少なくとも1つのターゲット3Dマップ記述子に対応する3Dマップ点は、前記索出記述子に対応するマップ点に一致し、前記装置は、姿勢決定モジュールを更に備えてよい。前記姿勢決定モジュールは、前記少なくとも1つのターゲット3Dマップ記述子に対応する前記3Dマップ点に基づいて測位を実行して、前記電子デバイスの姿勢情報を取得するように構成されている。
【0048】
可能な設計では、前記索出モジュールは、前記索出記述子の前記バイナリデータ及び前記複数の3Dマップ記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の各々及び前記索出記述子の間の第1の距離を決定すること、ここで、前記複数の3Dマップ記述子のうちの任意の1つ及び索出記述子の間の第1の距離は、複数の第2の距離に基づいて決定され;前記複数の第2の距離のうちの任意の1つは、対応する索出記述子のバイナリデータの部分データ及び前記3Dマップ記述子のバイナリデータの部分データに基づいて決定されるか、又は対応する索出記述子のバイナリデータの部分データ及び前記3Dマップ記述子のバイナリデータの全データに基づいて決定されるか、又は対応する3Dマップ記述子のバイナリデータの部分データ及び前記索出記述子の前記バイナリデータの部分データに基づいて決定されるか、又は対応する3Dマップ記述子の前記バイナリデータの部分データ及び前記索出記述子の前記バイナリデータの全データに基づいて決定される;及び前記複数の3Dマップ記述子の各々及び前記索出記述子の間の前記第1の距離に基づいて前記少なくとも1つのターゲット3Dマップ記述子として前記複数の3Dマップ記述子から少なくとも1つの3Dマップ記述子を選択することを行うように具体的に構成されている。
【0049】
可能な設計では、前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の第1の距離の歪みは、歪み閾値よりも低い。前記第1の距離の前記歪みは、前記第1の距離及び対応する元の距離の間の差の程度を示し、前記元の距離は、前記3Dマップ記述子及び前記索出記述子の間の距離である。
【0050】
可能な設計では、前記索出記述子の前記バイナリデータの部分データの長さは、前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さと同じであるか;又は前記索出記述子の前記バイナリデータの部分データの長さは、前記複数の3Dマップ記述子の各々の前記バイナリデータの全データの長さと同じであるか;又は前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さは、前記索出記述子の前記バイナリデータの部分データの長さと同じであるか;又は前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さは、前記索出記述子の前記バイナリデータの全データの長さと同じである。
【0051】
可能な設計では、前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の前記第1の距離は、前記複数の第2の距離、及び前記複数の第2の距離にそれぞれ対応する重み付け係数に基づいて決定される。
【0052】
可能な設計では、前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも小さい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の複数の第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の少なくとも1つの第2のバイナリサブストリングを含み、前記複数の第1のバイナリサブストリングの各々の長さは、前記少なくとも1つの第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第1のバイナリサブストリングの各々及び前記少なくとも1つの第2のバイナリサブストリングの間の距離を含む。
【0053】
前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも大きい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の少なくとも1つの第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の複数の第2のバイナリサブストリングを含み、前記少なくとも1つの第1のバイナリサブストリングの各々の長さは、前記複数の第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第2のバイナリサブストリングの各々及び前記少なくとも1つの第1のバイナリサブストリングの間の距離を含む。
【0054】
可能な設計では、前記複数の3Dマップ記述子のうちの任意の1つは、エリア記述子又は3Dマップ点記述子を含む。
【0055】
可能な設計では、前記第1の取得モジュールは、前記3Dマップの圧縮されたデータを取得するように構成されており、前記3Dマップの前記圧縮されたデータは、前記複数の3Dマップ記述子の前記バイナリデータを含み;又は別の可能な設計では、前記第1の取得モジュールは、前記3Dマップの圧縮されたデータを取得し、前記3Dマップの前記圧縮されたデータを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得するように構成されており;又は更に別の可能な設計では、前記第1の取得モジュールは、前記3Dマップのビットストリームを受信し、前記3Dマップの前記ビットストリームを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得するように構成されている。
【0056】
可能な設計では、前記第2の取得モジュールは、前記索出記述子を受信し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得するように構成されており;又は別の可能な設計では、前記第2の取得モジュールは、前記視覚的情報を受信し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得するように構成されており;又は更に別の可能な設計では、前記第2の取得モジュールは、ユーザによって入力された視覚的情報収集動作に応答して、前記実環境に対して視覚的情報収集を実行するように前記センサをトリガして前記視覚的情報を取得し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して前記索出記述子の前記バイナリデータを取得するように構成されている。
【0057】
第3の態様によれば、本願の一実施形態は、1つ又は複数のプロセッサ;及び1つ又は複数のプログラムを記憶するように構成されたメモリを備える、3Dマップを索出する装置を提供する。前記1つ又は複数のプログラムが前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサは、第1の態様又は第1の態様の可能な設計のいずれか1つに記載の方法を実装するように有効化される。
【0058】
第4の態様によれば、本願の一実施形態は、コンピュータプログラムを備えるコンピュータ可読記憶媒体を提供する。前記コンピュータプログラムがコンピュータ上で実行されると、前記コンピュータは、第1の態様又は第1の態様の可能な設計のいずれか1つに記載の方法を実行するように有効化される。
【0059】
第5の態様によれば、本願は、コンピュータプログラム又はコンピュータプログラム製品を提供する。コンピュータプログラム又はコンピュータプログラム製品がコンピュータ上で実行されると、前記コンピュータは、第1の態様又は第1の態様の可能な実装のいずれか1つに記載の方法を実装するように有効化される。
【0060】
本願の第2の態様~第5の態様における技術的解決策は、本願の第1の態様における技術的解決策と一致していることが理解されるべきである。態様及び対応する実現可能な実装において達成される有益な効果は同様であり、詳細は再度説明されない。
【図面の簡単な説明】
【0061】
【
図1】本願の一実施形態に係るアプリケーションアーキテクチャの概略図である。
【0062】
【
図2】本願の一実施形態に係る電子デバイス20の構造の概略図である。
【0063】
【
図3】本願の一実施形態に係るサーバ30の構造の概略図である。
【0064】
【
図4a】本願の一実施形態に係る様々なアプリケーションシナリオの概略図である。
【
図4b】本願の一実施形態に係る様々なアプリケーションシナリオの概略図である。
【
図4c】本願の一実施形態に係る様々なアプリケーションシナリオの概略図である。
【
図4d】本願の一実施形態に係る様々なアプリケーションシナリオの概略図である。
【
図4e】本願の一実施形態に係る様々なアプリケーションシナリオの概略図である。
【
図4f】本願の一実施形態に係る様々なアプリケーションシナリオの概略図である。
【0065】
【
図4g】本願の一実施形態に係る、電子デバイスによって表示されるユーザインターフェース(例えば、3Dマップアプリケーションのユーザインターフェース)の概略図である。
【0066】
【
図5】本願の一実施形態に係る、3Dマップを索出する方法の概略フローチャートである。
【0067】
【
図6】本願の一実施形態に係る、3Dマップ記述子及び索出記述子の概略図である。
【0068】
【
図7】本願の一実施形態に係る、3Dマップ記述子及び索出記述子の概略図である。
【0069】
【
図8】本願の一実施形態に係る、3Dマップ記述子及び索出記述子の概略図である。
【0070】
【
図9】本願の一実施形態に係る、3Dマップ記述子及び索出記述子の概略図である。
【0071】
【
図10】本願の一実施形態に係る、3Dマップを索出する方法の概略フローチャートである。
【0072】
【
図11】本願の一実施形態に係る、3Dマップを索出する装置の構造の概略図である。
【0073】
【
図12】本願の一実施形態に係る復号装置1000の概略ブロック図である。
【発明を実施するための形態】
【0074】
以下は、本願の実施形態における添付図面を参照しながら、本願の実施形態を説明する。本願の実施形態において使用される用語は、本願の特定の実施形態を説明するために使用されているに過ぎず、本願を限定するようには意図されていない。
【0075】
本願の明細書、特許請求の範囲、及び添付図面の実施形態において、「第1」、「第2」等の用語は、単に区別及び説明のために意図されており、相対的重要性の示唆又は暗示、又は順序の示唆又は暗示として理解されないものとする。加えて、「含む」、「有する」という用語、及びこれらの任意の変形は、非排他的な包含、例えば、一連の段階又はユニットの包含をカバーするように意図されている。方法、システム、製品、又はデバイスは、必ずしも、明確に列挙された段階又はユニットに限定されるものではなく、明確には列挙されておらず、かつプロセス、方法、製品、又はデバイスに固有である他の段階又はユニットを含み得る。
【0076】
本願では、「少なくとも1つ(の項目)」は、1つ又は複数であり、「複数の」は、2つ又はそれよりも多いことが理解されるべきである。「及び/又は」という用語は、関連付けられた物体の関連付け関係を説明し、3つの関係が存在し得ることを示す。例えば、「A及び/又はB」は、次の3つのケース:Aのみが存在すること、Bのみが存在すること、及びA及びBの両方が存在することを示し得る。A及びBは、単数又は複数であってよい。記号「/」は、通常、関連付けられた物体間の「又は」の関係を示す。「次の項目のうちの少なくとも1つ」又はこれに類似した表現は、項目のうちの1つ又は複数の項目の任意の組み合わせを含む、項目の任意の組み合わせを示す。例えば、a、b、又はcのうちの少なくとも1つは、a、b、c、a及びb、a及びc、b及びc、又はa、b、及びcを示してよく、ここで、a、b、及びcは、単数又は複数であってよい。
【0077】
本願の実施形態では、「例」又は「例えば」等の用語は、一例、例示、又は説明を与えることを表すのに使用される。本願の実施形態において「例」又は「例えば」によって説明される任意の実施形態又は設計は、別の実施形態又は設計よりも好ましい又は有利であるとは解釈されないものとする。厳密には、「例」又は「例えば」等の用語は、特定の方式において相対的な概念を提示するように意図される。
【0078】
本願の実施形態及び添付の特許請求の範囲において使用される単数形の「一(a)」、「前記(said)」、及び「前記(the)」という用語は、別段明確に文脈において指定されない限り、複数形も含むように意図される。本明細書において使用される「及び/又は」という用語は、1つ又は複数の関連付けられた列挙項目のありとあらゆる可能な組み合わせを示すとともに、これを含むことが更に理解されるべきである。本明細書において使用される場合、単数形の「一(a)」、「幾つか(some)」、及び「前記(the)」の意味は、別段明確に文脈において示されない限り、複数形も含む。「含む(include)」、「有する(have)」、「備える(comprise)」、及び/又は「含む(include)」という用語は、言及される特徴、整数、段階、動作、要素、及び/又はコンポーネントの存在を指定するために本明細書において使用されるが、1つ又は複数の他の特徴、整数、段階、動作、要素、コンポーネント、及び/又はこれらのグループの存在又は追加を除外しないことが更に理解されるべきである。
【0079】
本願の実施形態において使用される用語は、具体的な実施形態を例示する目的に過ぎず、本願を限定するように意図されないことに留意されたい。
【0080】
図1は、本願の一実施形態に係るアプリケーションアーキテクチャの概略図である。
図1において示されているように、アプリケーションアーキテクチャは、複数の電子デバイス及びサーバを備える。複数の電子デバイスは、第1の電子デバイス及び1つ又は複数の第2の電子デバイス(2つの第2の電子デバイスが
図1において一例として使用されている)を含んでよい。1つ又は複数の第2の電子デバイスは、第1の電子デバイス以外の幾つかの電子デバイスである。通信は、複数の電子デバイス及びサーバの間、及び複数の電子デバイス同士の間で実行され得る。例えば、アプリケーションアーキテクチャにおける任意のデバイスが、ワイヤレスフィデリティ(wireless fidelity、Wi-Fi(登録商標))通信、ブルートゥース(登録商標)通信、又はセルラ第2/第3/第4/第5世代(2nd/3rd/4th/5th generation、2G/3G/4G/5G)通信等の方式で別のデバイスと通信し得る。将来の通信方式を含む別の通信方式が、サーバ及び電子デバイスの間で更に使用されてよいことが理解されるべきである。これは、本明細書において具体的に限定されるものではない。本願のこの実施形態における「1つ又は複数の第2の電子デバイス」は、第1の電子デバイス以外の電子デバイスを表すために使用されるに過ぎず、複数の電子デバイスのタイプが同じであるか否かは限定されるものではないことに留意されたい。
【0081】
電子デバイスは、カメラ及びディスプレイコンポーネントが設けられた様々なタイプのデバイスであってよい。例えば、電子デバイスは、携帯電話、タブレットコンピュータ、ノートブックコンピュータ、又はビデオレコーダ等の端末デバイスであってよい(携帯電話が、
図1において電子デバイスの一例として使用されている)。代替的には、電子デバイスは、VRグラス、ARデバイス、MRインタラクションデバイス等を含む、仮想シナリオにおけるインタラクションのために使用されるデバイスであってよい。代替的には、電子デバイスは、スマートウォッチ又はスマートバンド等のウェアラブル電子デバイスであってよい。代替的には、電子デバイスは、車両、無人車両、無人航空機、又は産業ロボット等の搬送デバイスにおいて搬送されるデバイスであってよい。電子デバイスの具体的な形態は、本願の実施形態において特別に限定されるものではない。
【0082】
加えて、電子デバイスは、ユーザ機器(user equipment、UE)、加入者局、モバイルユニット、加入者ユニット、ワイヤレスユニット、リモートユニット、モバイルデバイス、ワイヤレスデバイス、ワイヤレス通信デバイス、リモートデバイス、モバイル加入者局、端末デバイス、アクセス端末、モバイル端末、ワイヤレス端末、スマート端末、リモート端末、ハンドヘルド端末、ユーザエージェント、モバイルクライアント、クライアント、又は別の適切な用語でも称され得る。
【0083】
サーバは、1つ又は複数の物理サーバであってもよいし(1つの物理サーバが、
図1において一例として使用されている)、又はコンピュータクラスタであってもよいし、又は仮想マシン又はクラウドコンピューティングシナリオにおけるクラウドサーバ等であってもよい。
【0084】
本願のこの実施形態では、VRアプリケーション、ARアプリケーション、又はMRアプリケーション等の仮想シナリオアプリケーション(application、APP)が電子デバイス上にインストールされてよく、VRアプリケーション、ARアプリケーション、又はMRアプリケーションは、ユーザ動作(例えば、タップ、タッチ、スライド、シェイク、又は音声制御)に基づいて実行されてよい。電子デバイスは、センサを使用することによって環境内の任意のオブジェクトの視覚的情報を収集し、その後、収集された視覚的情報に基づいてディスプレイコンポーネント上に仮想オブジェクトを表示してよい。仮想オブジェクトは、VRシナリオ、ARシナリオ、又はMRシナリオにおける仮想オブジェクト(すなわち、仮想環境内のオブジェクト)であってよい。
【0085】
本願のこの実施形態では、ナビゲーション、検出、又は制御アプリケーションが電子デバイス上にインストールされてよく、対応するアプリケーションは、ユーザ又は事前設定プログラムの動作及び制御に基づいて実行される。電子デバイスは、ルート計画、オブジェクト検出、及び搬送デバイス動作等のアプリケーションを実行し、現在の環境における電子デバイスの姿勢及び他のステータス情報に基づいて制御してよい。
【0086】
姿勢は、電子デバイスのロケーション及び方位情報であり、ワールド座標系における絶対姿勢であってもよいし、又は環境内の一点に対する相対姿勢であってもよい。
【0087】
本願の実施形態における視覚的情報は、カメラによって収集される画像ビデオ(深度情報を伴わない)、深度センサ(depth sensor)によって収集される画像ビデオ(深度情報を伴う)、ライダ(LiDAR)によって収集されるデータ、及びミリメートル波レーダ(RaDAR)によって収集されるデータを含むが、これらに限定されるものではない。
【0088】
本願のこの実施形態では、電子デバイスにおける仮想シナリオアプリケーションは、電子デバイスに内蔵されたアプリケーションであってもよいし、又はサードパーティサービスプロバイダによって提供され、かつユーザによってインストールされるアプリケーションであってもよいことに留意されたい。これは、本明細書において具体的に限定されるものではない。
【0089】
本願のこの実施形態では、同時位置特定及びマッピング(simultaneous localization and mapping、SLAM)システムが、電子デバイスのために更に構成されてよい。SLAMシステムは、完全に未知の環境においてマップを作成し、当該マップを使用して測位、姿勢(ロケーション及び体勢)決定、ナビゲーション等を実行することができる。本願のこの実施形態では、SLAMシステムによって作成されるマップは、SLAMマップと称される。SLAMマップは、収集デバイスによって収集された環境情報に基づいてSLAMシステムによって描画されるマップとして理解され得る。収集デバイスは、電子デバイスにおいて視覚的情報収集装置及び慣性測定ユニット(inertial measurement unit、IMU)を含んでよい。視覚的情報収集装置は、例えば、カメラ、深度カメラ、ライダ、及びミリメートル波レーダを含んでよい。IMUは、例えば、ジャイロスコープ及び加速度計等のセンサを含んでよい。
【0090】
本願の実施形態では、SLAMマップは、3Dマップとも称される。3Dマップは、SLAMマップを含むが、これに限定されるものではなく、別の技術を使用することによって作成される3次元マップを更に含んでよいことに留意されたい。これは、具体的には、本願の実施形態において限定されない。
【0091】
可能な実装では、3Dマップは、複数の3Dマップ点を含んでよく、これに対応して、3Dマップのデータは、複数の3Dマップ点のデータを含んでよい。3Dマップ点は、環境内の関心点又は有意な特徴を有する点である。
【0092】
3Dマップ点を取得する可能な方式は、ライダ、無人航空機の画角からの空中撮影(チルト撮影)、高精細パノラマカメラ、高精細産業カメラ等の複数のデバイスを使用して、撮影を実行し、前述のデバイスによる撮影を通して取得されたデータから、ORB、スケール不変特徴変換(scale-invariant feature transform、SIFT)、高速化ロバスト特徴(speeded up robust features、SURF)、バイナリロバスト独立基本特徴(binary robust independent elementary features、BRIEF)、バイナリロバスト不変スケーラブルキーポイント(binary robust invariant scalable keypoints、BRISK)、高速網膜キーポイント(fast retina keypoint、FREAK)、D2Net、又は自己教師ありトレーニング特徴点検出及び記述子抽出方法(SuperPoint)等の方法を使用することによって、3Dマップ点を抽出することである。
【0093】
3Dマップ点のデータは、以下を含んでよい。
【0094】
(1)3Dマップ点記述子
【0095】
3Dマップ点記述子は、対応する3Dマップ点の局所特徴を表すのに使用されるベクトル(vector)である。視覚的測位アルゴリズムでは、3Dマップ点記述子は、3Dマップ点間の照合のために使用される。可能な方法は:2つの3Dマップ点記述子の間の距離(これは、ユークリッド距離、内積距離、ハミング距離等であってよい)を計算し;当該距離が閾値よりも低い場合、当該2つの3Dマップ点が一致しているとみなすことである。
【0096】
(2)3Dマップ点空間ロケーション
【0097】
3Dマップ点空間ロケーションは、3次元空間軸上のX、Y、及びZを使用することによって表されてもよいし、又は経度、緯度、及び高度を使用することによって表されてもよいし、又は極座標等を使用することによって表されてもよい。3Dマップ点空間ロケーションを表す方法は、本願の実施形態において具体的に限定されるものではない。3Dマップ点空間ロケーションは、3Dマップ点の絶対ロケーション又は3Dマップ点の相対ロケーションであってよい。例えば、エリア全体の中心ロケーションが原点として使用され、全ての3Dマップ点空間ロケーションは、原点の空間ロケーションに対するオフセットロケーションである。
【0098】
本願の実施形態では、番号が、各3Dマップ点に配分され、3Dマップのデータに書き込まれてもよいし、又はメモリにおける複数の3Dマップ点のストレージシーケンスが、3Dマップ点の番号を暗示的に示すのに使用されてもよい。3Dマップに含まれる複数の3Dマップ点のシーケンスが無意味であることに留意されたい。したがって、前述の番号は、3Dマップ点間を区別するために、3Dマップ点を識別するのに使用される識別子とみなされてよい。しかしながら、番号は、複数の3Dマップ点のシーケンスを限定するように意図されない。例えば、3Dマップは、番号がそれぞれ1、2、及び3である3つの3Dマップ点を含み、当該3つの3Dマップ点は、1、2、及び3の順序において、又は3、2、及び1の順序において、又は2、1、及び3の順序において等で、処理されてよい。
【0099】
可能な実装では、3Dマップのデータは、複数のエリア記述子を更に含み、複数のエリア記述子のうちの任意の1つは、複数の3Dマップ点のうちの幾つか又は全ての3Dマップ点の特徴を記述する。具体的に言うと、複数のエリア記述子のうちの任意の1つについて、エリア記述子は、複数の3Dマップ点のうちの幾つか又は全ての3Dマップ点の特徴を記述してよい。このケースでは、エリア記述子及び3Dマップ点は、1対多関係にある。複数の3Dマップ点の各3Dマップ点の特徴は、複数のエリア記述子のうちの幾つか又は全てのエリア記述子によって記述されてよい。このケースでは、3Dマップ点及びエリア記述子は、1対多関係にある。複数のエリア記述子及び複数の3Dマップ点は、多対多関係にあることが認識され得る。エリア記述子を生成する方法は、BOW及び局所集約記述子のベクトル(vector of locally aggregated descriptors、VLAD)等の従来的な方法、及びNetVLAD又は人工知能(artificial intelligence、AI)に基づく新規の方法を含むが、これらに限定されるものではない。同様に、複数のエリア記述子が、複数のエリア記述子間を区別するために番号によって識別されてよい。しかしながら、同様に、番号は、複数のエリア記述子のシーケンスを限定するように意図されない。
【0100】
可能な実装では、3Dマップのデータは、3Dマップ点及び記述子の間の対応関係を更に含む。対応関係は、いずれの3Dマップ点にいずれかの記述子が対応するのか、及びいずれの記述子にいずれかの3Dマップ点が対応するのかを明確に記述する。
【0101】
任意選択で、前述の対応関係は、エリア記述子の番号及び3Dマップ点の番号の間の対応表を使用することによって明示的に記述されてよい。例えば、3Dマップは、番号がT1~T3である3つのエリア記述子、及び5つの3Dマップ点を含む。6つの3Dマップ点空間ロケーションの番号は、P1~P6であり、6つの3Dマップ点記述子の番号は、F1~F6である。対応表が、表1において示されている。
[表1]
【表1】
【0102】
表1は、エリア記述子の番号及び3Dマップ点の番号の間の対応表の一例であることに留意されたい。対応表は、代替的には、別のフォーマット又は方式で提示されてよい。これは、本願において具体的に限定されるものではない。
【0103】
任意選択で、前述の対応関係は、代替的には、エリア記述子及び3Dマップ点のストレージロケーションを使用することによって暗示的に記述されてよい。例えば、T1がまずメモリに記憶され、その後、P1、P2、及びP3のデータが記憶され;その後、T2が記憶され、その後、P2及びP3のデータが記憶され;最終的に、T3が記憶され、その後、P3、P4、P5、及びP6のデータが記憶される。
【0104】
図2は、本願の一実施形態に係る電子デバイス20の構造の概略図である。
図2において示されているように、電子デバイス20は、
図1において示された実施形態における第1の電子デバイス及び1つ又は複数の第2の電子デバイスのうちの少なくとも1つであってよい。
図2において示されている構造は、電子デバイス20に対する特定の限定を構成しないことが理解されるべきである。本願の他の幾つかの実施形態では、電子デバイス20は、
図2において示されているものよりも多くの又は少ないコンポーネントを含んでもよいし、又は幾つかのコンポーネントを組み合わせてもよいし、又は幾つかのコンポーネントを分割してもよいし、又は異なるコンポーネント配置を有してもよい。
図2において示されているコンポーネントは、1つ又は複数の信号処理及び/又は特定用途向け集積回路を含むハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせにおいて実装されてよい。
【0105】
電子デバイス20は、チップ21、メモリ22(1つ又は複数のコンピュータ可読記憶媒体)、ユーザインターフェース23、ディスプレイコンポーネント24、カメラ25、センサ26、デバイス測位を実行するように構成された測位モジュール27、及び通信を実行するように構成された送受信機28を備えてよい。これらのコンポーネントは、1つ又は複数のバス29を使用することによって互いに通信してよい。
【0106】
1つ又は複数のプロセッサ211、クロックモジュール212、及び電力管理モジュール213が、チップ21に統合されてよい。チップ21に統合されたクロックモジュール212は、主に、プロセッサ211のためのデータ送信及びタイミング制御のために要求されるタイマを提供するように構成されている。タイマは、データ送信及びタイミング制御のクロック機能を実装してよい。プロセッサ211は、動作を実行し、命令動作コード及びタイミング信号に基づいて動作制御信号を生成して、命令フェッチング及び命令実行の制御を完了してよい。チップ21に統合された電力管理モジュール213は、主に、チップ21及び電子デバイス20の別のコンポーネントのために安定しかつ高精度の電圧を提供するように構成されている。
【0107】
プロセッサ211は、中央処理ユニット(central processing unit、CPU)とも称され得る。プロセッサ211は、具体的には、1つ又は複数の処理ユニットを含んでよい。例えば、プロセッサ211は、アプリケーションプロセッサ(application processor、AP)、モデムプロセッサ、グラフィックス処理ユニット(graphics processing unit、GPU)、画像信号プロセッサ(image signal processor、ISP)、コントローラ、ビデオコーデック、デジタル信号プロセッサ(digital signal processor、DSP)、ベースバンドプロセッサ、ニューラル処理ユニット(neural-network processing unit、NPU)等を含んでよい。異なる処理ユニットが、独立したコンポーネントであってもよいし、又は1つ又は複数のプロセッサに統合されてもよい。
【0108】
可能な実装では、プロセッサ211は、1つ又は複数のインターフェースを含んでよい。インターフェースは、集積回路間(inter-integrated circuit、I2C)インターフェース、集積回路間サウンド(inter-integrated circuit sound、I2S)インターフェース、パルス符号変調(pulse code modulation、PCM)インターフェース、汎用非同期送受信機(universal asynchronous receiver/transmitter,UART)インターフェース、モバイルインダストリプロセッサインターフェース(mobile industry processor interface、MIPI)、汎用入力/出力(general-purpose input/output、GPIO)インターフェース、加入者識別モジュール(subscriber identity module、SIM)インターフェース、ユニバーサルシリアルバス(universal serial bus、USB)ポート等を含んでよい。
【0109】
メモリ22は、バス29を通してプロセッサ211に接続されてもよいし、又はプロセッサ311に結合されてもよく、様々なソフトウェアプログラム及び/又は命令の複数のグループを記憶するように構成されている。メモリ22は、高速ランダムアクセスメモリ(例えば、キャッシュ)を含んでもよいし、又は不揮発性メモリ、例えば、1つ又は複数の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は別の不揮発性ソリッドステート記憶デバイスを含んでもよい。メモリ22は、オペレーティングシステム、例えば、アンドロイド(登録商標)(Android(登録商標))、Apple(登録商標)(iOS(登録商標))、Microsoft(登録商標)(Windows(登録商標))、又はLinux(登録商標)等の埋め込みオペレーティングシステムを記憶してよい。メモリ22は、データ、例えば、画像データ、点群データ、3Dマップデータ、姿勢データ、座標系変換情報、及びマップ更新情報を更に記憶してよい。メモリ22は、コンピュータ実行可能プログラムコードを更に記憶してよい。コンピュータ実行可能プログラムコードは、命令、例えば、SLAMシステムの通信プログラム命令及び関連プログラム命令を含む。メモリ22は、1つ又は複数のアプリケーション、例えば、AR/VR/MR、マップアプリケーション、画像管理アプリケーション、及びナビゲーション及び制御アプリケーション等の仮想シナリオアプリケーションを更に記憶してよい。メモリ22は、ユーザインターフェースプログラムを更に記憶してよい。ユーザインターフェースプログラムは、アプリケーションのコンテンツ、例えば、AR/VR/MR等の仮想シナリオにおける仮想オブジェクトを、グラフィカル動作インターフェースを使用することによって鮮明に表示し、ディスプレイコンポーネント24を使用することによってコンテンツを提示し、メニュー、ダイアログボックス、又はボタン等の入力制御を使用することによって、アプリケーション上でユーザによって実行される制御動作を受信してよい。
【0110】
ユーザインターフェース23は、例えば、タッチパネルであってよい。タッチパネルは、タッチパネル上でユーザによって実行される動作の命令を検出してよい。ユーザインターフェース23は、例えば、キーパッド、物理ボタン、又はマウスであってよい。
【0111】
電子デバイス20は、1つ又は複数のディスプレイコンポーネント24を含んでよい。電子デバイス20は、ディスプレイコンポーネント24、グラフィックス処理ユニット(GPU)及びチップ21におけるアプリケーションプロセッサ(AP)等を使用することによって共同でディスプレイ機能を実装してよい。GPUは、画像処理を実装するためのマイクロプロセッサであり、ディスプレイコンポーネント24及びアプリケーションプロセッサに接続される。GPUは、グラフィックスレンダリングのための数学的及び幾何学的計算を実行する。ディスプレイコンポーネント24は、電子デバイス20によって出力されたインターフェースコンテンツを表示し、例えば、AR/VR/MR等の仮想シナリオにおいて画像、ビデオ等を表示してよい。インターフェースコンテンツは、実行中アプリケーションのインターフェース、システムレベルメニュー等を含んでよく、具体的には、次のインターフェース要素:ボタン(Button)、テキスト入力ボックス(Text)、スクロールバー(Scrollbar)、及びメニュー(Menu)等の入力インターフェース要素;及びウィンドウ(Window)、ラベル(Label)、画像、ビデオ、及びアニメーション等の出力インターフェース要素を含んでよい。
【0112】
ディスプレイコンポーネント24は、ディスプレイパネル、レンズ(例えば、VRグラス)、投影スクリーン等であってよい。ディスプレイパネルは、ディスプレイスクリーンとも称され得、例えば、タッチスクリーン、フレキシブルスクリーン、湾曲スクリーン等であってもよいし、又は別の光学コンポーネントであってもよい。本願の実施形態における電子デバイスのディスプレイスクリーンは、タッチスクリーン、フレキシブルスクリーン、湾曲スクリーン、又は別の形式のスクリーンであってよいことが理解されるべきである。換言すれば、電子デバイスのディスプレイスクリーンは、画像を表示する機能を有し、ディスプレイスクリーンの具体的な材料及び形状は、具体的に限定されるものではない。
【0113】
例えば、ディスプレイコンポーネント24がディスプレイパネルを含む場合、ディスプレイパネルは、液晶ディスプレイ(liquid crystal display、LCD)、有機発光ダイオード(organic light-emitting diode、OLED)、アクティブマトリクス有機発光ダイオード又はアクティブマトリクス有機発光ダイオード(active-matrix organic light-emitting diode、AMOLED)、フレキシブル発光ダイオード(flexible light-emitting diode、FLED)、ミニLed、マイクロLed、マイクロoLed、量子ドット発光ダイオード(quantum dot light-emitting diode、QLED)等を使用してよい。加えて、可能な実装では、ユーザインターフェース23におけるタッチパネルは、ディスプレイコンポーネント24におけるディスプレイパネルに結合されてよい。例えば、タッチパネルは、ディスプレイパネルの下方に配置されてよく、タッチパネルは、ユーザがディスプレイパネルを使用することによってタッチ動作(例えば、タップ、スライド、又はタッチ)を入力するとディスプレイパネルに対して作用するタッチ圧力を検出するように構成されており、ディスプレイパネルは、コンテンツを表示するように構成されている。
【0114】
カメラ25は、単眼カメラ、双眼カメラ、又は深度カメラであってよく、環境を撮影/記録して、画像/ビデオ画像を取得するように構成されている。カメラ25によって収集された画像/ビデオ画像は、例えば、SLAMシステムの入力データとして使用されてもよいし、又は画像/ビデオは、ディスプレイコンポーネント24を使用することによって表示されてもよい。
【0115】
可能な実装では、カメラ25は、センサとみなされてもよい。カメラ25によって収集される画像は、IMGフォーマットであってもよいし、又は別のフォーマットタイプであってもよい。これは、具体的には、本願の実施形態において限定されない。
【0116】
センサ26は、電子デバイス20のステータス変化(例えば、回転、スイング、移動、又はジッタ)に関連したデータを収集するように構成されてよい。センサ26によって収集されるデータは、SLAMシステムの入力データとして使用されてよい。センサ26は、1つ又は複数のセンサ、例えば、慣性測定ユニット(inertial measurement unit、IMU)及び飛行時間(time of flight、TOF)センサを含んでよい。IMUは、ジャイロスコープ及び加速度計等のセンサを含んでよい。ジャイロスコープは、電子デバイスが運動するときの電子デバイスの角速度を測定するように構成されており、加速度計は、電子デバイスが運動するときの電子デバイスの加速度を測定するように構成されている。TOFセンサは、光送信機及び光受信機を含んでよい。光送信機は、外部に光、例えば、レーザ光、赤外線、又はレーダ波を放出するように構成されている。光受信機は、反射された光、例えば、反射されたレーザ光、赤外線、又はレーダ波を検出するように構成されている。
【0117】
センサ26は、慣性センサ、気圧計、磁気センサ、及び車輪速度計等の更に他のセンサを更に含んでよいことに留意されたい。これは、具体的には、本願の実施形態において限定されない。
【0118】
測位モジュール27は、電子デバイス20の物理的測位を実装するように構成されており、例えば、電子デバイス20の初期ロケーションを取得するように構成されている。測位モジュール27は、Wi-Fi測位モジュール、ブルートゥース測位モジュール、基地局測位モジュール、及び衛星測位モジュールのうちの1つ又は複数を含んでよい。全球航法衛星システム(global navigation satellite system、GNSS)が、測位を支援するために衛星測位モジュール内に配置されてよい。GNSSは、BeiDouシステム、全球測位システム(global positioning system、GPS)システム、GLONASS(全球航法衛星システム、GLONASS)システム、及びガリレオ航法衛星システム(Galileo)システムに限定されるものではない。
【0119】
送受信機28は、電子デバイス20及び別のデバイス(例えば、サーバ又は別の電子デバイス)の間の通信を実装するように構成されている。送受信機28は、送信機及び受信機を統合し、これらは、それぞれ、無線周波数信号を送信及び受信するように構成されている。特定の実装では、送受信機28は、アンテナシステム、無線周波数(radio frequency、RF)送受信機、1つ又は複数の増幅器、チューナ、1つ又は複数の発振器、デジタル信号プロセッサ、コーデック(CODEC)チップ、加入者識別モジュール(subscriber identity module、SIM)カード、記憶媒体等を含むが、これらに限定されるものではない。可能な実装では、送受信機28は、代替的には、別個のチップ上に実装されてよい。送受信機28は、2G/3G/4G/5G等の少なくとも1つのデータネットワークにおける少なくとも1つのデータネットワーク通信をサポートし、及び/又は次の短距離ワイヤレス通信方式:ブルートゥース(Bluetooth(登録商標)、BT)通信、ワイヤレスフィデリティ(wireless fidelity、Wi-Fi)通信、近距離無線通信(near field communication、NFC)、赤外線(infrared、IR)ワイヤレス通信、超広帯域(ultra wideband、UWB)通信、及びジグビー(登録商標)(ZigBee(登録商標))プロトコル通信のうちの少なくとも1つをサポートする。
【0120】
本願のこの実施形態では、プロセッサ211は、電子デバイス20の様々な機能アプリケーション及びデータ処理を実行するために、メモリ22に記憶されたプログラムコードを実行する。
【0121】
図3は、本願の一実施形態に係るサーバ30の構造の概略図である。
図3において示されているように、サーバ30は、
図1において示された実施形態におけるサーバであってよい。サーバ30は、プロセッサ301、メモリ302(1つ又は複数のコンピュータ可読記憶媒体)、及び送受信機303を含む。これらのコンポーネントは、1つ又は複数のバス304を使用することによって互いに通信してよい。
【0122】
プロセッサ301は、1つ又は複数のCPUであってよい。プロセッサ301が1つのCPUである場合、CPUは、シングルコアCPUであってもよいし、又はマルチコアCPUであってもよい。
【0123】
メモリ302は、バス304を通してプロセッサ301に接続されてもよいし、又はプロセッサ301に結合されてもよく、様々なプログラムコード及び/又は命令及びデータ(例えば、マップデータ及び姿勢データ)の複数のグループを記憶するように構成されている。特定の実装では、メモリ302は、ランダムアクセスメモリ(Random Access Memory、RAM)、リードオンリメモリ(Read-Only Memory、ROM)、消去可能プログラマブルリードオンリメモリ(Erasable Programmable Read-Only Memory、EPROM)、ポータブルリードオンリメモリ(Compact Disc Read-Only Memory、CD-ROM)等を含むが、これらに限定されるものではない。
【0124】
送受信機303は、主に、受信機及び送信機を統合する。受信機は、電子デバイスによって送信されたデータ(例えば、リクエスト又は画像)を受信するように構成されており、送信機は、データ(例えば、マップデータ又は姿勢データ)を電子デバイスに送信するように構成されている。
【0125】
図3において示されているサーバ30は、本願のこの実施形態において提供される一例に過ぎず、サーバ30は、図において示されているもの以外の更なるコンポーネントを更に有してよいことが理解されるべきである。これは、具体的には、本願の実施形態において限定されない。
【0126】
本願のこの実施形態では、プロセッサ301は、サーバ30の様々な機能アプリケーション及びデータ処理を実行するために、メモリ302に記憶されたプログラムコードを実行する。
【0127】
本願の実施形態において使用される「結合」という用語は、直接接続、又は1つ又は複数の中間コンポーネント又は回路を通した接続を意味する。
【0128】
図4aは、本願の一実施形態に係るアプリケーションシナリオの概略図である。
図4aにおいて示されているように、このアプリケーションシナリオでは、電子デバイスが、センサを使用することによって視覚的情報を収集し、当該視覚的情報、及びサーバからの3Dマップを参照して電子デバイスの現在の姿勢を決定する。
【0129】
3Dマップは、サーバによって提供される。具体的に言うと、サーバは、3Dマップを作成し、その後、3Dマップを圧縮し、3Dマップの圧縮されたデータを電子デバイスに送信する。3Dマップの圧縮されたデータを受信した後、電子デバイスは、解凍を実行して3Dマップの再構成されたデータを取得し、収集された視覚的情報及び3Dマップの再構成されたデータを参照して電子デバイスの現在の姿勢を決定する。姿勢は、電子デバイスのロケーション情報であり、ワールド座標系における絶対姿勢であってもよいし、又は環境内の一点に対する相対姿勢であってもよい。
【0130】
本願のこの実施形態では、サーバは、事前に3Dマップを作成し、3Dマップを圧縮し、その後、3Dマップの圧縮されたデータをローカルに記憶してよい。このようにして、記憶空間を節約することができる。加えて、サーバは、3Dマップの圧縮されたデータを別のデバイス、例えば、クラウドストレージに送信してよい。
【0131】
1.サーバは、3Dマップを作成し、3Dマップを圧縮して3Dマップの圧縮されたデータを取得し、圧縮されたデータをローカルに記憶する。
【0132】
サーバは、3Dマップを圧縮して、ローカル記憶空間を節約する。
【0133】
2.電子デバイスは、マップダウンロードリクエストをサーバに送信する。マップダウンロードリクエストは、2つの方式でトリガされる:
【0134】
(1)ユーザは、電子デバイス上にインストールされたマップアプリケーションを開始し、当該アプリケーションは、当該アプリケーションに対応するサーバに、GPS測位又はWi-Fi測位に基づいて取得されたロケーション情報をアップロードする。アップロード動作は、マップダウンロードリクエストをトリガしてよい。アップロードされたコンテンツは、ロケーション情報を含み、サーバは、ロケーション情報に基づいて予備推定を実行し、電子デバイスに、ロケーション情報によって示される測位点が属するエリアの3Dマップの圧縮されたデータを送信してよい。ロケーション情報によって示される測位点が属するエリアの範囲は、事前設定されてよい。例えば、測位点が属するエリアは、測位点が位置する任意のレベルにおける行政地域(郡、市、国、又は行政地域を含む)であってもよいし、又は測位点を中心とし、指定された距離を半径として使用する円形エリアであってもよい。
【0135】
(2)ユーザは、電子デバイス上にインストールされたマップアプリケーションを開始し、アプリケーション上にエリアをアクティブに入力又は選択する。例えば、ユーザは、「xxビジネスセンタ」をアクティブに入力するか、又は「ストリートA、ストリートB、及びストリートC」のリストから「ストリートA」を選択する。ユーザの前述の動作は、マップダウンロードリクエストをトリガしてよい。ユーザが地理的ロケーションを入力又は選択するか否かにかかわらず、サーバは、それに応じて、地理的ロケーションの3Dマップの圧縮されたデータを電子デバイスに送信する。
【0136】
本願のこの実施形態では、前述の2つの方式に加えて、別の方式がマップダウンロードリクエストをトリガするために使用されてよいことが理解されるべきである。例えば、電子デバイスは、3Dマップをダウンロードするか又は3Dマップのダウンロードを開始する条件が満たされているか否かを自動的に検出するか、又は電子デバイスは、エリア範囲の3Dマップをダウンロードするようにサーバにリクエストするために、周囲光変化又は環境変化を検出すると3Dマップのダウンロードを開始する。エリア範囲のサイズは、具体的に限定されるものではない。
【0137】
3.サーバは、3Dマップの圧縮されたデータを電子デバイスに送信する。
【0138】
4.電子デバイスは、センサを使用することによって視覚的情報を収集する。
【0139】
段階3及び段階4は互いに独立しており、シーケンスは限定されるものではないことに留意されたい。
【0140】
5.電子デバイスは、3Dマップの圧縮されたデータを解凍して3Dマップの再構成されたデータを取得する。
【0141】
6.電子デバイスは、視覚的情報に基づいて3Dマップにおける測位を実行して、視覚的情報に対応する姿勢を取得する。
【0142】
3Dマップの圧縮されたデータを受信した後、電子デバイスは、圧縮されたデータを即座には解凍する必要はなく、視覚的情報に基づいて測位を実行する前にのみ3Dマップの再構成されたデータを取得するために圧縮されたデータを解凍する必要がある。例えば、ユーザは、「オフラインマップ」をダウンロードすることによってエリア範囲の3Dマップの圧縮されたデータを事前ダウンロードし、測位が要求される場合にのみ3Dマップの圧縮されたデータを解凍してよい。
【0143】
図4bは、本願の一実施形態に係るアプリケーションシナリオの概略図である。
図4bにおいて示されているように、このアプリケーションシナリオでは、電子デバイスが、センサを使用することによって視覚的情報を収集し、サーバが、電子デバイスからの当該視覚的情報及び3Dマップを参照して電子デバイスの現在の姿勢を決定する。
【0144】
3Dマップは、サーバによって提供される。具体的に言うと、サーバは、3Dマップを作成し、その後、3Dマップを圧縮し、3Dマップの圧縮されたデータをローカルに記憶する。電子デバイスから視覚的情報を受信した後、サーバは、解凍を実行して3Dマップの再構成されたデータを取得し、視覚的情報及び3Dマップの再構成されたデータを参照して電子デバイスの現在の姿勢を決定する。
【0145】
1.サーバは、3Dマップを作成し、3Dマップを圧縮して3Dマップの圧縮されたデータを取得し、圧縮されたデータをローカルに記憶する。
【0146】
2.電子デバイスは、センサを使用することによって視覚的情報を収集する。
【0147】
3.電子デバイスは、視覚的情報をサーバに送信する。
【0148】
4.サーバは、3Dマップの圧縮されたデータを解凍して3Dマップの再構成されたデータを取得する。
【0149】
サーバは、3Dマップを圧縮して、記憶空間を節約することが理解されるべきである。
【0150】
5.サーバは、視覚的情報に基づいて3Dマップにおける測位を実行して、視覚的情報に対応する姿勢を取得する。
【0151】
6.サーバは、姿勢を電子デバイスに送信する。
【0152】
図4cは、本願の一実施形態に係るアプリケーションシナリオの概略図である。
図4cにおいて示されているように、このアプリケーションシナリオでは、電子デバイスが、センサを使用することによって視覚的情報を収集し、収集された視覚的情報及び3Dマップを参照して電子デバイスの現在の姿勢を決定する。
【0153】
3Dマップは、電子デバイスによって提供される。具体的に言うと、電子デバイスは、3Dマップを作成し、その後、3Dマップを圧縮し、3Dマップの圧縮されたデータをローカルに記憶する。視覚的情報が収集されると、電子デバイスは、解凍を実行して3Dマップの再構成されたデータを取得し、収集された視覚的情報及び3Dマップの再構成されたデータを参照して電子デバイスの現在の姿勢を決定する。
【0154】
1.電子デバイスは、3Dマップを作成し、3Dマップを圧縮して3Dマップの圧縮されたデータを取得し、圧縮されたデータをローカルに記憶する。
【0155】
電子デバイスは、3Dマップを圧縮して、記憶空間を節約することが理解されるべきである。
【0156】
2.電子デバイスは、センサを使用することによって視覚的情報を収集する。
【0157】
3.電子デバイスは、3Dマップの圧縮されたデータを解凍して3Dマップの再構成されたデータを取得する。
【0158】
4.電子デバイスは、視覚的情報に基づいて3Dマップにおける測位を実行して、視覚的情報に対応する姿勢を取得する。
【0159】
図4dは、本願の一実施形態に係るアプリケーションシナリオの概略図である。
図4bにおいて示されているように、このアプリケーションシナリオでは、第2の電子デバイスが、センサを使用することによって視覚的情報を収集し、当該視覚的情報、及びサーバからの3Dマップを参照して第2の電子デバイスの現在の姿勢を決定する。
【0160】
3Dマップは、第1の電子デバイスによって作成される。具体的に言うと、第1の電子デバイスは、3Dマップを作成し、3Dマップを圧縮し、その後、3Dマップの圧縮されたデータをサーバに送信する。サーバは、その後、3Dマップの圧縮されたデータを第2の電子デバイスに送信する。第2の電子デバイスは、解凍を実行して3Dマップの再構成されたデータを取得し、収集された視覚的情報及び3Dマップの再構成されたデータを参照して第2の電子デバイスの現在の姿勢を決定する。
【0161】
本願のこの実施形態では、第1の電子デバイスは、事前に3Dマップを作成し、3Dマップを圧縮し、その後、3Dマップの圧縮されたデータをサーバに送信してよい。このようにして、送信帯域幅を削減することができる。
【0162】
1.第1の電子デバイスは、3Dマップを作成し、3Dマップを圧縮して3Dマップの圧縮されたデータを取得する。
【0163】
2.第1の電子デバイスは、3Dマップの圧縮されたデータをサーバに送信する。
【0164】
第1の電子デバイスは、3Dマップを圧縮し、その後、3Dマップの圧縮されたデータを送信して送信帯域幅を削減し、送信効率を改善する。
【0165】
3.第2の電子デバイスは、マップダウンロードリクエストをサーバに送信する。
【0166】
第2の電子デバイスは、
図4aにおいて示されたトリガ方式に基づいてマップダウンロードリクエストを送信してよい。
【0167】
4.サーバは、3Dマップの圧縮されたデータを第2の電子デバイスに送信する。
【0168】
5.第2の電子デバイスは、3Dマップの圧縮されたデータを解凍して3Dマップの再構成されたデータを取得する。
【0169】
6.第2の電子デバイスは、センサを使用することによって視覚的情報を収集する。
【0170】
7.第2の電子デバイスは、視覚的情報に基づいて3Dマップにおける測位を実行して、視覚的情報に対応する姿勢を取得する。
【0171】
図4eは、本願の一実施形態に係るアプリケーションシナリオの概略図である。
図4cにおいて示されているように、このアプリケーションシナリオでは、第2の電子デバイスが、センサを使用することによって視覚的情報を収集し、サーバが、第2の電子デバイスからの視覚的情報、及び第1の電子デバイスからの3Dマップを参照して第2の電子デバイスの現在の姿勢を決定する。
【0172】
3Dマップは、第1の電子デバイスによって作成される。具体的に言うと、第1の電子デバイスは、3Dマップを作成し、3Dマップを圧縮し、その後、3Dマップの圧縮されたデータをサーバに送信する。サーバは、解凍を実行して3Dマップの再構成されたデータを取得し、第2の電子デバイスからの視覚的情報及び3Dマップの再構成されたデータを参照して第2の電子デバイスの現在の姿勢を決定する。
【0173】
1.第1の電子デバイスは、3Dマップを作成し、3Dマップを圧縮して3Dマップの圧縮されたデータを取得する。
【0174】
2.第1の電子デバイスは、3Dマップの圧縮されたデータをサーバに送信する。
【0175】
3.第2の電子デバイスは、センサを使用することによって視覚的情報を収集する。
【0176】
4.第2の電子デバイスは、測位リクエストをサーバに送信し、ここで、測位リクエストは、視覚的情報を保持する。
【0177】
5.サーバは、3Dマップの圧縮されたデータを解凍して3Dマップの再構成されたデータを取得する。
【0178】
6.サーバは、視覚的情報に基づいて3Dマップにおける測位を実行して、視覚的情報に対応する姿勢を取得する。
【0179】
7.サーバは、第2の電子デバイスに、測位を通して取得された姿勢を送信する。
【0180】
図4fは、本願の一実施形態に係るアプリケーションシナリオの概略図である。
図4dにおいて示されているように、このアプリケーションシナリオでは、第2の電子デバイスが、センサを使用することによって視覚的情報を収集し、当該視覚的情報、及び第1の電子デバイスからの3Dマップを参照して第2の電子デバイスの現在の姿勢を決定する。
【0181】
3Dマップは、第1の電子デバイスによって作成される。具体的に言うと、第1の電子デバイスは、3Dマップを作成し、3Dマップを圧縮し、その後、3Dマップの圧縮されたデータを第2の電子デバイスに送信する。第2の電子デバイスは、解凍を実行して3Dマップの再構成されたデータを取得し、収集された視覚的情報及び第1の電子デバイスからの3Dマップを参照して第2の電子デバイスの現在の姿勢を決定する。
【0182】
1.第1の電子デバイスは、3Dマップを作成し、3Dマップを圧縮して3Dマップの圧縮されたデータを取得し、圧縮されたデータをローカルに記憶する。
【0183】
2.第2の電子デバイスは、マップダウンロードリクエストを第1の電子デバイスに送信する。
【0184】
3.第1の電子デバイスは、3Dマップの圧縮されたデータを第2の電子デバイスに送信する。
【0185】
4.第2の電子デバイスは、3Dマップの圧縮されたデータを解凍して3Dマップの再構成されたデータを取得する。
【0186】
5.第2の電子デバイスは、センサを使用することによって視覚的情報を収集する。
【0187】
6.第2の電子デバイスは、視覚的情報に基づいて3Dマップにおける測位を実行して、視覚的情報に対応する姿勢を取得する。
【0188】
図4a~
図4fにおいて示された実施形態において使用される測位アルゴリズムは、以下を含んでよい。
【0189】
(1)未索出エリア記述子が視覚的情報から抽出され、ここで、未索出エリア記述子を抽出するために使用されるアルゴリズムは、3Dマップからエリア記述子を抽出するアルゴリズムと一致する。
【0190】
(2)未索出3Dマップ点が視覚的情報から抽出され、未索出3Dマップ点空間ロケーション及び未索出3Dマップ点記述子が取得され、ここで、未索出3Dマップ点記述子を抽出するアルゴリズムは、3Dマップから3Dマップ点記述子を抽出するアルゴリズムと一致する。
【0191】
(3)索出が、未索出エリア記述子に基づいて3Dマップのデータ内に含まれる複数のエリア記述子において実行されて、複数の候補エリア記述子が取得される。
【0192】
本願の実施形態では、未索出エリア記述子及び複数のエリア記述子における各エリア記述子の間の距離が計算されてよい。この距離は、ハミング距離、マンハッタン距離、ユークリッド距離等を含んでよい。その後、条件(例えば、距離が閾値よりも低い)を満たす少なくとも1つのエリア記述子が候補エリア記述子として選択される。
【0193】
(4)未索出3Dマップ点記述子、及び複数の候補エリア記述子に対応する3Dマップ点記述子の間で照合が別個に実行される。照合は、未索出3Dマップ点記述子、及び複数の候補エリア記述子に対応する3Dマップ点記述子の間で類似度を別個に計算して、最も類似した3Dマップ点を発見することである。
【0194】
(5)電子デバイスの姿勢は、ORB-SLAM2におけるPnP又はEPnP等の姿勢求解アルゴリズムを使用することによって発見された3Dマップ点に基づいて計算される。
【0195】
図4a~
図4fにおけるアプリケーションシナリオのうちの任意の1つにおいて、測位は、電子デバイスの現在の姿勢を取得するために、本願の実施形態における3Dマップに基づいて実行される。姿勢は、ARナビゲーション、ARヒューマン-コンピュータインタラクション、運転支援、及び自律運転等の分野に適用されてよい。例えば、姿勢に基づくARナビゲーションが一例として使用される。
図4gは、本願の一実施形態に係る、電子デバイスによって表示されるユーザインターフェースの概略図である。電子デバイスは、姿勢に基づいて、
図4gにおいて示されているユーザインターフェースを表示してよい。ユーザインターフェースは、会議室2を向くナビゲーション矢印のインジケーションを含んでよく、当該会議室2を向くナビゲーション矢印のインジケーションは、姿勢に基づいてサーバから取得されたか、又は姿勢に基づいてローカルに取得された仮想オブジェクトであってよい。ユーザインターフェースは、センサによって収集された視覚的情報、例えば、
図4gにおいて示されている建築物を更に含んでよい。ユーザは、
図4gにおいて示されている電子デバイスのユーザインターフェースを参照して会議室2に向かう。
【0196】
本願の実施形態における3Dマップの、解凍を通して取得された、再構成されたデータは、3Dマップの再構成されたデータとも称され得ることに留意されたい。
【0197】
図4a~
図4fにおいて示された実施形態では、圧縮及び解凍は、3Dマップに対して実行され、測位は、電子デバイスの現在の姿勢を取得するために、3Dマップの、解凍を通して取得された、再構成されたデータに基づいて実行される。測位について、実装可能な方式では、測位は、3Dマップの、全解凍を通して取得された、再構成されたデータに基づいて実行されてよい。別の可能な実装では、本願の以下の実施形態において提供される3Dマップを索出する方法は、スクリーニングを通して、非対称バイナリデータを使用することによって少なくとも1つのターゲット3Dマップ記述子を取得するのに使用されてよく、その後、測位が、少なくとも1つのターゲット3Dマップ記述子を使用することによって実行されてよい。もちろん、スクリーニングを通してより少ないターゲット3Dマップ記述子又はより正確なターゲット3Dマップ記述子を取得するために、別の索出方式において少なくとも1つのターゲット3Dマップ記述子において更なる索出が実行されてよいことが理解され得る。本願の以下の実施形態において提供される3Dマップを索出する方法によれば、索出性能は、非対称バイナリデータ索出を使用することによって改善されてよい。索出のために使用される索出記述子のバイナリデータの長さは、3Dマップ記述子のバイナリデータの長さとは異なり、それにより、より小さい長さを有する記述子(3Dマップ記述子又は索出記述子)は、より高い圧縮比を有し得、それによって、記憶空間及び/又は送信リソースオーバヘッドが節約され、より大きい長さを有する記述子(索出記述子又は3Dマップ記述子)は、索出のためにより多くの情報を提供し得、それによって、索出の正確さが改善される。3Dマップの、全解凍を通して取得された、再構成されたデータにおける索出と比較して、本願の以下の実施形態において提供される3Dマップを索出する方法は、索出の効率を改善し、索出の正確さを保証することができる。以下は、3Dマップを索出する方法を説明する。
【0198】
本願の実施形態における3Dマップの索出は、3Dマップ上の複数の3Dマップ点から幾つかの最も類似した又は最も関連した3Dマップ点を発見することを意味する。
【0199】
本願の実施形態におけるバイナリデータの長さは、バイナリデータのビットの数(ビット数とも称される)であってよい。例えば、バイナリデータが110である場合、バイナリデータにおけるビットの数は3である。
【0200】
本願の実施形態において提供される索出方法は、別の技術分野、例えば、画像又はビデオデータの索出、オーディオデータの索出、及び点群データの索出に適用されてもよいことに留意されたい。
【0201】
前述の説明に基づいて、以下は、本願の一実施形態に係る、3Dマップを索出する方法を提供する。便宜上、以下で説明される方法の実施形態は、一連のアクション段階の組み合わせとして表現される。しかしながら、当業者であれば、本願の技術的解決策の特定の実装が、説明される一連のアクション段階のシーケンスに限定されるものではないことを理解するべきである。
【0202】
図5を参照されたい。
図5は、本願の一実施形態に係る、3Dマップを索出する方法の概略フローチャートである。幾つかの実装では、方法は、
図1~
図4fの例のうちの任意の1つにおける電子デバイス(例えば、第1の電子デバイス又は第2の電子デバイス)に適用されてもよいし、又は
図1~
図4fの例のうちの任意の1つにおけるサーバに適用されてもよい。本願の実施形態における3Dマップを索出する方法を実行する実行本体は、デコンプレッサ側又はデコーダ側とも称され得る。方法は、以下の段階を含むが、これらに限定されるものではない。
【0203】
S101:複数の3Dマップ記述子のバイナリデータを取得する。
【0204】
複数の3Dマップ記述子のうちの任意の1つは、3Dマップの少なくとも1つの3Dマップ点に対応する。3Dマップ記述子は、ベクトル、例えば、128次元ベクトル又は512次元ベクトルであってよい。3Dマップ記述子の次元の数は、前述の例に限定されるものではなく、別の値であってよい。例は、本願のこの実施形態では1つずつ説明されない。具体的には、3Dマップ記述子は、エリア記述子又は3Dマップ点記述子であってよい。1つのエリア記述子は、複数の3Dマップ点に対応してよい。具体的な説明及び記述のために、前述の実施形態における説明及び記述を参照されたい。詳細は、本明細書において再度説明されない。複数の3Dマップ記述子のバイナリデータは、複数の元の3Dマップ記述子に対して二値化が実行された後に取得される圧縮されたデータである。複数の3Dマップ記述子のバイナリデータのビットオーバヘッドは、複数の元の3Dマップ記述子のビットオーバヘッドよりも明らかに低い。
【0205】
本願のこの実施形態における3Dマップの索出範囲は、事前設定されてもよいし、又は視覚的情報を収集する電子デバイスのデバイス情報に基づいて動的に決定されてもよい。例えば、3Dマップの索出範囲は、デバイスにローカルに記憶された3Dマップにおける複数の3Dマップ記述子であってよい。別の例の場合、3Dマップの索出範囲は、電子デバイスのロケーション情報(例えば、GPS又はBeiDouを使用することによる測位を通して取得されたロケーション情報)に基づいて3Dマップにおいて決定される複数の3Dマップ記述子であってよい。一例が、
図4gを参照して説明及び記述のために提供される。クラウドサーバは、電子デバイスによって送信されたロケーション情報を受信し、ロケーション情報に基づいて3Dマップにおける複数の3Dマップ記述子を決定し、複数の3Dマップ記述子において索出を実行して、ターゲット3Dマップ記述子を取得し、ターゲット3Dマップ記述子に基づいて測位を実行して、電子デバイスの姿勢を取得してよい。クラウドサーバは、姿勢に基づいて対応する仮想オブジェクト情報を取得し、仮想オブジェクト情報を電子デバイスに送信し、それにより、電子デバイスは、
図4gにおいて示されたユーザインターフェースを表示する。ユーザインターフェースは、会議室2を向くナビゲーション矢印のインジケーションを含んでよく、当該会議室2を向くナビゲーション矢印のインジケーションは、仮想オブジェクト情報に基づいて取得されてよい。
【0206】
電子デバイスのデバイス情報は、電子デバイスが視覚的情報を収集する時点に関する情報、電子デバイスのタイプ情報(例えば、ウェアラブルデバイス又はインテリジェントスクリーン)等であってよいことに留意されたい。例は、本願のこの実施形態では1つずつ説明されない。
【0207】
二値化は、元の3Dマップ記述子を処理して、バイナリ記号によって表されるバイナリ文字列、すなわちバイナリデータにすることを意味する。バイナリデータのビットオーバヘッドは、通常、記憶空間及び/又は送信リソースオーバヘッドを節約するために、元のデータ(例えば、元の3Dマップ記述子)のビットオーバヘッドよりも明らかに低い。加えて、バイナリデータ間のハミング距離の計算量は、通常、元のデータ間のユークリッド距離又は内積距離等の距離の計算量よりも低く、それによって、計算複雑度が削減される。
【0208】
二値化は、例えば、ハッシングであってよい。ハッシングの原理は、元の3Dマップ記述子をハミング空間(バイナリ空間)にマッピングして、バイナリハッシュコードを生成することである。すなわち、バイナリデータは、ハッシュコードであってよい。ハッシュコードのビットオーバヘッドは、通常、ストレージ及び送信帯域幅を節約するために、元のデータのビットオーバヘッドよりも明らかに低い。加えて、ハッシュコード間のハミング距離の計算量は、通常、元のデータのユークリッド距離の計算量よりも低く、それによって、計算複雑度が削減される。二値化は、反復量子化(iterative quantization、ITQ)ハッシング、局所性鋭敏型ハッシング(locality-sensitive hashing、LSH)、スペクトルハッシング(spectral hashing)等を含むが、これらに限定されるものではない。幾つかの実施形態では、前述の二値化は、二値化の少なくとも1つの段階であってよい。二段階二値化が一例として使用されるが、異なる二値化方式が、二段階二値化のために使用されてよい。
【0209】
複数の3Dマップ記述子のバイナリデータを取得する方式は、次の幾つかの実装を含むが、これらに限定されるものではない:方式1:3Dマップの圧縮されたデータがメモリから取得され、ここで、3Dマップの圧縮されたデータは、複数の3Dマップ記述子のバイナリデータを含んでよい。方式2:3Dマップの圧縮されたデータは、メモリから取得され、3Dマップの圧縮されたデータは、解凍されて、複数の3Dマップ記述子のバイナリデータが取得される。本明細書における解凍は、予測等を含むが、これに限定されるものではない。方式3:3Dマップのビットストリームが、送信モジュール(例えば、送受信機)を使用することによって受信され、3Dマップのビットストリームは、解凍されて、複数の3Dマップ記述子のバイナリデータが取得される。本明細書における解凍は、非カプセル化、予測等を含むが、これらに限定されるものではない。
【0210】
S102:索出記述子のバイナリデータを取得し、ここで、索出記述子は、実環境に対応し、かつ電子デバイスのセンサによって収集された視覚的情報から抽出される特徴である。
【0211】
本明細書における索出記述子は、前述の実施形態における未索出エリア記述子又は未索出3Dマップ点記述子であってよい。換言すれば、索出記述子は、視覚的情報から抽出される未索出エリア記述子であってよく、未索出エリア記述子は、複数の3Dマップ点のうちの幾つか又は全ての特徴を記述する。未索出エリア記述子は、ベクトル、例えば、128次元ベクトル又は512次元ベクトルであってよい。未索出エリア記述子の次元の数は、前述の例に限定されるものではなく、別の値であってよい。例は、本願のこの実施形態では1つずつ説明されない。代替的には、索出記述子は、視覚的情報から抽出される未索出3Dマップ点記述子であってよく、未索出3Dマップ点記述子は、対応する3Dマップ点の局所特徴を示すのに使用される。未索出3Dマップ点記述子は、ベクトルであってよく、ベクトルの次元の数は、任意の正の整数であってよい。
【0212】
索出記述子を取得する方式は、以下の方式を含んでよいが、これらに限定されるものではない。実装可能な方式では、この実施形態の実行本体は、別のデバイスによって送信された索出記述子を受信してよい。例えば、この実施形態は、
図1において示された第1の電子デバイスによって実行されてよく、第1の電子デバイスは、第2の電子デバイスによって送信された索出記述子を受信してよい。別の例の場合、この実施形態は、
図1において示されたサーバによって実行されてよく、サーバは、第1の電子デバイス又は第2の電子デバイスによって送信された索出記述子を受信してよい。別の実装可能な方式では、この実施形態の実行本体は、別のデバイスによって送信された視覚的情報を受信し、視覚的情報から索出記述子を抽出してよい。例えば、この実施形態は、
図1において示された第1の電子デバイスによって実行されてよく、第1の電子デバイスは、第2の電子デバイスによって送信された視覚的情報を受信してよく、第1の電子デバイスは、視覚的情報から索出記述子を抽出する。別の例の場合、この実施形態は、
図1において示されたサーバによって実行されてよく、サーバは、第1の電子デバイス又は第2の電子デバイスによって送信された視覚的情報を受信してよく、サーバは、視覚的情報から索出記述子を抽出する。更に別の実装可能な方式では、この実施形態の実行本体は、ユーザによって入力された視覚的情報収集動作を検出し、動作に応答して、実環境に対して視覚的情報収集を実行するために実行本体のセンサをトリガして視覚的情報を取得し、視覚的情報から索出記述子を抽出してよい。例えば、この実施形態は、
図1において示された第1の電子デバイスによって実行されてよく、ユーザによって入力された視覚的情報収集動作を検出するとき、第1の電子デバイスは、動作に応答して、実環境に対して視覚的情報収集を実行するために第1の電子デバイスのセンサをトリガして、視覚的情報を取得し、視覚的情報から索出記述子を抽出する。視覚的情報収集動作は:タップ、タッチ、スライド、又はシェイク等の方式で、視覚的情報を収集するようにセンサを有効化すること、又は音声制御を通して又は別の方式で、視覚的情報を収集するようにセンサを有効化することであってよい。これは、本願の実施形態において限定されるものではない。例えば、第1の電子デバイスがユーザインターフェースにおける撮影ボタン上でユーザによって実行されたタッチ動作を検出した後、第1の電子デバイスのカメラがタッチ動作に応答して開始される。
【0213】
S103:索出記述子のバイナリデータに基づいて複数の3Dマップ記述子のバイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得し、ここで、複数の3Dマップ記述子の各々のバイナリデータの長さは、索出記述子のバイナリデータの長さとは異なる。
【0214】
索出記述子のバイナリデータは、元の索出記述子に対して二値化が実行された後に取得される圧縮されたデータである。索出記述子のバイナリデータのビットオーバヘッドは、元の索出記述子のビットオーバヘッドよりも明らかに低い。二値化の説明及び記述のために、S101の具体的な説明及び記述を参照されたい。詳細は、本明細書において再度説明されない。本願のこの実施形態では、複数の3Dマップ記述子の各々のバイナリデータの長さは、索出記述子のバイナリデータの長さとは異なる。すなわち、索出中、3Dマップ記述子のバイナリデータは、索出記述子のバイナリデータと非対称である。非対称索出が、索出記述子のバイナリデータを使用することによって複数の3Dマップ記述子のバイナリデータにおいて実行され、それにより、より小さいバイナリデータ長さを有する記述子(3Dマップ記述子又は索出記述子)は、より高い圧縮比を有し得、それによって、記憶空間及び/又は送信リソースオーバヘッドが節約され、より大きいバイナリデータ長さを有する記述子(索出記述子又は3Dマップ記述子)は、索出のためにより多くの情報を提供し得、それによって、索出の正確さが改善される。
【0215】
実装可能な方式では、1つの3Dマップ記述子のバイナリデータの長さは、索出記述子のバイナリデータの長さよりも大きい。3Dマップ記述子のバイナリデータは、索出記述子のバイナリデータよりも多くのビットを有する。このようにして、3Dマップ記述子のより多くの元の情報が保持され得、それによって、索出を通して取得される少なくとも1つのターゲット3Dマップ記述子の正確さが改善される。索出記述子のバイナリデータは、より少ないビットを有する。このようにして、索出記述子のビットオーバヘッドは削減され得、それにより、索出記述子は、より高い圧縮比を有し得、それによって、記憶空間及び/又は送信リソースオーバヘッドが節約される。
【0216】
別の実装可能な方式では、1つの3Dマップ記述子のバイナリデータの長さは、索出記述子のバイナリデータの長さよりも小さい。3Dマップ記述子のバイナリデータは、索出記述子のバイナリデータよりも少ないビットを有する。このようにして、3Dマップの記憶空間及び/又は送信リソースオーバヘッドは節約され得る。索出記述子のバイナリデータは、より多くのビットを有する。このようにして、索出記述子のより多くの元の情報が保持され得、それによって、索出を通して取得される少なくとも1つのターゲット3Dマップ記述子の正確さが改善される。
【0217】
任意選択で、索出を通して取得される少なくとも1つのターゲット3Dマップ記述子に対応する3Dマップ点は、索出記述子に対応するマップ点に一致し、このケースでは、少なくとも1つのターゲット3Dマップ記述子に対応する3Dマップ点に基づいて測位が更に実行されて、電子デバイスの姿勢情報が取得されてよい。
【0218】
この実施形態では、索出記述子のバイナリデータに基づいて複数の3Dマップ記述子のバイナリデータにおいて索出が実行されて、少なくとも1つのターゲット3Dマップ記述子が取得され、ここで、複数の3Dマップ記述子の各々のバイナリデータの長さは、索出記述子のバイナリデータの長さとは異なる。索出のために使用される索出記述子のバイナリデータの長さは、3Dマップ記述子のバイナリデータの長さとは異なり、それにより、より小さい長さを有する記述子(3Dマップ記述子又は索出記述子)は、より高い圧縮比を有し得、それによって、記憶空間及び/又は送信リソースオーバヘッドが節約され、又はより大きい長さを有する記述子(索出記述子又は3Dマップ記述子)は、索出のためにより多くの情報を提供し得、それによって、索出の正確さが改善される。
【0219】
例えば、3Dマップ記述子のバイナリデータの長さは、索出記述子のバイナリデータの長さよりも小さい。対称索出と比較すると、本願のこの実施形態における3Dマップの圧縮比は、同じ索出の正確さのケースにおいてより高く、本願のこの実施形態における索出の正確さは、同じ圧縮比のケースにおいてより高い。
【0220】
バイナリデータは、1つ又は複数のバイナリサブストリングに分割されてよい。バイナリデータが1つのバイナリサブストリングを含む場合、バイナリサブストリングは、バイナリデータそれ自体であることに留意されたい。
【0221】
本願のこの実施形態では非対称索出の複数の特定の実装が存在する。実装可能な方式では、バイナリサブストリング間の複数の第2の距離が計算され、非対称バイナリデータ間の第1の距離が、複数の第2の距離に基づいて計算され、索出が、第1の距離に基づいて実行される。バイナリサブストリング間の複数の第2の距離は、対称バイナリサブストリング間の少なくとも1つの第2の距離及び非対称バイナリサブストリング間の少なくとも1つの第2の距離を含んでよい。非対称バイナリサブストリング間の少なくとも1つの第2の距離は、表をルックアップすること等の方式で取得されてもよいし、又はさらに、非対称バイナリサブストリング間の第2の距離を対称バイナリサブストリング間の第2の距離に変換すること、及び対称サブストリング間の変換された第2の距離に基づいて計算を実行することによって取得されてもよい。別の実装可能な方式では、対称バイナリサブストリング間の複数の第2の距離が計算され、非対称バイナリデータ間の第1の距離が、複数の第2の距離に基づいて計算され、索出が、第1の距離に基づいて実行される。
【0222】
具体的には、複数の3Dマップ記述子の各々及び索出記述子の間の第1の距離は、索出記述子のバイナリデータ及び複数の3Dマップ記述子のバイナリデータに基づいて決定されてよい。少なくとも1つの3Dマップ記述子が、複数の3Dマップ記述子の各々及び索出記述子の間の第1の距離に基づいて少なくとも1つのターゲット3Dマップ記述子として複数の3Dマップ記述子から選択される。例えば、比較的小さい第1の距離を有する1つ又は複数の3Dマップ記述子は、少なくとも1つのターゲット3Dマップ記述子として複数の3Dマップ記述子から選択される。
【0223】
複数の3Dマップ記述子のうちの1つは、本願のこの実施形態において第1の距離を説明及び記述するために一例として使用される。本願のこの実施形態における3Dマップ記述子及び索出記述子の間の第1の距離の歪みは、歪み閾値よりも低いか又はこれに等しい。第1の距離の歪みは、第1の距離及び対応する元の距離の間の差の程度を示しており、元の距離は、3Dマップ記述子及び索出記述子の間の距離である。例えば、元の距離は、3Dマップ記述子及び索出記述子の間のユークリッド距離であってよい。歪み閾値は、3Dマップ記述子及び索出記述子の間の第3の距離の歪みであってよい。第3の距離は、索出記述子のバイナリデータの部分データ及び3Dマップ記述子のバイナリデータの全データの間の距離であるか、又は索出記述子のバイナリデータの全データ及び3Dマップ記述子のバイナリデータの部分データの間の距離である。例えば、索出記述子のバイナリデータの長さが3Dマップ記述子のバイナリデータの長さよりも大きい場合、第3の距離は、索出記述子のバイナリデータの部分データ及び3Dマップ記述子のバイナリデータの全データの間の距離である。索出記述子のバイナリデータの長さが3Dマップ記述子のバイナリデータの長さよりも小さい場合、第3の距離は、索出記述子のバイナリデータの全データ及び3Dマップ記述子のバイナリデータの部分データの間の距離である。第3の距離は、対称バイナリデータ間の距離でもある。
【0224】
3Dマップ記述子のバイナリデータの長さが索出記述子のバイナリデータの長さよりも小さい場合、索出記述子のバイナリデータは、索出記述子の複数の第1のバイナリサブストリングを含んでよく、3Dマップ記述子のバイナリデータは、3Dマップ記述子の1つ又は複数の第2のバイナリサブストリングを含んでよい。第1のバイナリサブストリングの長さは、第2のバイナリサブストリングの長さと同じである。3Dマップ記述子のバイナリデータ及び索出記述子のバイナリデータの間の第1の距離は、複数の第2の距離に基づいて決定されてよい。複数の第2の距離は、索出記述子の複数の第1のバイナリサブストリングの各々及び3Dマップ記述子の少なくとも1つの第2のバイナリサブストリングの間の距離を含んでよい。例えば、索出記述子のバイナリデータは、2つの第1のバイナリサブストリングを含み、3Dマップ記述子のバイナリデータは、1つの第2のバイナリサブストリングを含んでよい。3Dマップ記述子のバイナリデータ及び索出記述子のバイナリデータの間の第1の距離は、2つの第2の距離に基づいて決定されてよく、2つの第2の距離は、2つの第1のバイナリサブストリングの各々及び第2のバイナリサブストリングの間の距離を含む。
【0225】
3Dマップ記述子のバイナリデータの長さが索出記述子のバイナリデータの長さよりも小さい場合、索出記述子のバイナリデータは、複数の第1のバイナリサブストリングに分割される。複数の第1のバイナリサブストリングにおける2つの隣接した第1のバイナリサブストリング間に重複が存在してもよいし、又は重複は存在しなくてもよい。1つの第1のバイナリサブストリングは、1つ又は複数のビットであってよい。3Dマップ記述子のバイナリデータは、3Dマップ記述子の1つ又は複数の第2のバイナリサブストリングを含んでよい。1つの第2のバイナリサブストリングは、1つ又は複数のビットであってよい。複数の第2のバイナリサブストリングにおける2つの隣接した第2のバイナリサブストリング間に重複が存在してもよいし、又は重複は存在しなくてもよい。
【0226】
図6における(a)及び(b)を参照されたい。索出記述子のバイナリデータは、2つの第1のバイナリサブストリング(サブストリング1及びサブストリング2)を含み、3Dマップ記述子のバイナリデータは、1つの第2のバイナリサブストリング(これは、3Dマップ記述子それ自体のバイナリデータである)を含む。
図6における(a)に示されたように、索出記述子のサブストリング1及びサブストリング2の間に重複は存在しない。索出記述子のサブストリング1の長さは、3Dマップ記述子のバイナリデータの長さと同じである。索出記述子のサブストリング2の長さは、3Dマップ記述子のバイナリデータの長さと同じである。
図6における(b)に示されたように、索出記述子のサブストリング1及びサブストリング2の間に重複が存在する。索出記述子のサブストリング1の長さは、3Dマップ記述子のバイナリデータの長さと同じである。索出記述子のサブストリング2の長さは、3Dマップ記述子のバイナリデータの長さと同じである。
図6における(a)及び(b)に示された索出記述子のバイナリデータ及び3Dマップ記述子のバイナリデータの間の第1の距離は、次の方式で計算されてよい:索出記述子のサブストリング1及び3Dマップ記述子のバイナリデータに基づいて、それらの間の第2の距離が計算されてよい。索出記述子のサブストリング2及び3Dマップ記述子のバイナリデータに基づいて、それらの間の第2の距離が計算されてよい。索出記述子のバイナリデータ及び3Dマップ記述子のバイナリデータの間の第1の距離は、索出記述子のサブストリング1及び3Dマップ記述子のバイナリデータの間の第2の距離、及び索出記述子のサブストリング2及び3Dマップ記述子のバイナリデータの間の第2の距離に基づいて計算される。第1の距離の歪みを削減するために、異なる重み付け係数は、異なる重要度を反映するために異なる第2の距離のために使用されてよい。W11及びW12は、
図6における(a)及び(b)に示されている。W11は、索出記述子のサブストリング1及び3Dマップ記述子のバイナリデータの間の第2の距離に対応する重要度を表し、W12は、索出記述子のサブストリング2及び3Dマップ記述子のバイナリデータの間の第2の距離に対応する重要度を表す。幾つかの実施形態では、W11は、W12よりも大きくてよい。W11及びW12は、索出記述子のサブストリング1のロケーション及び索出記述子のサブストリング2のロケーションに基づいて決定されてよい。例えば、索出記述子のサブストリング1の開始ロケーションが索出記述子のサブストリング2の開始ロケーションの前である場合、W11は、W12よりも大きくてよい。別の例の場合、索出記述子のサブストリング1の終了ロケーションが索出記述子のサブストリング2の終了ロケーションの前である場合、W11は、W12よりも大きくてよい。
【0227】
図6における(a)及び(b)に示されている索出記述子のバイナリデータは、より多くのバイナリサブストリング(例えば、サブストリング3)を更に含んでよく、3Dマップ記述子のバイナリデータは、より多くのバイナリサブストリングを更に含んでよいことに留意されたい。本願のこの実施形態における索出記述子のサブストリング及び3Dマップ記述子のサブストリングは、
図6における例によって限定されるものではない。
【0228】
図7における(a)及び(b)を参照されたい。索出記述子のバイナリデータは、2つの第1のバイナリサブストリング(サブストリング1及びサブストリング2)を含み、3Dマップ記述子のバイナリデータは、2つの第2のバイナリサブストリング(サブストリング1及びサブストリング2)を含む。
図7における(a)に示されたように、索出記述子のサブストリング1及びサブストリング2の間に重複は存在しない。索出記述子のサブストリング1の長さは、3Dマップ記述子のサブストリング1の長さと同じである。索出記述子のサブストリング2の長さは、3Dマップ記述子のサブストリング1の長さと同じである。索出記述子のサブストリング1の長さは、3Dマップ記述子のサブストリング2の長さと同じである。索出記述子のサブストリング2の長さは、3Dマップ記述子のサブストリング2の長さと同じである。
図7における(b)に示されたように、索出記述子のサブストリング1及びサブストリング2の間に重複が存在する。索出記述子のサブストリング1の長さは、3Dマップ記述子のサブストリング1の長さと同じである。索出記述子のサブストリング2の長さは、3Dマップ記述子のサブストリング1の長さと同じである。索出記述子のサブストリング1の長さは、3Dマップ記述子のサブストリング2の長さと同じである。索出記述子のサブストリング2の長さは、3Dマップ記述子のサブストリング2の長さと同じである。
図7における(a)及び(b)に示された索出記述子のバイナリデータ及び3Dマップ記述子のバイナリデータの間の第1の距離は、次の方式で計算されてよい:索出記述子のサブストリング1及び3Dマップ記述子のサブストリング1に基づいて、それらの間の第2の距離が計算されてよい。索出記述子のサブストリング2及び3Dマップ記述子のサブストリング1に基づいて、それらの間の第2の距離が計算されてよく、索出記述子のサブストリング1及び3Dマップ記述子のサブストリング2に基づいて、それらの間の第2の距離が計算されてよい。索出記述子のサブストリング2及び3Dマップ記述子のサブストリング2に基づいて、それらの間の第2の距離が計算されてよい。索出記述子のバイナリデータ及び3Dマップ記述子のバイナリデータの間の第1の距離は、索出記述子のサブストリング1及び3Dマップ記述子のサブストリング1の間の第2の距離、索出記述子のサブストリング2及び3Dマップ記述子のサブストリング1の間の第2の距離、索出記述子のサブストリング1及び3Dマップ記述子のサブストリング2の間の第2の距離、及び索出記述子のサブストリング2及び3Dマップ記述子のサブストリング2の間の第2の距離に基づいて計算される。第1の距離の歪みを削減するために、異なる重要度が、異なる第2の距離を重み付けするために使用されてよい。W11、W12、W13、及びW14は、
図7における(a)及び(b)に示されている。W11は、索出記述子のサブストリング1及び3Dマップ記述子のサブストリング1の間の第2の距離に対応する重要度を表し、W12は、索出記述子のサブストリング2及び3Dマップ記述子のサブストリング1の間の第2の距離に対応する重要度を表し、W21は、索出記述子のサブストリング1及び3Dマップ記述子のサブストリング2の間の第2の距離に対応する重要度を表し、W22は、索出記述子のサブストリング2及び3Dマップ記述子のサブストリング2の間の第2の距離に対応する重要度を表す。幾つかの実施形態では、W11は、W12よりも大きくてよく、W21は、W22よりも大きくてよい。W11及びW12は、3Dマップ記述子のサブストリング1のロケーション、索出記述子のサブストリング1のロケーション、及び索出記述子のサブストリング2のロケーションに基づいて決定されてよい。W21及びW22は、3Dマップ記述子のサブストリング2のロケーション、索出記述子のサブストリング1のロケーション、及び索出記述子のサブストリング2のロケーションに基づいて決定されてよい。
【0229】
図7における(a)及び(b)に示されている索出記述子のバイナリデータは、より多くのバイナリサブストリング(例えば、サブストリング3)を更に含んでよく、3Dマップ記述子のバイナリデータは、より多くのバイナリサブストリング(例えば、サブストリング3)を更に含んでよいことに留意されたい。本願のこの実施形態における索出記述子のサブストリング及び3Dマップ記述子のサブストリングは、
図7における例によって限定されるものではない。
【0230】
3Dマップ記述子のバイナリデータの長さが索出記述子のバイナリデータの長さよりも大きい場合、索出記述子のバイナリデータは、索出記述子の1つ又は複数の第1のバイナリサブストリングを含んでよく、3Dマップ記述子のバイナリデータは、3Dマップ記述子の複数の第2のバイナリサブストリングを含んでよい。第1のバイナリサブストリングの長さは、第2のバイナリサブストリングの長さと同じである。3Dマップ記述子のバイナリデータ及び索出記述子のバイナリデータの間の第1の距離は、複数の第2の距離に基づいて決定されてよい。複数の第2の距離は、3Dマップ記述子の複数の第2のバイナリサブストリングの各々及び索出記述子の1つ又は複数の第1のバイナリサブストリングの間の距離を含んでよい。例えば、索出記述子のバイナリデータは、1つの第1のバイナリサブストリングを含み、3Dマップ記述子のバイナリデータは、2つの第2のバイナリサブストリングを含んでよい。3Dマップ記述子のバイナリデータ及び索出記述子のバイナリデータの間の第1の距離は、2つの第2の距離に基づいて決定されてよく、2つの第2の距離は、2つの第2のバイナリサブストリングの各々及び第1のバイナリサブストリングの間の距離を含む。
【0231】
3Dマップ記述子のバイナリデータの長さが索出記述子のバイナリデータの長さよりも大きい場合、索出記述子のバイナリデータは、1つ又は複数の第1のバイナリサブストリングに分割される。1つの第1のバイナリサブストリングは、1つ又は複数のビットであってよい。3Dマップ記述子のバイナリデータは、3Dマップ記述子の複数の第2のバイナリサブストリングを含んでよい。複数の第2のバイナリサブストリングにおける2つの隣接した第2のバイナリサブストリング間に重複が存在してもよいし、又は重複は存在しなくてもよい。1つの第2のバイナリサブストリングは、1つ又は複数のビットであってよい。第1のバイナリサブストリング及び第2のバイナリサブストリングの分割方式は、
図6及び
図7において示された実施形態のものと同様であってよい。
図6及び
図7において示された索出記述子及び3Dマップ記述子は、交換され得る。詳細について、
図8及び
図9を参照されたい。具体的に言うと、3Dマップ記述子のバイナリデータの長さは、索出記述子のバイナリデータの長さよりも大きく、その特定の実装も適用可能である。
【0232】
図8における(a)及び(b)を参照されたい。3Dマップ記述子のバイナリデータは、2つの第1のバイナリサブストリング(サブストリング1及びサブストリング2)を含み、索出記述子のバイナリデータは、1つの第2のバイナリサブストリング(これは、索出記述子それ自体のバイナリデータである)を含む。
図8における(a)に示されたように、3Dマップ記述子のサブストリング1及びサブストリング2の間に重複は存在しない。3Dマップ記述子のサブストリング1の長さは、索出記述子のバイナリデータの長さと同じである。3Dマップ記述子のサブストリング2の長さは、索出記述子のバイナリデータの長さと同じである。
図8における(b)に示されたように、3Dマップ記述子のサブストリング1及びサブストリング2の間に重複が存在する。3Dマップ記述子のサブストリング1の長さは、索出記述子のバイナリデータの長さと同じである。3Dマップ記述子のサブストリング2の長さは、索出記述子のバイナリデータの長さと同じである。
図8における(a)及び(b)に示された3Dマップ記述子のバイナリデータ及び索出記述子のバイナリデータの間の第1の距離は、次の方式で計算されてよい:3Dマップ記述子のサブストリング1及び索出記述子のバイナリデータに基づいて、それらの間の第2の距離が計算されてよい。3Dマップ記述子のサブストリング2及び索出記述子のバイナリデータに基づいて、それらの間の第2の距離が計算されてよい。索出記述子のバイナリデータ及び3Dマップ記述子のバイナリデータの間の第1の距離は、3Dマップ記述子のサブストリング1及び索出記述子のバイナリデータの間の第2の距離及び3Dマップ記述子のサブストリング2及び索出記述子のバイナリデータの間の第2の距離に基づいて計算される。第1の距離の歪みを削減するために、異なる重要度が、異なる第2の距離を重み付けするために使用されてよい。W11及びW12は、
図8における(a)及び(b)に示されている。W11は、3Dマップ記述子のサブストリング1及び索出記述子のバイナリデータの間の第2の距離に対応する重要度を表し、W11の矢印は、3Dマップ記述子のサブストリング1及び索出記述子の全てのバイナリデータの間の第2の距離に対応する重要度の一例を示し、W12は、3Dマップ記述子のサブストリング2及び索出記述子のバイナリデータの間の第2の距離に対応する重要度を表す。幾つかの実施形態では、W11は、W12よりも大きくてよい。W11及びW12は、3Dマップ記述子のサブストリング1のロケーション及び3Dマップ記述子のサブストリング2のロケーションに基づいて決定されてよい。例えば、3Dマップ記述子のサブストリング1の開始ロケーションが3Dマップ記述子のサブストリング2の開始ロケーションの前である場合、W11は、W12よりも大きくてよい。別の例の場合、3Dマップ記述子のサブストリング1の終了ロケーションが3Dマップ記述子のサブストリング2の終了ロケーションの前である場合、W11は、W12よりも大きくてよい。
【0233】
図8における(a)及び(b)に示されている3Dマップ記述子のバイナリデータは、より多くのバイナリサブストリング(例えば、サブストリング3)を更に含んでよく、索出記述子のバイナリデータは、より多くのバイナリサブストリングを更に含んでよいことに留意されたい。本願のこの実施形態における3Dマップ記述子のサブストリング及び索出記述子のサブストリングは、
図8における例によって限定されるものではない。
【0234】
図9における(a)及び(b)を参照されたい。3Dマップ記述子のバイナリデータは、2つの第1のバイナリサブストリング(サブストリング1及びサブストリング2)を含み、索出記述子のバイナリデータは、2つの第2のバイナリサブストリング(サブストリング1及びサブストリング2)を含む。
図9における(a)に示されたように、3Dマップ記述子のサブストリング1及びサブストリング2の間に重複は存在しない。3Dマップ記述子のサブストリング1の長さは、索出記述子のサブストリング1の長さと同じである。3Dマップ記述子のサブストリング2の長さは、索出記述子のサブストリング1の長さと同じである。3Dマップ記述子のサブストリング1の長さは、索出記述子のサブストリング2の長さと同じである。3Dマップ記述子のサブストリング2の長さは、索出記述子のサブストリング2の長さと同じである。
図9における(b)に示されたように、3Dマップ記述子のサブストリング1及びサブストリング2の間に重複が存在する。3Dマップ記述子のサブストリング1の長さは、索出記述子のサブストリング1の長さと同じである。3Dマップ記述子のサブストリング2の長さは、索出記述子のサブストリング1の長さと同じである。3Dマップ記述子のサブストリング1の長さは、索出記述子のサブストリング2の長さと同じである。3Dマップ記述子のサブストリング2の長さは、索出記述子のサブストリング2の長さと同じである。
図9における(a)及び(b)に示された3Dマップ記述子のバイナリデータ及び索出記述子のバイナリデータの間の第1の距離は、次の方式で計算されてよい:3Dマップ記述子のサブストリング1及び索出記述子のサブストリング1に基づいて、それらの間の第2の距離が計算されてよい。3Dマップ記述子のサブストリング2及び索出記述子のサブストリング1に基づいて、それらの間の第2の距離が計算されてよく、3Dマップ記述子のサブストリング1及び索出記述子のサブストリング2に基づいて、それらの間の第2の距離が計算されてよい。3Dマップ記述子のサブストリング2及び索出記述子のサブストリング2に基づいて、それらの間の第2の距離が計算されてよい。3Dマップ記述子のバイナリデータ及び索出記述子のバイナリデータの間の第1の距離は、3Dマップ記述子のサブストリング1及び索出記述子のサブストリング1の間の第2の距離、3Dマップ記述子のサブストリング2及び索出記述子のサブストリング1の間の第2の距離、3Dマップ記述子のサブストリング1及び索出記述子のサブストリング2の間の第2の距離、及び3Dマップ記述子のサブストリング2及び索出記述子のサブストリング2の間の第2の距離に基づいて計算される。第1の距離の歪みを削減するために、異なる重要度が、異なる第2の距離を重み付けするために使用されてよい。W11、W12、W13、及びW14は、
図9における(a)及び(b)に示されている。W11は、3Dマップ記述子のサブストリング1及び索出記述子のサブストリング1の間の第2の距離に対応する重要度を表し、W12は、3Dマップ記述子のサブストリング2及び索出記述子のサブストリング1の間の第2の距離に対応する重要度を表し、W21は、3Dマップ記述子のサブストリング1及び索出記述子のサブストリング2の間の第2の距離に対応する重要度を表し、W22は、3Dマップ記述子のサブストリング2及び索出記述子のサブストリング2の間の第2の距離に対応する重要度を表す。幾つかの実施形態では、W11は、W12よりも大きくてよく、W21は、W22よりも大きくてよい。W11及びW12は、索出記述子のサブストリング1のロケーション、3Dマップ記述子のサブストリング1のロケーション、及び3Dマップ記述子のサブストリング2のロケーションに基づいて決定されてよい。W21及びW22は、索出記述子のサブストリング2のロケーション、3Dマップ記述子のサブストリング1のロケーション、及び3Dマップ記述子のサブストリング2のロケーションに基づいて決定されてよい。
【0235】
図9における(a)及び(b)に示されている3Dマップ記述子のバイナリデータは、より多くのバイナリサブストリング(例えば、サブストリング3)を更に含んでよく、索出記述子のバイナリデータは、より多くのバイナリサブストリング(例えば、サブストリング3)を更に含んでよいことに留意されたい。本願のこの実施形態における3Dマップ記述子のサブストリング及び索出記述子のサブストリングは、
図9における例によって限定されるものではない。
【0236】
非対称である3Dマップ記述子のバイナリデータ及び索出記述子のバイナリデータの間の第1の距離は、3Dマップ記述子の対称バイナリサブストリング及び索出記述子のバイナリサブストリングの間の複数の第2の距離に基づいて取得され、索出が、3Dマップ記述子のバイナリデータ及び索出記述子のバイナリデータの間の第1の距離に基づいて実行され、それにより、記述子(3Dマップ記述子又は索出記述子)は、索出の正確さを保証しながら、より高い圧縮比を有する。
【0237】
以下は、本願のこの実施形態における複数の第2の距離に基づいて非対称索出を記述するために一例として具体的な実施形態を使用する。
【0238】
図10を参照されたい。
図10は、本願の一実施形態に係る、3Dマップを索出する方法の概略フローチャートである。幾つかの実装では、方法は、
図1~
図4fの例のうちの任意の1つにおける電子デバイス(例えば、第1の電子デバイス又は第2の電子デバイス)に適用されてもよいし、又は
図1~
図4fの例のうちの任意の1つにおけるサーバに適用されてもよい。本願の実施形態における3Dマップを索出する方法を実行する実行本体は、デコンプレッサ側又はデコーダ側とも称され得る。本願のこの実施形態では、3Dマップ記述子のバイナリデータの長さが索出記述子のバイナリデータの長さよりも小さい一例が説明のために使用される。方法は、以下の段階を含むが、これらに限定されるものではない。
【0239】
S201:複数の3Dマップ記述子のバイナリデータを取得する。
【0240】
S202:索出記述子のバイナリデータを取得し、ここで、索出記述子は、実環境に対応し、かつ電子デバイスのセンサによって収集された視覚的情報から抽出される特徴である。
【0241】
S201及びS202の説明及び記述のために、
図5において示された実施形態におけるS101及びS102の説明及び記述を参照されたい。詳細は、本明細書において再度説明されない。
【0242】
S203:索出記述子に対して二値化を実行して、索出記述子のバイナリデータを取得する。
【0243】
本願のこの実施形態では、索出記述子のバイナリデータは、複数の方式で取得されてよい。例えば、索出記述子のバイナリデータは、局所性鋭敏型ハッシング又はスペクトルハッシング等のハッシング方式で取得されてよい。例えば、索出記述子の各成分及び少なくとも1つの第1の事前設定閾値ベクトルの対応する成分の間の大小関係は、索出記述子の各成分及び少なくとも1つの第1の事前設定閾値ベクトルの対応する成分に基づいて決定されてよい。二値化が、大小関係に対して実行されて、索出記述子のバイナリデータが取得される。少なくとも1つの第1の事前設定閾値ベクトルのうちの任意の1つに含まれる各成分は、任意の値である。索出記述子の成分は、索出記述子のベクトルの1次元の値である。例えば、索出エリア記述子は、ベクトル、例えば、M次元ベクトルであってよく、ここで、M次元の各次元は、ベクトルの成分である。
【0244】
例えば、索出記述子は、Q(M次元ベクトル)であり、索出記述子の各成分及びN個の第1の事前設定閾値ベクトルの対応する成分の間の差分値は、以下の式(1)を使用することによって計算されてよい。
Q'i=Q-FQi、ここで、i=1,2,...N (1)
【0245】
FQiは、第1の事前設定閾値ベクトルiであり、FQiの次元の数は、Mである。Q'iは、Q及びFQiの間の差分値ベクトルである。Nは、2よりも大きいか又はこれに等しい正の整数である。
【0246】
二値化は、Q'
1、Q'
2、...、Q'
Nに対して実行されて、索出記述子のバイナリデータ(HQ)が取得される。一例では、二値化は、Q'
iに対して実行されて、バイナリベクトルQ'
i_binが取得されてよい。例えば、正の値は、1と示されてよく、負の値又は0は、0と示されてよく;又は、正の値は、0と示されてよく、負の値又は0は、1と示されてよい。
【数1】
が計算され、十進-二進変換がQ
totalに対して実行されて、索出記述子のバイナリデータが取得される。
【0247】
S204:索出記述子のバイナリデータ及び複数の3Dマップ記述子のバイナリデータに基づいて複数の3Dマップ記述子の各々及び索出記述子の間の第1の距離を決定し、ここで、第1の距離は、複数の第2の距離に基づいて決定される。
【0248】
本明細書における第1の距離は、「複数の3Dマップ記述子の各々及び索出記述子の間の距離(例えば、複数のハミング距離に基づいて取得される距離)」を表すことが理解されるべきである。「第1の距離」の概念は、説明の簡潔さのために使用される。
【0249】
索出記述子のバイナリデータは、新たな距離(本願のこの実施形態における第1の距離)の測定に基づいて、S201において取得された複数の3Dマップ記述子において索出を実行するのに使用される。具体的には、1つの3Dマップ記述子及び索出記述子の間の第1の距離が一例として使用される。この実施形態では、3Dマップ記述子のバイナリデータの長さが索出記述子のバイナリデータの長さよりも小さいので、この実施形態におけるサブストリング分割方式は:索出記述子のバイナリデータを複数の第1のバイナリサブストリングに分割することであり、ここで、各第1のバイナリサブストリングの長さは、3Dマップ記述子のバイナリデータの長さに等しい。各第1のバイナリサブストリング及び3Dマップ記述子のバイナリデータの間の第2の距離が計算される。3Dマップ記述子及び索出記述子の間の第1の距離は、複数の第1のバイナリサブストリングの各々及び3Dマップ記述子のバイナリデータの間の第2の距離に基づいて取得される。例えば、複数の第1のバイナリサブストリングの各々及び3Dマップ記述子のバイナリデータの間の第2の距離は、対応する重要度によって乗算されてよく、その後、全ての第2の距離が総和されて、3Dマップ記述子及び索出記述子の間の第1の距離が取得される。もちろん、別の計算方式が代替的に使用されてよく、例は本明細書において1つずつ説明されないことが理解され得る。
【0250】
S205:複数の3Dマップ記述子の各々及び索出記述子の間の第1の距離に基づいて少なくとも1つのターゲット3Dマップ記述子として複数の3Dマップ記述子から少なくとも1つの3Dマップ記述子を選択する。
【0251】
実装可能な方式では、少なくとも1つのターゲット3Dマップ記述子の各々及び索出記述子の間の第1の距離は、別の3Dマップ記述子及び索出記述子の間の第1の距離よりも小さく、別の3Dマップ記述子は、複数の3Dマップ記述子における少なくとも1つのターゲット3Dマップ記述子以外の3Dマップ記述子であってよい。
【0252】
例えば、複数の3Dマップ記述子及び索出記述子の間の第1の距離の比較的小さい値を有する1つ又は複数の3Dマップ記述子は、少なくとも1つのターゲット3Dマップ記述子として選択されてよい。
【0253】
別の実装可能な方式では、少なくとも1つのターゲット3Dマップ記述子の各々及び索出記述子の間の第1の距離は、距離偏差閾値よりも低く、距離偏差閾値の値は、測位要件に従って柔軟に設定されてよい。
【0254】
例えば、複数の3Dマップ記述子における1つの3Dマップ記述子及び索出記述子の間の第1の距離が距離偏差閾値よりも低いか否かが決定される。第1の距離が距離偏差閾値よりも低い場合、3Dマップ記述子が、ターゲット3Dマップ記述子として使用される。第1の距離が距離偏差閾値よりも低くない場合、複数の3Dマップ記述子における別の3Dマップ記述子及び索出記述子の間の第1の距離が距離偏差閾値よりも低いか否かが決定され、決定が全ての3Dマップ記述子について完了するまでプロセスが繰り返される。
【0255】
この実施形態では、複数の3Dマップ記述子の各々及び索出記述子の間の第1の距離は、索出記述子のバイナリデータ及び複数の3Dマップ記述子のバイナリデータに基づいて決定され、索出が、複数の3Dマップ記述子の各々及び索出記述子の間の第1の距離に基づいて複数の3Dマップ記述子のバイナリデータにおいて実行されて、少なくとも1つのターゲット3Dマップ記述子が取得され、ここで、複数の3Dマップ記述子の各々のバイナリデータの長さは、索出記述子のバイナリデータの長さよりも小さい。索出のために使用される索出記述子のバイナリデータの長さは、1つの3Dマップ記述子のバイナリデータの長さよりも大きく、それにより、3Dマップ記述子は、より高い圧縮比を有し得、それによって、3Dマップの記憶空間及び/又は送信リソースオーバヘッドが節約される。索出記述子のより多くのビットが、索出のためのより多くの情報を提供し得、それによって、索出の正確さが改善される。
【0256】
前述は、添付図面を参照して本願の実施形態における3Dマップを索出する方法を詳細に説明している。以下は、
図11及び
図12を参照して本願の実施形態における3Dマップを索出する装置を説明している。3Dマップを索出する装置は、本願の実施形態における3Dマップを索出する方法を実行することができることが理解されるべきである。不要な繰り返しを回避するために、以下は、本願の実施形態における3Dマップを索出する装置を説明するときに繰り返しの説明を適切に省略している。
【0257】
図11を参照されたい。
図11は、本願の一実施形態に係る、3Dマップを索出する装置の構造の概略図である。
図11において示されているように、3Dマップを索出する装置900は、索出モジュール901、第1の取得モジュール902、及び第2の取得モジュール903を備えてよい。
【0258】
第1の取得モジュール902は、複数の3Dマップ記述子のバイナリデータを取得するように構成されており、ここで、複数の3Dマップ記述子は、3Dマップの少なくとも1つの3Dマップ点に対応する。第2の取得モジュール903は、索出記述子のバイナリデータを取得するように構成されており、ここで、索出記述子は、実環境に対応し、かつ電子デバイスのセンサによって収集された視覚的情報から抽出される特徴である。索出モジュール901は、索出記述子のバイナリデータに基づいて複数の3Dマップ記述子のバイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得するように構成されており、ここで、複数の3Dマップ記述子の各々のバイナリデータの長さは、索出記述子のバイナリデータの長さとは異なる。
【0259】
幾つかの実施形態では、少なくとも1つのターゲット3Dマップ記述子に対応する3Dマップ点は、索出記述子に対応するマップ点に一致し、装置は、姿勢決定モジュールを更に備えてよい。姿勢決定モジュールは、少なくとも1つのターゲット3Dマップ記述子に対応する3Dマップ点に基づいて測位を実行して、電子デバイスの姿勢情報を取得するように構成されている。
【0260】
幾つかの実施形態では、索出モジュール901は、索出記述子のバイナリデータ及び複数の3Dマップ記述子のバイナリデータに基づいて複数の3Dマップ記述子の各々及び索出記述子の間の第1の距離を決定すること、ここで、複数の3Dマップ記述子のうちの任意の1つ及び索出記述子の間の第1の距離は、複数の第2の距離に基づいて決定され;複数の第2の距離のうちの任意の1つは、対応する索出記述子のバイナリデータの部分データ及び3Dマップ記述子のバイナリデータの部分データ又は全データに基づいて決定されるか、又は対応する3Dマップ記述子のバイナリデータの部分データ及び索出記述子のバイナリデータの部分データ又は全データに基づいて決定される;及び複数の3Dマップ記述子の各々及び索出記述子の間の第1の距離に基づいて少なくとも1つのターゲット3Dマップ記述子として複数の3Dマップ記述子から少なくとも1つの3Dマップ記述子を選択することを行うように具体的に構成されている。
【0261】
幾つかの実施形態では、複数の3Dマップ記述子のうちの任意の1つ及び索出記述子の間の第1の距離の歪みは、歪み閾値よりも低い。第1の距離の歪みは、第1の距離及び対応する元の距離の間の差の程度を示し、元の距離は、3Dマップ記述子及び索出記述子の間の距離である。
【0262】
幾つかの実施形態では、索出記述子のバイナリデータの部分データの長さは、複数の3Dマップ記述子の各々のバイナリデータの部分データ又は全データの長さと同じであるか、又は複数の3Dマップ記述子の各々のバイナリデータの部分データの長さは、索出記述子のバイナリデータの部分データ又は全データの長さと同じである。
【0263】
幾つかの実施形態では、複数の3Dマップ記述子のうちの任意の1つ及び索出記述子の間の第1の距離は、複数の第2の距離、及び複数の第2の距離にそれぞれ対応する重み付け係数に基づいて決定される。
【0264】
幾つかの実施形態では、複数の3Dマップ記述子の各々のバイナリデータの長さが索出記述子のバイナリデータの長さよりも小さい場合、索出記述子のバイナリデータは、索出記述子の複数の第1のバイナリサブストリングを含み、複数の3Dマップ記述子の各々のバイナリデータは、複数の3Dマップ記述子の各々の少なくとも1つの第2のバイナリサブストリングを含み、複数の第1のバイナリサブストリングの各々の長さは、少なくとも1つの第2のバイナリサブストリングの各々の長さと同じであり、複数の第2の距離は、複数の第1のバイナリサブストリングの各々及び少なくとも1つの第2のバイナリサブストリングの間の距離を含む。
【0265】
複数の3Dマップ記述子の各々のバイナリデータの長さが索出記述子のバイナリデータの長さよりも大きい場合、索出記述子のバイナリデータは、索出記述子の少なくとも1つの第1のバイナリサブストリングを含み、複数の3Dマップ記述子の各々のバイナリデータは、複数の3Dマップ記述子の各々の複数の第2のバイナリサブストリングを含み、少なくとも1つの第1のバイナリサブストリングの各々の長さは、複数の第2のバイナリサブストリングの各々の長さと同じであり、複数の第2の距離は、複数の第2のバイナリサブストリングの各々及び少なくとも1つの第1のバイナリサブストリングの間の距離を含む。
【0266】
幾つかの実施形態では、複数の3Dマップ記述子のうちの任意の1つは、エリア記述子又は3Dマップ点記述子を含む。
【0267】
幾つかの実施形態では、第1の取得モジュール902は、3Dマップの圧縮されたデータを取得するように構成されており、3Dマップの圧縮されたデータは、複数の3Dマップ記述子のバイナリデータを含み;又は第1の取得モジュール902は、3Dマップの圧縮されたデータを取得し、3Dマップの圧縮されたデータを解凍して、複数の3Dマップ記述子のバイナリデータを取得するように構成されており;又は第1の取得モジュール902は、3Dマップのビットストリームを受信し、3Dマップのビットストリームを解凍して、複数の3Dマップ記述子のバイナリデータを取得するように構成されている。
【0268】
幾つかの実施形態では、第2の取得モジュール903は、索出記述子を受信し、索出記述子に対して二値化を実行して、索出記述子のバイナリデータを取得するように構成されており;又は第2の取得モジュール903は、視覚的情報を受信し、視覚的情報から索出記述子を抽出し、索出記述子に対して二値化を実行して、索出記述子のバイナリデータを取得するように構成されており;又は第2の取得モジュール903は、ユーザによって入力された視覚的情報収集動作に応答して、実環境に対して視覚的情報収集を実行するようにセンサをトリガして視覚的情報を取得し、視覚的情報から索出記述子を抽出し、索出記述子に対して二値化を実行して索出記述子のバイナリデータを取得するように構成されている。
【0269】
3Dマップを索出する装置900は、
図5~
図10において示された実施形態のうちの任意の1つにおける3Dマップを索出する装置方法を実行してよいことに留意されたい。特定の実装原理及び技術的効果について、前述の方法の実施形態の具体的な説明及び記述を参照されたい。詳細は、本明細書において再度説明されない。
【0270】
図12は、本願の一実施形態に係る復号装置1000の実装の概略ブロック図である。復号装置1000は、プロセッサ1001、メモリ1002、及びバスシステム1003を備えてよい。プロセッサ1001及びメモリ1002は、バスシステム1003を通して接続される。メモリ1002は、命令を記憶するように構成されている。プロセッサ1001は、本願において説明された3Dマップを索出する様々な方法を実行するために、メモリ1002に記憶された命令を実行するように構成されている。繰り返しを回避するために、本明細書では詳細を再度説明されない。
【0271】
本願のこの実施形態では、プロセッサ1001は、中央処理ユニット(central processing unit、CPU)であってもよいし、又はプロセッサ1001は、別の汎用プロセッサ、DSP、ASIC、FPGA又は別のプログラマブルロジックデバイス、ディスクリートゲート又はトランジスタロジックデバイス、ディスクリートハードウェアコンポーネント等であってもよい。汎用プロセッサは、マイクロプロセッサであってもよいし、又はプロセッサは、任意の従来のプロセッサ等であってよい。
【0272】
メモリ1002は、ROMデバイス又はRAMデバイスを含んでよい。他の任意の適切なタイプの記憶デバイスがメモリ1002として使用されてもよい。メモリ1002は、バス1003を通してプロセッサ1001によってアクセスされるコード及びデータ10021を含んでよい。メモリ1002は、オペレーティングシステム10023及びアプリケーション10022を更に含んでよい。アプリケーション10022は、プロセッサ1001が本願において説明された3Dマップを索出する方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーション10022は、アプリケーション1~Nを含んでよく、本願において説明された3Dマップを索出する方法を実行する3Dマップアプリケーションを更に含んでよい。
【0273】
バスシステム1003は、データバスに加えて、電力バス、制御バス、ステータス信号バス等を更に含んでよい。しかしながら、説明の明確さのために、図における様々なタイプのバスがバスシステム1003として示されている。
【0274】
任意選択で、復号装置1000は、ディスプレイ1004等の1つ又は複数の出力デバイスを更に含んでよい。一例では、ディスプレイ1004は、ディスプレイ、及びタッチ入力を動作可能に検知するタッチユニットを組み合わせるタッチディスプレイであってよい。ディスプレイ1004は、バス1003を通してプロセッサ1001に接続されてよい。
【0275】
復号装置1000は、本願における3Dマップを索出する方法を実行してよいことに留意されたい。
【0276】
当業者であれば、本明細書において開示及び説明された様々な例示的な論理ブロック、モジュール、及びアルゴリズム段階を参照して説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせによって実装することができることを理解し得る。機能がソフトウェアによって実装される場合、例示的な論理ブロック、モジュール、及び段階を参照して説明された機能は、1つ又は複数の命令又はコードとしてコンピュータ可読媒体に記憶されるか又は当該コンピュータ可読媒体を介して送信され、ハードウェアベース処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体等の有形媒体、又は(例えば、通信プロトコルに従って)或る場所から別の場所へのコンピュータプログラムの送信を容易にする任意の通信媒体に対応するコンピュータ可読記憶媒体を含んでよい。このようにして、コンピュータ可読媒体は、概して、(1)非一時的有形コンピュータ可読記憶媒体、又は(2)信号又は搬送波等の通信媒体に対応してよい。データ記憶媒体は、本願において説明された技術を実装するための命令、コード、及び/又はデータ構造を索出するために1つ又は複数のコンピュータ又は1つ又は複数のプロセッサによってアクセスされ得る任意の使用可能媒体であってよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでよい。
【0277】
限定ではないが一例では、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM又は別のコンパクトディスク記憶装置、磁気ディスク記憶装置又は別の磁気記憶装置、フラッシュメモリ、又は命令又はデータ構造の形式の所望のプログラムコードを記憶するのに使用され得、かつコンピュータによってアクセス可能である他の任意の媒体を含んでよい。加えて、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。例えば、命令が同軸ケーブル、光ファイバ、ツイストペア、デジタル加入者線(DSL)、又はワイヤレス技術、例えば、赤外線、無線、又はマイクロ波を介してウェブサイト、サーバ、又は別のリモートソースから送信される場合、当該同軸ケーブル、光ファイバ、ツイストペア、DSL、又はワイヤレス技術、例えば、赤外線、無線、又はマイクロ波は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的媒体を含むのではなく、実際には非一時的有形記憶媒体を意味することが理解されるべきである。本明細書において使用されるディスク(disk及びdisc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、及びブルーレイディスクを含む。ディスク(disk)は、通常、データを磁気的に複製し、一方で、ディスク(disc)は、レーザを使用することによってデータを光学的に複製する。前述の項目の組み合わせも、コンピュータ可読媒体の範囲に含まれるべきである。
【0278】
命令は、1つ又は複数のデジタル信号プロセッサ(DSP)、一般マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は他の同等の統合又はディスクリート論理回路等の1つ又は複数のプロセッサによって実行されてよい。したがって、本明細書において使用される「プロセッサ」という用語は、前述の構造、又は本明細書において説明される技術の実装に適用され得る他の任意の構造を指し得る。加えて、幾つかの態様では、本明細書において説明された例示的な論理ブロック、モジュール、及び段階を参照して説明された機能は、符号化及び復号のために構成された専用ハードウェア及び/又はソフトウェアモジュール内に提供されてもよいし、又は組み合わされたコーデックに組み込まれてもよい。加えて、これらの技術は、1つ又は複数の回路又は論理要素に完全に実装されてよい。
【0279】
本願における技術は、ワイヤレスハンドセット、集積回路(IC)、又はICのセット(例えば、チップセット)を含む様々な装置又はデバイスにおいて実装されてよい。様々なコンポーネント、モジュール、又はユニットが、開示された技法を実行するように構成された装置の機能的態様を強調するために本願において説明されているが、異なるハードウェアユニットによる実現を必ずしも要求するものではない。実際には、上記で説明されたように、様々なユニットが、適切なソフトウェア及び/又はファームウェアと組み合わせてコーデックハードウェアユニットに組み合わされてもよいし、又は(上記で説明された1つ又は複数のプロセッサを含む)相互運用ハードウェアユニットによって提供されてもよい。
【0280】
前述の説明は、本発明の特定の実装に過ぎず、本願の保護範囲はそれに限定されるものではない。本願において開示された技術的範囲内で当業者が容易に想到する任意の変形又は置換は、本願の保護範囲に含まれるものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
【手続補正書】
【提出日】2024-01-15
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
3Dマップを索出する方法であって、
複数の3Dマップ記述子のバイナリデータを取得する段階、ここで、前記複数の3Dマップ記述子は、3Dマップの少なくとも1つの3Dマップ点に対応する;
索出記述子のバイナリデータを取得する段階、ここで、前記索出記述子は、実環境に対応し、かつ電子デバイスのセンサによって収集された視覚的情報から抽出される特徴である;及び
前記索出記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の前記バイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得する段階、ここで、前記複数の3Dマップ記述子の各々のバイナリデータの長さは、前記索出記述子の前記バイナリデータの長さとは異なる
を備える、方法。
【請求項2】
前記少なくとも1つのターゲット3Dマップ記述子に対応する3Dマップ点は、前記索出記述子に対応するマップ点に一致し、前記方法は、
前記少なくとも1つのターゲット3Dマップ記述子に対応する前記3Dマップ点に基づいて測位を実行して、前記電子デバイスの姿勢情報を取得する段階
を更に備える、請求項1に記載の方法。
【請求項3】
前記索出記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の前記バイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得する前記段階は、
前記索出記述子の前記バイナリデータ及び前記複数の3Dマップ記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の各々及び前記索出記述子の間の第1の距離を決定する段階、ここで、前記複数の3Dマップ記述子のうちの任意の1つ及び索出記述子の間の第1の距離は、複数の第2の距離に基づいて決定され;前記複数の第2の距離のうちの任意の1つは、前記索出記述子の前記バイナリデータの部分データ及び前記3Dマップ記述子の前記バイナリデータの部分データに基づいて決定されるか、又は前記索出記述子の前記バイナリデータの部分データ及び前記3Dマップ記述子の前記バイナリデータの全データに基づいて決定されるか、又は前記3Dマップ記述子の前記バイナリデータの部分データ及び前記索出記述子の前記バイナリデータの部分データに基づいて決定されるか、又は前記3Dマップ記述子の前記バイナリデータの部分データ及び前記索出記述子の前記バイナリデータの全データに基づいて決定される;及び
前記複数の3Dマップ記述子の各々及び前記索出記述子の間の前記第1の距離に基づいて前記少なくとも1つのターゲット3Dマップ記述子として前記複数の3Dマップ記述子から少なくとも1つの3Dマップ記述子を選択する段階
を有する、請求項1又は2に記載の方法。
【請求項4】
前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の第1の距離の歪みは、歪み閾値よりも低く;
前記第1の距離の前記歪みは、前記第1の距離及び対応する元の距離の間の差の程度を示し、前記元の距離は、前記3Dマップ記述子及び前記索出記述子の間の距離である、請求項3に記載の方法。
【請求項5】
前記索出記述子の前記バイナリデータの部分データの長さは、前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さと同じであるか;又は前記索出記述子の前記バイナリデータの部分データの長さは、前記複数の3Dマップ記述子の各々の前記バイナリデータの全データの長さと同じであるか;又は前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さは、前記索出記述子の前記バイナリデータの部分データの長さと同じであるか;又は前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さは、前記索出記述子の前記バイナリデータの全データの長さと同じである、請求項3又は4に記載の方法。
【請求項6】
前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の前記第1の距離は、前記複数の第2の距離、及び前記複数の第2の距離に別個に対応する重み付け係数に基づいて決定される、請求項3~5のいずれか1項に記載の方法。
【請求項7】
前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも小さい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の複数の第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の少なくとも1つの第2のバイナリサブストリングを含み、前記複数の第1のバイナリサブストリングの各々の長さは、前記少なくとも1つの第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第1のバイナリサブストリングの各々及び前記少なくとも1つの第2のバイナリサブストリングの間の距離を含み;又は
前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも大きい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の少なくとも1つの第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の複数の第2のバイナリサブストリングを含み、前記少なくとも1つの第1のバイナリサブストリングの各々の長さは、前記複数の第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第2のバイナリサブストリングの各々及び前記少なくとも1つの第1のバイナリサブストリングの間の距離を含む、請求項3~6のいずれか1項に記載の方法。
【請求項8】
前記複数の3Dマップ記述子のうちの任意の1つは、エリア記述子又は3Dマップ点記述子を含む、請求項1~7のいずれか1項に記載の方法。
【請求項9】
複数の3Dマップ記述子のバイナリデータを取得する前記段階は、
前記3Dマップの圧縮されたデータを取得する段階、ここで、前記3Dマップの前記圧縮されたデータは、前記複数の3Dマップ記述子の前記バイナリデータを含む;
前記3Dマップの圧縮されたデータを取得し、前記3Dマップの前記圧縮されたデータを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得する段階;又は
前記3Dマップのビットストリームを受信し、前記3Dマップの前記ビットストリームを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得する段階
を有する、請求項1~8のいずれか1項に記載の方法。
【請求項10】
索出記述子のバイナリデータを取得する前記段階は、
前記索出記述子を受信し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得する段階;
前記視覚的情報を受信し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得する段階;又は
ユーザによって入力された視覚的情報収集動作に応答して、前記実環境に対して視覚的情報収集を実行するように前記センサをトリガして前記視覚的情報を取得し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して前記索出記述子の前記バイナリデータを取得する段階
を有する、請求項1~9のいずれか1項に記載の方法。
【請求項11】
3Dマップを索出する装置であって、
複数の3Dマップ記述子のバイナリデータを取得するように構成された第1の取得モジュール、ここで、前記複数の3Dマップ記述子は、3Dマップの少なくとも1つの3Dマップ点に対応する;
索出記述子のバイナリデータを取得するように構成された第2の取得モジュール、ここで、前記索出記述子は、実環境に対応し、かつ電子デバイスのセンサによって収集された視覚的情報から抽出される特徴である;及び
前記索出記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の前記バイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得するように構成された索出モジュール、ここで、前記複数の3Dマップ記述子の各々のバイナリデータの長さは、前記索出記述子の前記バイナリデータの長さとは異なる
を備える、装置。
【請求項12】
前記少なくとも1つのターゲット3Dマップ記述子に対応する3Dマップ点は、前記索出記述子に対応するマップ点に一致し、前記装置は、姿勢決定モジュールを更に備え;
前記姿勢決定モジュールは、前記少なくとも1つのターゲット3Dマップ記述子に対応する前記3Dマップ点に基づいて測位を実行して、前記電子デバイスの姿勢情報を取得するように構成されている、請求項11に記載の装置。
【請求項13】
前記索出モジュールは、
前記索出記述子の前記バイナリデータ及び前記複数の3Dマップ記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の各々及び前記索出記述子の間の第1の距離を決定すること、ここで、前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の第1の距離は、複数の第2の距離に基づいて決定され;前記複数の第2の距離のうちの任意の1つは、前記索出記述子の前記バイナリデータの部分データ及び前記3Dマップ記述子の前記バイナリデータの部分データに基づいて決定されるか、又は前記索出記述子の前記バイナリデータの部分データ及び前記3Dマップ記述子の前記バイナリデータの全データに基づいて決定されるか、又は前記3Dマップ記述子の前記バイナリデータの部分データ及び前記索出記述子の前記バイナリデータの部分データに基づいて決定されるか、又は前記3Dマップ記述子の前記バイナリデータの部分データ及び前記索出記述子の前記バイナリデータの全データに基づいて決定される;及び
前記複数の3Dマップ記述子の各々及び前記索出記述子の間の前記第1の距離に基づいて前記少なくとも1つのターゲット3Dマップ記述子として前記複数の3Dマップ記述子から少なくとも1つの3Dマップ記述子を選択すること
を行うように具体的に構成されている、請求項11又は12に記載の装置。
【請求項14】
前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の第1の距離の歪みは、歪み閾値よりも低く;
前記第1の距離の前記歪みは、前記第1の距離及び対応する元の距離の間の差の程度を示し、前記元の距離は、前記3Dマップ記述子及び前記索出記述子の間の距離である、請求項13に記載の装置。
【請求項15】
前記索出記述子の前記バイナリデータの部分データの長さは、前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さと同じであるか;又は前記索出記述子の前記バイナリデータの部分データの長さは、前記複数の3Dマップ記述子の各々の前記バイナリデータの全データの長さと同じであるか;又は前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さは、前記索出記述子の前記バイナリデータの部分データの長さと同じであるか;又は前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さは、前記索出記述子の前記バイナリデータの全データの長さと同じである、請求項13又は14に記載の装置。
【請求項16】
前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の前記第1の距離は、前記複数の第2の距離、及び前記複数の第2の距離にそれぞれ対応する重み付け係数に基づいて決定される、請求項13~15のいずれか1項に記載の装置。
【請求項17】
前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも小さい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の複数の第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の少なくとも1つの第2のバイナリサブストリングを含み、前記複数の第1のバイナリサブストリングの各々の長さは、前記少なくとも1つの第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第1のバイナリサブストリングの各々及び前記少なくとも1つの第2のバイナリサブストリングの間の距離を含み;又は
前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも大きい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の少なくとも1つの第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の複数の第2のバイナリサブストリングを含み、前記少なくとも1つの第1のバイナリサブストリングの各々の長さは、前記複数の第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第2のバイナリサブストリングの各々及び前記少なくとも1つの第1のバイナリサブストリングの間の距離を含む、請求項13~16のいずれか1項に記載の装置。
【請求項18】
前記複数の3Dマップ記述子のうちの任意の1つは、エリア記述子又は3Dマップ点記述子を含む、請求項11~17のいずれか1項に記載の装置。
【請求項19】
前記第1の取得モジュールは、前記3Dマップの圧縮されたデータを取得するように構成されており、前記3Dマップの前記圧縮されたデータは、前記複数の3Dマップ記述子の前記バイナリデータを含み;
前記第1の取得モジュールは、前記3Dマップの圧縮されたデータを取得し、前記3Dマップの前記圧縮されたデータを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得するように構成されており;又は
前記第1の取得モジュールは、前記3Dマップのビットストリームを受信し、前記3Dマップの前記ビットストリームを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得するように構成されている、請求項11~18のいずれか1項に記載の装置。
【請求項20】
前記第2の取得モジュールは、前記索出記述子を受信し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得するように構成されており;
前記第2の取得モジュールは、前記視覚的情報を受信し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得するように構成されており;又は
前記第2の取得モジュールは、ユーザによって入力された視覚的情報収集動作に応答して、前記実環境に対して視覚的情報収集を実行するように前記センサをトリガして前記視覚的情報を取得し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して前記索出記述子の前記バイナリデータを取得するように構成されている、請求項19に記載の装置。
【請求項21】
1つ又は複数のプロセッサ;及び
1つ又は複数のプログラムを記憶するように構成されたメモリ
を備え、前記1つ又は複数のプログラムが前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサは、請求項1~10のいずれか1項に記載の方法を実装するように有効化される、3Dマップを索出する装置。
【請求項22】
コンピュー
タに、請求項1~10のいずれか1項に記載の方法を実
行させるための、コンピュータプログラム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0159
【補正方法】変更
【補正の内容】
【0159】
図4dは、本願の一実施形態に係るアプリケーションシナリオの概略図である。図
4dにおいて示されているように、このアプリケーションシナリオでは、第2の電子デバイスが、センサを使用することによって視覚的情報を収集し、当該視覚的情報、及びサーバからの3Dマップを参照して第2の電子デバイスの現在の姿勢を決定する。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0171
【補正方法】変更
【補正の内容】
【0171】
図4eは、本願の一実施形態に係るアプリケーションシナリオの概略図である。図
4eにおいて示されているように、このアプリケーションシナリオでは、第2の電子デバイスが、センサを使用することによって視覚的情報を収集し、サーバが、第2の電子デバイスからの視覚的情報、及び第1の電子デバイスからの3Dマップを参照して第2の電子デバイスの現在の姿勢を決定する。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0180
【補正方法】変更
【補正の内容】
【0180】
図4fは、本願の一実施形態に係るアプリケーションシナリオの概略図である。図
4fにおいて示されているように、このアプリケーションシナリオでは、第2の電子デバイスが、センサを使用することによって視覚的情報を収集し、当該視覚的情報、及び第1の電子デバイスからの3Dマップを参照して第2の電子デバイスの現在の姿勢を決定する。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0269
【補正方法】変更
【補正の内容】
【0269】
3Dマップを索出する装置900は、
図5~
図10において示された実施形態のうちの任意の1つにおける3Dマップを索出す
る方法を実行してよいことに留意されたい。特定の実装原理及び技術的効果について、前述の方法の実施形態の具体的な説明及び記述を参照されたい。詳細は、本明細書において再度説明されない。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0280
【補正方法】変更
【補正の内容】
【0280】
前述の説明は、本発明の特定の実装に過ぎず、本願の保護範囲はそれに限定されるものではない。本願において開示された技術的範囲内で当業者が容易に想到する任意の変形又は置換は、本願の保護範囲に含まれるものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
[項目1]
3Dマップを索出する方法であって、
複数の3Dマップ記述子のバイナリデータを取得する段階、ここで、前記複数の3Dマップ記述子は、3Dマップの少なくとも1つの3Dマップ点に対応する;
索出記述子のバイナリデータを取得する段階、ここで、前記索出記述子は、実環境に対応し、かつ電子デバイスのセンサによって収集された視覚的情報から抽出される特徴である;及び
前記索出記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の前記バイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得する段階、ここで、前記複数の3Dマップ記述子の各々のバイナリデータの長さは、前記索出記述子の前記バイナリデータの長さとは異なる
を備える、方法。
[項目2]
前記少なくとも1つのターゲット3Dマップ記述子に対応する3Dマップ点は、前記索出記述子に対応するマップ点に一致し、前記方法は、
前記少なくとも1つのターゲット3Dマップ記述子に対応する前記3Dマップ点に基づいて測位を実行して、前記電子デバイスの姿勢情報を取得する段階
を更に備える、項目1に記載の方法。
[項目3]
前記索出記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の前記バイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得する前記段階は、
前記索出記述子の前記バイナリデータ及び前記複数の3Dマップ記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の各々及び前記索出記述子の間の第1の距離を決定する段階、ここで、前記複数の3Dマップ記述子のうちの任意の1つ及び索出記述子の間の第1の距離は、複数の第2の距離に基づいて決定され;前記複数の第2の距離のうちの任意の1つは、前記索出記述子の前記バイナリデータの部分データ及び前記3Dマップ記述子の前記バイナリデータの部分データに基づいて決定されるか、又は前記索出記述子の前記バイナリデータの部分データ及び前記3Dマップ記述子の前記バイナリデータの全データに基づいて決定されるか、又は前記3Dマップ記述子の前記バイナリデータの部分データ及び前記索出記述子の前記バイナリデータの部分データに基づいて決定されるか、又は前記3Dマップ記述子の前記バイナリデータの部分データ及び前記索出記述子の前記バイナリデータの全データに基づいて決定される;及び
前記複数の3Dマップ記述子の各々及び前記索出記述子の間の前記第1の距離に基づいて前記少なくとも1つのターゲット3Dマップ記述子として前記複数の3Dマップ記述子から少なくとも1つの3Dマップ記述子を選択する段階
を有する、項目1又は2に記載の方法。
[項目4]
前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の第1の距離の歪みは、歪み閾値よりも低く;
前記第1の距離の前記歪みは、前記第1の距離及び対応する元の距離の間の差の程度を示し、前記元の距離は、前記3Dマップ記述子及び前記索出記述子の間の距離である、項目3に記載の方法。
[項目5]
前記索出記述子の前記バイナリデータの部分データの長さは、前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さと同じであるか;又は前記索出記述子の前記バイナリデータの部分データの長さは、前記複数の3Dマップ記述子の各々の前記バイナリデータの全データの長さと同じであるか;又は前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さは、前記索出記述子の前記バイナリデータの部分データの長さと同じであるか;又は前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さは、前記索出記述子の前記バイナリデータの全データの長さと同じである、項目3又は4に記載の方法。
[項目6]
前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の前記第1の距離は、前記複数の第2の距離、及び前記複数の第2の距離に別個に対応する重み付け係数に基づいて決定される、項目3~5のいずれか1項に記載の方法。
[項目7]
前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも小さい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の複数の第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の少なくとも1つの第2のバイナリサブストリングを含み、前記複数の第1のバイナリサブストリングの各々の長さは、前記少なくとも1つの第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第1のバイナリサブストリングの各々及び前記少なくとも1つの第2のバイナリサブストリングの間の距離を含み;又は
前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも大きい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の少なくとも1つの第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の複数の第2のバイナリサブストリングを含み、前記少なくとも1つの第1のバイナリサブストリングの各々の長さは、前記複数の第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第2のバイナリサブストリングの各々及び前記少なくとも1つの第1のバイナリサブストリングの間の距離を含む、項目3~6のいずれか1項に記載の方法。
[項目8]
前記複数の3Dマップ記述子のうちの任意の1つは、エリア記述子又は3Dマップ点記述子を含む、項目1~7のいずれか1項に記載の方法。
[項目9]
複数の3Dマップ記述子のバイナリデータを取得する前記段階は、
前記3Dマップの圧縮されたデータを取得する段階、ここで、前記3Dマップの前記圧縮されたデータは、前記複数の3Dマップ記述子の前記バイナリデータを含む;
前記3Dマップの圧縮されたデータを取得し、前記3Dマップの前記圧縮されたデータを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得する段階;又は
前記3Dマップのビットストリームを受信し、前記3Dマップの前記ビットストリームを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得する段階
を有する、項目1~8のいずれか1項に記載の方法。
[項目10]
索出記述子のバイナリデータを取得する前記段階は、
前記索出記述子を受信し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得する段階;
前記視覚的情報を受信し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得する段階;又は
ユーザによって入力された視覚的情報収集動作に応答して、前記実環境に対して視覚的情報収集を実行するように前記センサをトリガして前記視覚的情報を取得し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して前記索出記述子の前記バイナリデータを取得する段階
を有する、項目1~9のいずれか1項に記載の方法。
[項目11]
3Dマップを索出する装置であって、
複数の3Dマップ記述子のバイナリデータを取得するように構成された第1の取得モジュール、ここで、前記複数の3Dマップ記述子は、3Dマップの少なくとも1つの3Dマップ点に対応する;
索出記述子のバイナリデータを取得するように構成された第2の取得モジュール、ここで、前記索出記述子は、実環境に対応し、かつ電子デバイスのセンサによって収集された視覚的情報から抽出される特徴である;及び
前記索出記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の前記バイナリデータにおいて索出を実行して、少なくとも1つのターゲット3Dマップ記述子を取得するように構成された索出モジュール、ここで、前記複数の3Dマップ記述子の各々のバイナリデータの長さは、前記索出記述子の前記バイナリデータの長さとは異なる
を備える、装置。
[項目12]
前記少なくとも1つのターゲット3Dマップ記述子に対応する3Dマップ点は、前記索出記述子に対応するマップ点に一致し、前記装置は、姿勢決定モジュールを更に備え;
前記姿勢決定モジュールは、前記少なくとも1つのターゲット3Dマップ記述子に対応する前記3Dマップ点に基づいて測位を実行して、前記電子デバイスの姿勢情報を取得するように構成されている、項目11に記載の装置。
[項目13]
前記索出モジュールは、
前記索出記述子の前記バイナリデータ及び前記複数の3Dマップ記述子の前記バイナリデータに基づいて前記複数の3Dマップ記述子の各々及び前記索出記述子の間の第1の距離を決定すること、ここで、前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の第1の距離は、複数の第2の距離に基づいて決定され;前記複数の第2の距離のうちの任意の1つは、前記索出記述子の前記バイナリデータの部分データ及び前記3Dマップ記述子の前記バイナリデータの部分データに基づいて決定されるか、又は前記索出記述子の前記バイナリデータの部分データ及び前記3Dマップ記述子の前記バイナリデータの全データに基づいて決定されるか、又は前記3Dマップ記述子の前記バイナリデータの部分データ及び前記索出記述子の前記バイナリデータの部分データに基づいて決定されるか、又は前記3Dマップ記述子の前記バイナリデータの部分データ及び前記索出記述子の前記バイナリデータの全データに基づいて決定される;及び
前記複数の3Dマップ記述子の各々及び前記索出記述子の間の前記第1の距離に基づいて前記少なくとも1つのターゲット3Dマップ記述子として前記複数の3Dマップ記述子から少なくとも1つの3Dマップ記述子を選択すること
を行うように具体的に構成されている、項目11又は12に記載の装置。
[項目14]
前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の第1の距離の歪みは、歪み閾値よりも低く;
前記第1の距離の前記歪みは、前記第1の距離及び対応する元の距離の間の差の程度を示し、前記元の距離は、前記3Dマップ記述子及び前記索出記述子の間の距離である、項目13に記載の装置。
[項目15]
前記索出記述子の前記バイナリデータの部分データの長さは、前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さと同じであるか;又は前記索出記述子の前記バイナリデータの部分データの長さは、前記複数の3Dマップ記述子の各々の前記バイナリデータの全データの長さと同じであるか;又は前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さは、前記索出記述子の前記バイナリデータの部分データの長さと同じであるか;又は前記複数の3Dマップ記述子の各々の前記バイナリデータの部分データの長さは、前記索出記述子の前記バイナリデータの全データの長さと同じである、項目13又は14に記載の装置。
[項目16]
前記複数の3Dマップ記述子のうちの任意の1つ及び前記索出記述子の間の前記第1の距離は、前記複数の第2の距離、及び前記複数の第2の距離にそれぞれ対応する重み付け係数に基づいて決定される、項目13~15のいずれか1項に記載の装置。
[項目17]
前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも小さい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の複数の第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の少なくとも1つの第2のバイナリサブストリングを含み、前記複数の第1のバイナリサブストリングの各々の長さは、前記少なくとも1つの第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第1のバイナリサブストリングの各々及び前記少なくとも1つの第2のバイナリサブストリングの間の距離を含み;又は
前記複数の3Dマップ記述子の各々の前記バイナリデータの前記長さが前記索出記述子の前記バイナリデータの前記長さよりも大きい場合、前記索出記述子の前記バイナリデータは、前記索出記述子の少なくとも1つの第1のバイナリサブストリングを含み、前記複数の3Dマップ記述子の各々の前記バイナリデータは、前記複数の3Dマップ記述子の各々の複数の第2のバイナリサブストリングを含み、前記少なくとも1つの第1のバイナリサブストリングの各々の長さは、前記複数の第2のバイナリサブストリングの各々の長さと同じであり、前記複数の第2の距離は、前記複数の第2のバイナリサブストリングの各々及び前記少なくとも1つの第1のバイナリサブストリングの間の距離を含む、項目13~16のいずれか1項に記載の装置。
[項目18]
前記複数の3Dマップ記述子のうちの任意の1つは、エリア記述子又は3Dマップ点記述子を含む、項目11~17のいずれか1項に記載の装置。
[項目19]
前記第1の取得モジュールは、前記3Dマップの圧縮されたデータを取得するように構成されており、前記3Dマップの前記圧縮されたデータは、前記複数の3Dマップ記述子の前記バイナリデータを含み;
前記第1の取得モジュールは、前記3Dマップの圧縮されたデータを取得し、前記3Dマップの前記圧縮されたデータを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得するように構成されており;又は
前記第1の取得モジュールは、前記3Dマップのビットストリームを受信し、前記3Dマップの前記ビットストリームを解凍して、前記複数の3Dマップ記述子の前記バイナリデータを取得するように構成されている、項目11~18のいずれか1項に記載の装置。
[項目20]
前記第2の取得モジュールは、前記索出記述子を受信し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得するように構成されており;
前記第2の取得モジュールは、前記視覚的情報を受信し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して、前記索出記述子の前記バイナリデータを取得するように構成されており;又は
前記第2の取得モジュールは、ユーザによって入力された視覚的情報収集動作に応答して、前記実環境に対して視覚的情報収集を実行するように前記センサをトリガして前記視覚的情報を取得し、前記視覚的情報から前記索出記述子を抽出し、前記索出記述子に対して二値化を実行して前記索出記述子の前記バイナリデータを取得するように構成されている、項目19に記載の装置。
[項目21]
1つ又は複数のプロセッサ;及び
1つ又は複数のプログラムを記憶するように構成されたメモリ
を備え、前記1つ又は複数のプログラムが前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサは、項目1~10のいずれか1項に記載の方法を実装するように有効化される、3Dマップを索出する装置。
[項目22]
コンピュータプログラムを備え、前記コンピュータプログラムがコンピュータ上で実行されると、前記コンピュータは、項目1~10のいずれか1項に記載の方法を実行するように有効化される、コンピュータ可読記憶媒体。
【国際調査報告】