CN115631486A - 分割表示机械组装件的3d建模对象 - Google Patents

分割表示机械组装件的3d建模对象 Download PDF

Info

Publication number
CN115631486A
CN115631486A CN202210835119.5A CN202210835119A CN115631486A CN 115631486 A CN115631486 A CN 115631486A CN 202210835119 A CN202210835119 A CN 202210835119A CN 115631486 A CN115631486 A CN 115631486A
Authority
CN
China
Prior art keywords
primitives
primitive
neural network
merging
subsets
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
CN202210835119.5A
Other languages
English (en)
Inventor
M·梅兹格汉尼
J·布歇
P·维勒迪厄
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 CN115631486A publication Critical patent/CN115631486A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • 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/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/12Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/17Mechanical parametric or variational design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • 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/20Indexing scheme for editing of 3D models
    • G06T2219/2012Colour editing, changing, or manipulating; Use of colour codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Architecture (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

本公开尤其涉及一种计算机实现的方法,包括将3D建模对象的表示输入到抽象神经网络,该抽象神经网络输出拟合3D建模对象的第一数量的第一基元的第一集合。该方法还包括根据第一集合确定一个或多个第二集合,每个第二集合具有相应的第二数量的相应的第二基元。第二数量小于第一数量。该确定包括将第三基元的第三集合初始化为第一集合并且执行一次或多次迭代。每次迭代包括将第三基元的一个或多个子集一起各自合并到一个相应的单个第四基元,由此获得第四基元的第四集合。每次迭代还包括将下一次迭代的第三集合设置为当前迭代的第四集合,并且将一个或多个第二集合设置为一个或多个获得的第四集合。这构成了一种用于分割表示机械组装件的3D建模对象的改进的方法。

Description

分割表示机械组装件的3D建模对象
技术领域
本公开涉及计算机程序和系统的领域,并且更具体地涉及用于分割3D建模对象的方法、计算机程序和设备。
背景技术
市场上提供了用于对象的设计、工程和制造的许多系统和程序。CAD是Computer-Aided Design(计算机辅助设计)的缩写,例如,CAD涉及用于设计对象的软件解决方案。CAE是Computer-Aided Engineering(计算机辅助工程)的缩写,例如,CAE涉及用于对未来产品的物理行为进行仿真的软件解决方案。CAM是Computer-Aided Manufacturing(计算机辅助制造)的缩写,例如,CAM涉及用于定义制造工艺和操作的软件解决方案。在这种计算机辅助设计系统中,图形用户接口扮演关于技术的效率的重要的角色。这些技术可以嵌入在产品生命周期管理(PLM)系统中。PLM指代一种商业战略,其帮助公司共享产品数据、应用通用流程并且跨扩展企业的概念利用企业知识以进行产品从概念到其生命尽头的开发。达索系统(Dassault Systèmes)(以CATIA、ENOVIA和DELMIA为商标)提供的PLM解决方案提供了组织产品工程知识的工程中心、管理制造工程知识的制造中心以及实现企业集成以及到工程中心和制造中心两者的连接的企业中心。整个系统提供了链接产品、流程和资源以实现动态的、基于知识的产品创建和决策支持的开放的对象模型,该对象模型驱动优化的产品定义、制造准备、生产和服务。
在该上下文和其他上下文内,分割3D建模对象(也可以简称为“3D分割”或“分割”)正变得越来越重要。
给定表示机械组装件的3D建模对象(例如,网格),3D分割通常在于将3D建模对象的几何部分(例如,机械组装件的部件)拆分/分隔成若干连接的聚类(cluster)(称为片段(segment)),其中每个片段使其内部一致性最大化,同时使其相对于其他片段的相似性最小化。分割过程的结果可以以使每个片段表示语义一致的集合,并且相对于其他片段具有清晰的边界的方式,而将机械组装件的部件分隔为若干集合(片段)。3D分割的目的可以是取3D建模对象(例如,3D建模对象的网格)作为输入,并将该输入分解成若干个部分(例如,通过将每个网格顶点指派给给定部分)。
近期的工作已经集中于应用深度神经网络来分割3D建模对象。特别地,现有技术包括使用有监督深度学习方法来分割3D形状的先前工作和使用无监督深度学习方法的先前工作。
在有监督方法中,Luo等人[1]提出了一种自下而上的方法来执行场景和对象分割。Ganapathi-Subramanian等人[2]使用每个对象类别的一组模板来对由现实世界传感器捕获的原始数据进行分割。更近期地,Wang等人[3]开发了一种流水线,以对对象进行过度分割,然后将过度分割的补丁合并在一起。这些方法有一个主要缺点:使用有监督学习不允许将这些方法应用于未标记和/或看不见的对象类别。
若干种方法替代地专注于无监督学习,使用重建损失来训练各种网络。Genova等人[4]训练神经网络以使一组高斯函数参数化来表示3D形状。他们后来改进了在Genova等人的[5]中的初始方法。两篇参考文献都主要关注几何准确度。在同一类别中,Deng等人[6]学习了自动编码器将3D对象分解为一组凸部分。与之前的参考文献相比,主要应用是在实时物理仿真中使用分解。这些工作全部输出固定数量的部分,这不能导致语义相关的形状分割。
现有技术还包括在给定3D形状的情况下执行基元抽象的解决方案。Tulsiani等人[7]的关于该主题的第一个解决方案学习网络来表示具有一组立方体的3D形状。Paschalidou等人[8]和Sun等人[9]提出了对该方法的各种改进。第一个调整损失以避免使用强化学习,并使用超椭球作为基本基元(而不是立方体)。第二个学习网络来预测若干个基元抽象,其具有用于每个抽象的不同数量的立方体。通过从每个抽象中挑选最好的部分来获得最终的形状抽象。最后,Paschalidou等人[10]引入了层级的概念,通过迭代地将形状分解为两个子部分,两个子部分再次由超椭球表示。所有这些参考文献都有自己的方式来处理不同对象需要不同数量的基元来表示它们的事实。然而,它们都不能在减少计算时间的情况下高效地实现对3D建模对象的准确且鲁棒的分割。
在该上下文内,仍然需要一种用于分割表示机械组装件的3D建模对象的改进的方法。
引用的参考文献
[1]T.Luo,K.Mo,Z.Huang,J.Xu,S.Hu,L.Wang,H.Su,“LEARNING TO GROUP:ABOTTOM-UP FRAMEWORK FOR 3D PART DISCOVERY IN UNSEEN CATEGORIES”ICLR 2020
[2]V.Ganapathi-Subramanian,O.Diamanti,S.Pirk,C.Tang,M.Niessner,L.Guibas.“Parsing geometry using structure-aware shape templates”3DV 2018
[3]X.Wang,X.Sun,X.Cao,K.Xu,B.Zhou,“Learning Fine-Grained Segmentationof 3D Shapes without Part Labels”.CVPR 2021
[4]K.Genova,F.Cole,D.Vlasic,A.Sarna,W.Freeman,T.Funkhouser,“LearningShape Templates with Structured Implicit Functions”.ICCV 2019
[5]K.Genova,F.Cole,A.Sud,A.Sarna,T.Funkhouser,“Local Deep ImplicitFunctions for 3D Shape”.CVPR 2020
[6]B.Deng,K.Genova,S.Yazdani,S.Bouaziz,G.Hinton,A.Tagliasacchi.“CvxNet:Learnable Convex Decomposition”.CVPR 2020
[7]S.Tulsiani,H.Su,L.J.Guibas,A.Efros,J.Malik.“Learning ShapeAbstractions by Assembling Volumetric Primitives”.CVPR 2018
[8]D.Paschalidou,A.Osman,A.Geiger.“Superquadrics Revisited:Learning3D Shape Parsing beyond Cuboids”.CVPR 2019
[9]C.Sun,Q.Zou,X.Tong,Y.Liu.“Learning Adaptive Hierarchical CuboidAbstractions of 3D Shape Collections”.SIGGRAPH Asia 2019
[10]D.Paschalidou,L.van Gool,A.Geiger,“Learning UnsupervisedHierarchical Part Decomposition of 3D Objects from a Single RGB Image”,CVPR2020
[11]A.X.Chang et al.,“ShapeNet:An Information-Rich 3D ModelRepository,”Dec.2015.
[12]Zvi Galil.“Efficient algorithms for finding maximum matching ingraphs”.In:ACM Comput.Surv.18.1(Mar.1986),pp.23–38.ISSN:0360-0300.DOI:10.1145/6462.6502.URL:https://doi.org/10.1145/6462.6502(visited on 10/05/2020)
[13]Lin Gao,Yu-Kun Lai,Jie Yang,Zhang Ling-Xiao,Shihong Xia,and LeifKobbelt.Sparse data driven mesh deformation.IEEE transactions onvisualization and computer graphics(2019)
[14]Ales Jaklic,Ales Leonardis,and F.Solina.Segmentation and Recoveryof Superquadrics.en.Computational Imaging and Vision.Springer Netherlands,2000.ISBN:978-0-7923-6601-0.DOI:10.1007/978-94-015-9456-1.URL:https://www.springer.com/gp/book/9780792366010
[15]Charles R Qi,Hao Su,Kaichun Mo,and Leonidas J Guibas.Pointnet:Deep learning on point sets for 3D classification and segmentation.InProceedings of the IEEE Conference on Computer Vision and PatternRecognition,pp.652–660,2017a.
发明内容
因此,提供了一种用于分割表示机械组装件的3D建模对象的计算机实现的方法。该方法包括提供3D建模对象。该方法还包括将3D建模对象的表示输入到抽象神经网络。抽象神经网络输出拟合3D建模对象的第一基元的第一集合。第一集合包括第一数量的第一基元。该方法还包括根据第一集合确定一个或多个第二集合,每个第二集合具有相应的第二基元。每个第二集合包括相应的第二数量的相应的第二基元。第二数量小于第一数量。该确定包括将第三基元的第三集合初始化为第一集合。该确定还包括执行一次或多次迭代。每次迭代包括提供第三基元的第三集合。每次迭代还包括将第三基元的一个或多个子集一起各自合并到一个相应的单个第四基元中。该迭代由此获得第四基元的第四集合,该第四基元的第四集合包括每个单个第四基元和每个未被合并的第三基元。每次迭代还包括将下一次迭代的第三集合设置为当前迭代的第四集合。该确定还包括将一个或多个第二集合设置为一个或多个获得的第四集合。
该方法可以包括以下各项中的一项或多项:
-合并包括:在候选子集的组中确定要被合并的一个或多个子集,所述确定要被合并的所述一个或多个子集包括:对于组的每个相应的候选子集,对相应的候选子集的合并成本进行惩罚;
-合并包括:在子集的候选组中确定候选子集的组,所述确定候选子集的组包括:对于每个相应的候选组,针对相应的候选组的所有子集,对各自在相应的子集的第三基元之间的合并兼容性进行全局惩罚;
-子集的候选组包括第三集合的分区,每个分区各自为第三基元的对,所述确定候选子集的组包括最小加权匹配算法;
-抽象神经网络包括:
ο编码器,其中,可选地,编码器包括卷积神经网络,和/或编码器被配置为取体素栅格作为输入,3D建模对象的表示是根据体素栅格格式被输入到抽象神经网络的,以及
ο三个子网络,其被配置为分别输出基元大小参数、基元定位参数和基元定向参数,并且可选地,一个附加子网络被配置为输出基元形状参数,其中,可选地,至少一个(例如,每个)子网络各自由全连接层组成(例如,其中输出大小取决于第一数量并且取决于每个子网络的相应的输出的参数的数量和/或第一数量是超参数)。
-一个或多个第二集合包括多个第二集合,该方法还包括一个或多个交互,每个交互包括:
ο在用户交互时选择多个第二集合中的单个第二集合;以及
ο实时显示所选择的第二集合的图形表示;
-该方法还包括:
ο自动选择单个第四集合,所选择的单个第四集合对应于在连续迭代之间的合并重建损失高于阈值的演变;以及
ο标记所选择的单个第四集合;
-抽象神经网络以无监督方式在数据集上进行训练,该数据集包括未注释的3D建模对象,每个未注释的3D建模对象表示相应的机械组装件;
-合并包括:将每个子集的表示输入到合并神经网络,该合并神经网络输出相应的单个第四基元;
-合并神经网络包括:
ο编码器,其中,可选地,编码器包括卷积神经网络,和/或编码器被配置为取体素栅格和/或点云作为输入,每个子集的表示是分别根据体素栅格格式或点云格式被输入到合并神经网络的,以及
ο三个子网络,其分别被配置为分别输出基元大小参数、基元定位参数和基元定向参数,并且可选地,一个附加子网络被配置为输出基元形状参数,其中,可选地,至少一个(例如,每个)子网络各自由全连接层组成(例如,其中输出大小取决于每个子网络的相应的输出的参数);和/或
-抽象神经网络和合并神经网络中的至少一个基于对重建损失进行惩罚的相应的训练损失来训练,其中,可选地,重建损失基于点云距离,抽象神经网络的训练损失对重叠损失和面积损失进行进一步惩罚,和/或训练损失等于重建损失、重叠损失和面积损失的加权和。
还提供了一种用于学习抽象神经网络和/或用于学习合并神经网络的计算机实现的方法。学习中的任一种或两种可以是无监督的,即,基于未注释的数据集。
还提供了一种计算机程序,包括用于执行以下各项的指令:用于分割3D建模对象的计算机实现的方法、用于学习抽象神经网络的计算机实现的方法和/或用于学习合并神经网络的计算机实现的方法。
还提供了一种设备,包括其上记录有计算机程序的数据存储介质。
该设备可以形成或用作例如在SaaS(软件即服务)或其他服务器、或基于云的平台等上的非暂时性计算机可读介质。该设备可以可替代地包括耦合到数据存储介质的处理器。因此,该设备可以全部或部分地形成计算机系统(例如,该设备是整个系统的子系统)。该系统还可以包括耦合到处理器的图形用户接口。
附图说明
现在将参考附图描述非限制性示例,在附图中:
-图1示出了方法的示例的流程图;
-图2示出了框架的示例的流程图;
-图3是合并算法的示例的流程图;
-图4示出了在合并算法期间重建损失的演变的示例;
-图5示出了超椭球形状相对于形状参数的变化的示例。
-图6示出了初始抽象模型的架构的示例;
-图7示出了具有迭代过程的简约抽象的示例;
-图8示出了交互式形状抽象的示例;以及
-图9示出了计算机系统的示例。
具体实施方式
参考图1的流程图,提出了一种用于分割表示机械组装件的3D建模对象的计算机实现的方法。该方法包括提供S10 3D建模对象。该方法还包括将3D建模对象的表示输入S20到抽象神经网络。抽象神经网络输出拟合3D建模对象的第一基元的第一集合。第一集合包括第一数量的第一基元。该方法还包括根据第一集合确定S30一个或多个第二集合,每个第二集合具有相应的第二基元。每个第二集合包括相应的第二数量的相应的第二基元。第二数量小于第一数量。该确定包括将第三基元的第三集合初始化为第一集合。该确定还包括执行一次或多次迭代。每次迭代包括:提供第三基元的第三集合;将第三基元的一个或多个子集一起各自合并到一个相应的单个第四基元中,由此获得第四基元的第四集合,该第四基元的第四集合包括每个单个第四基元和每个未被合并的第三基元;以及将下一次迭代的第三集合设置为当前迭代的第四集合。该确定还包括将一个或多个第二集合设置为一个或多个获得的第四集合。
这构成了一种用于分割表示机械组装件的3D建模对象的改进的方法。
通过首先确定第一基元的第一集合,然后将基元的子集迭代地合并在一起,该方法允许以特别相关、鲁棒且准确的方式分割3D建模对象。该方法开始于抽象神经网络的输出,即,第一基元的第一集合。该第一集合呈现出比由迭代过程输出的一个或多个第二集合更高的粒度。实际上,第一数量严格高于相应的第二数量中的每一个。因此,第一集合可以被视为3D建模对象的过度分割。开始于该第一过度分割允许以精确的方式(即,通过考虑3D建模对象的精细几何特征)分割3D建模对象。
此外,该方法基于迭代过程来确定一个或多个第二集合,这包括在每次迭代时将基元的一个或多个子集各自合并到一个新的基元中。因此,迭代过程允许在每次迭代时获得第四集合,该第四集合与在先前迭代期间获得的第四集合一致。合并允许在本地查看3D建模对象的几何形状,以恢复一致性。
此外,该方法允许减少学习偏差。实际上,开始于第一精细分割然后进行合并的事实允许更好地考虑机械组装件的几何形状,与训练数据集的部分相比,这可能是复杂的。此外,该方法避免了增加学习过程。开始于过度分割开始然后对基元的子集进行合并的事实允许在计算时间方面保持合理。
本文的分割3D建模对象意味着确定允许将3D建模对象分隔为称为“片段”的不同部分的数据。该方法以基元的一个或多个第二集合的形式提供这样的数据,其中的每一个拟合3D建模对象。每个第二集合可以形成一个分割,每个第二集合的每个基元可以表示一个片段。
该方法还可以包括将3D建模对象的部分各自映射到至少一个第二集合(例如,每个第二集合或所选择的单个第二集合)的相应的基元(例如,3D建模对象的部分可以映射到最接近的基元),这例如是基于从所述部分到所述相应的基元的距离的。该方法还可以包括相应地标记映射的部分。例如,对于基元的至少一个第二集合,分割可以包括针对每个基元定义/实例化相应的标签,以及将3D建模对象的部分各自指派给相应的标签(即,用相应的标签标记每个部分)。例如,3D建模对象可以包括离散的几何表示(例如,网格或相应的点云),并且该方法可以包括将每个离散元素(例如,网格瓦片(例如,其在三角形网格的情况下为三角形)或相应的点)指派给相应的标签。指派可以基于与对应于相应的标签的基元的距离。例如,该方法可以将3D建模对象的部分各自指派给最接近的基元。机械组装件的部分可以是表示机械组装件的网格的一部分或表示机械组装件的3D CAD模型的一部分。因此,这些片段可以各自对应于具有相同标签的不同部分。
该方法确定基元的若干个集合(第一集合、第二集合、第三集合和第四集合)。这些不同的集合具有相应数量的基元,这些数量可能高于或低于机械组装件的部件的数量。因此,在给定集合的基元与机械组装件的部件之间可能不存在双射(bijection)。例如,对于给定的集合,一个基元可能对应于单个部件,或者对应于若干个部件。相反地,仍然考虑给定的集合,机械组装件的部件可以对应于给定的集合的单个基元,或者对应于给定的集合的若干个基元。
机械组装件是所谓的机械“部件”的组装件。机械组装件包括不同的零件(即,部件),这些零件形成单独的组件,并以机械方式组装在一起(例如,通过固定装置、压装、卡扣或接合)。该方法可以使每个片段的内部一致性最大化,同时使其相对于其他片段的相似性最小化。因此,每个分割相对于机械组装件是一致的,即,相对于机械组装件中的部件/组件的定位/组装是一致的。例如,每个分割可以使得机械组装件的每个给定部件满足以下条件中的一个:(i)一个或多个片段拟合该给定部件(即,实质上匹配该部件),或(ii)一个片段拟合包括该给定部件的一组部件。分割可以另外地相对于组件所包括的部件的类型(例如,主体部件、螺钉或腿)是一致的。可以基于在组装线上将组件(即,机械组装件的部件)组装在一起的过程来制造机械组装件。分割的边界(即,不同片段之间的)和机械组装件的边界(即,不同部件之间的)是共同的。
3D建模对象的分割提供了对3D建模对象所表示的机械组装件的改进的理解和知识,并且还可以用于许多制造CAD应用中(即,在设计和/或制造过程内)。
在第一应用中,分割可以用于对3D建模对象的操作或设计。实际上,分割可以用于将3D建模对象的每个片段作为一个整体进行修改和/或移动。另外地,基元被参数化,因此只需修改基元参数值即可利用CAD工具进行编辑。“参数化”意味着基元由参数等式或参数函数表示,因此涉及一个或多个参数,其中一个或多个参数可以取各自都在相应的连续范围内的值。与诸如离散表示(例如,点云、网格、dexel表示)之类的非参数化的3D几何对象相反,3D参数化的几何对象允许容易的操纵和/或可编辑性和/或在存储器中的高效存储。第一应用因此可以包括通过用户交互来编辑一个或多个基元的参数,并且在3D建模对象的相应的片段上自动反映这样的编辑。
可替代地或另外地,第一应用可以包括识别在不同的3D建模对象中的相同片段和/或相同对象中相同片段的多次出现。然后,第一应用可以包括通过针对相同片段中的每一个(和/或针对若干次出现中的每一次)将单个片段存储在存储器中并添加对相同片段(和/或若干次出现)的引用来重组数据,换言之,调用存储器中单个对象的实例,而不是在存储器中复制相同的片段。可以在分割之后执行对数据的这种重组以获得高效的存储器存储。
在第二应用中,分割可以用于将部件从数据库导入到3D建模对象中。例如,第二应用可以包括将一个或多个片段与来自数据库的一个或多个部件匹配,并且在3D建模对象中,利用从数据库导入的与一个或多个片段匹配的一个或多个部件来替换该一个或多个片段。从数据库导入的一个或多个部件可以包括附加信息(例如,参数表示、名称、材料的类型或特定制造过程)。因此,从数据库中导入部件可以丰富3D建模对象。
在第三应用中,分割可以用于构建部件库。可以出于在其他机械组装件中重复使用部件的目的来查阅部件库。例如,第三应用可以包括将3D建模对象的片段添加到部件库,并且在另一机械组装件的设计期间,在该另一机械组装件中重复使用所添加的片段中的一个或多个。
在该方法的第四应用中,由该方法产生的一个或多个分割可以用于重新网格化(即,如果所提供的3D建模对象是3D网格)或重新采样(即,如果所提供的3D建模对象是3D点云)。这种重新网格化/重新采样可以用于对3D建模对象进行去噪(例如,去除异常点(特别是对于3D点云),或使3D建模对象的外表面平滑(特别是对于3D网格))。另外地或可替代地,它可以用于高效地将3D网格划分为表示机械组装件的若干个3D网格,即,以获得多个3D网格,每个3D网格对应于机械组装件的相应的部分。当所提供的3D建模对象是3D点云时,该方法可以用于将3D点云相对于机械组装件进行划分。在这种情况下,该方法可以用于定义点云中的每个点属于哪个部件。
在该方法的第五应用中,由该方法产生的分割可以用于检测3D建模对象中的异常(例如,制造异常)。该应用可以包括将机械组装件应具有的属性的可用知识与由该方法输出的分割的片段进行比较,由此产生关于机械组装件的缺陷或异常的信息。例如,可用知识可以包括诸如“给定的机械组装件应具有六个机械部件”或“通常的部件不应具有任何小面部分”之类的信息。如果表示机械组装件的3D建模对象部分被分割成不对应于六个机械部件的多个片段,或者如果一些片段表示小面部分(例如,一个基元具有表示小面部分的参数),则该方法可以包括推断3D建模对象特征异常,使得给定的组装件特征异常(即,制造缺陷)。
可替代地或另外地,分割可以在第五应用中使用以验证遵守了用于未来制造的某些标准,例如,用于3D打印的每个片段的最大大小。第五应用可以包括验证分割将对象分割成与负责制造的机器兼容的具有最大大小的片段。
在第六应用中,分割可以用于自动注释数据集(到分割的对象中)。然后可以将带注释的数据集用于例如学习任务(例如,判别式或生成式)。
由该方法输出的分割可以用于3D形状分割的其他应用,例如,3D变形、3D渲染(几何/材料属性计算、遮挡剔除、阴影确定)、3D动画和/或形状压缩。例如,该方法可以用于检测3D场景中的对象。3D形状的分割也可以是例如基于片段针对3D形状生成CAD树的第一步。
仍然参考图1的流程图,现在讨论提供S10 3D建模对象。在讨论提供S10 3D建模对象之前,现在讨论其中涉及的数据结构。
该方法用于分割3D建模对象,使得该方法通常操纵建模对象。建模对象是由例如存储在数据库中的数据定义的任何对象。通过扩展,表述“建模对象”指定了数据本身。根据系统的类型,建模对象可以由不同种类的数据定义。该系统实际上可以是CAD系统、CAE系统、CAM系统、PDM系统和/或PLM系统的任何组合。在这些不同的系统中,建模对象由对应的数据定义。因此,人们可以谈到CAD对象、PLM对象、PDM对象、CAE对象、CAM对象、CAD数据、PLM数据、PDM数据、CAM数据、CAE数据。然而,这些系统并不是彼此互斥的,因为建模对象可以由对应于这些系统的任何组合的数据来定义。
3D建模对象表示机械组装件。“3D建模对象”意味着由允许其3D表示的数据建模的任何对象。3D表示允许从所有视角(例如,从各种角度和/或距离)查看机械组装件。例如,当3D建模对象以3D表示时,该3D建模对象可以被处理并且围绕其轴中的任一个轴或围绕其上显示表示的屏幕中的任一个轴来旋转。这允许例如检查机械组装件的不同部件。特别地,这不包括未进行3D建模的2D图标。3D表示的显示促进设计(即,提高设计人员在统计上完成任务的速度)。这加快了行业中的制造过程,因为产品的设计是制造过程的一部分。
3D建模对象表示在利用例如CAD软件解决方案或CAD系统完成产品(即,机械组装件)的虚拟设计之后要在现实世界中制造的产品的几何形状。3D建模对象表示机械组装件,因此其包括多个部件。机械组装件的制造可以包括在于在组装线上将机械组装件的部件组装在一起的过程。CAD软件解决方案允许在不同且无限的工业领域中的产品的设计,这些工业领域包括:航空航天、建筑、建造、消费者商品、高科技设备、工业装置、运输、船舶和/或海上油/气生产或运输。因此,3D建模对象可以表示工业产品,该工业产品可以是任何机械组装件,例如,陆地车辆(包括例如汽车和轻型卡车设备、赛车、摩托车、卡车和机动车设备、卡车和公共汽车、火车)或陆地车辆的一部分、飞行器(包括例如机身设备、航空航天设备、推进设备、国防产品、航空设备、航天设备)或飞行器的部件、海上交通工具(包括例如海军设备、商用船、海上设备、游艇和工作船、船舶设备)或海上交通工具的部件、通用机械组装件(包括例如工业制造机械、重型移动机械或设备、安装设备、工业设备产品、金属结构产品、轮胎制造产品)、机电或电子组装件(包括例如消费者电子件、安全和/或控制和/或仪器产品、计算和通信设备、半导体、医疗设备和装备)、消费者商品(包括例如家具、家居和花园产品、休闲商品、时尚产品、硬商品零售商的产品、软商品零售商的产品)、包装(包括例如食品和饮料和烟草、美容和个人护理、家用产品包装)。
所提供的3D建模对象可以形成机械组装件的离散几何表示。离散几何表示在本文是一种数据结构,其包括数据片的离散集合。每条数据表示定位在3D空间中的相应的几何实体。每个几何实体表示机械组装件中的相应的位置(换言之,构成由3D建模对象表示的实体的材料的相应部分)。几何实体的聚合(即,并集或并列)一起表示机械组装件。本文中的离散几何表示在示例中可以包括多于100、1000或10000条的多条此类数据。
离散几何表示例如可以是3D点云,每个几何实体是点。离散几何表示可以可替代地是3D网格,每个几何实体是网格瓦片或面。3D网格可以是规则的或不规则的(即,包括或不包括相同类型的面)。3D网格可以是多边形网格,例如,三角形网格。3D网格可以从3D点云获得,例如,通过对3D点云进行三角剖分(例如,利用Delaunay三角剖分)来获得。本文的3D点云可以例如在3D重建过程内根据对机械部件的物理测量来确定。3D重建过程可以包括:提供机械组装件;提供一个或多个物理传感器,每个物理传感器被配置用于获取相应的物理信号;以及通过在机械组装件的部件中的每一个部件上操作一个或多个物理传感器来获取一个或多个相应的物理信号(即,利用每个传感器扫描组装件的每个部件)。然后,3D重建可以根据任何已知技术基于测量来自动确定3D点云和/或3D网格。一个或多个传感器可以包括多个(例如,RGB和/或图像或视频)摄像机,并且确定可以包括根据运动分析结构。一个或多个传感器可以可替代地或另外地包括(例如,在RGB深度摄像机上的)一个或多个深度传感器,并且确定可以包括根据深度数据进行3D重建。一个或多个深度传感器可以例如包括激光器(例如,激光雷达)或超声发射机-接收机。
提供S10 3D建模对象可以包括(例如,从已经存储了3D建模对象的(例如,遥远的)数据库或存储器)取回3D建模对象,以进一步用于其创建或获取或获得(例如,通过如先前所讨论的重建过程)。例如,取回可以包括访问数据库或存储器并下载3D建模对象。可替代地,提供3D建模对象可以包括对机械组装件执行物理测量并根据物理测量来确定3D建模对象,例如,通过如先前所讨论的3D重建过程。提供3D建模对象可以可替代地包括例如由用户例如通过对3D建模对象进行素描来创建3D建模对象。
仍然参考图1的流程图,除了提供S10 3D建模对象之外,该方法包括由抽象神经网络执行的第一分割S20。抽象神经网络是取3D建模对象的表示作为输入并输出基元的第一集合的任何神经网络。就神经网络将3D建模对象的初始表示抽象为基元的集合的能力而言,其被称为“抽象”神经网络。基元的第一集合是拟合3D建模对象的输入的表示的基元的集合,这意味着该基元的集合定义了再现3D建模对象的空间分布的空间分布。第一基元中的每一个表示3D建模对象的相应的部分,即,机械组装件的相应的部分。
第一集合包括第一数量的第一基元,并且第一数量可以是预定的(即,无论抽象神经网络的输入如何都是相同的值)。例如,第一数量可以是比机械组装件的部件的数量高的数量,例如,大于部件的数量的两倍或三倍。这允许实现对3D建模对象的第一精细分割(过度分割)。在示例中,第一数量可以是默认值(例如,32),或者是由用户选择的值。例如,用户可能希望分割机械组装件的预定集合,并且选择足够大的第一数量使得预定集合中的每一个机械组装件可以由基元的第一集合足够准确地表示。该方法可以将输出的基元的第一集合存储在例如存储器中。
抽象神经网络是一种神经网络,其已经在3D对象的数据集(例如,网格或点云)上进行了训练,以输出拟合3D建模对象的输入的表示的基元的集合。在训练期间,抽象神经网络学习推断以基元的集合的形式的给定形状表示的基元抽象。
该方法操纵基元的集合(即,分别为第一基元、第二基元、第三基元或第四基元的第一集合、第二集合、第三集合或第四集合)。基元是完全根据有限数量的参数(例如,低于100或50或15个参数)确定出的几何形状。每个参数可以是整数值或实数值(例如,在数字上用浮点数表示)。该方法中考虑的每个基元界定了机械组装件的材料的一部分。该界定是构成基元的几何形状。因此,所确定的基元中的每一个表示机械组装件材料的相应部分。因此,确定基元意味着确定基元的每个参数。基元参数可以包括表示基元的大小的参数(大小参数)、表示基元的定位的参数(基元定位参数)和表示基元的定向的参数(基元定向参数)。基元参数还可以包括表示基元的形状的参数(基元形状参数)。在示例中,基元可以包括一个或多个立方体。可替代地或另外地,基元可以包括一个或多个超椭球。
仍然参考图1的流程图,除了第一分割S20之外,该方法还包括根据第一集合确定S30一个或多个第二集合,每个第二集合具有相应的第二基元。每个第二集合包括相应的第二数量的相应的第二基元。每个第二集合的基元的数量(即,每个第二数量)低于第一数量。实际上,第二集合是基于迭代过程被计算的,该迭代过程在每次迭代时合并基元的一个或多个子集。每个第二集合具有相应数量的基元。例如,每个第二集合可以具有其自己的基元数量,即,与其他第二集合的数量不同的数量。
现在更详细地讨论迭代过程。确定S30包括将第三基元的第三集合初始化为第一集合。该方法使用第三集合来执行迭代过程。特别地,第三集合用于最初在每次迭代(即,开始)时考虑在先前迭代时获得的集合。为了初始化第三集合,该方法可以指向第一集合存储在存储器中的位置。可替代地,该方法可以将第一集合复制到专用于第三集合的存储器位置中。
在初始化之后,确定S30包括执行一次或多次迭代,每次迭代允许获得相应的第四集合。每次迭代包括提供第三基元的第三集合。对于第一次迭代,所提供的第三集合是经初始化的第三集合,并且对于每次后续迭代,第三集合是在先前迭代时获得的第四集合。每次迭代还包括将第三基元的一个或多个子集一起各自合并到一个相应的单个第四基元中。合并是一种利用单个唯一基元(即,单个第四基元)来替换基元的子集的操作。这个唯一的基元来自子集的基元的合并,这意味着这个唯一的基元拟合子集的基元。因此,合并允许减少基元的数量,同时使引起的几何信息损失最小化。对于给定的基元的子集,合并可以计算单个基元,该基元最好地使这种几何信息损失最小化(即,该单个基元拟合基元的子集)。因此,合并可以取基元的子集作为输入并输出表示基元的子集的单个基元。可替代地,合并可以输出若干个基元。合并可以计算基元的若干个子集,并且可以针对每个子集计算相应的单个基元(即,合并可以针对每个输入的基元的子集输出一个单个基元)。合并的计算可以被并行化(例如,针对每个子集进行一个计算)。可替代地,可以依次执行每个子集的合并的计算。
第四集合包括每个单个第四基元(即,针对每个合并的子集的一个第四基元)和每个未被合并的第三基元(即,不被包括在一个或多个子集中的第三基元)。因此,第四集合相当于第三集合,直到利用单个基元来替换每个合并的子集的基元。每次迭代还包括将下一次迭代的第三集合设置(即,固定/确定)为当前迭代的第四集合。换言之,给定迭代的第四集合成为后续迭代的第三集合。该方法可以例如利用计算出的单个第四基元的参数在存储器中替换每个合并的子集的基元参数。在每次迭代中,第三集合的存储器大小因此减少,并且第三集合的基元的数量减少。
在一次或多次迭代之后,确定S30包括将一个或多个第二集合设置(即,固定/确定)为一个或多个获得的第四集合。换言之,一个或多个第二集合被确定为在整个迭代过程中获得的一个或多个第四集合。该方法可以例如将一个或多个获得的第四集合存储在存储器中,并通过指向一个或多个获得的第四集合在存储器中的位置来设置一个或多个第二集合。可替代地,该方法可以复制获得的第四集合中的一个或多个。在示例中,确定S30可以执行一次单个迭代。在这种情况下,获得单个第四集合,并且第二集合为获得的单个第四集合。在另一示例中,该方法可以执行两次迭代,由此获得两个第四集合。在这种情况下,该方法可以将第二集合设置为两个获得的第四集合中的一个,或者可替代地,可以将两个第二集合设置为两个获得的第四集合。在另一示例中,该方法可以执行三次迭代,并且该方法可以将一个、两个或三个第二集合分别设置为三个获得的第四集合中的任何一个、获得的第四集合中的任何两个(例如,第一个和最后一个获得的第四集合)或获得的第四集合中的三个。可以理解的是,该方法可以执行任何数量n次迭代,并且设置任何数量m个第二集合,数量m小于或等于迭代的数量n。例如,该方法可以将第二集合的数量设置为实质上比第四集合的数量低两倍,例如,通过选择在两次连续迭代中的一次迭代之后连续获得的第四集合,或者通过选择对于三次连续迭代中的一次迭代获得的第四集合,或者通过选择对于数量i次的连续迭代中的一次迭代(i是正整数)获得的第四集合。
在每次迭代中,第三基元的一个或多个子集被一起各自合并到一个相应的单个第四基元中。合并基元的子集意味着将子集的基元放在一个基元中,即,形成表示子集的基元的单个基元(即,其为子集的基元的合并)。单个基元拟合子集,即,表示子集的基元的并集所表示的空间分布。在每次迭代中合并第三基元的一个或多个子集意味着,在每次迭代中,获得的第四集合的基元的数量低于所提供的第三集合的基元的数量。因此,获得的第四集合的基元的数量在每次迭代中连续减少。因此,一个或多个第二集合(其被设置为一个或多个获得的第四集合)可以按基元的递减(或可替代地,递增)数量排序,每个第二集合具有其自己的基元的不同数量。因此,该方法允许有效地且以鲁棒的方式提供3D建模对象的一个或多个分割,所提供的分割中的每一个比其他分割更精细或更粗糙。
合并可以包括在候选子集的组中确定要被合并的一个或多个子集。候选子集是n个元素的无序集(这里,元素是第三基元)。每个候选子集可以包括例如两个第三基元(一对第三基元)或三个第三基元。该组的候选子集可能具有不同数量的基元。一些候选子集可以包括两个第三基元,并且一些其他候选子集可以包括数量大于两个的第三基元。可替代地,该组的每个候选子集可以具有相同数量的基元(例如,两个或三个第三基元)。在这种情况下,要被合并的一个或多个子集也具有相同数量的基元。每个第三基元可以被包括在候选子集中。每个候选子集包括两个或更多个第三基元。因此,第三基元的一部分可以被包括在该组的候选子集中的一个候选子集中。可替代地,第三基元中的每一个可以被包括在该组的一个或多个相应的候选子集中。例如,每个第三基元可以恰好被包括在该组的一个候选子集中。在这种情况下,该候选子集的组形成第三基元的分区。如果候选子集的并集等于第三集合并且候选子集是二乘二不相交的,则该候选子集的组是第三基元的第三集合的分区。
所述确定要被合并的一个或多个子集可以包括:对于该组的每个相应的候选子集,对相应的候选子集的合并成本进行惩罚。要被合并的一个或多个子集可以是具有最低合并成本的一个或多个候选子集。要合并的一个或多个子集可以具有低于阈值的合并成本的一个或多个候选子集。可替代地,在给定数量n个候选子集的情况下,要被合并的一个或多个子集可以是候选子集中具有最低合并成本的n个候选子集。在这种情况下,该方法可以例如执行算法,该算法包括针对候选子集中的每一个计算合并成本,按递增的合并成本对候选子集进行排序,以及通过选择具有最低合并成本的n个一个或多个子集来确定要被合并的一个或多个子集。可以使用其他算法来确定一个或多个子集,特别是允许在不针对候选子集中的每一个计算合并成本的情况下确定使合并成本最小化的一个或多个子集的算法。合并成本是一个量,它限定了合并两个或更多个基元的成本,即,将这两个或更多个基元合并在一起的努力。合并基元的子集可以形成表示子集的基元(即,子集的基元的并集的空间分布)的单个基元。因此,损失可以对应于在单个基元所表示的空间分布与子集的基元的并集的空间分布之间的差异或不一致的程度。差异越大,合并成本可能越高。因此,当子集的基元被合并时,子集的合并成本可以量化几何信息损失。这允许实现对3D建模对象的准确的一个或多个分割。
合并可以包括在第三集合的分区中确定候选子集的组,每个分区各自为第三基元的对。在这种情况下,子集是第三基元的不同对。因此,每个分区可以被认为是第三基元的对之间的边的集合。确定候选子集的组可以包括最小加权匹配算法。在给定实数或整数边加权(或成本)的情况下,最小加权匹配算法包括计算使其相关联的边加权的总和最小化的匹配(即,分区)。因此,最小加权匹配允许确定使边加权的总和最小化的分区。给定边(或对)的加权可以例如基于在给定对的第三基元之间的距离。因此,所确定的分区可以是使在对之间的距离最小化的分区。该距离可以例如是在每对的两个基元之间的几何距离,例如,在其外表面之间或其中心之间的几何距离。
因此,最小加权匹配算法在候选分区中选择这样的分区:针对相应的候选组的所有子集,该分区使各自在相应的子集的第三基元之间的距离的全局惩罚最小化。其他算法可以用于在候选分区中选择使全局惩罚最小化的分区。该方法不限于第三集合的分区,每个分区各自为对。该方法可以考虑第三集合的分区,每个分区各自为三个第三基元的子集,或任何数量n个第三基元的子集。可以取决于所考虑的分区来使用特定算法。
更一般地,该方法可以考虑第三基元的子集的任何组。因此,合并可以包括在子集的候选组中确定候选子集的组。所述确定候选子集的组可以包括:对于每个相应的候选组,针对相应的候选组的所有子集,对合并兼容性进行全局惩罚。合并兼容性可以是限定合并的适用性的任何量。合并兼容性可以是距离,例如,几何距离。合并兼容性可能是在主轴之间的差异,特别是在超椭球的情况下。
抽象神经网络可以包括编码器。编码器是将输入的3D建模对象转换为代码的组件。因此,编码器可能取决于输入的3D建模对象的格式。可选地,编码器可以包括卷积神经网络(CNN)。另外地或可替代地,编码器可以被配置为取体素栅格作为输入。3D建模对象的表示可以根据体素栅格格式被输入到抽象神经网络。
抽象神经网络还可以包括三个子网络,这些自网络被配置为分别输出基元大小参数、基元定位参数和基元定向参数。可选地,抽象神经网络还可以包括一个附加子网络,其被配置为输出基元形状参数。可选地,至少一个子网络可以各自由全连接层组成。例如,每个子网络可以由相应的全连接层组成。相应的全连接层可以具有取决于第一数量并且取决于相应的输出的参数的数量的输出大小。另外地或可替代地,第一数量(即,第一集合的基元的数量)可以是超参数。
一个或多个第二集合可以包括多个第二集合,例如,两个或更多个第二集合。在这种情况下,该方法还可以包括一个或多个交互,每个交互包括:
·在用户交互时选择多个第二集合中的单个第二集合;以及
·实时显示所选择的第二集合的图形表示。
可以通过由该方法执行的用户交互工具来执行一个或多个交互。该方法可以例如包括一种交互。可以基于滑动条来执行选择。滑动条(或轨迹条)是一种图形控制元素,用户可以利用该滑动条(或轨迹条)通过例如水平地移动指示器来设置值。用户可以设置的值可以对应于第二集合中的每一个。通过设置值,用户可以因此选择第二集合中的一个。用户因此可以通过移动指示器来设置值。可替代地,用户也可以直接点击滑动条上的点来设置值。所选择的第二集合的图形表示可以接近滑动条显示,例如,在滑动条上方显示。在每个连续的交互中,在先前交互处显示的图形表示可以被新的图形表示替换。用户因此可以在第二集合之间导航。例如,用户可以在第四集合中的每一个之间导航。
该方法还可以包括自动选择单个第四集合。所选择的单个第四集合可以对应于在连续迭代之间的合并重建损失高于阈值的演变。该方法还可以包括标记所选择的单个第四集合。在第一选项中,一个或多个第二集合可以是单个标记的所选择的第四集合。换言之,只存在一个第二集合,即,单个标记的所选择的第四集合。在第二选项中,存在若干个第二集合,并且单个标记的所选择的第四集合是第二集合中的一个。在该第二选项中,用户可以经由滑动条在第二集合之间导航,并且可以突出显示与单个标记的所选择的第四集合相对应的滑动条的值。该方法因此可以自动标记预测的最佳第二集合。
抽象神经网络可以以无监督方式在数据集上进行训练,该数据集包括未注释的3D建模对象,每个未注释的3D建模对象表示相应的机械组装件。对于无监督训练,可以对数据集的3D建模对象进行预处理,以用作网络的输入和训练损失的地面真值(ground truth)两者。
合并可以包括将每个子集的表示输入到合并神经网络。合并神经网络可以输出相应的单个第四基元。
合并神经网络可以包括编码器。可选地,编码器可以包括卷积神经网络。可替代地或另外地,编码器可以被配置为取体素栅格或点云作为输入。编码器也可以被配置为取体素栅格和点云两者作为输入。合并神经网络可以取体素栅格格式作为输入。可替代地或另外地,合并神经网络可以取点云格式作为输入。
合并神经网络还可以包括三个子网络,这三个子网络被配置为分别输出基元大小参数、基元定位参数和基元定向参数。可选地,合并神经网络还可以包括一个附加子网络,其被配置为输出基元形状参数。可选地,至少一个子网络可以各自由全连接层组成。例如,每个子网络可以由相应的全连接层组成。相应的全连接层可以具有取决于每个子网络的相应的输出的参数的输出大小。
抽象神经网络和合并神经网络中的至少一个可以基于相应的训练损失来训练。相应的训练损失可以惩罚重建损失。抽象神经网络和合并神经网络两者可以例如基于相应的训练损失来训练。可选地,重建损失可以基于点云距离。抽象神经网络的训练损失可以对重叠损失和面积损失进行进一步惩罚。可替代地或另外地,训练损失可以等于重建损失、重叠损失和面积损失的加权和。
现在讨论该方法的实现方式。
首先介绍一些先决条件。
深度神经网络(DNN):它们是用于学习神经网络的一套强大的技术,其中,神经网络是一种受生物学启发的编程范式,从而使计算机能够从观察数据中学习。在图像识别中,DNN的成功归功于其学习丰富的中级媒体表示的能力,而不是在其他图像分类方法(例如,SVM、Boosting或随机森林)中使用的手动设计的低级特征(例如,Zernike矩、HOG、词袋或SIFT)。更具体地,DNN专注于基于原始数据的端到端学习。换言之,它们通过完成开始于原始特征并且结束于标签的端到端优化,最大限度地远离特征工程。
超椭球:在数学中,超椭球(也称为“超级椭球”)是由十一个参数的集合参数化的实体。超椭球作为计算机图形基元被Alan H.Barr(他使用“超二次曲面”这个名称来指代超椭球和超环)推广。然而,虽然一些超椭球是超二次曲面,但两个族都不被包括在另一个族中。将在后面讨论对这些类型的基元的选择以及它们是如何被参数化的。
基元:术语“基元”在几何意义上使用:基元是几何实体,其由参数的集合参数化。基元的例子包括立方体和超椭球。
基元抽象:指代使用几何基元组装对象。
过度细化的基元抽象:指代其中基元的数量高于基元的最佳数量的基元抽象。基元的最佳数量可能是用户的输入。可替代地,可以自动确定基元的最佳数量。
合并:合并基元意味着计算表示原始基元集合的最佳单个基元,并且利用该单个基元替换基元的输入集合。最佳性可以通过在输入基元与输出基元之间的几何距离来反映。
与通常使用人工标记数据的有监督学习相比,无监督学习是这样一种类型的机器学习:它在没有预先存在的标签且没有人工注释的数据集中寻找以前未被检测到的模式。
体素栅格:体素栅格是像素栅格的3D等价物:它们是3D规则栅格,在每个体素中有两个可能的值:满或空。
该方法可以实现一个框架,该框架被分解为两个阶段:离线阶段和在线阶段。在离线阶段,该方法包括独立地训练两个神经网络(第一神经网络和第二神经网络)。这个离线阶段对用户是透明的。第一神经网络(也称为“初始抽象网络”)是在3D对象数据集上学习的。第一神经网络通过使在3D对象与基元的集合之间的重建损失最小化来学习输出最好地表示3D对象的基元的集合的参数。结果是过度细化的基元抽象。第二神经网络是在数据集上学习的,其中数据集的每个实例是描述基元的参数的集合。第二神经网络学习输出最好地表示被给定作为输入的基元的集合的单个基元的参数。
在线阶段包括三个步骤。在第一步骤中,给定所提供的3D对象,该方法使用初始抽象网络来获得第一过度细化基元抽象。在第二步骤中,给定该初始抽象,该方法应用迭代算法来简化抽象。该算法由两个主要步骤组成:
·选择要被合并的基元的最佳集合;以及
·合并这些基元,即,利用一个新的基元替换这些基元。
因此,该算法计算基元的一个或多个集合,这些集合中的每个集合对应于所提供的3D对象的给定分割。
在第三步骤中,一旦合并算法完成,该方法要么允许用户选择期望数量的基元用于最终抽象,和/或该方法要么以自动方式确定最佳抽象。该方法因此允许在所提供的3D建模对象的一个或多个分割中选择或自动确定给定分割。
现在更详细地介绍这些实现方式。首先,讨论框架的两个阶段。然后,给出了实现方式细节。最后,说明了若干定性结果。
参考图2的流程图,讨论了该方法可能实现的框架的两个阶段。
如上面所提到的,离线阶段包括学习两个独立的神经网络(S50和S60)。现在讨论学习S50第一神经网络(也称为“初始抽象网络”)。初始抽象网络在3D对象的数据集(即,3D形状(例如,网格或点云)的集合)上训练S50,例如,如[11]中所描述的那样。初始抽象网络学习以基元参数的集的形式推断给定形状表示的基元抽象。该方法可以包括对3D对象进行预处理,以用作网络的输入和训练损失的地面真值(无监督训练)两者。输入可以是体素栅格(使用3D CNN编码器)、点云(使用点云编码器,例如,PointNet[15])或网格(使用例如[13]中描述的编码器)。在所讨论的实现方式中,该方法使用3D体素栅格编码器作为对初始抽象网络的输入,并使用点云作为重建损失的地面真值。在其他实现方式中,该方法可以使用相同的格式(例如,点云格式)用于对初始抽象网络的输入和重建损失的地面真值。出于两个原因,体素栅格格式是相关的。首先,体素栅格格式允许获得可能是足够的粗糙分辨率,因为可能不要求表面细节。第二,体素栅格允许消除真实扫描(例如,激光雷达)的噪声,该噪声提供了局部不同的密度(实际上,体素可能具有离散值,例如,0或1)。可替代地,该方法可以对点云进行去噪。
现在讨论学习S60第二神经网络。第二神经网络是在基元的集合的数据集上学习的。作为一种训练模式,每个集合可能与一个单个基元相关联(即,该集合的基元的合并的结果)。单个基元可以是例如根据要被合并的集合的基元计算出的点云。这样的点云可以被直接计算,并且因此可能不被包括在数据集中。在所讨论的实现方式中,该方法通过从由第一网络推断出的抽象中挑选基元来以合成方式生成这样的数据集。获得这种数据集的另一种方式可能是以程序方式从头开始生成一个数据集。
在训练模式中,可以对基元的每个集合进行如下预处理。首先,该方法可以使用基元的参数对这些基元表面上的点进行采样。该方法可以使用获得的点云作为重建损失的地面真值。用于训练第二神经网络的重建损失可能与第一神经网络的重建损失不同。为了获得对第二神经网络的输入,该方法可以计算该点云的凸包(convex hull),并对该凸包上的点进行重新采样。凸包是包围点云的最小凸形状。凸包的属性是点云的极值点的子集属于凸包表面。因此,极值点的子集非常稀疏,因此是不够的。凸包的点的数量可以大于100(例如,可以是1000),这允许获得规则的形状。计算凸包然后进行重新采样与仅在基元的集合上计算点云相比可以改进结果(即,给出更好的结果,更加精确)。最后,该方法可以对该点云进行体素化(即,将点云转换为体素栅格格式)。体素化可以具有在每个方向上具有给定数量(例如,32)的体素的分辨率(即,32x32x32的分辨率)。每个体素可以基于体素中是否存在点而具有二进制值(例如,0或1)。
这种预处理(依次通过点云、凸包、重采样和体素化)给出了最佳结果。该方法不限于这种预处理。该方法的其他实现方式可以包括跳过在凸包上进行重采样、使用在基元上采样的点来在完全不进行预处理的情况下进行合并和/或使用基元的集合的参数作为输入。一个附加的好处是第二神经网络可以将任意数量的基元合并在一起(因此,即使使用基元集合的参数作为输入)。例如,第二神经网络可以合并两个基元的子集或三个基元的子集。
现在讨论在线阶段。如先前所解释的,在线阶段包括现在更详细讨论的三个步骤。
第一步骤是初始基元抽象S20,该步骤是在线阶段的初始步骤。初始基元抽象在于取例如由用户键入的输入(其可能是网格或点云)、将其转换为网络的输入格式(例如,体素格式)并将其馈送到初始抽象网络。初始抽象网络输出初始基元抽象,其在于基元的第一集合。更具体地,初始抽象网络可以输出参数的集合,这些参数描述了第一集合的每个基元。初始抽象网络可以被配置为输出固定数量的基元(即,可以预定第一集合的基元的数量)。
第二步骤S30是简化初始抽象。为此,该方法应用迭代合并算法,该迭代合并算法在每次迭代时简化了初始抽象。应用合并算法来获得具有较少基元的抽象。该特定实现方式使用一个版本的合并算法,其中基元的数量在每次迭代时递减一。可以实现其他版本的合并算法。例如,其他版本的合并算法可以在每次迭代时合并任意数量的基元(例如,仅通过选择在迭代s时合并具有最低合并成本的Ns对,Ns等于或低于在迭代过程中的迭代s时的基元的数量)。
参考图3的流程图,现在更详细地讨论图2的第二步骤S30。如先前所提到的,合并算法在于两个主要步骤的迭代:选择要被合并的基元并将它们合并在一起。选择要被合并的基元本身可以包括两个子步骤。
在第一子步骤中,该方法计算抽象的所有基元的匹配(即,该方法可以通过可能的合并对来对基元进行分组)。为此,该方法可以首先针对抽象中的所有基元计算基元对之间的距离S31。在所讨论的实现方式中,该方法对每个基元上的点的集合进行采样,并应用在点的集合之间的倒角距离(chamfer distance)来计算在两个基元之间的距离。在其他实现方式中,该距离可以是在采样的点的集合之间的每个推土机距离(earth mover’sdistance)、基元中心之间的欧几里得距离或所有先前提到的距离的加权和。一旦计算出基元间距离,该方法将该问题视为最小加权匹配中的一个,并应用S32算法(例如,来自[12]的一种算法(称为Blossom算法))来获得期望的匹配。最小加权匹配算法在候选分区中选择这样的分区:针对相应的候选组的所有子集,该分区使各自在相应的子集的第三基元之间的距离的全局惩罚最小化。
在第二子步骤中,一旦匹配完成,该方法计算期望的匹配的所有对的合并结果S33,基于合并结果针对每个对计算合并成本S34,以及决定以最小合并成本对该对进行合并S35。为了计算给定的基元对的合并成本S34,该方法使用用于第一神经网络的重建损失的地面真值,即,在输入形状上采样的点的集合。然后,该方法计算在当前重建损失(即,在当前基元的集合的情况下的重建损失)与潜在重建损失之间的差异,这是当该方法利用合并的结果(即,单个基元)来替换所考虑的基元的对时的重建损失。该方法使用此差异作为合并成本。为了计算所有合并成本,该方法根据匹配来推断所有基元对的合并(即,针对所有对计算所述差异)。
一旦该方法决定S35要合并哪对基元,该方法利用合并的结果来替换S36该对的两个基元并迭代整个过程。例如,该方法可以迭代该过程直到达到用户的输入粒度S38。用户粒度例如可以是基元的数量。该方法还保存S37算法的每次迭代的结果,即,保存所有中间基元抽象。保存每次迭代的结果允许在选择中间基元抽象中的一个期间实时显示这些中间基元抽象。
仍然在步骤S30中,一旦合并算法完成,该方法就具有基元抽象的列表,每个抽象具有不同数量的基元(每次迭代一个抽象)。此时,该方法将基元的给定集合设置为在获得的基元抽象的列表中的一个抽象(即,选择最终抽象)。为了执行对最终抽象的该选择,第一选项是允许用户查看不同的抽象并选择最适合他/她的意图的一个抽象。第二选项是自动化该过程。为此,该方法在合并过程期间监视重建损失的演变。
图4示出了这种演变的示例。该方法可以通过使用这种重建损失的演变来使对最终抽象的选择自动化。现在给出如何根据重建损失的演变来选择最终抽象的示例。令n为合并过程中迭代的次数。令0<i<n。令Ci为第i个基元抽象的重建损失的值。该方法可以选择与迭代i(其中,Ci+1–Ci>k)相对应的抽象作为最终抽象,其中k是预定阈值(例如,k=2)。
一旦已经选择了最终抽象,该方法包括将最终抽象的基元投影到3D建模对象中。最终步骤是标记步骤,包括利用对应的基元来标记形状部分。可以通过将3D建模对象的每个元素(例如,当输入的对象是点云时为每个点,或当输入的对象是网格时为每个顶点)的最接近的基元的索引归因于该元素来计算对应关系。该方法可以选择基元表面的接近度作为度量。因此,该方法允许获得具有期望的用户粒度的分割的3D建模对象。
现在讨论更多实现方式细节。除其他事项外,还讨论了在训练期间使损失最小化。
在所讨论的实现方式中,该方法使用超椭球作为对基元的选择以用于基元抽象。这种类型的基元在表示能力和参数数量之间提供了良好的折衷。可以考虑其他类型的基元(例如,立方体或星域)。超椭球允许实现稳定的损失。星域允许比超椭球甚至更多的灵活性,这改进了性能以及抽象与通过抽象的对象的接近程度(即,表示能力)。
超椭球可以使用十一个参数的集合来参数化。超椭球是基于显式超二次方程定义的,该方程通过以下方式定义表面矢量r:
Figure BDA0003747549220000141
其中,α=[α123]表示大小参数(正实数值),并且ε=[ε1,ε2]表示形状参数(各自介于0和2之间)。
图5示出了形状参数ε1和ε2如何修改超椭球的形状([8])。该方程产生以原点为中心并在轴上对齐的超椭球。可以利用平移向量表示位置(基于三个参数)和利用欧拉角表示定向(也基于三个参数)来完成基元参数化。该方法还可以使用四元数或轴角表示来表示定向。
现在讨论初始抽象模型。首先,详细介绍了初始抽象神经网络的示例架构。
图6示出了初始抽象模型的架构的示例。
初始抽象网络包括编码器和若干个后续子网络。如先前所指示的,该编码器可能取决于输入。在此示例中,该方法使用体素栅格作为输入。体素栅格通过卷积神经网络的连续层。体素栅格可以通过以下各项中的至少一个:连续卷积、可能的批归一化、激活函数(例如,ReLu、leaky ReLu、Tanh)和池化(例如,最大池化和/或平均池化)。然后,体素栅格通过全连接层以提取特征向量(latent vector)。然后将该向量馈送到四个子网络,这些子网络分别确定基元的大小参数、基元的定位参数、基元的定向参数和基元的形状参数ε=[ε1,ε2]。例如,初始抽象网络可以包括四个模块(每个子网络一个模块),这些模块分别确定大小参数、定位参数、定向参数和形状参数。初始抽象网络所包括的模块的数量可能取决于基元的类型。例如,可以将一个或多个附加的有用模块添加到网络,或者可以移除一个或多个无用模块(例如,在立方体基元而不是超椭球基元的情况下可以移除形状模块)。这些子网络由全连接层组成,其中输出大小取决于输出的特定参数(例如,M x 3用于大小子网络,Mx 3用于平移子网络,M x 2用于形状子网络,等等,其中M是由初始抽象网络输出的基元的数量)。
现在讨论初始抽象网络的训练。初始抽象网络允许获得尽可能接近所提供的3D建模对象的基元的抽象。现在详细介绍了可以针对训练过程实现的不同损失。
第一训练损失可以是重建损失。重建损失使用倒角距离来测量在计算出的基元组装与输入形状之间的差异。重建损失可以如下表示。从(要被处理的)输入形状表面采样的N个点的集合由
Figure BDA0003747549220000151
Figure BDA0003747549220000152
表示。从每个推断出的基元m表面采样的K个点的集合由
Figure BDA0003747549220000153
表示。重建损失可以如下表示:
Lrecon(Y,X)=LY→X(Y,X)+LX→Y(X,Y)
其中,LY→X测量从预测的基元Y到点云X的距离,并且LX→Y测量从点云X到基元Y的距离。
两种损失的详细表达式可以如下表示。
Figure BDA0003747549220000154
其中
Figure BDA0003747549220000155
Figure BDA0003747549220000156
Figure BDA0003747549220000157
表示从第m个基元上的第k个点
Figure BDA0003747549220000158
到目标点云X的最小距离,而
Figure BDA0003747549220000159
表示从点xi到第m个基元的表面的最小距离。这里,Tm是将世界坐标中的3D点xi转换为第m个基元的局部坐标系的函数。
第二训练损失可以是重叠损失。该第二训练损失是一种惩罚在基元之间的重叠的正则化。因此,第二训练损失避免了重叠,这允许获得对象的分解(没有重叠的对象部分)。因此,对象的结构被清楚地分割。作为附加的好处,这种正则化鼓励基元更均匀地分布在对象的不同部分中。通过利用[14]中给出的超二次曲面S的内外函数,该方法可以适用于使用超二次曲面:
Figure BDA00037475492200001510
参数α1、α2、α3和ε1、ε2与显式超二次方程中的这些参数相同。FS提供了一种简单的方法来测试给定点(x,y,z)是位于超二次曲面S的内部还是外部。如果F<1,则该点在S内部,如果F=1,则该点位于S的表面上,如果F>1,则该点位于S外部。
为了惩罚基元重叠,该方法继续对在基元的集合内部和表面上的点进行采样,然后惩罚属于位于另一基元内部的给定基元的点。重叠损失可以形式化如下:
Figure BDA00037475492200001511
第三训练损失可以是面积均匀性损失。面积均匀性损失是一种鼓励由网络推断出的超二次曲面的维度的均匀分布的正则化,这是通过控制其总表面来完成的。将这种正则化与重叠的正则化相结合,允许在对象的整个体积上保持一致的密度和相关的细节水平。为了实现面积均匀性损失,该方法可以使用以下Knud Thomsen公式,该公式允许确定椭圆体的表面积,从而逼近超二次曲面S的表面积:
Figure BDA0003747549220000161
其中,该方法可以使用p≈1.6075,其给出的相对误差约为1.061%。为了使网络推断具有相似表面积的超二次曲面,该方法可能会强制执行以下损失:
Figure BDA0003747549220000162
面积均匀性损失Larea对推断出的超二次曲面表面的分布的标准偏差进行了惩罚。这往往会鼓励模型围绕学习的平均值对表面进行标准化。
已经详细说明了损失的示例。该方法不限于这些损失的示例,并且可以利用其他损失来实现以用于训练。该方法可以利用单个损失来实现。可替代地,该方法可以利用损失的任何组合来实现。例如,可以通过使用以下公式,使用定义的损失的加权和来训练模型:
Ltrain=Lrecon+αLoverlap+βLarea
其中,α和β是加权正标量。
现在讨论合并神经网络(第二神经网络)。合并神经网络包括体素栅格编码器和后续若干个子网络。与初始抽象网络的区别在于子网络的输出维度。因为合并神经网络输出单个基元的参数,所以每个子网络的输出维度都是适应的(大小子网络为1x3,形状子网络为1x2,依此类推)。
合并神经网络的编码器可以适于取点云作为输入(例如,PointNet,如[15]中所描述的)。在此示例中,合并神经网络具有3D体素栅格编码器,但所提出的解决方案不限于3D体素栅格编码器。可以使用重建损失(例如,上面描述的重建损失Lrecon,其中M=1)来训练合并神经网络。
参考图7和图8,现在讨论该方法的定性结果。图7和图8示出了获得的结果的若干个示例。图7示出了针对六个不同的椅子100、110、120、130、140和150获得的六个推断示例。图7示出了六个示例,其中从左到右的三个图片对应于:椅子的3D建模对象、计算出的基元的初始集合102(即,合并之前的初始抽象)和基元的最终集合104(即,合并之后的最终抽象)。这六个示例示出了基元的初始集合102给出了输入形状的统一且规则的表示,而在合并之后的获得的基元的集合(即,最终抽象)反映了输入形状的精细分解。此外,获得的分解在语义上是有意义的:该方法以与人类进行分解相同的方式分解形状。
图8示出了由该方法执行的用户交互工具的示例。用户交互工具允许用户选择期望的粒度级别,其控制在合并算法步骤中执行的迭代的次数。通过这样做,该方法允许用户控制最终分割中期望的部件的确切数量。在该示例中考虑的对象是椅子,由3D建模对象200表示。用户交互工具包括粒度滑块210。粒度滑块210允许用户通过水平移动指示器来设置值。用户设置的值对应于计算出的基元的集合(即,由第一神经网络和第二神经网络迭代地计算出的基元的集合,从第一精细抽象到最终粗糙抽象)中的每一个。通过设置滑块210的值,用户选择这些计算出的集合中的一个。用户通过移动指示器来设置值。可替代地,用户也可以直接点击滑动条上的点来设置值。如图8中示出的,用户交互工具可以在滑动条上方显示计算出的集合中的每一个集合的图形表示,这是以它们相应的滑块值来显示的。该显示允许用户高效地选择计算出的集合中的一个。可替代地,用户交互工具可以仅显示与当前选择的集合相对应的单个集合的图形表示。当前选择的集合的图形表示可以接近滑动条显示,例如,在滑动条上方显示。在用户与滑块的每次新的连续交互之后,在先前交互处显示的图形表示可以被对应于新选择的集合的新的图形表示代替。因此,用户可以在计算出的集合之间导航。
如图8中示出的,用户交互工具还可以显示标记的3D建模对象220,即,在将最终抽象的基元投影到3D建模对象中之后的3D建模对象。由该方法识别出的机械组装件的每个部件因此可以被突出显示,例如,针对识别出的部件中的每一个部件使用不同的颜色。
该方法是计算机实现的。这意味着该方法的步骤(或实质上所有步骤)由至少一个计算机或类似的任何系统执行。因此,该方法的步骤由计算机可能是全自动地执行或半自动地执行。在示例中,可以通过用户计算机交互来执行该方法的步骤中的至少一些步骤的触发。所要求的用户-计算机交互的级别可以取决于自动性预见的级别,并且与实现用户意愿的需要保持平衡。在示例中,该级别可以是用户定义的和/或预定义的。
一种方法的计算机实现方式的典型示例是利用适合于该目的的系统来执行该方法。系统可以包括耦合到存储器和图形用户接口(GUI)的处理器,该存储器上记录有计算机程序,该计算机程序包括用于执行该方法的指令。存储器还可以存储数据库。该存储器是适合于这种存储的任何硬件,其可能包括若干物理上不同的部分(例如,一个部分用于程序,并且可能一个部分用于数据库)。
图9示出了系统的示例,其中该系统是客户端计算机系统,例如,用户的工作站。
该示例的客户端计算机包括连接至内部通信总线1000的中央处理单元(CPU)1010、也连接至总线的随机存取存储器(RAM)1070。客户端计算机还被提供有图形处理单元(GPU)1110,该GPU 1110与连接到总线的视频随机存取存储器1100相关联。视频RAM 1100在本领域中也被称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储器设备(例如,硬盘驱动器1030)的访问。适合于有形地体现计算机程序指令和数据的大容量存储器设备包括所有形式的非易失性存储器,通过示例的方式,其包括:半导体存储器设备,例如,EPROM、EEPROM和闪速存储器设备;磁盘,例如,内部硬盘和可移除盘;磁光盘;和CD-ROM盘1040。前述内容中的任一项可以通过专门设计的ASIC(专用集成电路)进行补充或并入专门设计的ASIC。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如,光标控制设备、键盘等。在客户端计算机中使用光标控制设备以允许用户将光标选择性地定位在显示器1080上的任何期望位置。另外地,光标控制设备允许用户选择各种命令并且输入控制信号。光标控制设备包括用于将控制信号输入到系统的多个信号生成设备。典型地,光标控制设备可以是鼠标,该鼠标的按钮用于生成信号。可替代地或另外地,客户端计算机系统可以包括敏感垫和/或敏感屏幕。
计算机程序可以包括可由计算机执行的指令,该指令包括用于使得上面的系统执行方法的单元。程序可以是可记录在任何数据存储介质(包括系统的存储器)上的。程序可以例如以数字电子电路或计算机硬件、固件、软件或其组合来实现。程序可以被实现为装置,例如,有形地体现在机器可读存储设备中以由可编程处理器执行的产品。方法步骤可以这样执行:通过可编程处理器执行指令的程序以通过对输入数据进行操作并且生成输出来执行方法的功能。因此,处理器可以是可编程的并且被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且向数据存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。如果期望的话,可以以高级过程语言或面向对象的编程语言或汇编或机器语言来实现应用程序。在任何情况下,语言可以是编译语言或解释语言。程序可以是完整的安装程序或更新程序。在任何情况下,程序在系统上的应用会导致用于执行方法的指令。

Claims (15)

1.一种用于分割表示机械组装件的3D建模对象的计算机实现的方法,所述方法包括:
●提供所述3D建模对象;
●将所述3D建模对象的表示输入到抽象神经网络,所述抽象神经网络输出拟合所述3D建模对象的第一基元的第一集合,所述第一集合包括第一数量的第一基元;以及
●根据所述第一集合确定一个或多个第二集合,每个第二集合具有相应的第二基元,每个第二集合包括相应的第二数量的相应的第二基元,所述第二数量小于所述第一数量,所述确定包括:
ο将第三基元的第三集合初始化为所述第一集合;以及
ο执行一次或多次迭代,每次迭代包括:
■提供所述第三基元的第三集合,
■将第三基元的一个或多个子集一起各自合并到一个相应的单个第四基元中,由此获得第四基元的第四集合,所述第四基元的第四集合包括每个单个第四基元和每个未被合并的第三基元;以及
■将下一次迭代的所述第三集合设置为当前迭代的所述第四集合;以及
ο将所述一个或多个第二集合设置为一个或多个获得的第四集合。
2.根据权利要求1所述的方法,其中,所述合并包括:在候选子集的组中确定要被合并的所述一个或多个子集,所述确定要被合并的所述一个或多个子集包括:对于所述组的每个相应的候选子集,对所述相应的候选子集的合并成本进行惩罚。
3.根据权利要求2所述的方法,其中,所述合并包括:在子集的候选组中确定所述候选子集的组,所述确定所述候选子集的组包括:对于每个相应的候选组,针对所述相应的候选组的所有子集,对各自在相应的子集的第三基元之间的合并兼容性进行全局惩罚。
4.根据权利要求3所述的方法,其中,所述子集的候选组包括所述第三集合的分区,每个分区各自为第三基元的对,所述确定所述候选子集的组包括最小加权匹配算法。
5.根据权利要求1至4中任一项所述的方法,其中,所述抽象神经网络包括:
●编码器,其中,可选地,所述编码器包括卷积神经网络,和/或所述编码器被配置为取体素栅格作为输入,所述3D建模对象的表示是根据体素栅格格式被输入到所述抽象神经网络的,以及
●三个子网络,其被配置为分别输出基元大小参数、基元定位参数和基元定向参数,并且可选地,一个附加子网络被配置为输出基元形状参数,其中,可选地,至少一个(例如,每个)子网络各自由全连接层组成(例如,其中,输出大小取决于所述第一数量并且取决于每个子网络的相应的输出的参数的数量和/或所述第一数量是超参数)。
6.根据权利要求1至5中任一项所述的方法,其中,所述一个或多个第二集合包括多个第二集合,所述方法还包括一个或多个交互,每个交互包括:
●在用户交互时选择所述多个第二集合中的单个第二集合;以及
●实时显示所选择的第二集合的图形表示。
7.根据权利要求1至6中任一项所述的方法,所述方法还包括:
●自动选择单个第四集合,所选择的单个第四集合对应于在连续迭代之间的合并重建损失高于阈值的演变;以及
●标记所选择的单个第四集合。
8.根据权利要求1至7中任一项所述的方法,其中,所述抽象神经网络以无监督方式在数据集上进行训练,所述数据集包括未注释的3D建模对象,每个所述未注释的3D建模对象表示相应的机械组装件。
9.根据权利要求1至8中任一项所述的方法,其中,所述合并包括:将每个子集的表示输入到合并神经网络,所述合并神经网络输出所述相应的单个第四基元。
10.根据权利要求9所述的方法,其中,所述合并神经网络包括:
●编码器,其中,可选地,所述编码器包括卷积神经网络,和/或所述编码器被配置为取体素栅格和/或点云作为输入,所述每个子集的表示是分别根据体素栅格格式或点云格式被输入到所述合并神经网络的,以及
●三个子网络,其分别被配置为分别输出基元大小参数、基元定位参数和基元定向参数,并且可选地,一个附加子网络被配置为输出基元形状参数,其中,可选地,至少一个(例如,每个)子网络各自由全连接层组成(例如,其中,输出大小取决于每个子网络的相应的输出的参数)。
11.根据权利要求1至10中任一项所述的方法,其中,所述抽象神经网络和所述合并神经网络中的至少一个基于对重建损失进行惩罚的相应的训练损失来训练,其中,可选地,所述重建损失基于点云距离,所述抽象神经网络的所述训练损失对重叠损失和面积损失进行进一步惩罚,和/或所述训练损失等于所述重建损失、所述重叠损失和所述面积损失的加权和。
12.一种计算机实现的方法,用于学习根据权利要求1至11中任一项所述的抽象神经网络和/或用于学习根据权利要求9或其任何从属权利要求所述的合并神经网络。
13.一种计算机程序,包括用于执行权利要求1至11中任一项所述的方法和/或权利要求12所述的方法的指令。
14.一种设备,包括其上记录有根据权利要求13所述的程序的数据存储介质。
15.根据权利要求14所述的设备,其中,所述设备还包括耦合到所述数据存储介质的处理器。
CN202210835119.5A 2021-07-16 2022-07-15 分割表示机械组装件的3d建模对象 Pending CN115631486A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP21306003.1 2021-07-16
EP21306003.1A EP4120203A1 (en) 2021-07-16 2021-07-16 Segmenting a 3d modeled object representing a mechanical assembly

Publications (1)

Publication Number Publication Date
CN115631486A true CN115631486A (zh) 2023-01-20

Family

ID=77126714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210835119.5A Pending CN115631486A (zh) 2021-07-16 2022-07-15 分割表示机械组装件的3d建模对象

Country Status (4)

Country Link
US (1) US11893687B2 (zh)
EP (1) EP4120203A1 (zh)
JP (1) JP2023017718A (zh)
CN (1) CN115631486A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3839793A1 (en) * 2019-12-16 2021-06-23 Dassault Systèmes Interactive object selection
US11903793B2 (en) * 2019-12-31 2024-02-20 Align Technology, Inc. Machine learning dental segmentation methods using sparse voxel representations
CN116649159B (zh) * 2023-08-01 2023-11-07 江苏慧岸信息科技有限公司 一种食用菌生长参数寻优的系统和方法
CN116758243B (zh) * 2023-08-15 2023-12-01 深圳市其域创新科技有限公司 基于实时点云流的场景网格划分生成及渲染显示方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3674984B1 (en) * 2018-12-29 2024-05-15 Dassault Systèmes Set of neural networks
EP3675061A1 (en) * 2018-12-29 2020-07-01 Dassault Systèmes Forming a dataset for inference of editable feature trees

Also Published As

Publication number Publication date
US20230014934A1 (en) 2023-01-19
EP4120203A1 (en) 2023-01-18
JP2023017718A (ja) 2023-02-07
US11893687B2 (en) 2024-02-06

Similar Documents

Publication Publication Date Title
JP7464387B2 (ja) 3dモデル化オブジェクト推定のための機械学習
JP7491685B2 (ja) ニューラルネットワークのセット
JP7473336B2 (ja) ソリッドcadフィーチャを推測するためのニューラルネットワークの学習
JP7473335B2 (ja) ソリッドcadフィーチャを推測するためのニューラルネットワークの学習
US11893687B2 (en) Segmenting a 3D modeled object representing a mechanical assembly
Liu et al. Meshing point clouds with predicted intrinsic-extrinsic ratio guidance
CN108073682B (zh) 基于参数视图函数查询数据库
US11869147B2 (en) Neural network for outputting a parameterized 3D model
US20220058865A1 (en) Variational auto-encoder for outputting a 3d model
Samavati et al. Deep learning-based 3D reconstruction: a survey
Lei et al. What's the Situation With Intelligent Mesh Generation: A Survey and Perspectives
US20220229943A1 (en) Joint retrieval and mesh deformation
US10783707B2 (en) Determining a set of facets that represents a skin of a real object
EP4057222B1 (en) Machine-learning for 3d segmentation
US20230342507A1 (en) 3d reconstruction from images
Sun et al. A review of point cloud segmentation for understanding 3D indoor scenes

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