CN114611223A - 深度学习生成模型 - Google Patents
深度学习生成模型 Download PDFInfo
- Publication number
- CN114611223A CN114611223A CN202111119857.1A CN202111119857A CN114611223A CN 114611223 A CN114611223 A CN 114611223A CN 202111119857 A CN202111119857 A CN 202111119857A CN 114611223 A CN114611223 A CN 114611223A
- Authority
- CN
- China
- Prior art keywords
- mechanical part
- modeled object
- deep learning
- modeled
- descriptor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/17—Mechanical parametric or variational design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/06—Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开特别涉及一种用于训练深度学习生成模型的计算机实现方法,该模型被配置为输出均表示机械零件或机械零件组装件的3D建模对象。该方法包括提供3D建模对象的数据集并基于该数据集训练深度学习生成模型。训练包括最小化损失。损失包括一项,该项针对每个输出的相应3D建模对象,惩罚相应3D建模对象的一个或多个功能分数。每个功能分数衡量机械零件或机械零件组装件对于一个或多个功能描述符之中的相应功能描述符的不尊重程度。这形成了关于输出3D建模对象的改进解决方案,每个3D建模对象都代表机械零件或机械零件组装件。
Description
技术领域
本公开涉及计算机程序和系统领域,并且更具体地说,涉及与深度学习生成模型有关的方法、设备和程序,该模型输出均表示机械零件或机械零件组装件的3D建模对象。
背景技术
市场上提供了许多用于对象的设计、工程和制造的系统和程序。CAD是计算机辅助设计的首字母缩略词,例如它涉及用于设计对象的软件解决方案。CAE是计算机辅助工程的缩写,例如它涉及用于模拟未来产品的物理行为的软件解决方案。CAM是计算机辅助制造的首字母缩略词,例如它涉及用于定义制造过程和操作的软件解决方案。在这种计算机辅助设计系统中,图形用户界面在技术效率方面起着重要的作用。这些技术可能嵌入在产品生命周期管理(PLM)系统中。PLM指的是一种商业战略,帮助企业共享产品数据,应用通用流程,并利用企业知识进行从概念到产品生命尽头的跨越扩展企业概念的产品开发。达索系统(Dassault Systèmes)(以CATIA、ENOVIA和DELMIA为商标)提供的PLM解决方案提供了一个组织产品工程知识的工程中心、一个管理制造工程知识的制造中心和一个使企业集成和连接工程和制造中心的企业中心。整个系统提供了一个开放的对象模型,连接产品、流程和资源,实现动态的、基于知识的产品创建和决策支持,从而推动优化的产品定义、制造准备、生产和服务。
在这种背景下和其他背景下,深度学习并且特别是3D建模对象的深度学习生成模型越来越重要。
以下论文与该领域相关,并在下文中引用:
·[1]Oliver Van Kaick,Hao Zhang,Ghassan Hamarneh,and Daniel Cohen-Or.A survey on shape correspondence.CGF,2011.
·[2]Johan WH Tangelder and Remco C Veltkamp.A survey of contentbased 3d shape retrieval methods.Multimedia tools and applications,39(3):441–471,2008.
·[3]Wayne E Carlson.An algorithm and data structure for 3d objectsynthesis using surface patch intersections.In SIGGRAPH,1982.
·[4]J.Wu,C.Zhang,T.Xue,W.T.Freeman,J.B.Tenenbaum.Learning aProbabilistic Latent Space of Object Shapes via 3D Generative-AdversarialModeling,2016.
·[5]Siddhartha Chaudhuri,Daniel Ritchie,Jiajun Wu,Kai Xu,HaoZhang.Learning Generative Models of 3D Structures.EUROGRAPHICS 2020.
·[6]R.B.Gabrielsson,V.Ganapathi-Subramanian,P.Skraba,andL.J.Guibas.Topology-Layer for Machine Learning,2019.
·[7]Erwin Coumans and Yunfei Bai.Pybullet.A python module forphysics simulation for games,robotics and machine learning.http://pybullet.org,2016-2019.
·[8]Rundi Wu,Yixin Zhuang,Kai Xu Hao Zhang,Baoquan Chen.PQ-NET:AGenerative Part Seq2Seq Network for 3D Shapes.CVPR 2020.
·[9]Qi,C.R.,Su,H.,Mo,K.,&Guibas,L.J.PointNet:Deep learning on pointsets for 3D classification and segmentation.CVPR,2017.
论文[1,2,3]涉及通过借用和组合来自3D对象的现有遗产(例如数据集)的部分来检索和合成新形状的方法。生成方法(generative method)已经证明了它们合成3D建模对象的潜力(即,提出超越组合和检索现有遗产的新内容),从而提出概念上新颖的对象。现有技术生成方法学习和应用3D内容的生成模型[4,5],仅关注3D建模对象的几何或结构特征。论文[4]介绍了一个模型,它是一个生成解码器,它将噪声样本(例如,均匀或高斯)映射到体素网格作为输出,输出的分布接近数据生成分布的分布。论文[5]调查了学习了解数据结构的3D生成模型,例如,3D建模对象形状各部分之间的排列和关系。
然而,仍然需要关于输出均表示机械零件或机械零件组装件的3D建模对象的改进的解决方案。
发明内容
因此,提供了一种用于训练深度学习生成模型的计算机实现方法,该模型输出3D建模对象,每个3D建模对象表示机械零件或机械零件组装件。该训练方法包括:提供3D建模对象的数据集。每个3D建模对象表示机械零件或机械零件组装件。该训练方法还包括基于所述数据集训练所述深度学习生成模型。所述深度学习生成方法的训练包括最小化损失。所述损失包括一项,该项对于每个输出的相应3D建模对象惩罚相应3D建模对象的一个或多个功能分数。每个功能分数衡量所述机械零件或机械零件组装件对于一个或多个功能描述符中的相应功能描述符的不尊重程度。
训练方法可以包括以下一项或多项:
·损失还包括另一项,该另一项对于每个输出的相应3D建模对象惩罚相应3D建模对象相对于数据集的形状不一致。
·该另一项包括:
-相应3D建模对象和数据集的对应地面真值(ground truth)3D建模对象之间的重构损失;
-相对于所述数据集的对抗性损失(adversarial loss);或者
-映射距离,其衡量相应3D建模对象和数据集的对应建模对象之间的形状差异。
·深度学习生成模型包括3D生成神经网络。
·3D生成神经网络包括变分自动编码器或生成对抗网络。
·深度学习生成模型包括以下之一:
-所述3D生成神经网络,其中,所述3D生成模型包括变分自动编码器,所述另一项包括重构损失和变分损失;
-所述3D生成神经网络,其中,所述3D生成模型包括生成对抗网络,所述另一项包括对抗性损失;或者
-映射模型,后跟所述3D生成神经网络,所述3D生成神经网络经过预训练,所述另一项包括映射距离,所述3D生成神经网络可选地包括变分自动编码器或生成对抗网络。
·训练包括针对每个相应3D建模对象计算所述3D建模对象的功能分数,通过将以下各项中的一项或多项应用于所述3D建模对象来执行所述计算:
-确定性函数;
-基于模拟的引擎;或者
-深度学习函数。
·该计算由深度学习函数执行,该深度学习函数已经在另一个数据集的基础上被训练,所述另一个数据集包括各自与相应功能分数相关联的3D对象,所述相应功能分数已通过使用以下各项中的一项或多项计算得出:
-确定性函数;
-基于模拟的引擎;或者
-深度学习函数。
·一个或多个功能描述符包括连接性描述符(connectivity descriptor)。
·一个或多个功能描述符包括:
-一个或多个几何描述符;和/或
-一个或多个可供性(affordance)。
·一个或多个几何描述符包括:
-物理稳定性描述符,物理稳定性描述符表示,对于机械零件或机械零件组装件,该机械零件或机械零件组装件仅在重力的施加下的稳定性;和/或
-耐久性描述符,所述耐久性描述符表示对于机械零件或机械零件组装件,该机械零件或机械零件组装件承受重力和机械外力的施加的能力。
·一种或多种可供性包括:
-支撑可供性描述符,支撑可供性描述符表示,对于机械零件或机械零件组装件,该机械零件或机械零件组装件仅承受机械外力的施加的能力;和/或
-阻力系数描述符,所述阻力系数描述符表示,对于机械零件或机械零件组装件,流体环境对所述机械零件或机械零件组装件的影响;
-包含可供性描述符(contain affordance descriptor),所述包含可供性描述符表示,对于机械零件或机械零件组装件,所述机械零件或机械零件组装件在机械零件的内部体积中包含另一个对象的能力;
-保持可供性描述符(holding affordance descriptor),所述保持可供性描述符表示,对于机械零件或机械零件组装件,所述机械零件或机械零件组装件经由机械连接支撑另一个对象的能力;和/或
-悬挂可供性描述符,所述悬挂可供性描述符表示,对于机械零件或机械零件组装件,所述机械零件或机械零件组装件通过机械连接得到支撑的能力。
·数据集的每个3D建模对象表示:
-一件家具;
-机动车辆;
-非机动车辆;或者
-工具。
还提供了一种使用深度学习生成模型的方法,该深度学习生成模型输出均代表机械零件或机械零件组装件的3D建模对象,并根据该训练方法被训练(即,已被训练)。使用方法包括提供深度学习生成模型,并应用深度学习生成模型来输出一个或多个3D建模对象,每个3D建模对象表示相应的机械零件或机械零件组装件。
还提供了一种包括训练方法机器学习过程,以及然后使用的方法。
还提供了一种包括用于执行训练方法、使用方法和/或机器学习过程的指令的计算机程序。
还提供了一种设备,包括其上记录有程序和/或经过训练的深度学习生成模型的数据存储介质。该设备可以形成非暂时性计算机可读介质。该设备可以可替代地包括耦合到数据存储介质的处理器。该设备因此可以形成系统。该系统还可以包括耦合到处理器的图形用户界面。
附图说明
现在将通过非限制性示例并参考附图描述本公开的实施例,其中:
-图1示出了训练方法的流程图;
-图2示出了系统的图形用户界面的示例;
-图3示出了系统的示例;
-图4至图16示出了训练方法、使用方法和/或机器学习过程。
具体实施方式
参考图1,提供了一种用于训练深度学习生成模型的计算机实现的方法。深度学习生成模型被配置为输出3D建模对象。每个3D建模对象代表一个机械零件或机械零件组装件。训练方法包括提供S10 3D建模对象的数据集。数据集的每个3D建模对象代表一个机械零件或机械零件组装件。训练方法还包括基于数据集训练S20深度学习生成模型。训练S20包括最小化损失。损失包括针对每个输出的相应3D建模对象惩罚该相应3D建模对象的一个或多个功能分数的一项。每个功能分数衡量机械零件或机械零件组装件对于一个或多个功能描述符中的相应功能描述符的不尊重程度。
该训练方法构成了关于输出均代表机械零件或机械零件组装件的3D建模对象的改进的解决方案。
值得注意的是,该训练方法允许获得被配置为输出3D建模对象的生成模型。生成模型允许自动生成(即输出或合成)一个或多个3D建模对象,从而改善3D建模领域的人体工程学(ergonomics)。此外,训练方法基于在S10处提供的数据集,经由训练S20获得生成模型,并且生成模型为深度学习生成模型。因此,训练方法利用了机器学习领域提供的改进。特别地,深度学习生成模型可以学习复制数据集中存在的各种3D建模对象的数据分布,并基于学习输出3D建模对象。
此外,在预期的上下文内,就所表示的现实世界中的机械零件或机械零件组装件的用途或目的特性而言,深度学习生成模型输出特别准确的3D建模对象。这要归功于包括最小化特定损失的训练S20。损失具体包括针对每个输出的相应3D建模对象惩罚该相应3D建模对象的一个或多个功能分数的一项。在被包括在损失中该特定项内,深度学习生成模型被教导输出一个3D对象,该对象满足由一个或多个功能分数衡量的功能有效性。实际上,每个功能分数衡量机械零件或机械零件组装件对于一个或多个功能描述符中相应功能描述符的不尊重程度。在示例中,此类功能描述符可以涉及与形状、结构或所表示的机械零件或机械零件组装件与预期上下文内的其他对象或机械力的任何类型的交互相关的任何提示。因此,学习S20可以评估数据集的3D建模对象在预期上下文中的功能有效性,例如,在预期上下文中的形状或结构健全性(soundness)、物理可实现性和交互质量方面。因此,深度学习生成模型输出功能有效的特别准确的3D建模对象。
此外,训练S20可以探索数据集的3D建模对象的功能特征。在示例中,除了所述3D对象的几何和结构特征之外,训练S20还可以探索所述3D对象的几何、结构、拓扑和物理特征之间的相互依赖。此外,训练S20可以用于输出改进或校正数据集的相应3D建模对象的功能的3D建模对象,从而提高输出的3D建模对象相对于数据集的准确性。
本文中的任何方法都是计算机实现的。这意味着训练方法的所有步骤(包括S10和S20)和使用方法的所有步骤都由至少一台计算机或任何类似系统执行。因此,该方法的步骤由计算机执行,可能是全自动的,或半自动的。在示例中,该方法的至少一些步骤的触发可以通过用户-计算机交互来执行。所需的用户-计算机交互的级别可能取决于所预见的自动化程度,并与实现用户愿望的需要保持平衡。在示例中,该级别可以是用户定义的和/或预定义的。
本文方法的计算机实现的典型示例用于利用适用于此目的的系统执行该方法。该系统可以包括耦合到存储器和图形用户界面(GUI)的处理器,该存储器上记录有计算机程序,该计算机程序包括用于执行该方法的指令。存储器还可以存储数据库。该存储器是适合于这种存储的任何硬件,可能包括几个物理上不同的部分(例如,一个用于程序,而可能一个用于数据库)。
建模对象是由存储(例如在数据库中)的数据定义的任何对象。引申地,表述“建模对象”指的是数据本身。根据系统的类型,建模对象可以由不同种类的数据定义。该系统实际上可以是CAD系统、CAM系统、PDM系统和/或PLM系统的任何组合。在那些不同的系统中,建模对象由对应的数据定义。因此人们可以说CAD对象、PLM对象、PDM对象、CAE对象、CAM对象、CAD数据、PLM数据、PDM数据、CAM数据、CAE数据。然而,这些系统并不是相互排斥的,因为建模对象可以由对应于这些系统的任意组合的数据来定义。因此,一个系统很可能既是CAD系统又是PLM系统。
CAD系统还意味着至少适用于基于建模对象的图形表示设计建模对象的任何系统,例如CATIA。在这种情况下,定义建模对象的数据包括允许表示建模对象的数据。例如,CAD系统可以使用边或线(在某些情况下使用面或表面)来提供CAD建模对象的表示。建模对象的规范可以存储在单个CAD文件或多个CAD文件中。代表CAD系统中建模对象的文件的典型大小在每个零件1兆字节的范围中。建模对象通常可能是由数千个零件的组装件。
在CAD的上下文中,建模对象通常可以是3D建模对象。所谓“3D建模对象”,是指通过允许其3D表示的数据建模的任何对象。3D表示允许从所有角度查看零件。例如,一个3D建模对象,当以3D表示时,可以被处理并绕其任何轴转动,或绕在其上显示该表示的屏幕中的任何轴转动。
本文中的任何3D建模对象(包括由深度学习生成模型输出的任何3D建模对象)都可以表示要在现实世界中制造的产品的几何形状,例如(例如机械)零件或零件组装件(或等同地,一个零件组装件,因为从训练方法的角度来看,零件组装件可以被视为零件本身,或者训练方法可以独立应用于组装件的每个零件),或更一般地任何刚体组装件(例如移动机构)。因此,任何所述3D建模对象可以表示工业产品,其可以是任何机械零件,例如机动或非机动地面车辆(包括例如,汽车和轻型卡车设备、赛车、摩托车、卡车和机动车设备、卡车和公共汽车、火车)的一部分,飞行器(包括例如机身设备、航空航天设备、推进设备、国防产品、航空设备、航天设备)的一部分,海上载具(包括例如海军设备、商用船、海上设备、游艇和工作船、船舶设备)的一部分,通用机械零件(包括例如工业制造机械、重型移动机械或设备、安装的设备、工业设备产品、金属制品、轮胎制品),机电或电子零件(包括例如消费者电子产品、安全和/或控制和/或仪器产品、计算和通信设备、半导体、医疗设备和装备),消费品(包括例如家具、家居和花园产品、休闲用品、时尚产品、硬商品零售商的产品、软商品零售商的产品),包装(包括例如食品和饮料和烟草、美容和个人护理、家用产品包装)。任何所述3D建模对象(包括由深度学习生成模型输出的任何3D建模对象)随后可以作为虚拟设计的一部分与例如CAD软件解决方案或CAD系统集成。CAD软件解决方案允许对各种且不受限的工业领域的产品进行后续设计,这些工业领域包括:航空航天、建筑、建造、消费品、高科技设备、工业设备、运输、海洋和/或海上石油/天然气生产或运输。
所谓PLM系统,还意味着适用于管理代表物理制造产品(或要制造的产品)的建模对象的任何系统。在PLM系统中,建模对象因此由适合于制造物理对象的数据定义。这些通常可以是尺寸值和/或公差值。为了正确制造对象,具有这样的值确实更好。
所谓CAM解决方案,还意味着适用于管理产品的制造数据的任何解决方案、软件或硬件。制造数据通常包括与要制造的产品、制造过程和所需资源相关的数据。CAM解决方案用于规划和优化产品的整个制造过程。例如,它可以向CAM用户提供有关制造过程的可行性、持续时间或资源数量的信息,例如在制造过程的特定步骤中可能使用的特定机器人;并且因此允许对管理或所需的投资做出决策。CAM是CAD过程和潜在CAE过程之后的后续过程。此类CAM解决方案由Dassault Systèmes以商标提供。
图2示出了该系统的GUI的示例,其中,该系统是CAD系统,其可以用于显示和/或设计(例如,编辑)深度学习生成模型输出的并且已经被集成为虚拟设计的一部分的任何3D建模对象。
GUI 2100可以是典型的类似CAD的界面,具有标准菜单栏2110、2120以及底部工具栏2140、和侧边工具栏2150。这样的菜单和工具栏包含一组用户可选择的图标,每个图标与如本领域已知的一种或多种操作或功能相关联。这些图标中的一些与软件工具相关联,适用于编辑和/或工作于GUI2100中显示的3D建模对象2000。软件工具可以分组到工作台中。每个工作台都包括软件工具的子集。特别地,其中,工作台之一是编辑工作台,适合于编辑被建模产品2000的几何特征。在操作中,设计者可以例如预先选择对象2000的一部分,并且然后发起操作(例如改变尺寸、颜色等)或通过选择适当的图标来编辑几何约束。例如,典型的CAD操作是对屏幕上显示的3D建模对象的冲压或折叠进行建模。GUI可以例如显示与显示的产品2000相关的数据2500。在图中的示例中,显示为“特征树”的数据2500及其3D表示2000涉及包括制动钳和制动盘的制动组装件。GUI可以进一步示出各种类型的图形工具2130、2070、2080,例如用于促进对象的3D朝向、用于触发对编辑产品的操作的模拟或呈现所显示产品2000的各种属性。光标2060可以由触觉设备控制以允许用户与图形工具交互。
图3示出了系统的示例,其中,该系统是客户端计算机系统,例如用户的工作站。
该示例的客户计算机包括连接至内部通信总线1000的中央处理单元(CPU)1010、也连接至总线的随机存取存储器(RAM)1070。客户端计算机还被提供有图形处理单元(GPU)1110,其与连接到总线的视频随机存取存储器1100相关联。视频RAM 1100在本领域中也称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储设备(例如硬盘驱动器1030)的访问。适合于有形地体现计算机程序指令和数据的大容量存储设备包括所有形式的非易失性存储器,包括例如半导体存储器设备,例如EPROM,EEPROM和闪存设备;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM盘1040。上述任何一项可以通过专门设计的ASIC(专用集成电路)进行补充或合并于其中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如光标控制设备、键盘等。在客户端计算机中使用光标控制设备以允许用户将光标选择性地定位在显示器1080上的任何期望位置处。此外,光标控制设备允许用户选择各种命令并输入控制信号。光标控制设备包括多个信号生成设备,用于将控制信号输入到系统。通常,光标控制设备可以是鼠标,该鼠标的按钮用于生成信号。可替代地或附加地,客户计算机系统可以包括敏感垫和/或敏感屏幕。
计算机程序可以包括可由计算机执行的指令,该指令包括用于使上述系统执行任何方法的单元。该程序可以是可记录在任何数据存储介质上的,包括系统的存储器。该程序可以例如以数字电子电路或计算机硬件、固件、软件或它们的组合来实现。该程序可以被实现为装置,例如有形地体现在机器可读存储设备中以由可编程处理器执行的产品。方法步骤可以通过可编程处理器执行指令程序以通过对输入数据进行操作并生成输出来执行该方法的功能来执行。因此,处理器可以是可编程的并且被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向数据存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。如果期望,则可以以高级过程或面向对象的编程语言或以汇编或机器语言来实现应用程序。在任何情况下,该语言都可以是编译语言或解释语言。该程序可以是完整的安装程序或更新程序。在任何情况下,程序在系统上的应用都会得到执行本文中的任何方法的指令。
根据训练方法训练的深度学习生成模型可以是用于设计3D建模对象的过程的一部分。“设计3D建模对象”指的是任何动作或一系列动作,其至少是细化3D建模对象的过程的一部分。例如,该过程可以包括应用深度学习生成模型来输出一个或多个3D建模对象,并且可选地执行对每个相应的输出的3D建模对象的一个或多个设计修改。该过程可以包括显示每个相应输出的3D建模对象的图形表示,并且可选的一个或多个设计修改可以包括用CAD软件应用CAD操作,例如通过用户图形交互。
设计可以包括使用根据用于从头开始创建3D建模对象的训练方法训练的深度学习生成模型,从而改进设计过程的人体工程学。实际上,用户不需要使用繁琐的工具从头开始创建3D建模对象,并且可以专注于设计过程中的其他任务。可替代地,设计可以包括向根据训练方法训练的深度学习生成模型提供3D建模对象(之前已经被创建)。深度学习生成模型可以将输入建模对象映射到输出3D建模对象,并对深度学习生成模型的所述输出3D建模对象进行后续设计。就功能(functionality)而言,输出3D建模对象比输入3D建模对象更准确。换言之,深度学习生成模型可以用于校正或改进/优化输入3D建模对象,从功能上讲,以产生改进的设计过程。输入3D建模对象可能在几何上是逼真的,但在功能上无效或未优化。在这种情况下的使用该方法可以补救这个问题。
设计过程可以被包括在制造过程中,该制造过程可以包括在执行设计过程之后产生与建模对象相对应的物理产品。在任何情况下,由该方法设计的建模对象可以代表制造对象。因此,建模对象可以是建模实体(modeled solid)(即表示实体的建模对象)。制造对象可以是产品,例如零件或零件的组装件。由于深度学习生成模型改进了对建模对象进行细化的设计过程,因此深度学习生成模型也改进了产品的制造,并且因此提高了制造过程的生产率。
所谓“深度学习模型”是指表示一系列计算的任何数据结构,其中,所述数据结构的至少一部分可以基于3D建模对象的数据集进行训练。可以通过从机器学习领域(特别是深度学习领域内)已知的任何一组技术的方式执行训练。经过训练的深度学习模型(即已经基于3D建模对象的数据集进行了训练)是“生成的(generative)”,即被配置为生成和输出一个或多个3D对象。在示例中,深度学习生成模型可以包括变分自动编码器或生成对抗网络,和/或任何其他神经网络(例如,卷积神经网络、循环神经网络、判别模型(Discriminative Model))。在此类示例中,在关于几何形状至少一定程度的准确性的情况下,深度学习生成模型可以生成一系列合成的3D对象。
损失的最小化可以以任何方式执行,例如梯度下降,或本领域内已知的任何其他最小化。损失包括针对每个输出的相应3D建模对象惩罚该相应3D建模对象的一个或多个功能分数的一项。
所谓“功能分数”是指任何这样的指示符(例如,数字、向量):其从属于每个对象并且衡量机械零件或机械零件组装件对于在一个或多个功能描述符中的相应功能描述符的不尊重程度。按照惯例,较低的功能分数可能表示更好地符合(或尊重)相应的功能描述符。
所谓“功能描述符”是指3D建模对象的任何功能属性,即表征(即表示)所表示的现实世界对象(机械零件或机械零件组装件)的物理功能的特征。所谓物理功能是指(现实世界对象)具有功能性的质量(即所代表的现实世界对象的以此方式执行或能够以此方式执行的能力)被假定在使用的物理上下文内,即其用途或目的。物理功能可以是所表示的现实世界对象拥有的并且可能受物理交互影响的物理属性。这样的物理属性可以包括,例如,所表示的真实世界对象的导电性、导热性、流体环境中的阻力、密度、刚度、弹性变形、韧性、弹性。物理交互可以是与另一个机械对象或多个对象的交互,或者影响所表示的现实世界对象的物理属性的环境刺激(environmental stimuli)的存在。环境刺激可以是来自预期环境的至少一部分的任何物理输入(所表示的对象的输入),例如来自该环境或包括流体流的环境的热源。物理功能可以是机械功能。机械功能可以是所表示的现实世界对象具有的并且可能在机械交互下受到影响的空间结构和机械健全性的属性。所表示对象的空间结构和机械健全性的属性可以包括所表示的现实世界对象的组件的连接性、所表示的现实世界对象在使用时的稳定性、耐久性或所表示的现实世界对象受机械相互作用时的任何可供性。所述机械交互可以包括所表示的对象与其他机械对象和/或外部机械刺激的任何机械交互。所表示对象与其他机械对象的机械交互的示例可以包括碰撞(包括例如与其他对象的任何类型的冲击和/或与其他对象的任何类型的摩擦)、封闭体积内的另一个对象的争用、支撑另一个对象、保持(hold)另一个对象、或经由机械连接悬挂。所表示对象的所述机械交互可以包括所表示对象上的运动(motion)的机械约束,例如,运动的静态或动态约束。所述机械交互还可以包括所表示的对象对外部机械刺激的任何机械响应。外部机械刺激可以由对所表示的对象施加机械力组成,例如,从静止状态变为运动状态的力、应力或振动力的施加。功能描述符可能涉及多个物理或机械功能,它们可以组合在单维描述符中或作为多维向量。
因此,功能分数量化所表示的现实世界对象拥有与其用途或目的相关的物理功能的程度,如由一个或多个功能描述符中的相应功能描述符所表示的。因此,损失对关于所表示的现实世界对象的用途或目的特性不具有良好一致性的输出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模型的准确性。
变分自动编码器由两部分组成:编码器和解码器。编码器接受输入并输出分布概率。解码器根据编码器输出的分布在给定样本的情况下重构输入。例如,可以将分布设置为高斯分布,使得编码器输出两个相同大小的向量,例如表示分布概率的均值和方差,并且解码器基于分布重构输入。变分自动编码器是精油与变分损失和重构损失联合训练编码器和解码器来训练的。
生成对抗网络(以下也称为GAN)由两个网络组成:生成器和鉴别器。生成器将低维潜在变量作为输入,该变量从高斯分布中采样。生成器的输出可以是与训练数据集(例如,经典GAN)内的数据或潜在空间(例如,潜在GAN)内的数据相同类型的样本。可以使用鉴别器来训练生成器,该鉴别器被训练为在两个类别(“真实”或“虚假”)之间对其输入执行二元分类。如果它来自训练数据集,它的输入必须归类为“真实”,如果它来自生成器,则必须归类为“虚假”。在训练阶段期间,在鉴别器被训练执行其二元分类任务的同时,生成器被训练以通过产生被鉴别器分类为“真实”的样本来“愚弄”鉴别器。为了联合训练两个网络,GAN可以通过对抗性损失进行训练。
3D生成神经网络可以可替代地包括来自多个3D生成神经网络的一个,多个3D生成神经网络包括可以基于变分自动编码器和生成对抗网络构建的混合生成网络。
深度学习生成模型可能由3D生成神经网络组成。因此,学习方法在基于机器学习的优化期间训练3D生成神经网络的所有元素。
在这种情况下,3D生成神经网络可能包括变分自动编码器,而另一项可以包括重构损失和变分损失。因此,根据训练方法训练的深度学习生成模型将变分自动编码器的编码器和解码器一起训练,同时最小化功能分数。因此,深度学习生成模型输出功能有效的3D建模对象,同时利用变分自动编码器的优点。这些优点包括,例如,从潜在空间采样和插值(或对潜在空间执行其他类型的算术)两个潜在向量表示,并基于所述插值输出功能性3D建模对象,这要归功于根据训练方法训练的解码器。
作为变分自动编码器的替代,3D生成神经网络可以包括生成对抗网络,而另一个项可以包括对抗性损失。对抗性损失可以是任何类型的,例如鉴别器损失、最小-最大损失、非饱和损失。因此,深度学习生成模型输出功能有效的3D建模对象,同时利用生成对抗网络的优点。
根据该方法训练的深度学习生成模型可以在用于合成3D建模对象的方法内使用(即,从头开始创建3D建模对象),该3D建模对象随后可以被集成为设计过程的一部分,特别是在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建模对象输出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对象遗产(patrimony),其特征是对功能要求的高度异构的依从性(very heterogeneous compliance)。
因此,训练方法可以至少利用确定性函数、模拟引擎和/或深度学习函数、或这样的计算工具的组合来计算功能分数。在示例中,通过使用计算出的功能分数作为注释,训练可以使用数据集的每个3D建模对象的功能有效性来扩充3D建模对象的数据集。
参考图4,其中,提供了用于计算与3D建模对象的特定类别相对应的功能分数的计算工具的示例。在S10处提供的数据集可以包括这些特定类别中的一个或多个的任意组合的3D模型对象,并且在S20处的一个或多个功能分数可以包括针对每个特定类别的一个或多个(例如,所有)在表中所示的功能描述符,可选地按表中所示计算。
以下文献在下文中被引用:
·[10]Hongtao Wu&al.Is That a Chair?Imagining Affordances UsingSimulations of an Articulated Human Body.ICRA 2020.
·[11]Dule Shu&al.3D Design Using Generative Adversarial Networks andPhysics-Based Validation.2019.
·[12]Mihai Andries&al.Automatic Generation of Object Shapes WithDesired Affordances Using Voxel grid Representation.2019.
·[13]Vladimir G.Kim&al.Shape2Pose:Human-Centric ShapeAnalysis.SIGGRAPH 2014.
在这些示例中,对于椅子类别,计算工具由用于计算连接性损失的深度学习函数和用于计算物理稳定性和就坐可供性描述符(Physical Stability and SittingAffordance descriptor)的模拟引擎组成。此处提供的一个或多个功能描述符仅是示例。在这个示例中,连接性损失被称为“拓扑损失”,因为它是经由拓扑先验计算的,例如,如在论文[6]中包含在深度学习函数中的损失。此外,模拟引擎用于通过向对象施加重力来计算与物理稳定性描述符相对应的功能分数。此外,如论文[10]中的模拟引擎用于计算与就坐可供性描述符相对应的功能分数。在这些示例中,对于飞机的类别,可以使用如上的拓扑先验来获得与连接性描述符相对应的功能分数。此外,可以经由模拟引擎执行计算流体动力学模拟来计算对应于阻力系数描述符的分数,如论文[11]中所述。在这些示例中,对于手推车车辆的类别,可以通过论文[12]中的模拟引擎的方式进一步计算与包含可供性相对应的功能分数等。在这些示例中,车辆的其他类别包括自行车对象,其中,可以计算与人类支撑和/或踏板可供性相对应的功能分数等。在这个示例中,一个功能能量(例如论文[13]中使用的功能能量)可以被合并到一个模拟引擎中,以提供一个可供性模型,该模型可以用于通过以下方式来计算此类描述符:模拟对自行车座椅施加力,该力对应于由人体模型施加的力;以及模拟踏板效应下自行车的动力学。
现在讨论一个或多个功能描述符。
一个或多个功能描述符可以包括连接性描述符。所谓“连接性描述符”是指描述3D建模对象的连接组件的数量的任何变量(单维或多维)。因此,训练方法可能侧重于惩罚3D模型的断开连接的元素。因此,根据训练方法训练的深度学习生成模型创建由单个连接组件组成的3D建模对象。因此,得到的3D对象更准确,因为得到的对象是单个3D建模对象,其没有断开连接的组件,这是机械零件设计或机械零件组装件设计中特别需要的功能。
一个或多个功能描述符可以包括一个或多个几何描述符和/或一个或多个可供性。所谓“几何描述符”是指表示3D对象的空间结构的任何变量(单维或多维)。所谓“可供性”是指任何代表对象在预期上下文中的交互(即,任何类型的关系,其提供有关在特定上下文内使用3D对象的线索)的变量(单维或多维)。因此,训练方法可能侧重于惩罚几何像差(geometric aberration)。因此,根据训练方法训练的深度学习生成模型提供几何上健全的3D建模对象,即在3D建模对象在其预期上下文内的交互方面具有更准确的空间结构和/或更好的功能。
一个或多个几何描述符可以包括物理稳定性描述符和/或耐久性描述符中的一个或多个。对于机械零件或机械零件组装件,物理稳定性描述符可以表示机械零件或机械零件组装件的稳定性,例如,机械零件或机械零件组装件在仅施加重力作用下在空间位置保持平衡的能力。因此,学习方法可以侧重于惩罚在施加重力作用下机械零件的位置与初始位置的任何偏差。因此,根据训练方法训练的深度学习生成模型输出在重力作用下保持机械稳定性的3D模型对象,正如在表示机械零件或机械零件组装件的3D对象的上下文中所预期的那样。
在示例中,3D对象的物理稳定性描述符可以经由确定性函数、模拟引擎或深度学习函数来计算。在这样的示例中,描述符可以对应于机械零件或机械零件组装件的质心位置,并且在至少那些位置处,在施加重力作用下的3D对象的响应将在一个时间间隔内被记录。因此,衡量不尊重稳定性描述符的程度的功能分数将是质心在时间间隔内的初始空间位置和最终空间位置之间的差异。物理稳定性描述符还可以用于定义功能损失,例如:
对于机械零件或机械零件组装件,耐久性描述符可以表示机械零件或机械零件组装件承受重力和机械外力的施加的能力。机械外力可以对应于在随机位置处施加的力并且可以通过改变在每个随机位置处的质量乘以重力来扰乱这些位置。机械外力可以进一步对应于特征在于与另一个机械对象有某种直接接触的力,包括例如两个对象之间的任何类型的摩擦。因此,训练方法可以侧重于惩罚由于扰动而导致的3D建模对象的空间位置的偏差。因此,根据训练方法训练的深度学习生成模型输出3D建模对象,该3D建模对象提供机械零件或机械零件组装件(其受制于重力和可以表示例如应力或振动力或任何类似的外部机械扰动的机械外力的施加)的更准确表示。
在示例中,可以经由确定性函数、模拟引擎或深度学习函数来计算3D对象的响应。在这样的示例中,耐久性描述符可以是机械零件或机械零件组装件的质心位置,其中,另外将记录对象质心的初始和最终空间位置以评估3D模型的耐久性。因此,耐久性描述符将用于定义功能损失项,该项惩罚与质心空间位置的偏差。耐久性描述符可以用于将功能损失项定义为:
一个或多个可供性可以包括支撑可供性描述符、阻力系数描述符、包含可供性描述符、保持可供性描述符、悬挂可供性描述符中的一个或多个。对于机械零件或机械零件组装件,支撑可供性描述符可以表示机械零件或机械零件组装件仅承受机械外力的施加的能力。这样的描述符可以是机械零件或机械零件组装件的位置(例如,顶部位置),并且可以例如通过模拟引擎或显式理论模型记录它,其中,它在机械零件或机械零件组装件的顶部被施加一个或多个力。对于机械零件或机械零件组装件,阻力系数描述符可以表示流体环境对机械零件或机械零件组装件的影响。描述符可以是阻力系数,即用于表示流体环境中的3D建模对象的阻力或抗力的无量纲量,如流体动力学领域中公知的。这种描述符可以例如经由模拟引擎执行计算流体动力学模拟来计算。对于机械零件或机械零件组装件,包含可供性描述符可以表示机械零件或机械零件组装件的响应,同时在机械零件的内部体积中包含另一个对象。这种描述符可以例如经由模拟引擎来计算。对于机械零件或机械零件组装件,保持可供性描述符可以表示机械零件或机械零件组装件经由机械连接支撑另一个对象的能力。这种描述符可以被定义在机械连接所位于的位置。对于机械零件或机械零件组装件,悬挂可供性描述符可以表示机械零件或机械零件组装件通过机械连接被支撑的能力。
数据集的每个3D建模对象可以代表一件家具、机动车辆、非机动车辆或工具。根据该方法训练的深度学习生成模型因此提供了对数据集的指定对象类别的更准确表示。学习可以使用惩罚功能分数的组合的任何损失,例如,通过惩罚连接性描述符、一个或多个几何描述符或一个或多个可供性中的一个或多个的组合。家具类别可以具有至少连接性描述符、物理稳定性描述符、以及就坐可供性或对象支撑可供性之一作为功能描述符。机动车辆的类别可以具有至少连接性描述符和阻力系数描述符作为功能描述符。工具的类别可以具有至少连接性描述符、持久性描述符、以及保持可供性或对象支撑可供性之一作为功能描述符。
根据输出的3D建模对象的预期上下文,训练方法可以组合每个描述符的一个或多个功能分数。参考图4,提供了对象类别椅子、桌子、飞机、床、手推车和自行车的功能分数的计算示例。因此,如示例所示,训练方法考虑了3D建模对象的几何、结构、拓扑、物理和功能特征的相互依赖,使得输出的3D建模对象准确,因此生成的内容达到了其目的,并且可以被物理制造并带入现实世界中。
现在参考图5-7讨论示例。
图5示出了通过根据训练方法训练的深度学习生成模型合成特定类别椅子中的多个3D建模对象的示例。
图6示出了表格类别的3D建模对象的合成,其中,深度学习生成模型由变分自动编码器组成并根据训练方法进行训练。两个潜在向量表示被采样并输出,在图6的左端和右端示出。中间的3D建模对象对应于两个采样的潜在向量表示的插值。这个示例示出了根据该方法训练的深度学习生成模型如何利用现有的3D对象(这些对象是使用最先进的生成网络(在本示例中以变分自动编码器的形式)自动合成的),并输出功能有效的3D建模对象。
图7示出了将深度学习生成模型并入到设计过程中的示例,尤其是在CAD环境中。经训练的深度学习生成模型可以将输入建模对象映射到输出3D建模对象(评估和更新),并且对所述输出3D建模对象执行后续设计(编辑)。
现在参考图8-16讨论示例。
在这些示例中,数据集的每个3D建模对象代表一件家具,尤其是椅子。换句话说,训练方法和使用方法被应用于“椅子”类别。3D数据表示由结构化点云对象组成。换句话说,每个3D建模对象都是点云。
以下示例进一步涉及功能描述符和特定类别椅子(其是家具对象的类别)、计算连接性、稳定性、耐用性和就坐可供性描述符中的分数的计算。功能描述符将用于生成表示类别的结构化点云对象。
连接性描述符:在类别椅子内,连接性鼓励对象没有浮动部分。参考图8,(a)示出了违反连接性描述符的对象。给定类别,使连接的对象对应于具有一个连接的组件。
在这些示例中,为了评估点云连接性,论文[6]的方法用于使用0d持久同源性(persistent homology)来计算3D建模对象的连接的和断开连接的组件。根据论文[6]的方法,可以计算“持久性图(Persistence Diagram)”,其示出拓扑特征(连接的组件)何时出现(出生时间bi)和消失(死亡时间di)。
在这些示例中,连接性损失被定义为
这个损失函数在从i=1开始的生命周期内求和。因此,损失惩罚断开连接的组件。
稳定性描述符:3D对象被输入到模拟引擎[8],以模拟椅子类别中对象的稳定性。模拟引擎通过评估3D对象在以共同取向放置在平面上后在受制于重力时是否保持静态来评估3D对象的稳定性。因此,模拟记录在受制于重力时的其质心位置pi,i的范围从i0=0到i2s=2.5秒,其中模拟步长为2.510-4秒。对应的功能损失为:
参考图8,(b)示出了违反稳定性描述符的对象。图9示出了示例模拟,其示出了类别椅子的模拟的初始框架和最终框架。上侧示出初始框架,并且下侧示出了最终框架,其中,初始时间为0,并且最终时间为2.5秒。图9的中间的顶部框架和底部框架示出了不稳定的对象(高fstability),侧面的顶部以及顶部和底部框架示出了稳定的对象(小fstability)。
耐用性描述:确保了椅子在受制于小扰动时保持稳定。参考图8,(c)示出了违反耐久性描述符的类别椅子的对象。在此示例中,扰动力倾向于在x-y(水平)平面中旋转对象。力被施加在随机位置,并且具有10个不同的范数k*0.01乘以对象质量乘以重力范数,其中,k的范围从1到M。针对每个扰动模拟对象行为,并且对象质心的初始和最终位置分别记录为和如上段所述。在这个示例中,功能损失是
其中α是在0和1之间的退火系数,以确保类别椅子的对象在较小扰动下无法保持静态时受到更多惩罚。在当前示例中,α=0.9且M=10。
以下示例示出了如何进一步组合功能描述符。描述符fstability和fdurability现在组合为:
图10示出了两把椅子的不同k值的记录轨迹。它可以从图10底部的轨迹来解释:左侧的椅子对象的fs+d比右侧的对象低(即,它具有更好的功能性)。左侧底部的轨迹示出,左侧顶部的对应对象在受制于重力(蓝色水平曲线)时保持静止(其中k=0),并恢复其初始位置作为对重力和不同小扰动(其中k≥1)的响应。相比之下,右侧的椅子无法恢复其初始位置,如图10右侧下方的轨迹所证实的。
在进一步的示例中,所有三个分数可以进一步组合为:
fphysical=fconnectivity+fstability+fdurability.
以下示例讨论了用于训练方法的功能分数的计算,其中,损失包括三个功能分数fphysical的组合,并且附加地功能分数faffordance,其衡量不尊重相应就坐可供性描述符的程度。参考图11以解释功能分数的计算。在此示例中,顶部处的初始框架上的两个对象的分数均为fs+d≈0,因此在重力下保持静止。但是,图11右侧的椅子显然不是功能性的,因为它没有座位部分,与左侧的椅子相比应该表现出更高的功能性分数。因此,使用如[8]中的模拟引擎来计算就坐可供性描述符的功能分数,即,模拟引擎用于评估对象如何满足就坐可供性要求。在模拟引擎中,提供如图11所示的人类代理,其可以自由落到对象上。模拟引擎在人类代理交互的上下文下评估椅子类别的响应。人类代理是关节式人体(articulatedhuman body),由9个链接和18个关节组成。在这个示例中,手臂和脚被修剪,因为它们在定义就坐配置方面并不显著。为每个关节设置适当的限制、摩擦和阻尼,以避免对于典型人类在生理上不可能的配置。代理的骨盆被放置在对象当前轴对齐边界框上方15厘米的水平面上。每次下落都是就坐试验。代理的结果配置Cres被记录下来,其对应于24维向量,包含质心位置(3维)、取向(3维)和关节角度(18维)。提供了与目标位置相对应的关键Ckey就坐配置,如图11中的初始框架所示。在这个示例中,被包括在损失中的就坐可供性分数faffordance是:
faffordance=‖Cres-Ckey‖2。
下面的示例涉及根据训练方法训练的深度学习生成模型的实现方式。
实现的深度学习模型将3D对象作为输入,并输出功能分数fphysical和faffordance。为了构建模型,通过使用3D生成神经网络(如论文[9,10]所公开的网络)来生成N=5.104把椅子的数据库。具体来说,给定对象类别,根据这些论文中的每一篇所指示的,使用来自现有技术的预先训练的3D生成神经网络来对该类别的新内容进行采样。通常,对于基于GAN的3D生成神经网络(例如[8])(它被训练以学习目标对象类别的数据分布),使用模型生成器将采样的许多向量从学习到的分布映射到体素网格作为输出。这些输出中的每一个都构成一个新实例。对于每个椅子对象Oi,如上所述地计算功能分数fi。这创建一个新的标记数据集{Oi,fi}1≤i≤N。训练功能预测器以减少此估计向量fi′与地面真值功能分数fi之间的距离。距离指定损失函数,例如欧几里得距离。
在本示例中,功能分数定义为
fi=fi,physical+fi,affordance;
所有分数都被归一化在0和1之间。图12以对应的fi的降序呈现生成的对象Oi。
为了训练深度学习生成模型,对象{Oi}1≤i≤N被映射到点云,并使用如论文[9]中的PointNet架构。在这个示例中,函数预测器的训练损失是:
以下示例讨论了深度学习生成模型的使用方法。在下文中,根据输出对应输出3D建模对象的功能分数的训练方法来训练的深度学习生成模型的部分被称为“功能预测器”。在这个示例中,深度学习生成模型包括3D生成神经网络,后跟函数预测器。在这个示例中,3D生成神经网络对应于PQ-Net解码器[8]。
PQ-Net解码器从对象的学习到的潜在空间获取潜在向量,并将其映射到3D对象,一次一个部分,从而产生顺序组装件。解码器通过使用论文[8]中描述的GAN策略训练生成器来执行形状生成。GAN生成器将从标准高斯分布N(0,1)采样的随机向量映射到对象的对象潜在空间中的潜在向量;顺序解码器从对象潜在空间生成新对象。
第一种使用方法。
第一种使用方法是深度学习生成模型的实现方式的示例,其中,深度学习生成模型由3D生成神经网络组成,其中,3D生成神经网络是生成对抗网络,并且另一项包括对抗性损失。在此示例中,训练3D生成神经网络以将潜在向量映射到3D对象中,同时确保输出内容具有低的功能分数。图13呈现了第一种使用方法的概述。在图13中,功能预测器是预训练的,并且深度学习生成模型由3D生成网络组成,并且可以根据训练方法进行训练。深度学习生成模型架构由3D生成神经网络(PQ-Net解码器)(后跟功能预测器)组成。在训练过程期间,学习3D生成神经网络的权重,而功能预测器的权重是如上所述预先学习并被冻结(frozen)。
在每次训练迭代中,从潜在空间采样潜在向量zin并将其馈送到生成器,后者将zin映射到3D对象(Oi)。3D对象(Oi)被馈送到预测其功能分数fi的功能预测器。训练网络以生成几何上合理的3D对象(Oi),同时最小化它们的功能分数fi。因此该模型被赋予了功能推理(functional reasoning)。潜在表示包括3D对象的联合几何(这里有结构)和功能维度。训练损失包括惩罚功能分数Lf=fi和对抗性损失的一项:
LTrain=Lf+LGAN
根据这种方法训练的深度学习生成模型合成了新的对象,如图6所示。
第二种使用方法。
第二种使用方法示出了一种实现方式,其中,深度学习生成模型由映射模型(其后跟3D生成神经网络)组成,3D生成神经网络经过预训练,另一项包括映射距离,3D生成神经网络网络可选地是变分自动编码器。图14中描述了深度学习生成模型的概述。在图14中,3D生成神经网络经过预训练,并且功能预测器被包括在深度学习生成模型中并也经过预训练。仅图4中所示的映射模型将根据该方法进行训练,剩下的框对应于经预训练的冻结网络。这种使用方法优化了输出3D对象的功能,如下所述。在这个示例中,深度学习生成模型由预学习的3D生成神经网络(PQ-Net解码器)、如上所述的预学习的功能预测器和映射模型组成,该映射模型由要根据训练方法进行训练的具有两个全连接层的神经网络组成。在这种使用方法中,深度学习生成模型使用相应3D对象的潜在向量表示zin进行优化。使用方法通过计算使功能分数最小化的最接近zin的潜在向量zout来优化3D对象的功能。因此,提供的3D对象被映射到与潜在向量表示zout相对应的具有改进功能的3D对象(即,具有低功能分数的对象)。从zin到zout的映射是使用映射模型实现的,在此实现方式中,该映射模型由具有两个全连接层的神经网络组成。模型概述在图14中描述。
映射距离因此用于训练映射模型。这包括最小化包括映射距离并惩罚功能分数的损失:
Lmap(zout)=‖zout-zin‖2+fi.
其余模型的权重(生成模型和功能预测器)被冻结。
网络返回最优zout和由生成模型产生的对应3D对象。图15呈现了优化的示例,示出了每个角落中的对象对。每对在左侧示出优化前的采样对象,并且在右侧示出优化后的输出对象。例如,右下角的对象4示出了样本,它由有3条腿和有缺陷的第四条腿的椅子组成。在优化后,输出图示出没有缺陷的第四条腿,因此具有改进的功能。数值优化结果由图16给出,示出了优化后的输出3D建模对象的功能的改进。
Claims (15)
1.一种用于训练深度学习生成模型的计算机实现方法,所述深度学习生成模型输出3D建模对象,每个3D建模对象表示机械零件或机械零件组装件,所述方法包括:
-提供3D建模对象的数据集,每个3D建模对象表示机械零件或机械零件组装件;以及
-基于所述数据集训练所述深度学习生成模型,所述训练包括最小化损失(LTrain,Lmap),所述损失(LTrain,Lmap)包括一项(Lf),所述项针对每个输出的相应3D建模对象(Oi)惩罚所述相应3D建模对象(Oi)的一个或多个功能分数(fi),每个功能分数(fi)衡量所述机械零件或所述机械零件组装件对于一个或多个功能描述符之中的相应功能描述符的不尊重程度。
2.如权利要求1所述的方法,其中,所述损失(LTrain,Lmap)还包括另一项,所述另一项针对每个输出的相应3D建模对象(Oi)惩罚所述相应3D建模对象(Oi)相对于所述数据集的形状不一致(||zout-zin||2,LVAE,LGAN)。
3.如权利要求2所述的方法,其中,所述另一项包括:
-所述相应3D建模对象(Oi)和所述数据集的对应地面真值3D建模对象之间的重构损失(LVAE);
-相对于所述数据集的对抗性损失(LGAN);或者
-映射距离(||zout-zin||2),其衡量所述相应3D建模对象(Oi)和所述数据集的对应建模对象之间的形状差异。
4.如权利要求3所述的方法,其中,所述深度学习生成模型包括3D生成神经网络。
5.如权利要求4所述的方法,其中,所述3D生成神经网络包括变分自动编码器或生成对抗网络。
6.如权利要求4所述的方法,其中,所述深度学习生成模型由以下各项之一组成:
-所述3D生成神经网络,其中,所述3D生成神经网络包括变分自动编码器,所述另一项包括所述重构损失和变分损失;
-所述3D生成神经网络,其中,所述3D生成神经网络包括生成对抗网络,所述另一项包括所述对抗性损失(LGAN);或者
-映射模型,其后跟所述3D生成神经网络,所述3D生成神经网络经过预训练,所述另一项包括所述映射距离(||zout-zin||2),所述3D生成神经网络可选地包括变分自动编码器或生成对抗网络。
9.如权利要求1至8中任一项所述的方法,其中,所述一个或多个功能描述符包括连接性描述符。
10.如权利要求1至9中任一项所述的方法,其中,所述一个或多个功能描述符包括:
-一个或多个几何描述符;和/或
-一个或多个可供性。
11.如权利要求10所述的方法,其中:
-所述一个或多个几何描述符包括:
■物理稳定性描述符,所述物理稳定性描述符表示:对于机械零件或机械零件组装件,所述机械零件或所述机械零件组装件仅在重力的施加下的稳定性;和/或
■耐久性描述符,所述耐久性描述符表示:对于机械零件或机械零件组装件,所述机械零件或所述机械零件组装件承受重力和机械外力的施加的能力;和/或
-所述一个或多个可供性包括:
■支撑可供性描述符,所述支撑可供性描述符表示:对于机械零件或机械零件组装件,所述机械零件或所述机械零件组装件仅承受机械外力的施加的能力;和/或
■阻力系数描述符,所述阻力系数描述符表示:对于机械零件或机械零件组装件,流体环境对所述机械零件或所述机械零件组装件的影响;
■包含可供性描述符,所述包含可供性描述符表示:对于机械零件或机械零件组装件,所述机械零件或所述机械零件组装件在所述机械零件或所述机械零件组装件的内部体积中包含另一对象的能力;
■保持可供性描述符,所述保持可供性描述符表示:对于机械零件或机械零件组装件,所述机械零件或所述机械零件组装件经由机械连接支撑另一对象的能力;和/或
■悬挂可供性描述符,所述悬挂可供性描述符表示:对于机械零件或机械零件组装件,所述机械零件或所述机械零件组装件通过机械连接得到支撑的能力。
12.如权利要求11所述的方法,其中,所述数据集的每个3D建模对象表示:
-一件家具;
-机动车辆;
-非机动车辆;或者
-工具。
13.一种数据结构,包括如权利要求1-12中任一项所述的方法学习的深度学习生成模型,和/或一种计算机程序,包括用于执行如权利要求1-12中任一项所述的方法的指令。
14.一种设备,包括其上记录有如权利要求13所述的数据结构的数据存储介质。
15.如权利要求14所述的设备,其中,所述设备还包括耦合到所述数据存储介质的处理器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20306099.1A EP3975065A1 (en) | 2020-09-25 | 2020-09-25 | Deep-learning generative model |
EP20306099.1 | 2020-09-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114611223A true CN114611223A (zh) | 2022-06-10 |
Family
ID=73790033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111119857.1A Pending CN114611223A (zh) | 2020-09-25 | 2021-09-24 | 深度学习生成模型 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220101105A1 (zh) |
EP (1) | EP3975065A1 (zh) |
JP (1) | JP2022054460A (zh) |
CN (1) | CN114611223A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11731652B2 (en) * | 2020-12-15 | 2023-08-22 | Woven Planet North America, Inc. | Systems and methods for reactive agent simulation |
US11715300B1 (en) * | 2022-01-28 | 2023-08-01 | Robert Bosch Gmbh | Systems and methods for providing product assembly step recognition using augmented reality |
CN114474078B (zh) * | 2022-04-12 | 2022-06-17 | 季华实验室 | 机械臂的摩擦力补偿方法、装置、电子设备及存储介质 |
-
2020
- 2020-09-25 EP EP20306099.1A patent/EP3975065A1/en active Pending
-
2021
- 2021-09-24 CN CN202111119857.1A patent/CN114611223A/zh active Pending
- 2021-09-27 JP JP2021156903A patent/JP2022054460A/ja active Pending
- 2021-09-27 US US17/486,684 patent/US20220101105A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3975065A1 (en) | 2022-03-30 |
US20220101105A1 (en) | 2022-03-31 |
JP2022054460A (ja) | 2022-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7464387B2 (ja) | 3dモデル化オブジェクト推定のための機械学習 | |
CN108073682B (zh) | 基于参数视图函数查询数据库 | |
US11636395B2 (en) | Modelling operations on functional structures | |
CN111382541A (zh) | 神经网络的集合 | |
CN114611223A (zh) | 深度学习生成模型 | |
JP7431028B2 (ja) | ユーザインタラクションを介した3dモデルオブジェクトのデサイニング | |
CN106227760B (zh) | 用于构建、查询数据库的方法、装置和介质 | |
JP7431029B2 (ja) | 大規模環境用のマルチインスタンス型シミュレーション | |
EP3958162A1 (en) | Neural network for outputting a parameterized 3d model | |
JP7431030B2 (ja) | 大規模環境用のマルチインスタンス型シミュレーション | |
CN111382530A (zh) | 学习用于推测实体cad特征的神经网络 | |
CN111383327A (zh) | 使用弱类型定义进行建模 | |
CN114078169A (zh) | 用于输出3d模型的变分自动编码器 | |
JP2021131854A (ja) | 変形の基礎学習 | |
CN114647911A (zh) | 利用反应扩散方程的拓扑优化 | |
CN115952705A (zh) | 设计建模对象 | |
JP2022184829A (ja) | 3d形状最適化のためのディープパラメータ化 | |
CN111383342A (zh) | 使用弱类型定义进行灵活建模 | |
US11995526B2 (en) | Modelling operations on functional structures | |
JP7491685B2 (ja) | ニューラルネットワークのセット | |
CN114912337A (zh) | 对抗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 |