CN111382541A - 神经网络的集合 - Google Patents

神经网络的集合 Download PDF

Info

Publication number
CN111382541A
CN111382541A CN201911391624.XA CN201911391624A CN111382541A CN 111382541 A CN111382541 A CN 111382541A CN 201911391624 A CN201911391624 A CN 201911391624A CN 111382541 A CN111382541 A CN 111382541A
Authority
CN
China
Prior art keywords
modeled object
modeled
neural network
data set
objects
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
CN201911391624.XA
Other languages
English (en)
Inventor
E·梅尔
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 CN111382541A publication Critical patent/CN111382541A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • 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
    • G06N20/00Machine learning
    • 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
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/041Abduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Image Analysis (AREA)

Abstract

本发明显著地涉及一种计算机实现的机器学习方法。该方法包括提供包括3D建模对象的数据集,每个3D建模对象表示相应机械零件。该方法还包括提供神经网络的集合。每个神经网络具有相应权重。每个神经网络被配置用于推断3D建模对象。该方法还包括通过使损失最小化来修改神经网络的相应权重。针对数据集的每个3D建模对象,损失从多个项中选择一个项。每个项对3D建模对象与由集合中的相应神经网络推断出的相应3D建模对象之间的差异进行惩罚。所选择的项是多个项中的对其而言差异被最小程度地惩罚的项。这构成了利用包括3D建模对象的数据集进行机器学习的改进方法,每个3D建模对象表示相应机械零件。

Description

神经网络的集合
技术领域
本公开涉及计算机程序和系统领域,并且更具体地涉及利用包括3D建模对象的数据集进行机器学习的方法、系统和程序,每个3D建模对象表示相应机械零件。
背景技术
市场上提供了很多用于对象的设计、工程以及制造的系统和程序。CAD是计算机辅助设计的首字母缩写,例如,CAD涉及用于对对象进行设计的软件解决方案。CAE是计算机辅助工程的首字母缩写,例如,CAE涉及用于对未来产品的物理行为进行仿真的软件解决方案。CAM是计算机辅助制造的首字母缩写,例如,CAM涉及用于对制造工艺和操作进行定义的软件解决方案。在这样的计算机辅助设计系统中,图形用户接口对于技术的效率起到重要作用。这些技术可以嵌入到产品生命周期管理(PLM)系统中。PLM是指这样的商业策略:跨越扩展企业的概念而帮助公司来共享产品数据、应用公共过程以及利用企业知识来从概念至产品的生命结束地开发产品。由Dassault Systèmes提供的PLM解决方案(商标为CATIA、ENOVIA以及DELMIA)提供了组织产品工程知识的工程中心、管理制造工程知识的制造中心、以及使得企业能够集成并连接到工程及制造中心的企业中心。该系统一起提供了开放的对象模型,其将产品、过程、资源链接起来以实现动态的且基于知识的产品创造与决策支持,这驱动优化的产品定义、制造准备、生产以及服务。
在该上下文和其他上下文中,机器学习,并且尤其是自动编码器和/或流形学习变得非常重要。
以下文章涉及该领域,并且在下文中提及:
[1]:“Stacked Denoising Autoencoders:Learning Useful Representationsin a Deep Network with a Local Denoising Criterion”,P.Vincent,H.Larcohelle,I.Lajoie,Y.Bengio,P.Manzagol,in The Journal of Machine Learning Research,2010.
[2]:“Reducing the Dimensionality of Data with Neural Networks”,G.E.Hinton,R.R.Salakhutdinov,in Science,2006.
[3]:“Learning Deep Architectures for AI”,Y.Bengio,in Foundations andTrends in Machine Learning,2009.
[4]Maxim Tatarchenko,Alexey Dosovitskiy,and Thomas Brox.Multi-view 3dmodels from single images with a convolutional network.In European Conferenceon Computer Vision,2016.
[5]Xinchen Yan,Jimei Yang,Ersin Yumer,Yijie Guo,and HonglakLee.Perspective transformer nets:Learning single-view 3d objectreconstruction without 3d supervision.In Advances in Neural InformationProcessing Systems,2016.
[6]Zhirong Wu,Shuran Song,Aditya Khosla,Fisher Yu,Linguang Zhang,Xiaoou Tang,and Jianxiong Xiao.3d shapenets:A deep representation forvolumetric shapes.In Computer Vision and Pattern Recognition,2015.
[7]Christian
Figure BDA0002345129570000021
Shubham Tulsiani,and Jitendra Malik.Hierarchicalsurface prediction for 3d object reconstruction.In 3DV,2017.
[8]Charles R Qi,Hao Su,Kaichun Mo,and Leonidas J Guibas.Pointnet:Deeplearning on point sets for 3d classification and segmentation.In ComputerVision and Pattern Regognition,2017.
[9]Charles Ruizhongtai Qi,Li Yi,Hao Su,and Leonidas J.Guibas.Pointnet++:Deep hierarchical feature learning on point sets in a metric space.InNIPS,2017.
[10]Thibault Groueix,Matthew Fisher,Vladimir G.Kim,Bryan Russell,andMathieu Aubry.AtlasNet:A Papier-
Figure BDA0002345129570000022
Approach to Learning 3D SurfaceGeneration.In Computer Vision and Pattern Recognition,2018.
[11]Yaoqing Yang,Chen Feng,Yiru Shen,and Dong Tian.FoldingNet:PointCloud Auto-encoder via Deep Grid Deformation.In Computer Vision and PatternRecognition,2018.
[12]Dimitri P.Bertsekas.The Auction Algorithm:a DistributedRelaxation Method for the Assignment.In Annals of Operations Research-SpecialIssue:Parallel Optimization on Novel Computer Architectures,Volume 14Issue 1-4,June 1988.
给定表示来自同一类别的样品的数据集,例如,椅子图像的数据集或汽车的3D模型的数据集,可以使用自动编码器(在先前引用的文章[1,2]中进行了解释),以学习该数据集的原始输入空间与低维空间之间的映射,该低维空间通常称为潜在空间。此外,自动编码器还可以学习从潜在空间到原始输入空间的反向映射。这些映射可以用于在数据中提取有意义的特征,和/或将数据压缩为紧凑的表示。
文章[4]学习了其中输入是对象和视点的RGB图像并在给定视点下预测输入图像中对象的深度图的自动编码器,而文章[5]学习了可以将单个RGB图像直接变换成表示输入中3D对象的323体素栅格的自动编码器。
文章[6]直接在323体素栅格上学习3D卷积深度信念网络,表示3D形状的二进制占用体积。如文章[7]中完成的,可以使用八叉树重建高分辨率的体素栅格。
文章[8]及其在文章[9]中的多尺度扩展介绍了一种能够直接在点云上学习的深度架构,称为PointNet。如果将点云表示为n个3D点的矢量,则关键是建立不因点的排列而改变的网络,以便该网络实际上通过置换的动作取决于n个3D点的空间的商,即与用来表示点云的顺序无关。为了实现此目标,该架构依赖于应用于每个输入点的共享层,并且形式为g(h(x1),···,h(xn)),其中h是从
Figure BDA0002345129570000031
Figure BDA0002345129570000032
的神经网络,而g是置换不变函数,例如,max函数。
所有这些方法都有缺乏准确性问题。
在该上下文中,仍然需要利用包括3D建模对象的数据集进行机器学习的改进方法,每个3D建模对象表示相应机械零件。
发明内容
因此,提供了一种计算机实现的机器学习方法。该方法包括提供包括3D建模对象的数据集,每个3D建模对象表示相应机械零件。该方法还包括提供神经网络的集合。每个神经网络具有相应权重。每个神经网络被配置用于推断3D建模对象。该方法还包括通过使损失最小化来修改神经网络的相应权重。针对数据集的每个3D建模对象,损失在多个项中选择一个项。每个项对3D建模对象与由集合中的相应神经网络推断出的相应3D建模对象之间的差异进行惩罚。所选择的项是多个项中的对其而言差异被最小程度地惩罚的项。
这构成了利用包括3D建模对象的数据集进行机器学习的改进方法,每个3D建模对象表示相应机械零件。
该方法可以包括以下操作中的一个或多个:
-3D建模对象与由集合中的相应神经网络推断出的相应3D建模对象之间的差异涉及3D建模对象与由该集合中的相应神经网络推断出的相应3D建模对象之间的距离;
-距离是表示3D建模对象的第一点云与表示由集合中的相应神经网络推断出的相应3D建模对象的第二点云之间的距离;
-每个神经网络被配置用于推断相应基本模板各自到相应3D建模对象的变形,每个相应基本模板是3D建模对象;
-每个相应基本模板是表示数据集中的子数据集的3D建模对象的质心的3D建模对象;
-损失为以下类型:
Figure BDA0002345129570000041
其中:
·
Figure BDA0002345129570000042
是神经网络的集合;
·x1,x2,…,xn是数据集的3D建模对象;
·S1,S2,…,Sk是相应基本模板;并且
·D2(Sj,xi)是涉及3D建模对象xi与由相应神经网络
Figure BDA0002345129570000043
推断出的相应基本模板Sj的变形之间的距离的项;
-最小化包括迭代以下操作:
·选择数据集的3D建模对象的集合;
·针对所选择的集合中的每个3D建模对象,通过奖励3D建模对象与由相应神经网络推断出的相应3D建模对象之间的差异的较小性,将相应神经网络分配给3D建模对象,每个相应神经网络被分配给所选择的集合中的一个或多个3D建模对象,每个相应神经网络的权重由于分配而被修改;和/或
-每个相应神经网络是相应自动编码器,该相应自动编码器包括被配置用于推断3D建模对象的相应解码器。
还提供了能够根据该方法获得的神经网络的集合。
还提供了使用该神经网络的集合的计算机实现的方法。
使用方法可以包括以下各项中的一个或多个:
-每个神经网络是相应自动编码器,该相应自动编码器包括被配置用于推断3D建模对象的相应解码器,该方法包括:
·提供两个或更多个3D建模对象;
·将两个或更多个3D建模对象各自投影到该神经网络的集合的相应自动编码器的潜在空间上;
·在潜在空间上计算投影的两个或更多个3D建模对象之间的一个或多个插值;以及
·向每个计算出的插值应用解码器;
-每个神经网络是相应自动编码器,该相应自动编码器包括被配置用于推断3D建模对象的相应解码器,该方法包括:
·提供3D建模对象的一部分;
·向3D建模对象的该部分应用相应自动编码器;以及
·将向3D建模对象的该部分应用相应自动编码器的结果拟合到3D建模对象的该部分;和/或
-每个神经网络是相应自动编码器,该相应自动编码器包括被配置用于推断3D建模对象的相应解码器,该方法包括:
·提供3D建模对象;
·向3D建模对象应用一个或多个相应自动编码器;以及
·基于应用来选择相应自动编码器。
还提供了一种计算机程序,该计算机程序包括用于执行该方法和/或该使用方法的指令。
还提供了一种设备,该设备包括其上记录有两个或更多个相应神经网络的集合和/或计算机程序的数据存储介质。
该设备可以形成或用作非暂时性计算机可读介质,例如,在SaaS(软件即服务)或其他服务器上,或在基于云的平台上,等等。该设备可以可替代地包括耦合到数据存储介质的处理器。因此,该设备可以全部或部分地形成计算机系统(例如,该设备是整体系统的子系统)。该系统还可以包括耦合到处理器的图形用户接口。
附图说明
现在将通过非限制性示例的方式并参考附图来描述实施例,其中:
-图1示出了整合该方法的示例的示例计算机实现的过程的流程图;
-图2至图19示出了方法和/或过程和/或使用方法;
-图20示出了系统的图形用户接口的示例;
-图21示出了系统的示例。
具体实施方式
提供了利用包括3D建模对象的数据集进行机器学习的计算机实现的方法,每个3D建模对象表示相应机械零件。
显著地,提供了机器学习的第一计算机实现的方法。第一方法包括提供包括3D建模对象的数据集。3D建模对象各自表示相应机械零件。数据集具有一个或多个子数据集。每个子数据集形成数据集的至少一部分。第一方法还包括针对每个相应子数据集确定基本模板。基本模板是表示子数据集的3D建模对象的质心的3D建模对象。第一方法还包括学习神经网络,该神经网络被配置用于推断基本模板各自到相应3D建模对象的变形。该学习包括基于子数据集的训练。在下文中,该第一方法可以被称为“模板学习方法”。
模板学习方法形成了利用包括3D建模对象的数据集进行机器学习的改进方法,每个3D建模对象表示相应机械零件。
显著地,模板学习方法允许针对每个相应子数据集确定表示该子数据集的3D建模对象的质心的3D建模对象。换言之,模板学习方法确定3D建模对象,即,基本模板,其表示子数据集的3D建模对象(例如,其平均形状)。模板学习方法还允许学习神经网络,该神经网络推断质心各自到相应3D建模对象的变形。对这种神经网络的学习包括基于子数据集的训练。换言之,该学习使用子数据集的3D建模对象来学习对此类建模对象的质心的变形的推断。因此,学习可以着重于学习对变形的准确细节的推断,因为作为子数据集的质心的基本模板不一定需要大量变形和/或粗略地变换为子数据集的3D建模对象。因此,根据模板学习方法学习的神经网络推断基本模板到数据集的3D建模对象的准确变形。在示例中,神经网络是包括解码器的自动编码器,该解码器被配置用于推断变形。在这样的示例中,自动编码器可以将3D建模对象作为输入,并且可以输出3D建模对象的重建,该重建是由解码器推断出的基本模板到3D建模对象的变形或基于该变形。由于解码器推断基本模板到子数据集的3D建模对象的准确变形,因此自动编码器对此类对象的重建是准确的。
在示例中,数据集按k个相应子数据集划分或基本上按k个相应子数据集划分,例如,数量k大于2。在这些示例中,模板学习方法确定k个基本模板并学习k个神经网络。每个基本模板表示相应子数据集的质心。在这些示例中,通过模板学习方法学习的每个神经网络推断k个基本模板中的相应一个基本模板到3D建模对象的变形。因此,如前面解释的,每个神经网络推断k个基本模板中的相应一个基本模板到相应子数据集的3D建模对象(其中k个基本模板中的相应一个基本模板表示一个质心)的准确变形。换言之,模板学习方法学习k个神经网络,该k个神经网络各自专门用于推断相应子数据集的质心到子数据集的对象的准确变形。在示例中,模板学习方法因此可以学习k个自动编码器,每个自动编码器分别专门用于重建相应子数据集的3D建模对象。
应当理解,数量k可以等于1,在这种情况下,数据集仅包括一个子数据集。子数据集形成至少一部分,在这种情况下,这意味着子数据集等于或基本上等于数据集。在这样的示例中,模板学习方法仍然受益于先前讨论的学习神经网络的准确性,该神经网络被配置用于推断所确定的基本模板的变形。实际上,所确定的基本模板表示数据集的所有或基本上所有3D建模对象的质心,因此,在其学习期间,配置用于推断所确定的基本模板的变形的神经网络可以着重于学习变形的准确细节。
数量k可以对应于以下事实:数据集本身被划分或基本上划分为k个相应类别的3D建模对象。即,每个相应子数据集由一个相应类别的3D建模对象唯一或基本上唯一地组成。“数据集本身按k个相应子数据集划分,每个子数据集由相应类别的3D建模对象组成”在示例中意味着,模板学习方法包括在确定基本模板之前和/或在学习神经网络之前,按k个相应子数据集划分数据集的步骤,每个子数据集由相应类别的3D建模对象组成。划分可以包括向数据集的每个3D建模对象分配表示相应类别的标签。因此,在这种情况下,模板学习方法提供了k个神经网络,每个神经网络专门用于推断相应子数据集的质心到与该子数据集相对应的类别的对象的准确变形。在示例中,模板学习方法因此可以学习k个自动编码器,每个自动编码器分别专门用于重建相应类别的3D建模对象。
另外地或可替代地,数量k可以由用户提供。在这样的示例中,数据集本身不一定被划分或基本上划分为k个相应子数据集,每个子数据集由相应类别的3D建模对象组成,但是数量k的提供可以强制进行这种划分。“强制”是指该划分可以源自对基本模板的确定和/或对神经网络的学习(和/或在对基本模板的确定和/或对神经网络的学习期间发生),例如,无需用户动作。实际上,确定k个基本模板可以包括使公共损失最小化。对于数据集的每个3D建模对象,公共损失在多个项中选择一个项。每个项都会惩罚3D建模对象与候选基本模板之间的差异。所选择的项可以是多个项中的对其而言差异被最小程度惩罚的项。换言之,确定根据候选基本模板(其是作为潜在基本模板被测试的3D建模对象)与数据集的3D建模对象的相似性来操作(例如,迭代地)对候选基本模板的选择。这强制确定k个相应基本模板,其与相应子数据集的所有3D建模对象的平均相异性最小。换言之,模板学习方法通过强制确定k个质心来将数据集划分为k个子数据集,从而对数据集的对象各自根据其与质心之一的(例如,最佳)相似性进行聚类。换言之,提供数量k会自动将数据集划分为k个相应类别,每个类别对应于k个子数据集中的相应一个子数据集的对象,即,与子数据集的质心相异性最小的对象。这样的划分还强制k个学习的神经网络中的每个学习的神经网络被专门用于推断相应子数据集的质心到与该子数据集相对应的类别的对象的准确变形。在将数据集本身划分或基本上划分为k个相应类别的3D建模对象的示例中,在提供数量k之后的先前讨论的数据集划分实际上可能对应于或基本上对应于数据集的本身划分。换言之,在提供数量k之后的先前讨论的数据集划分可能导致与数据集本身划分相同的结果(即,数据集的相同分区)。
在示例中,仅存在一个子数据集(例如,形成整个数据集的唯一一个子数据集),因此仅确定了表示整个数据集的质心的一个模板。在其他示例中,存在若干子数据集,因此针对每个子数据集确定一个质心。在这样的示例的特定示例中,原始数据集被提供(即,没有关于数据集的元素属于哪个子数据集的信息),并且学习包括使单个损失最小化(即,并且没有其他损失)。在这样的特定示例中,损失被配置用于操作元素的分配以校正相应子数据集。在这样的示例中,对若干基本模板的学习可以允许避免预先将数据集分成若干子数据集的要求。在这样的示例中,单个损失可以使得有可能在学习基本模板(类似于学习若干自动编码器)期间逐步地将数据集自动聚类。
还提供了机器学习的第二计算机实现的方法。第二方法包括提供包括3D建模对象的数据集。3D建模对象各自表示相应机械零件。第二方法包括提供神经网络的集合。每个神经网络具有相应权重。每个神经网络被配置用于推断3D建模对象。第二方法还包括通过使损失最小化来修改神经网络的相应权重。对于数据集的每个3D建模对象,损失在多个项中选择一个项。每个项惩罚3D建模对象与由集合中的相应神经网络推断出的相应3D建模对象之间的差异。所选择的项是多个项中的对其而言差异被最小程度地惩罚的项。该第二方法在下文中可以被称为“流形学习方法”。
流形学习方法形成了利用包括3D建模对象的数据集进行机器学习的改进方法,每个3D建模对象表示相应机械零件。
显著地,流形学习方法在3D建模对象的同一数据集上学习若干神经网络,每个神经网络都可以推断3D建模对象。该学习包括使损失最小化,并且损失操作在项中的选择,这些项对数据集的3D建模对象与由相应神经网络推断出的3D建模对象之间的差异进行惩罚。所选择的项是对其而言差异被最小程度地惩罚的项。换言之,流形学习方法通过(例如,迭代地)针对数据集的每个3D建模对象操作对哪个神经网络(例如,最)准确地推断出3D建模对象的选择来学习神经网络。因此,每个神经网络(例如,迭代地,例如在其学习期间逐渐地)专门用于推断数据集中的子数据集的3D建模对象,每个子数据集由神经网络专门用于的数据集的3D建模对象组成。通过流形学习方法学习的神经网络因此是准确的。在示例中,神经网络各自是自动编码器,其包括被配置用于推断3D建模对象的解码器。在这样的示例中,每个自动编码器可以将3D建模对象作为输入,并且可以输出3D建模对象的重建,该重建是解码器推断出的3D建模对象或者基于解码器推断出的3D建模对象。由于每个解码器准确地推断出数据集中的子数据集的3D建模对象,因此自动编码器对此类对象的重建是准确的。
在示例中,流形学习方法学习k个神经网络。即,神经网络的集合由k个神经网络组成。数量k可以由用户提供。然后,数量k的这种提供强制进行上面讨论的每个神经网络在对数据集中的k个子数据集中的相应一个子数据集的3D建模对象的推断中的专门化。数量k的这种提供还强制将数据集划分(例如,在学习期间,例如在没有用户动作的情况下)成k个类别的3D建模对象,每个类别对应于其推断是学习的k个神经网络中的相应一个神经网络的专长的3D建模对象。在示例中,这种将数据集强制划分为k个类别的3D建模对象可以对应于将数据集本身划分或基本上划分为k个类别的3D建模对象,其中,每个相应子数据集由一个相应类别的3D建模对象唯一或基本上唯一地组成。“将数据集本身划分为k个类别的3D建模对象”在示例中进一步意味着,流形学习方法包括在学习神经网络之前将数据集按k个相应子数据集进行划分的步骤,每个子数据集由相应类别的3D建模对象组成。划分可以包括向数据集的每个3D建模对象分配表示相应类别的标签。
在示例中,每个神经网络被配置为用于推断相应基本模板各自到相应3D建模对象的变形。在这些示例中,每个相应基本模板是3D建模对象。在这些示例中,每个相应基本模板可以是表示数据集中的子数据集的3D建模对象的质心的3D建模对象。在这样的示例中,每个神经网络都是特别准确的。首先,由于神经网络专门用于推断子数据集的3D建模对象,因此使其准确,如先前讨论的。其次,由于神经网络推断出的3D建模对象是它们与其相似的3D建模对象(质心)的变形或基于它们与其相似的3D建模对象(质心)的变形,因此使神经网络准确,如先前讨论的。在示例中,根据模板学习方法来确定相应基本模板或它们的至少一部分。在这种情况下,学习的神经网络将受益于先前讨论的模板学习方法和流形学习方法两者的准确性,这使得这些神经网络特别准确。可替代地,可以通过任何其他方法来确定相应基本模板或它们的至少一部分。
模板学习方法和流形学习方法可以独立地执行。根据模板学习方法对一个或多个神经网络的学习(即,针对一个或多个子数据集中的每个相应子数据集对神经网络的学习)可以包括根据流形学习方法使损失最小化。可替代地,可以通过任何其他机器学习方法来执行根据模板学习方法对一个或多个神经网络的学习。可以将通过流形学习而学习的神经网络配置用于推断基本模板的变形,如先前讨论的,基本模板是通过模板学习方法或任何其他方法来确定的。
模板学习方法和流形学习方法可以整合到同一过程中。图1示出了图示该过程的流程图,现在对其进行讨论。
该过程包括提供S10包括3D建模对象的公共数据集。每个3D建模对象表示相应机械零件。在示例中,根据模板学习方法对数据集的提供和根据流形学习方法对数据集的提供包含根据该过程重用所提供S10的公共数据集。换言之,模板学习方法提供的数据集和流形学习方法提供的数据集都与该过程提供的公共数据集相同。可替代地,根据模板学习方法对数据集的提供可以包含重用公共数据集的第一部分,而根据流形学习方法对数据集的提供可以包含重用公共数据集的第二部分。第二部分和第一部分可以不同。在示例中,第二部分和第一部分可以不同,但是可以包括相同类别的3D建模对象。换言之,第二部分和第一部分两者本身都可以按相同数量k个类别的3D建模对象进行划分。该过程进一步包括提供S20数量k。数量k的提供S20可以包括由用户指定(例如,声明)数量k。该过程还包括确定S30k个基本模板。根据模板学习方法执行对k个基本模板的确定S30。该过程进一步包括学习S40 k个神经网络。对k个神经网络的学习S40包括根据流形学习方法对由k个神经网络组成的神经网络的集合的相应权重进行修改S420。
在此过程中使用相同的数据集(即,公共数据集)根据模板学习方法执行对k个基本模板的确定S30并根据流形学习方法执行对k个神经网络的学习允许特别地从两种方法的结合中受益。实际上,根据模板学习方法对k个基本模板的确定S30将公共数据集划分(例如,聚类)为k个子数据集,换言之,也将公共数据集划分为k个类别的3D建模对象。可以学习根据流形学习方法学习的k个神经网络中的每个相应神经网络,以配置用于推断k个基本模板中的相应一个基本模板到公共数据集的3D建模对象的变形。在这种情况下,由对k个基本模板的确定S30提供的将公共数据集划分为k个子数据集有助于并改进先前讨论的将k个神经网络中的每个相应神经网络专门用于推断将k个子数据集中的相应一个子数据集的质心到子数据集的3D建模对象的准确变形。此外,如先前讨论的,k个神经网络中的每个相应神经网络可以着重于学习S40关于子数据集的质心到子数据集的3D建模对象的变形的细节,这改进了其准确性。在示例中,该过程因此可以学习k个自动编码器,每个自动编码器特别地专门用于特别准确地重建相应子数据集的3D建模对象。
另外地或可替代地,所提供的数量k可以对应于如下事实:公共数据集本身被划分或基本上被划分为k个类别的3D建模对象,如先前讨论的。在这种情况下,该过程因此可以提供k个神经网络,其专门用于推断k个相应子数据集(每个子数据集由一个类别的对象组成)的相应质心到该类别的3D建模对象的变形。显著地,该过程因此可以学习k个自动编码器,每个自动编码器都专门用于特别准确地重建相应类别的3D建模对象。
还提出了根据模板学习方法、流形学习方法或该过程可学习和/或可获得的神经网络和/或(例如,k个)神经网络的集合。还提供了使用神经网络和/或(例如,k个)神经网络的集合的计算机实现的方法。现在讨论使用方法的示例。
现在讨论神经网络的使用方法的示例。
在这些示例中,神经网络是自动编码器,其包括解码器,该解码器被配置用于推断基本模板各自到相应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建模对象和一个或多个第二3D建模对象,例如,第一3D建模对象和一个或多个第二3D建模对象均属于同一类别的3D建模对象。对于每个第二3D建模对象,第二种应用包括根据使用方法向第一3D建模对象和第二3D建模对象应用自动编码器。第二种应用还包括根据使用方法,基于应用自动编码器的结果来确定第一3D建模对象与第二3D建模对象之间的形状匹配。第二种应用还包括在第一建模对象上应用具有UV映射的纹理或材质。第二种应用还包括通过使用每个确定的形状匹配将UV映射重定向在一个或多个第二建模对象上。这允许将UV映射重定向在任何其他第二3D建模对象上,因此重定向纹理或材质。
通过自动编码器提供的重建,重定向更容易,这是因为自动编码器可以始终精确地具有相同的网格拓扑和相同的输出连接性。
由上面讨论的使用方法的示例确定的形状匹配的应用示例由图2示出,其中示出自动编码器保留了连接性并允许将椅子的顶点对应放置。
现在讨论(例如,k个)神经网络的集合的使用方法的示例。
在这些示例中,每个神经网络是相应自动编码器,其包括被配置用于推断3D建模对象的相应解码器。在这些示例中,使用方法包括提供两个或更多个3D建模对象。在这些示例中,使用方法还包括将两个或更多个3D建模对象各自投影在该神经网络的集合的相应自动编码器的潜在空间上。在这些示例中,使用方法还包括在潜在空间上计算投影的两个或更多个3D建模对象之间的一个或多个插值。在这些示例中,使用方法还包括向每个计算出的插值应用解码器。
在潜在空间上计算出的一个或多个插值的任何计算出的插值都是潜在矢量(也称为“插值潜在矢量”),其为两个潜在矢量之间的插值,两个潜在矢量是两个或更多个3D建模对象中的3D建模对象在潜在空间上的相应投影。因此,使用方法计算一个或多个这样的插值潜在矢量。两个潜在矢量之间的插值可以是任何插值,例如,矢量空间上的任何线性插值。
在示例中,使用方法中涉及的每个3D建模对象都是一类3D建模对象。在这样的情况下,相应自动编码器的解码器可以被配置用于(例如,专门用于)推断该类别的3D建模对象。因此,将解码器应用于计算出的插值输出该类别的3D建模对象。因为计算出的插值是在该类别的两个3D建模对象的两个投影之间计算的插值潜在矢量,所以解码的插值潜在矢量是该类别的3D建模对象,其表示该类别的所述两个3D建模对象之间的插值,例如,中间几何形状。因此,使用方法可以计算一个或多个这样的插值。
现在参考图3和图4讨论使用方法的示例。
图3示出了第一3D建模对象30和第二3D建模对象32。两个对象都是属于具有四条腿的椅子类别的椅子。图3示出了具有四条腿的六把椅子的集合34,每把椅子属于该类别,每把椅子是根据使用方法计算出的两把椅子30和32之间的插值。
图4示出了第一3D建模对象40和第二3D建模对象42。两个对象都是属于椅子类别的椅子。图4示出了六把椅子的集合44,每把椅子属于该类别,每把椅子是根据使用方法计算出的两把椅子40和42之间的插值。
从先前讨论的模板学习方法、流形学习方法或过程的准确性中受益,因此使用方法允许在每个自动编码器的原始输入空间中执行逼真的非线性插值。
现在讨论(例如,k个)神经网络的集合的使用方法的其他示例。
在使用方法的这些示例中,每个神经网络是相应自动编码器,其包括被配置用于推断3D建模对象的相应解码器。在这些示例中,使用方法包括提供3D建模对象的一部分。在这些示例中,使用方法包括向3D建模对象的一部分应用相应自动编码器。在这些示例中,使用方法还包括将向3D建模对象的一部分应用相应自动编码器的结果拟合到3D建模对象的该部分。
解码器可以被配置为用于推断一类3D建模对象中的3D建模对象。3D建模对象可以属于该类别。因此,向3D建模对象的一部分应用自动编码器可以输出该类别的另一3D建模对象。因此,将向3D建模对象的一部分应用相应自动编码器的结果拟合到3D建模对象的该部分可以包含使该类别的另一3D建模对象变形,从而使该类别的另一3D建模对象的一部分与3D建模对象的该部分匹配(例如,几何地),从而导致3D建模对象的自动完成。
现在参考图5讨论这种使用方法的示例。图5示出了3D建模对象的部分50的示例,该部分是腿缺失的椅子。图5还示出了一旦拟合到3D建模对象的部分50,就向3D建模对象的部分50应用相应自动编码器的结果52。拟合结果52是腿没有缺失的椅子50。
因此,该使用方法可以应用于用于3D扫描流水线中的扫描自动完成的形状推断过程中。现在讨论这样的流水线。
3D扫描流水线可以包括扫描一个或多个真实对象,例如,现实世界的3D场景中的对象。扫描可以包括提供一个或多个物理传感器,每个物理传感器被配置用于获取相应物理信号,并通过对一个或多个真实对象操作一个或多个物理传感器来获取一个或多个相应物理信号(即,例如,利用每个传感器一个接一个地扫描或同时扫描一个或多个真实对象)。3D扫描流水线然后可以包括应用3D重建方法,该方法针对每个扫描的现实世界对象并基于一个或多个物理传感器的测量来自动确定表示扫描的现实世界对象的3D点云和/或3D网格。可以根据任何已知技术来执行3D重建。一个或多个传感器可以包括多个(例如,RGB和/或图像或视频)相机,并且确定可以包括根据运动的结构分析。一个或多个传感器可以可替代地或另外地包括一个或多个深度传感器(例如,在RGB深度相机上),并且确定可以包括根据深度数据的3D重建。一个或多个深度传感器可以例如包括激光器(例如,激光雷达)或超声发射器-接收器。
一个或多个扫描的现实世界对象可能以每个至少一个遮挡为特征。这样的对象可以由局部点云表示(即,完整点云的一部分应该表示完整的真实对象,而没有遮挡)。3D扫描流水线然后可以包括将使用方法应用于表示以遮挡为特征的一个或多个扫描的现实世界对象的一个或多个局部点云中的每个,以自动完成每个局部点云。具体地,对于每个局部点云,根据使用方法提供的3D建模对象的部分是局部点云。根据使用方法,将相应自动编码器应用于局部点云,并将应用相应自动编码器的结果拟合至局部点云,从而自动完成局部点云。应当理解,在示例中,为了执行自动完成,不能像自动编码那样简单地给出局部点云。在这些示例中,本领域技术人员可能宁愿学习另一种编码器,该另一种编码器从不完整的云中预测3D形状的潜在矢量,或者在潜在空间中优化最适合局部点云的3D形状。
对于所述局部点云中的每个相应局部点云,当点云表示属于一类3D建模对象的对象时,使用方法可以因此允许应用自动编码器,该自动编码器的解码器被配置用于推断该类别的3D建模对象。因此,针对这种对象的自动完成是准确的,因为其受益于先前讨论将解码器专门用于推断该类别的3D建模对象。根据使用方法使用若干自动编码器,每个自动编码器具有相应解码器,该解码器专门用于推断相应类别的3D建模对象,从而大大改进了自动完成的准确性。
现在讨论(例如,k个)神经网络的集合的使用方法的其他示例。
在使用方法的这些示例中,每个神经网络是相应自动编码器,其包括被配置用于推断3D建模对象的相应解码器。在这些示例中,使用方法还包括提供3D建模对象。在这些示例中,使用方法还包括将一个或多个相应自动编码器应用于3D建模对象。在这些示例中,使用方法还包括基于应用来选择相应自动编码器。
选择自动编码器可以包含选择最好地重建所提供的3D建模对象的自动编码器。因此,可以在聚类过程中使用该使用方法。具体地,每个相应解码器可以专门用于推断3D建模对象的数据集中的相应类别的3D建模对象,该数据集例如按相应类别进行划分。聚类过程可以包括提供3D建模对象的另一数据集。聚类过程还可以包括将使用方法应用于另一数据集的每个3D建模对象。因此,对于另一数据集的每个3D建模对象,聚类过程确定哪个自动编码器最好地重建3D建模对象。然后,聚类过程可以将3D建模对象分配给自动编码器的解码器专门用于的类别。换言之,可以通过迭代使用方法来获得自动聚类算法。
模板学习方法、流形学习方法和过程都是计算机实现的。现在讨论计算机实现的方法(相应地过程)的概念。
“方法(相应地过程)是计算机实现的”表示该方法(相应地过程)的步骤(或基本上所有步骤)由至少一台计算机或任何类似系统执行。因此,该方法(相应地过程)的步骤由计算机执行,可能是全自动执行,或者可能是半自动执行。在示例中,可以通过用户-计算机交互来执行对该方法(相应地过程)的步骤中的至少一些步骤的触发。所要求的用户-计算机交互水平可能取决于预见的自动化的水平,并且与实现用户意愿的需求保持平衡。在示例中,该水平可以是用户定义的和/或预定义的。
方法(相应地过程)的计算机实现方式的典型示例是利用适用于此目的的系统执行该方法(相应地过程)。该系统可以包括耦合到存储器和图形用户接口(GUI)的处理器,该存储器上记录有计算机程序,该计算机程序包括用于执行该方法/过程的指令。存储器还可以存储数据库。该存储器是适合于这种存储的任何硬件,可能包括若干物理上不同的部分(例如,一部分用于程序,而可能一部分用于数据库)。
在该过程的示例中,根据模板学习方法对k个基本模板的确定S30和根据流形学习方法对k个神经网络的学习S40可以由同一台计算机或计算机的同一集合执行。在这些示例中,可以通过可以由同一用户触发的用户交互来执行该过程的步骤,例如,提供S20数量k。可替代地,该过程可以由不同的计算机和/或用户执行。例如,根据模板学习方法对k个基本模板的确定S30可以由一个或多个计算机的第一集合来执行,这可能涉及与第一用户的人机交互,并且根据流形学习方法对k个神经网络的学习S40可以由一个或多个计算机的第二集合来执行,这可能涉及与第二用户的人机交互。一个或多个计算机的第一集合和第二集合可以通过网络连接。
将讨论提供在模板学习方法、流形学习方法和过程中涉及的包括3D建模对象的数据集的概念。在讨论该概念之前,现在讨论其中涉及的数据结构。如将认识到的,本文提供的数据结构定义和示例可以应用于由模板学习方法、流形学习方法和/或过程提供的数据集的至少一部分(例如,全部)。
3D形状的离散的几何表示在本文中是一种数据结构,其包括多条数据的离散集合。每条数据表示位于3D空间中的相应几何实体。每个几何实体表示3D形状的相应位置(换言之,构成由3D形状表示的实体的材料的相应部分)。几何实体的聚合(即,并集或并列)共同表示3D形状。在示例中,本文中的任何离散的几何表示可以包括高于100、1000或10000的许多条这种数据。
本文中的任何离散的几何表示可以例如是3D点云,每个几何实体是一个点。可替代地,本文中的任何离散的几何表示可以是3D网格,每个几何实体是网格图块或面。本文中的任何3D网格可以是规则的或不规则的(即,是否由相同类型的面组成)。本文中的任何3D网格可以是多边形网格,例如,三角形网格。本文中的任何3D网格可替代地可以是B-Rep。本文中的任何3D网格可以从3D点云获得,例如,通过对3D点云进行三角剖分(例如,利用Delaunay三角剖分)。
本文中的任何3D点云可以根据对真实物体的物理测量来确定,例如,在3D重建过程中。3D重建过程可以包括:提供真实对象;提供各自被配置用于获取相应物理信号的一个或多个物理传感器;以及通过对真实对象操作一个或多个物理传感器来获取一个或多个相应物理信号(即,利用每个传感器扫描真实对象)。然后,根据任何已知技术,3D重建可以基于测量自动确定3D点云和/或3D网格。一个或多个传感器可以包括多个(例如,RGB和/或图像或视频)相机,并且确定可以包括根据运动的结构分析。一个或多个传感器可以可替代地或另外地包括一个或多个深度传感器(例如,在RGB深度相机上),并且确定可以包括根据深度数据的3D重建。一个或多个深度传感器可以例如包括激光器(例如,激光雷达)或超声发射器-接收器。
可替代地,本文中的任何3D点云或3D网格可以从表示实体的表皮(即外表面)的3D建模对象(例如,B-Rep模型)中获得,例如,通过在3D建模对象上进行射线投射或对3D建模对象进行曲面细分。可以根据任何3D建模对象渲染过程执行曲面细分。可以在任何CAD系统上对这种渲染过程进行编码,以显示3D建模对象的图形表示。可以设计3D建模对象或由用户使用CAD系统设计3D建模对象。
建模对象是由例如存储在数据库中的数据定义的任何对象。引申开来,表述“建模对象”指定数据本身。根据执行模板学习方法、流形学习方法和/或过程的系统的类型,建模对象可以由不同种类的数据定义。系统实际上可以是CAD系统、CAE系统、CAM系统、PDM系统、和/或PLM系统的任何组合。在这些不同的系统中,建模对象由对应的数据定义。本领域技术人员可以相应地提及CAD对象、PLM对象、PDM对象、CAE对象、CAM对象、CAD数据、PLM数据、PDM数据、CAM数据、CAE数据。然而,这些系统不是互相排斥的,因为建模对象可以由对应于这些系统的任何组合的数据来定义。系统因此也可以是CAD系统和PLM系统两者,如从下面提供的这种系统的定义将显而易见的。
CAD系统另外地表示至少适用于在建模对象的图形表示的基础上来设计建模对象的任何系统,例如,CATIA。在这种情况下,定义建模对象的数据包括允许建模对象的表示的数据。例如,CAD系统可以使用边或线(在某些情况下使用表面或面)来提供CAD建模对象的表示。可以以诸如非均匀有理B样条(NURBS)的各种方式来表示线、边或面。特别地,CAD文件包含规格,根据规格可以生成几何结构,这接下来允许生成表示。建模对象的规格可以存储在单个CAD文件或多个CAD文件中。表示CAD系统中的建模对象的文件的典型大小在每个零件一兆字节的范围内。并且建模对象典型地可以是成千上万个零件构成的组装件。
在CAD的上下文中,建模对象典型地可以是3D建模对象,例如,表示诸如零件或零件构成的组装件的产品,或者可能是产品构成的组装件。“3D建模对象”表示由允许其3D表示的数据建模的任何对象。3D表示允许从所有角度来查看该零件。例如,当对3D建模对象进行3D表示时,可以围绕其轴中的任一个轴或围绕显示该表示的屏幕中的任何轴来对3D建模对象进行处理并转动。这显著地排除了非3D建模的2D图标。3D表示的显示有助于进行设计(即,提高了设计人员统计地完成其任务的速度)。因为产品的设计是制造过程的一部分,所以这加速了工业中的制造过程。
在本公开的上下文中,3D建模对象可以表示以下产品的几何结构,该产品在利用例如CAD软件解决方案或CAD系统完成其虚拟设计之后将在现实世界中进行制造:例如,(例如,机械的)零件或零件构成的组装件(或者等同地,零件构成的组装件,因为零件构成的组装件从模板学习方法、流形学习方法和/或过程的观点可以看作零件本身,或者模板学习方法、流形学习方法和/或过程可以独立地应用于组装件中的每个零件),或者更一般地任何刚性体组装件(例如,移动机构)。CAD软件解决方案允许对各种且不受限制的工业领域中的产品进行设计,包括:航空航天、建筑、建造、消费品、高科技设备、工业装备、运输、船舶、和/或海上石油/天然气生产或运输。因此,在模板学习方法、流形学习方法和/或过程中涉及的任何3D建模对象可以表示可以是任何机械零件的工业产品,例如,陆地交通工具的一部分(包括例如汽车和轻型卡车装备、赛车、摩托车、卡车和电机装备、卡车和公共汽车、火车)、航空交通工具的一部分(包括例如机身装备、航空航天装备、推进装备、国防产品、飞机装备、空间装备)、航海交通工具的一部分(包括航海装备、商船、近海装备、游艇和工作船、船舶装备)、一般机械零件(包括例如工业制造机械、重型移动机械或装备、安装装备、工业装备产品、制造金属产品、轮胎制品等)、机电或电子零件(包括例如消费电子、安全和/或控制和/或仪表化产品、计算和通信装备、半导体、医疗设备和装备)、消费品(包括例如家具、家居和园艺产品、休闲用品、时尚产品、硬商品零售商的产品、软商品零售商的产品)、包装(包括例如食品和饮料和烟草、美容和个人护理、家用产品包装)。
在示例中,本公开的任何3D建模对象可以表示机械零件,该机械零件是模制零件(即,通过制模制造过程制造的零件)、机加工零件(即,通过机加工制造过程制造的零件)、钻孔零件(即,通过钻孔制造过程制造的零件)、车削零件(即,通过车削制造过程制造的零件)、锻造零件(即,通过锻造制造过程制造的零件)、冲压零件(即,通过冲压制造过程制造的零件)和/或折叠零件(即,通过折叠制造过程制造的零件)中的一种或合理的组合。
在本公开的上下文中,3D建模对象可以是合理的(例如,现实的)3D建模对象。合理的3D建模对象可以指定表示合理的(例如,现实的)机械零件的3D建模对象。合理的机械零件可以指定在现实世界的工业制造过程中可在现实中制造的机械零件。合理的机械零件可以指代这样的机械零件:该机械零件遵守为了在现实世界的工业制造过程中在现实中制造该机械零件所必须遵守的所有约束。约束可以包括以下各项中的一项或任何合理的组合:机械约束(例如,由经典力学定律得出的约束)、功能约束(例如,与一旦制造后由机械零件执行的一种或多种机械功能有关的约束)、制造约束(例如,与在用于制造机械零件的一个或多个制造过程期间将一种或多种制造工具应用于机械零件的能力有关的约束)、结构约束(例如,与机械零件的强度和/或阻力有关的约束)和/或组装约束(例如,定义如何可以将该机械零件与一个或多个其他机械零件组装在一起的约束)。
在本公开的上下文中,“包括3D建模对象的数据集”指代至少包括3D建模对象的数据集。在示例中,数据集可以由3D建模对象组成。可替代地,数据集可以严格地包括3D建模对象,并且可以包括附加数据,例如,相对于3D建模对象的规格。数据集的3D建模对象可以是3D建模对象的离散几何表示。换言之,数据集可以包括3D建模对象的离散几何表示(例如,网格和/或点云)。在这种情况下,为简单起见,3D建模对象空间的离散几何表示仍可以称为3D建模对象本身,而不是其相应离散表示。数据集可以具有一个或多个子数据集。每个子数据集可以形成数据集的至少一部分(例如,全部)。
在本公开的上下文中,可以将包括3D建模对象的数据集划分或基本上划分为3D建模对象的一个或多个子数据集。“划分”表示数据集的每个3D建模对象都属于形成分区的一个且仅一个子数据集。“基本上划分”表示子数据集形成数据集的至少一部分的分区。在这种情况下,数据集由该至少一部分和另一部分组成,并且与属于子数据集中的任一子数据集的3D建模对象的数量相比,属于另一部分的3D建模对象的数量可以忽略不计。在示例中,每个子数据集由一类3D建模对象中的3D建模对象组成。在这样的示例中,数据集可以被指定为“按3D建模对象的类别划分”。具体地,令k为类别的数量,k大于一,例如,大于二。当提到“将数据集划分或基本划分为k个类别的3D建模对象”时,表示将数据集划分为k个子数据集,并且k个子数据集中的相应一个子数据集的所有3D建模对象属于k个类别中的相应一个类别。类别的概念将在下面进一步讨论。
在本公开的上下文中,3D建模对象可以属于3D建模对象空间。3D建模对象空间通常指定由3D建模对象构成的空间。3D建模对象空间可以被包括在矢量空间中(例如,是矢量空间的子空间)。3D建模对象空间可以是矢量空间的流形。流形可以是连接的流形。可替代地,流形可以是包括一个或多个(例如,两个或更多个)连接的组件的非连接流形。本公开中涉及的3D建模对象的任何数据集可以被包括或可以被严格地包括在3D建模对象空间中。在示例中,数据集被包括或严格地包括在流形中。在这些示例中,流形可以是连接的流形或非连接流形。在这些示例中,数据集可以包括一个或多个子数据集,每个子数据集形成数据集的至少一部分,每个子数据集被包括或严格地包括在非连接流形的连接组件中。
在本公开的上下文中,一类3D建模对象可以对应于矢量空间的连接的流形。可替代地或另外地,一类3D建模对象可以对应于矢量空间的非连接流形的连接组件。另外地或可替代地,一类3D建模对象可以指定具有以下属性的3D建模对象集合:该集合中的任何第一3D建模对象至少类似于该集合中的第二3D建模对象,例如,具有至少类似于该集合中的第二3D建模对象的形状。应当理解,为简单起见,可以将一类3D建模对象分割(例如,划分)为一个或多个子类,其仍将被称为类别。
在示例中,一类3D建模对象由表示相应机械零件的3D建模对象组成,与该类别相关(即,相对应)的机械零件均遵守以下条件中的任何一个或任意组合:
·与该类别有关的机械零件全部在相同的制造过程中或以制造过程的相同组合制造;
·与该类别有关的机械零件都是合理的机械零件;
·与该类别有关的机械零件均来自相同的技术和/或行业领域;
·与该类别有关的机械零件均执行相同的机械功能;
·与该类别有关的机械零件各自由3D建模对象表示,该3D建模对象的形状与该类别的至少一个其他3D建模对象的形状相似(因此表示与该类别有关的另一机械零件);和/或
·与该类别有关的机械零件均服从(例如,满足,例如遵守,例如验证)相同的机械约束、功能约束、制造约束、结构约束和/或组装约束。
图6示出了在模板学习方法、流形学习方法和/或过程中涉及的3D建模对象的数据集60的示例。数据集由一类3D建模对象中的3D建模对象组成。该类别的3D建模对象是椅子。椅子形成一类3D建模对象,因为它们均执行相同的机械功能,即,支撑重量(例如,人的体重)。执行这一机械功能还意味着所有椅子都必须服从相同的机械约束、功能约束和结构约束。图6的椅子是合理的机械零件,因为它们遵守机械约束、功能约束、制造约束和结构约束,从而允许通过一个或多个制造过程在现实世界中对其进行制造。应当理解,并非在图6中表示了数据集60的所有对象。为了清楚起见,仅呈现了数据集60的对象中的一部分,但是该数据集可以包括更多的对象。
图7示出了在模板学习方法、流形学习方法和/或过程中涉及的3D建模对象的数据集70的示例。数据集由一类3D建模对象中的3D建模对象组成。该类别的3D建模对象是(各自)具有四条腿的椅子。具有四条腿的椅子形成一类3D建模对象,因为它们均执行相同的机械功能,即,支撑重量(例如,人的体重),并且由于利用四条腿执行该机械功能也意味着椅子全部服从相同的机械约束、功能约束和结构约束。图7的椅子是合理的机械零件,因为它们遵守机械约束、功能约束、制造约束和结构约束,从而允许通过一个或多个制造过程在现实世界中对其进行制造。应当理解,并非在图7中表示了数据集70的所有对象。为了清楚起见,仅呈现了数据集的对象中的一部分,但是数据集可以包括更多的对象。
图8示出了将图6的数据集60划分为两个子数据集82和84的示例。第一数据集82包括没有腿的椅子,它们是第一类别的椅子中的椅子,第二数据集84包括具有四条腿的椅子,它们是第二类别的椅子中的椅子。换言之,参照图6讨论的椅子的类别可以划分成若干类别的椅子,其中两个类别是第一类别和第二类别。这两个类别的椅子服从相同的功能约束,因为它们执行相同的支撑重量的机械功能。然而,利用不同数量的腿执行所述相同的机械功能意味着服从不同的机械约束和/或结构约束。换言之,第一类别的椅子均服从机械约束和/或结构约束的第一集合,第二类别的椅子均服从机械约束和/或结构约束的第二集合,并且第一集合和第二集合的约束是不同的。应当理解,并非在图8中表示了子数据集82(相应地84)的所有对象。为了清楚起见,仅呈现了子数据集82(相应地84)的对象中的一部分,但是子数据集可以包括更多的对象。
现在讨论3D建模对象的其他示例。
在本公开的上下文中,任何3D建模对象可以表示汽车。汽车可以形成一类3D建模对象。可替代地或另外地,任何3D建模对象可以表示飞机。飞机可以形成一类3D建模对象。可替代地或另外地,任何3D建模对象可以表示船。船可以形成一类3D建模对象。
现在讨论在模板学习方法、流形学习方法和过程中涉及的“提供包括3D建模对象的数据集”的概念。
数据集的提供可以自动执行或由用户执行。例如,用户可以从存储数据集的存储器中取回数据集。用户还可以通过将一个或多个3D建模对象(例如,逐一地)添加到已经取回的数据集中来选择完成数据集。添加一个或多个3D建模对象可能包括从一个或多个存储器中取回这些3D建模对象并将它们包括在数据集中。可替代地,用户可以通过(例如,逐一地)选择3D建模对象并利用这些选择的3D建模对象形成(例如,声明)数据集来从头开始创建数据集。选择3D建模对象可以包括从存储器中取回该3D建模对象。数据集的3D建模对象的一部分(例如,其全部)可能先前已经被设计(例如,由一个或多个其他用户设计),然后在被用户取回之前存储在一个或多个存储器中。“设计3D建模对象”指定作为拟定3D建模对象的过程的至少一部分的任何动作或一系列动作。
在本公开的上下文中,在对数据集的任何提供处,可以将数据集的所有3D建模对象作为点云提供。可替代地,可以以另一种格式(例如,作为CAD对象,例如作为其他离散的几何表示,例如3D网格)来提供数据集的3D建模对象的至少一部分(例如,其全部)。在这种情况下,提供数据集可以包括从至少一部分的每个3D建模对象中确定(例如,提取)点云。提取点云可以包括对建模对象例如在六个正交视图上进行射线投射,如本领域中已知的。
在示例中,无论是否将数据集的所有3D建模对象都作为点云提供,或者是否已按照前面讨论地进行了射线投射,数据集的3D建模对象在某些点上都是所有点云。在这些示例中,提供数据集可以包括对所述点云进行统一子采样,以使得每个点云具有相同的固定数量的点,如本领域中已知的。在一种实现方式中,对于每个点云,统一子采样包括:首先挑选点云的随机点,并从已经挑选的点中迭代地挑选点云的最远点,直到达到所述固定数量的点。
因此,在示例中,无论是否已经执行了提取步骤和/或统一子采样步骤,都将数据集的3D建模对象作为点云提供,这些点云均具有相同的固定数量的点。在这些示例中,提供数据集还可以包括将点云居中,并且可选地将单位球缩放应用到居中的点云,如本领域中已知的。
现在讨论“学习神经网络”的概念。
“学习神经网络”指定通过机器学习方法来确定一个或多个神经网络的集合(例如,一个神经网络,例如两个或更多个神经网络的集合)。在本公开的上下文中,该集合中的每个神经网络具有权重(例如,由权重参数化),并且学习该神经网络通常可以包括初始化权重和更新权重。显著地,根据流形学习方法对该集合中的神经网络的相应权重进行修改S420是对神经网络的集合的学习S40的一部分。在本公开的上下文中,对该集合中的每个神经网络的学习可以包括基于数据集(相应地数据集中的子数据集)的训练。由此,在示例中意味着数据集(相应地数据集中的子数据集)是训练集(例如,学习集)的一部分,但是仅数据集(相应地数据集中的子数据集)直接参与对神经网络的权重的修改S420,因此训练集的其他部分不会直接参与对神经网络的权重的修改S420。例如,可以仅基于与数据集(相应地数据集中的子数据集)的3D建模对象有关(例如,从中获得,例如从中导出)的数据(例如,计算结果)来执行对权重的修改S420。例如,如果学习S40和/或修改S420包括使操作在训练集的3D建模对象之间的选择的损失最小化,使得对相应权重的修改S420仅涉及该选择所选择的3D建模对象,则可能是这种情况。
根据本公开学习的任何神经网络可以是被配置用于推断3D建模对象的神经网络。这意味着神经网络在3D建模对象空间中或在3D建模对象空间的子集中(例如,在一类3D建模对象中)输出值。另外地或可替代地,神经网络可以被配置用于推断基本模板各自到相应3D建模对象的变形。下文将进一步讨论“基本模板”的概念,但是在任何情况下,“基本模板”都指定3D建模对象。基本模板到相应3D建模对象的变形可以是将基本模板映射到相应3D建模对象的一个或多个几何变换的集合。在这种情况下,推断变形可以包括推断一个或多个几何变换和/或其参数。可替代地或另外地,如果基本模板和相应3D建模对象分别是第一3D网格(相应地第一点云)和第二3D网格(相应地第二点云)或由其表示,则基本模板到相应3D建模对象的变形可以是第一3D网格(相应地第一点云)的每个顶点(相应地点)与第二3D网格(相应地第二点云)的每个顶点(相应地点)之间的相应对应关系的集合。在这种情况下,推断变形可以包括推断这种对应关系。推断变形还可以包括通过一个或多个几何变换的集合推断基本模板被映射到的相应3D建模对象。换言之,神经网络的输出可以包括一个或多个几何变换的集合以及相应3D建模对象。在示例中,神经网络是自动编码器,其包括被配置用于推断3D建模对象和/或推断变形的解码器。
现在讨论自动编码器的概念。可以将自动编码器定义为两个前馈深度神经网络的组成部分(参见早前引用的文章[3]),fw:
Figure BDA0002345129570000261
和gw′:
Figure BDA0002345129570000271
由权重w和w′参数化,其中p<<m。fw是编码器,并且gw′是解码器。
Figure BDA0002345129570000272
是潜在空间,即,编码器fw输出其值并且解码器gw′取其值的矢量空间。p是潜在空间的维度。
Figure BDA0002345129570000273
是编码器fw取其值并且解码器gw′输出其值的空间。
Figure BDA0002345129570000274
可以被称为“原始输入空间”。m是原始输入空间的维度。在本公开的上下文中,原始输入空间可以是或可以严格地包括3D建模对象空间。换言之,编码器fw(x)在原始输入空间中取其值,但是解码器gw′的潜在空间的映像(例如,3D建模对象空间)可能是原始输入空间的子集。矢量z=fw(x)可以被称为“潜在矢量”或“隐藏矢量”。自动编码器
Figure BDA0002345129570000275
也可以称为“重建”。重建将原始输入空间的第一元素(例如,3D建模对象空间的第一3D建模对象)作为输入,将其映射到潜在矢量(即,潜在空间的元素),然后通过从潜在矢量输出原始输入空间的第二元素(例如,3D建模对象空间的第二3D建模对象)来反转映射。第二元素可以被称为第一元素的“重建”。在示例中,这意味着第二元素表示第一元素的近似值。在示例中,如果x是3D建模对象,则3D建模对象
Figure BDA0002345129570000276
可以被称为重建的3D建模对象。x也可以被称为输入,并且
Figure BDA0002345129570000277
可以被称为重建的输入。在该过程的上下文中,编码器fw和解码器gw可以是机器学习的(例如,单独地或同时地),例如,通过使重建误差最小化。对对象进行编码意味着将编码器应用于该对象。编码的结果因此可以被称为“已编码对象”。对对象进行编码也可以被称为“将对象投影(例如,在例如编码器的潜在空间上)”,并且编码的结果可以被称为“已投影对象”。解码潜在矢量意味着将解码器应用于潜在矢量。解码的结果因此可以被称为“已解码潜在矢量”。
现在讨论学习自动编码器的实现方式。令
Figure BDA0002345129570000278
为训练集,其中n是训练集中的3D建模对象的数量。在该实现方式中,学习自动编码器
Figure BDA0002345129570000279
包括优化重建损失
Figure BDA00023451295700002710
其中
Figure BDA00023451295700002711
是比较输入样本和通过自动编码器重建的样本的距离,例如,
Figure BDA00023451295700002712
可以是L2范数。通过对每个样本xi+η施加随机噪声并训练自动编码器以重建纯净版本xi,可以使学习过程更加鲁棒。这样的示例可以被称为“去噪自动编码器”(在早前引用的文章[5]中介绍)。在本公开的上下文中,如在早前引用的文章[6](称为堆叠自动编码器的版本)中解释的,学习还可以以贪婪的逐层方式对架构进行预训练。
现在讨论对基本模板的确定S30。
在本公开的上下文中,针对包括3D建模对象的数据集中的每个子数据集执行对基本模板的确定S30,每个3D建模对象表示相应机械零件,该数据集具有一个或多个子数据集,每个子数据集形成数据集的至少一部分。换言之,针对每个相应子数据集,确定S30基本模板。
现在讨论针对一个相应子数据集对基本模板的确定S30。应当理解,以下讨论适用于针对任何相应子数据集对任何基本模板的确定S30。
基本模板是3D建模对象,例如,表示机械零件。基本模板可以是网格或点云。基本模板是表示子数据集的3D建模对象的质心的3D建模对象。这可能意味着基本模板的几何形状表示(例如,是)子数据集的3D建模对象的形状的平均几何形状(例如,根据诸如Hausdorff距离、Wasserstein距离、Earth Mover距离或倒角距离之类的距离)。在示例中,3D基本模板是子数据集的3D建模对象,该3D建模对象与子数据集的所有3D建模对象的平均相异性最小。第一3D建模对象与第二3D建模对象之间的相异性可以是对第一3D建模对象的几何形状与第二3D建模对象的几何形状(例如,根据Hausdorff距离、Wasserstein距离、Earth Mover距离或倒角距离)之间的差别的量化。
图9示出了确定的基本模板92的示例,该确定的基本模板92表示图6的数据集60的质心。图10示出了确定的基本模板102的示例,该确定的基本模板102表示图7的数据集70的质心。
在示例中,确定S30基本模板包括计算损失在候选基本模板内的最小值,损失针对子数据集的每个3D建模对象对子数据集的3D建模对象与候选基本模板之间的差异进行惩罚。
计算S300损失在候选基本模板内的最小值可以包括(例如,迭代地)探索3D建模对象并且评估每个探索的3D建模对象对损失的影响。在这种情况下,候选基本模板指定探索的3D建模对象。候选基本模板可以例如由3D建模对象(例如,另一候选基本模板)的变形或3D建模对象(例如,候选基本模板)的连续变形产生的3D建模对象。对损失的最小值的计算S300可以包括使用任何松弛算法。
损失可以是针对子数据集的每个3D建模对象测量3D建模对象与候选基本模板之间的(例如,几何)相似性和/或相异性的量(例如,函数)。损失例如可以是以下函数:将子数据集的每个3D建模对象作为参数,将候选基本模板作为输入,并且输出表示输入候选基本模板与子数据集的3D建模对象之间的(例如,几何)相似性和/或相异性的量(例如,正实数)。对于每个3D建模对象,3D建模对象与候选基本模板之间的差异可以是对3D建模对象与候选基本模板之间的(例如,几何)相异性的量化。惩罚差异可以表示损失是差异的递增函数。
因此,对基本模板的确定S30可以在3D建模对象(候选基本模板)之中奖励与子数据集的3D建模对象的相似性。显著地,确定S30基本模板可以迭代地探索(例如,访问)候选基本模板,并且对于其中的每个候选基本模板,寻找并奖励探索的候选基本模板与子数据集的每个3D建模对象的相似性,这导致确定S30的基本模板表示子数据集的3D建模对象的质心。
在示例中,子数据集的3D建模对象与候选基本模板之间的差异是3D建模对象与候选基本模板之间的距离的函数。
该距离是测量3D建模对象之间的相似性和/或相异性的一种特别简单且有效的方式。
该距离可以是3D建模对象之间的任何距离,例如,量化3D建模对象之间的(例如,几何)相异性的距离。因此,在3D建模对象与候选基本模板之间的距离可以量化3D建模对象与候选基本模板之间的(例如,几何)相异性。该距离可以是例如Wasserstein距离、Earthmover距离、倒角距离或Haussdorf距离。差异可以是距离的递增函数,例如,距离的平方。
在示例中,该距离是表示3D建模对象的第一点云与表示候选基本模板的第二点云之间的距离。
如先前讨论的,子数据集的每个3D建模对象可以作为点云(因此表示3D建模对象)提供,或者可以从提供3D建模对象的另一种格式确定表示3D建模对象的点云。在任一种情况下,对基本模板的确定S30可以操纵表示子数据集的每个3D建模对象的点云。同样作为3D建模对象,候选基本模板也可以由相应点云表示,其可以可选地从其他3D建模对象格式确定。因此,该距离可以是点云之间的任何距离,例如,Wasserstein距离或Earth Mover距离。
在示例中,损失为以下类型:
Figure BDA0002345129570000301
其中:
·D1(Sj,xi,j)是Sj与xi,j之间的距离的函数;
·Sj是第二点云;
·pj是相应子数据集中3D建模对象的数量;并且
·
Figure BDA0002345129570000303
是第一点云。
在示例中,D1(Sj,xi,j)是Earth Mover距离损失,由以下公式给出:
Figure BDA0002345129570000302
在示例中,计算S300包括提供基本3D建模对象。在这些示例中,计算S300还包括从基本3D建模对象开始迭代以下操作:评估先前候选基本模板对损失的影响,以及将先前候选基本模板变形为新的候选基本模板。
基本3D建模对象是3D建模对象。基本3D建模对象是候选基本模板。可以像提供S10数据集的任何3D建模对象一样提供基本3D建模对象。换言之,可以将对基本3D建模对象的提供像对任何对象的提供S10一样来执行,并且在示例中,例如,(例如,基本上)同时进行。
现在讨论迭代。迭代从基本3D建模对象开始。计算S300可以探索(例如,访问)基本3D建模对象,并且可以评估基本3D建模对象对损失的影响。评估基本3D建模对象对损失的影响可以包括计算损失和/或计算损失的结果的导数。评估基本3D建模对象的影响还可以包括确定计算损失的结果和/或计算损失的结果的导数是否使得损失足够小,例如,根据执行计算S300的松弛算法的收敛参数。在示例中,如果对损失的影响使得损失不足够小,则将基本3D建模对象变形为新的候选基本模板。然后进行迭代:针对由先前候选基本模板的变形产生的每个候选基本模板,迭代包括评估候选基本模板对损失的影响,其中该评估可以作为对基本3D建模对象的影响的评估来执行。在示例中,如果对损失的影响使得损失不足够小,则将候选基本模板变形为新的候选基本模板,评估新的候选基本模板对损失的影响,依此类推。换言之,只要不能实现使损失足够小,迭代就连续探索彼此变形的候选基本模板,并且由于损失不足够小而使候选基本模板彼此变形。
现在讨论将先前候选基本模板变形为新的候选基本模板的概念。如先前所讨论,针对子数据集的每个3D建模对象,先前候选基本模板的损失惩罚3D建模对象与先前候选基本模板之间的差异。评估损失可以包括确定子数据集的一个或多个3D建模对象,对于该一个或多个3D建模对象而言,每个相应3D建模对象与先前候选基本模板之间的相应差异是最小程度地惩罚的差异(即,在损失的所有差异中)。然后,对先前候选基本模板的变形可以包括将一个或多个3D建模对象分配给先前候选基本模板。对先前候选基本模板的变形还可以包括将先前候选基本模板变换为一个或多个3D建模对象的质心,例如,根据距离。在这种情况下,质心可以形成新的候选基本模板。
换言之,计算S300从基本3D建模对象开始,并迭代地将其变形为连续的候选基本模板,直到候选基本模板之一与子数据集的(例如,所有)3D建模对象的相异性是可接受的为止(例如,低于收敛参数,例如最佳)。这构成了将3D建模对象变形为子数据集的质心的高效方式。
在示例中,基本3D建模对象表示球体。另外地或可替代地,针对子数据集的每个3D建模对象,损失可以惩罚表示数据集的3D建模对象的第一点云与表示新的候选基本模板的第二点云之间的Earth Mover距离损失。
基本3D建模对象可以是表示球体(例如,单位球体)的点云。在这种情况下,作为先前候选基本模板变形的结果的每个新的候选基本模板是球体迭代变形的结果。每个新的候选基本模板因此可以由点云表示,该点云由表示球体的点云的迭代变形产生的。
球体是特别方便的基本3D建模对象,因为表示球体的点云可以容易地变形为表示大量3D建模对象(例如,对球体同胚的3D建模对象)的点云。使用单位球体特别适合于以下情况:子数据集的3D建模对象作为点云提供S10,这些点云根据单位球体缩放进行居中和缩放。Earth Mover距离特别适合于使用球体作为基本3D建模对象。
在示例中,基本3D建模对象是点云。在这些示例中,迭代导致优化的点云。在这些示例中,对基本模板的确定S30还可以包括在优化的点云中的点上推断S330法线。在这些示例中,对基本模板的确定S30还可以包括基于推断出的法线执行S340优化的点云的表面重建。
由于点云是由表示基本3D建模对象的点云的迭代变形产生的,因此点云得以优化,所述变形是为了将表示基本3D建模对象的点云变形为表示损失的最小值(或至少表示损失的最小值的近似值)的点云而执行的。
可以通过能够在点云中的点上推断法线的任何方法来执行推断S330法线。法线在优化的点云上提供拓扑信息。可以通过能够基于点云和推断出的法线来推断将点云网格化的表面的任何方法来执行表面重建。因此,所确定S30的基本模板可以被输出为表示子数据集的质心的3D网格。换言之,在示例中,所确定S30的基本模板是执行S340表面重建的结果。
至少从几何角度出发,表示基本3D建模对象的点云中的点被优化。换言之,优化的点云可以仅从几何角度准确地表示3D建模对象的质心,但可能没有正确的拓扑。例如,子数据集可以由一类3D建模对象组成,并且优化的点云可以在几何上表示子数据集的质心,但是可能具有错误的拓扑,例如,这样使得优化的点云(例如,如果简单地进行网格化)不表示该类别的3D建模对象。推断S330法线并执行S340随后的表面重建允许避免这些困难,并可以重新网格化优化的点云,以便新网格具有正确的拓扑。因此,在这些示例中,所确定S30的基本模板可以是表示该类别的3D建模对象的质心的3D建模对象。
现在参考图11至图16讨论推断S330法线和执行S340表面重建的实现方式。图11示出了基本3D建模对象110的示例,其是表示球体的点云。图12示出了表示椅子的优化的点云120。优化的点云具有错误的拓扑,如图13所示,示出了优化的点云120具有其错误的拓扑。如图13中可见的,优化的点云130没有它应该具有的椅子的拓扑。在该实施方式中,对基本模板的确定S30包括提供S310粗栅格,确定S30将优化的点云放置在粗栅格中。包含点的每个体素的值为1,其他体素的值为零。在该实现方式中,确定S30还包括从栅格中提取S320粗网格。可以通过应用等距值接近1的移动立方体算法来执行对粗网格的提取S320。图14示出了从图12的优化的点云120中提取的粗网格140。在该实现方式中,对法线的推断S330包括使用来自移动立方体算法的粗网格,以便准确地计算优化的点云120的每个点的法线。对法线的推断S330可以包括将每个点投影到粗网格的最近三角形上,并为其法线分配三角形的法线的加权平均值,权重为投影的点的重心权重。图15A示出了具有推断出的法线的图12的优化的点云150。利用这些适当的法线,确定S30还包括执行S340泊松表面重建。这允许获得基本模板,该基本模板是具有准确拓扑的3D网格。如果顶点太多,则确定S30可以可选地包括对3D网格取其十分之一。图15B示出了3D基本模板160的示例,该3D基本模板160是通过执行S340泊松表面重建从具有图15A的推断出的法线的优化的点云150获得的。
已经讨论了针对一个相应子数据集对基本模板的确定S30。应当理解,在存在两个或更多个相应子数据集的情况下,针对每个相应子数据集,可以相同地执行针对相应子数据集对基本模板的确定。可以同时确定S30所有相应子数据集的所有基本模板。显著地,在示例中,对这些基本模板的同时确定S30包括同时地并且针对每个相应子数据集计算S300损失的最小值,针对每个相应子数据集,计算S300如先前讨论地执行。
现在讨论通过同时地并且针对每个相应子数据集计算S300损失的最小值来同时确定S30这些基本模板的示例。
在这些示例中,同时地并且针对每个相应子数据集计算S300损失的最小值包括使公共损失最小化。使公共损失最小化可以对应于(例如,隐含,例如等同于)针对每个相应子数据集如先前讨论地执行每个计算S300。对于数据集的每个3D建模对象,公共损失在多个项中选择一个项。每个项惩罚3D建模对象与候选基本模板之间的差异。所选择的项可以是多个项中的对其而言差异被最小程度地惩罚的项。
公共损失可以是针对数据集的每个3D建模对象测量3D建模对象与相应候选基本模板之间的两个或更多个(例如,几何)相应相似性和/或相异性的量(例如,函数)。多个项中的每个项可以是两个或更多个(例如,几何)相应相似性和/或相异性中的相应一个的度量。因此,在3D建模对象与相应候选基本模板之间由项惩罚的差异可以是对3D建模对象与候选基本模板之间的(例如,几何)相异性的量化。因此,惩罚差异可能意味着该项是差异的递增函数。公共损失在多个项中并且针对数据集的每个3D建模对象选择被最小程度地惩罚的项。在示例中,这意味着公共损失是这样的函数:该函数将数据集的3D建模对象作为参数并将候选基本模板作为输入,并且输出作为针对每个3D建模对象被选择的每个项的函数(例如,总和)的量(例如,正实数)。换言之,损失可以输出针对数据集的每个3D建模对象表示哪个(哪些)候选基本模板(例如,最)类似于(例如,在几何上类似于)3D建模对象的结果。使公共损失最小化可以使用任何松弛算法,例如,小批次随机梯度松弛算法。
在示例中,在3D建模对象与相应候选基本模板之间的差异涉及3D建模对象与相应候选基本模板之间的距离。
该距离是测量3D建模对象之间的相似性和/或相异性的一种特别简单且高效的方式。
该距离可以是任何距离,例如,Haussdorf距离、Wasserstein距离、倒角距离或Earth Mover距离。在示例中,差异涉及3D建模对象与相应候选基本模板之间的距离,因为差异是3D建模对象与相应候选基本模板之间的距离的(例如,递增)函数。在示例中,差异涉及3D建模对象与相应候选基本模板之间的距离,因为差异取决于关于对3D建模对象与相应候选基本模板之间的距离的计算的结果。
在示例中,该距离是表示3D建模对象的第一点云与表示相应候选基本模板的第二点云之间的距离。
如先前讨论的,数据集的每个3D建模对象可以作为点云(因此,其表示3D建模对象)提供,或者可以从提供3D建模对象的另一种格式确定表示3D建模对象的点云。在任一种情况下,确定S30可以操纵表示数据集的每个3D建模对象的点云。同样作为3D建模对象,相应候选基本模板也可以由相应点云表示,其可以可选地从其他3D建模对象格式确定。因此,该距离可以是点云之间的任何距离,例如,Wasserstein距离或Earth Mover距离。
在示例中,公共损失为以下类型:
Figure BDA0002345129570000341
其中:
·S1,S2,…,Sk是第二点云;
·对于每个j∈{1,2,3,…,k},pj是3D建模对象的数据集中的第j个相应子数据集中的3D建模对象的数量,而
Figure BDA0002345129570000351
是表示相应子数据集的3D建模对象的第一点云;
·
Figure BDA0002345129570000352
其中n是数据集中3D建模对象的数量;
·D1(Sj,xi,j)是涉及相应候选基本模板Sj与数据集xi,j的3D建模对象之间的距离的项;
在示例中,D1(Sj,xi,j)是Earth mover距离损失,由以下公式给出:
Figure BDA0002345129570000353
在示例中,使公共损失L1(S1,S2,…,Sk)最小化导致(例如,隐含,例如等同于)同时并且针对每个相应子数据集计算S300损失
Figure BDA0002345129570000354
Figure BDA0002345129570000355
的最小值,先前已经讨论过这一点。
现在讨论确定S30 k个基本模板的实现方式,其中k≥2。
在此实现方式中,数据集包含n个3D建模对象,表示为{x1,x2,…,xn}。每个3D建模对象xi是一个点云,该点云根据单位球缩放进行居中和缩放。m是每个点云xi的公共点数。确定S30包括使公共损失最小化,并且使公共损失最小化包括提供k个点云S1,…,Sk,每个点云表示基本3D建模对象,该基本3D建模对象是具有m个点的单位球体。在该实现方式中,确定S30包括将非常小的噪声添加到每个点云Si,以使得每个基本3D建模对象彼此略微不同。这有利于确定S30数据集中的k个相应子数据集的k个质心,因为每个基本3D建模对象从一开始就已经与其他基本3D建模对象不同,因此已经稍微专门化为表示数据集的一些3D建模对象的公共形状。
在此实现方式中,最小化的公共损失为以下类型:
Figure BDA0002345129570000356
其中
Figure BDA0002345129570000357
是表示数据集的3D建模对象的第一点云xi与表示候选基本模板的第二点云Sj之间的Earth Mover距离损失。可以通过使用较早引用的文章[12]中提出的松弛算法来执行公共损失的最小化,以优化每个球体的点,从而(通过小批次随机梯度下降)使损失最小化。
通过在基本模板中确定S30表示与另一种优化的基本3D建模对象不同的一种形状的形状来优化每个基本3D建模对象,这是因为对于每个训练模型,最小值将仅优化最近的基本3D建模对象。每个基本3D建模对象都将其自身专门用于特定的基本模板,该特定的基本模板表示数据集中的不同于其他相应子数据集的相应子数据集的3D建模对象的质心。换言之,每个基本模板表示它自己的聚类在以Earth Mover距离提供的3D模型的数据集中的质心。
为了强制使每个基本3D建模对象专门用于它自己的3D建模对象形状,确定S30的此实现方式还可以在小批次训练期间使用重新分配算法。实际上,可能发生这样的情况:所有3D建模对象都针对同一基本模板达到其最小损失,从而阻碍其他3D建模对象被优化。为了阻止该影响,在训练期间的每个小批次中,对于每个先前候选基本模板,确定S30可以根据其针对先前候选模板的损失按照降序对第一点云排序(第一重新分配算法)。可替代地,确定S30可以根据先前候选基本模板与重建该3D建模对象的最佳候选基本模板之间的损失差来对第一点云排序(第二重新分配算法)。然后,确定S30可以强制将顶部Ω(其中Ω是小批次大小的一小部分)分配给先前候选基本模板,这意味着确定S30会更改
Figure BDA0002345129570000361
以及其产生的针对该第一点云的argmin,以针对该第一点云强制反向传播通过该模板。因此,先前候选基本模板可以变形为新的候选基本模板。
现在讨论第一重新分配算法和第二重新分配算法。两种算法取以下各项作为输入:
-小批次x1,…,xB(B是小批次的大小);
-Ω(必须≤B/k);
-对于i=1到B:
Figure BDA0002345129570000371
-对于i=1到B:Ii=argminj=1,…,kD1(Sj,xi)(因此
Figure BDA0002345129570000372
)。
两种算法都输出:
-重新分配后整个小批次的损失L1
以下是第一种重新分配算法的伪代码:
Figure BDA0002345129570000373
以下是第二种重新分配算法的伪代码:
Figure BDA0002345129570000374
公共损失L1的最小化导致k个优化的点云与每个3D基本模板的顶点的优化相对应,但可能不考虑拓扑。这可能会导致基本模板具有准确的点云但具有错误的拓扑。因此,确定S30可以包括基本模板的重新网格化。在这种情况下,确定S30可以包括,针对每个基本模板,提供S310粗栅格,确定S30将基本模板放入该粗栅格中。包含点的每个体素的值为1,其他体素的值为零。然后,确定S30可以包括从每个粗栅格(例如,通过应用等距值接近1的移动立方体算法)提取S320粗网格。确定S330然后可以包括在每个优化的点云中的点上推断S330法线。对法线的推断S330可以包括使用来自移动立方体算法的粗网格,以便针对每个优化的点云的每个点计算准确的法线。这可以包含将每个点投影到粗网格的最近三角形上,并为其法线分配三角形的法线的加权平均值,权重是投影的点的重心权重。利用这些适当的法线,确定S340可以包括在每个优化的点云上执行(例如,泊松)表面重建,以便获得具有准确拓扑的基本模板,如果顶点太多,则可以最终对其取十分之一。
现在参考图16-19讨论确定S30两个基本模板的示例。图16示出了由具有四条腿的椅子组成的数据集160的示例。数据集被分为两个类别的四条腿的椅子,第一类别162由具有四条腿和窄椅背的椅子组成,第二类别164由具有四条腿和宽椅背的椅子组成。图17和图18分别示出了对表示第一类别162的质心的第一基本模板和表示第二类别164的质心的第二基本模板的确定S30。点云170和180是两个基本3D建模对象,每个基本3D建模对象迭代地变形172、182为优化的点云174和184。图19示出了第一基本模板190和第二基本模板192,它们分别是优化的点云174和184的表面重建。
现在讨论对神经网络的学习S40。
如先前讨论的,学习S40神经网络指定对一个或多个神经网络(例如,两个或更多个神经网络)的集合的确定。集合中的每个神经网络都具有相应权重。学习S40神经网络的集合可以包括提供S400神经网络的集合。对神经网络的集合的提供S400可以由用户执行。例如,用户可以从存储数据集的存储器中取回神经网络的集合。可以将每个神经网络作为结构提供S400,但是仍然必须进行对神经网络的训练。换言之,可以提供S400包括神经网络的权重的每个神经网络的结构,但是权重可能仍然必须被初始化S410和/或修改S420。对神经网络的集合的学习S40可以包括初始化S410每个神经网络的相应权重和/或修改S420神经网络的相应权重。如先前讨论的,对相应权重的修改S420可以是训练的一部分。如先前讨论的,训练可以是对所有神经网络的同时训练,并且可以基于数据集。在示例中,这意味着对每个神经网络的训练都基于整个数据集。可替代地或另外地,这可以意味着对每个相应神经网络的训练是基于数据集的相应子数据集的,该数据集包括一个或多个相应子数据集,每个子数据集形成数据集的至少一部分。在下文中,“数据集”是指如刚刚讨论的对其执行对神经网络的集合的训练的数据集。
在示例中,在提供S400神经网络的集合之后并且在修改S420相应权重之前,执行对相应权重的初始化S410。对相应权重的初始化S410通常包括例如通过用户交互来指定(例如,声明)该集合中的每个神经网络的每个相应权重的值。在示例中,每个神经网络的相应权重可以全部被初始化S410为小于预定阈值的值。预定阈值可以由用户提供。预定阈值可以低于1、0.5、0.1或0.001。
在示例中,并不是一开始就将权重初始化为接近零,而是无论(合理的)输入如何,神经网络的输出都将接近零。然而,实际上,在给定所使用的架构的情况下,在初始化S410处放置弱的权重使得确保神经网络将通过预测弱的变形来开始成为可能。因此,在示例中,本身没有阈值,一切都取决于所使用的架构。在这样的示例中,可以执行初始化S420,使得神经网络的输出在学习开始之前预测小的失真。
将神经网络的相应权重初始化S410为低于这样的预定阈值的值特别适合于学习被配置用于推断相应基本模板各自到3D建模对象的变形的神经网络。在这种情况下,可能要求无论神经网络的输入是什么,神经网络的输出都很小,即,相应基本模板的变形很小。实际上,如果相应基本模板表示数据集中的子数据集的质心,则相应基本模板不一定需要大量变形和/或粗略地变换为子数据集的3D建模对象。通过以这种方式初始化S410神经网络的权重,学习S40确保神经网络将通过输出子数据集的3D建模对象来开始训练。换言之,神经网络将恰好从初始化S410其相应权重开始专门用于推断相应基本模板到子数据集的3D建模对象的变形,相应基本模板是该子数据集的质心。
现在讨论对神经网络的相应权重的修改S420。
通过使损失最小化来执行对神经网络的相应权重的修改S420,损失针对数据集的每个3D建模对象在多个项中选择一个项,每个项惩罚3D建模对象与由集合中的相应神经网络推断出的相应3D建模对象之间的差异,所选择的项是多个项中的对其而言差异被最小程度地惩罚的项。
“修改神经网络的相应权重”表示例如在损失的迭代最小化期间,神经网络的至少一部分(例如,全部)的相应权重的至少一部分(例如,全部)被修改,例如,迭代地。例如,损失的最小化可以包括执行一种或多种算法,并且该一种或多种算法的至少一部分的(例如,全部)步骤可以在执行时修改相应权重。损失的最小化可以使用任何深度学习技术,例如,小批次上的ADAM求解器。
损失可以是针对数据集的每个3D建模对象测量3D建模对象与由相应神经网络推断出的相应3D建模对象之间的两个或更多个(例如,几何)相应相似性和/或相异性的量(例如,函数)。多个项中的每个项可以是两个或更多个(例如,几何)相应相似性和/或相异性中的相应一个的度量。因此,3D建模对象与由相应神经网络推断出的相应3D建模对象之间的、由该项惩罚的差异可以是对3D建模对象与由相应神经网络推断出的相应3D建模对象之间的(例如,几何)相异性的量化。因此,惩罚差异可能意味着该项是差异的递增函数。损失在多个项中并且针对数据集的每个3D建模对象,选择被最小程度地惩罚的项。在示例中,这意味着损失是这样的函数:该函数将数据集的3D建模对象作为参数并将神经网络的集合作为输入,并且输出作为针对每个3D建模对象选择的每个项的函数(例如,总和)的量(例如,正实数)。换言之,损失可以输出针对数据集的每个3D建模对象表示哪个神经网络推断出(例如,最)类似于(例如,在几何上类似于)3D建模对象的相应3D建模对象的结果。
在示例中,3D建模对象与由集合中的相应神经网络推断出的相应3D建模对象之间的差异涉及3D建模对象与由集合中的相应神经网络推断出的相应3D建模对象之间的距离。
该距离是测量3D建模对象之间的相似性和/或相异性的一种特别简单且高效的方式。
该距离可以是任何距离,例如,Haussdorf距离、Wasserstein距离、倒角距离或Earth Mover距离。在示例中,差异涉及3D建模对象与由集合中的相应神经网络推断出的相应3D建模对象之间的距离,因为差异是3D建模对象与由集合中的相应神经网络推断出的相应3D建模对象之间的距离的(例如,递增)函数。在示例中,差异涉及3D建模对象与由集合中的相应神经网络推断出的相应3D建模对象之间的距离,因为差异取决于关于对3D建模对象与由集合中的相应神经网络推断出的相应3D建模对象之间的距离的计算的结果。
在示例中,该距离是表示3D建模对象的第一点云与表示由集合中的相应神经网络推断出的相应3D建模对象的第二点云之间的距离。
如先前讨论的,数据集的每个3D建模对象可以作为点云(因此其表示3D建模对象)提供,或者可以从提供3D建模对象的另一种格式确定表示3D建模对象的点云。在任一种情况下,修改S420可以操纵表示数据集的每个3D建模对象的点云。同样作为3D建模对象,由集合中的相应神经网络推断出的相应3D建模对象也可以由相应点云表示,其可以可选地从其他3D建模对象格式确定。因此,该距离可以是点云之间的任何距离,例如,Wasserstein距离或Earth Mover距离。
在示例中,每个神经网络被配置用于推断相应基本模板各自到相应3D建模对象的变形。在这些示例中,每个相应基本模板是3D建模对象。
在示例中,每个相应基本模板是表示数据集中的子数据集的3D建模对象的质心的3D建模对象。
在示例中,损失为以下类型:
Figure BDA0002345129570000411
其中:
·
Figure BDA0002345129570000412
是神经网络的集合;
·x1,x2,…,xn是数据集的3D建模对象;
·S1,S2,…,Sk是相应基本模板;并且
·D2(Sj,xi)是涉及3D建模对象xi与由相应神经网络
Figure BDA0002345129570000413
推断出的相应基本模板Sj的变形之间的距离的项。
在示例中,D2是倒角距离损失:
Figure BDA0002345129570000421
在示例中,最小化包括对以下操作的迭代:选择数据集的3D建模对象的集合,并且针对所选择的集合中的每个3D建模对象,通过奖励3D建模对象与由相应神经网络推断出的相应3D建模对象之间的差异的较小性,将相应神经网络分配给3D建模对象。在这些示例中,每个相应神经网络被分配给所选择的集合中的一个或多个3D建模对象。在这些示例中,由于分配,每个相应神经网络的权重被修改。
可以执行对选择的迭代,直到已经至少一次选择了数据集的每个3D建模对象和/或直到数据集的每个3D建模对象具有分配给它的相应神经网络为止。将相应神经网络分配给所选择的集合中的3D建模对象可以包括评估对3D建模对象与由相应神经网络推断出的相应3D建模对象之间的差异进行惩罚的损失的每个项。将相应神经网络分配给所选择的集合中的3D建模对象还可以包括评估对其而言差异被最小程度地惩罚的项。在示例中,与被评估的项惩罚的差异相对应的相应神经网络是分配给3D建模对象的神经网络。
换言之,修改S420方法迭代地访问数据集中的3D建模对象的集合,并将相应神经网络分配给每个集合中的每个3D建模对象,该相应神经网络推断出与3D建模对象(例如,最)类似(例如,在几何上类似)的相应3D建模对象。因此,针对每个相应神经网络,将一个或多个3D建模对象迭代地分配给相应神经网络。在每次分配时修改相应神经网络的权重。在示例中,这意味着修改相应神经网络的权重,使得相应神经网络被配置为推断当前正被分配和先前被分配给相应神经网络的至少每个3D建模对象。
因此,修改S420迭代地探索集合中的3D建模对象,并将相应神经网络迭代地分配给一个或多个3D建模对象。权重也可以迭代地修改,使得每个相应神经网络至少专门用于推断分配给它的3D建模对象。换言之,修改S420可以操作对数据集的3D建模对象的一个或多个子数据集(例如,类别)的选择,并且基本上同时地,修改每个相应神经网络的相应权重,使得每个相应神经网络专门用于推断子数据集中的相应一个子数据集的3D建模对象。
现在讨论以下示例的实现方式:其中每个相应神经网络是相应自动编码器,该相应自动编码器包括被配置用于推断3D建模对象的相应解码器。
在该实现方式中,令{S1,…,Sk}为被确定S30的k个所确定S30的基本模板,其中k≥2。学习S50包含学习k个自动编码器
Figure BDA0002345129570000431
每个基本模板一个自动编码器。每个编码器基于较早引用的文章[8,9,10,11],将对表示3D建模对象的输入3D网格的采样x作为输入。每个解码器gj通过将潜在矢量fj(x)以及3D坐标y作为输入来预测基本模板Sj的变形,并且变形后的模板被获取为Sj+gj(fj(x),Sj)。初始化每个解码器,以便在学习开始之前预测小的变形。如先前讨论的,这可以包括将每个解码器的相应权重初始化S410为低于预定阈值的初始值。通过(使用标准深度学习技术,例如,小批次上的ADAM求解器)使以下倒角距离损失最小化来修改S420相应权重:
Figure BDA0002345129570000432
其中
Figure BDA0002345129570000433
是倒角距离。
可以通过使用类似于先前已经描述的第一重新分配算法或第二重新分配算法的重新分配算法来使损失最小化。这允许重新分配
Figure BDA0002345129570000434
及其argmin,以在训练期间通过每个小批次的至少几个3D建模对象来强制优化每个自动编码器。由于在此实现方式中,自动编码器从基本模板开始,因此很容易将这些自动编码器专门用于由其相关联的基本模板表示的种类的3D建模对象。此外,自动编码器只需要稍微使该基本模板变形即可匹配输入,因此自动编码器确保其输出的拓扑更加一致。
现在讨论该过程的实现方式。
在该实现方式中,该过程将若干自动编码器学习到网格上,其中每个自动编码器自动地将它自己专门用于特定种类的拓扑。每个解码器还使它自己的基本模板变形,该基本模板被自动地确定S30以表示所提供S10的数据集中存在的不同种类的基本形状。这允许学习具有更高准确度和更低重建损失的流形,高效地处理不同的拓扑,并且确保重建的形状共享更一致的拓扑。
该过程的这种实现方式包括四个阶段1、2、3和4,现在将对其进行讨论。
1.对数据集采样
令{x1,x2,…,xn}是所提供S10的3D网格的数据集,其典型地属于同一类对象(例如,椅子的数据集)。该过程包括通过在六个正交视图上对每个模型进行射线投射来从数据集中的每个形状中提取点云。该过程还包括对每个点云进行统一子采样以获得固定数量的点m。为此,该过程从点云的随机点开始,并且迭代地从已经选择的点中挑选点云中最远的点,直到达到数量m个点为止。现在{x1,x2,…,xn}表示训练网格的经采样的点云。该过程进一步将形状的中心居中并应用单位球缩放。
2.学习基本模板–确定S30 k个基本模板
该过程从k个单位球S1,…,Sk开始,其中每个单位球m个点。该过程向每个球体添加了非常小的噪声,使得每个球体彼此稍微不同。
该过程使用较早引用的文章[12]中提出的松弛算法来优化每个球体的点,以(通过小批次随机梯度下降)使以下Earth Mover距离损失最小化:
Figure BDA0002345129570000441
其中
Figure BDA0002345129570000451
是模板Sj与形状xi之间的Earth Mover距离损失。
每个球体将以表示不同于其他优化球体的一种形状的基本模板形状进行优化,因为对于每个训练模型,最小值将仅优化最近的球体。每个球体将其自身专门用于特定的基本模板,该特定的基本模板表示特定的拓扑和形状种类,与其他球体不同。每个基本模板可以解释为它自己的聚类在3D模型空间中的质心(以Earth Mover距离提供)。
为了强制每个球体专门用于它自己的形状,该过程还在小批次训练期间使用重新分配算法。实际上,可能发生这样的情况:对于同一基本模板,所有形状都达到其最小损失,从而阻碍其他球体被优化。重新分配算法可以是先前讨论的第一重新分配算法和第二重新分配算法之一。
损失L1优化了球体的顶点,但没有考虑拓扑。这导致基本模板具有准确的点云但具有错误的拓扑。因此,该过程包括将基本模板重新网格化。为此,该过程将每个基本模板放在粗3D栅格中,其中包含点的每个体素的值为1,其他体素的值为零。然后,该过程包括应用等距值接近1的移动立方体算法,以针对每个基本模板提取粗网格。该过程使用来自移动立方体算法的粗网格,以便针对每个基本模板的每个点计算准确的法线。该过程仅将每个点投影到粗网格的最近三角形上,并为其法线分配三角形的法线的加权平均值,权重是投影的点的重心权重。利用这些适当的法线,该过程运行泊松表面重建,以便获得具有准确拓扑的基本模板,如果顶点过多,则该过程最终可能取十分之一。现在{S1,…,Sk}表示k个学习的基本模板。注意,每个基本模板对球体是同胚的。
3.学习流形–学习S40 k个自动编码器
该过程还包括学习k个自动编码器
Figure BDA0002345129570000452
每个基本模板一个自动编码器。每个编码器基于较早引用的文章[8,9,10,11]将对输入网格的采样x作为输入。每个解码器gj通过将潜在矢量fj(x)以及3D坐标y作为输入来预测基本模板Sj的变形,并且变形后的模板作为Sj+gj(fj(x),Sj)被获得。初始化每个解码器,以便在学习开始之前预测小的变形。
通过(使用标准深度学习技术,例如,小批次上的ADAM求解器)使以下倒角距离损失最小化来学习自动编码器:
Figure BDA0002345129570000461
其中
Figure BDA0002345129570000462
是倒角距离的函数。
该过程还使用与上一阶段中完全相同的分区算法,以便重新分配
Figure BDA0002345129570000463
及其argmin,以在训练期间通过每个小批次的至少几个形状来强制优化每个自动编码器。由于自动编码器从基本模板开始,因此很容易将这些自动编码器专门用于由其相关联的基本模板表示的种类的形状。此外,自动编码器只需要稍微使此基本模板变形即可匹配输入,因此自动编码器确保其输出的拓扑更加一致。
4.将流形变成生成模型
现在已经学习了流形,该过程还可以针对每个自动编码器的每个潜在空间拟合高斯混合模型,以便能够采样和合成新的形状。对于每个自动编码器,该过程采用由该自动编码器最佳重建的训练形状,并在执行期望最大化以拟合高斯混合之前,使用这些形状来初始化k均值聚类。高斯混合给出了可以容易地进行采样的每个潜在空间上的概率分布函数。
还提供了一种计算机程序,其包括用于执行模板学习方法、流形学习方法、过程和/或使用方法的指令。
还提供了一种设备,其包括其上记录有程序和/或神经网络和/或神经网络的集合的数据存储介质。该设备可以形成或用作非暂时性计算机可读介质,例如,在SaaS(软件即服务)或其他服务器上,或在基于云的平台上,等等。该设备可以可替代地包括耦合到数据存储介质的处理器。因此,该设备可以全部或部分地形成计算机系统(例如,该设备是整体系统的子系统)。该系统还可以包括耦合到处理器的图形用户接口。
现在讨论系统和程序。
图20示出了系统的GUI的示例,其中该系统是CAD系统。
GUI 2100可以是典型的类似CAD的接口,其具有标准菜单栏2110、2120以及底部和侧边工具栏2140、2150。这样的菜单栏和工具栏包含一组用户可选择的图标,每个图标与如本领域已知的一个或多个操作或功能相关联。这些图标中的一些与适用于对GUI 2100中显示的3D建模对象2000进行编辑和/或工作的软件工具相关联。软件工具可以被分组到工作台中。每个工作台包含软件工具的子集。特别地,工作台中的一个是编辑工作台,其适用于编辑建模产品2000的几何特征。在操作中,设计者可以例如预先选择对象2000的一部分,然后启动操作(例如,改变尺寸、颜色等)或通过选择适当的图标来编辑几何约束。例如,典型的CAD操作是对在屏幕上显示的3D建模对象的打孔或折叠的建模。GUI可以例如显示与所显示的产品2000相关的数据2500。在该图的示例中,显示为“特征树”的数据2500及其3D表示2000涉及包括制动钳和盘的制动器组件。GUI还可以示出各种类型的图形工具2130、2070、2080,例如,用于促进对象的3D定向、用于触发对已编辑产品的操作的仿真或者渲染所显示的产品2000的各种属性。光标2060可以由触觉设备控制以允许用户与图形工具进行交互。
图21示出了系统的示例,其中系统是诸如用户的工作站之类的客户端计算机系统。
示例的客户端计算机包括连接到内部通信总线1000的中央处理单元(CPU)1010,和同样连接到总线的随机存取存储器(RAM)1070。客户端计算机还设置有图形处理单元(GPU)1110,该图形处理单元(GPU)1110与连接到总线的视频随机存取存储器1100相关联。在本领域中视频RAM1100也被称为帧缓冲器。大容量存储设备控制器1020管理对诸如硬盘驱动器1030之类的大容量存储器设备的访问。适于有形地体现计算机程序指令和数据的大容量存储器设备包括所有形式的非易失性存储器,举例来说包括诸如EPROM、EEPROM以及闪速存储器设备之类的半导体存储器设备;诸如内部硬盘和可移除盘之类的磁盘;磁光盘;以及CD-ROM盘1040。前述任一项可以由专门设计的ASIC(专用集成电路)进行补充或并入其中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如,光标控制设备、键盘等。在客户端计算机中光标控制设备用于允许用户选择性地将光标定位在显示器1080上的任何期望的位置。另外,光标控制设备允许用户选择各种命令并输入控制信号。光标控制设备包括用于向系统输入控制信号的若干信号生成设备。典型地,光标控制设备可以是鼠标,鼠标的按键用于生成信号。可替代地或另外,客户端计算机系统可以包括触敏板和/或触敏屏。
计算机程序可以包括可由计算机执行的指令,该指令包括用于使得上述系统执行模板学习方法、流形学习方法和/或过程的单元。程序可以记录在包括系统的存储器的任何数据存储介质上。例如,可以以数字电子电路,或者以计算机硬件、固件、软件或以其组合来实现程序。程序可以被实现为装置(例如,有形地体现在机器可读存储设备中的产品),以用于由可编程处理器执行。过程/方法步骤(即,模板学习方法、流形学习方法和/或过程的步骤)可以由执行指令的程序的可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行该过程的功能。因此,处理器可以是可编程的,并且耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并向其传送数据和指令。可以以高级过程编程语言或面向对象的编程语言来实现应用程序,或者如果需要则以汇编语言或机器语言来实现应用程序。在任何情况下,语言都可以是编译语言或解释语言。程序可以是完全安装程序或更新程序。在任何情况下将程序应用于系统都会产生用于执行模板学习方法、流形学习方法和/或过程的指令。

Claims (15)

1.一种计算机实现的机器学习方法,所述方法包括:
-提供:
·(S10)包括3D建模对象的数据集,每个3D建模对象表示相应机械零件;以及
·(S400)神经网络的集合,每个神经网络具有相应权重,每个神经网络被配置用于推断3D建模对象;以及
-通过使损失最小化来修改(S420)所述神经网络的相应权重,所述损失针对所述数据集的每个3D建模对象在多个项中选择一个项,每个项对所述3D建模对象与由所述集合中的相应神经网络推断出的相应3D建模对象之间的差异进行惩罚,所选择的项是所述多个项中的对其而言所述差异被最小程度地惩罚的项。
2.根据权利要求1所述的方法,其中,所述3D建模对象与由所述集合中的所述相应神经网络推断出的所述相应3D建模对象之间的所述差异涉及所述3D建模对象与由所述集合中的所述相应神经网络推断出的所述相应3D建模对象之间的距离。
3.根据权利要求2所述的方法,其中,所述距离是表示所述3D建模对象的第一点云与表示由所述集合中的所述相应神经网络推断出的所述相应3D建模对象的第二点云之间的距离。
4.根据权利要求1、2或3所述的方法,其中,每个神经网络被配置用于推断相应基本模板各自到相应3D建模对象的变形,每个相应基本模板是3D建模对象。
5.根据权利要求4所述的方法,其中,每个相应基本模板是表示所述数据集中的子数据集的所述3D建模对象的质心的3D建模对象。
6.根据权利要求4或5所述的方法,其中,所述损失为以下类型:
Figure FDA0002345129560000021
其中:
·
Figure FDA0002345129560000022
是所述神经网络的集合;
·x1,x2,…,xn是所述数据集的3D建模对象;
·S1,S2,…,Sk是所述相应基本模板;并且
·D2(Sj,xi)是涉及3D建模对象xi与由相应神经网络
Figure FDA0002345129560000023
推断出的相应基本模板Sj的变形之间的距离的项。
7.根据权利要求1至6中任一项所述的方法,其中,所述最小化包括迭代以下操作:
-选择所述数据集的3D建模对象的集合;
-针对所选择的集合中的每个3D建模对象,通过奖励所述3D建模对象与由相应神经网络推断出的所述相应3D建模对象之间的所述差异的较小性,将所述相应神经网络分配给所述3D建模对象,每个相应神经网络被分配给所选择的集合中的一个或多个3D建模对象,每个相应神经网络的权重由于所述分配而被修改。
8.根据权利要求1至7中任一项所述的方法,其中,每个相应神经网络是相应自动编码器,所述相应自动编码器包括被配置用于对所述3D建模对象进行所述推断的相应解码器。
9.一种能够根据权利要求1至8中任一项所述的方法获得的神经网络的集合。
10.一种使用根据权利要求9所述的神经网络的集合的计算机实现的方法。
11.根据权利要求10所述的方法,其中,每个神经网络是相应自动编码器,所述相应自动编码器包括被配置用于对所述3D建模对象进行所述推断的相应解码器,所述方法包括:
-提供两个或更多个3D建模对象;
-将所述两个或更多个3D建模对象各自投影到所述神经网络的集合的相应自动编码器的潜在空间上;
-在所述潜在空间上计算投影的两个或更多个3D建模对象之间的一个或多个插值;以及
-向每个计算出的插值应用所述解码器。
12.根据权利要求10所述的方法,其中,每个神经网络是相应自动编码器,所述相应自动编码器包括被配置用于对所述3D建模对象进行所述推断的相应解码器,所述方法包括:
-提供3D建模对象的一部分;
-向所述3D建模对象的所述一部分应用相应自动编码器;以及
-将向所述3D建模对象的所述一部分应用所述相应自动编码器的结果拟合到所述3D建模对象的所述一部分。
13.根据权利要求10所述的方法,其中,每个神经网络是相应自动编码器,所述相应自动编码器包括被配置用于对所述3D建模对象进行所述推断的相应解码器,所述方法包括:
-提供3D建模对象;
-向所述3D建模对象应用一个或多个相应自动编码器;以及
-基于所述应用来选择相应自动编码器。
14.一种计算机程序,包括用于执行根据权利要求1至8中任一项所述的方法和/或根据权利要求10至13中任一项所述的方法的指令。
15.一种设备,包括其上记录有根据权利要求9所述的两个或更多个相应神经网络的集合和/或根据权利要求14所述的计算机程序的数据存储介质,所述设备可选地还包括耦合到所述数据存储介质的处理器。
CN201911391624.XA 2018-12-29 2019-12-30 神经网络的集合 Pending CN111382541A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP18306883.2A EP3674984B1 (en) 2018-12-29 2018-12-29 Set of neural networks
EP18306883.2 2018-12-29

Publications (1)

Publication Number Publication Date
CN111382541A true CN111382541A (zh) 2020-07-07

Family

ID=65200558

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911391624.XA Pending CN111382541A (zh) 2018-12-29 2019-12-30 神经网络的集合

Country Status (4)

Country Link
US (1) US11562207B2 (zh)
EP (1) EP3674984B1 (zh)
JP (1) JP7491685B2 (zh)
CN (1) CN111382541A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111986106A (zh) * 2020-07-30 2020-11-24 南京大学 一种基于神经网络的高动态图像重建方法
CN112233188A (zh) * 2020-10-26 2021-01-15 南昌智能新能源汽车研究院 一种基于激光雷达的车顶全景相机及其标定方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3671660A1 (en) * 2018-12-20 2020-06-24 Dassault Systèmes Designing a 3d modeled object via user-interaction
EP3674984B1 (en) * 2018-12-29 2024-05-15 Dassault Systèmes Set of neural networks
US11157772B2 (en) * 2019-10-28 2021-10-26 Element Ai Inc. System and method for generating adversarial examples
WO2022005158A1 (en) * 2020-07-03 2022-01-06 Samsung Electronics Co., Ltd. Electronic device and controlling method of electronic device
US11468634B2 (en) * 2020-10-28 2022-10-11 Autodesk, Inc. Machine learning techniques for generating designs for three-dimensional objects
US11694415B2 (en) 2020-10-28 2023-07-04 Autodesk, Inc. Techniques for training a machine learning model to modify portions of shapes when generating designs for three-dimensional objects
CN112734913B (zh) * 2021-01-13 2022-10-04 北京航空航天大学 一种基于多阶段变形重构的三维模型球表达计算方法
JP7108329B1 (ja) * 2021-02-15 2022-07-28 リンクウィズ株式会社 情報処理方法、情報処理システム、プログラム
WO2022208143A1 (en) * 2021-03-30 2022-10-06 Sensetime International Pte. Ltd. Generating point cloud completion network and processing point cloud data
EP4120203A1 (en) * 2021-07-16 2023-01-18 Dassault Systèmes Segmenting a 3d modeled object representing a mechanical assembly
FR3136296A1 (fr) * 2022-06-03 2023-12-08 Psa Automobiles Sa Procédé et dispositif de codage d’un modèle tridimensionnel d’un véhicule
CN114925584B (zh) * 2022-07-21 2022-09-20 华中科技大学 变向锻造成形的金属晶粒尺寸和取向的智能协同调控方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3188033B1 (en) * 2015-12-31 2024-02-14 Dassault Systèmes Reconstructing a 3d modeled object
US11144889B2 (en) 2016-04-06 2021-10-12 American International Group, Inc. Automatic assessment of damage and repair costs in vehicles
US10430922B2 (en) * 2016-09-08 2019-10-01 Carnegie Mellon University Methods and software for generating a derived 3D object model from a single 2D image
EP3293705B1 (en) 2016-09-12 2022-11-16 Dassault Systèmes 3d reconstruction of a real object from a depth map
US10281902B2 (en) * 2016-11-01 2019-05-07 Xometry, Inc. Methods and apparatus for machine learning predictions of manufacture processes
EP3599575B1 (en) * 2017-04-27 2023-05-24 Dassault Systèmes Learning an autoencoder
US10234848B2 (en) 2017-05-24 2019-03-19 Relativity Space, Inc. Real-time adaptive control of additive manufacturing processes using machine learning
US20190005195A1 (en) * 2017-06-28 2019-01-03 General Electric Company Methods and systems for improving care through post-operation feedback analysis
US10733755B2 (en) * 2017-07-18 2020-08-04 Qualcomm Incorporated Learning geometric differentials for matching 3D models to objects in a 2D image
US11345040B2 (en) * 2017-07-25 2022-05-31 Mbl Limited Systems and methods for operating a robotic system and executing robotic interactions
US10751548B2 (en) * 2017-07-28 2020-08-25 Elekta, Inc. Automated image segmentation using DCNN such as for radiation therapy
US10818019B2 (en) * 2017-08-14 2020-10-27 Siemens Healthcare Gmbh Dilated fully convolutional network for multi-agent 2D/3D medical image registration
US20190087544A1 (en) * 2017-09-21 2019-03-21 General Electric Company Surgery Digital Twin
US11274929B1 (en) * 2017-10-17 2022-03-15 AI Incorporated Method for constructing a map while performing work
US10769411B2 (en) * 2017-11-15 2020-09-08 Qualcomm Technologies, Inc. Pose estimation and model retrieval for objects in images
CN111615706A (zh) * 2017-11-17 2020-09-01 脸谱公司 基于子流形稀疏卷积神经网络分析空间稀疏数据
HK1253750A2 (zh) * 2018-07-04 2019-06-28 Bun Kwai 用於將3d掃描對象轉換為化身的方法和裝置
US10984894B2 (en) * 2018-12-27 2021-04-20 Ge Healthcare Limited Automated image quality control apparatus and methods
EP3674984B1 (en) * 2018-12-29 2024-05-15 Dassault Systèmes Set of neural networks
EP3674983A1 (en) * 2018-12-29 2020-07-01 Dassault Systèmes Machine-learning for 3d modeled object inference
EP3675062A1 (en) * 2018-12-29 2020-07-01 Dassault Systèmes Learning a neural network for inference of solid cad features
EP3675063A1 (en) * 2018-12-29 2020-07-01 Dassault Systèmes Forming a dataset for inference of solid cad features

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111986106A (zh) * 2020-07-30 2020-11-24 南京大学 一种基于神经网络的高动态图像重建方法
CN111986106B (zh) * 2020-07-30 2023-10-13 南京大学 一种基于神经网络的高动态图像重建方法
CN112233188A (zh) * 2020-10-26 2021-01-15 南昌智能新能源汽车研究院 一种基于激光雷达的车顶全景相机及其标定方法
CN112233188B (zh) * 2020-10-26 2024-03-12 南昌智能新能源汽车研究院 一种激光雷达和全景相机的数据融合系统的标定方法

Also Published As

Publication number Publication date
JP7491685B2 (ja) 2024-05-28
US11562207B2 (en) 2023-01-24
JP2020115337A (ja) 2020-07-30
US20200210814A1 (en) 2020-07-02
EP3674984B1 (en) 2024-05-15
EP3674984A1 (en) 2020-07-01

Similar Documents

Publication Publication Date Title
JP7464387B2 (ja) 3dモデル化オブジェクト推定のための機械学習
JP7491685B2 (ja) ニューラルネットワークのセット
JP7473335B2 (ja) ソリッドcadフィーチャを推測するためのニューラルネットワークの学習
JP7473336B2 (ja) ソリッドcadフィーチャを推測するためのニューラルネットワークの学習
JP2019003615A (ja) オートエンコーダの学習
JP7428516B2 (ja) 編集可能なフィーチャツリーの推測のためにニューラルネットワークを学習すること
JP7431028B2 (ja) ユーザインタラクションを介した3dモデルオブジェクトのデサイニング
JP2022036024A (ja) パラメータ化された3dモデルを出力するニューラルネットワーク
JP2018109948A (ja) パラメトリックビュー関数に基づくデータベースの照会
CN111381919A (zh) 形成用于推断可编辑特征树的数据集
US11893687B2 (en) Segmenting a 3D modeled object representing a mechanical assembly
US20210264079A1 (en) Determining a 3d modeled object deformation
CN113205609A (zh) 变形基础学习
CN115374546A (zh) Cad模型参数化
JP2022184829A (ja) 3d形状最適化のためのディープパラメータ化
JP2022036023A (ja) 3dモデルを出力する変分オートエンコーダ
EP4057222B1 (en) Machine-learning for 3d segmentation
JP2022119713A (ja) 副次的な3d変形の学習

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