JP2022075560A - 開表面を用いた現実のシーンの構造の3d再構成 - Google Patents
開表面を用いた現実のシーンの構造の3d再構成 Download PDFInfo
- Publication number
- JP2022075560A JP2022075560A JP2021175501A JP2021175501A JP2022075560A JP 2022075560 A JP2022075560 A JP 2022075560A JP 2021175501 A JP2021175501 A JP 2021175501A JP 2021175501 A JP2021175501 A JP 2021175501A JP 2022075560 A JP2022075560 A JP 2022075560A
- Authority
- JP
- Japan
- Prior art keywords
- triangle
- open
- triangles
- triangulation
- order
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/004—Annotating, labelling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
【課題】現実のシーンの構造を3Dで再構成するためのコンピュータ実装方法を提供する。【解決手段】方法は、3D点群の四面体メッシュの三角形の集合である第1の開三角形分割表面を提供する。3D点群は、構造の少なくとも一部を表す。方法はさらに、第2の開三角形分割表面を決定する。第2の開三角形分割表面は、構造の一部分のスキンを表す。方法はまた、それぞれが四面体メッシュの三角形の集合である、開三角形分割表面の候補を探索し、辞書式順序の上位ランクである開三角形分割表面の候補にペナルティを与える。辞書式順序は、三角形の順序の降順に従って順序付けられた第1の三角形を有する第1の開三角形分割表面の候補を、三角形の順序の降順に従って順序付けられた第2の三角形を有する第2の開三角形分割表面の候補に対し、順序付ける。【選択図】図1
Description
本発明は、コンピュータプログラムおよびシステムの分野、より具体的には、現実のシーンの構造の3D再構成のための方法、システム、およびプログラムに関する。
市場には、オブジェクトの設計、エンジニアリング、製造用に、多数のシステムおよびプログラムが提供されている。CADは、コンピュータ支援設計(Computer-Aided Design)の頭字語であり、例えば、オブジェクトを設計するためのソフトウェアソリューションに関する。CAEは、コンピュータ支援エンジニアリング(Computer-Aided-Engineering)の頭字語であり、例えば、将来の製品の物理的挙動をシミュレートするためのソフトウェアソリューションに関する。CAMはコンピュータ支援製造(Computer-Aided Manufacturing)の頭字語であり、例えば、製造プロセスや動作を定義するためのソフトウェアソリューションに関する。このようなコンピュータ支援設計システムでは、技術の効率の点でグラフィカルユーザインターフェイスが重要な役割を果たす。これらの技術は、製品ライフサイクル管理(PLM)システム内に組み込まれ得る。PLMとは、企業が製品データを共有し、共通の処理を適用し、企業知識を活用して、拡張エンタープライズの概念にわたって、コンセプトから生涯にわたる製品の開発に役立てることを支援するビジネス戦略のことをいう。ダッソー・システムズが(CATIA、ENOVIA、DELMIAの商標のもと)提供するPLMソリューションでは、製品エンジニアリングの知識を編成するエンジニアリングハブと、製造エンジニアリングの知識を管理する製造ハブと、企業統合と、エンジニアリングおよび製造ハブへの企業の接続とを可能にする企業ハブが提供される。これらを合わせたシステムは、製品定義、製造準備、生産、およびサービスの最適化を促進するダイナミックかつ知識ベースの製品作成および意思決定サポートを可能にするために、製品、プロセス、リソースをリンクするオープンオブジェクトモデルを提供する。
こういった背景および別の背景でも、現実のシーンの構造の3D再構成は、広く重要性を増している。
現実のシーンの構造を3Dで再構成するための既存の方法には、いくつかの欠点が存在する。
これに関連して、現実のシーンの構造を3Dで再構成する方法において、改良された方法が必要である。
したがって、現実のシーンの構造を3Dで再構成するためのコンピュータ実装方法が提供される。本方法は、第1の開三角形分割表面を提供することを含む。第1の開三角形分割表面とは、3D点群の四面体メッシュの三角形の集合のことである。3D点群は、構造の少なくとも一部を表す。本方法は、第2の開三角形分割表面を決定することをさらに含む。第2の開三角形分割表面は、構造の一部分のスキンを表す。決定するステップでは、それぞれが四面体メッシュの三角形の集合である、開三角形分割表面の候補を探索する。決定するステップでは、辞書式順序の上位ランクである開三角形分割表面の候補にペナルティを与える。辞書式順序は、三角形の順序に基づく。辞書式順序は、三角形の順序の降順に従って順序付けられた第1の三角形を有する第1の開三角形分割表面の候補を、三角形の順序の降順に従って順序付けられた第2の三角形を有する第2の開三角形分割表面の候補に対し、順序付ける。三角形の順序は、三角形のサイズにペナルティを与える。決定された第2の開三角形分割表面は、所定のラベル2つによる四面体メッシュのラベル付けの一貫性に反する。三角形が第1の開三角形分割表面に属し、異なるラベルを持つ2つの四面体を分離する場合、または三角形が第1の開三角形分割表面に属さず、同じラベルを持つ2つの四面体を分離する場合、三角形はラベル付けの一貫性を尊重している。
本方法は、以下のうちの1つ以上を含んでもよい:
四面体メッシュは、次に示す特性を有する:
・四面体メッシュの四面体は結合して点群の点の凸包を形成する;
・四面体メッシュの任意の第1の四面体と、第1の四面体と交差する四面体メッシュの任意の第2の四面体が交差する部分は、第1の四面体の頂点、第1の四面体のエッジ、または第1の四面体の面である;
三角形の順序は、それぞれの三角形について、最小包含円の半径の高い値にペナルティを与える;
三角形の順序は、同じ最小包含円を有する第1の三角形と第2の三角形に対し、外接円の半径の小さな値にさらにペナルティを与える;
四面体メッシュは正則三角形分割である;
探索とペナルティを与えることは:
・三角形の順序の降順に従って、四面体メッシュの三角形に訪問することと;
・ラベル付けの一貫性が維持される限りは、三角形の順序の上位ランクにある訪問済みの三角形を破棄することを含む;
破棄は、訪問した三角形ごとに、三角形がラベル付けの一貫性に反する場合、三角形に報酬を付与するか、一貫性を尊重するようにラベル付けを調整することを含む;
破棄はさらに、訪問した三角形ごとに:
・三角形が同じ連結成分にある2つの四面体を分離し、かつラベル付けの一貫性に反している場合、三角形に報酬を付与すること;
・三角形が異なる連結成分にある2つの四面体を分離している場合は:
・・三角形がラベル付けの一貫性に反している際は、連結成分のうち1つのラベルを切り替えて連結成分を統合し、
・・三角形がラベル付けの一貫性を尊重する際は、連結成分を統合する、ことを含む;
第1の開三角形表面を提供することは:
・四面体メッシュに1つ以上のループを提供することと;
・1つ以上のループを境界として有する四面体メッシュ内に開三角形分割表面を決定することを含む;
構造は、少なくとも1つの角構造を含む;
3D点群は、写真測量、レーザースキャン、LIDAR測定、RGB D測定、および/または医療または産業用トモグラフィーによって作成される、および/または;
3D点群は、閉じた形状の一部分を表し、および/または、3D点群の点の数とコンピュータのメモリサイズの比率は、所定の閾値よりも大きい。
四面体メッシュは、次に示す特性を有する:
・四面体メッシュの四面体は結合して点群の点の凸包を形成する;
・四面体メッシュの任意の第1の四面体と、第1の四面体と交差する四面体メッシュの任意の第2の四面体が交差する部分は、第1の四面体の頂点、第1の四面体のエッジ、または第1の四面体の面である;
三角形の順序は、それぞれの三角形について、最小包含円の半径の高い値にペナルティを与える;
三角形の順序は、同じ最小包含円を有する第1の三角形と第2の三角形に対し、外接円の半径の小さな値にさらにペナルティを与える;
四面体メッシュは正則三角形分割である;
探索とペナルティを与えることは:
・三角形の順序の降順に従って、四面体メッシュの三角形に訪問することと;
・ラベル付けの一貫性が維持される限りは、三角形の順序の上位ランクにある訪問済みの三角形を破棄することを含む;
破棄は、訪問した三角形ごとに、三角形がラベル付けの一貫性に反する場合、三角形に報酬を付与するか、一貫性を尊重するようにラベル付けを調整することを含む;
破棄はさらに、訪問した三角形ごとに:
・三角形が同じ連結成分にある2つの四面体を分離し、かつラベル付けの一貫性に反している場合、三角形に報酬を付与すること;
・三角形が異なる連結成分にある2つの四面体を分離している場合は:
・・三角形がラベル付けの一貫性に反している際は、連結成分のうち1つのラベルを切り替えて連結成分を統合し、
・・三角形がラベル付けの一貫性を尊重する際は、連結成分を統合する、ことを含む;
第1の開三角形表面を提供することは:
・四面体メッシュに1つ以上のループを提供することと;
・1つ以上のループを境界として有する四面体メッシュ内に開三角形分割表面を決定することを含む;
構造は、少なくとも1つの角構造を含む;
3D点群は、写真測量、レーザースキャン、LIDAR測定、RGB D測定、および/または医療または産業用トモグラフィーによって作成される、および/または;
3D点群は、閉じた形状の一部分を表し、および/または、3D点群の点の数とコンピュータのメモリサイズの比率は、所定の閾値よりも大きい。
さらに、当該方法を実行するための命令を含むコンピュータプログラムが提供される。
さらに、当該コンピュータプログラムを記録したコンピュータ可読記憶媒体が提供される。
さらに、当該コンピュータプログラムを記録したメモリに結合されたプロセッサを備えるコンピュータが提供される。
次に、本発明の実施形態を、限定するものではない例をもとに添付の図面を参照して説明する。
本方法の一例のフローチャートを示す。
本方法を例示している。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
本方法を例示する。
コンピュータの一例を示す。
図1のフローチャートを参照すると、現実のシーンの構造の3D再構成のためのコンピュータ実装方法が提案されている。本方法は、第1の開三角形分割表面を提供するステップS10~S40を含む。第1の開三角形分割表面とは、3D点群の四面体メッシュの三角形の集合のことである。3D点群は、構造の少なくとも一部を表す。本方法は、第2の開三角形分割表面を決定するステップS50をさらに含む。第2の開三角形分割表面は、前記構造の一部分のスキンを表す。決定するステップS50では、それぞれが四面体メッシュの三角形の集合である開三角形分割表面の候補を探索する。決定するステップS50では、辞書式順序の上位ランクにある開三角形分割表面の候補にペナルティを与える。辞書式順序は、三角形の順序に基づく。辞書式順序は、三角形の順序の降順に従って順序付けられた第1の三角形を有する第1の開三角形分割表面の候補を、三角形の順序の降順に従って順序付けられた第2の三角形を有する第2の開三角形分割表面の候補に対し、順序付ける。三角形の順序は、三角形のサイズにペナルティを与える。決定された第2の開三角形分割表面は、所定のラベル2つによる四面体メッシュのラベル付けの一貫性に反する。三角形が第1の開三角形分割表面に属し、異なるラベルを持つ2つの四面体を分離する場合、または三角形が第1の開三角形分割表面に属さず、同じラベルを持つ2つの四面体を分離する場合、三角形はラベル付けの一貫性を尊重している。
これは、改良された、現実のシーンの構造を3Dで再構成する方法を構成する。
特に、本方法によって、現実のシーンの構造の一部分のスキンを表す開三角形分割表面(つまり、第2の開三角形分割表面)を決定することが可能になる。よって、本方法は、現実のシーンの3D構造の一部分の再構成を実行する。さらに、本方法は、3D点群および/または構造上の滑らかさの前提を必要とせずに現実のシーンの3D構造の一部分の再構成を実行する。したがって、本方法はロバストな方法であり、例えば、さまざまな現実のシーン構造を処理できる。本方法では、例えば、角構造などの非規則的な構造を表す非規則的な点群を処理してもよい。また、本方法では、パラメータを手動で調整する量が少ない(例えば、まったくない)ため、人間工学的にも優れている。特に、探索とペナルティを与えることは自動的に実行されてもよい。
本方法では、開三角形分割表面の候補を探索し、決定された開三角形分割表面となる候補に報酬を付与する(例えば、選択する)ことによって、構造の一部分のスキンを表す第2の開三角形分割表面を決定する。本方法では、2つの制約をもとに候補に報酬を付与する/を選択する。第1の制約は、辞書式順序において、候補が高すぎるランクを持たないことである。そうでない場合、決定するステップS50によってペナルティが与えられる(つまり、破棄される)。言い換えると、候補は、候補間で辞書式順序を最小にしなくてはいけない、または、最小にする傾向がある必要がある。第2の制約は、選択される候補は、ラベル付けの一貫性に反していなくてはいけないということである(つまり、候補のすべての三角形がラベル付けの一貫性に反していなくてはならない)。言い換えると、本方法では、ラベル付けの一貫性に反するが、候補間の辞書式順序でのランクによるペナルティが最も少ない開三角形分割表面(つまり四面体メッシュの三角形の集合)の候補を見つける。さらに言い換えると、本方法では、ラベル付けの一貫性に反するが、ラベル付けの一貫性に反する開三角形分割表面間の辞書式順序については最小にする、または少なくとも最小にする傾向がある開三角形分割表面が決定される。さらに言い換えると、本方法では、ラベル付けの一貫性に反する開三角形分割表面の集合間の辞書式順序を最小にする傾向がある。
ここで、決定された第2の開三角形分割表面がラベル付けの一貫性に反しなければならないという制約は、決定された第2の開三角形分割表面が第1の開三角形分割表面と同じ境界を持たなければならないという制約をくみ取っている。言い換えれば、ラベル付けの一貫性に反する開三角形分割表面を決定することによって、本方法では、第1の開三角形分割表面と同じ境界を有する開三角形分割表面を決定する。辞書式順序を最小にする、または、少なくとも最小にする傾向があり、ラベル付けの一貫性に反する開三角形分割表面を決定することによって、本方法では、実際には、第1の開三角形分割表面と同じ境界を有し、かつ、第1の開三角形分割表面と同じ境界を持つ開三角形分割表面間の辞書式順序を最小にする、または少なくとも最小にする傾向がある開三角形分割表面が決定される。
後述するように、ラベル付けの一貫性は、三角形が第1の開三角形分割表面に属し、異なるラベルを持つ2つの四面体を分離する場合、または三角形が第1の開三角形分割表面に属さず、同じラベルを持つ2つの四面体を分離する場合、三角形はラベル付けの一貫性を尊重しているという制約によって定義されることを考慮すると、決定された第2の開三角形分割表面が第1の開表面と同じ境界を持たなければならないという制約は、決定された第2の開三角形分割表面がラベル付けの一貫性に反しなければならない、すなわち、三角形すべてがラベル付けの一貫性に反しなくてはいけないという制約によって実際にくみ取られている。
さらに後述するように、三角形分割表面について辞書式順序で上位ランクを有するということは、表面が、サイズの大きい三角形(例えば、大きいおよび/または平らな三角形)を含む、および/または、そのような三角形の量が多すぎるという事実をくみ取っている。これらの三角形は、ノイズを特徴とする3D点群の領域を表しており、ノイズは、例えば、点群を取得したセンサーの測定誤差に起因し得る外れ値の点で構成される。つまり、後述するように、スキンは点群の高密度部分をメッシュ化する必要があるため、辞書式順序で上位ランクである開三角形分割表面は、構造の一部分のスキンを正確に表していない。逆に、下位ランクである開三角形分割表面は、スキンを正確に表す。したがって、本方法では、第1の開三角形分割表面に基づいて、同じ境界を有するが、第1の開三角形分割表面よりも構造の一部分のスキンをより良好に表す第2の開三角形分割表面を特定する。
本方法は、3D点群によって部分的に表される現実のシーンを3D再構成するために使用され得る。具体的には、例えば、オクルージョンおよび/または光学的特性などの現実のシーンの物理的な制約により、3D点群が現実のシーンの構造を部分的にのみ表す、つまり、構造の少なくとも一部を表す結果をもたらし得る。物理的な制約により、例えば、穴を特徴として有するなどの、部分的および不完全な3D取得につながることがある。つまり、3D点群は、構造の一部を表す点で構成されるべき箇所に、穴を特徴として持つ可能性がある。さらに言い換えると、3D点群は、閉じた形状の一部分、つまり、閉じた形状全体を表すのではなく、その一部分を表し得る。これは、例えば、3D点群が建物を表す際に、物理的な制約により、建物の形状を部分的に表す3D点群のみが取得され得るため、3D点群として建物の完全な形状を3D取得することができない場合があり得る。しかし、そのような場合でも、本方法では、正確で穴のない3D再構成が可能である。本方法では、例えば、第1の開三角形分割表面として、3D点群によって表される構造の一部の境界を境界とする開三角形分割表面が提供され得る。部分的な3D取得であるため、この境界は、構造の現実世界での外側境界に対応しない場合がある。つまり、この境界は、3D点群によって表される構造の一部の境目であってもよい。本方法では、第1の開三角形分割表面として、そのような任意の開三角形分割表面が提供され得る。
ユーザは、例えば、四面体メッシュ内に1つ以上(例えば、1つ)のループとして境界を定義/マークすることができる。ループとは、エッジおよび頂点の集合であり、ここで各頂点は偶数の数のエッジに属する。また、本方法は、1つ以上のループからの第1の開三角形分割表面を推測し得る。これは、スキンを正確に表さない、すなわち、辞書式順序でランクが高すぎる第1の開三角形分割表面をもたらす任意のやり方を含む、いかなるやり方でも行われ得る。次に、決定するステップS50は、第1の開三角形分割表面と同じ境界を有するが、辞書式順序を最小にする傾向がある別の開三角形分割表面(すなわち、第2の開三角形分割表面)を見つけ、それによって、より高品質の構造の一部分のスキンを形成する。言い換えれば、ユーザが提供する構造の一部分の境界の定義に基づいて、本方法では、定義された一部の境界を境界として有し、辞書式順序を最小にする傾向がある開三角形分割表面を決定し、それによって構造の一部分の正確なスキンを形成し得る。
本方法は、3D点群の点数とコンピュータのメモリサイズ間の比率が所定の閾値よりも大きい場合など、大きな3D点群、すなわち、多数の点を特徴とする点群のスキンを決定するために追加的または代替的に使用されてもよい。これは、例えば、点群が大きな地形を表す場合に当てはまり得る。そのような点群のサイズ(点の数において)では、標準的または安価なコンピュータでは、許容可能な時間内に点群の完全なスキンを表す三角形分割表面を計算することは不可能、または、少なくとも複雑になる可能性がある。しかし、本方法では、そのような点群の分割を考慮することによって、これらの点群の処理を可能にし得る。具体的には、本方法は、第1の開三角形分割表面として、3D点群に表される構造の境界部分のスキンのみを表す開表面を提供し得る。この第1の開三角形分割表面コンピュータって提供された1つ以上のループから推測することができ、例えば、ループはそれぞれ、そのような境界部分を区切っている。例えば、3D点群が地形を表す場合、第1の開三角形分割表面は、境界づけられた地形のある区画のスキンを表し得る。第1の開三角形分割表面は、辞書式順序でランクが高すぎるために、スキンを不正確に表し得る。このとき、本方法は、第2の開三角形分割表面として、第1の開三角形分割表面と同じ境界を有するが辞書式順序ではランクがより低い開三角形分割表面を決定し、これによって境界部分のスキンを正確に表す。本方法は、構造を分割する複数の境界部分のそれぞれに対して行われてもよい。
言い換えれば、本方法では、区画に分割された地形など、境界部分によって分割できる大きな構造を考慮し、各部分のそれぞれのスキンを決定することが可能になる。これにより、標準的または安価なコンピュータではかなりの時間を要する、および/または、実行不可能な、単一のプロセスで構造のスキン全体を決定するということを回避できる。また、本方法では、境界部分の境界は(例えば、対応する第1の開三角形分割表面またはループを提供する場合に)水密であると定義してもよい。これにより、構造のスキンを並列化する、つまり、各部分の決定された各スキンを互いに独立して処理することが可能になる。例えば、本方法では、対応する構造の一部分の変更時に、他のスキンを再計算することなく、スキンのうちの1つを再計算することができる。言い換えれば、本方法は、地形の区画などの大きな構造を分割する部分の正確なスキンを、それぞれ独立して計算し、処理することができ、これにより、構造または少なくとも構造の1つ以上の部分の正確なスキンを取得するだけでなく、標準的または安価なコンピュータのリソースを使用して、許容可能な時間内に実行することも可能になる。地形の区画への分割など、構造の部分への分割は、ユーザが決定してもよく、あるいは、例えば、各部分についてその部分を表す3D点群の点がコンピュータメモリに収まらなければならないという考慮をもとに、自動的に決定してもよい。
本方法を、図1のフローチャートを参照しながらさらに説明する。
現実のシーンとは、現実世界の一部を指し、それはオブジェクトまたは複数のオブジェクトの配列であってもよく、または、オブジェクトまたは複数のオブジェクトの配列を含んでもよい。現実のシーンの構造とは、現実のシーンにおける材料の閉じられたレイアウトなど、現実のシーンの有形(例えば、実体がある)物理的な閉じた形状のことである。したがって、構造の一部分はこの閉じた形状の一部分である。例えば、現実のシーンは、大聖堂といった建物でもよい。この場合、一部分は、屋根のない大聖堂など、建物の一部でもよい。別の例としては、現実のシーンは、地形である。地形の一部分とは、区画/プロットなどの地形の一部であってもよい。一部分のスキンとは、その部分の外皮または包囲物であり、つまり、構造内の不透明な物質と、外側の空気および/または物質との間の接触を形成する構造の材料である。一部分は境界を有してもよく、スキンが必ずしも構造の外側と構造の内側との間に完全な境目を形成するわけではなく、そのような境目の一部分のみを形成するように境界を有してもよい。例えば、地形の一部分のスキンは、その地形が形成する地面と空気との間の境目を表し得るが、境界づけられたその区画/プロットのみに対してである。さらに別の例としては、大聖堂などの建物の一部分のスキンであり、建物の壁と空気(外気および/または建物内の空気であってもよい)との間に部分的な境目を形成し得る。
本方法は、現実のシーンの構造の少なくとも一部、例えば構造の一部分のみを表す3D点群の四面体メッシュ化を想定する。本方法は、例えば第1の開三角形分割表面を提供する前に、3D点群を提供するステップS10を含んでもよい。あるいは、本方法は、例えば第1の開三角形分割表面および/または四面体メッシュを、その計算後、保存されているメモリから取得、第1の開三角形分割表面および/または四面体メッシュを直接提供し得る。
現実のシーンの構造の少なくとも一部を表す3D点群は、本明細書では、各点が現実のシーンの構造の少なくとも一部に配置されたそれぞれの幾何学的実体を表すデータ構造である。各幾何学的実体は、シーン内の構造のそれぞれの位置(言い換えると、構造を構成する材料のそれぞれの部分および/またはレイアウト)を表す。幾何学的実体の集合体(つまり、結合または並置)は、全体で構造の少なくとも一部を表す。本明細書において、任意の3D点群は、100000、1000000または10000000を超えた数の点で構成されていてもよい。特に、本方法では、標準的または安価なコンピュータ(例えば16ギガバイトのメモリ)で10000000を超える数の点を処理し得る。3D点群は、構造内に配置されたそれぞれの幾何学的実体を表さない点を含み得ることを理解されたい。これらの点は、後述する通り、点密度の低い領域を形成する、または、その一部であってもよい。そのような領域は、例えば、構造に属さないシーンの一部を表し得る。点群には測定エラーに起因する外れ値の点もあり得、よって、構造の幾何学的実体を表さない可能性もある。
現実のシーンとは、外から見た建物といった、建築シーンであってもよい。ここでは、構造とは、建物の構造(壁や屋根など)によって形成された閉じた有形の形状である場合があってもよい。構造物の一部のスキンは、この場合、例えば建物の外側および/または内側に面する壁および/または屋根の表面といった、建物の構造の表面で構成され得る。現実のシーンは、任意の土木構造物(例えば、採掘トンネルといったトンネル)を含む他の任意の土木シーンであってもよい。シーンは、例えば、工場のスキャン、すなわち、工場内部のスキャンであってもよい。
あるいは、現実のシーンは地形シーンであってもよい。構造は地形そのものであってもよく、地形の一部のスキンは、境界として区画の境界を有する、地形の区画の地面であってもよい。
あるいは、現実のシーンは、機械部品または有機組織であってもよく、この場合、一部分のスキンは、例えば、機械部品または有機組織の外皮の一部である。機械部品は、次のうちのいずれかであってもよい:陸上車両の部品(例えば、自動車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモーター機器、トラックおよびバス、列車等を含む)、航空車両の部品(例えば、機体機器、航空宇宙機器、推進機器、防衛製品、航空機器、宇宙機器が挙げられる)、海上車両の部品(海軍機器、商用船、沖合機器、ヨットおよび作業船、船舶機器が挙げられる)、一般的な機械部品(例えば、産業用製造機械、重機用機械または機器、設置機器、産業用機器製品、金属加工製品、タイヤ製造製品が挙げられる)、電気機械または電子部品(例えば、家電機器、セキュリティおよび/または制御および/または計測製品、コンピューティングおよび通信機器、半導体、医療装置および機器が挙げられる)、消費財(家具、家庭および庭用製品、レジャー用品、ファッション製品、耐久消費財小売業者の製品、織物類小売業者の製品が挙げられる)、パッケージ(例えば、食品および飲料およびタバコ、美容およびパーソナルケア、家庭用品の包装が挙げられる)。追加的または代替的に、機械部品は、次のうちのいずれかであってもよい:成形部品(すなわち、成形製造プロセスによって製造された部品)、機械加工部品(すなわち、機械加工製造プロセスによって製造された部品)、掘削部品(すなわち、掘削製造プロセスによって製造された部品)、旋削部品(すなわち旋削製造プロセスにより製造された部品)、鍛造部品(すなわち鍛造製造プロセスにより製造された部品)、刻印部品(すなわちスタンピング製造プロセスにより製造された部品)および/または折り畳まれた部品(すなわち、折り畳み製造プロセスによって製造された部品)。
実施例では、構造は、少なくとも1つの角構造を含む。角構造は、角の形状を有する、または実質的に角の形状を有する構造の一部を指す。構造の角は、形状のエッジまたは鋭角を形成する材料のレイアウトに対応する構造の一部であってもよい。角構造は、建物の角、地形区画の角、トンネルの角、部屋の壁によって形成される角、採掘トンネルの角、機械部品を構成する材料のレイアウトにおける角または鋭角、または、有機組織を構成する組織のレイアウトの角または鋭角であってもよい。したがって、本方法は角構造を処理するため、ロバスト性に優れた方法である。
実施例では、3D点群は、写真測量、レーザースキャン、RGBD測定、および/または医療または産業用トモグラフィーによって作成される。
本方法では、建築/建物シーンの構造を表す点群は、RGBD測定または写真測量からえられたものであり、また、structure-from-motion分析から形成されてもよい。機械部品の構造を表す点群は、産業用トモグラフィーまたはレーザースキャンから作成され得る。採掘シーン(または他の同様の土木工学シーン)の構造を表す点群は、例えば鉱山の内部のレーザースキャンから作成されてもよい。有機組織の構造を表す点群は、医療用トモグラフィーから作成されてもよい。地形を表す点群は、LIDAR測定から作成されてもよい。
本明細書において、任意の3D点群は、現実のシーンでの物理的測定値から決定されてもよい。3D点群を提供するステップS10は、特に、それぞれが各物理信号を取得するよう構成された1つ以上の物理センサーを提供し、現実のシーンでその1つ以上の物理センサーを動作させて1つ以上の物理信号をそれぞれ取得する(すなわち、現実のシーンを各センサーでスキャンする)ステップを備え得る。3D点群を提供するステップS10は、任意の既知の技術に従って、測定に基づいて3D点群を自動的に決定することで構成されてもよい。1つ以上のセンサーは、複数の(例えば、RGB、および/または画像またはビデオ)カメラで構成されていてもよく、決定は、structure-from-motion分析で構成されていてもよい。1つ以上のセンサーは、代替的または追加的に、1つ以上の深度センサーを含んでもよい(例えば、RGB-Dカメラ上)。1つ以上のセンサーは、代替的または追加的に、レーザー(例えば、LIDAR)または超音波エミッター/レシーバーを含んでもよい。1つ以上のセンサーは、代替的または追加的に、1つ以上のトモグラフセンサーを含んでもよい。トモグラフセンサーは、医療用または産業用トモグラフセンサーであってもよい。
代替的に、3D点群を提供するステップS10は、3D点群が保存されているデータベースに訪問し、データベースから3D点群を検索することを含み得る。提供するステップS10が実際には測定値の取得および3D点群の決定を含まない場合があっても、3D点群は、前述のように、1つ以上の物理センサーを動作させ、1つ以上のセンサーで取得した測定値に基づいて3D点群を決定することで取得され、次に、データベースに保存されてもよい。いずれの場合も、3D点群を提供するステップS10は、ユーザの操作によって実行され得る。3D点群を提供するステップS10は、本方法を実行するコンピュータのディスプレイ(例えば、GUI)上に3D点群を表示することをさらに含み得る。
提供された3D点群は、異なる点密度を有する領域を1つ以上含み得る。これは、点群内の点密度が点群の領域ごとに異なり得ることを意味する。3D点群は、例えば、オクルージョンまたは光学特性など、3D点群の3D取得が実行された際の物理的制約から生じる穴/開口部を含んでもよい。穴は、十分な点密度を含むはずであるのに物理的な制約により含んでいない領域を表し得る。したがって、3D点群は、物理的な制約がなければ閉じた形状全体を表すはずであった、閉じた形状(つまり構造)の一部分のみを表し得る。
構造またはその一部のスキンは、点密度が最も高い点群の領域に対応し得、この領域は、例えば、外側の少なくとも一部を内側の少なくとも一部から分離する。この領域は開いていてもよく、つまり、点密度が最も高い点群の領域は、境界を持つ開いた形状を形成し得る。この場合、内側および/または外側は、より低い点密度を特徴とする領域であってもよい。例では、「密度が最も高い」とは、開いた形状の点密度が、測定から生じる周囲ノイズよりも高いことを意味する。3D点群は、点密度が低い領域にあり、測定エラーに起因する3D点群の点である外れ値をさらに特徴とし得る。つまり、外れ値は現実のシーンの幾何学的実体を表すものではなく、数値および/または測定のアーティファクトに相当する。しかし、本方法はこれらの外れ値を処理するため、本方法は外れ値や密度変動に対してロバストな方法となる。
3D点群は多数の点を含み得る。例えば、3D点群の点の数とコンピュータのメモリサイズの比率は、所定の閾値よりも大きくてもよい。例えば、所定の閾値は、16ギガバイトのメモリサイズ(つまり、実質的に標準または安価なコンピュータメモリのサイズ)に対して1000万個の点を超えてよく、例えば、16ギガバイトのメモリサイズで1000万個以上であってもよい。
ここで、3D点群によって表される構造の3D再構成の概念について簡単に説明する。構造の3D再構成は、一般に、3D点群の点をむすぶ表面を計算/決定する動作を指す。表面は、3D点群の点を、構造の外側の少なくとも一部と構造物の内部の少なくとも一部との間の境目(境界など)を表す開表面へとむすぶため、「構造の一部分のスキンを表す」とされ得る。したがって、表面は、構造の外皮の一部分、言い換えると、構造の一部分のスキンを表す。例えば、前述のように、スキンは3D点群内の点密度が高い開いた形状に対応し得る。構造の3D再構成は、この場合、開いた形状の点をむすぶ表面を決定/計算して構造の開表面の外皮を形成することを指してもよい。
前述のように、本方法では、構造の少なくとも一部を表す3D点群の四面体メッシュ化を操る。本方法は、四面体メッシュを計算するステップS20を含み得る。あるいは、本方法は、例えば、第1の開三角形分割表面および/または四面体メッシュを、保存されているメモリから取得、さらに計算することで、第1の開三角形分割表面および/または四面体メッシュを直接提供し得る。四面体メッシュを計算するステップS20は、任意の既知の方法で実行されてよい。
例では、四面体メッシュは次の特性を有する:四面体メッシュの四面体は結合して3D点群の点の凸包を形成する;そして、四面体メッシュの第1の四面体と、第1の四面体と交差する四面体メッシュの第2の四面体が交差する部分は、第1の四面体の頂点、第1の四面体のエッジ、または第1の四面体の面である。これにより、メッシュの品質が向上し、その結果、決定された開三角形分割表面の品質が向上する。
例では、四面体メッシュは正則三角形分割である。これにより、メッシュの品質がさらに向上し、決定された開三角形分割表面の品質が向上する。計算幾何学の分野でそもそも既知である通り、3D点群の正則三角形分割は、1つ次元が高い(つまり、4次元)の多面体の面の影によって誘導される三角形分割である。正則三角形分割は、ラゲールボロノイ図の単なる双対であり、例えば、参照により本明細書に組み込まれる「Algorithmic geometry, Jean-Danel Boissonnat and Mariette Yvinec, Cambridge University Press New York, NY, USA」を参照されたい。四面体メッシュを計算するステップS20は、任意の既知の方法によって、3D点群の規則的な三角形分割を四面体メッシュとして計算することを含み得、以下を含み得る:
点群の点を持ち上げる、つまり、各点に座標を追加する。これにより、点の集合が、元の空間に等しい次元空間(つまり、3D点群が属する3D空間)で、その点の集合と1を足したものを含む次元空間に埋め込まれる;
持ち上げた点の集合の凸包を計算する;
既知の方法で凸包を三角形分割し、得られた四面体メッシュが次の特性を有するように三角形分割する:四面体メッシュの四面体は結合して持ち上げた点の集合の凸包を形成し;四面体メッシュの第1の四面体と、第1の四面体と交差する四面体メッシュの第2の四面体が交差する部分は、第1の四面体の頂点、第1の四面体のエッジ、または第1の四面体の面である;そして、
凸包のこの三角形分割の下面を元の空間に投影する。
点群の点を持ち上げる、つまり、各点に座標を追加する。これにより、点の集合が、元の空間に等しい次元空間(つまり、3D点群が属する3D空間)で、その点の集合と1を足したものを含む次元空間に埋め込まれる;
持ち上げた点の集合の凸包を計算する;
既知の方法で凸包を三角形分割し、得られた四面体メッシュが次の特性を有するように三角形分割する:四面体メッシュの四面体は結合して持ち上げた点の集合の凸包を形成し;四面体メッシュの第1の四面体と、第1の四面体と交差する四面体メッシュの第2の四面体が交差する部分は、第1の四面体の頂点、第1の四面体のエッジ、または第1の四面体の面である;そして、
凸包のこの三角形分割の下面を元の空間に投影する。
例では、正則三角形分割はドロネー三角形分割である。このような場合、点は放物面に持ち上げられ、その持ち上げは、持ち上げられた点と放物面の間の垂直方向の差によってパラメータ化される。これにより、メッシュの品質がさらに向上し、決定された開三角形分割表面の品質が向上する。さらに、本方法では、ドロネー三角形分割を単に計算する以上のことに及んで3D再構成を実行する。本方法は、ドロネー四面体メッシュの品質の恩恵を確かに享受するが、ドロネー三角形分割の三角形の面で形成された開三角形分割表面の全ての候補の中からスキンを実際に表すものを決定するステップS50により、ドロネー三角形分割を超えた方法である。言い換えれば、本方法では、ドロネー四面体メッシュの三角形の面で形成された開三角形分割表面の中から、スキンを最も良く表すものを選択することができる。したがって、本方法では、3D点群のドロネー四面体凸包メッシュを利用することができ、この既知の概念は、例えば、参照により組み込まれる参考文献「F. Cazals, J. Giesen, Delaunay triangulation based surface reconstruction, Effective computational geometry for curves and surfaces, pages 231-276, 2006」で詳細が記載されている。ドロネー四面体メッシュのオブジェクトは、次の特性を備えた四面体の集合である。トポロジーは、任意の三角形が2つの領域で完全に共有されるように隣接する四面体の集合である。第1の共有状況は2つの隣接する四面体によって共有される三角形である。第2の共有状況は、四面体と境界のない外側の領域によって共有される三角形である。四面体と外側の領域によって共有される三角形を、境界三角形と呼ぶ。ドロネーメッシュの幾何学的特性は、任意の四面体において、その4つの点が定義する球(外接球と呼ばれる)には、点群の他の点が含まれないことである。
ここで、第1の開三角形分割表面の提供について説明する。
第1の開三角形分割表面とは、境界を持つ開三角形分割表面を形成する、四面体メッシュの三角形の集合のことである。より一般的には、本開示では、任意の開三角形分割表面は、四面体メッシュの三角形分割表面であり、境界を有する三角形分割表面である。第1の開三角形分割表面は、構造の一部分のスキンを表す任意の開三角形分割表面であってもよく、したがって、決定のステップにおける候補の1つであってもよい。ただし、第1の開三角形分割表面は、辞書式順序で上位ランクであり、または、少なくともランクが高すぎて辞書式順序を最小としない、もしくは最小とする傾向がない場合がある。前述したように、決定するステップS50は、第1の開三角形分割表面と同じ境界を持つが、辞書式順序を最小とする、または、少なくとも最小とする傾向がある、第2の開三角形分割表面を見つける。これにより、決定された開三角形分割表面の品質は、第1の開三角形分割表面の品質よりも優れている、すなわち、決定された表面は、スキンをより良好に表し、例えば、点群の低密度領域および/または外れ値を示す大きいおよび/または平らな三角形を一切含まない、または、少なくとも含まれる数が少ない。
第1の開三角形分割表面は、直接提供され得、例えば、前述のとおり、本方法では第1の開三角形分割表面を計算/決定しない。あるいは、第1の開三角形分割表面を提供することは、第1の開三角形分割表面を計算/決定することを含み得る。第1の開三角形分割表面の計算/決定は、任意の方法を適用し、四面体メッシュ内に、構造の一部分のスキンを大まかにでも表す開三角形分割表面を見つけることを含み得る。言い換えれば、第1の開三角形分割表面の提供は、たとえ第1の開三角形分割表面が辞書式順序で上位ランクであっても、四面体メッシュ内に、大まかにでもスキンを表す任意の開三角形分割表面を見つけることを含み得る。次に、決定するステップS50は、そのような開三角形分割表面で、辞書式順序を最小にする、または、最小にする傾向がある開三角形分割表面を見つける。さらに言い換えると、第1の開三角形分割表面の提供は、大まか/不正確にでもスキンを表す開三角形分割表面を見つける任意の方法によって実施され得る。
例では、第1の開三角形分割表面の提供は、四面体メッシュ内に1つ以上のループを提供するステップS30、境界として1つ以上のループを有する開三角形分割表面を四面体メッシュ内に決定するステップS40を含む。本明細書において、ループとは、ループ内の各頂点がループの偶数個のエッジに属するような、四面体メッシュのエッジと頂点の集合である。1つ以上のループは、構造の一部分の境界を形成する。前述のとおり、構造の一部分とは、3D点群によって表される構造の一部分、またはこの一部のさらに一部であってもよく、この場合、1つ以上のループはこの一部の境界を形成する。
3D点群の部分的な取得により、境界は、構造の実際の形状の境界と部分的に一致し得る。代替的または追加的に、境界は、3D点群の部分的な取得により、3D点群の1つ以上の穴の境界と一致し得る。例えば、1つのループは、例えば部分的に、現実世界の構造の境界の実際の形状に対応し得る。追加的または代替的に、1つのループは、3D点群の穴の境界に対応し得る。
追加的または代替的に、構造の一部分は、例えば、前述のように、その分割から生じる3D点群の一部分に対応し得、この一部分の境界が、S30でループとして提供される。
1つ以上のループを提供するステップS30は、ユーザによって、例えばグラフィカルユーザインタラクションにより実行され得る。例えば、1つ以上のループのうち特定のループを提供するために、ユーザは四面体メッシュの点とエッジをクリックまたはタッチして、ループを形成し得る。代替的または追加的に、ユーザは、特定のループを提供するために、四面体メッシュまたは点群上で一連のクリックまたはタッチを実行し得、この場合、各クリックまたは各タッチは点を定義する。次に、本方法は、ユーザが選択した一連の点からエッジおよび頂点のループを自動的に推測し得、これには、ユーザが選択した点のオーバーサンプリングおよび/またはユーザが選択した点に適合するエッジおよび頂点のループを見つけることが含まれ得る。追加的または代替的に、ユーザは、特定のループを提供するために、四面体メッシュまたは点群上に閉じた線を描いてもよく、その線は(例えば、大まかに)境界の形状を定義する。次に、本方法では、ユーザが定義した線からエッジおよび頂点のループを自動的に推測し得、これには、ユーザが定義した線のサンプリングおよび/またはユーザが定義した線に適合するエッジおよび頂点のループを見つけることが含まれ得る。
あるいは、1つ以上のループを提供するステップS30は、自動的に実行され得る。例えば、1つ以上のループの提供は、コンピュータメモリに関する考慮事項に基づき得る。例えば、1つ以上のループを提供するステップS30は、各領域/部分が、所定のコンピュータメモリ(例えば、標準または安価なコンピュータの場合は16ギガバイト)に適合する数の3D点群の点を有するように、3D点群または四面体メッシュを境界領域/部分に分割することを含み得る。次に、1つ以上のループはそれぞれ、各部分の境界に対応し得る。得られた四面体メッシュの分割は水密であってもよく、つまり、分離された部分/領域は、それらの共通の境界に沿って一致する。
次に、自動的に1つ以上のループを提供するステップS30の実施について説明する。この実施は、3D点群に多数の点がある場合、例えば、16ギガバイトのメモリを搭載した標準または安価なコンピュータの場合は1000万個を超える点がある場合に特に適用される。この実施では、点群/四面体メッシュを、点の数がコンピュータメモリに収まる領域にさらに分割し、分離されたメッシュ領域が共通の境界に沿って一致するようにすることで、得られた分割/メッシュ領域が水密になるようにする。この実施は次のように行われる:
四面体メッシュを計算するステップS20は、3D点群の3Dドロネー三角形分割を、既知のアウトオブコア法で計算することを含む。そのような方法は、参照により本明細書に組み込まれる「Lo,S.H.“Parallel Delaunay triangulation in three dimensions.”Computer Methods in Applied Mechanics and Engineering 237(2012):88-106」に開示された方法など、領域ごとの3Dドロネー三角形分割が実行可能な任意の方法を含み得る。
四面体メッシュを計算するステップS20は、3D点群の3Dドロネー三角形分割を、既知のアウトオブコア法で計算することを含む。そのような方法は、参照により本明細書に組み込まれる「Lo,S.H.“Parallel Delaunay triangulation in three dimensions.”Computer Methods in Applied Mechanics and Engineering 237(2012):88-106」に開示された方法など、領域ごとの3Dドロネー三角形分割が実行可能な任意の方法を含み得る。
1つ以上のループを提供するステップS30は、3Dドロネー三角形分割全体を上から見た時のシルエットを抽出することを含み、この場合、3Dドロネー三角形分割は、シルエットが単一のループである凸状の3D物体である。
提供するステップS30は、各ループがコンピュータメモリに適合する数の点を囲むまで、以下を繰り返すことをさらに含む:
・垂直面を定義する;
・この平面を切断する3Dドロネー三角形分割の四面体を抽出する;および、
・抽出した四面体で辞書式順序が最小のパスを定義し、それによってループをさらに小さなループ2つに分割する。
・垂直面を定義する;
・この平面を切断する3Dドロネー三角形分割の四面体を抽出する;および、
・抽出した四面体で辞書式順序が最小のパスを定義し、それによってループをさらに小さなループ2つに分割する。
境界として1つ以上のループを有する、四面体メッシュの開三角形分割表面を決定するステップS40は、任意の適切な方法または任意の適切な技術によって実行され得る。決定された(S40)開三角形分割表面は、第1の開三角形分割表面である。実施例では、決定するステップS40では、後述するアルゴリズム2を実行し得る。アルゴリズム2の代わりに、他の幾何学的アルゴリズムの適切な組み合わせを実行してもよい。
次に、構造の一部分のスキンを表す第2の開三角形分割表面の決定するステップS50についてさらに説明する。
決定するステップS50は、候補となる開三角形分割表面を探索する。各候補は、四面体メッシュで開三角形分割表面を形成する、四面体メッシュの三角形の集合である。決定では、辞書式順序で上位ランクの候補にペナルティを与え、ラベル付けの一貫性に反する候補を検索する。つまり、決定は、開三角形分割表面の候補の中からの選択を実行し、それらの中から、辞書式順序を最小とする、または、少なくとも最小とする傾向があり、かつ、ラベル付けの一貫性に反する候補を1つ選択する。
開三角形分割表面の候補間の選択には、辞書式順序と三角形の順序が関与し、以下に説明する。
辞書式順序は、第1の開三角形分割表面の候補を第2の開三角形分割表面の候補に対して順序付け、つまり、第1の開三角形分割表面の候補と第2の開三角形分割表面の候補との間に順序付けを行う。辞書式順序の概念はそれ自体が周知である。第1の開三角形分割表面の候補は、四面体メッシュの第1の三角形を有し(例えば、第1の三角形から構成され)、第2の開三角形分割表面の候補は、四面体メッシュの第2の三角形を有する(例えば、第2の三角形から構成される)。第1の三角形と第2の三角形はどちらも、三角形の順序の降順に従って順序付けられる。
辞書式順序に従って第1の開三角形分割表面の候補を第2の開三角形分割表面の候補に対して順序付けることは特に、辞書式順序が三角形の順序に基づいているので、第1の三角形の順序および第2の三角形の順序を三角形の順序の降順に沿って評価することを含み得る。順序付けはさらに、第1の三角形および第2の三角形両者の評価された順序付けに基づいて、第2の開三角形分割表面の候補に対する第1の開三角形分割表面の候補のランクを辞書式順序で確立することをさらに含み得る。言い換えれば、順序付けは、順序付けられた第1および第2の三角形を比較することによって、第1の開三角形分割表面の候補と第2の開三角形分割表面の候補との間に辞書式順序で相対的なランク付けを確立することを含み得る。
次に、辞書式順序に従って、第1の開三角形分割表面の候補を第2の開三角形分割表面の候補に対して順序付けする例について説明する。Aを第1の三角形から構成される集合、Bを第2の三角形から構成される集合とする。
とし、すなわち、Cは、AまたはBに属するが、AおよびBには属さない三角形の集合である。Cが空である場合、A=Bである。この場合、第1の開三角形分割表面の候補および第2の開三角形分割表面の候補は、辞書式順序で同じランクである。もしCが空でない場合、Tを、三角形の順序に沿った一番大きなCの三角形とし、すなわち、Tは、Cの三角形が三角形の順序の降順に順序付けられている場合、Cの第1の三角形である。別の言い方をすれば、Tは、三角形の順序によって最もペナルティが与えられたCの三角形であり、例えば、後述のとおり、Cの三角形の中で一番大きな三角形である。TがAに属する場合、AはBよりも大きい。この場合、辞書式順序では、第1の開三角形分割表面の候補は、第2の開三角形分割表面の候補よりも上位ランクに位置する。逆に、TがBに属する場合、BはAよりも大きい。この場合、辞書式順序では、第2の開三角形分割表面の候補は、第1の開三角形分割表面の候補よりも上位ランクに位置する。
である場合(厳密に)、AはBよりも大きいことに留意されたい。
この順序付けにより、すべての開三角形分割表面の候補の集合が辞書式順序に従って順序付けられ得、つまり、開三角形分割表面の各候補は、辞書式順序でそれぞれのランクを有する。決定するステップS50では、上位ランクである開三角形分割表面の候補にペナルティを与える。例えば、決定するステップS50は、上位ランクであるために開三角形分割表面の候補が破棄され、下位ランクであるために開三角形分割表面の候補が廃棄されない、というように行われる。
三角形の順序は、三角形のサイズにペナルティを与える。次に、三角形のサイズにペナルティを与えるという概念について説明する。TおよびT′を2つの三角形とする。三角形のサイズにペナルティを与えるということは、各三角形TおよびT′ごとに、三角形のサイズの測定値を評価し、測定値が大きい三角形に、三角形の順序でより上位のランクを与えることを含み得る。三角形のサイズの測定値は、三角形の重みまたは三角形重みとも呼ばれ得る。サイズの測定は、例えば、三角形のサイズの測定に寄与する第1の実数値関数、三角形のサイズの測定に異なった方法で寄与する第2の実数値関数、および/または第1の関数と第2の関数からなる一対を含み得る。三角形のサイズにペナルティを与えることは、例えば、当技術分野でそれ自体公知である通り、2つの実数または実数の組み合わせ2対を互いに順序付ける任意の順序に従って、評価したサイズの測定値2つを互いに順序付けることを含み得る。つまり、TがT′よりも大きい(つまり、サイズが大きい)場合、Tのサイズの測定値は(例えば測定値の順序付けに従って)T′のサイズの測定値よりも大きい。ここで、(T,T′)の対が三角形の順序の降順に従って順序付けられる場合、第1の三角形および第2の三角形に関して前述した通り、この順序付けにおいて、TはT′の前に来る。同様に、
前述のように2つの開三角形分割表面の候補を順序付ける場合、2つのうち、三角形の順序によって最もペナルティが与えられる(例えば、一番大きい)三角形を持つ候補に高いランクの辞書式順序が与えられる。前述のように、このような三角形は、外れ値で構成されるなど、点密度が低い3D点群の領域(例えば、メッシュの一部)を表し得る。辞書式順序で上位ランクにペナルティを与え、このような三角形を有する開三角形分割表面の候補を破棄することで、構造の一部分のスキンを正確に表す開三角形分割表面を検索でき、密度変動や外れ値による影響を受けにくくなる。これにより、ロバストかつ正確な方法となる。
例では、本方法では、決定された開三角形分割表面の三角形(例えば、三角形すべて、または、かなりの部分の三角形)が、可能な限り小さい三角形(すなわち、サイズが小さい)となり、これには形状が特に伸びすぎていない三角形、例えば、面積が比較的小さく、三角形の高さと底辺の比率が1に近い三角形も含まれる。実際、2つの三角形を比較する場合、三角形の順序は必ずしも2つのうち最も平らな三角形にペナルティを与えるわけではないが、辞書式順序が三角形の順序に基づいていれば、平らな三角形は可能な限り回避され得る。実際のところ、辞書式順序は、単一ペアの三角形ではなく、連鎖になった三角形(それぞれが開三角形分割表面を形成する)を比較し、可能な限り最小の三角形から構成される連鎖に報酬を付与しようとする(すなわち、下位ランクを与える)。単一ペアの三角形ではなく、三角形の連鎖を比較し、(例えば、大量の)大きな三角形を持つ連鎖にペナルティを与えると、実際には、決定された開三角形分割表面が(例えば一般的に)小さくて平ら過ぎない三角形からなる、という結果がもたらされ得る。このような三角形はスキンを表す。これにより、ロバストかつ正確な方法となる。
例では三角形の順序は、それぞれの三角形について、最小包含円、つまり、三角形の最小包含円の半径の高い値にペナルティを与える;
三角形の最小包含円は、三角形の点を包含するすべての円のうち、半径が最も小さい円のことである。三角形の最小包含円の半径は、三角形のサイズの測定に寄与し、最小包含円の半径の高い値にペナルティを与えることは、三角形のサイズにペナルティを与えることに寄与する。言い換えると、最小包含円の半径は、三角形のサイズの測定に寄与する実数値関数であり、前述のように三角形のサイズの測定の一部であってもよい。さらに、最小包含円の半径の高い値にペナルティを与えることは、三角形のサイズにペナルティを与える際に特に効率的でロバストな方法である。例えば、TおよびT′を2つの三角形とし、RB(T)およびRB(T′)をその各最小包含円の半径とする。この場合、これらの例では、不等式RB(T)<RB(T′)によって、T′はTよりもサイズが大きいということが把握される。サイズにペナルティを与えることは、この場合、三角形の順序において、T′にTよりも上位のランクを与えることであり得る。TおよびT′を三角形の順序の降順に従って互いに順序付けるということは、この場合、T′がTの前に来ることを意味する。
三角形の最小包含円は、三角形の点を包含するすべての円のうち、半径が最も小さい円のことである。三角形の最小包含円の半径は、三角形のサイズの測定に寄与し、最小包含円の半径の高い値にペナルティを与えることは、三角形のサイズにペナルティを与えることに寄与する。言い換えると、最小包含円の半径は、三角形のサイズの測定に寄与する実数値関数であり、前述のように三角形のサイズの測定の一部であってもよい。さらに、最小包含円の半径の高い値にペナルティを与えることは、三角形のサイズにペナルティを与える際に特に効率的でロバストな方法である。例えば、TおよびT′を2つの三角形とし、RB(T)およびRB(T′)をその各最小包含円の半径とする。この場合、これらの例では、不等式RB(T)<RB(T′)によって、T′はTよりもサイズが大きいということが把握される。サイズにペナルティを与えることは、この場合、三角形の順序において、T′にTよりも上位のランクを与えることであり得る。TおよびT′を三角形の順序の降順に従って互いに順序付けるということは、この場合、T′がTの前に来ることを意味する。
例では、三角形の順序は、同じ最小包含円を有する第1の三角形と第2の三角形に対し、外接円、すなわち(第1または第2の)三角形の外接円の半径の小さな値にさらにペナルティを与える。
三角形の外接円は、三角形の点を通る円である。三角形の外接円の半径は、三角形のサイズの測定に寄与し、外接円の半径の小さい値にペナルティを与えることは、後述する通り、特に最小包含円が同じ場合に、三角形のサイズにペナルティを与えることに寄与する。言い換えると、外接円の半径は、三角形のサイズの測定に寄与する実数値関数であり、前述のように三角形のサイズの測定の一部であってもよい。
前述のように、例では、各三角形Tのサイズは、Tの最小包含円の半径およびTの外接円の半径の逆数から構成される実数値関数の一対である、三角形のサイズの測定値によって測定される。測定値は、
によって与えられ得る。この場合、三角形の順序は、三角形のサイズの測定値の順序、たとえば、最小包含円の半径間の比較が優先され、最小包含円の半径が同じ場合にのみ、外接円の半径の逆数間の比較を行う順序であってもよい。例えば、TおよびT′を2つの三角形とする。
RB(T)<RB(T′)の場合、最小包含円の半径間の比較が優先されるため、測定値の順序では、T′のサイズの測定値
よりも大きい。最小包含円が同じ場合、つまり、RB(T)=RB(T′)である場合、外接円の半径の逆数間の比較が行われ、より具体的には
よりも大きい。この場合、Tのサイズの測定値がT′のサイズの測定値よりも測定値の順序で低いのであれば、T′は三角形の順序でTよりも上位のランクを有する。しかし、TおよびT′が三角形の順序の降順に従って互いに順序付けられる場合、TはT′の後にくる。
RB(T)<RB(T′)の場合、最小包含円の半径間の比較が優先されるため、測定値の順序では、T′のサイズの測定値
三角形の順序について例示する図2~5を参照して、三角形の順序をさらに詳しく説明する。
これらの図で例示される三角形の順序は、
と表され、2つの概念:最小包含円および外接円に基づく。最小包含円とは、一番小さい半径で、三角形の点を包含する円のことである。外接円は、三角形の3点を通る円である。三角形T想定し、最小包含円の半径はRB(T)と表され、外接円の半径はRC(T)と表される。
図2は、三角形Tを包含円および外接円と一緒に例示している。鈍角三角形であるため、
である。逆に、図3は3つの角が鋭角である三角形Tを例示している。これによって、包含円および外接円が一致し、よってRB(T)=RC(T)である。
三角形が整列した3点または一致する3点を特徴とする場合、外接円は定義されない。点群は性質が一般的なものであるため、この退化状況は本開示の範囲外である。2つの三角形をTおよびT′とし、その相対的な順序付け
は、次のように定義される
RB(T)<RB(T′)またはRB(T)=RB(T′)およびRC(T)>RC(T′)
であれば、
である。
つまり、包含円の半径RB(T)およびRB(T′)は、同じでないときは関係があり、そうでなければ、外接円の半径RC(T)およびRC(T′)が関係する。図4は、各半径RBをもとに順序付けた2つの鋭角三角形を例示している。図5は、2つの鈍角三角形を例示している。これら三角形は最小包含円の半径RB(点線)が同じであり、よって半径RCによって順序付けられる。
RB(T)<RB(T′)またはRB(T)=RB(T′)およびRC(T)>RC(T′)
であれば、
つまり、包含円の半径RB(T)およびRB(T′)は、同じでないときは関係があり、そうでなければ、外接円の半径RC(T)およびRC(T′)が関係する。図4は、各半径RBをもとに順序付けた2つの鋭角三角形を例示している。図5は、2つの鈍角三角形を例示している。これら三角形は最小包含円の半径RB(点線)が同じであり、よって半径RCによって順序付けられる。
この順序付けは、実際には、一対となった数値によって定義される辞書式順序である。
決定された開三角形分割表面は、所定のラベル2つによる四面体メッシュのラベル付けの一貫性に反する。したがって、開三角形分割表面を決定するステップS50は、候補の中から、ラベル付けの一貫性に反する開表面を選択する。決定するステップS50は辞書式順序の上位ランクにもペナルティを与えるため、決定するステップS50は候補の中から選択を行い、ラベル付けの一貫性に反しているものの中から、辞書式順序を最小とする、または、少なくとも最小とする傾向がある開表面を選択する。
以下でラベル付けについてさらに説明する。
ラベル付けとは、所定のラベル2つで、四面体メッシュをラベル付けすることである。つまり、四面体メッシュの各四面体にラベルが割り当てられる。外側の領域、つまり四面体メッシュによってメッシュ化されていない領域にも、ラベルは割り当てられ得る。ラベルは、例えば、各四面体が特定の色を持つように、色であってもよい。他の種類のラベルも使用され得る。
決定するステップS50は、ラベルを割り当てることを含み得る。例えば、決定するステップS50は、候補を探索する前に、四面体すべてに同じラベルを割り当てることを含み得る。次に、探索とペナルティを与えることにおいて、そのラベル付けが変数として使用され得る。すなわち、ラベル付けに反する開三角形分割表面の中から辞書式順序で最小である第2の開三角形分割表面を決定する際(S50)、決定するステップS50は、四面体のラベルを繰り返し修正することを含み得る。決定するステップS50は、例えば、四面体メッシュの三角形に訪問し、ラベル付けが一貫性を保つよう調整するために四面体のラベルを繰り返し変更することによって、ラベル付けの一貫性を確実にすることを繰り返し試み得る。この際、決定するステップS50は、この調整を実行することができない各三角形を繰り返し検出し得、そのような三角形を、決定する第2の開三角形分割表面の一部であるとして識別/報酬を付与し得る。
四面体の各三角形は、三角形が第1の開三角形分割表面に属するかどうかを規定する事項に関連付けられ得る。この事項は、三角形がどのようにラベル付けを尊重または反するかを規定し得る。第1の開三角形分割表面に属するとして規定された三角形は、異なるラベルを持つ2つの四面体を分離する場合にのみ、ラベル付けの一貫性を尊重する。第1の開三角形分割表面に属さないとして規定された三角形は、同じラベルを持つ2つの四面体を分離する場合にのみ、ラベル付けの一貫性を尊重する。決定するステップS50は、そのような事項を各三角形に割り当てることを含み得る。ラベル付けとは異なり、三角形のこの事項は、決定するステップS50の変数にはならない、つまり、決定によって事項は変更されない。言い換えれば、この事項はそれ自体がその制約をもたらす。
例では、事項は順列であってもよい。順列は、アイデンティティ(ident)またはスイッチ(「スワップ(swap)」とも呼ぶ)のいずれかである。第1の開三角形分割表面の各三角形にスイッチ/スワップが割り当てられると、これは、三角形が異なるラベルを持つ2つの四面体を分離する場合にのみ、ラベル付けの一貫性を尊重することを示す(つまり、三角形はラベル付けをスイッチする)。第1の開三角形分割表面の各三角形にアイデンティティが割り当てられると、三角形が同じラベルを持つ2つの四面体を分離する場合にのみ、ラベル付けの一貫性を尊重することを示す(つまり、三角形はラベルを維持する)。
決定された第2の開三角形分割表面はラベル付けの一貫性に反し、開三角形分割表面の各三角形が、ラベル付けの一貫性を尊重しないことを意味する。決定する第2の開三角形分割表面がラベル付けの一貫性に反するという要件は、以下でさらに説明するように、第2の開三角形分割表面が第1の開三角形分割表面と同じ境界を有することを保証する。決定するステップS50は、この要件を有する開三角形分割表面の候補を探索するので、決定するS50は、この要件を満たす開三角形分割表面の候補を選択する。第1の開三角形分割表面は、その三角形すべてがラベル付けをスイッチしてすでに要件を満たしているため、このような候補が存在する。次に、決定するステップS50は、候補が辞書式順序で最小である必要があるという追加要件とともに、要件を満たす別の候補を見つける。
ここで、決定するステップS50の例を説明する。
これらの例では、探索およびペナルティを与える前に、決定するステップS50は、例えば各四面体に同じラベルを割り当てるなど、四面体メッシュの各四面体にラベルを割り当てることを含み得る。探索およびペナルティを与える前に、決定するステップS50はまた、四面体メッシュの各三角形に順列を割り当てることを含み得、例えば、第1の開表面の各三角形にスイッチ順列を割り当て、残りの三角形にアイデンティティ順列を割り当てる。
探索とペナルティを与えることは、三角形の順序の降順で四面体メッシュの三角形に訪問することを含み得る。次に、探索およびペナルティを与えることは、ラベル付けの一貫性を維持できる限り、三角形の順序の上位ランクである訪問済みの三角形を破棄することを含み得る。
三角形への訪問では、三角形分割表面の候補の探索を実施する。三角形に訪問するたびに、三角形は破棄または保持される。特定の三角形分割表面の候補を探索するということは、四面体メッシュの三角形に訪問して保持または破棄する特定のやり方に対応することを意味する。訪問では、三角形の順序の降順に従って、三角形に訪問する。つまり、三角形の順序で最もランクの高い四面体メッシュの三角形、つまりメッシュの三角形の中で最大のサイズの三角形が第1に訪問される。次に、第2にランクの高い三角形が訪問され、以下同様に、ランクが最も低い三角形が最後に訪問される。三角形に訪問するたびに、三角形は保持、すなわち、決定された第2の開三角形分割表面に属するものとして選択されるか、または、破棄、すなわち、決定された第2の開三角形分割表面の一部にはならない。
ペナルティを与えることは、三角形の順序のランクが高い訪問済みの三角形を破棄する。これにより、決定された第2の開三角形分割表面が大きな三角形および/または平らな三角形を特徴として有することを回避でき、または、少なくとも、決定された第2の開三角形分割表面があまりにも多くの大きな三角形および/または平らな三角形を特徴として有することを回避できる。ただし、三角形を破棄するときにラベル付けの一貫性を維持できる場合にのみ、これら上位ランクの三角形をペナルティによって破棄する。これにより、上位ランクの三角形を使用せずとも、下位ランクの三角形を使用することで、ラベル付けの一貫性に反する第2の開三角形分割表面の決定がまだ可能であることが確実な場合に、これら上位ランクの三角形を廃棄することが可能になる。それにより、探索された三角形は、その三角形の存在のためにラベル付けの一貫性を維持することができない場合にのみ、報酬が付与される、すなわち、決定された第2の開三角形分割表面の一部であると決定される。三角形は三角形の順序の降順で探索されるため、これにより、大きな三角形や平らな三角形が、決定された第2の開三角形分割表面に属することを可能な限り回避できる。これらの三角形は最初/早い段階で探索され、探索されたときにラベル付けの一貫性に反している場合でも、これらの三角形に必ずしも報酬を付与することなく、ラベル付けの一貫性を維持する可能性がある。
破棄は、訪問した三角形ごとに、三角形がラベル付けの一貫性に反しているか、または尊重しているかどうかを評価することを含み得る。次に、破棄は、訪問した三角形ごとに、三角形がラベル付けの一貫性に反する場合、三角形に報酬を付与するか、一貫性を尊重するようにラベル付けを調整することを含み得る。三角形に報酬を付与するということは、その三角形を決定された第2の開三角形分割表面に追加する、つまり、三角形は最終的に、探索とペナルティを与えた後、決定された第2の開三角形分割表面に属することを意味する。このやり方の破棄によって、ラベル付けの一貫性に反する三角形に体系的に報酬を付与することを回避できる。探索された三角形がラベル付けの一貫性に反する場合、三角形に報酬を付与する必要がないように、一貫性を尊重するようにラベルを適合され得る場合がある。これは特に、最初/早い段階で探索される大きな三角形や平らな三角形の場合に当てはまり得る。ラベル付けを調整してもラベル付けの一貫性を再確立できない場合、一貫性に反する探索された三角形には必然的に報酬が付与される。これは特に、最後/遅い段階で探索される、大きさや平たさが低下した三角形の場合に当てはまる。
破棄は、訪問した三角形ごとに、例えば三角形がラベル付けの一貫性に反しているか尊重しているかどうかを評価した後、以下のことを含み得る。
三角形が同じ連結成分にある2つの四面体を分離し、かつラベル付けの一貫性に反している場合、三角形に報酬を付与すること;
三角形が異なる連結成分にある2つの四面体を分離している場合は:
・三角形がラベル付けの一貫性に反していたら、連結成分(つまり、連結成分のすべての四面体)のうち1つのラベルをスイッチし、連結成分を統合する(つまり、2つの連結成分はそれによって単一の連結成分を形成する)、
・三角形がラベル付けの一貫性を尊重していたら、連結成分を統合する(つまり、2つの連結成分を統合して単一の連結成分を形成する)。
三角形が同じ連結成分にある2つの四面体を分離し、かつラベル付けの一貫性に反している場合、三角形に報酬を付与すること;
三角形が異なる連結成分にある2つの四面体を分離している場合は:
・三角形がラベル付けの一貫性に反していたら、連結成分(つまり、連結成分のすべての四面体)のうち1つのラベルをスイッチし、連結成分を統合する(つまり、2つの連結成分はそれによって単一の連結成分を形成する)、
・三角形がラベル付けの一貫性を尊重していたら、連結成分を統合する(つまり、2つの連結成分を統合して単一の連結成分を形成する)。
連結成分とは、四面体と共有される三角形の集合であり、集合内の四面体の対ごとに、集合内の隣接する四面体(つまり、四面体2つずつで三角形を共有する)のパスが存在し、パスは対となる四面体を接続し、パス内の各三角形がラベル付けの一貫性を尊重する。このやり方で破棄を実行すると、本方法は、三角形が同じ連結成分の四面体を分離する場合にラベル付けの一貫性に反する三角形のみに報酬を付与する。これにより、三角形で分離された連結成分のラベル付けをスイッチしてもラベル付けの一貫性を再確立できない場合にのみ、ラベル付けの一貫性に反する三角形に報酬を付与することが可能になる。これにより、ランクの低い三角形は最後/遅い段階に探索されるため、探索されてラベル付けの一貫性に反している場合、スイッチを実行して一貫性を再確立する可能性はなく、ランクの低い三角形に報酬を付与することができる。
探索およびペナルティを与える前述のやり方について、任意の適切な実施形態を使用してもよい。例えば、四面体メッシュの双対グラフを使用し得る。四面体メッシュの双対グラフの概念そのものは公知である。双対グラフとは、ノードと、ノードを連結するアークを持つグラフであり、各ノードは四面体メッシュの四面体を表し、2つのノードで表される四面体が三角形を共有する場合、各アークは2つのノードを連結し、共有三角形はアークによって表される。外側の領域を表すために新たなノードが追加され、外側の領域に面している各三角形は、双対グラフではエッジで表される。三角形は、特に次のように訪問され得る:対応する三角形の三角形の順序による重みを双対グラフの各アークに関連付け、そして、外側の領域に三角形を連結するアークから始めて三角形の重みの降順に相対グラフのアークに訪問する。
次に、本方法の実施について説明する。
この実施により、一部の境界として1つ以上のループが与えられたとして、少なくとも部分的に3D点群で表される現実のシーンの構造の一部分のスキンを形成する開三角形分割表面を決定することが可能になる。3D点群は、非常に多数の点を含んでもよく、不完全である可能性があり(例えば、1つ以上の穴がある)、および/または、エラーが発生しやすい可能性がある。それでも、この実施は成功する。3D点群は、密度変化を特徴とし得、例えば、その密度変化は非常に大きい場合もある。それでも、この実施は成功する。また、空間にランダムに広がる間違った点の低密度集合である外れ値を特徴とする場合もある。それでも、この実施は成功する。さらに、構造の実際の形状および/または現実のシーンの滑らかさが不明な場合もある。それでも、この実施は成功する。
言い換えると、この実施は、密度変動に関係なく、妥当な計算時間で、そのような点群から第2の開三角形分割表面を計算する。したがって、この実施はロバストであり、パラメータの調整を含まない。
図6は本方法の実施のフローチャートを示す。図6に示すように、この実施は、3D点群を提供するステップS10を含む。3D点群はユーザによって提供される。この実施は、3D点群の3Dドロネー四面体メッシュを計算するすステップS20をさらに含む。点群には3次元の点が含まれているため、結果として得られるドロネーメッシュは、隣接する四面体で構成され、各四面体は4つの三角形で囲まれる。この実施は辞書式順序を定義することをさらに含み、これには、ドロネー四面体メッシュの三角形の三角形重みを提供(例えば、計算)し、四面体メッシュの双対グラフを提供することが含まれる。ドロネー三角形分割の双対グラフの概念は、それ自体が公知であり、すでに上記で説明されている。このグラフは、三角形の共有を通じて四面体の隣接関係を捉える。この実施はさらに、それぞれがドロネーメッシュの三角形を表す双対グラフのアークを、三角形の重みによって順序付けることを含む。よって、双対グラフの各ノードはメッシュの四面体を表し、双対グラフの各アークはメッシュの三角形を表し、双対グラフの各アークは、辞書式順序での対応する三角形のランクでラベル付けされる。この実施は特に、以下で説明するように、決定するステップS50を実行するときに、双対グラフのアークを降順で探索する。
引き続き図6のフローチャートを参照すると、この実施は、第1の開三角形分割表面に所定の境界を提供することをさらに含む。第1の開表面は、ユーザによって直接提供され得る。あるいは、第1の開表面の提供は、所定の境界を定義する1つ以上のループを提供するステップS30を含み得る。1つ以上のループを提供するステップS30は、前述のように、ユーザによって、または、自動的に実行され得る。1つ以上のループが与えられた場合に、実施は次に、ドロネー四面体メッシュ内の三角形の集合で構成され、その境界が与えられた境界と一致する第1の開表面を決定するステップS40を含み得る。
引き続き図6のフローチャートを参照すると、ドロネー三角形分割の順序付けられた双対グラフのアークおよび第1の開三角形分割表面が与えられると、実施は、第1の開三角形分割表面の三角形を表す、第1の開三角形分割表面の双対アークを識別することを含む。次に、この実施は、双対グラフとその順序付けられたアーク、および、識別された第1の開三角形分割表面の双対アークに基づいて、構造の一部分のスキンを表す第2の開三角形分割表面を決定するステップS50を実施する還元アルゴリズムを含み、それにより、スキンを表す再構成された開表面が得られる。第1の開三角形分割表面は、その境界によってのみ制約され、一般に、最も点密度の高い領域を経ていない。しかし、還元アルゴリズムに入力として与えられた場合、このアルゴリズムは、同じ境界を持つ最適な表面(つまり、辞書式順序を最小とし、点密度の最も高い領域を経ることに関して)を決定する(S50)。還元アルゴリズムは、残った双対アークが、スキンを表す再構成された第2の開三角形分割表面である開三角形分割表面を定義するように、双対グラフのアークを破棄する。
この実施は、特に、開表面、つまり境界のある表面を作成する必要がある3D再構成適用に適用される。この場合、点群が与えられると、この実施は、ユーザの操作時、または自動的に、点群内の頂点とともに1つまたは複数のポリゴンループ(つまり、閉じたポリライン)で構成される境界を提供する。この実施により、頂点が点群に属し、境界が指定のループと一致する開いたメッシュを作成できる。この実施では、特にLIDARデータから地形を表す開表面をメッシュ化することが可能になり、また、この実施では境界を管理できるため、隣接する地形領域間で共通の境界を適用することが可能になる。この実施の適用について、以下でさらに詳しく説明する。
実施に含まれるアルゴリズムを詳しく説明する前に、実施のアウトラインについて簡単に説明する。
実施ではサイクルが動作する。3次元ドロネー複体の1-サイクルは、ループの和集合、つまり、各頂点が偶数の数のエッジに属するようなエッジの集合である。2次元ドロネー複体の0サイクルは、偶数の数の頂点である。図7~9は、1次元少ない、すなわち、2次元ドロネー複体での、所定の境界における辞書式順序が最小のチェインを見つける方法の実施を示している。この2Dの図では、エッジの全順序は、エッジの長さを比較することを含む。図7は、S30で提供されるループAを示しており、ループAは、4つの頂点からなり、図7では大きな丸点で示されている。図8は、境界としてループAを有する開表面を決定するステップS40を示し、決定するステップS40は、提供された集合Aを境界付ける、つまり、境界としてAを有するチェインΓ0を計算することを含み、すなわち、代数表記では∂Γ0=Aである。図8では、チェインΓ0が点線で示されている。この決定するステップS40を実施するためのアルゴリズムは、以下でさらに議論するが、前述のように、代替の適切なアルゴリズム、例えば、代替の幾何学的アルゴリズムの適切な組み合わせも、使用され得る。図9は、決定するステップS50を示し、第1のステップの結果として得たチェインΓ0を想定し、Γ0と同じ境界を有する(実際にはホモロジーである)辞書式順序の最小チェインΓを計算することを含み、すなわち、代数表記では、∂Γ=∂Γ0=Aである。チェインΓは、図9では点線のポリラインで示されている。この決定するステップS50を実施するアルゴリズムは、以下でさらに説明する。
ここで、本実施に関する概念について説明する。
単体複体
の点の独立群
を考える。Aをもつd単体σは、すべての点の集合であり、
および
である。Aの部分集合を持つ単体はどれもσの面と呼ぶ。単体複体Kは、単体Kの面すべてがKにあり、Kの単体2つの共通部分が空または共有面であるような、単体の集合である。単体複体の次元は、その単体の最大次元である。グラフは1次元の単体複体として定義され得るため、単体複体はグラフを一般化する。d次元の単体複体は、その単体複体がd次元であり、どの単体も、d次元の共面を少なくとも1つ有しているとき、純であると言う。
単体チェイン
Kを少なくともd次元の単体複体とする。チェインの概念は、あらゆる環において係数で定義され得るが、本願では、その定義は、体
の係数に限定される。
の係数を有するdチェインAは、d単体の形式和である:
Cd(K)を複体Kにおけるdチェインの体
のベクトル空間とする。単体σiを前に係数
をチェインAにおけるσiの存在として解釈すると、dチェインAは、単体の集合として見られ得る:d単体σおよびdチェインAに関して、Aのσの係数が1である場合、
と書ける。この規則では、2つのチェインの和はその集合上での対称差に対応する。以下では、d単体σは、d単体σのみを含むdチェインとしても解釈され得る。
Kを少なくともd次元の単体複体とする。チェインの概念は、あらゆる環において係数で定義され得るが、本願では、その定義は、体
<辞書式順序>
Kのd単体、σ1<・・・・・σnに対して全順序とし、ここで、n=dimCd(K)とする。この順序から、dチェインの辞書式全順序が次のように定義される。
この全順序は本来Cd(K)の狭義全順序
に及ぶ。本開示の文脈において、四面体メッシュの三角形分割表面の辞書式順序は、四面体メッシュの三角形上の三角形の順序によって誘導され、これは、四面体メッシュの三角形上の全順序である。
Kのd単体、σ1<・・・・・σnに対して全順序とし、ここで、n=dimCd(K)とする。この順序から、dチェインの辞書式全順序が次のように定義される。
問題:所定の境界の辞書式最適チェイン(LOCGB)
この実施では、次の問題が想定される。
この実施では、次の問題が想定される。
問題2では、∂dΓ0=Aとなるような、集合
における代表Γ0を見つければ十分であるが、問題1を解き、∂dFmin=∂dΓ0=Aとなるような最小dチェインΓminを見つけることが残る。後述する通り、この実施は、2段階で問題2を解いて、スキンを表す開三角形分割表面を計算する:1つ以上のループAを与えられたとき、決定するステップS40は、∂dΓ0=Aとなるような集合
における代表Γ0を見つける。次に、決定するステップS50は、問題1を解いて、開三角形分割表面として∂dFmin=∂dΓ0=Aとなるような最小dチェインΓminを決定する。
<d擬多様体>
d擬多様体とは、純であるd次元の単体複体であって、各(d-1)面がちょうど2つのd次元の共面を有する単体複体である。
d擬多様体とは、純であるd次元の単体複体であって、各(d-1)面がちょうど2つのd次元の共面を有する単体複体である。
<双対グラフ>
d擬多様体Mの双対グラフとは、その頂点がMのd単体と1対1で対応し、そのエッジがMの(d-1)単体と1対1で対応するグラフである。エッジeが、頂点v1およびv2に対応する共面を有する(d-1)面に対応する時にのみ、エッジeはグラフの2つの頂点v1およびv2を連結する。
d擬多様体Mの双対グラフとは、その頂点がMのd単体と1対1で対応し、そのエッジがMの(d-1)単体と1対1で対応するグラフである。エッジeが、頂点v1およびv2に対応する共面を有する(d-1)面に対応する時にのみ、エッジeはグラフの2つの頂点v1およびv2を連結する。
<強連結のd擬多様体>
強連結のd擬多様体とは、その双対グラフが連結しているd擬多様体のことである。
強連結のd擬多様体とは、その双対グラフが連結しているd擬多様体のことである。
<双対境界作用素>
グラフGを1-次元の単体複体と見なし、双対境界作用素
グラフGを1-次元の単体複体と見なし、双対境界作用素
頂点
問題1を解いて、前述のとおり決定するステップS50を実施するためのアルゴリズムをここで説明する。この議論では、Mを、そのdホモロジーが自明である強連結の(d+1)擬多様体として想定される単体複体とする。本実施では、Mは、3Dドロネー複体の完成、すなわち、四面体メッシュ化によって得られた、
の特定の三角形分割である。まず、問題1の再定式化を行う。
問題の再定式化1
一般的な場合と同様に、実施では、∂dΓ0=AとなるようなdチェインΓ0を最初に決定する(ステップS40に対応)ことで問題2の解を見つけ、そして、問題1を解決する(ステップS50に対応)。Mは、自明なdホモロジーを有すると想定され、これは、dサイクルが全て境界であると表現され得る。
一般的な場合と同様に、実施では、∂dΓ0=AとなるようなdチェインΓ0を最初に決定する(ステップS40に対応)ことで問題2の解を見つけ、そして、問題1を解決する(ステップS50に対応)。Mは、自明なdホモロジーを有すると想定され、これは、dサイクルが全て境界であると表現され得る。
<ラベル付け>
本実施において、ラベル付けとは、色付けのことであるが、他の同様のラベル付けが使用されてもよい。ラベル付けには2つの所定のラベルがあり、これは、2つの要素、それぞれ「青」および「赤」を意味するアルファベット{b,r}、および順列の集合σ{b,r}={ident,swap}であり、ident(b)=b、ident(r)=r、swap(b)=r、swap(r)=bと定義される。
本実施において、ラベル付けとは、色付けのことであるが、他の同様のラベル付けが使用されてもよい。ラベル付けには2つの所定のラベルがあり、これは、2つの要素、それぞれ「青」および「赤」を意味するアルファベット{b,r}、および順列の集合σ{b,r}={ident,swap}であり、ident(b)=b、ident(r)=r、swap(b)=r、swap(r)=bと定義される。
<拡大グラフ>
拡大グラフは(ν,ε,π)の3つであり、(ν,ε)は(可能性として非連結な)グラフであり、
は、グラフの各エッジにσ{b,r}の順列を関連付ける。エッジの部分集合
として、ε′のエッジのみを保持して得た拡大グラフは(ν,ε′,π)と表され、この場合、順列の割り当てはπをε′に制限することである。
拡大グラフは(ν,ε,π)の3つであり、(ν,ε)は(可能性として非連結な)グラフであり、
この場合、グラフは、ラベル付けの一貫性を尊重する、と言ってもよい。
<有効なカット>
拡大グラフ(ν,ε,π)を想定し、
が満足のいく割り当てを承認する場合、エッジの集合
を、(ν,ε,π)の有効なカットと呼ぶ。εは自明の有効なカットであるため、有効なカットの集合は空ではない。
拡大グラフ(ν,ε,π)を想定し、
問題1.2を解決するために、別の問題も考えられ得る。
補助定理1:問題1.2の解は、拡大グラフ(ν,ε,πΓ0)に関する問題1.3の解である:
次の割り当てを考慮する:
Lを
に関して満足のいく割り当てとする。満足のいく割り当ての定義により、
である場合、eは、その頂点のラベル付けと一貫している。その時に、
である場合、Γは有効なカットのうち最小であるため、
は頂点のラベル付けと一貫していないことがまず観察され、もしそうであれば
が再度有効なカットとなり、Γの最小性と矛盾するためである。
これにより、補助定理が証明される。
さらに、Lが
に関して満足のいく割り当てである場合、以下に示す2つの1つのケースの場合でのみ、Γminは
の辞書式で最小の有効なカットである:
a)
v1およびv2は
の同じ連結成分内にあり、および
は
と一貫している。
b)v1およびv2は
の同じ連結成分にない。
a)
v1およびv2は
b)v1およびv2は
補助定理2の証明
Γminを(ν,ε′,π)の辞書式で最小の有効なカット、および
を
の辞書式で最小の有効なカットとする。
は満足のいく割り当てを承認し、および
であるため、同じ割り当ては
を満たす。そうすると、
は(ν,ε′,π)に関して有効なカットであるため、
である。
v1およびv2が(ν,ε′)の同じ連結成分にある場合、
が
と一貫していなければ、v1およびv2を連結する、
のパスe1,...,enでeの閉じたパスの結合を考慮する。
であるので、
である。
は閉じたパスなので、所見3は、
が満足のいく割り当てを承認しないことを示す。
ここで、v1およびv2が
の同じ連結成分にあり、
がLに一貫している場合、Lは再度
に関して満足のいく割り当てであり、Γminは
に関して有効なカットである。
はΓminまたは
と同等であるため、この場合、
である。
これにより、補助定理2が証明される。
決定するステップS50を実施する還元アルゴリズムについて説明する。アルゴリズムは、考察した上記問題1、2および1.1~1.3の一般的な文脈で示される。S20で計算したドロネー四面体メッシュの双対グラフGへ適用は、双対グラフで第1の開三角形分割表面に属する各エッジにスワップ順列を、他の各エッジにアイデンティティ順列を関連付けるπによる。
還元アルゴリズムは、次の擬似コードで説明される。
アルゴリズムは、インプットとして辞書式順序にそって降順に分類されたエッジの集合を受け取る。連結成分の代表的なrへのSwapCCオペレーションは、所見2または補助定理2の通り、その要素全てのラベルをスワップすることを含む。アルゴリズム2は、降順でエッジに訪問し、これによって、準線形時間でΓminを確立することが可能になる。最初は、
であるため、辞書式で最小の有効なカットはどれもΓminを含んでいなくてはいけない。この特性は、各ステップで有効であり続け、次のエッジeを探索する際、現行のΓminをe以下のエッジの集合と結合することは、有効なカットとして知られている。この理由により、eをΓminに挿入する決断は、Gのより小さなエッジの集合に影響されない。単一のパスでΓminを確立することが可能になるこの特性は、降順でエッジ処理することを理解されたい。
提案1:アルゴリズム1は、所定の拡大グラフ(ν,ε,π)に関して、問題1.3の解を計算する。インプットであるエッジの集合εが分類されていることを想定すると、アルゴリズムは、O(nα(n))の時間計算量を有し、式中、nはεの基数であり、αはアッカーマン関数の逆数である。
命題1の証明:
MakeSet、FindSet、UnionSetは互いに交わりをもたない集合のデータ構造に対する標準的なオペレーションであるが、SwapCCを単純に実施すると、連結成分の各要素に対して基本的なオペレーションが必要となる。ただし、互いに交わりをもたない集合のデータ構造を変形させると、ほぼ一定の時間計算量での実施が可能になる。
MakeSet、FindSet、UnionSetは互いに交わりをもたない集合のデータ構造に対する標準的なオペレーションであるが、SwapCCを単純に実施すると、連結成分の各要素に対して基本的なオペレーションが必要となる。ただし、互いに交わりをもたない集合のデータ構造を変形させると、ほぼ一定の時間計算量での実施が可能になる。
そのための1つの可能性としては、基本連結成分のペアによって連結成分を実施することであり、基本連結成分から、1つは「青」、1つは「赤」を含むペアに向かうマップを使用する。変更されたMakeSetオペレーションは、次に、青成分に頂点1つ、空の赤成分に頂点1つとなるペアを作成する。変更されたFindSetオペレーションは、標準のFindSetオペレーションを適用し、マップを使用してそれを含むペアを返す。2つのペアになった連結成分間において、変更されたUnionSetオペレーションは、それぞれの「青」と「赤」の基本連結成分に標準のUnionSetオペレーションを適用し、その結果を新しくペアになった連結成分にペアリングする。そうすれば、SwapCCは、ペアになった連結成分内の「青」と「赤」の基本連結成分をスワップすることのみを含む。
このオペレーションの実施方法は、標準的な互いに交わりをもたない集合のデータ構造をブラックボックスとして使用するため、実践では便利である。ただし、基本連結成分からそれを含むペアへのマップは、計算量にlog(n)要因を増やし得る。互いに交わりをもたない集合のデータ構造のnα(n)計算量は、その実施を適応させるつもりであれば、維持され得る。簡単に説明すると:計算量を変えることなく、互いに交わりをもたない集合のデータ構造の中心にある各「親」関係に{ident,swap}の属性を付加することができる。この属性は、ノードとその親の色が同じか異なるかを表す。
MakeSetは、自らが親であり、この関係に関連付けられた属性がアイデンティティ(ident)である、1つの要素を有する連結成分を作成する。この属性は、それ自体が代表である頂点の色が「青」であることを意味する。次に、FindSetオペレーションは、次に、代表からそれ自体への最後の関係を含むパスに沿った順列を構成する必要があり、これは「青」に対する代表の色を定義する:この構成を色「青」に適用することによってノードの実際の色を決定する。UnionSetは、その親の代表1つに、それぞれの色に必要な属性、アイデンティティ(ident)またはスワップ(swap)を関連付ける。SwapCCは、代表の色のみをスワップ、つまり、自身の親として関係に関連付けられた属性にスワップを適用する。
これにより命題1が証明される。
次に、アルゴリズム1について、ドロネー三角形分割の双対グラフ上で実行されるアルゴリズム1の例を示す図10から32を参照してさらに説明する。各図で、双対グラフへのアルゴリズムの現行のステップを示す図とともアルゴリズムを示しており、現行のステップは、図の適切な場所において丸で囲まれている。
図10は、ドロネー三角形分割をグラフで表したものである。エッジは三角形を表し、エッジで接続された点は四面体を表す。エッジ
は、四面体1つを三角形分割の外側から分離する三角形をそれぞれ表す。残りのエッジには7から1までの番号が付けられ、三角形の順序の降順に対応する:エッジ7は三角形の順序でランクが高い三角形を表し、エッジ6は三角形の順序で第2にランクが高い三角形を表す、などである。大きな線で示されているエッジ、つまりエッジ7、5、および2は、第1の開三角形分割表面の三角形を表している。アルゴリズム1は、エッジ7、5、および2で表される三角形によって形成されるパスと同じエンドポイントを有する三角形の辞書式最小パスを検出する。
図11および12は、図10に示す三角形分割の双対グラフを示す。図11では、双対グラフは三角形分割と重ね合わせられており、図12では、双対グラフのみが示されている。双対グラフのエッジは、図10に示す対応する三角形と同じ番号でラベル付けされている。
第1の開三角形分割表面の三角形を表すエッジ7、5、および2は、図13では、太い線で強調されている。この表現は、次の図では省略される。エッジ7、5、および2には、スイッチ/スワップ順列が割り当てられている。他のエッジには、アイデンティティ順列が割り当てられている。
図14は、アルゴリズムの第1のステップを示しており、双対グラフの頂点すべてが同じラベル「b」で割り当てられる。もう1つのラベルは「r」で、まだどの頂点にも割り当てられていない。これらの頂点は、図14では大きな丸点で表されている。決定された第2の開三角形分割表面の三角形のすべての双対エッジを最終的に含む解Γminは、空として初期化される。
図15は、アルゴリズムの次のステップを示している。エッジ
が最初に訪問される。これらはすべてアイデンティティ順列が割り当てられており、すべての頂点はこのステップの時点でラベル「b」が割り当てられているため、ラベル付けの一貫性を尊重する。したがって、これらのエッジで分離された双対グラフの連結成分は統合され、これらのエッジはΓminに追加されない。
図16および17は、アルゴリズムの次のステップを示している。エッジ7を訪問する。エッジ7は、同じラベルを持つ2つの四面体を分離する一方でスワップ順列が割り当てられるため、ラベル付けの一貫性に反していると識別される。さらに、エッジ7は、2つの異なる連結成分に属する2つの四面体を分離する。したがって、図17に示されるように、2つの連結成分のうちの1つのラベルがスワップされ、次いで、2つの連結成分が統合される。スワップの結果、頂点にラベル「r」のラベルが付けられ、これらの頂点は、図17および次の図では小さな灰色の丸点で示される。エッジ7はΓminに追加されない。つまり、エッジ7は破棄される。
図18および19は、アルゴリズムの次のステップを示している。エッジ6を訪問する。エッジ6は、異なるラベルを持つ2つの四面体を分離する一方で、アイデンティティ順列が割り当てられるため、ラベル付けの一貫性に反していると識別される。さらに、エッジ6は、2つの異なる連結成分に属する2つの四面体を分離する。したがって、図19に示されるように、2つの連結成分のうちの1つのラベルがスワップされ、次いで、2つの連結成分が統合される。エッジ6はΓminに追加されない。つまり、エッジ6は破棄される。
図20および21は、アルゴリズムの次のステップを示している。エッジ5を訪問する。エッジ5は、同じラベルを持つ2つの四面体を分離する一方でスワップ順列が割り当てられるため、ラベル付けの一貫性に反していると識別される。さらに、エッジ5は、2つの異なる連結成分に属する2つの四面体を分離する。したがって、図21に示されるように、2つの連結成分のうちの1つのラベルがスワップされ、次いで、2つの連結成分が統合される。エッジ5はΓminに追加されない。つまり、エッジ5は破棄される。
図22および23は、アルゴリズムの次のステップを示している。エッジ4を訪問する。エッジ4は、異なるラベルを持つ2つの四面体を分離する一方で、アイデンティティ順列が割り当てられるため、ラベル付けの一貫性に反していると識別される。さらに、エッジ4は、同じ連結成分に属する2つの四面体を分離する。よって、図23に示す通り、エッジ4は、解Γminに追加される(図23ではエッジ4の切断によって表される)。言い換えれば、エッジ4には報酬が付与される。
図24は、アルゴリズムの次のステップを示している。エッジ3を訪問する。エッジ3は、同じラベルを持つ2つの四面体を分離する一方でアイデンティティ順列が割り当てられるため、ラベル付けの一貫性に反していないと識別される。したがって、図24に示すように、エッジ3は解Γminに追加されない。つまり、エッジ3は破棄される。エッジ3が分離する2つの四面体は、すでに同じ連結成分にある。
図25および26は、アルゴリズムの次のステップを示している。エッジ2を訪問する。エッジ2は、同じラベルを持つ2つの四面体を分離する一方でスワップ順列が割り当てられるため、ラベル付けの一貫性に反していると識別される。さらに、エッジ2は、同じ連結成分に属する2つの四面体を分離する。よって、図26に示す通り、エッジ2は、解Γminに追加される(図26ではエッジ2の切断によって表される)。言い換えれば、エッジ2には報酬が付与される。
図27および28は、アルゴリズムの次のステップを示している。エッジ1を訪問する。エッジ1は、異なるラベルを持つ2つの四面体を分離する一方で、アイデンティティ順列が割り当てられるため、ラベル付けの一貫性に反していると識別される。さらに、エッジ1は、同じ連結成分に属する2つの四面体を分離する。よって、図28に示す通り、エッジ1は、解Γminに追加される(図28ではエッジ1の切断によって表される)。言い換えれば、エッジ1には報酬が付与される。
図29は、アルゴリズムの終了を示しており、すべてのエッジが訪問された。図30は、報酬を付与されたエッジ4、2および1を含む出力を示している。図31および32は、対応する出力三角形4、2および1を示している。出力三角形は、図31および32で太い黒線として示され、決定された第2の開三角形分割表面を形成する。
次に、境界として1つ以上のループを有する第1の開三角形分割表面を決定するステップS40を実行するためのアルゴリズムについて説明する。アルゴリズムは、
の点群のドロネー複体の1サイクルAが与えられた時に、
となるようなドロネー複体の2チェインΓ0を計算する場合のために説明される。ドロネー複体が四面体メッシュであり(例えば、S20として計算される)、S30で提供される1つ以上のループによって1サイクルが形成される場合にアルゴリズムを適用すると、第1の開三角形分割表面を決定するステップS40を実施する。
このアルゴリズムをさらに説明する前に、ドロネー複体の概念について詳細に説明する。
<ドロネー複体>
(有限の)点の集合
のドロネー複体Del(V)は、点集合の凸包のドロネー三角形分割の四面体、三角形、エッジ、および頂点で構成される単体複体であり、ユークリッド空間
におけるボロノイ図の双対である。(例えば、全次元のボロノイセルの集合に適用される脈体定理により)ドロネー複体Del(V)は可縮であることが知られている。自明な1-ホモロジーを有するため、Del(V)の1サイクルはどれも、Del(V)の2チェインの境界である。
アルゴリズムが実行するタスクは、次のように再定式化できる。ドロネー複体のエッジの集合Aであり、複体の各頂点が、Aにおいて、例えば0または2といった偶数の数のエッジによって共有されるようなエッジの集合を想定し、この例は、多くの実践的な適用で発生する。アルゴリズムは、三角形の集合Γ0を探し、AのどのエッジもΓ0の奇数(例えば、1)の三角形で共有され、AにないエッジはどれもΓ0の偶数(例えば、0または2)の三角形で共有されるような集合を探す。ドロネー複体が自明な1ホモロジーを有するということは、選択されたAが何であれ、そのようなΓ0が存在することを正確に意味する。図8は、2次元にループAが与えられた場合の解Γを示している。
3Dドロネー複体の頂点の下位リンク
単体複体Kの単体τのリンク
とは、
および
であるような、すべての単体
で構成された単体複体である。
Del(V)を、Vの頂点のどのペアも同じz座標を持たないような、
の頂点の集合Vのドロネー複体であるとする。頂点
の下位リンクllk(Del(V))(a)は、頂点のz座標すべてがaのz座標よりも小さい、リンクlk(Del(V))(a)のすべての単体で構成された単体複体である。
単体複体Kの単体τのリンク
Del(V)を、Vの頂点のどのペアも同じz座標を持たないような、
図33は、頂点330のリンク332、および頂点330の下位リンク334を示しており、軸はz座標を示している。
Del(V)が3次元の場合、頂点aのリンクlk(Del(V))(a)と下位リンクllk(Del(V))(a)は2次元の単体複体である。aを含むDel(V)の各四面体はlk(Del(V))(a)に三角形を生成し、aを含むDel(V)の各三角形はlk(Del(V))(a)にエッジを生成し、aを含むDel(V)の各エッジはlk(Del(V))(a)に頂点を生成する。これらの三角形またはエッジは、その頂点すべてのz座標がaのz座標zaよりも小さい場合にllk(Del(V))(a)に属する。
Del(V)が3次元の場合、頂点aのリンクlk(Del(V))(a)と下位リンクllk(Del(V))(a)は2次元の単体複体である。aを含むDel(V)の各四面体はlk(Del(V))(a)に三角形を生成し、aを含むDel(V)の各三角形はlk(Del(V))(a)にエッジを生成し、aを含むDel(V)の各エッジはlk(Del(V))(a)に頂点を生成する。これらの三角形またはエッジは、その頂点すべてのz座標がaのz座標zaよりも小さい場合にllk(Del(V))(a)に属する。
図34は、頂点aの下位リンクLLを示している。
それ自体が公知である通り、位相空間、特に単体複体は、1点のホモトピー類を持っている場合、可縮であると言われる。特に、可縮単体複体Kは連結、つまり、Kの頂点のペアはどれもKのエッジのパスによって連結される。S40を実施するアルゴリズムは、ドロネー複体では、頂点の下位リンクが空または可縮であるという事実を組み込んでいる。具体的には、次の補助定理が成り立つ。
aのz座標がVで最小でない場合は、llkDel(V)(a)は可縮である。
<補助定理3の証明>
aの座標zをzaと表す。ドロネー三角形分割とllkDel(V)(a)の定義により、llkDel(V)(a)の頂点とaのボロノイセルの境界に寄与する(おそらく境界のない)ファセットは1対1で対応する。
aの座標zをzaと表す。ドロネー三角形分割とllkDel(V)(a)の定義により、llkDel(V)(a)の頂点とaのボロノイセルの境界に寄与する(おそらく境界のない)ファセットは1対1で対応する。
定義上、z座標vzを持つ頂点vは、そのボロノイセルがaのボロノイセルと共通の境界を持ち、vz<zaである場合に限り、aの下位リンクにある。したがって、aのボロノイセルは、aを含む半空間に含まれ、aおよびvの平面二等分線によって境界付けられる。よって、このような頂点は、aから始まって負のzに向かう垂直の半直線が、aのボロノイセルに含まれていない場合にのみ存在する。aから始まって負のzに向かう垂直の半直線は、aがVにおいて最小zを有している場合にのみ、aのボロノイセルに含まれていることがわかり、第1の供述が証明される。
aのボロノイセルの下位エンベロープは、aの下位リンクのa頂点に対して双対であるファセットの和集合である。この下位エンベロープが空でない場合、水平面への投影は、2次元凸ポリトープと同相写像である。したがって、この下位エンベロープは可縮である。vの下位リンクはボロノイセルの下位エンベロープのファセットの集合の脈体であるため、補助定理の第2の供述は脈体定理に従う。
aのボロノイセルの下位エンベロープは、aの下位リンクのa頂点に対して双対であるファセットの和集合である。この下位エンベロープが空でない場合、水平面への投影は、2次元凸ポリトープと同相写像である。したがって、この下位エンベロープは可縮である。vの下位リンクはボロノイセルの下位エンベロープのファセットの集合の脈体であるため、補助定理の第2の供述は脈体定理に従う。
これにより、補助定理3が証明される。
ここで、S40を実施する、3次元ドロネー複体の所定の境界に対して2チェインを計算するためのアルゴリズムについて説明する。
アルゴリズムは、次の擬似コードで説明される:
<アルゴリズム2:所定の境界の三角形の集合を見つける>
インプット:ドロネー複体Del(V)および境界がゼロのDel(V)のエッジの集合A0
アウトプット:∂Γ0=A0となるようなDel(V)の三角形の集合
つまり、2サイクルA0が与えられると、アルゴリズム2は、∂Γ0=A0なるような2チェインΓ0を計算する。実際の実施ではベクトルではなく集合を操るため、ゼロのチェインまたはサイクルは、代数の「0」ではなく集合の理論上の表現
で示す。ただし、2を法とする加算は、やや重い互いに交わりをもたない和の表記を避けるために「+」で示す。例えば、代数式:
集合の理論上の表現:
を意味する。
<アルゴリズム2:所定の境界の三角形の集合を見つける>
インプット:ドロネー複体Del(V)および境界がゼロのDel(V)のエッジの集合A0
アウトプット:∂Γ0=A0となるようなDel(V)の三角形の集合
<アルゴリズム2の原理と正確性>
次に、アルゴリズム2の原理および正確性について、アルゴリズムを説明する図35から37を参照して説明する。Γ0は空集合として初期化され、AはA0として初期化される。Aが空の場合、アルゴリズムはリターンを行う。そうでない場合、プロシージャGetHighestVertex(A)は、最大z座標を持つAの最も高い頂点であるaを返す。
Aはサイクルであるため、その境界は定義上ゼロである。図35に示されるように、Aの偶数の数のエッジは、aを、プロシージャGetAdjacentVertices(a,A)によって返されるDel(V)のaの下位リンクllk(Del(V))(a)の頂点の集合Vaと連結する。
aはVの最も高い頂点であるため、Vaの頂点はaの下にあり、aにエッジで連結される。よって、Vaは下位リンクllk(Del(V))(a)の頂点の部分集合である。この集合は空ではなく、Aがサイクルであるため、カーディナリティを有する。プロシージャGetLowerLink(a,Del(V))は、Del(V)のaの下位リンクの1スケルトンLLを返す、つまり、図35に示すように、頂点とエッジが下位リンクの頂点とエッジであるグラフとなる。
次に、アルゴリズム2の原理および正確性について、アルゴリズムを説明する図35から37を参照して説明する。Γ0は空集合として初期化され、AはA0として初期化される。Aが空の場合、アルゴリズムはリターンを行う。そうでない場合、プロシージャGetHighestVertex(A)は、最大z座標を持つAの最も高い頂点であるaを返す。
Aはサイクルであるため、その境界は定義上ゼロである。図35に示されるように、Aの偶数の数のエッジは、aを、プロシージャGetAdjacentVertices(a,A)によって返されるDel(V)のaの下位リンクllk(Del(V))(a)の頂点の集合Vaと連結する。
aはVの最も高い頂点であるため、Vaの頂点はaの下にあり、aにエッジで連結される。よって、Vaは下位リンクllk(Del(V))(a)の頂点の部分集合である。この集合は空ではなく、Aがサイクルであるため、カーディナリティを有する。プロシージャGetLowerLink(a,Del(V))は、Del(V)のaの下位リンクの1スケルトンLLを返す、つまり、図35に示すように、頂点とエッジが下位リンクの頂点とエッジであるグラフとなる。
次に、アルゴリズム2の主なステップは、この偶数のエッジを、Vaの頂点のペアを連結するllk(Del(V))(a)のパスE=GetEdgesConnecting(Va,LL)(図36参照)によって、aをVaの頂点に連結するエッジによって置き換え、これらのパスの各エッジeに、Γ0の対応する三角形
を追加する(図37でハッチをかけて示される)。
図37は、メインステップ後の更新されたAサイクルを示している。アルゴリズムの各ステップの後、次の特性が保持される:
実際、このステップでは、次の2チェインがΓ0に追加される:
(3)の境界は次のように評価され得る:
Aが空でない限り、少なくとも2つの頂点が含まれている必要がある。したがって、最も高い頂点aをDel(V)の最も低い頂点にすることはできず、そうすると、補助定理3は、その下位のリンクLLは空ではなく、可縮であると主張する。これは、プロシージャGetEdgesConnecting(Va,LL)の前提条件である。
<プロシージャGetHighestVertex(A)>
このプロシージャは、Aのエッジの頂点の進化する集合において順序付けられたマップを維持する必要がある。Del(V)
のサイズがnの場合、Del(V)の各頂点は1回しか挿入できないため、プロシージャへのすべての呼び出しのコスト合計はO(n log n)である。
このプロシージャは、Aのエッジの頂点の進化する集合において順序付けられたマップを維持する必要がある。Del(V)
のサイズがnの場合、Del(V)の各頂点は1回しか挿入できないため、プロシージャへのすべての呼び出しのコスト合計はO(n log n)である。
<プロシージャGetLowerLink(a,Del(V))>
プロシージャGetLowerLink(a,Del(V))は、Del(V)のaの下位リンクの1スケルトンLLを返す、つまり、図35に示すように、頂点とエッジが下位リンクの頂点とエッジであるグラフとなる。Del(V)の2つの頂点はどれも同じz座標を持たないため、Del(V)のエッジに対して次の全順序を定義できる。Del(V)の各エッジは、z(v1)>z(v2)となるような順序付けられた頂点のペア(v1,v2)で表され得る。次に、Del(V)のエッジに対して次のような全順序を定義できる。
プロシージャGetLowerLink(a,Del(V))は、Del(V)のaの下位リンクの1スケルトンLLを返す、つまり、図35に示すように、頂点とエッジが下位リンクの頂点とエッジであるグラフとなる。Del(V)の2つの頂点はどれも同じz座標を持たないため、Del(V)のエッジに対して次の全順序を定義できる。Del(V)の各エッジは、z(v1)>z(v2)となるような順序付けられた頂点のペア(v1,v2)で表され得る。次に、Del(V)のエッジに対して次のような全順序を定義できる。
つまり、
とは、v1がv′1よりも厳密に高いか、v1=v′1およびv2がv′2よりも厳密に高いことを意味する。この順序に沿ってすべてのエッジを分類する(または、言い換えれば、順序付けられた集合データ構造に挿入する)には、0log(n)のコストがかかり、ここで、nはDel(V)のサイズである。頂点aの下位リンクllk(Del(V))(a)の頂点の集合が、第1の頂点がaである順序付けられたペアの集合と1対1で対応していることを観察する。(a,.)形式のこれらのペアは、順序付けられた集合で連続している。
同様に、Del(V)の各三角形は、z(v1) > z(v2)>z(v3)であるような3つの順序付けられた頂点のトリプル(v1、v2、v3)で表され得、Del(V)の三角形に対して次の全順序を定義できる。
繰り返すが、この順序に沿ってすべての三角形を分類する(または、言い換えれば、順序付けられた集合データ構造に挿入する)には、0log(n)のコストがかかり、ここで、nはDel(V)のサイズである。前述のとおり、頂点aの下位リンクllk(Del(V))(a)のエッジの集合は、第1の頂点がaである順序付けられたトリプルの集合と1対1で対応している。(a,.,.)形式のこれらのトリプルは、トリプルの順序付けられた集合で連続している。
この構成は、すべての下位リンクの頂点すべての集合がDel(V)のエッジと1対1で対応し、すべての下位リンクのエッジすべての集合がDel(V)の三角形と1対1で対応し、よって、すべての下位リンクの1-スケルトンの合計サイズの上限が、Del(V)のサイズnとなることを示すことが観察され得る。
したがって、コストlog(n)でエッジと三角形の順序付けられた集合を生成する前処理ステップの後、プロシージャGetLowerLinkへの各呼び出しごとにlog(n)のコストをかけて、エッジと三角形の順序付けられた集合内のエントリが検索され、llk(Del(V))(a)の頂点とエッジはサイズの上限がnであるそれぞれの順序付けられた集合内で連続している。GetLowerLinkの合計コストはOlog(n)となる。
プロシージャGetAdjacentVertices (a,A)
Aがエッジの集合、つまり頂点ペアの集合として与えられる場合、Aのサイズに関して線形時間で隣接する頂点の集合を各頂点に関連付けることが可能である。アルゴリズムのAの更新に沿って、各エッジは1回しか挿入され得ないので、これらの隣接関係の維持には最大でOlog(n)のコストがかかる。GetAdjacentVertices(a,A)は各頂点
に対して最大で1回呼び出され、すべての頂点の隣接総数は、エッジ数の2倍(各エッジは2つの頂点を連結する)であるため、GetAdjacentVerticesの合計コストはOlog(n)によって限定される。
Aがエッジの集合、つまり頂点ペアの集合として与えられる場合、Aのサイズに関して線形時間で隣接する頂点の集合を各頂点に関連付けることが可能である。アルゴリズムのAの更新に沿って、各エッジは1回しか挿入され得ないので、これらの隣接関係の維持には最大でOlog(n)のコストがかかる。GetAdjacentVertices(a,A)は各頂点
プロシージャGetEdgesConnecting(va,LL)
このプロシージャでは、前提条件として、Vaの頂点の数が偶数であり、グラフLLが連結されている必要がある。
このプロシージャでは、前提条件として、Vaの頂点の数が偶数であり、グラフLLが連結されている必要がある。
下位リンクLLのサイズをmで示す。可能性としては、例えばO(mlogm)でダイクストラアルゴリズムまたはO(m)で再帰探索によって(パスを最小にする必要はない)、頂点の各ペアのパスを計算してから、これらすべてのパスを追加(モジュロ2)することが考えられる。ただし、この解が実際に効率的である可能性が高くても、最適な最悪計算量は得られない。実際に、最も高い頂点a0の下位リンクが他のすべての頂点を含み(m=n-1)、Aがa0をLLの2k頂点に連結する特定の場合では、コストkmでLLのkパスを計算する必要があり、したがって、k=m/2=(n-1)/2であればnが2次のコストになる。
ここで、アルゴリズム2の全体O(nlogn)計算量を維持するGetEdgesConnectingのO(m)アルゴリズムについて説明する。
実は、プロシージャGetEdgesConnectingは、1次元少ない全体アルゴリズムに似ている。OサイクルVaを指定し、∂E=Vaとなるような1チェインEを見つける。ただし、即時の帰納性はここにはない。同様のアルゴリズムを適用するには、まず初めに、空のものを除いて頂点の下位リンクがすべて可縮である頂点の順序を定義する必要がある。
この順序を取得するために、まずはLLの全域木STLLを計算する。これは、グラフが連結しているため、可能である。STLLは連結されているので、Eは、STLL内に見つけることができる。STLLの計算は、各頂点に親フィールドを割り当てるLLの再帰検索を使用して、O(m)の時間内に実行され得る。そのために、ルートとして任意の頂点を選択し、それを「訪問済み」としてマークし、その親フィールドに「無効」を割り当てて、スタックに格納し得る。次に、スタックが空でない場合、スタックから一番上の頂点vを取り出し、訪問済みとマークされていないすべて隣接のものに関して「親」フィールドをvに割り当て、訪問済みとしてマークし、スタックに格納する。同じプロセスに沿って、O(m)計算量を維持しながら、ルートがOランクを持ち、ルート以外の各頂点がその親よりも高いランクを持つように、各頂点に整数のランクを割り当て得る。例えば、頂点が「訪問済み」とマークされるたびにカウンタを増やし、そのカウンタ値を頂点のランクとして割り当て得る。
その場合、高さzが頂点ランクに置き換えられた補助定理3の状況と同様になる。実際、ルートではない各頂点は、STLLの下位リンクとして単一の頂点を持つ:つまり、STLLの一意な親ノードである。この下位リンクはその場合可縮である。ルートの下位リンクは空である。STLLから始めて、別のアルゴリズム、アルゴリズム3が提示される。ここで、m′<mはT=STLLの木構造内の頂点の数である。アルゴリズム3は、木構造内の特定の境界のエッジの集合を見つける。
アルゴリズム3は、次の擬似コードで説明される:
アルゴリズム3:木構造内の特定の境界のエッジの集合を見つける
インプット:木構造としてT、帰属の行列によって表されるTの頂点の偶数の集合としてV0
アウトプット:∂E=V0となるようなTのエッジの集合E
アルゴリズム3は、1次元少ないが、アルゴリズム2に似ている。ここでは、プロシージャGetHighestVertex(V)は必要ない。
アルゴリズム3:木構造内の特定の境界のエッジの集合を見つける
インプット:木構造としてT、帰属の行列によって表されるTの頂点の偶数の集合としてV0
アウトプット:∂E=V0となるようなTのエッジの集合E
実際に、最も高いランクの頂点m′-1からランク1の頂点まで反復するforループによって、Vに属する必要な最も高い頂点が与えられ、ここで、高さzは頂点のランクに置き換えられる。各ステップで、Vは偶数の頂点を含み、Vertex(rank)はVの最も高い頂点であり、この最も高い頂点をVertex(0)にすることはできないため、forループはランク1で終了する。
サイズmの配列にランクでインデックス付けされた頂点がすべて含まれている場合、プロシージャVertex(rank)の呼び出しごとにO(1)のコストがかかる。進化する頂点の集合Vが、エントリkがランクkの頂点のvへの帰属を示すサイズmのブール型の配列で表されている場合、帰属判断
にはO(1)のコストがかかる。Vが更新されると、この帰属配列の更新もO(1)の時間内に実行され得る。したがって、アルゴリズムの各行のコストはO(1)である。このため、アルゴリズム3のコストはO(m log m)ではなくO(m′)=O(m))である。正当性の証明は、アルゴリズム2の正当性の証明に似ている:これは、次の特性がアルゴリズムに保持されるという事実に基づいている。
全体として、次の補題が証明される。
補助定理4:サイズnのドロネー複体Del(V)と、Del(V)の1サイクル(ゼロ境界のエッジの集合)をA0とすると、アルゴリズム2は、O(n log n)の時間内に、∂Γ0=A0となるような、Del(V)のΓ0、2チェイン(三角形の集合)を計算する。
前述のとおり、アルゴリズム1および2は、本方法のステップS40およびS50を実施し得る。この場合、辞書式順序は、三角形の全順序、つまり三角形の順序に基づいている。これについては、次に詳しく説明する。
単体の順序付け
2-単体σの最小包含球の半径および外接円の半径をそれぞれRB(σ)、RC(σ)とする。2-単体に対して次のように全順序が定義され得る。
2-単体σの最小包含球の半径および外接円の半径をそれぞれRB(σ)、RC(σ)とする。2-単体に対して次のように全順序が定義され得る。
命題2:N≧3である
は一般の位置にあるとし、KPはPのドロネー三角形分割を含む任意の2次元複体とする。凸包CH(P)の境界に属するエッジで構成された1チェインを
で示す。
であれば、Γminの単体複体
ここで、前述の実施が使用された方法の適用例を説明する。
次に、図38~41を参照して、前述の実施が使用された方法の第1の適用について説明する。
この第1の適用では、部分的な取得をメッシュ化、つまり、現実のシーンが部分的な取得(例えば、穴を特徴として有する)から生じる点群によって部分的に表される、現実のシーンの構造の一部分のスキンを表す開三角形分割表面を決定することが可能である。第1の適用は、現実世界のシーンの物理的制約(例えば、表面のオクルージョンや光学的特性)が部分的および不完全な3D取得につながる可能性がある文脈で起こる。これらの文脈では、正確で穴のないメッシュ再構成を提供することは困難であり得る。再構成する表面の境界を定義する1つ以上の3Dパス(すなわち、ループ)を入力として取ることにより、本発明の方法は、ノイズの多い取得に対してでも、穴のないメッシュを保証し、高品質の再構成を提供する。この第1の適用では、前述のように、1つ以上のループがユーザによって定義される。
図38から40は、第1の用途の一例を示している。これらの図に示されている例では、現実のシーンは大聖堂構造を含む建物のシーンである。3D点群は、大聖堂の構造を部分的に表している。大聖堂は一例であり、第1の適用は他の建築シーンにも適用されることを理解されたい。図38に示される3D点群は、943K個の点を含む。
図38に示す通り、ユーザは、所望する表面の境界をおおまかに定義する並んだ点のリストをインテラクティブな方法で選ぶ。ユーザが選択した点のリストは、図38で大きな丸点で表されている。点の3D三角形分割に境界上のすべてのエッジが存在するよう、境界はオーバーサンプリングされ得る。図39は、ユーザが選択した点のリストからオーバーサンプリングされた境界を示している。次に、本方法は、課された境界の下で点群を効率的にメッシュ化、つまり、大聖堂の一部のスキン(つまり、大聖堂の壁と、壁の外側および内側の空気との間の境界)を形成する開三角形分割表面を決定する。図40は、18秒で得られた、決定されたスキンを示している。
図41は、課された境界下で、本方法によってステップS50で決定された開三角形分割表面の他の2つの例を示している。
前述の実施が使用された、本方法の第2の適用について、図42を参照して説明する。この第2の適用は、大規模なシーンのメッシュ化、および大規模なシーンのメッシュの並列化および更新というという文脈で起こる。最新の取得技術は、正確で大量の測定値を生成できる。取得の境界が大きくなると、すべての測定値を同時に保持するために必要なストレージ容量(RAMまたはディスク)が、これらの大きなシーンをメッシュ化する際の制限要因になる可能性がある。例えば、標準または安価なコンピュータは16ギガバイトのメモリによって制限され、これは、10M個の点を超える点群には小さすぎる場合がある。
本方法は、空間タイリングを使用して取得をより小さなかたまりに分割することにより、これらの問題を回避する。さらに、本方法では、隣接するタイル上の2つのメッシュが共通の接合部を有することが保証される。実際に、本方法では、結果として得られる開三角形分割表面を境界付けるサイクルを指定することが可能である。言い換えれば、ステップS30で提供される1つ以上のループ(例えば、前述のように、ユーザによって、または、自動的に)により、水密である共通の接合部を有するより小さなかたまりにシーンを分割することが可能になる。
さらに、変更の影響を受ける領域の境界を定義し、影響を受けた領域内の開三角形分割表面を再計算することにより、局所メッシュの編集が効率的に実行され得る。開三角形分割表面の残りの部分を再計算する必要はなく、影響を受ける領域との接合部は、開三角形分割表面の残りの部分と正確に対応する。
図42は、第2の適用を示している。図42は、境界(すなわちループ)の定義のおかげで2つの部分にメッシュ化された、地形を表す大きな点群を示している。ループは、図42において丸点で表されている。つまり、開三角形分割表面は、境界として所定のループを有すると定義された地形の各領域/区画に関して、ステップS50で決定される。ループを定義することによって境界を課すことで、図42に示される、2つのメッシュ間の共通部の接合が作成される。
本方法はコンピュータで実施される。これは、本方法のステップ(または実質的にすべてのステップ)が、少なくとも1台のコンピュータまたは任意のシステムによって実行されることを意味する。したがって、本方法のステップは、おそらく完全に自動で、または半自動で、コンピュータによって実行される。例では、本方法の少なくともいくつかのステップの引き金は、ユーザとコンピュータのインテラクションを介して実行され得る。必要なユーザとコンピュータのインテラクションのレベルは、予測される自動化のレベルに依存し、ユーザの希望を実施する必要性とバランスが取れていてよい。例では、このレベルはユーザ定義および/または事前に定義されていてよい。
本方法のコンピュータ実施の典型的な例は、この目的に適合したシステムで本方法を実行することである。システムは、メモリおよびグラフィカルユーザインターフェース(GUI)に結合したプロセッサを含んでもよく、メモリは、本方法を実行するための命令を含むコンピュータプログラムを記録している。メモリはデータベースを格納していてもよい。メモリは、そのような格納に適合したハードウェアであり、おそらく物理的に異なる部品をいくつか含む(例えば、プログラム用に1つ、データベース用に1つ)。
図43は、システムの一例を示しており、システムは、クライアントコンピュータシステムであり、例えば、ユーザのワークステーションである。
この例のクライアントコンピュータは、内部通信BUS1000に接続された中央処理装置(CPU)1010と、同じくBUSに接続されたランダムアクセスメモリ(RAM)1070とを備える。クライアントコンピュータはさらに、BUSに接続されたビデオランダムアクセスメモリ1100と関連するグラフィックプロセッシングユニット(GPU)1110を備えている。ビデオRAM1100は、当技術分野ではフレームバッファとしても知られている。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量記憶装置への訪問を管理する。コンピュータプログラムの命令およびデータを明確に具体化するのに適した大容量メモリデバイスにはあらゆる形態の不揮発性メモリが含まれ、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス;内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク;光磁気ディスク;およびCD-ROMディスク1040が挙げられる。前述したものはいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完または組み込まれ得る。ネットワークアダプタ1050は、ネットワーク1060への訪問を管理する。クライアントコンピュータはまた、カーソル制御デバイス、キーボードなどのようなハプティックデバイス1090を含んでもよい。カーソル制御デバイスは、ユーザがディスプレイ1080上の任意の所望の位置にカーソルを選択的に配置することを可能にするために、クライアントコンピュータで使用される。さらに、カーソル制御装置により、ユーザはさまざまなコマンドを選択し、制御信号を入力することが可能となる。カーソル制御装置は、システムに制御信号を入力するためのいくつかの信号生成装置を含む。通常、カーソル制御デバイスはマウスであってもよく、マウスのボタンは信号を生成するために使用される。代替的または追加的に、クライアントコンピュータシステムは、感圧パッド、および/または感圧スクリーンを含んでもよい。
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでもよく、命令は、上記のシステムに本方法を実行させるための手段を含んでもよい。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実施され得る。プログラムは、例えば、プログラム可能なプロセッサによる実行のために機械可読記憶装置に有形に具体化された製品などの装置として実施され得る。本方法のステップは、命令のプログラムを実行し、入力データに動作させ、出力を生成して本方法の機能を実行する、プログラム可能なプロセッサによって実行され得る。したがって、プロセッサは、プログラム可能であり、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、これらにデータおよび命令を送信するように、結合され得る。アプリケーションプログラムは、高レベルの手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実施され得、必要に応じてアセンブリ言語または機械語で実施され得る。いずれの場合も、言語はコンパイル型またはインタプリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。システムにプログラムを適用すると、どのような場合でも、本方法を実行するための指示が出される。
Claims (15)
- 現実のシーンの構造を3Dで再構成するためのコンピュータ実装方法であって:
第1の開三角形分割表面を提供するステップ(S10~S40)であって、前記第1の開三角形分割表面は、構造の少なくとも一部を表す3D点群の四面体メッシュの三角形の集合である、前記ステップと;
構造の一部分のスキンを表す第2の開三角形分割表面の決定するステップ(S50)であって、前記決定するステップ(S50)は、それぞれが四面体メッシュの三角形の集合である開三角形分割表面の候補を探索し、および、辞書式順序に従って上位ランクにある開三角形分割表面の候補にペナルティを与え、前記辞書式順序は、三角形の順序に基づき、三角形の順序の降順に従って順序付けられた第1の三角形を有する第1の開三角形分割表面の候補を、三角形の順序の降順に従って順序付けられた第2の三角形を有する第2の開三角形分割表面の候補に対して順序付け、前記三角形の順序は、三角形のサイズにペナルティを与え、決定された第2の開三角形分割表面は、所定のラベル2つによる四面体メッシュのラベル付けの一貫性に反し、ここで、三角形が第1の開三角形分割表面に属し、かつ異なるラベルを持つ2つの四面体を分離する場合、または三角形が第1の開三角形分割表面に属さず、同じラベルを持つ2つの四面体を分離する場合に、三角形はラベル付けの一貫性を尊重しているステップと
を含む方法。 - 前記四面体メッシュが、次の特性:
当該四面体メッシュの四面体は結合して点群の点の凸包を形成すること;
当該四面体メッシュの任意の第1の四面体と、当該第1の四面体と交差する四面体メッシュの任意の第2の四面体が交差する部分は、当該第1の四面体の頂点、当該第1の四面体のエッジ、または当該第1の四面体の面であること;
を有する、請求項1に記載の方法。 - 前記三角形の順序は、それぞれの三角形について、最小包含円の半径の高い値にペナルティを与える、請求項1または2に記載の方法。
- 前記三角形の順序は、同一の最小包含円を有する前記第1の三角形と前記第2の三角形に対し、外接円の半径の小さな値にさらにペナルティを与える、請求項3に記載の方法。
- 前記四面体メッシュが正則三角形分割である、請求項1から4の何れか一項に記載の方法。
- 前記探索およびペナルティを与えることが:
三角形の順序の降順に従って、四面体メッシュの三角形に訪問することと;
ラベル付けの一貫性が維持できる限りは、三角形の順序の上位ランクにある訪問済みの三角形を破棄すること;を含む、請求項1から5の何れか一項に記載の方法。 - 前記破棄が、訪問した三角形ごとに、三角形がラベル付けの一貫性に反する場合、三角形に報酬を付与するか、一貫性を尊重するようにラベル付けを調整することを含む、請求項6に記載の方法。
- 前記破棄が、訪問した三角形ごとに:
三角形が同じ連結成分にある2つの四面体を分離し、かつラベル付けの一貫性に反している場合、三角形に報酬を付与すること;
三角形が異なる連結成分にある2つの四面体を分離している場合は:
・三角形がラベル付けの一貫性に反している際は、連結成分のうち1つのラベルを切り替えて連結成分を統合し、
・三角形がラベル付けの一貫性を尊重する際は、連結成分を統合する、ことをさらに含む、請求項7に記載の方法。 - 前記第1の開三角形分割表面を提供するステップが:
四面体メッシュに1つ以上のループを提供するステップ(S30)と;
前記1つ以上のループを境界として有する四面体メッシュ内に開三角形分割表面を決定するステップ(S40)を含む、請求項1から8の何れか一項に記載の方法。 - 前記構造が、少なくとも1つの角構造を含む、請求項1から9の何れか一項に記載の方法。
- 前記3D点群が、写真測量、レーザースキャン、LIDAR測定、RGB D測定、および/または医療または産業用トモグラフィーによって作成される、請求項1から10の何れか一項に記載の方法。
- 前記3D点群が、閉じた形状の一部分を表し、および/または、前記3D点群の点の数とコンピュータのメモリサイズの比率は、所定の閾値よりも大きい、請求項1から11の何れか一項に記載の方法。
- 請求項1から12の何れか一項に記載の方法を実行するための命令を含むコンピュータプログラム。
- 請求項13に記載のコンピュータプログラムを記録したコンピュータ可読記憶媒体。
- 請求項13に記載のコンピュータプログラムを記録したメモリに結合されたプロセッサを備える、コンピュータ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20306324.3A EP3996051A1 (en) | 2020-11-04 | 2020-11-04 | 3d reconstruction of a structure of a real scene with an open surface |
EP20306324 | 2020-11-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022075560A true JP2022075560A (ja) | 2022-05-18 |
Family
ID=74180916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021175501A Pending JP2022075560A (ja) | 2020-11-04 | 2021-10-27 | 開表面を用いた現実のシーンの構造の3d再構成 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11776214B2 (ja) |
EP (1) | EP3996051A1 (ja) |
JP (1) | JP2022075560A (ja) |
CN (1) | CN114445588A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114882189B (zh) * | 2022-05-26 | 2023-03-24 | 广州市城市规划勘测设计研究院 | 一种三维场景灾变可视化展示方法 |
CN115578538B (zh) * | 2022-10-17 | 2023-06-23 | 北京世冠金洋科技发展有限公司 | 三维场景生成方法、装置及电子设备和存储介质 |
CN117537826B (zh) * | 2024-01-09 | 2024-03-22 | 中国民航大学 | 一种可感知雷暴态势的航迹规划方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6184897B1 (en) * | 1997-01-15 | 2001-02-06 | International Business Machines Corporation | Compressed representation of changing meshes and method to decompress |
US6307551B1 (en) * | 1997-01-15 | 2001-10-23 | International Business Machines Corporation | Method for generating and applying changes in the level of detail of a polygonal surface |
US6377865B1 (en) | 1998-02-11 | 2002-04-23 | Raindrop Geomagic, Inc. | Methods of generating three-dimensional digital models of objects by wrapping point cloud data points |
FR3039685A1 (fr) * | 2015-08-01 | 2017-02-03 | Inst Nat Rech Inf Automat | Traitement de donnees geometriques avec approximation isotopique dans un volume de tolerance |
EP3502929A1 (en) * | 2017-12-22 | 2019-06-26 | Dassault Systèmes | Determining a set of facets that represents a skin of a real object |
EP3723052B1 (en) * | 2019-04-10 | 2023-10-18 | Dassault Systèmes | 3d reconstruction of a structure of a real scene |
-
2020
- 2020-11-04 EP EP20306324.3A patent/EP3996051A1/en active Pending
-
2021
- 2021-10-27 JP JP2021175501A patent/JP2022075560A/ja active Pending
- 2021-11-04 CN CN202111310725.7A patent/CN114445588A/zh active Pending
- 2021-11-04 US US17/519,373 patent/US11776214B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3996051A1 (en) | 2022-05-11 |
US11776214B2 (en) | 2023-10-03 |
CN114445588A (zh) | 2022-05-06 |
US20220139038A1 (en) | 2022-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022075560A (ja) | 開表面を用いた現実のシーンの構造の3d再構成 | |
Hilton et al. | Reliable surface reconstruction from multiple range images | |
EP3723052B1 (en) | 3d reconstruction of a structure of a real scene | |
US10417821B2 (en) | Method of simplifying a geometry model | |
JP7049807B2 (ja) | パラメトリックビュー関数に基づくデータベースの照会 | |
Governi et al. | 3D geometry reconstruction from orthographic views: A method based on 3D image processing and data fitting | |
KR102476800B1 (ko) | 3d 모델링 객체의 3d 프린터 출력을 위한 3d cad 데이터 변환 방법, 프로그램 및 이를 위한 장치 | |
JP2021082297A (ja) | 実オブジェクト上での形状属性の3d信号の処理 | |
JP2017168081A (ja) | 記述子を用いた3dオブジェクトの位置特定 | |
Leymarie et al. | Computation of the shock scaffold for unorganized point clouds in 3D | |
CN114943130A (zh) | 分割表示机械部件的3d建模对象 | |
CN110060346B (zh) | 确定代表真实对象皮肤的小面的集合 | |
JP2017162447A (ja) | 量子化を用いた3dオブジェクトの位置特定 | |
JP2020115338A (ja) | 生メッシュからの構造化3dモデルの生成 | |
Tse et al. | Building reconstruction using LIDAR data | |
Bajaj et al. | Seed sets and search structures for optimal isocontour extraction | |
Flórez Díaz | Improvements in the ray tracing of implicit surfaces based on interval arithmetic | |
Owada et al. | Enumeration of contour correspondence | |
Pawar et al. | Surface reconstruction from point clouds | |
Talotta et al. | Floorplan generation from noisy point cloud | |
Wu et al. | A new 3D thinning algorithm extracting medial curves | |
Hada | Roaming region for Delaunay triangulation | |
JP2023160791A (ja) | 画像からの3d再構成 | |
Shin et al. | Fast reconstruction of 3D terrain model from contour lines on 2D maps | |
Jeong et al. | Solving Branching Problems for Surface Reconstruction From Free-Form Contours |