CN114445588A - 具有开放表面的真实场景的结构的3d重建 - Google Patents

具有开放表面的真实场景的结构的3d重建 Download PDF

Info

Publication number
CN114445588A
CN114445588A CN202111310725.7A CN202111310725A CN114445588A CN 114445588 A CN114445588 A CN 114445588A CN 202111310725 A CN202111310725 A CN 202111310725A CN 114445588 A CN114445588 A CN 114445588A
Authority
CN
China
Prior art keywords
triangle
open
triangulated surface
triangles
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
Application number
CN202111310725.7A
Other languages
English (en)
Inventor
A·利厄捷
J·维亚米
D·科恩-斯坦纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of CN114445588A publication Critical patent/CN114445588A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/004Annotating, 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点云的四面体网格划分的三角形集合。3D点云表示结构的至少一部分。该方法还包括:确定第二开放三角化表面。第二开放三角化表面表示结构的一部分的蒙皮。该确定探索候选开放三角化表面,每个候选开放三角化表面都是所述四面体网格划分的三角形集合。该确定根据字典顺序惩罚所述候选开放三角化表面的高排名。字典顺序基于三角形顺序。字典顺序相对于具有第二三角形的第二候选开放三角化表面对具有第一三角形的第一候选开放三角化表面进行排序,所述第一三角形根据所述三角形顺序的降序排名进行排序,所述第二三角形根据三角形顺序的降序排名进行排序。该三角形顺序惩罚三角形大小。所确定的第二开放三角化表面违反具有两个给定标签的四面体网格划分的标记的一致性。如果三角形属于第一开放三角化表面并分离两个具有不同标签的四面体,或者如果三角形不属于所述第一开放三角化表面并分离两个具有相同标签的四面体,则该三角形遵守标记的一致性。

Description

具有开放表面的真实场景的结构的3D重建
技术领域
本发明涉及计算机程序和系统领域,更具体地说,涉及用于真实场景的结构的3D重建的方法、系统和程序。
背景技术
市场上提供了许多用于对象的设计、工程和制造的系统和程序。CAD是计算机辅助设计的缩写,例如它涉及用于设计对象的软件解决方案。CAE是计算机辅助工程的缩写,例如它涉及用于模拟未来产品的物理行为的软件解决方案。CAM是计算机辅助制造的缩写,例如它涉及用于定义制造过程和操作的软件解决方案。在这种计算机辅助设计系统中,图形用户界面在技术效率方面起着重要的作用。这些技术可能嵌入在产品生命周期管理(PLM)系统中。PLM指的是一种商业战略,帮助企业共享产品数据,应用通用流程,并利用企业知识进行从概念到产品生命尽头的跨越扩展企业概念的产品开发。达索系统(Dassault Systèmes)(以CATIA,ENOVIA和DELMIA为商标)提供的PLM解决方案提供了一个组织产品工程知识的工程中心,一个管理制造工程知识的制造中心和一个使能企业集成和连接至工程和制造中心的企业中心。整个系统提供了一个开放的对象模型,其链接产品、流程和资源,实现动态的、基于知识的产品创建和决策支持,从而推动优化的产品定义、制造准备、生产和服务。
在这种情况下和其他情况下,真实场景的结构的3D重建变得越来越重要。
用于真实场景的结构的3D重建的现有方法存在几个缺点。
在这种情况下,需要一种改进的用于真实场景的结构的3D重建的方法。
发明内容
因此,提供了一种用于真实场景的结构的3D重建的计算机实现的方法。该方法包括:提供第一开放三角化表面。第一开放三角化表面是3D点云的四面体网格划分的三角形集合。3D点云表示结构的至少一部分。该方法还包括:确定第二开放三角化表面。第二开放三角化表面表示结构的一部分的蒙皮。该确定探索候选开放三角化表面,每个开放三角化表面都是所述四面体网格划分的三角形集合。所述确定根据字典顺序惩罚所述候选开放三角化表面的高排名。字典顺序基于三角形顺序。字典顺序相对于具有第二三角形的第二候选开放三角化表面对具有第一三角形的第一候选开放三角化表面进行排序,所述第一三角形根据所述三角形顺序的降序排名进行排序,所述第二三角形根据三角形顺序的降序排名进行排序。该三角形顺序惩罚三角形大小。所确定的第二开放三角化表面违反具有两个给定标签的四面体网格划分的标记的一致性。如果三角形属于第一开放三角化表面并分离两个具有不同标签的四面体,或者如果三角形不属于所述第一开放三角化表面并分离两个具有相同标签的四面体,则该三角形遵守标记的一致性。
该方法可以包括以下一项或多项:
-四面体网格划分具有以下特性:
о所述四面体网格划分的四面体的并集形成所述点云的点的凸包络;以及
о所述四面体网格划分的任何第一四面体与四面体网格划分的与所述第一四面体相交的任何第二四面体之间的相交部分是所述第一四面体的顶点、所述第一四面体的边或所述第一四面体的面;
-对于相应的三角形,所述三角形顺序惩罚最小包围圆的半径的高值;
-对于具有相同最小包围圆的第一三角形和第二三角形,所述三角形顺序进一步惩罚所述外接圆的半径的小值;
-四面体网格划分是正则三角剖分;
-探索和惩罚包括:
о根据所述三角形顺序的降序排名来访问所述四面体网格划分的三角形;以及
о只要能够保持标记的一致性,就丢弃具有三角形顺序的高排名的已访问三角形;
-所述丢弃包括,对于每个已访问三角形,如果所述三角形违反所述标记的一致性,则奖励所述三角形,或者调整所述标记以遵守一致性;
-对于每个访问过的三角形,丢弃还包括:
o如果所述三角形分离了同一个连通分量(connected component)中的两个四面体,并且如果三角形违反了标记的一致性,则奖励所述三角形;
о如果所述三角形分离了处于不同连通分量中的两个四面体:
■如果三角形违反了标记的一致性,则切换连通分量之一的标签并合并所述连通分量,
■如果所述三角形遵守所述标记的一致性,则合并连通分量;
-提供所述第一开放三角化表面包括:
о在四面体网格划分中提供一个或多个环;以及
о确定所述四面体网格划分中以所述一个或多个环为边界的开放三角化表面;
-该结构包括至少一个角结构;
-3D点云源自摄影测量、激光扫描、激光雷达测量、RGB-D测量和/或医学或工业断层摄影;和/或
-3D点云表示闭合形状的一部分,和/或所述3D点云的点数与所述计算机的内存大小的比值大于预定义的阈值。
还提供了一种包括用于执行该方法的指令的计算机程序。
还提供了一种其上记录有计算机程序的计算机可读存储介质。
还提供了一种计算机,其包括耦合到存储器的处理器,并且该存储器上记录有计算机程序。
附图说明
现在将通过非限制性示例并参考附图描述本发明的实施例,其中:
-图1示出了该方法的示例的流程图;
-图2至图42说明了该方法;并且
-图43显示了计算机的示例。
具体实施方式
参考图1的流程图,提出了一种用于真实场景的结构的3D重建的计算机实现方法。该方法包括提供S10-S40第一开放三角化表面。第一开放三角化表面是3D点云四面体网格划分的三角形集合。3D点云表示结构的至少一部分。该方法进一步包括确定S50第二开放三角化表面。第二开放三角化表面表示结构的一部分的蒙皮。确定S50探索候选开放三角化表面,每个三角化表面都是四面体网格划分的三角形集合。确定S50根据字典顺序惩罚高排名的候选开放三角化表面。字典顺序基于三角形顺序。字典顺序相对于具有根据三角形顺序的降序排名排序的第二三角形的第二候选开放三角化表面对具有根据三角形顺序的降序排名排序的第一三角形的第一候选开放三角化表面进行排序。三角形顺序惩罚三角形大小。所确定的第二开放三角化表面违反了具有两个给定标签的四面体网格划分的标记的一致性。如果三角形属于第一开放三角化表面并且分离具有不同标签的两个四面体,或者如果三角形不属于第一开放三角化表面并且分离具有相同标签的两个四面体,则三角形遵守标记的一致性。
这构成了改进的用于真实场景的结构的3D重建的方法。
值得注意的是,该方法允许确定表示真实场景的结构的一部分的蒙皮的开放三角化表面(即第二开放三角化表面)。从而,该方法执行真实场景的3D结构的一部分的重建。此外,该方法不需要对3D点云和/或结构进行平滑度假设。该方法因此是稳健的并且可以例如处理不同的真实场景结构。该方法可以例如处理非规则点云,表示非规则结构,例如角结构。此外,该方法通过少量(例如没有任何)手动调整参数来实现,这使其符合人体工程学。值得注意的是,探索和惩罚可以自动进行。
该方法通过探索候选开放三角化表面并奖励(例如选择)将是所确定的开放三角化表面的候选者来确定表示结构的一部分的蒙皮的第二开放三角化表面。该方法在给定两个约束情况下奖励/选择候选者。第一个约束是候选者在字典顺序中不应具有太高的排名,否则它将被确定S50惩罚(即丢弃)。换句话说,候选者应该最小化或倾向于最小化候选者之间的字典顺序。第二个约束是候选者必须违反标记的一致性(即,候选者的所有三角形都必须违反标记的一致性)。换句话说,该方法找到了一个候选开放三角化表面,即四面体网格划分的三角形集合,其违反了标记的一致性,但在候选者中按其字典顺序的排名受到惩罚最少。又换句话说,该方法确定违反标记的一致性的开放三角化表面,但是对于违反标记的一致性的开放三角化表面之间的字典顺序,该开放三角化表面是最小值或至少趋于最小值。再换句话说,该方法倾向于最小化违反标记的一致性的开放三角化表面集合之间的字典顺序。
现在,所确定的第二开放三角化表面必须违反标记的一致性的约束捕获了所确定的第二开放三角化表面必须与第一开放三角化表面具有相同边界的约束。换言之,通过确定违反标记一致性的开放三角化表面,该方法确定具有与第一开放三角化表面相同边界的开放三角化表面。通过确定在最小化或至少趋于最小化字典顺序的同时这样做的开式三角化表面,该方法实际上确定了具有与第一开放三角化表面相同的边界并且最小化或至少趋向于最小化具有与第一开放三角化表面相同边界的开放三角化表面之间的字典顺序的开放三角化表面。
如下文进一步解释,所确定的第二开放三角化表面必须具有与第一开放表面相同的边界的约束确实被所确定的第二开放三角化表面必须违反标记的一致性的约束所捕获,即,如果三角形属于第一开放三角化表面并分离具有不同标签的两个四面体,或者如果三角形不属于第一开放三角化表面并分离具有相同标签的两个四面体,则必须具有违反标记的一致性的其所有三角形(假设标记一致性是由三角形遵守标记的一致性的约束定义的)。
如下文进一步解释的,在字典顺序中具有高排名,对于三角化表面,捕捉到表面包括大尺寸的三角形(例如大和/或扁平三角形)和/或太多这样的三角形的事实。这些三角形表示具有噪声的3D点云区域,例如包括可能源于已获取点云的传感器的测量误差的异常点。换句话说,在字典顺序中具有高排名的开放三角化表面并不能准确地表示结构的一部分的蒙皮,因为蒙皮应该对点云的高密度部分进行网格化,如下文所讨论的。相反,具有低排名的开放三角化表面准确地表示蒙皮。因此,该方法基于第一开放三角化表面,找到具有相同边界但比第一开放三角化表面更能表示结构部分的蒙皮的第二开放三角化表面。
该方法可用于对部分由3D点云表示的真实场景进行3D重建。具体来说,真实场景的物理约束,例如遮挡和/或光学特性可能导致3D点云仅部分表示真实场景的结构,即表示结构的至少部分。物理约束确实可能导致部分和不完整的3D采集,例如有孔。换句话说,3D点云可能在它应该包含表示结构一部分的点的地方有孔。换句话说,3D点云可以表示闭合形状的一部分,即代替表示整个闭合形状。例如,当3D点云要表示建筑物时可能是这种情况,但由于物理约束,无法将建筑物的完整形状3D采集为3D点云,因此只可以获取部分表示建筑物形状的3D点云。然而,在这种情况下,该方法允许准确和自由孔3D重建。该方法可以例如提供具有作为边界的由3D点云表示的结构的一部分的边界的开放三角化表面作为第一开放三角化表面。由于部分3D采集,此边界可能不对应于结构的真实世界外边界。换言之,该边界可以是由3D点云表示的结构的一部分的定界。该方法可以提供任何这样的开放三角化表面作为第一开放三角化表面。
例如,用户可以将边界定义/标记为四面体网格划分中的一个或多个环(例如一个),环是边和顶点的集合,其中每个顶点属于偶数条边,并且该方法可以根据一个或多个环推断第一开放三角化表面。该方法可以以任何方式这样做,包括导致第一开放三角化表面不准确地表示蒙皮的任何方式,即在字典顺序中具有太高的排名。然后,所述确定S50找到与第一开放三角化表面具有相同边界但对于字典顺序趋于最小的另一个开放三角化表面(即第二开放三角化表面),从而形成具有更高质量的结构部分的蒙皮。换句话说,基于用户提供的结构的一部分的边界的定义,该方法可以确定具有该部分的定义边界作为边界并且对于字典顺序趋于最小的开放三角化表面,从而形成结构部分的准确蒙皮。
该方法可以附加地或替代地用于确定大型3D点云的蒙皮,即以大量点为特征的点云,例如其中3D点云的点数与计算机内存大小的比值大于预定义的阈值。例如,当点云表示大地形时可能就是这种情况。就点数而言,这种点云的大小可能会使表示点云完整蒙皮的三角化表面的计算在标准或廉价计算机的可接受时间内不可能或至少复杂。然而,该方法可以允许通过考虑这样的点云的划分来处理这些点云。具体地,该方法可以提供仅表示由3D点云表示的结构的有界部分的蒙皮的开放表面作为第一开放三角化表面。可以从用户提供的一个或多个环来推断该第一开放三角化表面,例如每个环都界定了这样的有界部分。例如,如果3D点云表示地形,则第一开放三角化表面可以表示地形的有界地块的蒙皮。第一开放三角化表面可能不准确地表示蒙皮,即在字典顺序中具有太高的排名。然后,该方法将具有与第一开放三角化表面相同的边界但在字典顺序中具有较低排名的开放三角化表面确定为第二开放三角化表面,从而准确地表示有界部分的蒙皮。该方法可以对共同划分结构的若干有界部分中的每一个都这样做。
换句话说,该方法允许考虑可以被有界部分划分的大型结构,例如在地块中划分的地形,并且为每个部分确定该部分的相应蒙皮。这避免了在单个过程中确定结构的整个蒙皮,这对于标准或廉价的计算机来说将花费太长时间和/或不可能完成。该方法还可以将有界部分的边界(例如,当提供对应的第一开放三角化表面或环时)定义为不透水的。这允许平行化结构的蒙皮,即独立于其他部分处理每个部分的每个确定的蒙皮。例如,该方法可以根据结构的对应部分的修改重新计算蒙皮之一,而不重新计算其他蒙皮。换句话说,该方法可以将划分大结构的部分的精确蒙皮彼此独立地计算和处理,例如地形的地块,这不仅允许获得结构的精确蒙皮,或者其至少一个或多个部分,而且还可以使用标准或廉价计算机的资源并在可接受的时间内完成。将结构分成几部分,例如将地形分成地块,可以由用户确定,或者可替代地,可以自动确定,例如,基于这样的考虑:对每个部分,表示该部分的3D点云的点必须适合计算机存储器。
现在进一步讨论该方法,仍然参考图1的流程图。
真实场景指定真实世界的一部分,其可以是或可以包括对象或对象的布置。真实场景的结构是真实场景中的有形(例如混凝土)物理闭合形状,例如真实场景中材料的闭合布局。因此,该结构的一部分是该闭合形状的一部分。例如,真实场景可能是建筑物,例如一座大教堂。该部分则可以是建筑物的一部分,例如没有屋顶的大教堂。又一个例子是作为地形的真实场景。其一部分可以是地形的一部分,例如地块/样地。该部分的蒙皮是该部分的外壳或外皮,其为在结构内部的不透明物质与空气和/或外部物质之间形成接触的结构的材料。该部分可以具有边界,使得蒙皮不必在结构的外部和结构的内部之间形成完整的界限,而仅是这种界限的一部分。例如,地形的一部分的蒙皮可以表示由地形形成的地球和空气之间的界限,但仅针对其有界的地块/样地。又一示例是建筑物(例如大教堂)的一部分的蒙皮,其可以在建筑物的墙壁和空气(其可以是外部空气和/或建筑物内部的空气)之间形成部分界限。
该方法考虑了表示真实场景的结构的至少一部分的3D点云的四面体网格划分,例如仅表示结构的一部分。该方法可以包括提供S10 3D点云,例如在提供第一开放三角化表面之前。可替代地,该方法可以直接提供第一开放三角化表面和/或四面体网格划分,例如,通过从存储它/它们的存储器中取回第一开放三角化表面和/或四面体网格划分以进一步进行它/它们的计算。
表示真实场景的结构的至少一部分的3D点云在此是一种数据结构,其中每个点表示位于真实场景的结构的至少一部分中的相应几何实体。每个几何实体表示场景中结构的相应位置(换言之,构成结构的材料的相应部分和/或布局)。几何实体的聚合(即联合或并置)一起表示结构的至少一部分。本文中的任何3D点云可以包括高于100000、1000000或10000000的多个点。值得注意的是,该方法可以在标准或廉价计算机(例如,16GB的存储器)上处理高于10000000的多个点。应当理解,3D点云可以包括不表示位于结构中的相应几何实体的点。那些点可以形成具有较低点密度的区域的一部分或可以是具有较低点密度的区域的一部分,如下文所讨论的。例如,这样的区域可以表示不属于该结构的场景的一部分。点云的某些点也可能是异常值,即源于测量误差的点,因此不表示结构的几何实体。
真实场景可以是建筑场景,例如从外面看到的建筑物。该结构在此可以是由建筑物的结构(例如墙壁和屋顶)形成的闭合有形形状。在这种情况下,结构的一部分的蒙皮可以由建筑物的结构的表面制成,例如墙壁和/或屋顶的表面,例如面向建筑物的外部和/或内部。真实场景也可以是任何其他土木工程场景,包括任何土木工程结构(例如隧道,例如采矿隧道)。例如,场景可以是工厂扫描,即工厂内部的扫描。
可替代地,真实场景可以是地形场景。结构可以是地形本身,并且地形的一部分的蒙皮可以是地形的地块的地面,以地块的边界作为边界。
可替代地,真实场景可以是机械零件或有机组织,一部分的蒙皮例如是机械零件或有机组织的外壳的一部分。机械零件可以是以下任何一种:地面交通工具(包括例如汽车和轻型卡车设备、赛车、摩托车、卡车和机动车设备、卡车和公共汽车、火车)的一部分,飞行器(包括例如机身设备、航空航天设备、推进设备、国防产品、航空设备、航天设备)的一部分,海军载具(包括海军设备、商用船、海上设备、游艇和工作船、船舶设备)的一部分,通用机械零件(包括例如工业制造机械、重型移动机械或设备、安装设备、工业设备产品、金属制品、轮胎制品),机电或电子零件(包括例如消费类电子产品、安全和/或控制和/或仪器产品、计算和通信设备、半导体、医疗设备和装备),消费品(包括例如家具、家居和花园产品、休闲用品、时尚产品、硬商品零售商的产品、软商品零售商的产品),包装(包括食品和饮料和烟草、美容和个人护理、家用产品包装)。附加地或替代地,机械零件可以是模制零件(即通过模制制造工艺制造的零件)、机加工零件(即通过机加工制造工艺制造的零件)、钻孔零件(即通过钻孔制造工艺制造的零件)、车削零件(即通过车削制造工艺制造的零件)、锻造件(即通过锻造制造工艺制造的零件)、冲压零件(即通过冲压制造工艺制造的零件)和/或折叠零件(即通过折叠制造工艺制造的零件)中的任何一种。
在示例中,该结构包括至少一个角结构。角结构是指具有或基本具有角形状的结构的一部分。结构的角可以是结构的对应于形成形状边缘或锐角的材料的布局的部分。角结构可以是建筑物的角、地形地块的角、隧道的角、房间墙壁形成的角、采矿隧道的角、构成机械零件的材料布局中的角或锐角,或构成有机组织的组织布局中的角或锐角。该方法因此是稳健的,因为它处理角结构。
在示例中,3D点云源自摄影测量、激光扫描、RGBD测量和/或医疗或工业断层扫描。
在该方法的上下文中,表示建筑/建筑场景的结构的点云可能源自RGB-D测量或摄影测量,并且可选地也源自运动结构分析。表示机械零件结构的点云可能源于工业断层扫描或激光扫描。表示采矿场景(或任何其他类似土木工程场景)结构的点云可能源于激光扫描,例如矿山内部。表示有机组织的结构的点云可能源于医学断层扫描。表示地形的点云可能源于激光雷达测量。
此处的任何3D点云都可以根据对真实场景的物理测量来确定。3D点云的提供S10可以特别包括提供一个或多个物理传感器,每个物理传感器被配置用于获取相应的物理信号,并通过在真实场景上操作一个或多个物理传感器(即利用每个传感器扫描真实场景)来获取一个或多个相应的物理信号。根据任何已知技术,3D点云的提供S10可以包括基于测量自动确定3D点云。一个或多个传感器可以包括多个(例如RGB、和/或图像或视频)相机,并且确定可以包括运动结构分析。一个或多个传感器可替代地或附加地包括一个或多个深度传感器(例如在RGB-D相机上)。一个或多个传感器可替代地或附加地包括激光器(例如激光雷达)或超声发射器-接收器。一个或多个传感器可替代地或附加地包括一个或多个断层摄影传感器。断层摄影传感器可以是医疗或工业断层摄影传感器。
可替代地,3D点云的提供S10可包括访问存储3D点云的数据库并从数据库中检索3D点云。3D点云可能已经通过操作一个或多个物理传感器并基于由一个或多个传感器获取的测量值确定3D点云而获得,如前所述,然后存储在数据库中,即使提供S10可能不实际上包括测量的获取和3D点云的确定。在任何情况下,3D点云的提供S10可以通过用户动作来执行。提供S10 3D点云还可以包括在执行该方法的计算机的显示器(例如GUI)上显示3D点云。
所提供的3D点云可以包括一个或多个具有不同点密度的区域。这意味着点云内点的密度可能在点云的区域之间不同。3D点云可以例如包括孔/开口,当已经执行3D点云的3D采集时,这些孔/开口源于物理约束,例如遮挡或光学特性。孔可以表示应该包括大密度的点的区域,但由于物理约束而没有。因此,3D点云可能仅表示闭合形状(即结构)的一部分,如果不是物理约束,它本应表示完全闭合形状。
结构的蒙皮或其一部分可以对应于点云的具有最高点密度的区域,该区域例如将外部的至少一部分与内部的至少一部分分开。该区域可能是开放的,即点云中具有最高点密度的区域可以形成具有边界的开放形状。内部和/或外部则可以是具有较低点密度的区域。在示例中,“具有最高密度”意味着开放形状中的点的密度高于源自测量的环境噪声。3D点云还可以以异常值为特征,这些异常值是3D点云中位于点密度低的区域中并且源于测量误差的点。换句话说,异常值并不表示真实场景的几何实体,而是对应于数值和/或测量伪影。尽管如此,该方法仍会处理这些异常值,这使得该方法对异常值和/或密度变化具有鲁棒性。
3D点云可能有大量的点。例如,3D点云的点数与计算机存储器大小的比值可能大于预先定义的阈值。例如,对于16GB的存储器大小(即基本上是标准或廉价计算机存储器的大小),预定义阈值可以大于1000万个点,例如,对于16GB的存储器大小,基本上等于或大于1000万个点。
现在简要讨论由3D点云表示的结构的3D重建概念。结构的3D重建通常指定计算/确定3D点云的表面连接点的动作。该表面可以被称为“表示结构的一部分的蒙皮”,因为它将3D点云的点连接到表示结构外部的至少一部分与结构内部的至少一部分之间的定界(例如边界)的开放的表面。因此,表面表示结构的外壳的一部分,换言之,结构的一部分的蒙皮。例如,如前所述,蒙皮可以对应于3D点云内高点密度的开放形状。在这种情况下,结构的3D重建指定确定/计算开放形状的表面连接点以形成结构的开放表面外壳。
如前所述,该方法操作表示结构的至少一部分的3D点云的四面体网格划分。该方法可以包括计算S20四面体网格划分。可替代地,该方法可以直接提供第一开放三角化表面和/或四面体网格划分,例如,通过从存储有它/它们的存储器中取回它/它们,以便进一步进行它/它们的计算。四面体网格划分的计算S20可以通过任何已知方法进行。
在示例中,四面体网格划分具有以下属性:四面体网格划分的四面体的并集形成了3D点云点的凸包络,以及四面体网格划分的任何第一四面体与四面体网格划分的与第一四面体相交的任何第二四面体之间的交集是第一四面体的顶点、第一四面体的边或第一四面体的面。这改进了网格划分的质量,从而改进了所确定的开放三角化表面的质量。
在示例中,四面体网格划分是正则三角剖分。这进一步改进了网格划分的质量,从而改进了所确定的开放三角化表面的质量。正如计算几何领域本身已知的那样,3D点云的正则三角剖分是由多面体的面在一个更高维度(即第4维)中的阴影引起的三角剖分。常规三角剖分仅仅是幂图的对偶,参见例如:Algorithmic geometry,Jean-Danel Boissonnat和Mariette Yvinec,Cambridge University Press New York,NY,USA,其通过引用并入本文。四面体网格划分的计算S20可以包括通过任何已知方法计算3D点云的正则三角剖分作为四面体网格划分,其可以包括:
-提升点云的点,即为每个点添加一个坐标。这将点集嵌入到一个空间中,该空间的维度等于原始空间的维度(即3D点云所属的3D空间),该原始空间包括点集加一;
-计算提升点集的凸包络;
-通过任何已知的方法对凸包络进行三角剖分,三角剖分导致四面体网格划分具有以下特性:四面体网格划分的四面体的并集形成提升点集的凸包络,以及四面体网格划分的任何第一四面体与四面体网格划分的与第一四面体相交的任何第二四面体之间的交集是第一四面体的顶点、第一四面体的边或第一四面体的面;以及
-将凸包络的该三角剖分的下表面投影到原始空间上。
在示例中,正则三角剖分是德洛内(Delaunay)三角剖分。在这种情况下,这些点被提升为抛物面,提升由提升点和抛物面之间的垂直间隙参数化。这进一步改进了网格划分的质量,从而改进了所确定的开放三角化表面的质量。此外,该方法通过比仅计算德洛内三角剖分更进一步来执行3D重建。该方法确实受益于德洛内四面体网格划分的质量,但通过在由德洛内三角剖分的三角形面构成的所有候选开放三角化表面中确定S50真正表示蒙皮的三角形面超出了范围。换句话说,该方法可以在由德洛内四面体网格划分的三角形面构成的开放三角化表面中选择蒙皮的最佳表示。因此,该方法可以利用3D点云的德洛内四面体凸包网格划分,这一概念是已知的,例如在参考F.Cazals、J.Giesen、Delaunaytriangulation based surface reconstruction,Effective computational geometryfor curves and surfaces中详述,2006年第231-276页,在此引入作为参考。德洛内四面体网格对象是具有以下属性的四面体集合。拓扑是一组相邻的四面体,因此任何三角形都恰好由两个区域共享。第一种共享情况是两个相邻四面体共享的三角形。第二种共享情况是由四面体和无界外部区域共享的三角形。四面体和外部区域共享的三角形称为边界三角形。德洛内网格划分的几何属性是,对于任何四面体,由其四个点定义的球体(称为外接球体)不包括云的任何其他点。
现在讨论提供第一开放三角化表面。
第一开放三角化表面是形成具有边界的开放三角化表面的四面体网格划分的三角形集合。更一般地,在本公开中,任何开放三角化表面都是四面体网格划分的三角化表面,该三角化表面具有边界。第一开放三角化表面可以是表示该结构部分的蒙皮的任何开放三角化表面,因此可以是确定中的候选之一。然而,第一开放三角化表面可能在字典顺序中具有高排名,或者至少在字典顺序中可能具有太高的排名以致最小或趋于最小。如前所述,确定S50然后找到具有与第一开放三角化表面的边界相同的边界但最小化或至少趋于最小化字典顺序的第二开放三角化表面。从而,所确定的开放三角化表面的质量优于第一开放三角化表面的质量,即所确定的表面更好地表示蒙皮,例如不包括或至少较少包括表示点云和/或异常值的低密度区域的大和/或扁平的三角形。
可以直接提供第一开放三角化表面,例如如前所述,该方法不计算/确定它。可替代地,提供第一开放三角化表面可以包括计算/确定第一开放三角化表面。第一开放三角化表面的计算/确定可以在于应用任何方法以在四面体网格划分中找到开放三角化表面,其甚至粗略地表示结构部分的蒙皮。换句话说,提供第一开放三角化表面可以在于在四面体网格划分中找到任何表示,甚至粗略地表示蒙皮的开放三角化表面,即,即使该第一开放三角化表面在字典顺序中具有高排名。确定S50然后将找到这样一个开放三角化表面,但是它最小化或趋于最小化字典顺序。再换句话说,可以通过找到甚至粗略/不准确地表示蒙皮的开放三角化表面的任何方法来实现提供第一开放三角化表面。
在示例中,提供第一开放三角化表面包括在四面体网格划分中提供S30一个或多个环并且确定S40在四面体网格划分中具有一个或多个环作为边界的开放三角化表面。这里的环是四面体网格划分中的边和顶点的集合,使得环中的每个顶点属于环的偶数条边。一个或多个环形成该结构部分的边界。如前所述,结构的一部分可以是由3D点云表示的结构部分,或该部分的一部分,在这种情况下,一个或多个环形成该部分的边界。
由于3D点云的部分采集,边界可能与结构的真实形状部分重合。替代地或附加地,边界可以与3D点云中一个或多个孔的边界重合,其源于3D点云的部分获取。例如,一个环可以对应(例如部分对应)现实世界中结构边界的真实形状。附加地或替代地,一个环可以对应于3D点云中的孔的边界。
附加地或替代地,结构的该部分可以例如对应于由其划分产生的3D点云的一部分,如前所述,然后在S30将该部分的边界提供为环。
一个或多个环的提供S30可由用户执行,例如通过图形用户交互。例如,为了提供一个或多个环中的给定环,用户可以点击或触摸四面体网格划分的点和边缘,使得它们形成环。替代地或附加地,为了提供给定的环,用户可以在四面体网格划分或点云上执行一系列点击或触摸,每次点击或触摸定义一个点。然后,该方法可以从用户挑选点序列中自动推断边和顶点的环,这可以包括对用户挑选点进行过采样和/或找到拟合用户挑选点的边和顶点的环。附加地或替代地,为了提供给定环,用户可以在四面体网格划分上或点云上绘制闭合线,该线(例如粗略地)定义边界的形状。然后,该方法可以从用户定义的线自动推断边和顶点的环,这可以包括对用户定义的线进行采样和/或找到拟合用户定义的线的边和顶点的环。
可替代地,可自动执行一个或多个环的提供S30。例如,提供一个或多个环可以基于对计算机存储器的考虑。例如,提供S30一个或多个环可以包括将3D点云或四面体网格划分为有界区域/部分,使得每个区域/部分具有适合给定计算机存储器的3D点云的多个点(例如,标准或廉价计算机为16GB)。然后,一个或多个环可各自对应于相应部分的边界。四面体网格划分的结果划分可能是不透水的,即分离的部分/区域沿它们的公共边界重合。
现在讨论自动提供一个或多个环的S30的实现。这种实现特别适用于3D点云具有大量点的情况,例如对于具有16GB存储器的标准或廉价计算机,大于10M点。此实现将点云/四面体网格划分细分为点数适合计算机存储器的区域,并通过确保分离的网格区域沿其公共边界重合来确保生成的分割/生成的网格划分是不透水的。这个实现过程如下:
-四面体网格划分的计算S20包括使用任何已知的允许这样做的核外方法计算3D点云的3D德洛内三角剖分。这种方法可以包括能够按区域执行3D德洛内三角剖分的任何方法,例如Lo,S.H.“Parallel Delaunay triangulation in three dimensions.”,ComputerMethods in Applied Mechanics and Engineering 237(2012):88-106中公开的方法,在此引入作为参考。
-提供S30一个或多个环包括提取从整个3D德洛内三角剖分的上方看到的轮廓,3D德洛内三角剖分是其轮廓为单个环的凸3D体。
-提供S30还包括重复以下步骤,直到每个环都包含适合计算机存储器的多个点:
о定义一个垂直平面;
о提取切割该平面的3D德洛内三角剖分的四面体;以及
о在这些提取的四面体中定义字典最小路径,从而将环细分为两个较小的环。
可以通过任何合适的方法或任何合适的技术来执行以一个或多个环作为边界的四面体网格划分中的开放三角化表面的确定S40。确定的S40开放三角化表面是第一开放三角化表面。在示例中,确定S40可以执行将在下文中讨论的算法2。可以执行任何其他合适的组合几何算法来代替算法2。
现在进一步讨论表示结构的一部分的蒙皮的第二开放三角化表面的确定S50。
确定S50探索候选开放三角化表面。每个候选者是四面体网格划分的三角形集合,其在四面体网格划分中形成开放三角化表面。确定会惩罚字典顺序中的高排名候选者并搜索违反标记的一致性的候选者。换句话说,该确定操作在候选开放三角化表面中的选择,并在其中选择一个在字典顺序中最小或至少趋于最小并且违反标记的一致性的候选者。
在候选开放三角化表面中的选择涉及字典顺序和三角形序,现在讨论它们。
字典顺序相对于第二候选开放三角化表面对第一候选开放三角化表面进行排序,即提供第一候选开放三角化表面和第二候选开放三角化表面之间的排序。字典顺序的概念本身是已知的。第一候选开放三角化表面具有第一三角形(例如由第一三角形构成),即四面体网格划分,而第二候选开放三角化表面具有第二三角形(例如,由第二三角形构成),即四面体网格划分。第一三角形和第二三角形都根据三角形顺序的降序排名排列。
根据字典顺序相对于第二候选开放三角化表面对第一候选开放三角化表面进行排序可以特别地包括:因为字典顺序是基于三角形顺序的,根据三角形顺序的降序排名评估第一三角形的排序和第二三角形的排序。排序还可以包括基于第一三角形和第二三角形两者的评估的排序来建立第一候选开放三角化表面相对于第二候选开放三角化表面的字典顺序中的排名。换言之,排序可以包括通过比较有序的第一三角形和第二三角形,在第一候选开放三角化表面和第二候选开放三角化表面之间以字典顺序建立相对排名。
现在讨论根据字典顺序对第一候选开放三角化表面相对于第二候选开放三角化表面进行排序的示例。设A是由第一三角形组成的集合,设B是由第二三角形组成的集合。设C=AΔB=(AUB)\A∩B,即C是属于A或B但不属于A和B两者的三角形集合。如果C为空,则A=B。在这种情况下,第一候选开放三角化表面和第二候选开放三角化表面在字典顺序中具有相同的排名。如果C不为空,则令T为C根据三角形顺序的最大三角形,即如果C的三角形按照三角形顺序的降序排名排序,则T是C的第一三角形。换句话说,T是C的受三角形顺序的影响最大的三角形,例如这是C的三角形中最大的三角形,如下所述。如果T属于A,则A大于B。在这种情况下,按字典顺序,第一候选开放三角化表面比第二候选开放三角化表面具有更高的排名。相反,如果T属于B,则B大于A。在这种情况下,在字典顺序中,第二候选开放三角化表面比第一候选开放三角化表面具有更高的排名。需要注意的是,如果
Figure BDA0003337803340000161
(严格地),则A大于B。
排序可以导致所有候选开放三角化表面的集合根据字典顺序排序,即每个候选开放三角化表面在字典顺序中具有相应的排名。确定S50惩罚高排名的候选开放三角化表面。例如,确定S50可以使得候选开放三角化表面因其高排名而被丢弃,并且候选开放三角化表面不因其低排名而被丢弃。
三角形顺序惩罚三角形大小。现在讨论惩罚三角形大小的概念。设T和T’是两个三角形。惩罚三角形大小可以包括对于每个三角形T和T'评估三角形大小的相应度量并且将三角形顺序中的较高排名归因于具有较大度量的三角形。三角形大小的度量也可以称为三角形权重或三角形的权重。大小的度量可以例如包括有助于测量三角形大小的第一实值函数、对测量三角形大小有不同贡献的第二实值函数、和/或由第一函数和第二函数组成的一对。惩罚三角形大小可以包括将大小的两个评估度量相对于彼此排序,例如根据将两个实数或两对实数相对于彼此进行排序的任何顺序,如本领域本身已知的。换句话说,如果T比T’大(即具有更大的尺寸),则T的尺寸的度量(例如,根据度量的排序)比T’的尺寸的度量大。现在,如果要根据三角形顺序的降序排名对这对(T,T')进行排序,就像前面讨论的第一三角形和第二三角形一样,那么在这个排序中,T在T’之前。类似地,如果T1,T2,…,Tn是有序的三角形列表(即T1是第一个,T2是第二个,依此类推),并且如果排序是根据三角形顺序的降序排名,则意味着T1大小的度量大于T2大小的度量,T2大小的度量大于T3大小的度量,以此类推。在示例中,三角形T的大小的度量是由T的最小包围圆的半径和T的外接圆的半径的倒数组成的一对实值函数。这样的示例构成了测量和惩罚三角形大小的鲁棒且高效的方法。
这相当于说,当如前所述对两个候选开放三角化表面进行排序时,字典顺序中较高的排名归因于两个中具有按三角形顺序受惩罚最大的三角形的那一个,例如最大的那一个。如前所述,这种三角形可以表示具有低点密度的3D点云区域(例如,可以是其网格的一部分),例如包括异常值。丢弃具有此类三角形的候选开放三角化表面,通过惩罚它们在字典顺序中的高排名,允许搜索准确表示结构部分的蒙皮的开放三角化表面,并降低对密度变化和/或异常值的敏感性。这使得该方法鲁棒且准确。
在示例中,该方法可能导致所确定的开放三角化表面的三角形(例如它们的全部或它们实质上的部分)是尽可能小的三角形(即具有小尺寸),包括其中的三角形形状特别是不太拉伸的三角形,例如面积相对较小且三角形的高与三角形的底的比值接近1的三角形。事实上,虽然三角形的顺序,在比较两个三角形时,并不一定会惩罚两个三角形中最扁平的,然而,字典排序基于三角形顺序可能会导致尽可能避免扁平三角形。事实上,字典顺序比较三角形链(每个形成开放三角化表面),而不是单对三角形的三角形,并试图奖励(即给予低排名)由最小可能的三角形组成的链。比较三角形链,而不是单对三角形的三角形,并且惩罚具有(例如太多)大三角形的链实际上可能导致所确定的开放三角化表面由这样的三角形构成,这些三角形(例如,一般)小而且不太扁平。这种三角形表示蒙皮。这使得该方法鲁棒且准确。
在示例中,对于相应的三角形,三角形顺序惩罚最小包围圆,即三角形的最小包围圆的半径的高值。
三角形的最小包围圆是包围三角形各点的所有圆中半径最小的圆。三角形的最小包围圆的半径有助于测量三角形的大小,并且惩罚最小包围圆半径的高值有助于惩罚三角形大小。换言之,最小包围圆的半径是有助于测量三角形大小的实值函数,并且可以是如前所述的三角形大小的度量的一部分。此外,惩罚最小包围圆的半径的高值是惩罚三角形大小的特别有效和鲁棒的方式。例如,设T和T’是两个三角形,设RB(T)和RB(T′)是它们各自最小包围圆的半径。然后,在这些示例中,不等式RB(T)<RB(T′)捕获了T’的大小大于T的大小这一事实。在这种情况下,惩罚大小可能包括在三角形顺序中赋予更高的排名到T’而不是到T。此外,根据三角形顺序的降序排名对T和T’进行相对彼此的排序意味着在这种情况下,T’在此排序中排在T之前。
在示例中,对于具有相同最小包围圆的第一三角形和第二三角形,三角形排序进一步惩罚外接圆(即(第一或第二)三角形的外接圆)的半径的小值。
三角形的外接圆是通过三角形各点的圆。三角形的外接圆的半径有助于测量三角形的大小,并且惩罚外接圆的半径的小值有助于惩罚三角形大小,尤其是在如下讨论的最小包围圆相等的情况下。换言之,外接圆的半径是有助于测量三角形大小的实值函数,并且可以是如前所述的三角形大小的度量的一部分。
在这种最小包围圆相等的情况下,惩罚外接圆半径的小值提高了该方法的鲁棒性。值得注意的是,设T和T’是两个三角形,设RB(T)和RB(T′)是它们各自最小包围圆的半径。假设RB(T)=RB(T′),例如,如果T和T’都是钝角三角形,则可能会发生这种情况。换句话说,可能会发生为T和T’评估各自最小包围圆的半径并惩罚评估半径的高值可能不足以在T和T’之间建立相对三角形顺序,以便惩罚三角形大小。换句话说,可能无法确定T和T’中的哪一个是最大的,以便仅基于最小的包围圆来惩罚它们中的一个。然而,进一步惩罚外接圆半径的小值允许这样的确定,并且在这方面提高了方法的鲁棒性。此外,惩罚外接圆半径的小值是惩罚三角形大小的一种特别有效和鲁棒的方式。例如,设RC(T)和RC(T′)分别为T和T’的外接圆的半径。然后,在这些示例中,其中RB(T)=RB(T′),不等式RC(T)>RC(T′)捕捉到T’的面积大于T中的一个且大于T的事实。换句话说,等式RB(T)=RB(T′)表示最小包围圆的半径不足以确定T和T’中哪个三角形最大的事实。然而,不等式RC(T)>RC(T′)表示T’的面积大于T的事实,这允许确定T’大于T,尽管两个三角形之间的最小包围圆相等。在这种情况下,惩罚大小可能包括将三角形顺序中的更高排名归因于T’而不是T。此外,根据三角形顺序的降序排名对T和T’进行相对彼此的排序意味着在这种情况下T’在此顺序中出现在T之前。
如前所述,在示例中,每个三角形T大小通过三角形大小的度量来衡量,该度量是由T的最小包围圆的半径和T的外接圆半径的倒数组成的一对实值函数。该度量可以由公式
Figure BDA0003337803340000191
给出。在这种情况下,三角形顺序可以是关于三角形大小的度量的顺序,例如,其中最小包围圆的半径之间的比较占优势、并且其中仅外接圆的半径的倒数之间的比较在最小包围圆相等的情况下起作用的顺序。例如,设T和T’是两个三角形。如果RB(T)<RB(T′),则按度量顺序T’大小的度量
Figure BDA0003337803340000192
大于T的大小的度量
Figure BDA0003337803340000193
因为最小包围圆的半径之间的比较占优势。在最小包围圆相等的情况下,即RB(T)=RB(T′),则外接圆半径的倒数之间的比较起作用,更具体地说:如果
Figure BDA0003337803340000194
那么按度量顺序T’的大小的度量
Figure BDA0003337803340000195
大于T的大小的度量
Figure BDA0003337803340000196
然后,如果按度量的顺序T的大小的度量低于T’的大小的度量,则T’在三角形顺序中的排名高于T。但是,如果T和T’在三角形顺序的降序排名中相对于彼此排序,则T在T’之后。
现在参考图2至图5进一步讨论三角形顺序,图2至图5说明三角形顺序。
这些图中所示的三角形排序记为≤并且基于两个概念:最小包围圆和外接圆。最小包围圆是半径最小并包围三角形各点的圆。外接圆是通过三角形三点的圆。给定三角形T,其最小包围圆的半径记为RB(T),并且其外接圆的半径记为RC(T)。
图2示出了三角形T及其包围圆和外接圆。它们是RB(T)≠RC(T),因为三角形具有钝角。相反,图3图示了具有三个锐角的三角形T。这使得包围圆和外接圆重合,所以RB(T)=RC(T)。
当三角形具有三个对齐点或重合点时,外接圆未定义。这种退化情况超出了本公开的范围,因为点云本质上是通用的。给定两个三角形T和T^',它们的相对顺序≤定义如下:如果RB(T)<RB(T′)或如果RB(T)=RB(T′)且RC(T)≥RC(T′),则T≤T′。换句话说,当它们不相等时,包围圆半径RB(T)和RB(T′)是相关的,否则外接圆半径RC(T)和RC(T′)是相关的。图4图示了通过它们各自的RB半径排序的两个锐角三角形。图5图示了两个钝角三角形。它们具有相同的最小包围圆半径RB(虚线),因此它们通过RC半径排序。
这种排序实际上是由几个数值定义的字典排序。网格的n个三角形记为Ti,i=1,…,n,它们根据对对
Figure BDA0003337803340000201
执行的字典顺序进行排序,其中i=1,…,n。这种排序非常微妙,因为它将三角形的形状(锐角与钝角)以及尺寸组合成一个简单的公式。它旨在为“小而扁平”的三角形设置较低的排名,这些三角形更有可能出现在待识别的未知分离面上。
所确定的开放三角化表面违反了具有两个给定标签的四面体网格划分的标记的一致性。因此,开放三角化表面的确定S50在候选者中选择违反标记的一致性的开放表面。由于确定S50还惩罚字典顺序中的高排名,因此确定S50在候选者中进行选择,并在违反标记的一致性的那些中选择针对字典排序而言最小或至少趋于最小的开放表面。
现在进一步讨论标记。
标记是带有两个给定标记的四面体网格划分的标记。换句话说,为四面体网格划分的每个四面体都分配了一个标签。外部区域,即没有被四面体网格划分进行网格划分的区域,也可以被分配一个标签。标签可以例如是颜色,使得每个四面体具有给定的颜色。可以使用其他类型的标签。
确定S50可以包括分配标签。例如,确定S50可以包括,在探索候选者之前,为所有四面体分配相同的标签。探索和惩罚然后可以使用标签作为变量。即,当确定S50开放三角化表面中在字典顺序中最小的第二开放三角化表面违反标记时,确定S50可以包括迭代地修改四面体的标签。确定S50可以例如通过访问四面体网格划分的三角形和迭代地改变四面体的标签以适应标记以确保一致性来迭代地尝试确保标记的一致性。当这样做时,确定S50可以迭代地检测不能对其执行该适应的每个三角形并且可以识别/奖励这样的三角形作为第二开放三角化表面的一部分来确定。
四面体的每个三角形都可以与指定三角形是否属于第一开放三角化表面的规范相关联。规范可以指定三角形如何遵守或违反标记。指定为属于第一开放三角化表面的三角形仅当它分离具有不同标签的两个四面体时才被已知遵守标记的一致性。指定为不属于第一开放三角化表面的三角形仅当它分离具有相同标签的两个四面体时被已知遵守标记的一致性。确定S50可以包括向每个三角形分配这样的规范。与标记相反,三角形的规范不形成确定S50的变量,即规范不会被确定修改。换句话说,它们形成了其约束。
在示例中,规范可以是排列。排列是恒等(identity)或开关(switch)(也称为“交换(swap)”)。第一开放三角化表面的每个三角形都分配有开关/交换,这表明三角形仅在其分离具有不同标签的两个四面体时才遵守标记的一致性(即三角形切换标记)。第一开放三角化表面的每个三角形都分配有恒等,这表明该三角形仅在其分离具有相同标签的两个四面体时才遵守标记的一致性(即三角形保留标记)。
确定的第二开放三角化表面违反了标记的一致性,这意味着开放三角化表面的每个三角形不遵守标记的一致性。要求第二开放三角化表面来确定违反了标记的一致性确保第二开放三角化表面具有与第一开放三角化表面相同的边界,如下文进一步解释的。确定S50探索具有该要求的候选开放三角化表面,以便确定S50选择满足该要求的候选开放三角化表面。存在这样一个候选者是因为第一开放三角化表面已经满足要求,因为它的三角形都切换了标记。确定S50然后找到满足要求的另一个候选者,附加要求是候选者必须最小化字典顺序。
现在讨论确定S50的示例。
在这些示例中,在探索和惩罚之前,确定S50可以包括为四面体网格划分的每个四面体分配标签,例如通过为每个四面体分配相同的标签。还在探索和惩罚之前,确定S50还可以包括为四面体网格划分的每个三角形分配排列,例如通过将开关排列分配给第一开放表面的每个三角形,并将恒等排列分配给其余三角形。
探索和惩罚可以包括根据三角形顺序的降序排名访问四面体网格划分的三角形。探索和惩罚然后可以包括丢弃具有高排名的三角形顺序的已访问三角形,只要可以保持标记的一致性。
三角形的访问实现了对候选三角化表面的探索。每次访问一个三角形时,该三角形要么被丢弃,要么被保留。这相当于说,探索给定的候选三角化表面对应于访问和保留或丢弃四面体网格划分的三角形的特定方式。所述访问按照三角形顺序的降序排名访问三角形。换言之,首先访问在三角形顺序中具有最高排名的四面体网格划分的三角形,即网格划分的三角形中具有最大尺寸的三角形。然后访问具有第二高排名的三角形,以此类推,具有最低排名的三角形是最近访问的。每次访问一个三角形时,该三角形要么被保留,即它被选择为属于所确定的第二开放三角化表面,要么被丢弃,即它不是所确定的第二开放三角化表面的一部分。
惩罚丢弃具有高排名的三角形顺序的已访问三角形。这允许避免所确定的第二开放三角化表面以大和/或扁平三角形为特征,或者至少,这允许避免所确定的第二开放三角化表面以太多大和/或扁平三角形为特征。话虽如此,只要在丢弃三角形的同时可以保持标记的一致性,惩罚就会丢弃这些高排名的三角形。当确定仍然可以通过使用具有较低排名的三角形而在不使用这些高排名三角形的情况下确定违反标记的一致性的第二开放三角化表面时,这允许丢弃高排名三角形。因此,仅当由于该三角形的存在而无法保持标记一致性时,才奖励探索的三角形,即确定为确定的第二开放三角化表面的一部分。由于三角形是在三角形顺序的降序排名中探索的,这允许尽可能避免属于确定的第二开放三角化表面的大和/或扁平三角形:首先/早期探索这些三角形,因此当探索它们时,如果它们违反了标记一致性,仍然有可能保留标记一致性,而不必奖励这些三角形。
丢弃可以包括,对于每个已访问的三角形,评估三角形是否违反或遵守标记的一致性。然后,对于每个已访问的三角形,丢弃可以包括:如果三角形违反标记的一致性,则奖励三角形,或者调整标记以遵守一致性。奖励三角形意味着将三角形添加到确定的第二开放三角化表面,即三角形将最终在探索和惩罚结束时属于确定的第二开放三角化表面。这种执行丢弃的方式允许避免系统地奖励违反标记的一致性的三角形:有时,如果探索的三角形违反了标记的一致性,则可以调整标签以遵守一致性,因此不需要奖励三角形。对于首先/早期探索的大的和/或扁平的三角形,情况可能尤其如此。当无法重新建立标记的一致性以适应标记时,违反一致性的探索到的三角形必然会得到奖励。对于在最后/后期探索的较小和/或扁平的三角形,情况可能尤其如此。
丢弃可以包括,对于每个已访问的三角形,例如在评估三角形是否违反或遵守标记的一致性之后:
-如果三角形分离了同一个连通分量中的两个四面体,并且三角形违反了标记的一致性,则奖励三角形;
-如果三角形将处于不同连通分量中的两个四面体分开:
o如果三角形违反了标记的一致性,则切换一个连通分量(即连通分量的所有四面体)的标签并合并连通分量(即两个连通分量,从而形成单个连通分量),
o如果三角形遵守标记的一致性,则合并连通分量(即两个连通分量,从而形成单个连通分量)。
连通分量是四面体集合,使得对于该集合中的每对四面体,该集合中存在一条相邻四面体的路径,即四面体两两共享一个三角形,以及它们共享的三角形的路径,这样路径连接所述对的四面体,路径中的每个三角形都遵守标记的一致性。使用这种执行丢弃的方式,当这些三角形分离相同连通分量的四面体时,该方法仅奖励违反标记一致性的三角形。这允许仅当无法通过切换由三角形分离的连通分量的标记来重新建立标记一致性时,才奖励违反标记一致性的三角形。这进一步允许奖励低排名的三角形,因为它们在最后/后期被探索,这样当它们被探索并违反标记一致性时,就不可能通过执行切换来重新建立一致性。
可以使用之前讨论的执行探索和惩罚的方式的任何合适的实现。例如,可以使用四面体网格划分的对偶图。四面体网格划分的对偶图的概念本身是已知的。对偶图是具有节点和连接节点的弧线的图,其中每个节点表示四面体网格划分中的一个四面体,并且其中,如果两个节点表示的四面体共享一个三角形,则每条弧线连接两个节点,则共享三角形由弧线表示。添加一个额外的节点来表示外部区域,每个三角形面向外部区域,从而由对偶图中的一条边表示。特别地,可以通过以三角形顺序将其对应三角形的权重与对偶图的每条弧线相关联并且通过以它们的权重的递减顺序访问对偶图的弧线,从连接三角形到外部区域的弧线开始,来访问三角形。
现在讨论该方法的实现。
在给定一个或多个环作为该部分的边界的情况下,该实现允许确定形成至少部分地由3D点云表示的真实场景的结构的一部分的蒙皮的开放三角化表面。3D点云可能包括非常多的点,可能不完整(例如,有一个或多个孔),和/或可能容易出错。然而这个实现仍然成功。3D点云可能以密度变化为特征,例如这可能非常重要。然而这个实现方式仍然成功。它还可能以异常值为特征,其为在空间中随机分布的低密度错误点集。然而这个实现方式仍然成功。此外,结构的真实形状和/或真实场景的平滑度可能是未知的。然而这个实现方式仍然成功。
换句话说,无论密度变化如何,此实现方式都会在合理的计算时间内从这样的点云计算第二开放三角化表面。因此,该实现方式是健壮的并且不涉及调整参数。
图6示出了该方法的这种实现方式的流程图。如图6所示,该实现方式包括对3D点云的提供S10。3D点云由用户提供。该实现方式还包括计算S20该3D点云的3D德洛内四面体网格划分。由于点云包含三维点,因此生成的德洛内网格划分由相邻的四面体组成,每个四面体由四个三角形包围。该实现方式还包括定义字典顺序,包括提供例如计算,德洛内四面体网格划分的三角形的三角形权重,并提供四面体网格划分的对偶图。德洛内三角剖分的对偶图的概念本身是已知的并且已经在上面讨论过。该图通过三角形共享捕获四面体邻接。该实现方式还包括用三角形权重对对偶图的弧线进行排序,每个弧线表示德洛内网格划分的三角形。从而,对偶图的每个节点表示网格的一个四面体,对偶图的每条弧线表示网格的一个三角形,并且对偶图的每条弧线都按字典顺序标记有对应三角形的排名。当执行确定S50时,该实现特别以降序探索对偶图的弧线,如下文所讨论的。
仍参考图6的流程图,该实施方式还包括提供具有给定边界的第一开放三角化表面。第一开放表面可以由用户直接提供。可替代地,提供第一开放表面可以包括提供S30一个或多个限定给定边界的环。一个或多个环的提供S30可由用户执行或自动执行,如前所述。该实现方式然后可以包括,给定一个或多个环,确定S40由德洛内四面体网格中的三角形集合构成并且其边界与给定边界匹配的第一开放表面。
仍参考图6的流程图,给定德洛内三角剖分的有序双弧,并且给定第一开放三角化表面,实现方式包括识别第一开放三角化表面的双弧,表示第一开放三角化表面的三角形。然后,该实现方式包括基于对偶图及其有序弧并且基于识别的第一开放三角化表面双弧,实现表示结构的一部分的蒙皮的第二开放三角化表面的确定S50的归约算法,从而产生表示蒙皮的重建开放表面。第一开放三角化表面仅受其边界约束,并且通常无法通过最密集的点区域。但是当作为归约算法的输入给出时,算法确定S50具有相同的一个边界/多个边界的最佳表面(即关于最小化字典顺序,从而通过最密集的点区域)。归约算法以这样的方式丢弃对偶图的弧线,使得剩余的对偶弧定义三角化的开放表面,该表面是表示蒙皮的重建的第二开放三角化表面。
此实现方式特别适用于需要生成开放表面(即具有边界的表面)的3D重建应用。在这种情况下,给定一个点云,该实现方式根据用户操作或自动提供一个边界,其由一个或多个多边形环(即闭合折线)和点云中的顶点组成。然后此实现方式允许生成一个开放网格,其顶点属于点云并且其边界与给定的环重合。该实现方式特别允许根据LIDAR数据对表示地形的开放表面进行网格划分,并且由于该实现方式能够控制边界,因此它允许在相邻地形区域之间强制执行公共边界。下文将更详细地讨论该实现方式的应用。
现在简要讨论实现方式的概述,然后进一步详细介绍实现中涉及的算法。
该实现操作循环。3维德洛内复形中的1-循环是循环的并集,或者换句话说,边集合使得每个顶点属于偶数条边。2维德洛内复形中的0循环只是偶数个顶点。图7至图9以少一维,即在2维德洛内复形中示出了该方法的实现方式,该方法对于给定边界找到字典顺序最小链。在这个2D图中,边的总顺序在于比较它们的长度。图7示出了在S30处提供的环A,环A由四个顶点组成,在图7上用大的圆点表示。图8示出了具有环A作为边界的开放表面的确定S40,确定S40在于计算限定所提供的集合A的链Γ0,即具有A作为边界,即代数符号
Figure BDA0003337803340000261
通过图8上的虚线示出了链Γ0。用于实现该确定步骤S40的算法将在下文进一步讨论,但也可以使用替代的合适算法,例如替代的合适的组合几何算法,如前所述。图9说明了确定S50,其在于,给定第一步的产生的链Γ0,计算具有与Γ0相同边界(实际上同源于)的字典顺序最小链Γ,即,在代数符号中,
Figure BDA0003337803340000262
链Γ由图9上的虚线折线表示。下文将进一步讨论实现该确定步骤S50的算法。
现在讨论本实现中涉及的概念。
单纯复形
考虑
Figure BDA0003337803340000263
点的独立族A=(a0,...,ad)。由A跨越的d单形σ是所有点的集合:其中
Figure BDA0003337803340000264
Figure BDA0003337803340000265
任何由A的子集跨越的单形称为σ的面。单纯复形K是单形的集合,使得K的单形的每个面都在K中,并且K的两个单形的交集要么是空的,要么是公共面。单纯复形的维数是其单形的最大维数。单纯复形概括了图,因为图可以定义为1维单纯复形。如果一个d维单纯复形是d维的,并且任何单形具有d维的至少有一个共面,则称它为纯的。
单形链
设K是维数至少为d的单纯复形。链的概念可以用任何环中的系数来定义,但是在本公开中,该定义限于域
Figure BDA0003337803340000266
中的系数。系数在
Figure BDA0003337803340000267
中的d链A是d单形的形式和:
Figure BDA0003337803340000271
令Cd(K)为复形K中d链的域
Figure BDA0003337803340000272
上的向量空间。将单形σi前面的系数
Figure BDA0003337803340000273
解释为表示链A中存在σi,d链A可以看作是单形集合:对于d单形σ和d链A,如果A中的σ的系数为1,则可以写成σ∈A。根据这个约定,两条链的总和对应于它们集合上的对称差异。在下文中,d单形σ也可以解释为仅包含d单形σ的d链。
边界算子
对于d单形σ=[a0,...,ad],边界算子定义为算子:
Figure BDA0003337803340000274
Figure BDA0003337803340000275
其中符号
Figure BDA0003337803340000276
表示顶点ai从数组中删除。具有零边界的链称为循环。边界算子
Figure BDA0003337803340000277
的核称为d循环群,并且算子
Figure BDA0003337803340000278
的图像是d边界群。对于某些(d+1)链B,两条d链A和A'是同源的
Figure BDA0003337803340000279
字典顺序
给定K的d单形的全序,σ1<···<σn,其中n=dimCd(K)。根据这个顺序,d链上的字典全序可以定义如下。
Figure BDA00033378033400002710
这个全序自然扩展到Cd(K)上的严格全序
Figure BDA00033378033400002711
在本公开的上下文中,四面体网格划分的三角化表面上的字典顺序是由四面体网格划分的三角形上的三角形顺序引起的,其是四面体网格划分的三角形上的全序。
问题:给定边界的字典顺序最优链(LOCGB)
该实现方式考虑了以下问题。
问题1:给定一个在d单形和d链Γ0∈Cd(K)上有全序的单纯复形K,找到:
Figure BDA00033378033400002712
问题2:给定一个单纯复形K,在d单形上有全序和(d-1)循环A,检查A是否是边界:
Figure BDA0003337803340000281
如果是这种情况,找到以A为界的最小d链Γ:
Figure BDA0003337803340000282
在问题2中,找到集合
Figure BDA0003337803340000283
中的表示性Γ0,使得
Figure BDA0003337803340000284
就足够了:然后仍求解问题1以找到最小d链Γmin,使得
Figure BDA0003337803340000285
如下文进一步讨论,该实现方式通过分两步求解问题2来计算表示蒙皮的开放三角化表面:给定一个或多个环A,确定S40在集合
Figure BDA0003337803340000286
中找到表示性Γ0,使得
Figure BDA0003337803340000287
然后,确定S50求解问题1以将最小d链Γmin确定为开放三角化表面,使得
Figure BDA0003337803340000288
d伪流形
d伪流形是一个纯d维单纯复形,其中每个(d-1)面恰好有两个d维共面。
对偶图
d伪流形M的对偶图是顶点与M的d单形一一对应且边与M的(d-1)单形一一对应的图:当且仅当e对应于其共面对应于v1和v2的(d-1)面时,边e连接图的两个顶点v1和v2
强连通d伪流形
强连通d伪流形是其对偶图连通的d伪流形。
共边界算子
将图G视为1维单纯复形,设共边界算子
Figure BDA0003337803340000289
为单形的规范基中边界算子
Figure BDA00033378033400002810
的矩阵转置定义的线性算子。为了避免引入非必要的形式定义,共边界算子是在链上定义的,因为对于有限单纯复形,规范内积定义了链和上链之间的自然双射。
备注1
对于给定的图
Figure BDA00033378033400002811
Figure BDA00033378033400002812
和ε分别表示它的顶点和边集。设
Figure BDA00033378033400002813
是一个给定的(d+1)伪流形。对于d链
Figure BDA00033378033400002814
和(d+1)链
Figure BDA00033378033400002815
Figure BDA00033378033400002816
Figure BDA00033378033400002817
Figure BDA00033378033400002818
表示其相应的
Figure BDA00033378033400002819
的对偶图
Figure BDA00033378033400002823
中的双1链和双0链。以下成立:
-对于顶点集合
Figure BDA00033378033400002820
正是
Figure BDA00033378033400002821
中连接V0中的顶点与
Figure BDA00033378033400002822
中的顶点的边集合。
-若α∈Cd(M)且β∈Cd+1(M),则
Figure BDA0003337803340000291
现在讨论用于求解问题1的算法,从而实现如前所述的确定S50。在这个讨论中,让
Figure BDA0003337803340000292
是一个单纯复形,它被假定为一个强连通的(d+1)伪流形,其d同源性是微不足道的。在当前讨论的实现方式中,
Figure BDA0003337803340000293
是通过完成3D德洛内复形(即四面体网格划分)获得的
Figure BDA0003337803340000294
的特定三角剖分。首先,给出问题1的重构。
问题1的重构
在一般情况下,该实现通过首先确定d链Γ0使得
Figure BDA0003337803340000295
(对应于步骤S40),然后求解问题1(对应于步骤S50)来找到问题2的解决方案。假设
Figure BDA0003337803340000296
有一个微不足道的d同源,可以用所有的d循环都是边界来表示:
Figure BDA0003337803340000297
因此,问题1可以简化为以下问题。
问题1.1:给定一个强连通的(d+1)-伪流形
Figure BDA0003337803340000298
在d单形和d链
Figure BDA0003337803340000299
Figure BDA00033378033400002910
上有一个全序,找到:
Figure BDA00033378033400002911
事实上,由于上面做的的备注1,如果
Figure BDA00033378033400002912
是伪流形
Figure BDA00033378033400002913
的对偶图,问题1.1可以重构如下。
问题1.2:给定一个连通图
Figure BDA00033378033400002914
在ε上有全序和边集合
Figure BDA00033378033400002915
找到对字典顺序
Figure BDA00033378033400002916
最小的集合
Figure BDA00033378033400002917
使得
Figure BDA00033378033400002918
是连接可能为空的集合
Figure BDA00033378033400002919
中为
Figure BDA00033378033400002920
的补集的顶点的边的集合。
其中和
Figure BDA00033378033400002921
表示
Figure BDA00033378033400002922
上对应1链的总和。
标记
在本实现方式中,标记是一种着色,但也可以使用其他类似的标记。标记有两个给定的标签,它们是表示“蓝色”和“红色”的两个元素字母表{b,r}及其排列集合σ{b,r}={ident,swap}定义的ident(b)=b,ident(r)=r,swap(b)=r和swap(r)=b。
增广图
增广图是三元组
Figure BDA00033378033400002923
其中
Figure BDA00033378033400002924
是一个(可能不连通)图,并且π:ε→σ{b,r}将在σ{b,r}中的排列关联到图的每个边。给定边
Figure BDA00033378033400002925
的子集,通过只保留ε′中的边获得的增广图表示为
Figure BDA0003337803340000301
其中排列分配是π到ε′的限制。
标签分配
标签分配是一个映射
Figure BDA0003337803340000302
它将标签(即颜色)与图的每个节点相关联。
令人满意的分配
如果存在与π一致的分配
Figure BDA0003337803340000303
则称增广图
Figure BDA0003337803340000304
承认令人满意的分配,这意味着,对于每条边[v1,v2]∈ε,有:
Figure BDA0003337803340000305
然后也可以说该图遵守标记的一致性。
备注2
观察到如果
Figure BDA0003337803340000306
是一个令人满意的分配并且
Figure BDA0003337803340000307
Figure BDA0003337803340000308
中的一个连通分量,那么与
Figure BDA0003337803340000309
上的
Figure BDA00033378033400003010
和Cc上的
Figure BDA00033378033400003011
重合的分配
Figure BDA00033378033400003012
也是一个令人满意的分配。
有效切割
给定一个增广图
Figure BDA00033378033400003013
如果
Figure BDA00033378033400003014
承认一个令人满意的分配,则边集合Γ∈ε被称为
Figure BDA00033378033400003015
的有效切割。因为ε是一个微不足道的有效切割,所以有效切割的集合不是空的。
可以制定另一个问题来求解问题1.2。
问题1.3:给定一个增广图
Figure BDA00033378033400003016
和ε上的全序,找到
Figure BDA00033378033400003017
的字典顺序最小有效切割Γmin
Figure BDA00033378033400003018
以下引理成立:
引理1:问题1.2的解是问题1.3对增广图
Figure BDA00033378033400003019
的解:
Figure BDA00033378033400003020
引理1的证明:
首先,如果Γ+Γ0是将可能为空的集合
Figure BDA00033378033400003021
中的顶点与其补集
Figure BDA00033378033400003022
中的顶点连接起来的边的集合,那么
Figure BDA00033378033400003023
承认一个令人满意的分配,这意味着Γ是
Figure BDA00033378033400003024
的有效切割。
实际上,考虑以下分配:
Figure BDA0003337803340000311
考虑一条边e∈ε\Γ。观察到在这种情况下,当且仅当e∈Γ0时,e∈Γ0+Γ=(Γ0∪Γ)\(Γ0∩Γ)。如果e的顶点都在B中或都在
Figure BDA0003337803340000312
中,则两个顶点都具有相同的标签
Figure BDA0003337803340000313
并且由于在这种情况下,
Figure BDA00033378033400003128
与e的顶点的标记一致。如果现在e将B中的一个顶点与一个顶点
Figure BDA0003337803340000315
连接起来,那么它们的标签就不同了,因为在这种情况下e∈Γ0,得到
Figure BDA0003337803340000316
这又是一致的。因此,
Figure BDA0003337803340000317
Figure BDA0003337803340000318
的令人满意的分配。
其次,如果Γ是
Figure BDA0003337803340000319
的字典顺序最小有效切割,则Γ+Γ0是将可能为空的集合
Figure BDA00033378033400003110
中的顶点与其补集
Figure BDA00033378033400003111
中的顶点连接起来的边的集合。
实际上,设
Figure BDA00033378033400003112
成为
Figure BDA00033378033400003113
的一个令人满意的分配。根据满足分配的定义,如果
Figure BDA00033378033400003114
e与其顶点的标记一致。首先观察到,如果e∈Γ,那么,由于Γ在有效切割中最小,
Figure BDA00033378033400003115
与其顶点的标记不一致,因为如果一致,则Γ\{e}将再次成为有效切割,与Γ的最小性冲突。
考虑集合B={v,L(v)=b}。可以系统地考虑四种可能的情况。
如果
Figure BDA00033378033400003116
则e与其顶点的标记一致,并且由于
Figure BDA00033378033400003117
这意味着它的顶点要么都在B中,要么都在
Figure BDA00033378033400003118
中。
如果e∈Γ0\(Γ0∩Γ),那么e与其顶点的标记一致,并且由于
Figure BDA00033378033400003119
这意味着它的一个顶点在B中,另一个在
Figure BDA00033378033400003120
中。
如果e∈Γ\(Γ0∩Γ),那么e与其顶点的标记不一致,并且由于
Figure BDA00033378033400003121
这意味着它的一个顶点在B中,另一个在
Figure BDA00033378033400003122
中。
如果e∈Γ0∩Γ,那么e与其顶点的标记不一致,并且由于
Figure BDA00033378033400003123
Figure BDA00033378033400003124
这意味着它的顶点要么都在B中,要么都在
Figure BDA00033378033400003125
中。
总而言之,当且仅当e∈Γ+Γ0时,e将B中的顶点与ε\B中的顶点连接起来。
设Γmin和Γ′minmin分别为问题1.2和问题1.3的解。上面已经证明
Figure BDA00033378033400003126
承认一个令人满意的分配,并且根据问题1.3的定义,
Figure BDA00033378033400003127
上面也证明了存在顶点集合
Figure BDA0003337803340000321
使得Γmin+Γ′min正是连接B中的一个顶点和
Figure BDA0003337803340000322
中的一个顶点的边的集合。根据问题1.2的定义,
Figure BDA0003337803340000323
并且因此Γmin=Γ′min
这证明了引理。
备注3
如果增广图
Figure BDA0003337803340000324
承认令人满意的分配,并且如果e1,...,en
Figure BDA0003337803340000325
中的闭合路径,则:
Figure BDA0003337803340000326
其中乘积是指函数组合。
引理2:令
Figure BDA0003337803340000327
是ε上的总阶数<的增广图。令
Figure BDA0003337803340000328
使得Γmin
Figure BDA0003337803340000329
的字典顺序最小有效切割。令e*=(v1,v2)∈E使得e*<min{e∈ε′}。
那么
Figure BDA00033378033400003210
的字典顺序最小有效切割是Γmin或Γmin∪{e*}。
此外,如果
Figure BDA00033378033400003211
Figure BDA00033378033400003212
的一个令人满意的分配,那么当且仅当发生以下两种情况,Γmin
Figure BDA00033378033400003213
的字典顺序最小有效切割:
a)v1和v2
Figure BDA00033378033400003214
中处于同一个连通分量中,并且π(e*)与
Figure BDA00033378033400003215
一致,
b)v1和v2不在
Figure BDA00033378033400003216
中的同一个连通分量中。
在情况a)中,
Figure BDA00033378033400003217
又是一个令人满意的分配
Figure BDA00033378033400003218
在情况b)中,如果π(e*)=ident,那么
Figure BDA00033378033400003219
又是
Figure BDA00033378033400003220
的令人满意的分配。
如果现在π(e*)=swap,令Cc(v1)成为
Figure BDA00033378033400003221
中v1的连通分量。
Figure BDA00033378033400003222
定义为:
Figure BDA00033378033400003223
Figure BDA00033378033400003224
的令人满意的分配。
引理2的证明:
令Γmin
Figure BDA00033378033400003225
的字典顺序最小有效切割,
Figure BDA00033378033400003226
Figure BDA00033378033400003227
的字典顺序最小有效切割。
由于
Figure BDA0003337803340000331
承认一个令人满意的分配,并且
Figure BDA0003337803340000332
Figure BDA0003337803340000333
同样的分配满足
Figure BDA0003337803340000334
ε′∩Γmin则是
Figure BDA0003337803340000335
的有效切割,因此
Figure BDA0003337803340000336
由于
Figure BDA0003337803340000337
Figure BDA0003337803340000338
的有效切割,那么
Figure BDA0003337803340000339
{e*}并且因此:
Figure BDA00033378033400003310
由于e*<min{e∈ε′},对于字典顺序,ε′∪{e*}中没有严格在Γmin
Figure BDA00033378033400003311
之间的集合。因此,
Figure BDA00033378033400003312
要么等于Γmin,要么等于
Figure BDA00033378033400003313
并且引理的第一个断言得到了证明。
如果v1和v2
Figure BDA00033378033400003314
中的同一个连通分量中,那么如果π(e*)与
Figure BDA00033378033400003315
不一致,然后考虑e与连接v1和v2
Figure BDA00033378033400003316
中的路径e1,...,en的闭合路径串联。由于
Figure BDA00033378033400003317
Figure BDA00033378033400003318
使得
Figure BDA00033378033400003319
由于e*,e1,...,en是闭合路径,备注3暗示
Figure BDA00033378033400003320
不承认任何令人满意的分配。
这表明如果v1和v2
Figure BDA00033378033400003321
中的同一个连通分量中,那么如果π(e*)与
Figure BDA00033378033400003322
不一致,则Γmin不在
Figure BDA00033378033400003323
的有效切割中。
现在,如果v1和v2
Figure BDA00033378033400003324
中的同一个连通分量中并且π(e*)与
Figure BDA00033378033400003325
一致,则
Figure BDA00033378033400003326
再次是
Figure BDA00033378033400003327
的令人满意的分配,那么Γmin
Figure BDA00033378033400003328
的有效切割。由于
Figure BDA00033378033400003329
要么等于Γmin或Γmin∪{e*},那么在这种情况下
Figure BDA00033378033400003330
仍然考虑情况b),其中v1和v2不在
Figure BDA00033378033400003331
中的同一个连通分量中。在这种情况下,如果π(e*)与
Figure BDA00033378033400003332
一致,则
Figure BDA00033378033400003333
也是
Figure BDA00033378033400003334
的令人满意的分配。
如果现在π(e*)与
Figure BDA00033378033400003335
不一致,我们从备注2中知道,引理中定义的
Figure BDA00033378033400003336
再次是
Figure BDA00033378033400003337
的令人满意的分配。由于v1不在
Figure BDA00033378033400003338
中v2的连通分量中,π(e*)与
Figure BDA00033378033400003339
一致,结论与前一种情况相同。
这证明了引理2。
现在讨论实现确定S50的归约算法。该算法是在上面讨论的问题1、2和1.1到1.3的一般上下文中提出的。将其应用于在S20计算的德洛内四面体网格划分的对偶图G,应用π将交换排列与属于第一开放三角化表面对偶图的每条边相关联,并将恒等排列与每个其他边相关联。
归约算法由以下伪代码描述
算法1:字典顺序最小有效切割
输入:
Figure BDA0003337803340000341
且按降序ε={ei,i=1,...,n}
输出:Γmin
Figure BDA0003337803340000342
该算法将根据字典顺序按降序排序的边集合作为输入。对连通分量的表示r的操作SwapCC在于交换其所有元素的标签,如备注2或引理2。算法2以降序访问边,这允许在准线性时间内构建Γmin。事实上,一开始,由于
Figure BDA0003337803340000343
任何字典顺序最小有效切割都必须包含Γmin。事实上,这个属性在每一步都保持有效,当考虑下一条边e时,当前Γmin与小于或等于e的边集的并集被称为有效切割。出于这个原因,在Γmin中插入e的决定不依赖于G中较小边的集合。注意,该属性允许在单次遍中构建Γmin,使用降序处理边。
命题1:算法1对于给定的增广图
Figure BDA0003337803340000351
计算问题1.3的解。假设边ε的输入集已排序,该算法的时间复杂度为O(nα(n)),其中n是ε的基数,α是逆阿克曼函数。
命题1的证明:
虽然MakeSet、FindSet和UnionSet是对不相交集合数据结构的标准操作,但SwapCC的简单实现将需要对连通分量的每个元素进行基本操作。然而,不相交集数据结构的一个变体允许以准常数时间复杂度来实现它。
一种可能性是使用来自基本连通分量的映射通过基本连通分量对实现连通分量,一个“蓝色”和一个“红色”指向包含它的对。修改后的MakeSet操作然后创建这样一个对,其中一个顶点位于蓝色分量中,一个顶点位于空的红色分量。修改后的FindSet操作应用标准FindSet操作,然后使用映射返回包含它的对。两个配对连通分量之间的修改UnionSet操作对相应的“蓝色”和“红色”基本连通分量应用标准UnionSet操作,并将结果配对到新配对的连通分量中。SwapCC则仅在于交换配对的连通分量内的“蓝色”和“红色”基本连通分量。
这种实现操作的方式在实践中很方便,因为它使用标准的不相交集数据结构作为黑盒。然而,从基本连通分量到包含它的对的映射可能会向复杂性添加log(n)因子。如果愿意调整其实现方式,则可以保留不相交集数据结构的nα(n)复杂度。简要概述一下:可以将{ident,swap}中的属性附加到每个“父”关系,这是不相交集数据结构的核心,而不会改变其复杂性。该属性表示节点与其父节点的颜色相同还是不同。
MakeSet使用一个元素创建连通分量,该元素是它自己的父元素,其ident属性与此关系相关联。该属性表示作为其自身表示的顶点颜色为“蓝色”。然后FindSet操作需要沿路径组合排列,包括从表示到自身的最后一个关系,它定义了表示相对于“蓝色”的颜色:这通过将这种组合应用于颜色“蓝色”来确定节点的实际颜色。UnionSet将表示其父的元素与它们各自颜色所需的属性ident或swap相关联。SwapCC仅交换表示的颜色,即将与关系相关联的属性的交换应用至其自身作为其自己的父级。
这证明了命题1。
现在参考图10至32进一步讨论算法1,图10至32示出了在德洛内三角剖分的对偶图上运行的示例算法1。每个图都显示了算法以及对偶图上算法当前步骤的说明,当前步骤在图中适当的地方被圈出。
图10显示了德洛内三角剖分的图形表示。边表示三角形,由边连接的圆点表示四面体。边∞表示三角形,每个三角形都将一个四面体与三角剖分的外部分开。其余边从7到1编号,其对应于三角形顺序的降序排名:边7表示三角形顺序中排名较高的三角形,边6表示三角形顺序中排名第二高的三角形,等等。显示为粗线的边,即边7、5和2,表示第一开放三角化表面的三角形。算法1将找到与由边7、5和2表示的三角形形成的路径具有相同端点的三角形的字典顺序最小路径。
图11和图12图示了图10中图示的三角剖分的对偶图。在图11中,对偶图与三角剖分叠加,在图12中,对偶图单独显示。对偶图的边标有与图10中所示的其相应三角形相同的数字。
边7、5和2,表示第一开放三角化表面的三角形,在图13中被强调,其中它们显示为粗线。在接下来的图中将省略该表示。边7、5和2已被分配开关/交换排列。其他边已被分配恒等排列。
图14说明了算法的第一步,其中对偶图的所有顶点都分配有相同的标签“b”。另一个标签是“r”,尚未分配给任何顶点。这些顶点由图14中的大圆点表示。最终将包含确定的第二开放三角化表面的三角形的所有双边的解Γmin被初始化为空。
图15说明了算法的下一步。首先访问边∞。它们都遵守标记一致性,因为它们都被分配了恒等排列,而在这一步的顶点都被分配了标签“b”。由这些边分离的对偶图的连通分量因此被合并,并且这些边不添加到Γmin
图16和图17说明了算法的下一步。现在访问边7。边7被识别为违反了标记的一致性,因为边7被分配了交换排列,同时它分离了两个具有相同标签的四面体。此外,边7将属于两个不同连接分量的两个四面体分开。如图17所示,两个连通分量之一的标签因此被交换,然后两个连通分量合并。交换的结果是用标签“r”标记顶点,这些顶点在图17中并在接下来的图由小的灰色圆点示出。边7未添加到Γmin。换句话说,边7被丢弃。
图18和图19说明了算法的下一步。现在访问边6。边6被识别为违反了标记的一致性,因为边6被分配了恒等排列,同时它将具有不同标签的两个四面体分开。此外,边6将属于两个不同连通分量的两个四面体分开。如图19所示,两个连通分量之一的标签因此被交换,然后两个连通分量合并。边6未添加到Γmin。换句话说,边6被丢弃。
图20和图21说明了算法的下一步。现在访问边5。边5被识别为违反了标记的一致性,因为边5被分配了交换排列,同时它分离了两个具有相同标签的四面体。此外,边5将属于两个不同连接分量的两个四面体分开。如图21所示,两个连通分量之一的标签因此被交换,然后两个连通分量合并。边5未添加到Γmin。换句话说,边5被丢弃。
图22和图23说明了算法的下一步。现在访问边4。边4被识别为违反了标记的一致性,因为边4被分配了恒等排列,同时它将具有不同标签的两个四面体分开。此外,边4将属于同一连通分量的两个四面体分开。如图23所示,边4因此被添加到解Γmin(由图23中边4的切割表示)。换句话说,边4得到了奖励。
图24说明了算法的下一步。现在访问边3。边3被识别为不违反标记的一致性,因为边3被分配了恒等排列,同时它分离了两个具有相同标签的四面体。如图24所示,边3因而没有添加到解Γmin中。换句话说,边3被丢弃。由边3分离的两个四面体已经在同一个连通分量中。
图25和图26说明了算法的下一步。现在访问边2。边2被识别为违反了标记的一致性,因为边2被分配了交换排列,同时它分离了两个具有相同标签的四面体。此外,边2将属于同一连通分量的两个四面体分开。如图26所示,边2因此被添加到解Γmin(由图26中边2的切割表示)。换句话说,边2得到了奖励。
图27和图28说明了算法的下一步。现在访问边1。边1被识别为违反了标记的一致性,因为边1被分配了恒等排列,同时它将具有不同标签的两个四面体分开。此外,边1将属于同一连通分量的两个四面体分开。如图28所示,边1因此被添加到解Γmin(由图28中边1的切割表示)。换句话说,边1得到了奖励。
图29说明了算法的结束:所有边都已被访问。图30显示了输出,它在于被奖励边4、2和1。图31和图32显示了对应的输出三角形4、2和1。输出三角形在图31和图32上显示为粗黑线,并形成确定的第二开放三角化表面。
现在讨论用于执行具有一个或多个环作为边界的第一开放三角化表面的确定S40的算法。将讨论该算法以用于计算(给定
Figure BDA0003337803340000381
中点云的德洛内复形中的1-循环A)德洛内复形中的2链Γ0,使得δΓ0=A。算法在德洛内复形是四面体网格划分(例如计算为S20)并且其中1-循环由S30处提供的一个或多个环形成的情况下的应用实现了第一开放三角化表面的确定S40。
在进一步讨论该算法之前,先进一步讨论德洛内复形概念。
德洛内复形
(有限)点集合
Figure BDA0003337803340000382
的德洛内复形Del(V)是点集凸包的德洛内三角剖分的四面体、三角形、边和顶点组成的单纯复形,欧几里得空间
Figure BDA0003337803340000383
中V的Voronoi图的对偶。众所周知(例如,由于应用于全维Voronoi单元集合的神经定理)德洛内复形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的解Γ0
3D德洛内复形中顶点的下链
单纯复形K中单形τ的链接lkK(τ)是由所有单形σ∈K构成的单纯复形,使得τ∪σ∈K且
Figure BDA0003337803340000384
令Del(V)是
Figure BDA0003337803340000385
中顶点集合V的德洛内复形,使得V中没有顶点对具有相同的z坐标。顶点a∈V的下链llkDel(V)(a)是由链接lkDel(V)(a)中的所有单形组成的单纯复形,其顶点的所有z坐标都小于a的z坐标。
图33示出了顶点330的链接332和顶点330的下链334,其中轴表示z坐标。
当Del(V)为三维时,顶点a的链接lkDel(V)(a)和下链llkDel(V)(a)是二维单纯复形:包含a的Del(V)的每个四面体在lkDel(V)(a)中产生一个三角形,包含a的Del(V)的每个三角形在lkDel(V)(a)中产生一条边,并且包含a的Del(V)的每个边在lkDel(V)(a)中产生一个顶点。当且仅当它们的所有顶点的z坐标都小于a的z坐标za时,这些三角形或边属于llkDel(V)(a)。
图34图示了顶点a的下链LL。
众所周知,拓扑空间,特别是单纯复形,如果它具有点的同源类型,则称其为可收缩的。值得注意的是,一个可收缩单纯复形K是连通的,这意味着K中的任何一对顶点都可以通过K中的边路径连接。实现S40的算法集成了这样一个事实,即在德洛内复形中,顶点的下链要么是空的,要么是可收缩的。具体来说,以下引理成立:
引理3:令Del(V)是
Figure BDA0003337803340000391
中顶点集合V的德洛内复形。设z为
Figure BDA0003337803340000392
中某个点的第d个坐标。假设V中没有一对顶点具有相同的z。令a∈V并用llkDel(V)(a)表示Del(V)中a的下链。然后:
当且仅当顶点a在V中具有最小坐标z,下链llkDel(V)(a)为空,
如果a的z坐标在V中不是最小的,则llkDel(V)(a)是可收缩的。
引理3的证明:
用za表示,a的z坐标。根据德洛内三角剖分和lkdel(V)(a)的定义,lkDel(V)(a)中的顶点与对a的Voronoi单元的边界有贡献的(可能是无界的)面之间存在一对一的对应关系。
根据定义,当且仅当其Voronoi单元与a的Voronoi单元具有公共边界且vz<za时,z坐标为vz的顶点v位于a的下链。因此,a的Voronoi单元包含在包含a的半空间中,并以a和v的平面平分线为界。因此,当且仅当从a开始并指向负z的垂直半线不包含在a的Voronoi单元中时,才存在这样的顶点。人们看到,当且仅当a在V中具有最小z并且第一个陈述被证明时,从a开始并指向负z的垂直半线包含在a的Voronoi单元中。
a的Voronoi单元的下部包络是与a下链中的a顶点对偶的面的并集。当这个下部包络不为空时,它在水平面上的投影是具有凸二维多面体的同胚。因此,该下部包络是可收缩的。由于v的下链是Voronoi单元的下部包络中的面集合的神经,因此引理中的第二个陈述则来自神经定理。
这证明了引理3。
现在讨论用于计算三维德洛内复形中给定边界的2链的算法,其实现S40。
该算法由以下伪代码描述:
算法2:对于给定边界寻找三角形集合
输入:Del(V)德洛内复形状和A0Del(V)中零边界的边集合
输出:Γ0Del(V)中的三角形集合使得
Figure BDA0003337803340000401
Figure BDA0003337803340000402
换句话说,给定一个2循环A0,算法2计算一个2链Γ0,使得
Figure BDA0003337803340000403
零链或环由集合理论表达式
Figure BDA0003337803340000404
而不是代数“0”表示,因为实际实现操作的是集合而不是向量。然而,加法模2用“+”表示,以避免有点重的不相交联合符号。例如代数表达式:A←A+e表示集合理论表达式:A←(A∪{e})\(A∩{e})。
算法2的原理及正确性
现在参考说明算法的图35至37讨论算法2的原理和正确性。Γ0初始化为空集,A初始化为A0。如果A为空,则算法返回。如果不为空,则过程GetHighestVertex(A)返回a,A中最高的顶点,即具有最大z坐标的顶点。
由于A是一个循环,它的边界根据定义为零。如图35所示,由此可知,A的偶数条边将a与过程GetAdjacentVertices(a,A)返回的Del(V)中的a的下链llkDel(V)(a)中的顶点的集合Va连接。
由于a是V中的最高顶点,Va中的顶点低于a并通过边连接到a:因此Va是下链llkDel(V)(a)的顶点的子集。这个集合不是空的,因为A是一个循环,它有偶数基数。过程GetLowerLink(a,Del(V))返回Del(V)中a的下链的1骨架LL,即顶点和边是下链的顶点和边的图,如图35所示。
然后,算法2的主要步骤在于用通过连接Va中的顶点对的llkDel(V)(a)中的路径E=GetEdgesConnecting(Va,LL)(如图36所示)将a连接到Va中的顶点的边替换该偶数条边,并为这些路径中的每条边e添加Γ0中对应的三角形a∨e(如图37中的阴影线所示)。
图37显示了主步骤之后更新的A循环。在算法的每一步之后,都保留了以下属性:
Figure BDA0003337803340000411
实际上,在此步骤中,将以下2链添加到Γ0
Figure BDA0003337803340000412
(3)的边界可以评估为:
Figure BDA0003337803340000413
由于根据E=GetEdgesConnecting(Va,LL)的定义,有
Figure BDA0003337803340000414
并且E=∑e∈Ee,所以得到:
Figure BDA0003337803340000415
由于(4)的右手边恰好是在步骤中添加到A的链,所以(2)得到证明。因为,从(2)开始,A被初始化为0并由(3)的边界更新。A在每一步都保持一个循环。
只要A不为空,它就必须至少包含2个顶点。因此,它的最高顶点a不能是Del(V)中的最低顶点,并且引理3然后断言它的下链LL是非空和可收缩的,这是过程GetEdgesConnecting(Va,LL)的前提。
因为,在每一步之后,A中最高顶点的z坐标减小,算法必须终止,
Figure BDA0003337803340000421
并且(2)然后根据需要给出
Figure BDA0003337803340000422
过程GetHighestVertex(A)
这需要在A中边的演化顶点集上维护一个有序映射。如果n是Del(V)的大小,由于Del(V)的每个顶点只能插入一次,所有对该过程的调用的总成本是O(nlogn)。
过程GetLowerLink(a,Del(V))
过程GetLowerLink(a,Del(V))返回Del(V)中a的下链的1骨架LL,即其顶点和边为下链的顶点和边的图,如图35中所示。由于Del(V)中没有两个顶点具有相同的z坐标,因此可以在Del(V)中定义以下边上的全序。Del(V)中的每条边都可以用有序的顶点对(v1,v2)表示,使得z(v1)>z(v2)。然后可以在Del(V)的边上定义以下全序:
Figure BDA0003337803340000423
或者v1=v′1且z(v2)≥z(v′2)。
换句话说,(v1,v2)≤(v′1,v′2)表示要么v1严格高于v′1,要么v1=v′1且v2严格高于v′2。沿此顺序对所有边进行排序(或等效地将它们插入到有序集数据结构中)的成本为O(nlogn),其中n是Del(V)的大小。观察到顶点a的下链llkDel(v)(a)的顶点集合与其第一个顶点为a的有序对集合一一对应。(a,.)形式的这些对在有序集合中是连续的。
类似地,Del(V)中的每个三角形都可以由顶点(v1,v2,v3)的有序三元组表示,使得z(v1)>z(v2)>z(v3)并且可以定义Del(V)的三角形上的以下全序:
Figure BDA0003337803340000424
或v1=v′1且z(v2)>z(v′2))
或v1=v′1且v1=v′1且z(v3)>z(v′3)。
同样,按照这个顺序对所有三角形进行排序(或等效地,将它们插入到有序集合数据结构中)成本为O(nlogn),其中n是Del(V)的大小。如前所述,顶点a的下链llkDel(V)(a)的边集与其第一个顶点是a的有序三元组集一一对应。这些形式为(a,.,.)的三元组在有序三元组集中是连续的。
可以观察到,这种构造表明所有下链的所有顶点的集合与Del(V)的边一一对应,并且所有下链的所有边的集合都在Del(V)中与三角形一一对应,因此所有下链的1骨架尺寸的总和由Del(V)的尺寸n上黏合。
因此,在产生成本为O(nlogn)的有序边和三角形集的预处理步骤之后,每次调用过程GetLowerLink花费log(n)来查找有序边和三角形集中的条目,并且llkDel(V)(a)的顶点和边在各自的有序集合中连续跟随,其大小上限为n。GetLowerLink的总成本然后为O(nlogn)。
过程GetAdjacentVertices(a,A)
如果A被给定是一组边,即一组顶点对,那么就可以将关于A的大小的时间线性的一组其近邻与每个顶点相关联。因为,随着在算法中A的更新,每条边只能插入一次,保持这些近邻关系的成本最多为O(nlogn)。由于每个顶点a∈V最多调用一次GetAdjacentVertices(a,A),并且所有顶点的所有近邻数之和是边数的两倍(每条边连接两个顶点),因此GetAdjacentVertices的总成本为以O(nlogn)为界。
过程GetEdgesConnecting(Va,LL)
这个过程需要Va中的顶点数是偶数并且图LL是连通的作为前提。
用m表示下链LL的大小。一种可能性是计算每对顶点的路径,例如通过O(mlogm)中的Dijkstra算法或通过O(m)中的递归探索(路径不需要是最小的),然后添加(模2)所有这些路径。然而,即使该解决方案在实践中可能是有效的,它也不会给出最优的最坏情况复杂度。实际上,在最高顶点a0的下链包含所有其他顶点(m=n-1)并且A将a0连接到LL中的2k个顶点的特定情况下,我们需要计算LL中的k条路径,成本为km,因此,如果k=m/2=(n-1)/2,这给出了n中的成本二次方。
现在讨论GetEdgesConnecting的O(m)算法,该算法保留算法2的全局O(nlogn)复杂度。
实际上,过程GetEdgesConnecting类似于少一维的全局算法:给定0循环Va,找到1链E,使得
Figure BDA0003337803340000441
然而,这里没有立即归纳。为了应用类似的算法,首先需要在顶点上定义一个顺序,其中除了一个为空的顶点之外,所有顶点的所有下链都是可收缩的。
为了得到这个顺序,我们首先计算LL的生成STLL树,这是可能的,因为它是连通的。由于STLL是连通的,因此可以在STLL中找到E。计算STLL可以使用LL的递归探索在时间O(m)内完成,该递归探索为每个顶点分配一个父字段。为此,可以挑选任意顶点作为根,将其标记为“已访问”,将其父字段分配给“空(NULL)”并将其压入堆栈。然后,当堆栈不为空时,从它弹出顶部顶点v,并且对于所有其未标记为已访问的近邻,将“父”字段分配给v,将它们标记为已访问并将它们压入堆栈。沿着相同的过程,保留O(m)复杂度,可以为每个顶点分配一个整数排名,使得根的排名为0,并且每个非根顶点的排名都高于其父节点。例如,每次顶点被标记为“已访问”时,可以使计数器递增,并将计数器值分配为顶点的排名。
这种情况与引理3的情况类似,其中高度z被顶点排名代替。实际上,每个不是根的顶点在STLL中都有一个作为下链的单个顶点:它在STLL中的唯一父节点。这个下链然后是可收缩的。根的下链是空的。从STLL开始,现在提出另一种算法,算法3,其中m′<m是树T=STLL中的顶点数。算法3为树中的给定边界找到边集合。
算法3由以下伪代码描述
算法3:为树中的给定边界查找边集合
输入:T,树和V0,由成员数组表示的T中的偶数顶点集
输出:E,T中的边集合,使得
Figure BDA0003337803340000442
Figure BDA0003337803340000443
Figure BDA0003337803340000451
算法3与算法2类似,但少了一维。此处不需要过程GetHighestVertex(V)。
实际上,for循环从最高排名的顶点m′-1迭代到排名为1的顶点,给出了属于V的所需最高顶点,其中高度z被顶点的排名替换。for循环在排名1处结束,因为在每一步V包含偶数个顶点并且Vertex(rank)是V中的最高顶点,这个最高顶点不能是Vertex(0)。
如果一个大小为m的数组包含按其排名索引的所有顶点,则对过程Vertex(rank)的每次调用的成本为O(1)。如果顶点V的演化集合由大小为m的布尔数组表示,其中条目k表示排名为k的顶点的V的成员关系,则成员谓词a∈V的成本为O(1)。当V更新时,更新这个成员数组也可以在时间O(1)内完成。因此,算法中的每一行的成本都是O(1)。出于这个原因,算法3的成本是O(m′)=O(m),而不是O(mlog(m))。正确性证明类似于算法2的正确性证明:它基于这样一个事实,即沿算法保留以下性质:
Figure BDA0003337803340000452
总的来说,证明了以下引理:
引理4:给定大小为n的德洛内复形Del(V)和Del(V)中的1循环(具有零边界的边集合)A0,算法2计算Del(V)中的Γ0,2链(三角形集合),使得在时间O(nlogn)内
Figure BDA0003337803340000453
如前所述,算法1和2可以实施该方法的步骤S40和S50。在这种情况下,字典顺序基于三角形的总顺序,即三角形顺序,现在进一步讨论。
单形排序
用RB(σ)表示最小包围球的半径,用RC(σ)表示2单形σ的外接圆的半径。全序可以在2单形上定义如下:
Figure BDA0003337803340000454
在点位置的一般条件下,可以证明这个顺序是总的。字典顺序
Figure BDA0003337803340000455
是由单形上的这个顺序导出的。可以证明以下命题并显示单形排序和2D德洛内三角剖分之间的紧密链接:
命题2:令
Figure BDA0003337803340000461
且N≥3处于一般位置,并令KP为包含P的德洛内三角剖分的任何二维复形。用βP∈C1(KP)表示由属于凸包
Figure BDA0003337803340000462
的边界的边组成的1链。若
Figure BDA0003337803340000463
则Γmin的单纯复形|Γmin|支持是P的德洛内三角剖分。
现在讨论使用先前讨论的实现的方法的应用示例。
现在参考图38至41讨论使用先前讨论的实现的方法的第一应用。
第一应用允许对部分采集进行网格化,即确定表示真实场景的结构的一部分的蒙皮的开放三角化表面,其中真实场景部分地由部分采集产生的点云表示,例如有孔。第一应用在于现实世界场景中的物理约束(例如遮挡和/或表面的光学特性)可能导致部分和不完整的3D采集的环境。在这些情况下,提供准确且无孔的网格重建可能具有挑战性。通过将定义要重建的表面边界的一个或多个3D路径(即环)作为输入,本发明的方法保证了无孔网格并提供高质量的重建,即使对于噪声采集也是如此。在该第一应用中,一个或多个环由用户定义,如前所述。
图38至图40图示了第一应用的示例。在这些图中所示的示例中,真实场景是建筑场景,包括大教堂结构。3D点云部分地表示了大教堂的结构。应当理解,大教堂是一个例子,第一应用也适用于任何其他建筑场景。图38所示的3D点云包含943K个点。
如图38所示,用户交互地挑选一个有序的点列表,该列表粗略地定义了所需表面的边界。列表用户挑选点由图38上的大圆点表示。然后可能会对边界进行过采样,使得边界上的所有边都存在于点的3D三角剖分中。图39显示了来自用户挑选点列表的过采样边界。然后,该方法有效地对强加边界下的点云进行网格划分,即确定形成大教堂一部分的蒙皮的开放三角化表面(即,大教堂的墙壁与墙壁内外的空气之间的界限)。图40显示确定的蒙皮,在18秒内获得。
图41示出了在步骤S50通过强加边界下的方法确定的开放三角化表面的两个其他示例。
现在参考图42讨论使用先前讨论的实现的方法的第二应用。该第二应用位于大场景网格的上下文中,以及并行化和更新大场景网格。现代采集技术可以生成精确而大量的测量。随着采集范围变大,同时保存所有测量所需的存储容量(RAM或磁盘)可能成为对这些大型场景进行网格划分的限制因素。例如,标准或廉价的计算机受16GB存储器的限制,这对于具有超过10M点的点云来说可能太小了。
该方法通过使用空间平铺将采集分成更小的块来规避这些困难。此外,该方法保证相邻瓦片上的两个网格之间的连接点是共同的。实际上,该方法允许指定包围所得开放三角化表面的循环。换言之,在步骤S30提供的一个或多个环(例如由用户或自动地,如先前所讨论的)允许将场景划分为具有防水公共连接点的较小块。
此外,通过定义受变化影响的区域的边界并重新计算受影响区域内的开放三角化表面,可以有效地执行局部网格编辑。开放三角化表面的其余部分不需要重新计算,并且与受影响区域的连接点将与开放三角化表面的其余部分恰好对应。
图42说明了第二应用。图42显示了一个表示地形的大点云,由于边界的定义(即环),它被网格划分成两部分。环由图42中的圆点表示。换言之,在步骤S50中,对于被定义为具有给定环作为边界的地形的每个区域/地块确定开放三角化表面。通过定义环来施加边界会在图42所示的两个网格之间创建一个公共连接点。
该方法是计算机实现的。这意味着该方法的步骤(或基本上所有步骤)由至少一台计算机或任何类似系统执行。因此,该方法的步骤由计算机执行,可能是全自动的,或半自动的。在示例中,该方法的至少一些步骤的触发可以通过用户-计算机交互来执行。所需的用户与计算机交互的级别可能取决于可预见的自动化程度,并与实现用户愿望的需要保持平衡。在示例中,该级别可以是用户定义的和/或预定义的。
方法的计算机实现的典型示例是使用适用于此目的的系统执行该方法。该系统可以包括耦合到存储器和图形用户界面(GUI)的处理器,该存储器上记录有计算机程序,该计算机程序包括用于执行该方法的指令。存储器还可以存储数据库。该存储器是适合于这种存储的任何硬件,可能包括几个物理上不同的部分(例如,一个用于程序,而可能一个用于数据库)。
图43示出了系统的示例,其中该系统是客户端计算机系统,例如用户的工作站。
该示例的客户计算机包括连接至内部通信总线1000的中央处理单元(CPU)1010,也连接至总线的随机存取存储器(RAM)1070。客户端计算机还被提供有图形处理单元(GPU)1110,其与连接到总线的视频随机存取存储器1100相关联。视频RAM 1100在本领域中也称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储设备(例如硬盘驱动器1030)的访问。适合于有形地体现计算机程序指令和数据的大容量存储器设备包括所有形式的非易失性存储器,包括例如半导体存储器设备,例如EPROM,EEPROM和闪存设备;磁盘,例如内部硬盘和可移动磁盘;磁光盘;CD-ROM盘1040。上述任何内容可以通过专门设计的ASIC(专用集成电路)进行补充或合并至其中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如光标控制设备、键盘等。在客户端计算机中使用光标控制设备以允许用户将光标选择性地定位在显示器1080上的任何期望位置。此外,光标控制设备允许用户选择各种命令并输入控制信号。光标控制设备包括多个信号生成设备,用于将控制信号输入到系统。通常,光标控制设备可以是鼠标,该鼠标的按钮用于生成信号。替代地或附加地,客户计算机系统可以包括敏感垫和/或敏感屏幕。
计算机程序可以包括可由计算机执行的指令,该指令包括用于使上述系统执行方法的单元。该程序可以在任何数据存储介质上是可记录的,包括系统的存储器。该程序可以例如以数字电子电路或计算机硬件、固件、软件或它们的组合来实现。该程序可以被实现为有形地体现在机器可读存储设备中以由可编程处理器执行的装置,例如产品。方法步骤可以通过可编程处理器执行指令程序以通过对输入数据进行操作并生成输出来执行该方法的功能来执行。因此,处理器可以是可编程的并且被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向数据存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。如果需要,可以以高级过程或面向对象的编程语言或汇编或机器语言来实现应用程序。在任何情况下,该语言都可以是编译语言或解释语言。该程序可以是完整的安装程序或更新程序。在任何情况下,程序在系统上的应用都会导致执行方法的指令。

Claims (15)

1.一种用于真实场景的结构的3D重建的计算机实现的方法,所述方法包括:
-提供(S10-S40)第一开放三角化表面,所述第一开放三角化表面是表示结构的至少一部分的3D点云的四面体网格划分的三角形的集合;
-确定(S50)表示所述结构的一部分的蒙皮的第二开放三角化表面,所述确定(S50)探索候选开放三角化表面,每个候选开放三角化表面都是所述四面体网格划分的三角形的集合,并且所述确定(S50)根据字典顺序惩罚所述候选开放三角化表面的高排名,所述字典顺序基于三角形顺序,并且所述字典顺序相对于具有第二三角形的第二候选开放三角化表面对具有第一三角形的第一候选开放三角化表面进行排序,所述第一三角形根据所述三角形顺序的降序排名进行排序,所述第二三角形根据所述三角形顺序的降序排名进行排序,所述三角形顺序惩罚三角形大小,所确定的第二开放三角化表面违反具有两个给定标签的四面体网格划分的标记的一致性,如果三角形属于第一开放三角化表面并且分离两个具有不同标签的四面体,或者如果所述三角形不属于所述第一开放三角化表面并且分离两个具有相同标签的四面体,则所述三角形遵守所述标记的一致性。
2.根据权利要求1所述的方法,其中,所述四面体网格划分呈现以下特性:
-所述四面体网格划分的四面体的并集形成所述点云的点的凸包络;以及
-所述四面体网格划分的任何第一四面体与所述四面体网格划分的与所述第一四面体相交的任何第二四面体之间的相交部分是所述第一四面体的顶点、所述第一四面体的边或所述第一四面体的面。
3.根据权利要求1至2中任一项所述的方法,其中,对于相应的三角形,所述三角形顺序惩罚最小包围圆的半径的高值。
4.根据权利要求3所述的方法,其中,对于具有相同最小包围圆的第一三角形和第二三角形,所述三角形顺序进一步惩罚外接圆的半径的小值。
5.根据权利要求1至4中任一项所述的方法,其中,所述四面体网格划分是正则三角剖分。
6.根据权利要求1至5中任一项所述的方法,其中,所述探索和所述惩罚包括:
-根据所述三角形顺序的降序排名来访问所述四面体网格划分的三角形;以及
-只要能够保持所述标记的一致性,就丢弃具有所述三角形顺序的高排名的已访问三角形。
7.根据权利要求6所述的方法,其中,所述丢弃包括,对于每个已访问三角形,如果所述三角形违反所述标记的一致性,则要么奖励所述三角形,要么调整所述标记以遵守一致性。
8.根据权利要求7所述的方法,其中,所述丢弃还包括,对于每个已访问三角形:
-如果所述三角形分离了处于同一个连通分量中的两个四面体,并且如果所述三角形违反了所述标记的一致性,则奖励所述三角形;
-如果所述三角形分离了处于不同连通分量中的两个四面体:
o如果所述三角形违反了所述标记的一致性,则切换所述连通分量中的一个连通分量的标签并且合并所述连通分量,
o如果所述三角形遵守所述标记的一致性,则合并所述连通分量。
9.根据权利要求1至8中任一项所述的方法,其中,提供所述第一开放三角化表面包括:
-在所述四面体网格划分中提供(S30)一个或多个环;以及
-确定(S40)所述四面体网格划分中以所述一个或多个环为边界的开放三角化表面。
10.根据权利要求1至9中任一项所述的方法,其中,所述结构包括至少一个角结构。
11.根据权利要求1至10中任一项所述的方法,其中,所述3D点云源自摄影测量、激光扫描、激光雷达测量、RGB-D测量和/或医学或工业断层摄影。
12.根据权利要求1至11中任一项所述的方法,其中,所述3D点云表示闭合形状的一部分,和/或所述3D点云的点的数量与所述计算机的存储器大小之间的比值大于预定义的阈值。
13.一种包括指令的计算机程序,所述指令用于执行根据权利要求1至12中任一项所述的方法。
14.一种计算机可读存储介质,其上记录有根据权利要求13所述的计算机程序。
15.一种计算机,包括耦合到存储器的处理器,所述存储器上记录有根据权利要求13所述的计算机程序。
CN202111310725.7A 2020-11-04 2021-11-04 具有开放表面的真实场景的结构的3d重建 Pending CN114445588A (zh)

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.3 2020-11-04

Publications (1)

Publication Number Publication Date
CN114445588A true CN114445588A (zh) 2022-05-06

Family

ID=74180916

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111310725.7A Pending CN114445588A (zh) 2020-11-04 2021-11-04 具有开放表面的真实场景的结构的3d重建

Country Status (4)

Country Link
US (1) US11776214B2 (zh)
EP (1) EP3996051A1 (zh)
JP (1) JP2022075560A (zh)
CN (1) CN114445588A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
US11776214B2 (en) 2023-10-03
EP3996051A1 (en) 2022-05-11
US20220139038A1 (en) 2022-05-05
JP2022075560A (ja) 2022-05-18

Similar Documents

Publication Publication Date Title
CN114445588A (zh) 具有开放表面的真实场景的结构的3d重建
EP3435336B1 (en) Hybrid hierarchy for ray tracing
CN111815774A (zh) 真实场景的结构的3d重建
Bendich et al. Computing robustness and persistence for images
Bhaniramka et al. Isosurfacing in higher dimensions
Gyulassy et al. Efficient computation of Morse-Smale complexes for three-dimensional scalar functions
US7023432B2 (en) Methods, apparatus and computer program products that reconstruct surfaces from data point sets
CN107993279B (zh) 一种场景精确表达方法
CN103838829A (zh) 一种基于分层次边界拓扑搜索模型的栅格转矢量系统
Zhang et al. Resolving topology ambiguity for multiple-material domains
JP2021082297A (ja) 実オブジェクト上での形状属性の3d信号の処理
CN113593037A (zh) 一种德劳内三角化表面重建模型的建立方法及其应用
US7388584B2 (en) Method and program for determining insides and outsides of boundaries
Song et al. Efficient topology-aware simplification of large triangulated terrains
Herman Representation and incremental construction of a three-dimensional scene model
US20180018818A1 (en) Method for Immediate Boolean Operations Using Geometric Facets
Qi et al. Robust slicing procedure based on surfel-grid
Weiss et al. Bisection-based triangulations of nested hypercubic meshes
Sassais et al. Methods to generate numerical models of terrain for spatial ENC presentation
Flórez Díaz Improvements in the ray tracing of implicit surfaces based on interval arithmetic
Crispell A continuous probabilistic scene model for aerial imagery
Nourian et al. Voxel Graph Operators: Topological Voxelization, Graph Generation, and Derivation of Discrete Differential Operators from Voxel Complexes
Cruz-Matías et al. An efficient alternative to compute the genus of binary volume models
Čomić et al. Modeling three-dimensional morse and morse-smale complexes
CN108932528B (zh) 变色龙算法中相似性度量及截断方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination