(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-30
(54)【発明の名称】点群のマルチツリー分解及び処理のためのシステム及び方法
(51)【国際特許分類】
G06T 17/00 20060101AFI20240920BHJP
【FI】
G06T17/00 500
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024515906
(86)(22)【出願日】2022-09-22
(85)【翻訳文提出日】2024-04-10
(86)【国際出願番号】 US2022076856
(87)【国際公開番号】W WO2023049797
(87)【国際公開日】2023-03-30
(32)【優先日】2021-09-27
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523436023
【氏名又は名称】イラシオ、インコーポレイテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ボガッツ、ジョセフ
(72)【発明者】
【氏名】モナハン、ロバート
(57)【要約】
点群のマルチツリー分解を介して点群に効率的にアクセスするためのシステムを開示する。システムは点群を受信し得、区別基準を使用して点群からの異なるデータ点のセットを区別し得、異なるツリーを生成し得、各ツリーは、区別されたデータ点のセットの1つに対応する葉ノード、及び、2又はより多くの葉ノードの値における共通性に従って定義される親ノードを有する。システムは、3D環境をレンダリングするための要求を受信し、第1ツリーをメモリにロードし、第1ツリーデータ点から第1画像を生成し、第1ツリーをメモリからフラッシュし、第2ツリーをメモリにロードし、第2ツリーデータ点から第2画像を生成し、少なくとも第1画像を第2画像と組み合わせることによって合成画像を提示し得る。
【特許請求の範囲】
【請求項1】
3次元(3D)空間において不均一に分散されて3D環境を表す複数のデータ点を含む点群を受信する段階;
区別基準を使用して、前記複数のデータ点からの異なるデータ点のセットを区別する段階;
複数のツリーを生成する段階、前記複数のツリーの各ツリーは、前記異なるデータ点のセットのうちの1つのセットに対応する複数の葉ノード、及び、2又はより多くの葉ノードの値における共通性に従って定義される複数の親ノードを含む;
前記3D環境をレンダリングするための要求を受信する段階;
前記複数のツリーの第1ツリーをメモリにロードする段階;
前記第1ツリーの前記データ点のセットから第1画像を生成する段階;
前記第1ツリーを前記メモリからフラッシュする段階;
前記複数のツリーの第2ツリーを前記メモリにロードする段階;
前記第2ツリーの前記データ点のセットから第2画像を生成する段階;
少なくとも前記第1画像を前記第2画像と組み合わせることから前記3D環境の合成画像を提示する段階
を備える方法。
【請求項2】
前記第2ツリーをロードした後に利用可能な前記メモリの量が閾値量より大きいと判定する段階;
前記複数のツリーからの第3ツリーのサイズが、利用可能な前記メモリの前記量より小さいと判定する段階;
前記第3ツリーを前記第2ツリーと共に前記メモリにロードする段階;及び
ここで、前記第2画像を生成する段階は:
前記第3ツリーの前記データ点のセットからの第3画像と並列に、前記第2ツリーの前記データ点のセットから前記第2画像を生成する段階
を含む、
を更に備える、請求項1に記載の方法。
【請求項3】
前記複数のデータ点の各データ点は、前記3D空間における前記データ点の特定の位置を定義する第1セットの値、及び、前記特定の位置における前記3D環境の表面、特徴、又はオブジェクトの記述的特徴を定義する第2セットの値を含む、請求項1に記載の方法。
【請求項4】
前記複数のツリーを生成する段階は:
前記第1セットの値又は前記第2セットの値における一致する値を有する2又はより多くのデータ点について、前記第1ツリーの前記データ点のセットをスキャンする段階;及び
前記2又はより多くのデータ点を表す葉ノードについて親ノードを定義する段階、ここで、前記親ノードを定義する段階は、前記一致する値を前記親ノードの値として設定する段階を含む、
を備える、請求項3に記載の方法。
【請求項5】
前記3D空間の特定の領域における変更を指定するユーザ入力を受信する段階;
前記第1ツリーが前記特定の領域におけるデータ点を含むと判定する段階;
前記点群からの前記複数のデータ点の他のデータ点を前記メモリにロードすることなく、前記第1ツリーからの前記データ点のセットを前記メモリにロードする段階;
前記ユーザ入力において指定される前記変更に基づいて、前記第1ツリーの前記データ点のセットのうちの1又は複数を修正する段階;
前記1又は複数のデータ点の前記修正に基づいて、修正された第1画像を生成する段階;及び
前記第2画像を保持しながら、前記第1画像を前記修正された第1画像で置き換えることによって前記合成画像を更新する段階
を更に備える請求項1に記載の方法。
【請求項6】
前記点群の背景要素から前景要素を区別するための前記区別基準を選択する段階;
前記前景要素又は前記背景要素の1つについて指定された優先順位付けを満たす前記複数のツリーの各々からの前記データ点のセットの前記値に基づいて、前記複数のツリーのレンダリング順序を定義する段階;及び
前記レンダリング順序、及び、前記第1ツリーが前記第2ツリーより高い程度で前記優先順位付けを満たすことに基づいて、前記第2ツリーの前に前記第1ツリーをレンダリングのために選択する段階
を更に備える、請求項1に記載の方法。
【請求項7】
前記点群の低解像度要素から高解像度要素を区別するための前記区別基準を選択する段階;
前記高解像度要素又は前記低解像度要素の1つについて指定された優先順位付けを満たす前記複数のツリーの各々からの前記データ点のセットの前記値に基づいて、前記複数のツリーについてのレンダリング順序を定義する段階;及び
前記レンダリング順序、及び、前記第1ツリーが前記第2ツリーより高い程度で前記優先順位付けを満たすことに基づいて、前記第1ツリーを前記第2ツリーの前にレンダリングのために選択する段階
を更に備える、請求項1に記載の方法。
【請求項8】
前記異なるデータ点のセットを区別する段階は:
前記点群の第1領域において共にクラスタリングされる前記複数のデータ点の第1セットを判定する段階、前記第1セットのデータ点の前記値は全体として、前記区別基準の第1基準を満たす、及び
前記点群の第2領域において共にクラスタリングされる前記複数のデータ点の第2セットを判定する段階、前記第2セットのデータ点の前記値は全体として、前記区別基準の第2基準を満たし、ここで、前記第1基準は前記第2基準と異なる、
を含む、請求項1に記載の方法。
【請求項9】
前記第1基準及び前記第2基準は、2又はより多くのデータ点の前記値における共通性を指定し、前記共通性により、前景要素を前記点群の背景要素から、又は、高解像度要素を前記点群の低解像度要素から区別する、請求項8に記載の方法。
【請求項10】
前記第1基準及び前記第2基準は、2又はより多くのデータ点のポジショニングにおいて異なる共通性を指定し;
ここで、前記第1ツリーの前記データ点のセットは、前記第1基準を満たす第1位置共通性を用いて前記点群において定義され、及び
ここで、前記第2ツリーの前記データ点のセットは、前記第2基準を満たす第2位置共通性を用いて前記点群において定義される、
請求項8に記載の方法。
【請求項11】
前記第1基準及び前記第2基準は、2又はより多くのデータ点の記述的特徴における異なる共通性を指定し、
ここで、前記第1ツリーの前記データ点のセットは、前記第1基準を満たす第1記述的特徴を用いて前記点群において定義され、及び
ここで、前記第2ツリーの前記データ点のセットは、前記第2基準を満たす第2記述的特徴を用いて前記点群において定義される、
請求項8に記載の方法。
【請求項12】
前記異なるデータ点のセットを区別することは:
前記区別基準において定義される1又は複数の位置値又は記述的特徴値にわたる共通性を有する2又はより多くのデータ点を含めるために、前記異なるデータ点のセットの各セットを選択すること
を含む、請求項1から11のいずれか一項に記載の方法。
【請求項13】
3次元(3D)空間において不均一に分散されて3D環境を表す複数のデータ点を含む点群を受信する;
区別基準を使用して前記複数のデータ点からの異なるデータ点のセットを区別する;
複数のツリーを生成する段階、前記複数のツリーの各ツリーは、前記異なるデータ点のセットのうちの1つのセットに対応する複数の葉ノード、及び、2又はより多くの葉ノードの値における共通性に従って定義される複数の親ノードを含む;
前記3D環境をレンダリングするための要求を受信する;
前記複数のツリーの第1ツリーをメモリにロードする;
前記第1ツリーの前記データ点のセットから第1画像を生成する;
前記第1ツリーを前記メモリからフラッシュする;
前記複数のツリーの第2ツリーを前記メモリにロードする;
前記第2ツリーの前記データ点のセットから第2画像を生成する;及び
少なくとも前記第1画像を前記第2画像と組み合わせることから、前記3D環境の合成画像を提示する
よう構成されている1又は複数のプロセッサを備えるシステム。
【請求項14】
前記1又は複数のプロセッサは更に:
前記第2ツリーをロードした後に利用可能な前記メモリの量が閾値量より大きいと判定する;
前記複数のツリーからの第3ツリーのサイズが、利用可能な前記メモリの前記量より小さいと判定する;
前記第3ツリーを前記第2ツリーと共に前記メモリにロードする;及び
ここで、前記第2画像を生成することは:
前記第3ツリーの前記データ点のセットからの第3画像と並列に前記第2ツリーの前記データ点のセットから前記第2画像を生成すること
を含む、
よう構成される、請求項13に記載のシステム。
【請求項15】
前記1又は複数のプロセッサは更に:
前記3D空間の特定の領域における変化を指定するユーザ入力を受信する;
前記第1ツリーが前記特定の領域におけるデータ点を含むと判定する;
前記点群からの前記複数のデータ点の他のデータ点を前記メモリにロードすることなく、前記第1ツリーからの前記データ点のセットを前記メモリにロードする;
前記ユーザ入力において指定された前記変化に基づいて、前記第1ツリーの前記データ点のセットのうちの1又は複数を修正する;
前記1又は複数のデータ点の前記修正に基づいて、修正された第1画像を生成する;
前記第2画像を保持しながら、前記第1画像を前記修正された第1画像で置き換えることによって、前記合成画像を更新する
よう構成されている、請求項13に記載のシステム。
【請求項16】
前記1又は複数のプロセッサは更に:
前記点群の背景要素から前景要素を区別するための前記区別基準を選択する;
前記前景要素又は前記背景要素の1つについて指定された優先順位付けを満たす前記複数のツリーの各々からの前記データ点のセットの前記値に基づいて、前記複数のツリーについてのレンダリング順序を定義する;及び
前記レンダリング順序、及び、前記第1ツリーが前記第2ツリーより高い程度で前記優先順位付けを満たすことに基づいて、前記第2ツリーの前に前記第1ツリーをレンダリングのために選択する
よう構成されている、請求項13に記載のシステム。
【請求項17】
前記異なるデータ点のセットを区別することは:
前記点群の第1領域において共にクラスタリングされる前記複数のデータ点の第1セットを判定すること、前記第1セットのデータ点の前記値は全体として、前記区別基準の第1基準を満たす、及び
前記点群の第2領域において共にクラスタリングされる前記複数のデータ点の第2セットを判定すること、前記第2セットのデータ点の前記値は全体として、前記区別基準の第2基準を満たし、ここで、前記第1基準は第2基準と異なる、
を含む、請求項13に記載のシステム。
【請求項18】
前記異なるデータ点のセットを区別することは:
前記区別基準において定義される1又は複数の位置値又は記述的特徴値にわたる共通性を有する2又はより多くのデータ点を含めるために、前記異なるデータ点のセットの各セットを選択すること
を含む、請求項13から17のいずれか一項に記載のシステム。
【請求項19】
コンピュータにより実行された場合、前記コンピュータに、
3次元(3D)空間において不均一に分散されて3D環境を表す複数のデータ点を含む点群を受信させる;
区別基準を使用して前記複数のデータ点からの異なるデータ点のセットを区別させ;
複数のツリーを生成させる、前記複数のツリーの各ツリーは、前記異なるデータ点のセットのうちの1つのセットに対応する複数の葉ノード、及び、2又はより多くの葉ノードの値における共通性に従って定義される複数の親ノードを含む;
前記3D環境をレンダリングするための要求を受信させる;
前記複数のツリーの第1ツリーをメモリにロードさせる;
前記第1ツリーの前記データ点のセットから第1画像を生成させる;
前記第1ツリーを前記メモリからフラッシュさせる;
前記複数のツリーの第2ツリーを前記メモリにロードさせる;
前記第2ツリーの前記データ点のセットから第2画像を生成させる;及び
少なくとも前記第1画像を前記第2画像と組み合わせることから、前記3D環境の合成画像を提示させる
ための複数のプロセッサ実行可能命令を備えるコンピュータプログラム。
【発明の詳細な説明】
【背景技術】
【0001】
点群は、複数のデータ点を用いて3次元(3D)オブジェクト又は環境を表し得る。各データ点は、3Dオブジェクト又は環境のイメージングされた点のポジショニング及び他の特徴を表し得る。
【0002】
3Dオブジェクト又は環境の領域を表すために3D画像において使用される、画像又はメッシュのピクセル、ボクセル及び/又は他のポリゴンに比べて、より高い解像度及び/又は忠実度が点群データ点によって提供されることに起因して、点群は、デジタル画像又は3Dレンダリングより正確な3Dオブジェクト又は環境のキャプチャを提供し得る。特に、デジタル画像のピクセルは、3D位置情報を含まず、点群データ点によって提供される解像度より数桁低いことがあり得る固定の解像度である。
【0003】
点群の正確度を高くすると、計算及びリソースオーバヘッドが高くなるという代償がある。例えば、点群は、その点群によって表される3D環境をレンダリングするべく、メモリにロードされて共に処理される数百万又は数十億のデータ点を有し得る。1又は複数のデータ点を変化させる任意のインタラクションは、大きいボリュームの他のデータ点の再編成又はそうでなければ処理をもたらし得る連鎖的な影響を有し得る。換言すると、点群データ点のうちの1又は複数に触れると、変化が正しく実装されることを確実にするべく、システムはすべて又は多くの他の点群データ点を検査(inspect)及び/又は処理する必要があり得る。したがって、点群におけるデータの非常に大きいボリュームは、コンピュータ及び/又は他の点群デバイスのパフォーマンスを、許容できないレベルに低下させ得る。
【図面の簡単な説明】
【0004】
【0005】
【
図1】本明細書において提示されるいくつかの実施形態による、1又は複数の区別基準を使用して点群から要素を区別する例を示す。
【0006】
【
図2】本明細書において提示されるいくつかの実施形態による、各データ点のセット内に検出された位置及び非位置共通性に基づいて動的に区別される異なるデータ点のセットを伴う複数のツリーに点群を区分するための処理を提示する。
【0007】
【
図3】本明細書において提示されるいくつかの実施形態による、より大きい点群から抽出される、及び、より大きい点群から区別される要素又はオブジェクトを表すデータ点のセットについてのツリー構成例を示す。
【0008】
【
図4】本明細書において提示されるいくつかの実施形態による、点群から区別されるオブジェクトを表すデータ点の散在するセットに基づいてバイナリツリーを構築するための処理を提示する。
【0009】
【
図5】本明細書において提示されるいくつかの実施形態による、点群の異なるツリーへの区分に基づいて、レンダリングを直列化及び/又は並列化することによって点群のレンダリングを最適化する例を示す。
【0010】
【
図6】本明細書において提示されるいくつかの実施形態による、点群の区分された表現及び区分の選択的処理に基づいて点群のレンダリングを最適化する例を示す。
【0011】
【
図7】本明細書において提示されるいくつかの実施形態による、点群のマルチツリー表現を使用して、点群によって表される3D環境内のオブジェクトの一部を効率的に修正する例を示す。
【0012】
【
図8】本明細書において記載される1又は複数の実施形態による1又は複数のデバイスの例示的コンポーネントを示す。
【発明を実施するための形態】
【0013】
以下の詳細な説明は、添付図面を参照する。複数の異なる図面における複数の同一の参照番号は、複数の同一又は同様の要素を識別し得る。
【0014】
点群のマルチツリー処理のためのシステム及び方法が提供される。マルチツリー処理は、点群データ点の他のサブセットにアクセスする又はそれを処理する必要無しに、点群データ点の関連するサブセットのアクセス、レンダリング、修正、及び/又は、そうでなければ処理を効率的に行い得る。マルチツリー処理はまた、処理システム又はデバイスの利用可能なリソースに基づいて、同一の点群からの異なるデータ点のセットの処理を直列化及び/又は並列化し得る。
【0015】
点群のマルチツリー処理は、多数のデータ点(例えば、数百万又は数十億のデータ点)を使用して、3次元(3D)オブジェクト又は環境を表す単一の点群(例えば、ファイル、画像、データ構造、及び/又は他のコンテナ)を異なるツリー又はデータ構造に分離すること、及び、レンダリング、操作、及び/又は、そうでなければインタラクトされる点群の一部に応じて、ツリーのうちの1又は複数を直列及び/又は並列に処理することを含み得る。異なるツリーへの点群データ点の区分、及び、ツリーの直列化又は並列化処理は、点群及びその中の異なる要素のレンダリング、操作、及び/又はそうでなければ視覚化又はインタラクトのためのプロセッサ、メモリ及び/又は他のリソースオーバヘッドを著しく低減し得、点群に含まれる点群のサイズ又はデータ点の数に関わらず、点群を扱うときのシステム又はデバイスの応答性を向上させ得る。
【0016】
いくつかの実施形態において、点群システム(PCS)は、PCSが特定の点群から区別する異なる要素又はオブジェクトに基づいて、特定の点群の後続の処理のために異なるツリーを生成し得る。PCSは、1又は複数の区別基準を使用して要素又はオブジェクトを区別し得、特定の点群における区別された要素又はオブジェクトを形成するデータ点のセットに基づいて、各区別された要素又はオブジェクトについての異なるツリーを生成し得る。
【0017】
いくつかの実施形態において、区別基準は、要素又はオブジェクトを特定の点群から区別するために、位置値、位置共通性、視覚的特徴値、視覚的な特徴の共通性、及び/又は他のデータ点値又は共通性を指定し得る。PCSは、これらの値及び/又は共通性について点群データ点を検査し得、値及び/又は共通性に基づいて、高精細、高密度、又は高解像度要素又はオブジェクトを、低精細、低密度、又は低解像度要素又はオブジェクトから区別し得、前景要素又はオブジェクトを背景要素又はオブジェクトから区別し得、及び/又は、特定の点群内の他の要素又はオブジェクトを区別し得る。いくつかの実施形態において、PCSは、各データ点のセットにおいて観察される、区別された値及び/又は共通性、及び/又は、データ点のそれぞれのポジショニング及び/又は視覚的特徴に基づいて、異なる点群データ点のセットを伴う異なるツリーを構築し得る。
【0018】
図1は、本明細書において提示される、いくつかの実施形態による、1又は複数の区別基準を使用して、点群101から要素を区別するPCS100の例を示す。PCS100は、異なる点群のレンダリング、編集、インタラクト、及び/又は、他の取り扱いのためのコンピューティング、メモリ、及び/又は、他のリソースを伴う1又は複数のデバイスを含み得る。
【0019】
PCS100は、点群101を受信し得る(102)。例えば、PCS100は、点群101についてのデータ点、メタデータ、及び/又は他のデータを格納するファイルを開き得る、又は、点群101を格納する画像、データ構造、及び/又は他のコンテナにアクセスし得る。
【0020】
点群101は、複数のオブジェクトを含む3D環境の異なる点についての位置及び非位置情報に対応する、及びそれをキャプチャするデータ点を含み得る。点群101及び個別のデータ点は、3D又は深度感知カメラ、光検出及び測距(LiDAR)センサ、核磁気共鳴画像法(MRI)デバイス、陽電子放射断層撮影(PET)スキャンデバイス、コンピュータ断層撮影(CT)スキャンデバイス、タイムオブフライトデバイス、及び/又は、3Dオブジェクト、ボリュメトリックオブジェクト又は3D環境についての他のイメージング機器によって生成され得る。
【0021】
点群データ点は、2次元(2D)画像のピクセルと異なり得る。なぜなら、点群101の特定の領域は、3Dオブジェクト、ボリュメトリックオブジェクト又は3D環境をイメージングするとき、それらの領域で検出される情報の変動する量に基づいて、データ点を有しない、より低い密度のデータ点を有する、及び/又は、より高い密度のデータ点を有することがあり得るからである。例えば、点群イメージングデバイスは、同一のオブジェクトが点群イメージングデバイスから更に離れて配置された場合と比べて、より多くのデータ点(例えば、より高い解像度)を伴って、点群イメージングデバイスにより近いオブジェクトをキャプチャし得る。なぜなら、デバイスから放射されるビーム(例えば、光、レーザなど)は、より遠いオブジェクトに比べて、より近いオブジェクトに対して、より多くの数だけ接触し、各ビームからの測定は、点群101の異なるデータ点をもたらすからである。対照的に、2D画像のピクセルは、2D画像の解像度によって定義される均一の密度及び固定の配列を有する。さらに、点群データ点は、非均一的な分布、配置、又はポジショニングを有し得、一方、2D画像は、定義された解像度(例えば、640×480、800×600など)の各ピクセルについてのピクセルデータを有する。
【0022】
各点群データ点は位置及び非位置データ値を含み得る。位置データ値は、3D空間内の座標を含み得る。例えば、各点群データ点は、3D環境の各イメージングされた点、特徴、要素、オブジェクトについてのx座標、y座標及びz座標データ点値を含み得る。非位置データ点値は、データ点の記述的特徴についての値を含み得る。記述的特徴は、イメージングされた点、特徴、要素又はオブジェクトの視覚的特徴を含み得る。視覚的特徴は、検出された色に対応し得る。色は、赤、緑及び青(RGB)値を使用して表され得る。いくつかの実施形態において、記述的特徴は、イメージングされた点、特徴、要素又はオブジェクトの色度及び/又は輝度を含み得る。いくつかの他の実施形態において、記述的特徴は、3D環境をキャプチャするために使用されるイメージングデバイスの特性を含み得る。例えば、記述的特徴は、3D環境の特定の点を検出及び/又はイメージングするのに使用された磁場の強度を定量化するためのテスラ強度値を含み得る。いくつかの実施形態において、記述的特徴は、イメージングデバイス又はイメージングされているオブジェクトのエネルギー、可聴音又は音声、及び/又は、他の特徴を含み得る。したがって、非位置データ値は、イメージングされたオブジェクト部分の(例えば、色調、彩度、明るさ、反射性など)、又は、3D空間における対応するデータ点におけるオブジェクト部分をキャプチャするために使用されるイメージングデバイスの任意の特性又は記述的特徴を含み得る。
【0023】
各特定のデータ点についての位置及び非位置データ値は、アレイに格納され得、いくつかの識別子又はデータ値のうちの1又は複数を使用して、その特定のデータ点に関連付けられ得る。例えば、点群データ点は、そのx座標、y座標及びz座標データ値、及び、赤、緑、青、色度、輝度、テスラ及び/又は他の値などの非位置情報を用いて識別され得、その結果、データ点は、x座標、y座標及びz座標データ値のルックアップを介しアクセスされ得る。
【0024】
PCS100は、異なるツリーに区分される異なる要素又はオブジェクトについてのデータ点のセットを識別及び/又は抽出するための区別基準を選択し得る(104)。PCS100は、(104において)選択された区別基準を使用して点群101のデータ点を検査し得る。検査は、区別基準に合致する又はそれを満たす異なるセットを識別することを含み得る。
【0025】
いくつかの実施形態において、区別基準は、データ点の1又は複数のセットにおいて見られる位置共通性に基づいて、1又は複数の要素又はオブジェクトを区別するための第1基準を含み得る。より具体的には、第1基準は、z深度位置データ値の範囲、y深度位置値の範囲、特定の位置クラスタリング(例えば、x、y、z位置が閾値距離より少なく分離されたデータ点)、区別された要素又はオブジェクトについての特定の解像度(例えば、3D空間の境界付きのボリューム又は領域内のデータ点の総数)、及び/又は、位置値から直接又は間接的に決定された他の共通性を指定し得る。
図1に示されるように、PCS100は、第1基準を使用して、点群101の背景内の壁を識別し得、データ点の第1セット103が第1基準を満たすと、及び、データ点の第1セット103が、第1ツリーに区分されるべき及び/又は他のデータ点のセットとは別個に処理されるべき点群101における第1の区別されたオブジェクトを表すと決定し得る(106)。
【0026】
いくつかの実施形態において、区別基準は、データ点の1又は複数のセットにおいて見られる非位置共通性に基づいて、1又は複数の要素又はオブジェクトを区別するための第2基準を含み得る。より具体的には、第2基準は、ライティング、明るさ、及び/又は、カラーリング値の範囲、近隣データ点間の色値が指定量を超えて変動しない色クラスタリング、及び/又は、磁気特性、反射性、密度、重み、及び/又は、データ点の一部として格納された他の非位置情報における共通性を指定し得る。
図1に示されるように、PCS100は、第2基準を使用して、特定の関心対象である前景オブジェクトを、それらのカラーリング及び/又は他の非位置共通性に基づいて識別し得、データ点の第2セット105及びデータ点の第3セット107が第2基準を満たし、データ点の他のセットからの別個の処理のために第2及び第3ツリーに区分されるべきであると決定し得る(108)。いくつかの実施形態において、区別基準を満たさなかった点群101の残りのデータ点は、第4ツリーに含めるために、データ点のセットとして共にグループ化され得る。
【0027】
いくつかの実施形態において、区別基準は、データ点の1又は複数の位置データ値及び非位置データ値に及んでいる共通性に基づいて定義される基準を含み得る。例えば、PCS100は、位置共通性及び視覚的な特徴の共通性を伴うデータ点を検出することによって、エッジ検出及びオブジェクト区別を実行し得る。
【0028】
異なる区別基準が、異なる点群について定義及び/又は選択され得る。例えば、PCS100は、風景の点群内の要素又はオブジェクトを区別するべく、第1区別基準を使用し得、構造物の点群キャプチャ内の要素又はオブジェクトを区別するべく第2区別基準を使用し得る。
【0029】
区別基準を使用する目的は、変更、調整、又はそうでなければインタラクトされる可能性が最も高いデータ点のセットを他のデータ点から分離するためである。結果として、PCS100はもはや、非常に小さい、又は、ほとんど隔離された変化の場合でも、すべてのデータ点がメモリにロードされて全体として処理される必要がある、1つのモノリシックのデータ構造として点群を扱う必要がない。代わりに、点群の未使用又は不必要な部分がメモリから削除され得、点群の他の部分のレンダリング、操作、及び/又は処理から除外され得るので、PCS100は、点群の断片的なロード及び処理及び/又はリソースのより効率的な利用を可能にするために、
図1に示される要素又はオブジェクト区別を実行し得る。
【0030】
PCS100がデータ点のセットを区別すると、PCS100は、各データ点のセットについてのツリーベース表現を作成し得る。ツリーベース表現の作成は、各データ点のセットを、異なるバイナリツリー、オクツリー、k次元(k-d)ツリー、又は他のツリー状構造内に編成することを含み得る。
【0031】
これを行う際、PCS100は、点群を複数のツリーに区分し得、PCS100は、他のツリー、データ点のセット、及び集合的点群とは無関係に、各ツリー、及び、そのツリーのデータ点の編成されたセットにアクセスし、それを操作し、レンダリングし、処理し、及び/又は、そうでなければ、それとインタラクトし得る。換言すると、点群の一部分を編集するべく、点群のすべてのデータ点を一度にメモリにロードする、及び/又は、すべてのデータ点を処理するのではなく、異なるツリーベース表現は、PCS100が、アクセス、処理、操作、及び/又はそうでなければインタラクトされている要素又はオブジェクトについてのデータ点のセットだけをメモリに選択的にロードすることを可能にし、それにより、PCS100及び/又はその点群を取り扱う別のデバイス上のリソースオーバヘッド及び計算量を大きく低減する。追加的に、ツリーベースの編成は、PCS100が迅速かつ効率的に、ツリーの異なる枝又は親ノードにおける特定の共通性を共有するデータ点の異なるサブセットにアクセスすることを可能にする。
【0032】
図2は、本明細書において提示されるいくつかの実施形態による、各データ点のセット内に検出された位置及び非位置共通性に基づいて動的に区別される異なるデータ点のセットを伴う複数のツリーに点群を区分するための処理200を提示する。処理200は、PCS100によって実装され得る。特に、PCS100は、点群及びそれらの点群によって表される3Dオブジェクト又は3D環境にアクセスし、それをレンダリングし、操作し、及び/又は、そうでなければ、それとインタラクトするためのプロセッサ、非一時的コンピュータ可読媒体、及び/又は他のリソースを伴う1又は複数のデバイスを含み得る。
【0033】
処理200は、点群を受信すること(202)を含み得る。点群を受信すること(202)は、すべての点群データ点を含むファイル、画像、データ構造及び/又は他のコンテナを受信することを含み得る。
【0034】
処理200は、点群内の要素又はオブジェクトを区別するための、及び、区別された要素又はオブジェクトの各々を形成するデータ点のセットを識別及び区分するための区別基準を選択すること(204)を含み得る。区別基準は、点群データ点の1又は複数の位置データ値及び/又は非位置データ値の範囲、条件、又は、所望の共通性を用いて定義され得る。例えば、区別基準は、点群における要素又はオブジェクトを、それらのz深度位置における共通性、同一の要素又はオブジェクトの近隣データ点からのそれらの合計距離が閾値量より少ないこと、近隣データ点(例えば、互いから最大距離までのデータ点)のカラーリング(例えば、RGB値)における共通性(例えば、変動の閾値量)に基づいて区別することを指定し得る。したがって、区別基準は、条件命題、正規表現及び/又は比較定義を含み得る。
【0035】
いくつかの実施形態において、区別基準は、点群ファイル又は点群メタデータの一部として定義され得る。したがって、選択(204)は、点群メタデータの読み込みを伴い得る。
【0036】
いくつかの他の実施形態において、PCS100は、人工知能及び/又は機械学習を使用して、区別基準を動的に選択し得る(204)。例えば、PCS100は、点群データ点のサンプル検査及び/又はレンダリングを実行して、領域の第2セットより高い濃度のデータ点(例えば、データ点のよりタイトなクラスタリング)を伴う、領域の第1セットを決定し得る。PCS100は、人工知能及び/又は機械学習を使用して、領域の第1及び第2セットのうちの1又は複数における位置及び非位置(例えば、視覚的特徴)共通性を決定し、決定された共通性に基づいて区別基準を定義し得る。この第1の例において、人工知能及び/又は機械学習は、データ点の各近隣ペア間のx、y及びz座標のうちの任意の1又は複数において、指定された最大距離より多くを有しない、指定された空間のボリューム内においてデータ点の指定された数以上を有するデータ点のセットに基づいて、点群における関心対象の要素又はオブジェクトを区別する区別基準を生成し得る。別の例として、PCS100は、点群データ点のサンプル検査及び/又はレンダリングを実行し得、人工知能及び/又は機械学習を使用して、パターン、形状、色の変動、ライティングの変動、及び/又は、他の変動を検出し、検出されたパターン、形状、及び/又は変動に基づいて、区別基準を定義又は選択し得る(204)。この第2例において、PCS100は、屋外環境を表す第1点群について第1区別基準を選択し得(204)、屋内環境を表す第2点群について第2区別基準を選択し得る(204)。代替的に、人工知能及び/又は機械学習は、同様のライティング及び/又はカラーリングを有する、1又は複数の共通平面の周りにある(例えば、指定範囲内にあるx、y、及びz座標)、及び/又は、1又は複数の形状(例えば、机の形状、椅子の形状、カップの形状など)でクラスタリングされる、データ点のセットに基づいて、点群における関心対象の要素又はオブジェクトを区別する区別基準を生成し得る。
【0037】
処理200は、区別基準に合致する又はそれを満たす、又は、区別基準を満たすのに十分ないくらかの共通性を共有する位置及び非位置データ値についての点群データ点をスキャンすること(206)を含み得る。スキャン(206)は、点群ファイルを開くこと、各データ点の位置及び非位置データ値を区別基準と比較すること、及び/又は、区別基準に合致する又はそれを満たす近隣又は近接データ点の値における共通性又は変動を識別することを含み得る。
【0038】
処理200は、区別基準の同一の基準に合致する又はそれを満たすいくらかの位置又は非位置共通性を伴う各データ点のセットを区別すること(208)を含み得る。区別(208)は、点群の他のデータ点から分離された、アクセス、レンダリング、編集、処理、及び/又はそうでなければインタラクトされるべく抽出されるべき、特定の関心対象である点群における要素又はオブジェクトを識別し得る。
【0039】
いくつかの実施形態において、データ点のセットの区別(208)は、異なる識別子を用いて各データ点のセットをタグ付け又はラベリングすることを含み得る。いくつかの実施形態において、データ点のセットを区別すること(208)は、点群からのデータ点のセットを別個の一時的データ構造又はメモリの一部へ後続のツリー構成のために抽出又は分離することを含み得る。
【0040】
処理200は、データ点の区別された各セットについてのツリーベース表現を生成すること(210)を含み得る。ツリーベース表現の生成(210)は、区別されたデータ点のセットをバイナリツリー、オクツリー、k-dツリー、又は別のツリーに編成することを含み得る。いくつかの実施形態において、ツリーは、データ点のセットの間の位置関係、データ点のセットの間の非位置関係、及び/又は、データ点のセットが他の点群データ点から区別される共通性を維持し得る。例えば、ツリーにおける親ノードは、3Dボリューム又は領域を表し得、親ノードの下にグループ化されたすべての子又は葉ノードは、親ノードの3Dボリューム又は領域内にある位置データ要素を伴うデータ点を含み得る、又はそれに対応し得る。同様に、ツリーにおける親ノードは、特定の範囲の色を表し得、その親ノードの下にグループ化されるすべての子又は葉ノードは、特定の範囲の色におけるカラーリングを指定する非位置データ要素を伴うデータ点を含み得る、又はそれに対応し得る。
【0041】
図3は、本明細書において提示されるいくつかの実施形態による、より大きい点群から抽出される、及び、より大きい点群から区別される要素又はオブジェクトを表すデータ点のセットについてのツリー構成例を示す。
図3に示されるように、PCS100は、区別基準を使用して、点群から区別されるオブジェクトについてのデータ点のセットを取得し得(302)、データ点の位置値に従って、データ点103の第1セットをソートし得る(304)。ソートされたデータ点は、ツリーの葉ノードになり得る。
【0042】
PCS100は、ツリーの2又はより多くの葉ノードが及んでいる空間のボリューム又は領域についての親ノードを追加し得る。例えば、PCS100は、区別されたオブジェクトの最も外側の境界におけるデータ点の第1セット103内のデータ点の座標を識別し得、最も外側の境界内の空間を第1サイズのキューブ又は他のボリュームに区分し得(306)、第1サイズの各キューブ又はボリュームについての親ノードを作成し得(308)、親ノードによって表される空間の領域又はボリューム内に属する1又は複数の葉ノードのデータ点についての位置値に基づいて、親ノードを1又は複数の葉ノードに連結し得る。親ノードが空間の空領域に対応する場合(例えば、親ノードによって表されるキューブ又はボリューム内にデータ点が無い)、PCS100は、ツリーから親ノードをカル又は除去し得るか、又は、空き空間の領域についてのインジケータとして親ノードを挿入し得る。
【0043】
PCS100は、より低いレベルのノードのサイズより大きいサイズのキューブ又は他のボリュームを表すより高いレベルのノード(例えば、祖父母ノード)を伴うツリーの構築を続け得る(310及び312)。PCS100は、根ノードが区別されたオブジェクトの最も外側の境界内の空間を表すまで続け得る。
【0044】
PCS100は、その子ノードからの非位置情報に基づいて、その非位置情報が親ノードに起因すると判定し得る。例えば、親ノードについてのRGB値は、子ノードRGB値の平均値又は中央値であり得る。
【0045】
いくつかの実施形態において、PCS100は根ノードを最初に生成し得、ここで根ノードは、区別されたオブジェクトについてのデータ点のセットが及んでいる3D空間の特定の領域を表す。バイナリツリーの構築において、PCS100は、3D空間の特定の領域を2つの等しいサイズのキューブ又はボリュームに区分し得、各キューブ又はボリュームについて根ノードの下の子ノードを定義し得、個別のデータ点に対応する葉ノードに到達するまで、このように、3D空間の特定の領域を細分化し続け得る。オクツリーの構築において、PCS100は、3D空間の特定の領域を8つの等しいサイズのキューブ又はボリュームに区分し得、各キューブ又はボリュームについて根ノードの下の子ノードを定義し得、個別のデータ点に対応する葉ノードに到達するまで、このように、3D空間の特定の領域を細分化し続け得る。
【0046】
ツリー構成を最適化し、ツリーにおける空のノードの可能性を低減するために、PCS100はk-dツリーを構築し得、区別されたオブジェクトについてのデータ点のセットが及んでいる3D空間の特定の領域を2又はより多くの等しい又は等しくないサイズのボリュームに区分し得る。各ボリュームのサイズ及び/又は形状は、そのボリューム内に属するデータ点、親ノード、又は子ノードの数によって決定され得る。例えば、PCS100は、ボリュームが空き空間に対応する、又は、1つの子ノード又は1つのデータ点より少ないものを包含しているとき、ボリュームのサイズを拡大し得る。
【0047】
いくつかの実施形態において、PCS100は、ツリーの各レベルにおける、より多くの詳細及び/又はデータ点情報を維持している各区別されたオブジェクトについて、バイナリツリーを構築し得る。
図4は、本明細書において提示されるいくつかの実施形態による、点群から区別されるオブジェクトを表すデータ点の散在するセットに基づいてバイナリツリーを構築するための処理400を提示する。処理400は、PCS100によって実装され得る。
【0048】
処理400は、区別基準を使用して点群から区別される要素又はオブジェクトのデータ点のセットを受信又は抽出すること(402)を含み得る。データ点のセットは、不均一又は不規則なポジショニング及び異なる非位置情報(例えば、視覚的特徴)を伴う複数のデータ点を含み得る。
【0049】
処理400は、それらの位置値に従ってデータ点のセットをソートすること(404)を含み得る。ソート(404)は、1又は複数の平面における近隣データ点が容易に識別され得るようにデータ点を配列する。
【0050】
処理400は、異なる近隣データ点の非位置データ値を比較すること(406)、及び、同一の非位置データ値又は非位置データ値間の最高の共通性を有する近隣データ点のペアについて親ノードを作成すること(408)を含み得る。いくつかの実施形態において、PCS100は、比較されるべき1又は複数の非位置データ値を選択し得る。いくつかの他の実施形態において、PCS100は、すべての非位置データ値を比較して、非位置データ値における最も高い一致又は最も高い類似を有する近隣データ点のペアを識別し得る。例えば、PCS100は、同一のRGB色値を有する近隣データ点の第1ペアについての第1親ノードを作成し得、一致するRGB色値を有しないが、RGB色値の各々又はすべてにおいて10%より少なく異なる近隣データ点の第2ペアについての第2親ノードを作成し得る。
【0051】
親ノードを作成すること(408)は、その親ノードによって表される近隣データ点のペア間に直接的に属する位置値を伴う単一のデータ点を定義すること、及び、近隣ノードのペアの非位置データ値に基づいて親ノードの非位置データ値を定義することを含み得る。PCS100が、非位置データ値において最も高い共通性を伴う近隣ノードのペアを識別する、より早いステップを実行したので、処理400によって作成された親ノードは、単に空間の特定の領域に属する任意のデータ点又は子ノードについての親ノードを選択及び作成するツリー構成についての他の技法と比べて、子ノードの視覚的特徴及び他の非位置情報をより正確に保持し得る。
【0052】
処理は、根ノードに到達したかどうかを判定し得る(410)。根ノードに到達していないという判定に応じて(410において、いいえ)、処理400は、子ノードのペアの位置及び非位置データ値を組み合わせることによって親ノードの次に高いレベルを生成すること(412)を含み得る。根ノードに到達したという決定(410、はい)に応じて、処理400は、そのツリーに編成されるデータ点のセットによって表される区別されたオブジェクトの効率的なアクセス、レンダリング、編集、処理、及び/又は、他のインタラクションのために、構築されたツリーを出力又は格納すること(414)を含み得る。
【0053】
PCS100は、異なるツリー又はデータ点のセットによって表される点群の各区別された要素又はオブジェクトに別個にアクセスし、それを処理し、レンダリングし、操作し、及び/又はそうでなければ、それとインタラクトするべく、点群における異なるデータ点のセットについての複数のツリーを生成し得る。PCS100は、複数のツリーを使用して、点群の処理を直列化及び/又は並列化し得る。換言すると、一度に点群データ点のすべてをロードして、データ点のセット全体を処理するのではなく、PCS100は、要求又は実行されているアクセス、処理、レンダリング、操作及び/又は他のタスクの直接的な対象又はターゲットである点のデータの1又は複数のセットを有する1又は複数のツリーを選択的にロードし得る。選択的なロード及び処理は、点群にアクセスする又はそれを扱うために使用される任意のデバイス上のリソース及び処理のオーバヘッドを低減し、まさに現在のタスクに必要である又は要求されるデータ点のセットのためにメモリ及びプロセッサの使用を最適化することによってそのデバイスの応答性を向上させる。
【0054】
図5は、本明細書において提示されるいくつかの実施形態による、点群の異なるツリーへの区分に基づいて、レンダリングを直列化及び/又は並列化することによって点群のレンダリングを最適化する例を示す。
図5に示されるように、PCS100は点群101を受信し得、区別基準を使用して5つの異なる要素又はオブジェクトを点群101から区別し得、点群101からの区別された要素又はオブジェクトの各々について抽出される異なるデータ点のセットから、5つの異なるツリー501-1、501-2、501-3、501-4、及び501-5(以降、まとめて「ツリー501」と、又は、個々に「ツリー501」と称される場合がある)を作成し得る。第1ツリー501-1は、点群101によって表される3D環境の床及び前景を形成するデータ点の第1セットを含み得、第2ツリー501-2は、3D環境から区別される特定の関心対象の第1オブジェクトについてのデータ点の第2セットを含み得、第3ツリー501-3は、3D環境から区別される特定の関心対象の第2オブジェクトについてのデータ点の第3セットを含み得、第4ツリー501-4は、3D環境から区別される特定の関心対象の第3オブジェクトについてのデータ点の第4セットを含み得、第5ツリー501-5は、3D環境の壁及び背景についてのデータ点の第5セットを含み得る。
【0055】
PCS100は、点群101をレンダリングするための要求を受信し得る(502)。リソースを維持し、要求を効率的に処理するために、PCS100は、そのデータ点すべてと共に点群全体を処理及びレンダリングすることを試みるのではなく、任意の所与の時間においてツリーのうちの1又は複数を選択及び処理し得る。
【0056】
いくつかの実施形態において、PCS100はツリーのレンダリングを優先付けし得る。例えば、PCS100は、前景、特定の関心対象のオブジェクト、及び/又は、背景を特定の順番でレンダリングし得る。順番は、3D環境の最も重要なオブジェクト又は要素を最も重要でないものの前にレンダリングすること、利用可能なリソースに基づいて、最も少ない量の時間においてオブジェクト又は要素をレンダリングすること、前方から後方へ又は後方から前方へレンダリングすること、高密度又は高解像度要素又はオブジェクトをレンダリングする前に低密度又は低解像度要素又はオブジェクトをレンダリングすることなどを指定し得る。いくつかの実施形態において、PCS100は、レンダリングの順番を決定するべく、各ツリー501のサイズ(例えば、葉ノードの数又は枝の数)を確認し得る。
【0057】
図5に示されるように、第5ツリー501-5は、大部分の視覚的データを含み、したがって、大部分のコンテキストをシーンに提供する低解像度の背景であるので、PCS100は、最初にレンダリングするために第5ツリー501-5を選択し得る(504)。PCS100は、第5ツリー501-5からのデータ点の第5セットをメモリにロードし得、データ点の第5セットをロードした後に、メモリの利用可能性を判定し得る。
【0058】
データ点の第5セットは、メモリの大部分を消費し、利用可能なメモリの閾値量より少なく残し得る。利用可能なメモリの閾値量より少ないと判定したことに応じて、PCS100は、点群101の他のデータ点の前にデータ点の第5セットをレンダリングすること(506)によって、及び、第1回目のレンダリングされた結果を提示することによって、点群101のレンダリングを直列化し得る。レンダリング(506)は、データ点の第5セットの各データ点をそれらの位置値に従って3D空間内にポジショニングすること、及び、そのデータ点の非位置データ値によって定義される視覚的特徴を伴ってそのそれぞれの位置に各データ点を提示することを含み得る。より一般に、データ点の第5セットをレンダリングすること(506)は、データ点の第5セットによって定義される3D環境全体の1又は複数の要素又はオブジェクトについての画像又は視覚的表現を生成することを含み得る。
【0059】
PCS100は、レンダリング結果をメモリ又はディスクに保持し得、残りのツリー501のレンダリングのためにメモリを解放するべく、メモリからデータ点の第5セットをフラッシュし得る。第2ツリー501-2が、点群101からの特定の関心対象のオブジェクトを表し、かつ、前景において最も近いので、PCS100は、次にレンダリングするために第2ツリー501-2を選択し得る(508)。PCS100は、第2ツリー501-2からのデータ点の第2セットをメモリにロードし得、データ点の第2セットをロードした後にメモリの利用可能性を判定し得る。
【0060】
データ点の第2セットは、多くのメモリを消費せず、PCS100は、第2ツリー501-2をロードした後に残った、閾値量より多くの利用可能なメモリを有する。PCS100は、残っている利用可能なメモリを使用して、第3ツリー501-3からのデータ点の第3セット及び第4ツリー501-4からのデータ点の第4セットをロードする(510)。第2ツリー501-2、第3ツリー501-3及び第4ツリー501-4のロード後、PCS100は、利用可能なメモリの量が閾値量より少ないと判定し得る。したがって、PCS100は、同時にメモリにロードされるデータ点の第2、第3及び第4セットについての並列レンダリングを実行し得る(512)。
【0061】
PCS100は、メモリにロードされたデータ点を再度フラッシュし得、第1ツリー501-1を、まだレンダリングされていない最後のツリーとして選択し得る(514)。PCS100は、第1ツリー501-1からのデータ点の第1セットをメモリにロードし得、第1回目及び第2回目の後である第3回目にデータ点の第1セットをレンダリングし得る(516)。
【0062】
このステージにおいて、PCS100は、点群101の直列化及び並列化されたレンダリングを完了した。特に、PCS100は、各ツリー501によって表されるオブジェクトの各々についての別個のレンダリングを有し得る。PCS100は、3D空間におけるそれらのそれぞれの位置において各ツリー501からレンダリングされた画像を組み合わせることによって点群101の合成3D画像を作成し得る(518)。いくつかの実施形態において、ツリー501からの異なるデータ点のセットの各々についてのレンダリングが完了した後、合成3D画像は一度に生成及び提示され得る。いくつかの他の実施形態において、各ツリー501からの各データ点のセットについてのレンダリングが完了するとき、合成3D画像は、漸進的な充填を介して生成され得る。
【0063】
図6は、本明細書において提示されるいくつかの実施形態による、点群の区分された表現及び区分の選択的処理に基づいて点群のレンダリングを最適化する例を示す。PCS100は、点群101の合成3D画像をディスプレイ上に提示し得、合成3D画像又は点群101の特定の部分を修正するユーザ入力を受信し得る(602)。
【0064】
PCS100は、ユーザ入力による影響を受ける点群101の特定の部分に対応する領域又は座標を判定し得る。PCS100は、第3ツリー501-3のデータ点の第3セットが、影響を受ける領域内に位置するデータ点を含むという決定に応じて、第3ツリー501-3を選択し得る(604)。特に、PCS100は単に、各ツリー501の根ノードに関連付けられた位置値を、そのツリー501における下の葉ノード又はデータ点が及んでいる座標を決定するべく、検査し得る。第3ツリー501-3の根ノードについての位置値は、ユーザ入力による影響を受ける点群101の特定の部分に及ぶ。PCS100は次に、根ノードの下のノードの各々についての位置値を検査して、第3ツリー501-3を走査(traverse)し、ユーザ入力による影響を受ける点群101の特定の部分又は領域における葉ノード又はデータ点のサブセットを隔離し得る。したがって、PCS100は、点群101を形成する数百万又は数十億のデータ点内のすべてのデータ点又は個別のデータ点についての位置値を検査する必要無しに、ツリー501及びツリー501の下のデータ点の編成を活用して、ユーザ入力による影響を受けるデータ点を効率的に特定し得る。
【0065】
PCS100は、他のツリー501のすべての他のデータ点をメモリから破棄又は削除しながら、データ点の第3セットを伴う第3ツリー501-3をメモリにロードし得る。換言すると、点群101の特定の部分に影響を与える要求を処理するべく、点群101のすべてのデータ点を選択及びロードするのではなく、PCS100は、まさに影響を受ける領域における区別されたオブジェクトを構成する第3ツリー501-3のデータ点の第3セットを選択(604)及びロードし得る。
【0066】
PCS100は、ユーザ入力に従ってデータ点の第3セットを修正し得る(606)。修正は、第3ツリー501-3にデータ点を追加する又はそれから除去すること、第3ツリー501-3についての1又は複数のデータ点を再ポジショニングすること(例えば、1又は複数のデータ点の位置値を変更する)、及び/又は、データ点の第3セットのうちの1又は複数の非位置データ値を変更することを含み得る。
【0067】
PCS100は、修正された第3ツリー501-3を処理し得、ユーザ入力により影響を受けた特定のオブジェクトについてのデータ点の第3セットだけをレンダリングし得る(608)。PCS100は、まさに特定のオブジェクトの画像を、修正された第3ツリー501-3からの更新されたデータ点の第3セットをレンダリングする(608)結果生じる新しい画像と置き換えることによって合成画像を更新し得る(610)。換言すると、PCS100は、点群101のすべてのデータ点をロード又は処理する必要無しに、ユーザ変更を点群101に適用することが可能である。ユーザ入力により影響を受けた特定のオブジェクトを表すデータ点の第3セットだけを識別、ロード、及び処理することによって、PCS100は、リソースを維持し、変更を適用する及び点群の視覚的提示を更新するための時間を低減することが可能である。
【0068】
各区別された要素又はオブジェクトについてのツリーベース表現は、点群101のアクセス、レンダリング、処理、操作又はインタラクトに必要なリソース及び計算量の低減を超える追加の利益を提供する。追加の利益は、区別された要素又はオブジェクトのデータ点のサブセット又は特定のデータ点を効率的に編成、アクセス、及び/又は操作し、それにより、区別された要素及び/又はオブジェクトの編集、処理、操作及び/又は他のインタラクションを更に最適化することを含み得る。
【0069】
例えばユーザ入力は、特定の要素又はオブジェクトの最も右側に明るさを強化することを指定し得る。PCS100は、特定の要素又はオブジェクトについてのツリーを取り出し得、データ点のサブセットのために親ノードへの枝走査を介して特定の要素又はオブジェクトの最も右側を形成するデータ点のサブセットにアクセスし得、調整を親ノードに適用し得る。親ノードに対する変更は次に、親ノードの下の子ノード及びデータ点のサブセットへ自動的に適用又は伝播され得る。換言すると、データ点のサブセットの各データ点を個々に識別して、識別されたデータ点の各々を修正するのではなく、PCS100は、データ点のサブセットについての1又は複数の親ノードを見つけ得、単に1又は複数の親ノードを修正することによってデータ点のサブセットに対して変化を適用し得る。PCS100は、点群によってカバーされる3D空間全体内で検索するのではなく、ユーザ入力によって影響を受ける領域をカバーする1又は複数のツリーに検索を制限し得るので、親ノードを見つけることは、より速い操作である。また、検索されたツリーにおける各親ノードは、データ点の望ましいサブセットの2又はより多くを含み得、結果としてPCS100は、点群のすべてのデータ点中のデータ点のサブセットの各データ点を個々に特定するときに比べて、より少ない検索を実行し、及び/又は、より少ないノードを識別するので、親ノードを見つけることは、より速い操作である。
【0070】
図7は、本明細書において提示されるいくつかの実施形態による、点群のマルチツリー表現を使用して、点群によって表される3D環境内のオブジェクトの一部を効率的に修正する例を示す。PCS100は、3D環境内の区別された要素又はオブジェクトについて生成された各ツリーからデータ点のセットを別個にレンダリングすることによって、及び、各ツリーから結果として生じるレンダリングを単一の提示に合成する又はそうでなければ、融合することによって、点群によって表される3D環境の完全なレンダリングを生成及び提示し得る。
【0071】
PCS100はユーザ入力を受信し得る(702)。PCS100は、ユーザ入力が3D環境の特定の要素又はオブジェクトをターゲットとすることを判定し得る。例えば、ユーザ入力は、特定の要素又はオブジェクトがレンダリングされる単一の提示における位置、又は、特定の要素又はオブジェクトの1又は複数のデータ点を含む3D環境内の位置に対して又はそこで実行される、マウスクリック、キーボードのキーの押下、機能呼び出し、又は、他の操作を含み得る。
【0072】
ユーザ入力が特定の要素又はオブジェクトに影響を与えるという判定に応じて、PCS100は、特定の要素又はオブジェクトを形成するデータ点のセットについてのツリーベース表現を含む第4ツリー501-4にアクセスし得る(704)。第4ツリー501-4にアクセスすること(704)は、第4ツリー501-4からのデータ点の第4セットをメモリにロードすること、及び/又は、メモリが満杯になった場合に他のデータ点をメモリから消去することを含み得る。
【0073】
PCS100は第4ツリー501-4を走査(traverse)し得、ノードに関連付けられた位置及び/又は非位置値を検査し得、ユーザ入力により影響を受けるそれらのそれぞれの子ノードのすべてを有する1又は複数の親ノードを選択し得る(706)。換言すると、第4ツリー501-4の下に編成された各データ点又は各データ点の点群を検査して、そのデータ点がユーザ入力により影響を受けるかどうかを判定するのではなく、PCS100は代わりに、第4ツリー501-4の根ノードから次の子ノードへの下向きの走査を実行し、子ノードが、ユーザ入力により影響を受ける領域又は空間内に全体的に属する位置値を有するかどうか、及び/又は、調整されている属性及び属性範囲内に属する非位置値を有するかどうかを判定する。ノードが、より大きい領域、又は、ユーザ入力により影響を受ける領域の外側の領域に及んでいる場合、PCS100は、解析のために次のノードを選択し得る。同様に、ノードが、ユーザ入力により影響を受ける非位置値に一致しない又はそれと異なる非位置値を含む場合、PCS100は次のノードを選択し得る。しかしながら、選択されたノードが全体的に、影響を受ける領域にあり、影響を受ける非位置値を含む場合、ユーザ入力は選択されたノードのすべての子ノードに適用する。例えばユーザ入力は、(200,15,20)及び(250,8,30)の間の(R,G,B)値を有する特定の要素又はオブジェクトの任意のデータ点を黒色(例えば、(0,0,0))に変更することを指定し得、PCS100は、子ノードの各々の値を別個に検査すること無く、(210,10,20)及び(244,13,29)の間の(R,G,B)値を有する親ノード、及び、その親ノードのすべての子ノードを選択し得る。
【0074】
PCS100は、ユーザ入力を、選択されたノードに適用し得る(708)。ユーザ入力を、選択されたノードに適用すること(708)は、影響を受けるデータ点の特定のサブセットの各データ点を個々に又は1つずつ選択してユーザ入力を適用することより効率的であり得る。例えばPCS100は、2つの選択された親ノードに対するユーザ入力において指定される変化を実装し得る。変更は、選択されたノードの位置及び/又は非位置値のうちの1又は複数を調整することを含み得る。PCS100は、ユーザ入力が葉ノードの各々及び/又は選択された親ノードの葉ノードによって表されるデータ点の特定のサブセットに適用するかどうかを個々に考慮及び/又は評価する必要無しに、2つの選択された親ノードの下の葉ノードの各々に調整を自動的に伝播及び/又は適用し得る。
【0075】
例として、ユーザ入力は、ユーザ入力により影響を受ける特定の領域を右に3座標シフトすること、及び、特定の領域におけるデータ点の特定のサブセットについての赤色値を5の値だけ増加することを指定し得る。PCS100は、2つの親ノードの下のすべての葉ノードが特定の領域内に属する結果として、特定の領域を包含する第4ツリー501-4における2つの親ノードを特定し得る。PCS100は次に、3の値を親ノードのx位置データ値に追加して、特定の領域を右に3座標だけシフトし得、親ノードの赤色データ値に5の値を追加し得る。2つの親ノードのこれらのデータ値に対する調整は、葉ノードの各々又は影響を受ける領域におけるデータ点の特定のサブセットの各データ点へ自動的に継承され、又は受け継がれ得る。換言すると、PCS100は、特定の領域内のデータ点の特定のサブセットの各データ点を個々に特定して変更を各データ点に別個に適用するのではなく、特定の領域内のデータ点の特定のサブセットにわたって変更を達成するべく、2つの親ノードを特定してユーザ入力を適用し得る。
【0076】
いくつかの実施形態において、ユーザ入力は、2つの親ノードの下の葉ノードの値を直接変更することなく2つの親ノードに適用され得る(708)。第4ツリー501-4がレンダリングのために選択されるとき、PCS100は、各葉ノードと共に格納された元の値に基づいて、及び、それらの葉ノードの1又は複数の親ノードにおいて指定された格納されたそれらの値に対する任意の調整に基づいて、葉ノードの各々をレンダリングし得る。
【0077】
いくつか他の実施形態において、ユーザ入力は、2つの親ノードに適用され得(708)、PCS100は次に、それらのノードによって表されるデータ点のポジショニングを考慮する必要無しに2つの親ノードの下の任意の子及び/又は葉ノードにユーザ入力を適用するためにツリー走査を続け得る(708)。
【0078】
PCS100は、第4ツリー501-4における2つの親ノードに適用される修正が2つの親ノードの下の葉ノードの各々に適用された後にデータ点の第4セットをレンダリングすることによって、及び、ユーザ入力により影響を受けなかった異なるツリー又は異なるデータ点のセットにおいて表される他の要素又はオブジェクトをレンダリング又は更新することなく、新しくレンダリングされた要素又はオブジェクトを合成可視化内に組み込むことによって、ユーザ入力を組み込む点群全体の更新された合成可視化を生成し得る。したがって、PCS100は、点群全体を新しくレンダリングする必要無しに、影響を受ける点群の部分を更新することによって、コンピューティング、メモリ、及び/又は他のリソースを維持し得る。
【0079】
図8は、デバイス800の例示的コンポーネントの図である。デバイス800は、上で記載されたデバイス又はシステム(例えば、PCS100、点群イメージングデバイス、点群レンダリングデバイスなど)のうちの1又は複数を実装するために使用され得る。デバイス800は、バス810、プロセッサ820、メモリ830、入力コンポーネント840、出力コンポーネント850、および通信インタフェース860を含み得る。別の実装において、デバイス800は、より多い、より少ない、異なる、又は、異なるように配列されたコンポーネントを含み得る。
【0080】
バス810は、デバイス800のコンポーネント間で、通信を許可する1又は複数の通信パスを含み得る。プロセッサ820は、命令を解釈して実行し得るプロセッサ、マイクロプロセッサ、又は、処理ロジックを含み得る。メモリ830は、プロセッサ820による実行のための情報及び命令を格納し得る任意の種類の動的格納デバイス、及び/又は、プロセッサ820による使用のための情報を格納し得る任意の種類の不揮発性格納デバイスを含み得る。
【0081】
入力コンポーネント840は、キーボード、キーパッド、ボタン、スイッチ等といった、デバイス800に情報を入力するオペレータを許可するメカニズムを含み得る。出力コンポーネント850は、ディスプレイ、スピーカ、1又は複数のLEDなどの、オペレータに情報を出力する機構を含み得る。
【0082】
通信インタフェース860は、デバイス800が複数の他のデバイス及び/又はシステムと通信することを可能にする任意の送受信機のようなメカニズムを含み得る。例えば、通信インタフェース860は、イーサネット(登録商標)インタフェース、光インタフェース、同軸インタフェース等を含み得る。通信インタフェース860は、赤外線(IR)受信機、ブルートゥース(登録商標)無線、又は同様のものなどのワイヤレス通信デバイスを含み得る。ワイヤレス通信デバイスは、遠隔制御、ワイヤレスキーボード、携帯電話等といった、外部のデバイスに結合され得る。いくつかの実施形態において、デバイス800は1より多い通信インタフェース860を含み得る。例えば、デバイス800は、光インタフェースおよびイーサネットインタフェースを含み得る。
【0083】
デバイス800は、上に記載された1又は複数の処理に関する特定の操作を実行し得る。デバイス800は、プロセッサ820がメモリ830等のコンピュータ可読媒体において格納されるソフトウェア命令を実行することに応じて、これらの操作を実行し得る。コンピュータ可読媒体は、非一時的メモリデバイスとして定義され得る。メモリデバイスは、単一の物理メモリデバイス内に空間を含み得、又は複数の物理メモリデバイスにわたって分散し得る。複数のソフトウェア命令は、別のコンピュータ可読媒体から、又は別のデバイスから、メモリ830に読み込まれ得る。メモリ830に格納されるソフトウェア命令は、プロセッサ820に対して、本明細書において記載された複数の処理を実行させ得る。代替的に、ハードワイヤードの回路は、本明細書において記載された処理を実装すべく、複数のソフトウェア命令の代わりに、又は複数のソフトウェア命令を組み合わせて用いられ得る。したがって、本明細書に記載された実装は、ハードウェア回路及びソフトウェアの任意の特定の組み合わせに限定されない。
【0084】
実装の上記の説明は、例示及び説明を提供するが、網羅的であること、又は、可能な実装を、開示される厳密な形態に限定することを意図しない。修正及び変動が、上の開示に鑑みて可能であり、又は、実装の実践から実現され得る。
【0085】
実施形態を実装するために使用される実際のソフトウェアコード又は専門の制御ハードウェアは、実施形態の限定ではない。したがって、実施形態の操作及び挙動は、特定のソフトウェアコードに対する言及なしで記載され、ソフトウェア及び制御ハードウェアは、本明細書の説明に基づいて設計され得ることが理解される。
【0086】
例えば、上のいくつかの図に関連して一連のメッセージ、ブロック、及び/又は、信号が記載されるが、メッセージ、ブロック、及び/又は信号の順序は、他の実装において修正され得る。更に、非依存的なブロック及び/又は信号が並列に実行され得る。追加的に、特定の作用を実行する特定のデバイスの文脈において図が記載されたが、実際には、1又は複数の他のデバイスが、上で言及されたデバイスの代わりに、又は、それに加えて、これらの作用の一部又は全部を実行し得る。
【0087】
特徴の特定の組み合わせが請求項において列挙され、及び/又は、明細書において開示されるが、これらの組み合わせは、可能な実装の開示を限定することは意図されていない。実際、これらの特徴の多くが、複数の請求項において具体的に記載されない、及び/又は明細書において具体的に開示されていない方法で組み合わせられ得る。下に列挙される各従属請求項は、1つの他の請求項だけに直接従属し得るが、可能な実装の開示は、請求項のセットにおけるすべての他の請求項との組み合わせにおける各従属請求項を含む。
【0088】
更に、特定の接続又はデバイスが示されているが、実際には、より多くの又はより少ない、又は、異なる接続又はデバイスが使用され得る。更に、様々なデバイス及びネットワークが別々に示されているが、実際には、複数のデバイスの機能性は、単一のデバイスによって実行され得るか、又は、1つのデバイスの機能性は、複数のデバイスによって実行され得る。更に、いくつかのデバイスが、ネットワークと通信するように示されているが、いくつかのそのようなデバイスは、全体として又は部分的に、ネットワークの部分として組み込まれ得る。
【0089】
上記の実施形態が、個人によって提供される個人情報を収集、格納、又は採用する限り、そのような情報は、個人情報の保護に関する該当する法律すべてに従って使用されるものと理解されるべきである。追加的に、そのような情報の収集、格納及び使用は、情報の状況及び種類について適切であり得るように、例えば、既知の「オプトイン」又は「オプトアウト」処理を通じて、そのようなアクティビティに対する個人の同意の対象であり得る。個人情報の格納及び使用は、例えば、特に機密の情報についての様々な暗号化及び匿名化技法を通じた、情報の種類を反映する適切にセキュアな方式であり得る。
【0090】
本明細書に記載されるいくつかの実装は、閾値と併せて記載され得る。「より大きい」という用語(又は同様の用語)は、閾値に対する値の関係を説明するために本明細書において使用される場合、「より大きい又はそれに等しい」という用語(又は同様の用語)と互換的に使用され得る。同様に、「より小さい」という用語(又は同様の用語)は、閾値に対する値の関係を説明するために本明細書において使用される場合、「より小さい又はそれに等しい」という用語(又は同様の用語)と互換的に使用され得る。閾値を「超える」(又は同様の用語)は、本明細書において使用される場合、閾値が使用される文脈に応じて、「閾値より大きい」、「閾値より大きい又はそれに等しい)」、「閾値より小さい」、「閾値より小さい又はそれに等しい」、又は、他の同様の用語と互換的に使用され得る。
【0091】
本願で用いられる構成要素、作用、又は命令は、明示的にそのように説明されていない限り、重大又は不可欠と解釈されるべきではない。「及び」という用語の使用の事例は、本明細書において使用される場合、必ずしも、「及び/又は」という語句がこの事例において意図されるという解釈を除外しない。同様に、「又は」という用語の使用の事例は、本明細書において使用される場合、必ずしも、「及び/又は」という語句がこの事例において意図されるという解釈を除外しない。また、冠詞「a」は、本明細書において使用される場合、1又は複数の品目を含むことが意図され、「1又は複数」という語句と互換的に使用され得る。1つの品目だけが意図される場合、用語「1」、「単一」、「だけ」又は同様の文言が使用される。更に、「に基づく」という語句は、別段の明示的な定めが無い限り、「少なくとも部分的に基づいて」を意味することが意図されている。
【国際調査報告】