CN117745950A - 合并三维纹理网格的方法 - Google Patents
合并三维纹理网格的方法 Download PDFInfo
- Publication number
- CN117745950A CN117745950A CN202311801774.XA CN202311801774A CN117745950A CN 117745950 A CN117745950 A CN 117745950A CN 202311801774 A CN202311801774 A CN 202311801774A CN 117745950 A CN117745950 A CN 117745950A
- Authority
- CN
- China
- Prior art keywords
- mesh
- grid
- vertex
- voxel
- vertices
- 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
- 238000000034 method Methods 0.000 title claims abstract description 104
- 238000002156 mixing Methods 0.000 claims abstract description 21
- 238000005520 cutting process Methods 0.000 claims abstract description 11
- 239000013598 vector Substances 0.000 claims description 25
- 230000009466 transformation Effects 0.000 claims description 24
- 238000005070 sampling Methods 0.000 claims description 8
- 238000013519 translation Methods 0.000 claims description 6
- 230000003247 decreasing effect Effects 0.000 claims 3
- 238000005452 bending Methods 0.000 claims 2
- 230000007423 decrease Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 18
- 238000003860 storage Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 230000007704 transition Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 4
- 230000014616 translation Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000012447 hatching Effects 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
-
- 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/12—Bounding box
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
Abstract
本公开涉及合并三维纹理网格的方法。一种合并3D网格的方法包括:接收第一网格和第二网格;在公共世界坐标系中执行空间对齐以配准第一网格和第二网格;对第一网格和第二网格执行网格剪裁以移除冗余网格顶点;在剪裁缝周围执行几何细化以封闭由网格剪裁产生的网格连结孔;以及在与剪裁缝相邻的区域中执行纹理混合以获得合并的网格。
Description
本申请是申请日为2017年3月27日、PCT国际申请号为PCT/US2017/024273、中国国家阶段申请号为201780023709.5、发明名称为“合并三维纹理网格的方法”的申请的分案申请。
相关申请的交叉引用
本申请要求2017年3月23日提交的序列号为15/467,851的美国非临时专利申请的权益和优先权,并要求2016年4月13日提交的序列号为62/322,081的美国临时专利申请的权益和优先权。上述专利申请的全部内容针对所有目的通过引用并入本文中。
技术领域
本发明一般涉及计算机化的三维(3D)网格(mesh)重建,更具体地涉及用于将两个或更多个3D纹理网格合并成一个纹理网格的自动方法。
背景技术
纹理网格是3D几何形状的常见表示,其广泛用于包括虚拟现实、科学可视化、3D拍摄、3D游戏等在内的许多图形应用中。已经引入了各种技术来通过3D扫描重建网格。然而,通过3D扫描创建精确的大型和复杂网格很繁琐且是劳动密集的。这通常是通过对齐、编辑和组合来自多个3D扫描的较小网格来手动完成的。因此,本领域中需要能够将多个网格稳健地合并成大且复杂的3D纹理模型的改进的方法和系统。
发明内容
根据一个实施例,一种合并3D网格的方法包括:接收第一网格和第二网格;在公共世界坐标系中执行空间对齐以配准(register)所述第一网格和所述第二网格;对所述第一网格和所述第二网格执行网格剪裁以移除冗余网格顶点;在剪裁缝周围执行几何细化以封闭由网格剪裁产生的网格连结孔;以及在与所述剪裁缝相邻的区域中执行纹理混合以获得合并网格。
根据另一实施例,一种合并3D纹理网格的方法包括:接收第一和第二网格;识别所述第一网格和所述第二网格重叠的重叠区域;识别包含所述重叠区域的所述重叠区域的边界框;以及对于所述边界框内所述第一网格的每个相应顶点,搜索所述第二网格的对应最近顶点,从而建立多个匹配对。每个匹配对包括所述第一网格的所述相应顶点和所述第二网格的所述对应最近顶点。所述方法进一步包括对于所述多个匹配对中的每个匹配对:估计所述第一网格的所述相应顶点的第一法向一致连接组(NCNG)和所述第二网格的所述对应最近顶点的第二NCNG;在确定所述第一NCNG的面积与所述第二NCNG的面积之间的比率大于第一预定阈值时,将所述第一网格的所述相应顶点和所述第二网格的所述对应最近顶点分类为错误匹配对;以及从所述多个匹配对中移除所述错误匹配对。所述方法进一步包括确定要应用于所述第一网格以使所述多个匹配对中的每个匹配对中所述第一网格的相应顶点与所述第二网格的对应最近顶点之间的距离最小化的刚性变换;以及将所述刚性变换应用于所述第一网格以获得变换后的第一网格。所述方法可以进一步包括沿着所述变换后的第一网格上的第一剪裁缝以及沿着所述第二网格上的第二剪裁缝执行网格剪裁,以移除所述重叠区域中的冗余网格顶点;以及在所述第一个剪裁缝和所述第二个剪裁缝周围执行几何细化以封闭由网格剪裁产生的网格连结孔。
附图说明
参考以下附图根据一个或多个不同的实施例详细描述本公开。提供附图仅用于示例的目的,并且仅是示出本公开的示例性实施例。提供这些附图是为了便于读者理解本公开,而不应视为限制本公开的广度、范围或适用性。应注意,为了使示例清晰且容易,这些附图不一定按比例绘制。
图1是示例出根据一些实施例合并两个或更多个3D网格的方法的简化流程图。
图2示例出根据一个实施例的两个网格的图像。
图3是示例出根据一个实施例执行两个网格之间的空间对齐的方法的流程图。
图4A至4C是示例出根据一个实施例的空间对齐程序的示意图。
图5示例出根据本发明实施例在空间对齐程序之后的图2所示例的两个网格的图像。
图6是示例出根据一个实施例可以检测到两个网格之间的错误匹配的示例的示意图。
图7A是示例出根据一些实施例的其中可以向两个网格应用网格剪裁程序的示例性体素栅格(grid of voxels)的二维视图的示意图。
图7B是示例出根据一个实施例在执行网格剪裁程序之后的图7A所示例的两个网格的示意图。
图8A和8B是根据一个实施例分别在网格剪裁程序之前和之后的图5所示例的两个网格的重叠区域的图像。
图9A和9B示例出根据一个实施例的几何细化程序。
图10A和10B示例出根据一个实施例分别在纹理混合处理之前和之后的合并区域附近的合并网格的示例性图像。
图11示例出根据一个实施例通过使用网格合并算法合并图2所示例的两个网格而得到的合并网格的图像。
图12是示例出根据一个实施例合并3D网格的方法的流程图。
图13是示例出根据一个实施例合并3D网格的方法的流程图。
具体实施方式
特定装置、技术和应用的描述仅作为示例提供。对在此所描述的示例的各种修改对于本领域的普通技术人员来说将是显而易见的,并且在不脱离本发明的精神和范围的情况下,在此所限定的一般原理可以应用于其它示例和应用。因此,本发明的实施例并不旨在限于在此所描述和示出的示例,而是符合与权利要求一致的范围。
在此使用词语“示例性”来表示“用作示例或说明”。在此描述为“示例性”的任何方面或设计不一定被解释为优选或优于其它方面或设计。
现在将详细参考本技术的各方面,其示例在附图中示出,其中相同的附图标记始终表示相同的元件。
应当理解,在此公开的过程中的步骤的特定顺序或层次是示例性方法的示例。基于设计偏好,可以理解,在保持在本公开的范围内时,可以重新排列过程中的步骤的特定顺序或层次。所附方法权利要求以示例顺序给出了各个步骤的要素,并不意味着限于所给出的特定顺序或层次。
本公开一般地涉及合并三维(3D)网格的方法。更具体地说,本公开的一些实施例涉及用于将两个或更多个3D纹理网格稳健地合并成一个大的3D纹理网格的自动方法。根据一些实施例,3D网格可以包括多边形网格。多边形网格是顶点、边和面的集合,该集合定义3D计算机图形和实体建模中多面体对象的形状。多边形网格的面可以包括三角形(三角形网格)、四边形或其它凸多边形。这些面还可以包括凹多边形、具有孔的多边形和螺旋形状。
当执行大区域的3D扫描时,可以单独扫描该区域的部分以创建多个网格,其中每个网格可以表示被扫描区域的相应部分。例如,当扫描建筑物时,可以单独扫描建筑物中的每个单独房间以及走廊的部分以创建多个网格。被各个扫描覆盖的部分可能在某些区域彼此重叠。例如,一房间的扫描可能与邻近该房间入口的区域中的走廊的扫描重叠。本公开的实施例可以提供将多个网格计算机化合并成一个大网格的方法。
在一些实施例中,当存在要合并成大网格中的多个输入网格时,输入网格可以按其尺寸的顺序依次被合并。例如,网格尺寸可以根据其边界框的体积来测量。边界框可以被定义为包含网格的最小矩形3D空间。在一些实施例中,可以对输入网格进行排序以获得按照网格尺寸的降序排列的序列:{M0,M1,...,Mk,...,Mn},其中Mk是具有第k大体积的网格。合并过程可以从最大尺寸的网格开始:M=M0。最大网格M0可以依次与序列中的其它网格合并以获得当前合并网格:M=merge(M,Mk){k=0,1,2......n}。例如,最大网格M0可以与第二大网格M1合并以获得合并网格M=merge(M0,M1);然后M与第三大网格M2合并以获得新的合并网格M=merge(M,M2);以此类推。仅出于说明的目的,以下将描述合并两个网格的过程作为示例来解释合并过程。应当理解,本公开的实施例不限于仅合并两个网格,并且还可以应用于合并任意数量的网格。
图1是示例出根据一个实施例合并两个或更多个3D网格的方法100的流程图。方法100可以包括以下步骤:接收两个或更多个输入网格(110);空间对齐(120);网格剪裁(130);几何细化(140);纹理混合(150);以及输出合并的网格(160)。这些步骤中的一些步骤可以是可选的。如上所述,接收的网格可以是三维的(3D)并且可以包括基于三角形(三角形网格)、四边形或其它凸多边形的组成部分。虽然本文讨论了三角形网格,但是本公开的实施例不限于三角形网格。方法100可以由包括处理器和存储指令的非暂时性计算机可读存储介质的计算机系统实施。
在空间对齐的步骤(120)中,两个(或更多个)输入网格可以通过刚性变换(例如,旋转和平移变换)相对于彼此精确对齐。两个输入网格最初可以由用户对齐,作为由系统执行的后续空间对齐的近似起始点。该系统可识别两个网格之间的重叠区域并使重叠区域致密化。然后,该系统可以优化刚性变换,以在3D空间中精确对齐两个网格。
为了实现高质量合并,可以应用网格剪裁来自动剪裁掉重叠区域中的几何冗余三角形。在网格剪裁的步骤(130)中,可以应用包含两个网格(即,在重叠区域中)的体素化体积中的剪裁。可以对网格剪裁进行以下约束:(1)交叉约束(例如,可以在网格相交的地方应用网格剪裁);(2)边界约束(例如,可以远离网格边界应用网格剪裁);(3)纹理质量约束(例如,可以对其纹理包括很少颜色特征的三角形执行网格剪裁)。
在几何细化的步骤(140)中,可以局部细化剪裁的网格以获得更好的几何形状,以便沿着剪裁边界(在此可以被称为“剪裁缝”)创建从一个网格到另一网格的无缝且平滑的过渡。在网格剪裁的步骤(130)之后,可能在剪裁缝周围产生小孔。几何细化算法可以沿着剪裁缝“生长”或扩展剪裁后的网格以创建小合并带。通过沿着剪裁缝“生长”剪裁后的网格,可以局部调整合并带内的网格组成部分以封闭剪裁孔。几何细化可以沿剪裁缝产生连续(例如,水密性)的几何过渡。
网格连结(concatenation)区域中可能存在颜色不一致,这些不一致可能在最终的网格中显示为视觉伪像。在纹理混合的步骤(150)中,可以混合网格连结区域中的颜色纹理以产生视觉平滑的过渡。该纹理混合步骤(150)旨在混合来自不同网格纹理的颜色并逐渐改变过渡区域中的混合权重。然后可以输出在步骤120、130、140和150之后的最终合并后的网格(160)。
下面将更详细地描述图1中示例出的用于合并3D网格的方法100的步骤120、130、140和150。
A.空间对齐
为了准确地合并两个网格,可能需要在3D空间的连结区域中正确地配准这两个网格。这两个输入网格可能来自不同的扫描,因此可能具有不相关的取向和平移。图2示例出了根据一个实施例的两个网格的图像。这两个网格包括房屋内部的图像。这两个网格在区域210中重叠,区域210包括房屋中的楼梯。如图所示,这两个网格在重叠区域210中相对于彼此未对齐。
空间对齐算法可以找到相对于第二网格(其可以被称为目标网格)配准第一网格(其可以被称为源网格)的刚性变换,使得它们的对应区域可以正确地重叠。因此,基本问题可以表述为如何建立这两个网格应该重叠的局部对应关系,以及如何获得使第一网格平移和旋转以便相对于第二网格进行配准的刚性变换矩阵。
根据一些实施例,空间对齐算法可以基于迭代最近点(ICP)和伪三角形检测。ICP算法是用于在给定刚性变换的初始猜测的情况下对齐三维模型的算法。在ICP算法中,第一网格(目标网格)被保持固定,而第二网格(源网格)被转换(平移和旋转的组合)以与目标网格最佳地匹配。ICP算法迭代地修改为了使误差度量最小化所需的变换,该误差度量通常是从源网格到目标网格的距离。
图3是示例出根据一个实施例在两个网格之间的空间对齐的方法300的流程图。两个网格中的第一网格在本文中可以被称为网格A,两个网格中的第二网格在本文中可以被称为网格B。网格A和网格B中的每一者可以包括通过其公共边或公共角连接的一组网格三角形。每个三角形可以由三角形的拐角处的三个顶点限定。
方法300可以包括:识别网格A和网格B之间的重叠区域(302);以及识别重叠区域的边界框(304)。边界框可以被定义为包含重叠区域的3D矩形空间。在一些实施例中,识别边界框可以包括识别初始边界框,该初始边界框可以是包含重叠区域的最小3D矩形空间,然后用尺寸因子缩放初始边界框以获得更放松的边界框。放松的(relaxed)边界框可以具有比初始边界框更大的体积。例如,可以通过2.0的尺寸因子来缩放初始边界框以获得放松的边界框。
方法300可以进一步包括通过边缘分割使边界框(306)内的网格A和网格B中的网格三角形致密化,以获得两个致密点云,所述致密点云包括用于网格A的一组致密网格顶点{VA},以及用于网格B的一组致密网格顶点{VB}。在一些实施例中,使边界框内的网格三角形致密化的步骤(306)可以是可选的。
方法300可以进一步包括:对于边界框内的网格A的每个相应顶点{VA},搜索网格B中的对应最近顶点{VB}(308),从而建立一个或多个匹配对。每个匹配对可以包括网格A的相应顶点和网格B的对应最近顶点,如图4A中示意性地所示。
在一些实施例中,方法300可以进一步包括从一个或多个匹配对中移除错误匹配对(310)。由于法向不一致和伪三角形,可能会发生错误匹配。与纯点云不同,网格顶点可以具有法向矢量以指示与顶点相邻的三角形的取向。例如,一网格顶点可以由多个连接的三角形共享,其中每个三角形可以具有相应的法向矢量。该网格顶点的法向矢量可以被定义为共享该顶点的三角形的法向矢量的平均。如果网格A的顶点{VA}的法向矢量与网格B中的对应顶点{VB}的法向矢量显著不同,则匹配对可能是错误匹配。因此,根据一些实施例,方法300可以排除其匹配顶点之间的法向矢量差超过预定阈值的匹配对。也可能由于伪三角形而发生错误匹配。伪三角形是低质量三角形,其由于各种原因可能不能很好地表示真实几何形状。下面将更详细地描述伪三角形的检测。
方法300可以进一步包括:确定要应用于网格A以使每个配对中的网格A的每个相应顶点与网格B的对应最近顶点之间的距离最小化的刚性变换(312);以及使用该刚性变换旋转和平移网格A(314)。图4B示意性地示例出应用刚性变换之后的网格A和网格B。
可以多次迭代步骤308、310和312,直到达到收敛。当误差低于预定阈值时,可以确定已经达到收敛,其中误差可以被定义为网格A的每个相应顶点与网格B的对应最近顶点之间的距离之和。图4C示意性地示例出达到收敛之后的网格A和网格B。
图5示例出了根据一个实施例在空间对齐程序之后的图2所示例的两个网格的图像。如图所示,现在两个网格在重叠区域510中相对于彼此适当地对齐。
B.伪三角检测
通过3D扫描生成的网格可以包含一些低质量三角形,这些低质量三角形由于各种原因(例如不充分的捕获、不适当的照明、极端视角等)而不能很好地表示真实几何形状。这些低质量三角形(可以被称为伪三角形)可能潜在地导致ICP算法收敛到不正确的变换。因此,可以在应用ICP算法之前有利地移除由伪三角形导致的错误匹配对。由于若干原因,检测伪三角形可能是具有挑战性的。例如,网格通常可以包括具有任意形状、复杂拓扑以及变化的位置和取向的区域。另外,可能难以将伪三角形与对真实几何细节进行编码的高质量三角形区分开。
根据一些实施例,检测伪三角形的方法可以涉及比较两个网格的附近区域以识别包括相对小的、法向一致的补片(patch)的伪区域。对于网格中的给定顶点,其“法向一致连接组”(NCNG)可以被定义为一组边连接三角形,其法向矢量类似于给定顶点的法向矢量。换句话说,给定顶点的NCNG可以是包含给定顶点的网格补片,并且在该网格补片中的三角形的法向矢量之间具有小的变化。因此,术语“法向一致”是指一个顶点的法向矢量和另一顶点的法向矢量所指向的一致方向。通常,具有相对小的NCNG的三角形可能具有更高的虚假可能性。然而,简单地将具有小NCNG的所有三角形视为虚假可能产生误报,因为高度详细的对象也可能包含许多小的NCNG。例如,枝形吊灯可能有许多微小NCNG,这些微小NCNG可能被错误地归类为虚假的。因此,根据一个实施例,将网格A中的一顶点的NCNG与网格B中的对应顶点的NCNG进行比较,以便检测虚伪三角形。如果网格B中的顶点的NCNG具有明显小于网格A中的对应顶点的NCNG的面积,则网格B中的该顶点很可能属于伪三角形。类似地,如果网格A中的顶点的NCNG具有明显小于网格B中的对应顶点的NCNG的面积,则网格A中的该顶点很可能属于伪三角形。根据一些实施例,如果网格A中的顶点的NCNG的面积与网格B中的对应顶点的NCNG的面积之间的比率大于预定阈值,则该顶点对可以被分类为错误匹配。该预定阈值可以根据具体应用而变化,例如在2至10之间变化。本领域普通技术人员将认识到许多变化、修改和替代。
图6是示例出根据一个实施例可以检测到错误匹配的示例的示意图。在该示例中,环境的真实几何形状是与网格A一致的平面。对于网格A中的给定顶点604,该顶点的NCNG(NCNG(A))——可以是整个平面的。与此形成对比,网格B包括位于顶点602周围的小凸起。因此,顶点602的NCNG(NCNG(B))可具有小很多的面积。因此,可以确定顶点602属于伪三角形并且顶点对604和602是错误匹配。
检测伪三角形的一种方法可以包括搜索已经通过ICP算法匹配的每个顶点的NCNG。然而,这种方法的计算成本可能非常高,因为致密的网格区域可能具有大量顶点。根据一些实施例,算法可以被配置为基于法线采样来估计所有顶点的NCNG。该算法不使用每个顶点的法线来搜索NCNG,而是可以以每x度对法线方向进行采样作为近似,其中x可以是5度、10度等。在一些实施例中,可以在包括极角和方位角的球坐标中完成法线采样,从而产生(360/x*180/x)个采样法线,该数量可以显著小于所有顶点的法线总数。
法线采样算法可以具有线性时间复杂度O(s*n),其中s是采样方向的数量,n是所有顶点的数量。相比而言,逐顶点算法可具有线性时间复杂度O(n2)。因此,法线采样算法可以比逐顶点算法显著更高效,因为s可以显著小于n。此外,因为各个方向上的采样彼此独立,所以法线采样算法可以并行运行采样。在一些实施例中,并行算法可以在多核中央处理单元(CPU)或图形处理单元(GPU)上实施,这可以进一步提高伪三角形检测的效率。
C.网格剪裁
当两个网格在3D空间中相对于彼此对齐之后,重叠区域中的一些网格顶点可能是多余的,因为它们可能同时被两个网格捕获。根据一些实施例,可以剪裁掉(即,移除)冗余顶点。由于若干原因,剪裁掉冗余顶点可能是有利的。例如,冗余网格三角形可以具有相对于彼此不同的几何形状和纹理,因此,在没有被剪裁的情况下,可能被示出为明显的伪像。另外,与可允许的扫描范围相邻的区域可能具有不准确的几何形状和纹理。因此,剪裁掉这些区域中的顶点可能是有利的。
根据一些实施例,网格剪裁可以通过自动能量最小化程序来执行。在该程序中,网格重叠区域的边界框可以被视为剪裁体积。然后可以将该剪裁体积光栅化为体素栅格:V。图7A是示例出根据一些实施例的示例性体素栅格的二维视图的示意图,在该示例性体素栅格中,网格剪裁程序可以应用于网格A和网格B这两个网格。栅格中的每个方块代表一体素。如图所示,两个网格在区域710中重叠。
在自动能量最小化程序中,网格剪裁可以被表述为体素标记问题。可以如下将二进制标签fv分配给每个体素v以将其分类为网格A体素或网格B体素:
fv=0;v是网格A体素;fv=1;v是网格B体素。
当一网格顶点位于被标记为另一网格的体素中时,可以剪裁掉该网格顶点。
在一些实施例中,目标可以是为每个最小化以下能量函数的v找到标记fv:
其中是体素的N6邻域系。根据体素如何与网格相交,每个体素可以被预分类为四组体素中的一组:Va是仅与网格A相交的一组体素;Vb是仅与网格B相交的一组体素;Vs是与网格A和网格B都相交的一组体素;Ve是与网格A和网格B都不相交的一组体素。例如,在图7A所示的示例中,用左倾斜线阴影线填充的体素被预分类为Va体素;用右倾斜线阴影线填充的体素被预分类为Vb体素,用交叉阴影线填充的体素被预分类为Vs体素,白色体素被预分类为Ve体素。
在上面的等式中,项D(fv)可以被称为数据项。数据项D(fv)可以被设计为强制具有已知标签的体素的先验知识。由于在剪裁过程中保留非交叉区域可能是优选的,因此如果v在非交叉区域中并且标签fv与用于该体素的已知标签矛盾,则可以构造数据项D(fv)以惩罚标签fv。作为示例,数据项D(fv)可以被定义如下:
D(fv)={cd∣(fv=0,v∈Vb)∣∣(fv=1,v∈Va);0∣其他情况下} (2);其中cd是正代价值。换句话说,向非交叉区域中的体素分配与该体素的已知标签矛盾的标签可能引发正“代价”cd。
项B(fv)可以被称为边界项。网格边界附近的网格三角形可能具有低质量,因为它们可能接近扫描仪的扫描范围极限并且可能缺少捕获视图。因此,剪裁掉每个网格的边界区域中的顶点可能是有利的。边界项B(fv)可以被构造为将逐渐增大的能量分配给接近网格边界的体素。作为示例,边界项可以被定义如下:
Ba={v|v∈Va,dv<dmax} (4);
Bb={v|v∈Vb,dv<dmax} (5);
其中dv是沿着网格表面从体素v到网格边界的测地距离(geodesic distance);cmin和cmax分别是表示最小边界“代价”和最大边界“代价”的正的常数;dmax是被视为在网格边界区域中的体素的最大测地距离。
项H(fvi,fvj)可以被称为交叉项。将切割缝放置在其中体素与全部两个网格都相交的区域内可能是有利的。因此,交叉项H(fvi,fvj)可以被构造为向体素Vs分配低很多的能量,以使得其累积能量仍然低于Va或Vb中的一个体素。另外,Vs中的空体素可以被分配甚至更低的能量以确保其累积能量比Vs中的体素还低。作为示例,交叉项H(fvi,fvj)可以被定义如下:
H(fvi,fvj)=min(I(fvi,fvj),I(fvj,fvi)) (6);
I(fvi,fvj)={cd/10k|(fvi!=fvj,vi∈Vs);cd/100nk|(fvi!=fvj,vi∈Ve)} (7);
其中n是体素的总数,k是Vs中的体素的数量。
项T(fvi,fvj)可以被称为纹理项。避免在网格剪裁过程中破坏或干扰网格的颜色特征可能是有利的。因此,要切割的区域可以是呈现很少颜色特征的网格区域。例如,对于表示室内房间的网格,对表示白色墙壁的网格区域的切割可以产生比对表示彩色壁画的网格区域的切割平滑得多的颜色过渡。根据一些实施例,纹理项T(fvi,fvj)可以被构造为惩罚对具有可辨别的颜色特征的区域的剪裁。作为示例,纹理项T(fvi,fvj)可以被定义如下:
T(fvi,fvj)=min(C(fvi,fvj),C(fvj,fvi)) (8);
C(fvi,fvj)={ci/40k|(fvi!=fvj,vi∈Vs)} (9);
其中ci是以体素vi为中心的纹理补片颜色的标准偏差;并且k是Vs中的体素的数量。
根据一些实施例,可以使用离散优化算法(例如图形切割等)来解决能量最小化问题。
图7B是示例出根据一个实施例在执行网格剪裁程序之后的图7A所示力的两个网格(网格A和网格B)的示意图。
图8A和8B是根据一个实施例分别在网格剪裁程序之前和之后图5所示例的两个网格(即,表示房屋楼梯的两个网格的区域)的重叠区域510的图像。
D.几何细化
在网格剪裁程序之后,可以合并两个网格以形成单个合并的网格。为了使合并的网格看起来尽可能无缝,调整剪裁边界周围的合并的网格以改善剪裁缝周围的几何形状和纹理可能是有利的。
根据一些实施例,几何细化过程可旨在封闭网格连结孔,同时使局部几何形状变化最小化。图9A示例出网格剪裁程序之后的两个网格(网格A和网格B)的示例性图像。如图所示,沿着剪裁缝存在剪裁孔910。为了获得无缝过渡,几何细化过程可以通过小延伸使两个网格沿着剪裁缝重新生长(grow back)。该生长过程可以在网格A与网格B之间产生小合并带920,如图9B所示。应注意,网格剪裁程序可能已经裁掉大面积的冗余网格三角形。该生长过程可以收回一小部分被剪裁的区域,使得在剪裁缝周围可以存在小合并带。
在几何细化过程之后,合并的网格可以是连续的(即,看起来是水密性的)。因此,相应的重叠区域可以朝向彼此弯曲以减小其间的间隙。在一些实施例中,网格A中的每个顶点可以朝向网格B中的匹配顶点平移,这可以在空间对齐步骤中找到。由于几何细化过程可能仅引入最小的几何变化,因此可以将较大的平移应用于网格边界附近的顶点以封闭孔,同时可以将较小的平移应用于远离网格边界的顶点。在一些实施例中,可以如下应用从每个顶点v0到匹配顶点v1的平移:
Pv0=Pv0+w(Pv1-Pv0) (10);
其中Pv0和Pv1分别是匹配的顶点v0和v1的位置;dbmax是到合并区域内的网格边界的最大测地距离;d0是从v0到网格边界的测地距离。w可以被视为取决于顶点到网格边界的测地距离的权重因子。
E.纹理混合
例如,由于从不同角度观看的不同照明,网格剪裁程序之后的合并区域中的两个网格可能不具有相同的纹理。图10A示例出合并区域附近的合并的网格的示例性图像。合并区域内的第一区域1010和第二区域1020中的颜色是不同的。为了产生更平滑的颜色过渡,在合并区域内混合纹理可能是有帮助的。
在一些实施例中,可以通过找到最近点来建立网格A与网格B之间的纹素(texel)(即纹理元素或纹理像素)对应关系。由于纹素的数量可能非常大,因此可以使用k-d树数据结构来加速最近邻搜索。混合权重可以类似于在上述几何细化过程中使用的权重w。这种纹理混合程序可能导致在接近边界时从一个网格到另一网格的逐渐颜色变化。在一些实施例中,过渡区域中的纹理可以被光栅化为纹素并且被混合到纹素颜色中。根据一个实施例,可以使用来自几何细化过程的三角形权重w的重心内插来计算纹素混合权重。图10B示例出根据一个实施例在纹理混合过程之后的图10A所示例的合并的网格的示例性图像。
图11示例出根据一个实施例通过使用网格合并算法合并图2所示例的两个网格而得到的合并的网格的图像。
图12是示例出根据一个实施例合并3D网格的方法1200的流程图。方法1200可以包括接收第一网格和第二网格(1202);执行空间对齐以使第一网格相对于第二网格对齐(1204);对第一网格和第二网格执行网格剪裁以移除冗余网格顶点(1206);在剪裁缝周围执行几何细化以封闭由网格剪裁产生的网格连结孔(1208);以及在与剪裁缝相邻的区域中执行纹理混合以获得合并的网格(1210)。
图13是示例出根据一个实施例合并3D纹理网格的方法1300的流程图。方法1300包括接收第一网格和第二网格(1302)。方法1300可以进一步包括识别第一网格和第二网格重叠的重叠区域(1304);识别包含重叠区域的重叠区域的边界框(1306);以及对于边界框内第一网格的每个相应顶点,搜索第二网格的对应最近顶点,从而建立多个匹配对(1308)。每个匹配对包括第一网格的相应顶点和第二网格的对应最近顶点。
方法1300可以进一步包括:对于多个匹配对中的每个匹配对,通过以下方式移除一个或多个错误匹配对:估计第一网格的相应顶点的第一法向一致连接组(NCNG)和第二网格的对应最近顶点的第二NCNG(1310);在确定第一NCNG的面积与第二NCNG的面积之间的比率大于第一预定阈值时,将第一网格的相应顶点和第二网格的对应最近顶点分类为错误匹配对(1312);以及从多个匹配对中移除错误匹配对(1314)。
方法1300可以进一步包括确定要应用于第一网格以使多个匹配对中的每个匹配对中第一网格的相应顶点与第二网格的对应最近顶点之间的距离最小化的刚性变换(1316);以及将该刚性变换应用于第一网格以获得变换后的第一网格(1318)。方法1300可以进一步包括沿着变换后的第一网格上的第一剪裁缝以及沿着第二网格上的第二剪裁缝执行网格剪裁以移除重叠区域中的冗余网格顶点(1320);以及在第一剪裁缝和第二剪裁缝周围执行几何细化以封闭由网格剪裁产生的网格连结孔(1322)。
应该理解,图12和图13中的每一者所示例的具体步骤提供了根据本公开的一些实施例的特定方法。根据替代实施例,还可以执行其它步骤序列。例如,本公开的替代实施例可以以不同的顺序执行上面概述的步骤。此外,在图12和图13中的每一者中示例的各个步骤可以包括多个子步骤,这些子步骤可以按照适合于各个步骤的各种顺序执行。此外,可以根据特定应用添加或移除步骤。本领域的普通技术人员将认识到许多变化、修改和替代。
虽然上面已经描述了本公开的各种实施例,但是应该理解,它们仅以示例的方式呈现,而不是作为限制。类似地,各种图可以描绘用于本公开的示例性架构或其它配置,其被进行以帮助理解可以被包括在本公开中的特征和功能。本公开不限于所示出的示例性架构或配置,而是可以使用各种替代架构和配置来实现。此外,虽然以上根据各种示例性实施例和实施方式描述了本公开,但应该理解的是,在一个或多个单独实施例中描述的各种特征和功能不限于它们对它们所描述的特定实施例的适用性。相反,它们可以单独应用或以一些组合应用于本公开的一个或多个其它实施例,无论这些实施例是否被描述,以及这些特征是否被呈现为所描述的实施例的一部分。因此,本公开的广度和范围不应该被任何上述示例性实施例限制。
参考本文中的公开描述的各种示例性逻辑块、模块、电路和算法步骤可以实现为电子硬件、计算机软件、或电子硬件和计算机软件的组合。例如,模块/单元可以由执行存储在计算机可读存储介质中的软件指令的处理器实现。
附图中的流程图和框图示出了根据本公开的多个实施例的系统和方法的可能实施方式的系统架构、功能和操作。在该方面,流程图或框图中的每个方框可以代表一个模块、一个程序段或代码的一部分,其中所述模块、程序段或代码的一部分包括用于实现规定的逻辑功能的一个或多个可执行指令。还应当注意,在一些替代实施方式中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地被执行,它们有时也可以按相反的顺序被执行,这依赖于所涉及的功能。框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合,可以通过用于执行相应功能或操作的基于专用硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
本公开的实施例可以体现为方法、系统或计算机程序产品。因此,本公开的实施例可以采用完全硬件实施例、完全软件实施例、或组合软件和硬件的实施例的形式。此外,本公开的实施例可以采取以包含计算机可读程序代码的一个或多个计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光存储器等)体现的计算机程序产品的形式。
参考方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的实施例。应当理解,流程图和/或框图的每个流程和/或框、以及流程图和/或框图中的流程和/或框的组合,可以由计算机程序指令实现。这些计算机程序指令可以被提供给通用计算机、专用计算机、嵌入式处理器或其它可编程的数据处理装置的处理器,从而生产出一种机器,以使得通过计算机或其它可编程的数据处理装置的处理器而被执行的这些指令产生用于实现流程图中的一个或多个流程和/或框图中的一个或多个框中规定的功能的装置。
也可以将这些计算机程序指令存储在计算机可读存储器中,计算机可读存储器可以引导计算机或其它可编程的数据处理装置以特定方式工作,从而,存储在计算机可读存储器中的指令产生制成产品,该制成产品包括实现流程图中的一个或多个流程和/或框图中的一个或多个框中规定的功能的指令装置。
也可以将计算机程序指令加载到计算机或其它可编程的数据处理装置上,以使得对计算机或其它可编程的装置执行一系列操作步骤,以产生由计算机实现的处理,从而使得在计算机或其它可编程的装置上执行的指令提供用于实现流程图中的一个或多个流程和/或框图中的一个或多个框中规定的功能的步骤。在典型配置中,计算机设备包括一个或多个中央处理单元(CPU)、输入/输出接口、网络接口和存储器。存储器可以包括易失性存储器、随机存取存储器(RAM)和/或非易失性存储器等的形式,例如计算机可读存储介质中的只读存储器(ROM)或闪速存储器RAM。存储器是计算机可读存储介质的示例。
计算机可读存储介质是指可以存储处理器可读的信息或数据的任何类型的物理存储器。因此,计算机可读存储介质可以存储用于由一个或多个处理器执行的指令,包括用于使处理器执行与本文描述的实施例一致的步骤或阶段的指令。计算机可读存储介质包括非易失性和易失性介质,以及可移动和不可移动介质,其中信息存储可以用任何方法或技术实现。信息可以是计算机可读指令、数据结构和程序的模块,或其它数据。计算机存储介质的示例包括但不限于相变随机存取存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其它类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器或其它存储器技术、紧凑盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其它光存储器、盒式磁带、磁带或盘存储器或其它磁存储设备,或可用于存储能够被计算机设备访问的信息的任何其它非传输介质。计算机可读存储介质是非暂时性的,并且不包括诸如调制数据信号和载波之类的瞬态介质。
除非另有明确说明,否则本文中使用的术语和短语及其变体应解释为开放式而不是限制性的。作为前述示例:术语“包括”应理解为意指“包括但不限于”等;术语“示例”用于提供讨论中的项目的示例性实例,而不是其详尽的或其限制性的列表;以及诸如“常规”、“传统”、“正常”、“标准”、“已知”以及类似含义的术语等的形容词不应被解释为将所描述的项目限制到给定时间段或者在给定时间的可用项目。但是,应该将这些术语理解为涵盖现在已知或将来任何时候可用的常规、传统、正常或标准技术。同样地,与连词“和”相关联的一组项目不应被理解为要求这些项目中的每一个都出现在分组中,而应被理解为“和/或”,除非另有明确说明。类似地,与连词“或”相关联的一组项目不应被理解为要求该组中的相互排他性,而应该被理解为“和/或”,除非另有明确说明。此外,尽管本公开的项目、要素或组件可以单数形式描述或要求保护,但是复数形式预期在其范围内,除非明确陈述限于单数形式。在一些情况下,诸如“一个或多个”、“至少”、“但不限于”或其它类似短语的扩展单词和短语的存在不应被解读为意味着在这种扩展短语可能不存在的实例中打算或要求较窄的情况。
Claims (36)
1.一种合并三维(3D)纹理网格的方法,所述方法包括:
接收第一网格和第二网格;
执行空间对齐以使所述第一网格相对于所述第二网格对齐;
对所述第一网格和所述第二网格执行网格剪裁,以移除冗余网格面;以及
在剪裁缝周围执行几何细化,以封闭由网格剪裁产生的网格连结孔,其中,执行几何细化包括:
沿着所述剪裁缝重新生长所述第一网格和所述第二网格;以及
使所述第一网格的一个或多个顶点朝向所述第二网格的一个或多个匹配顶点平移,其中所述一个或多个顶点中的每个相应顶点的平移距离与权重成比例,所述权重与所述相应顶点到所述剪裁缝之间的距离负相关。
2.根据权利要求1所述的方法,其中,重新生长所述第一网格和所述第二网格包括重新生长所移除的冗余网格面中的一个或多个。
3.根据权利要求1所述的方法,其中,重新生长所述第一网格和所述第二网格围绕所述剪裁缝产生合并带。
4.根据权利要求1所述的方法,其中,执行几何细化进一步包括弯曲所述第一网格和所述第二网格的对应重叠区域,以减小所述第一网格和所述第二网格之间的间隙。
5.根据权利要求1所述的方法,其中,使所述第一网格的所述一个或多个顶点朝向所述第二网格的所述一个或多个匹配顶点平移包括平移所述第一网格的所述一个或多个顶点中的第一顶点的位置。
6.根据权利要求5所述的方法,其中,所述平移根据以下等式来执行:
Pv0=Pv0+w(Pv1-Pv0)
其中Pv0是所述第一网格的所述一个或多个顶点中的所述第一顶点v0的位置,Pv1是所述第二网格的所述一个或多个匹配顶点中的第二顶点v1的位置,w是权重。
7.根据权利要求6所述的方法,其中,所述权重w根据以下等式确定:
其中dbmax是到合并区域内的网格边界的最大测地距离,d0是从所述第一网格的所述一个或多个顶点中的所述第一顶点的所述位置Pv0到所述网格边界的测地距离。
8.根据权利要求1所述的方法,还包括在与所述剪裁缝相邻的区域中执行纹理混合以获得合并的网格。
9.一种系统,包括:
一个或多个处理器;以及
存储多个指令的非暂时性计算机可读介质,所述多个指令在被执行时控制所述一个或多个处理器以合并三维(3D)纹理网格,所述多个指令包括:
接收第一网格和第二网格;
执行空间对齐以使所述第一网格相对于所述第二网格对齐;
对所述第一网格和所述第二网格执行网格剪裁,以移除冗余网格面;以及
在剪裁缝周围执行几何细化,以封闭由网格剪裁产生的网格连结孔,其中,执行几何细化包括:
沿着所述剪裁缝重新生长所述第一网格和所述第二网格;以及
使所述第一网格的一个或多个顶点朝向所述第二网格的一个或多个匹配顶点平移,其中所述一个或多个顶点中的每个相应顶点的平移距离与权重成比例,所述权重与所述相应顶点到所述剪裁缝之间的距离负相关。
10.根据权利要求9所述的系统,其中,重新生长所述第一网格和所述第二网格包括重新生长所移除的冗余网格面中的一个或多个。
11.根据权利要求9所述的系统,其中,重新生长所述第一网格和所述第二网格围绕所述剪裁缝产生合并带。
12.根据权利要求9所述的系统,其中,执行几何细化还包括弯曲所述第一网格和所述第二网格的对应重叠区域,以减小所述第一网格和所述第二网格之间的间隙。
13.根据权利要求9所述的系统,其中,使所述第一网格的所述一个或多个顶点朝向所述第二网格的所述一个或多个匹配顶点平移包括平移所述第一网格的所述一个或多个顶点中的第一顶点的位置。
14.根据权利要求13所述的系统,其中,所述平移根据以下等式来执行:
Pv0=Pv0+w(Pv1-Pv0)
其中Pv0是所述第一网格的所述一个或多个顶点中的所述第一顶点v0的位置,Pv1是所述第二网格的所述一个或多个匹配顶点中的第二顶点v1的位置,w是权重。
15.根据权利要求14所述的系统,其中,所述权重w根据以下等式确定:
其中dbmax是到合并区域内的网格边界的最大测地距离,d0是从所述第一网格的所述一个或多个顶点中的所述第一顶点的所述位置Pv0到所述网格边界的测地距离。
16.根据权利要求9所述的系统,其中,所述多个指令还包括在与所述剪裁缝相邻的区域中执行纹理混合以获得合并的网格。
17.一种计算机产品,其包括存储多个指令的非暂时性计算机可读介质,所述多个指令在被执行时控制计算机系统以合并三维(3D)网格,所述指令包括:
接收第一网格和第二网格;
通过以下方式执行空间对齐以相对于所述第二网格配准所述第一网格:
识别所述第一网格和所述第二网格重叠的重叠区域;
识别包含所述重叠区域的所述重叠区域的边界框;
对于所述边界框内所述第一网格的每个相应顶点,搜索所述第二网格的对应最近顶点,从而建立多个匹配对,每个匹配对包括所述第一网格的所述相应顶点和所述第二网格的所述对应最近顶点;
对于所述多个匹配对中的每个匹配对,通过以下方式移除一个或多个错误匹配对:
估计所述第一网格的所述相应顶点的第一法向一致连接组和所述第二网格的所述对应最近顶点的第二法向一致连接组;
在确定所述第一法向一致连接组的面积与所述第二法向一致连接组的面积之间的比率大于第一预定阈值时,将所述第一网格的所述相应顶点和所述第二网格的所述对应最近顶点分类为错误匹配对;以及
从所述多个匹配对中移除所述错误匹配对;
确定要应用于所述第一网格以使所述多个匹配对中的每个匹配对中所述第一网格的相应顶点与所述第二网格的对应最近顶点之间的距离最小化的刚性变换;以及
将所述刚性变换应用于所述第一网格以获得变换后的第一网格;沿着所述变换后的第一网格上的第一剪裁缝以及沿着所述第二网格上的第二剪裁缝执行网格剪裁,以移除所述重叠区域中的冗余网格顶点;以及
在所述第一剪裁缝和所述第二剪裁缝周围执行几何细化,以封闭由网格剪裁产生的网格连结孔。
18.根据权利要求17所述的计算机产品,其中,所述指令进一步包括:
在与所述第一剪裁缝和所述第二剪裁缝相邻的区域中执行纹理混合。
19.根据权利要求17所述的计算机产品,其中,执行空间对齐进一步包括在确定所述刚性变换之前,对于所述多个匹配对中的每个匹配对:
估计所述第一网格的所述相应顶点的第一法向矢量和所述第二网格的所述对应最近顶点的第二法向矢量;
在确定所述第一法向矢量与所述第二法向矢量之间的差大于第二预定阈值时,将所述第一网格的所述相应顶点和所述第二网格的所述对应最近顶点分类为错误匹配对;以及
从所述多个匹配对中移除所述错误匹配对。
20.根据权利要求17所述的计算机产品,其中,执行网格剪裁包括:
将所述重叠区域的所述边界框栅格化为体素栅格;
通过使用能量函数应用能量最小化程序,将所述体素栅格中的每个体素标记为第一网格体素和第二网格体素中的一者,所述能量函数包括数据项、边界项、交叉项和纹理项;以及
当所述第一网格的所述相应顶点在被标记为第二网格体素的体素中时,剪裁掉所述第一网格的每个该相应顶点,并且当所述第二网格的相应顶点在被标记为第一网格体素的体素中时,剪裁掉所述第二网格的每个该相应顶点。
21.根据权利要求17所述的计算机产品,进一步包括通过以下方式执行所述第一网格和所述第二网格的纹理混合:
将所述重叠区域的所述边界框栅格化为纹素栅格;
对于所述第一网格的每个相应纹素,识别所述第二网格的对应纹素;以及
使用混合权重混合所述第一网格的每个相应纹素的纹理与所述第二网格的对应纹素的纹理,所述混合权重随着从所述相应纹素到所述第一剪裁缝或所述第二剪裁缝的距离的减小而增大。
22.根据权利要求21所述的计算机产品,其中,通过应用法向矢量采样算法来执行移除一个或多个错误匹配对。
23.一种计算机系统,包括:
一个或多个处理器;以及
计算机存储器,其包括存储多个指令的非暂时性计算机可读介质,所述多个指令在被执行时控制所述一个或多个处理器以执行合并三维(3D)网格的方法,所述方法包括:
接收第一网格和第二网格;
通过以下方式执行空间对齐以使所述第一网格相对于所述第二网格对齐:
识别所述第一网格和所述第二网格重叠的重叠区域;
对于所述重叠区域中的所述第一网格的每个相应顶点,搜索所述第二网格中的对应最近顶点,从而建立多个匹配对,每个匹配对包括所述第一网格的所述相应顶点和所述第二网格的所述对应最近顶点;
通过以下方式从所述多个匹配对中移除一个或多个错误匹配对:
识别所述第一网格的所述相应顶点的第一法向一致连接组和所述第二网格的所述对应最近顶点的第二法向一致连接组;以及
在确定所述第一法向一致连接组的面积与所述第二法向一致连接组的面积之间的比率大于预定阈值时,从所述多个匹配对中移除所述第一网格中的所述相应顶点和所述第二网格中的所述对应最近顶点;
确定要应用于所述第一网格以使所述多个匹配对中的剩余匹配对中对应顶点之间的距离最小化的刚性变换;以及
使用所述刚性变换旋转和平移所述第一网格;
对所述第一网格和所述第二网格执行网格剪裁,以移除冗余网格顶点;在剪裁缝周围执行几何细化,以封闭由网格剪裁产生的网格连结孔;以及
在与所述剪裁缝相邻的区域中执行纹理混合,以获得合并的网格。
24.根据权利要求23所述的计算机系统,其中,执行纹理混合包括:
识别所述第一网格和所述第二网格重叠的重叠区域;
识别包含所述重叠区域的所述重叠区域的边界框;
将所述重叠区域的所述边界框栅格化为纹素栅格;
对于所述第一网格的每个相应纹素,识别所述第二网格的对应纹素;以及
使用混合权重混合所述第一网格的每个相应纹素的纹理与所述第二网格的对应纹素的纹理,所述混合权重随着从所述相应纹素到所述剪裁缝的距离的减小而增大。
25.根据权利要求23所述的计算机系统,其中:
执行空间对齐进一步包括识别包含所述重叠区域的边界框,其中,所述第一网格的每个相应顶点和所述第二网格中的所述对应最近顶点位于所述边界框内;
对应顶点之间的所述距离包括所述第一网格的所述相应顶点与所述第二网格的所述对应最近顶点之间的间距;以及
移除一个或多个错误匹配对包括将所述第一网格的所述相应顶点和所述第二网格的所述对应最近顶点分类为所述一个或多个错误匹配对中的一者。
26.一种合并三维(3D)网格的方法,所述方法包括:
接收第一网格和第二网格;
执行空间对齐以使所述第一网格相对于所述第二网格对齐;
通过以下方式对所述第一网格和所述第二网格执行网格剪裁,以移除冗余网格顶点:
识别所述第一网格和所述第二网格重叠的重叠区域;
将所述重叠区域栅格化为体素栅格;
通过使用能量函数应用能量最小化程序,将所述体素栅格中的每个体素标记为第一网格体素和第二网格体素中的一者;
当所述第一网格的相应顶点在被标记为第二网格体素的体素中时,剪裁掉所述第一网格的每个该相应顶点;以及
当所述第二网格的相应顶点在被标记为第一网格体素的体素中时,剪裁掉所述第二网格的每个该相应顶点;以及
在剪裁缝周围执行几何细化,以封闭由网格剪裁产生的网格连结孔。
27.根据权利要求26所述的方法,其中,执行空间对齐包括:
识别包含所述重叠区域的所述重叠区域的边界框;
对于所述边界框内所述第一网格的每个相应顶点,搜索所述第二网格中的对应最近顶点,从而建立多个匹配对,每个匹配对包括所述第一网格的所述相应顶点和所述第二网格的所述对应最近顶点;
从所述多个匹配对中移除一个或多个错误匹配对;
确定要应用于所述第一网格以使所述多个匹配对中的每个匹配对中所述第一网格的所述相应顶点与所述第二网格的所述对应最近顶点之间的距离最小化的刚性变换;以及
使用所述刚性变换旋转和平移所述第一网格。
28.根据权利要求27所述的方法,进一步包括多次迭代以下步骤,直到达到收敛:对于所述边界框内所述第一网格的每个相应顶点,搜索所述第二网格的对应最近顶点,对于所述多个匹配对中的每个匹配对,移除一个或多个错误匹配对,确定刚性变换,以及使用所述刚性变换旋转和平移所述第一网格。
29.根据权利要求27所述的方法,其中,识别所述边界框包括:
识别包含所述重叠区域的初始边界框;以及
用缩放因子缩放所述初始边界框以获得所述边界框。
30.根据权利要求27所述的方法,其中,移除所述一个或多个错误匹配对包括:
估计所述第一网格的所述相应顶点的第一法向矢量和所述第二网格的所述对应最近顶点的第二法向矢量;
在确定所述第一法向矢量与所述第二法向矢量之间的差大于预定阈值时,将所述第一网格的所述相应顶点和所述第二网格的所述对应最近顶点分类为错误匹配对;以及
从所述多个匹配对中移除所述第一网格中的所述相应顶点和所述第二网格中的所述对应最近顶点。
31.根据权利要求30所述的方法,其中:
估计所述第一网格的所述相应顶点的所述第一法向矢量包括估计共享所述第一网格的所述相应顶点的第一多个三角形的法向矢量的平均;以及
估计所述第二网格的所述对应最近顶点的所述第二法向矢量包括估计共享所述第二网格的所述对应最近顶点的第二多个三角形的法向矢量的平均。
32.根据权利要求27所述的方法,其中,移除所述一个或多个错误匹配对包括:
估计所述第一网格的所述相应顶点的第一法向一致连接组和所述第二网格的所述对应最近顶点的第二法向一致连接组;
在确定所述第一法向一致连接组的面积与所述第二法向一致连接组的面积之间的比率大于预定阈值时,将所述第一网格中的所述相应顶点和所述第二网格中的所述对应最近顶点分类为所述一个或多个错误匹配对中的一者;以及
从所述多个匹配对中移除所述第一网格中的所述相应顶点和所述第二网格中的所述对应最近顶点。
33.根据权利要求32所述的方法,其中,通过应用法向矢量采样算法来执行移除所述一个或多个错误匹配对。
34.根据权利要求26所述的方法,其中,所述能量函数包括数据项,所述数据项指定用于在一体素仅与所述第二网格相交时将该体素标记为第一网格体素以及用于在一体素仅与所述第一网格相交时将该体素标记为第二网格体素的正代价值,否则指定零值。
35.根据权利要求26所述的方法,其中,所述能量函数包括边界项,对于一体素与所述第一网格的边界之间的逐渐减小的距离,所述边界项指定用于将该体素标记为第一网格体素的逐渐增大的正代价值,以及对于一体素与所述第二网格的边界之间的逐渐减小的距离,所述边界项指定用于将该体素标记为第二网格体素的逐渐增大的正代价值。
36.根据权利要求26所述的方法,其中,所述能量函数包括交叉项和纹理项,并且其中:所述交叉项为既与所述第一网格相交也与所述第二网格相交的体素指定的代价值低于为仅与所述第一网格相交或仅与所述第二网格相交的体素指定的代价值;以及所述纹理项为具有较高颜色变化的体素指定的代价值高于为具有较低颜色变化的体素指定的代价值。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662322081P | 2016-04-13 | 2016-04-13 | |
US62/322,081 | 2016-04-13 | ||
US15/467,851 | 2017-03-23 | ||
US15/467,851 US10186082B2 (en) | 2016-04-13 | 2017-03-23 | Robust merge of 3D textured meshes |
PCT/US2017/024273 WO2017180315A1 (en) | 2016-04-13 | 2017-03-27 | Robust merge of 3d textured meshes |
CN201780023709.5A CN109074675B (zh) | 2016-04-13 | 2017-03-27 | 合并三维纹理网格的方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780023709.5A Division CN109074675B (zh) | 2016-04-13 | 2017-03-27 | 合并三维纹理网格的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117745950A true CN117745950A (zh) | 2024-03-22 |
Family
ID=60038377
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311801774.XA Pending CN117745950A (zh) | 2016-04-13 | 2017-03-27 | 合并三维纹理网格的方法 |
CN201780023709.5A Active CN109074675B (zh) | 2016-04-13 | 2017-03-27 | 合并三维纹理网格的方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780023709.5A Active CN109074675B (zh) | 2016-04-13 | 2017-03-27 | 合并三维纹理网格的方法 |
Country Status (9)
Country | Link |
---|---|
US (3) | US10186082B2 (zh) |
EP (1) | EP3443538A4 (zh) |
JP (2) | JP6573734B2 (zh) |
KR (4) | KR102548340B1 (zh) |
CN (2) | CN117745950A (zh) |
AU (2) | AU2017251639B2 (zh) |
CA (1) | CA3017965A1 (zh) |
IL (2) | IL262339B (zh) |
WO (1) | WO2017180315A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10186082B2 (en) * | 2016-04-13 | 2019-01-22 | Magic Leap, Inc. | Robust merge of 3D textured meshes |
CA3089316A1 (en) * | 2018-02-27 | 2019-09-06 | Magic Leap, Inc. | Matching meshes for virtual avatars |
US11182954B2 (en) * | 2018-09-07 | 2021-11-23 | Hivemapper Inc. | Generating three-dimensional geo-registered maps from image data |
US11141645B2 (en) | 2018-09-11 | 2021-10-12 | Real Shot Inc. | Athletic ball game using smart glasses |
US11103763B2 (en) | 2018-09-11 | 2021-08-31 | Real Shot Inc. | Basketball shooting game using smart glasses |
US11043028B2 (en) | 2018-11-02 | 2021-06-22 | Nvidia Corporation | Reducing level of detail of a polygon mesh to decrease a complexity of rendered geometry within a scene |
CN109499067B (zh) * | 2018-11-16 | 2022-05-31 | 网易(杭州)网络有限公司 | 一种地形纹理的绘制方法及装置、电子设备、存储介质 |
US10878613B2 (en) * | 2018-12-06 | 2020-12-29 | Cesium GS, Inc. | System and method for transferring surface information from massive meshes to simplified meshes using voxels |
EP3667623A1 (en) * | 2018-12-12 | 2020-06-17 | Twikit NV | A system for optimizing a 3d mesh |
JP2023519143A (ja) * | 2020-03-25 | 2023-05-10 | アンコール メディカル,エルピー ディビーエー ディージェーオー サージカル | 積層造形を活用して形成された多孔質構造を有する関節インプラント並びに関連するシステム及び方法 |
US20220164994A1 (en) * | 2020-11-24 | 2022-05-26 | Samsung Electronics Co., Ltd. | Overlapped patches for mesh coding for video based point cloud compression |
CN112489216B (zh) * | 2020-11-27 | 2023-07-28 | 北京百度网讯科技有限公司 | 面部重建模型的评测方法、装置、设备及可读存储介质 |
CN113628343B (zh) * | 2021-10-09 | 2021-12-07 | 贝壳技术有限公司 | 三维网格的合并处理方法和装置、存储介质 |
CN115619978B (zh) * | 2022-11-21 | 2023-06-02 | 广州中望龙腾软件股份有限公司 | 网格面构建方法、终端以及存储介质 |
CN116843862B (zh) * | 2023-08-29 | 2023-11-24 | 武汉必盈生物科技有限公司 | 一种三维薄壁模型网格表面纹理合成方法 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5731817A (en) | 1995-10-11 | 1998-03-24 | Motorola, Inc. | Method and apparatus for generating a hexahedron mesh of a modeled structure |
US5963209A (en) * | 1996-01-11 | 1999-10-05 | Microsoft Corporation | Encoding and progressive transmission of progressive meshes |
US6614428B1 (en) * | 1998-06-08 | 2003-09-02 | Microsoft Corporation | Compression of animated geometry using a hierarchical level of detail coder |
US6281904B1 (en) * | 1998-06-09 | 2001-08-28 | Adobe Systems Incorporated | Multi-source texture reconstruction and fusion |
JP3740865B2 (ja) | 1998-10-08 | 2006-02-01 | コニカミノルタホールディングス株式会社 | 多視点3次元データの合成方法および記録媒体 |
US6968299B1 (en) * | 2000-04-14 | 2005-11-22 | International Business Machines Corporation | Method and apparatus for reconstructing a surface using a ball-pivoting algorithm |
US6750873B1 (en) * | 2000-06-27 | 2004-06-15 | International Business Machines Corporation | High quality texture reconstruction from multiple scans |
US6476804B1 (en) * | 2000-07-20 | 2002-11-05 | Sony Corporation | System and method for generating computer animated graphical images of an exterior patch surface layer of material stretching over an understructure |
JP3429271B2 (ja) | 2000-11-29 | 2003-07-22 | コナミ株式会社 | 3次元画像処理方法、その装置、3次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体及びビデオゲーム装置 |
JP2003044871A (ja) | 2001-08-02 | 2003-02-14 | Sony Corp | 3次元画像処理装置及び3次元画像処理方法、並びに記憶媒体 |
US7098907B2 (en) | 2003-01-30 | 2006-08-29 | Frantic Films Corporation | Method for converting explicitly represented geometric surfaces into accurate level sets |
JP3781008B2 (ja) * | 2003-02-24 | 2006-05-31 | コニカミノルタホールディングス株式会社 | 3次元モデルの編集方法および装置並びにコンピュータプログラム |
US7619626B2 (en) * | 2003-03-01 | 2009-11-17 | The Boeing Company | Mapping images from one or more sources into an image for display |
JP3873938B2 (ja) * | 2003-07-25 | 2007-01-31 | コニカミノルタホールディングス株式会社 | メッシュマージ方法、メッシュマージ装置、およびコンピュータプログラム |
TWI267799B (en) * | 2003-09-19 | 2006-12-01 | Ind Tech Res Inst | Method for constructing a three dimensional (3D) model |
US20070088531A1 (en) * | 2003-12-19 | 2007-04-19 | Wei Yuan | Methods For Generating Digital Or Visual Representations Of A Closed Tessellated Surface Geometry |
US7265752B2 (en) * | 2004-01-09 | 2007-09-04 | Microsoft Corporation | Multi-chart geometry images |
US20070132757A1 (en) * | 2005-05-16 | 2007-06-14 | Tal Hassner | Constrained model composition |
US7283140B2 (en) * | 2005-06-21 | 2007-10-16 | Microsoft Corporation | Texture montage |
US7463258B1 (en) * | 2005-07-15 | 2008-12-09 | The United States Of America As Represented By The Secretary Of The Navy | Extraction and rendering techniques for digital charting database |
US7689021B2 (en) * | 2005-08-30 | 2010-03-30 | University Of Maryland, Baltimore | Segmentation of regions in measurements of a body based on a deformable model |
WO2007069223A2 (en) * | 2005-12-16 | 2007-06-21 | Philips Intellectual Property & Standards Gmbh | Surface tesselation of shape models |
US7636610B2 (en) | 2006-07-19 | 2009-12-22 | Envisiontec Gmbh | Method and device for producing a three-dimensional object, and computer and data carrier useful therefor |
US7800627B2 (en) | 2007-06-08 | 2010-09-21 | Microsoft Corporation | Mesh quilting for geometric texture synthesis |
US7843456B2 (en) | 2007-06-29 | 2010-11-30 | Microsoft Corporation | Gradient domain editing of animated meshes |
US8289322B1 (en) * | 2007-10-17 | 2012-10-16 | Sandia Corporation | Quadrilateral finite element mesh coarsening |
KR101525054B1 (ko) * | 2008-01-03 | 2015-06-03 | 삼성전자주식회사 | 3차원 메쉬 데이터 간략화 방법 및 장치 |
US8269765B2 (en) * | 2008-02-28 | 2012-09-18 | Autodesk, Inc. | System and method for removing seam artifacts |
CN102388407B (zh) | 2009-04-08 | 2014-05-21 | 株式会社岛精机制作所 | 着装模拟装置、模拟方法及模拟程序 |
KR101669873B1 (ko) * | 2009-10-16 | 2016-10-27 | 삼성전자주식회사 | 삼차원 메쉬 압축장치 및 방법 |
CN101950431B (zh) * | 2010-05-12 | 2012-06-27 | 中国科学院自动化研究所 | 一种在三角网格曲面上检测脐点的方法 |
GB201101810D0 (en) | 2011-02-03 | 2011-03-16 | Rolls Royce Plc | A method of connecting meshes |
US9191648B2 (en) | 2011-02-22 | 2015-11-17 | 3M Innovative Properties Company | Hybrid stitching |
JP5791312B2 (ja) * | 2011-03-08 | 2015-10-07 | カルソニックカンセイ株式会社 | 表面加工データの作成方法および装置 |
US8907976B2 (en) * | 2012-03-20 | 2014-12-09 | Autodesk, Inc. | Resolution-adaptive mesh smoothing brush |
US10186079B2 (en) * | 2012-05-14 | 2019-01-22 | Autodesk, Inc. | Adaptively joining meshes |
US9196089B2 (en) | 2012-05-17 | 2015-11-24 | Disney Enterprises, Inc. | Techniques for processing reconstructed three-dimensional image data |
US20150178988A1 (en) * | 2012-05-22 | 2015-06-25 | Telefonica, S.A. | Method and a system for generating a realistic 3d reconstruction model for an object or being |
US9495752B2 (en) * | 2012-09-27 | 2016-11-15 | Siemens Product Lifecycle Management Software Inc. | Multi-bone segmentation for 3D computed tomography |
US9626797B2 (en) * | 2012-10-05 | 2017-04-18 | Autodesk, Inc. | Generating a consensus mesh from an input set of meshes |
GB2499694B8 (en) | 2012-11-09 | 2017-06-07 | Sony Computer Entertainment Europe Ltd | System and method of image reconstruction |
CN103049896B (zh) * | 2012-12-27 | 2015-09-16 | 浙江大学 | 三维模型的几何数据和纹理数据自动配准算法 |
US9147279B1 (en) | 2013-03-15 | 2015-09-29 | Google Inc. | Systems and methods for merging textures |
CN103440680B (zh) * | 2013-08-22 | 2015-12-02 | 浙江大学 | 一种基于一范数优化的Polycube可控生成方法 |
US9911220B2 (en) * | 2014-07-28 | 2018-03-06 | Adobe Systes Incorporated | Automatically determining correspondences between three-dimensional models |
US10210657B2 (en) * | 2015-07-24 | 2019-02-19 | The University Of British Columbia | Methods and systems for hex-mesh optimization via edge-cone rectification |
US9691165B2 (en) * | 2015-07-24 | 2017-06-27 | Disney Enterprises, Inc. | Detailed spatio-temporal reconstruction of eyelids |
US10186082B2 (en) | 2016-04-13 | 2019-01-22 | Magic Leap, Inc. | Robust merge of 3D textured meshes |
-
2017
- 2017-03-23 US US15/467,851 patent/US10186082B2/en active Active
- 2017-03-27 WO PCT/US2017/024273 patent/WO2017180315A1/en active Application Filing
- 2017-03-27 AU AU2017251639A patent/AU2017251639B2/en active Active
- 2017-03-27 JP JP2018553234A patent/JP6573734B2/ja active Active
- 2017-03-27 KR KR1020227021921A patent/KR102548340B1/ko active IP Right Grant
- 2017-03-27 KR KR1020197013571A patent/KR102210537B1/ko active IP Right Grant
- 2017-03-27 CN CN202311801774.XA patent/CN117745950A/zh active Pending
- 2017-03-27 CN CN201780023709.5A patent/CN109074675B/zh active Active
- 2017-03-27 KR KR1020217002640A patent/KR102415830B1/ko active IP Right Grant
- 2017-03-27 CA CA3017965A patent/CA3017965A1/en active Pending
- 2017-03-27 KR KR1020187032239A patent/KR101979418B1/ko active IP Right Grant
- 2017-03-27 EP EP17782825.8A patent/EP3443538A4/en active Pending
-
2018
- 2018-10-09 US US16/155,564 patent/US10726623B2/en active Active
- 2018-10-14 IL IL262339A patent/IL262339B/en active IP Right Grant
-
2019
- 2019-04-16 IL IL266060A patent/IL266060B/en active IP Right Grant
- 2019-05-09 JP JP2019088912A patent/JP6883062B2/ja active Active
-
2020
- 2020-06-15 US US16/901,727 patent/US11210852B2/en active Active
-
2021
- 2021-11-03 AU AU2021261883A patent/AU2021261883A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2017180315A1 (en) | 2017-10-19 |
IL262339A (en) | 2018-12-02 |
KR20190053304A (ko) | 2019-05-17 |
US10726623B2 (en) | 2020-07-28 |
KR20220093404A (ko) | 2022-07-05 |
KR102548340B1 (ko) | 2023-06-26 |
KR20180123726A (ko) | 2018-11-19 |
JP2019514126A (ja) | 2019-05-30 |
IL266060A (en) | 2019-06-30 |
KR102415830B1 (ko) | 2022-06-30 |
IL266060B (en) | 2021-01-31 |
AU2021261883A1 (en) | 2021-12-02 |
JP2019125402A (ja) | 2019-07-25 |
KR102210537B1 (ko) | 2021-02-01 |
CN109074675A (zh) | 2018-12-21 |
US20200312023A1 (en) | 2020-10-01 |
JP6573734B2 (ja) | 2019-09-11 |
EP3443538A4 (en) | 2019-04-10 |
AU2017251639A1 (en) | 2018-10-04 |
AU2017251639B2 (en) | 2021-08-05 |
CA3017965A1 (en) | 2017-10-19 |
US20170301133A1 (en) | 2017-10-19 |
KR101979418B1 (ko) | 2019-05-16 |
JP6883062B2 (ja) | 2021-06-09 |
EP3443538A1 (en) | 2019-02-20 |
IL262339B (en) | 2019-05-30 |
NZ746322A (en) | 2021-08-27 |
US11210852B2 (en) | 2021-12-28 |
KR20210012069A (ko) | 2021-02-02 |
CN109074675B (zh) | 2024-01-02 |
US10186082B2 (en) | 2019-01-22 |
US20190043256A1 (en) | 2019-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109074675B (zh) | 合并三维纹理网格的方法 | |
CN109697688B (zh) | 一种用于图像处理的方法和装置 | |
Yan et al. | Variational mesh segmentation via quadric surface fitting | |
JP4999717B2 (ja) | レンジ画像から物体の姿勢を求める方法及びシステム | |
US8363926B2 (en) | Systems and methods for modeling three-dimensional objects from two-dimensional images | |
WO2015017941A1 (en) | Systems and methods for generating data indicative of a three-dimensional representation of a scene | |
WO1998009253A1 (fr) | Procede permettant de fournir des informations sur une texture, procede d'extraction d'objet, procede de production de modeles tridimensionnels et appareillage associe a ceux-ci | |
Potapova et al. | Attention-driven object detection and segmentation of cluttered table scenes using 2.5 d symmetry | |
CN111862001A (zh) | Ct影像的半自动标注方法及装置、电子设备、存储介质 | |
NZ746322B2 (en) | Robust merge of 3d textured meshes | |
Gkeli et al. | Automatic 3D reconstruction of buildings roof tops in densely urbanized areas | |
EP4345748A1 (en) | Computer-implemented method for providing a lightweight 3-dimensional model, a non-transitory computer-readable medium, and a data structure | |
Do et al. | On multi-view texture mapping of indoor environments using Kinect depth sensors | |
Messer et al. | Image-Based Alignment of 3D Scans | |
Ioannakis et al. | 3D Object Spatial-consistent Texture Maps Appropriate for 2D Image Processing. |
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 |