用于学习取图像作为输入的函数的数据集的制作方法

文档序号:16534116发布日期:2019-01-05 11:02阅读:174来源:国知局
用于学习取图像作为输入的函数的数据集的制作方法
本发明涉及计算机程序和系统领域,并且更具体地涉及与形成被配置用于学习函数的数据集相关的方法、系统和程序,该函数取一类或多类真实对象的实例的图像作为输入。
背景技术
:市场上提供了很多用于对象的设计、工程以及制造的系统和程序。cad是计算机辅助设计的首字母缩写,例如,cad涉及用于对对象进行设计的软件解决方案。cae是计算机辅助工程的首字母缩写,例如,cae涉及用于对未来产品的物理行为进行仿真的软件解决方案。cam是计算机辅助制造的首字母缩写,例如,cam涉及用于对制造工艺和操作进行定义的软件解决方案。在这样的计算机辅助设计系统中,图形用户界面对于技术的效率起到重要作用。这些技术可以嵌入到产品生命周期管理(plm)系统中。plm是指这样的商业策略:跨越扩展企业的概念而帮助公司来共享产品数据、应用公共过程以及利用企业知识来从概念至产品的生命结束地开发产品。由dassaultsystèmes提供的plm解决方案(商标为catia、enovia以及delmia)提供了:组织产品工程知识的工程中心、管理制造工程知识的制造中心、以及使得企业能够集成并连接到工程及制造中心的企业中心。该系统一起提供了开放的对象模型,其将产品、过程、资源链接起来使得能够进行动态且基于知识的产品创造与决策支持,驱动优化的产品定义、制造准备、生产以及服务。在这种上下文和其他上下文中,对取图像作为输入的函数的机器学习正变得越来越重要。例如,正在开发设计用于从二维(2d)图像中识别三维(3d)对象的人工神经网络(也更简单地称为“神经网络”)。关于其他机器学习的函数,这种人工神经网络必须在使用前进行训练。训练是利用也称为“训练/学习数据集”或更简单地“数据集”的训练模式样本来执行的。神经网络由两个特征定义:拓扑结构和权重。拓扑结构是连接的计算单元构成的系统。每个计算单元输出其输入数值数据的加权组合,并根据定向连接将该结果发送到相邻的计算单元。数据流从向其提供初始数据的初始单元向下运行到产生输出数值结果的终端单元。通过使用称为权重的这些数值系数来执行数值组合。最初,权重值是未知的,并且它们需要根据神经网络用途进行调整:例如从2d图像中识别3d对象。该调整步骤被称为训练或学习。为了训练神经网络,使用训练模式的数据集。训练模式是一对一致的输入和输出数据。使用这些信息,专用算法能够计算权重值。训练过程的瓶颈是训练模式的适当数据集。适当数据集可能很多且精确,使得神经网络是鲁棒且准确的。在现有的解决方案中,训练模式的数据集通常通过用户查看图像并参与识别哪些对象在图像上来准备。这是构建数据集的方式,例如,imagenet(其为在优先级日在以下url可访问的2d图像的数据集:www.image-net.org)、shapenet(其为在优先级日在以下url可访问的3d建模对象的数据集:www.shapenet.org)和objectnet3d(在以下文章中描述:yuxiang,wonhuikim,weichen,jingweiji,christopherchoy,haosu,roozbehmottaghi,leonidasguibas和silviosavarese,objectnet3d:alargescaledatabasefor3dobjectrecognition,stanforduniversity)。在这种上下文内,仍然需要改进的解决方案来形成配置用于学习取图像作为输入的函数的数据集。技术实现要素:因此提供了用于形成数据集的计算机实现的方法。该数据集被配置用于学习函数。该函数取一类或多类的真实对象类的实例的图像作为输入。该方法包括:针对每个类,提供该类的参数化模型,利用该参数化模型生成多个3d建模对象,以及针对多个3d建模对象中的每个3d建模对象向数据集添加一个或多个对应图像。参数化模型包括一组参数中的相应参数中的每个参数的一组范围。参数化模型被配置为利用在该组范围中提供的相应的一组值来生成相应3d建模对象。生成的3d建模对象表示该类的相应实例。生成包括遍历一组范围中的一个或多个范围。这样的方法允许以改进的方式形成被配置用于学习函数的数据集,该函数取一类或多类真实对象的实例的图像作为输入。显著地,一旦针对每个类提供了该类的参数化模型,该方法可以容易地针对每个这样的类生成多个对象,每个对象对应于该类的相应实例,以便填充该数据集。因此,该方法允许以相对简短且容易的方式综合地构建数据集,还避免了人为错误,并且因此得到精确的数据集、高效的学习和准确的学习函数。此外,使用参数化模型允许该方法通过允许设想提供参数范围的任意值来利用任意多样的数据填充数据集。该方法特别地包括在生成时遍历一组范围中的一个或多个范围。由此至少相对于与所述遍历的范围相对应的参数,由该方法形成的数据集相对多样且详尽。这再次提高了学习效率和学习函数的准确性。现在,由于每个类的参数化模型被配置为生成作为特定3d建模对象的对象,所以该方法允许向数据集填充相对准确地表示类的实例的图像,因为3d建模对象表示本身是真实对象的相对详细且详尽的表示。这仍然提高学习效率和学习的函数的准确性。在示例中,该方法可以包括以下中的一个或多个:-添加包括:针对多个3d建模对象中的每个相应3d建模对象,基于相应3d建模对象确定一个或多个对应图像;-针对多个3d建模对象中的每个相应3d建模对象,所添加的对应图像包括从相应3d建模对象本身导出的一个或多个2d图像和/或3d建模对象或由其组成;-通过从相应3d建模对象中提取相应2d视图(例如,相应3d建模对象的2d渲染)来确定每个添加的2d图像;-从相应3d建模对象本身导出的3d建模对象是相应3d建模对象本身或从3d建模对象导出的3d建模对象;-提取是全自动的;-该函数具有域(或输入集合)和共域(或输出集合),并且该方法包括将训练模式添加到数据集,每个训练模式包括域的元素和共域的元素,添加图像被包括在训练模式的添加中,每个添加的图像是相应的添加的训练模式的元素;-添加训练模式包括针对每种训练模式形成训练模式的元素并将训练模式的元素链接在一起;-训练模式元素的链接完全自动执行和/或排除任何人工手动识别;该方法由此不仅比现有技术方法简短且容易执行,而且还允许避免与人类识别相关的错误,从而形成具有相对高精度的数据集并且因此如果在数据集上学习则得到相对准确的函数;-每个训练模式包括与该函数的域相对应的相应的第一元素,并且该相应的第一元素是添加的图像,以及包括与该函数的共域相对应的相应的第二元素,并且该相应的第二元素是提供关于由与添加的图像相对应的3d建模对象表示的实例的信息的另一数据块;-每个训练模式的第二元素包括以下或由以下组成:一个或多个其他图像(例如,与添加的图像本身相对应的3d建模对象)和/或关于与添加的图像相对应的3d建模对象表示的实例的任何其他类型的信息,例如,指示与添加图像相对应的3d建模对象表示的实例的类的信息(例如,提供类名称和/或类标签的文本);-每个训练模式的第一元素是2d图像,并且第二元素是对应生成的3d建模对象和/或指示由所述对应生成的3d建模对象和由所述2d图像表示的实例的类的信息(例如,提供类名称和/或类标签的文本);在这种情况下,该函数被配置为输出与输入2d图像相对应的3d建模对象和/或识别并输出在输入2d图像中表示的真实对象实例的类;-每个训练模式的第一元素是生成的3d建模对象,并且第二元素是指示由3d建模对象表示的实例的类的信息(例如,提供类名称和/或类标签的文本);在这种情况下,该函数被配置为识别并输出在输入3d建模对象中表示的真实对象实例的类;-该组参数包括一个或多个特性参数;-该组范围中的被遍历的一个或多个范围是相应特性参数中的每一个;-范围被遍历的一个或多个特性参数包括样式参数;-一个或多个特性参数还包括一个或多个尺寸参数,生成包括对一个或多个尺寸参数的范围进行采样;-生成包括对该组范围中的其他一个或多个范围进行随机化;-随机化包括:针对该组范围中的未被随机化的一个或多个范围的值的每个组合,针对被随机化的范围提供随机值的多个组合,组合的数量是针对该类预确定的;-参数化模型还包括一个或多个约束,每个约束将相应的参数链接在一起;和/或-根据关于一组参数定义的排序来执行生成,排序给予该组范围中的被遍历的一个或多个范围优先级并且基于一个或多个约束。还提供了一种用于定义一类真实对象的参数化模型的计算机实现的方法。该方法包括定义一组参数以及针对每个参数定义相应的范围。该定义使得参数化模型被配置为利用在该组范围中提供的相应的一组值来生成表示类的相应实例的相应3d建模对象。该方法还包括将一个或多个范围标记为在形成数据集时要被遍历的。这种方法允许定义被配置并准备好用于应用该方法来形成数据集的参数化模型。在示例中,用于定义参数化模型的方法可以包括以下中的一个或多个:-该组参数包括一个或多个特性参数;-该组范围中的被遍历的一个或多个范围是相应特性参数中的每一个;-范围被遍历的一个或多个特性参数包括样式参数;-一个或多个特性参数还包括一个或多个尺寸参数;-该方法还包括针对被随机化的范围定义随机值的多个组合,该组合的数量是针对类预确定的;-该方法还包括定义一个或多个约束,每个约束将相应的参数链接在一起;和/或-该方法还包括关于一组参数定义排序,排序给予一组范围中的被遍历的一个或多个范围优先级并且基于一个或多个约束。还提供了用于基于由用于形成数据集的方法形成的数据集来学习(即训练)函数的计算机实现的方法。该方法包括提供具有未定义的权重值的函数架构(或拓扑结构),例如,加权神经网络的拓扑结构。函数架构是数据结构,可以对其进行调整,以便提供各自取一类或多类真实对象的实例的图像作为输入的函数。该方法还包括提供数据集,并且然后调整函数架构以匹配数据集,例如,通过最小化预确定的损失项。该调整可以在于调整神经网络的权重值。这种方法被称为机器学习过程的离线学习/训练部分。还提供了用于使用通过这种用于学习的方法学习的函数的计算机实现的方法。该方法包括提供该函数。该方法然后包括提供例如一类或多类真实对象的实例的一个或多个输入图像,该函数被配置取一个或多个输入图像作为输入(该方法以任何方式处理输入图像不是所述一类或多类的实例的情况),并且然后将函数应用于一个或多个输入图像。该方法然后可以包括输出的任何后处理。这种方法被称为机器学习过程的在线(或内联)部分。还提供了包括上述方法的任何序列的过程。该序列可以在相同的位置和/或由相同的系统执行,或者包括在远端系统之间交换数据。还提供了包括用于执行上述方法中的任何一个或任何组合的指令的计算机程序。还提供了能够由用于形成数据集的方法形成的数据集。这样的数据集包括通过该方法添加的一个或多个对应图像,因此该数据集比现有的相似数据集相对更详尽且准确。还提供了能够由用于定义参数化模型的方法定义的参数化模型。这样的参数化模型包括在用于定义参数化模型的方法期间定义的所有信息,并且显著地指示在形成数据集时要被遍历的一个或多个相应范围的标签。还提供了包括数据集、函数和/或程序的数据结构。还提供了包括数据存储介质的设备,该数据存储介质上记录有数据结构。该设备可以形成非暂时性计算机可读介质。可替代地,该设备可以包括耦合到数据存储介质的处理器。该设备因此可以形成系统。该系统还可以包括耦合到处理器的图形用户接口。附图说明现在将通过非限制性示例的方式并且参照附图来描述本发明的实施例,其中:-图1示出了过程的示例的流程图;-图2示出了系统的图形用户接口的示例;-图3示出了系统的示例;以及-图4-22示出了方法的实现方式;以及-图23-26示出了定义参数化模型的示例。具体实施方式该函数是任何函数(例如,神经网络),其取潜在的一类或多类的真实对象的实例的图像作为输入,并且针对每个输入产生可以是任何格式的相应输出。图像是表示物理信号的空间分布的数据结构。真实对象的图像表示物理信号在例如位于场景中的对象上的分布。空间分布可以具有任何维度,例如,2d或3d。物理信号可以是任何信号,例如,颜色、灰度级、深度或者材料或对象边界的存在。相应地,图像可以是2d或3drgb、灰度或深度图像、2d轮廓模型或3d建模对象(例如,表面占用或体积占用模型,或边界表示)。空间分布可以以任何方式表示,例如,用值的网格表示,并且从而定义像素或体素,网格可能不规则或规则。添加到数据集和/或被输入到该函数的图像可以全部是相同类型的,例如,所有矩形2drgb或灰度图像或所有3d建模对象。可替代地,添加到数据集和/或被输入到该函数的图像可以包括不同类型的图像(例如,甚至在训练模式的第一元素之中或者在训练模式的第二元素之中)。在示例中,函数被配置为输出指示由诸如2d图像或3d建模对象之类的输入图像表示的真实对象实例的类的信息。在其他示例中,该函数被配置为输出由诸如2d图像之类的输入图像表示的真实对象实例的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表示的显示有助于进行设计(即,加快了设计人员统计地完成其任务的速度)。“真实对象类”这一表述表示可以通过相同的语义描述符来描述的真实对象的集合、组或类别。一类真实对象的语义描述符是包括用于描述该类的任何对象的自然语言词和可选数字的表达式。类可以收集任何类型的真实对象。类的子类本身可以被认为是类。这些方法可以设想用于分类的任何粒度,这取决于针对要学习的函数设想的精度。例如,这些方法可以例如设想在imagenet、shapenet或objectnet3d中识别的类。该方法可以设想动物类、身体器官部位类或植物/树类、或者产品类,例如,(例如,机械的)零件或零件的组装件的类或者更一般地任何刚性体组装件的类(例如,移动机构)。产品可以用于各种且不受限制的工业领域,包括:航空航天、建筑、建造、消费品、高科技设备、工业设备、运输、船舶和/或海上石油/天然气生产或运输。该方法可以设想可以包括任何机械零件类的工业产品类,例如,陆地交通工具零件类(包括例如汽车类和轻型卡车设备类、赛车类、摩托车类、卡车类和电机设备类、卡车类和公共汽车类、火车类)、航空交通工具类(包括例如机体设备类、航空航天设备类、推进设备类、国防产品类、航空设备类、空间设备类)、海军交通工具类(包括例如海军设备类、商业船舶类、海上设备类、游艇类和工作船类、船舶设备类)、通用机械零件类(包括例如工业制造机械类、重型移动机械类或设备类、安装设备类、工业设备产品类、制造金属产品类、轮胎制造产品类)、机电类或电子部件类(包括例如消费电子产品类、安全类和/或控制类和/或仪器产品类、计算和通信设备类、半导体类、医疗设备和装备类)、消费品类(包括家具类、家庭和花园产品类、休闲商品类、时尚产品类、硬商品零售商产品类、软商品零售商产品类)、包装类(包括例如食品和饮料和烟草、美容和个人护理、家庭产品包装类)。类的元素称为“实例”。因此,实例是该类的真实对象。实例具有不同的物理特性,例如包括其样式、其尺寸和/或其纹理。类的实例可以由对这种信息建模的3d建模对象表示。类的参数化模型(也称为“模板”)是利用针对输入参数提供的值(每个参数一个值)来生成(即输出)表示类的实例的3d建模对象的函数。每个这样生成的3d建模对象因此对应于针对参数化模型提供的相应的一组参数值。每个参数对应范围,即用于该参数的一组全部授权值。参数化模型还可以包括一个或多个约束,每个约束将相应的参数链接在一起(换言之,相对于一个或多个其他参数的值约束一个或多个参数的值)。这些信息与参数化模型一起提供。用于形成数据集的方法然后包括在生成3d建模对象期间遍历(例如,完全地)一个或多个范围。针对范围的术语“遍历”意味着在生成期间访问至少范围的代表性子集中的每个值(即,分布在整个范围上的、范围的一组值),使得针对该子集中的每个值生成至少一个对应的3d建模对象。对应于所述3d建模对象的其他参数值可以以任何方式设置,稍后提供示例。每个这样生成的3d建模对象然后可以产生数据集中的对应的一个或多个训练模式。这允许数据集相对于被遍历的(多个)参数范围是全面且多种多样的。换言之,被遍历的范围的值的所有组合都在数据集中表示。该组范围可以包括有限的一个或多个范围。遍历这样的有限范围可能相当于访问该范围的所有值。在这种情况下,范围的代表性子集是整个范围本身。该组范围可以包括无限的一个或多个范围。这样的无限集合可以被采样为例如有限集合。例如,如果有限集合相对较大,则也可以对有限集合进行采样。在这种情况下,范围的代表性子集是采样的结果。这样的采样也可以被实现并且用于形成数据集的方法的其他步骤:例如,当需要未遍历的范围的值时(例如,当随机化时,如稍后描述的),可以在采样的结果内选择这样的值。可以在定义参数化模型时或者在生成多个3d建模对象(在这种情况下,采样仅作为范围的基础)之前或生成多个3d建模对象时在形成数据集期间执行采样。采样可能是规则的或不规则的。采样可以对应于预确定数量的步骤或预确定步长,其可以恒定或取决于范围和/或参数。采样可以产生该范围中的至少两个或三个值,例如,至少五个或十个值。在下文中,范围的处理可以涉及对其经采样的版本的处理。该组参数可以包括一个或多个特性参数。特性参数是表示该类的真实对象的区分特征的参数。区分特征可以对应于语义描述符。类的真实对象的区分特征的语义描述符是包括用于描述真实对象的方面的自然语言词和可选数字的表达式,允许将该真实对象与该类的其他实例进行区分比较。由此参数化模型允许生成可以被区分的类的实例,并且形成的数据集可以转换这种多样性。特性参数可以包括样式参数、尺寸参数和/或纹理参数。样式参数是表示相对于类的真实对象的形状或布置信息的参数,并且因此对应于相对于真实对象的几何印象,显著地当对其图像进行可视化时。样式参数因此形成区分类的不同实例的高效方式。样式参数可以表示对象的形状、其元素的形状或其元素的布置,全部在预确定的一组值内。尺寸参数表示真实对象或其一部分的尺寸。纹理参数表示真实对象或其一部分的纹理,术语“纹理”覆盖例如颜色、材料和/或触摸特征的分布(例如,粗糙度或光滑度)。针对其提供参数化模型的真实对象的类可以包括(例如,机械的)零件或相同类型的产品的组装件的类。这样的类的参数化模型可以包括各自相应于零件或产品的子模型。每个子模型是可以包括一个或多个样式参数的参数化模型,例如,每个样式参数提供该零件的有限的一组形状类型;一个或多个尺寸参数,例如,每个尺寸参数提供无限的一组值(例如,类型[a,b],其中a和b是正实数);和/或一个或多个纹理参数,例如,每个纹理参数提供该零件的有限的一组材料类型、该零件的有限的一组触摸特征类型、或整个零件的有限或无限的一组颜色值(例如,rgb值,例如在257*257*257的一组值中),或者每个纹理参数定义或参与其他参数来定义——例如,通过调整——有限或无限的一组颜色值(例如,零件上的rgb分布图)或有限或无限的一组触摸特征值(例如,零件上的触摸特征水平的分布图)。该类的参数化模型然后还可以包括样式参数,例如,每个样式参数提供该零件的有限的一组布置。类的参数化模型还可以包括尺寸参数,例如,每个尺寸参数针对若干零件之间的给定布置提供零件之间的相对定位的精确值。该类的参数化模型可以包括其他参数。针对其提供参数化模型的一个或多个类可以是这种类的上位类的子类。然后可以将上位类的参数化模型定义为由一个或多个类的一组参数化模型组成,向该组参数化模型添加参数以用于选择一个或多个类的所述参数化模型中的一个。上位类的概念可以允许更容易地定义类,因为作为同一上位类的子类的不同类可以共享参数。然后,定义上位类可以允许只声明一次这样的参数,并且然后实例化自动继承所述共享参数的子类,但是可以在其应用于所述共享参数的函数方面有所不同。被遍历的该组范围中的一个或多个可以各自是相应特性参数的范围。在这种情况下,数据集相对于特性参数是全面的,并且数据集的多样性允许以后学习函数,该函数根据特性参数提供的特性来操作区分。换言之,该函数相对于被遍历的特性参数在将一个实例误认为另一实例方面更加鲁棒。这种被遍历的特性参数可以包括样式参数(例如,由参数化模型提供的所有样式参数)。样式参数实际上特别具有区分度。因此,对相对于样式参数所取值的多样性特别感兴趣。在(例如,机械的)零件的组装件或相同类型产品的类的情况下更为真实。在示例中,遍历所有样式参数,并将所有其他参数随机化。这允许数据集的快速形成而相对于样式多样化,这是在包括机械工程上下文的许多上下文中最具有区别度的参数类型。这些方法是计算机实现的。这意味着方法的步骤(或基本上所有的步骤)由至少一台计算机或任何类似系统执行。因此,这些方法的步骤由计算机执行,可能完全自动地或半自动地执行。在示例中,触发方法的步骤中的至少一些步骤可以通过用户-计算机交互来执行。所需的用户-计算机交互的水平可能取决于预见的自动化水平,并且与实现用户意愿的需求相平衡。在示例中,该水平可以是用户定义的和/或预先定义的。方法的计算机实现的典型示例是利用适用于该目的的系统执行该方法。该系统可以包括耦合到存储器和图形用户接口(gui)的处理器,存储器上记录有包括用于执行方法的指令的计算机程序。存储器还可以存储数据库。存储器是适用于这种存储的任何硬件,可能包括若干物理不同的部分(例如,一个部分用于程序,并且可能一个部分用于数据库)。该系统还可以包括深度传感器,该深度传感器耦合到处理器并且被配置为采集3d重建的实例的深度图。该系统还可以包括用于在采集期间摆姿势的实例的摆姿势点。图1示出了该过程的示例的流程图。框s10、s20、s30、s40和s50可以各自独立于其他框执行。图1的过程包括针对多类真实对象中的每一个的、用于定义s10类的参数化模型的方法,其可以经由用户交互来执行。定义s10包括定义s12一组参数以及针对每个参数定义相应的范围。参数可以包括尺寸参数、样式参数和/或纹理参数。参数化模型表达该类的真实对象实例的可变性。定义s10还包括将一个或多个参数范围(等同地,参数)标记s14为在形成数据集时要被遍历的。由此标记的范围参数可以包括(例如,全部)样式参数(例如,其是有限的)以及可能的尺寸参数和/或纹理参数(例如,在这种情况下,这样的尺寸/纹理参数的无限范围被采样以变得有限且可遍历,这在图中没有表示)。图1的过程认为所有其他(即,未标记的)范围是随机化的。可替代地,系统可以管理针对“未遍历”范围的特定标签。而且,不是随机化,而是针对未标记的范围可以设想与遍历不同的任何其他处理。定义s10还包括针对已标记范围的值的每个组合定义s16未标记范围的随机值的预确定数量m个组合。换言之,针对每个类,该过程确切地知道应该针对未标记范围抽取多少个随机值的组合,按照已标记范围的被遍历的值的组合。因此该过程被要求形成表达被遍历的范围的组合的整体多样性的数据集,并且在其他范围上是“失败者”(即,不那么“严格”)。定义s16还允许对应于预确定数量m的、随机化的范围的最小多样性。预确定数量m可以是任何正整数值,例如,低于30或20。这允许降低组合成本。定义s10还包括定义s18一个或多个约束,每个约束将相应参数链接在一起。可替代地,用户可以很好地定义无约束。虽然按顺序表示,但s12-s18可以以任何次序执行,例如,交错地。图1的过程然后初始化s20数据集。图1的过程然后逐类填充s30数据集。针对每个类,该过程包括提供s310该类的参数化模型。该过程然后利用参数化模型来生成s320多个3d建模对象。生成s320包括关于该组参数定义s322排序。排序给予被遍历的范围优先级,并且基于一个或多个约束。排序可以以任何方式自动确定。稍后提供这种排序的实现方式。替代图1的示例,排序可以在s10内定义并且在s30处如此提供,其与参数化模型一起形成。另外可替代地,s30可以基于无排序并且仅通过启发式执行。生成s320然后包括遍历s324标记为要被遍历的范围。在遍历s324期间,针对已标记范围的值的每个组合,生成s320提供s326用于未标记范围的随机值的m个组合。在替代方案中,没有预确定数量m被提供给过程,该过程因此以任何方式处理随机化。s324-s326由此导致在s328处输出的3d建模对象的多样性。输出包括与已标记范围的值的所有可能组合相对应的3d建模对象,并且针对每个这样的组合,3d建模对象对应于未标记范围的值的一个或多个(取决于m的值)随机组合。然后通过基于s328的结果添加s330数据来针对该类填充数据集。例如,在s328处输出的每个相应的3d建模对象被用于提取若干2d图像,并且在s330处将每个2d图像添加到例如与相应的3d建模对象或任何其他相关数据链接的数据集以便形成训练模式。可替代地,在s328处输出的每个相应的3d建模对象在s330处被添加到与该类名称链接的数据集以便形成训练模式。s330可以以任何方式基于希望稍后在s40处基于数据集学习的(多个)函数的类型来执行。在任何情况下,遍历s324导致数据集中的多样性水平,其允许高效的学习s40,并且因此在稍后在s50处使用这种学习的函数时得到准确的结果。该示例的定义s10还包括针对未被随机化的范围的值的每个组合,针对被随机化的范围定义s16随机值的预确定数量m个组合。图2示出了系统的gui的示例,其中系统是cad系统。gui2100可以用于显示给定类的3d建模对象2000,例如在定义类的参数化模型之前,在应用取例如3d建模对象作为输入的学习的函数之前,或者作为输出这样的3d建模对象的学习的函数结果。gui2100可以为典型的类似cad的界面,其具有标准的菜单栏2110、2120,以及底部和侧边工具栏2140、2150。如本领域所已知的,这样的菜单和工具栏包含用户可选图标的集合,每个图标与一个或多个操作或功能相关联。这些图标中的一些图标与适于对gui2100中示出的3d建模对象2000进行编辑和/或操作的软件工具相关联。可以将软件工具分组为工作台。每个工作台包括软件工具的子集。特别地,该工作台中的一个工作台是适于对建模产品2000的几何特征进行编辑的编辑工作台。在操作中,例如,设计人员可以预选对象2000的一部分,并且继而启动操作(例如,改变尺寸、颜色等),或者通过选择适当的图标来对几何约束进行编辑。例如,典型的cad操作是对屏幕上显示的3d建模对象的穿孔或折叠进行建模。例如,gui可以显示与所显示的产品2000有关的数据2500。在图中的示例中,显示为“特征树”的数据2500及其3d表示2000涉及包括制动钳和制动盘的制动组件。gui可以进一步示出诸如用于促进对象的3d定位之类的用于触发对已编辑产品的操作的仿真或渲染所显示的产品2000的各种属性的各种类型的图形工具2130、2070、2080。光标2060可以受控于触觉设备,以允许用户与图形工具交互。图3示出了系统的示例,如连接到深度传感器的计算机系统。示例的系统包括连接到内部通信总线1000的中央处理单元(cpu)1010,和同样连接到总线的随机存取存储器(ram)1070。该系统还设置有图形处理单元(gpu)1110,图形处理单元(gpu)1110与连接到总线的视频随机存取存储器1100相关联。在本领域中视频ram1100也被称为帧缓冲器。大容量存储设备控制器1020管理对诸如硬盘驱动器1030之类的大容量存储设备的访问。适于有形地体现计算机程序指令和数据的大容量存储设备包括所有形式的非易失性存储器,举例来说包括诸如eprom、eeprom以及闪存设备之类的半导体存储设备;诸如内部硬盘和可移除盘之类的磁盘;磁光盘;以及cd-rom盘1040。前述任一项可以由特别设计的asic(专用集成电路)进行补充或并入其中。网络适配器1050管理对网络1060的访问。该系统还可以包括深度传感器1090。计算机程序可以包括可由计算机执行的指令,该指令包括用于使得上述系统执行该方法的模块。程序可记录在包括系统的存储器的任何数据存储介质上。例如,可以以数字电子电路,或者以计算机硬件、固件、软件或以其组合来实现程序。程序可以被实现为装置(例如,有形地体现在机器可读存储设备中的产品),以用于由可编程处理器执行。方法步骤可以由执行指令的程序的可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行该方法的功能。因此,处理器可以是可编程且耦合的,以从数据存储系统的至少一个输入设备接收数据和指令,并向数据存储系统的至少一个输出设备传送数据和指令。可以以高级过程语言或面向对象的编程语言来实现应用程序,或者如果需要则以汇编语言或机器语言来实现应用程序。在任何情况下,语言都可以是编译语言或解释语言。程序可以是完全安装程序或更新程序。在任何情况下将程序应用于系统都会产生用于执行该方法的指令。该过程可以允许准备训练模式,例如,以便训练专用于通过使用2d图像来识别3d对象的神经网络。该过程使用模板,这是cad中非常流行的概念。原理可以是使用cad系统来创建要识别的3d对象类的参数化模板。通过实例化参数(例如,角度尺寸、长度尺寸、纹理)获得该类的每个元素。因此,通过自动改变参数值,可以创建非常大的一组3d模型。然后,针对每个模型,可以通过再次使用cad系统来计算另一组非常大的相关2d图像。该过程能够提供数千种训练模式,其显著地从几何角度来看是完全受控的。这允许高效且安全的神经网络训练。现在参考图4-22讨论这些方法的示例实现方式。术语“用户”是指训练模式数据库的设计者。神经网络定义的示例神经网络可以通过六元组n=(x,u,α,ω,w,f)来形式化定义,其中x是神经元集合,u是有向连接集合,映射α:u→x描述连接的起始神经元,映射ω:u→x描述连接的结束神经元,权重映射w:将数字权重与每个连接进行关联,并且f:被命名为激活函数。这意味着连接u∈u的起始神经元是α(u),其结束神经元是ω(u),并且其权重是w(u)。此外,神经元x∈x的输入连接的集合为ω-1(x),并且神经元x∈x的输出连接的集合为α-1(x)。类似地,神经元x的向内神经元y是x的输入连接的起始神经元,即y∈α(ω-1(x))。神经网络的拓扑结构由神经元和连接(x,u,α,ω)定义。根据定义,激活函数捕捉网络内的信息传播的非线性阈值效应。如教科书“krieseldavid,abriefintroductiontoneuralnetworks(神经网络简介),2006年”中所述,典型的激活函数为从数学的角度来看,神经网络可能是具有与激活函数相关联的加权弧的有向图。根据定义,输入神经元x没有输入连接,这意味着并且输出神经元x没有输出连接,这意味着每个神经元x∈x在以下意义上如同计算单位一样起作用。根据下面的公式可以通过组合其向内神经元的数值来计算输出数值值p(x)被命名为传播值。它是由结束于神经元x处的所有连接u的起始神经元α(u)计算的数值的加权和。值是在传播值p(x)处应用的阈值效应f(·)。该公式是递归定义的,并且排序问题通过拓扑结构来解决。图4示出了在神经元5处来自其三个向内神经元1、2和3的计算。可以通过该过程实现的非常受欢迎的神经网络拓扑结构是前馈模型。神经元集合被结构化为有序不相交子集,其被称为层x=i∪h1∪…∪hh∪o,其中i被称为输入层(输入神经元的层),hi,i=1,…,h被称为隐藏层并且o被称为输出层(输出神经元的层)。从层i的每个神经元到层h1的所有神经元存在连接。针对i=1,…,h-1,从层hi的每个神经元到层hi+1的所有神经元存在连接。从最后的隐藏层hh的每个神经元到输出层o的所有神经元存在连接。在前馈神经网络的上下文中,可以将特定的激活函数与每个层进行关联。图5示出了以两个隐藏层为特征的前馈神经网络。输入神经元用输入箭头象征。输出神经元用输出箭头象征。显然,前馈神经网络是非循环的。因此,将数值(tx)x∈i设置为输入神经元,意味着对于所有x∈i,并且逐层传播计算产生由输出神经元计算的数值(zy)y∈o。通过前馈神经网络从(tx)x∈i计算(zy)y∈o的映射记为f:其中n=|i|是输入神经元的数量,并且m=|o|是输出神经元的数量。神经网络训练的示例给定前馈神经网络的拓扑结构,并且给定其(多个)激活函数,神经网络训练步骤的目标是计算权重映射w:为此,需要一组训练模式。训练模式是偶对该偶对表示当被提供输入数据(tx)x∈i时假定神经网络计算的输出数据(zy)y∈o。输入和输出是通过其他手段计算的,并且被用于教导“如果输入是(tx)x∈i,则神经网络必须输出(zy)y∈o”。给定一组k个训练模式专用算法可以用于以使得针对i=1,…,k,尽可能接近的方式调整权重映射。用于此目的的典型算法是反向传播。从数学的角度来看,这是计算映射f的插值问题。图6示出了神经网络的训练步骤相对运行步骤。训练分类神经网络的示例神经网络可能特别地用于分类。给定3d对象的有限的一组nclass个类,目标是神经网络识别未知输入3d对象属于哪些类。分类神经网络特征在于每个类一个输出神经元。数字输出值是区间[0,1]中的nclass编号的矢量每个数字λi是输入对象属于类编号i的概率。典型的训练模式是已知的输入3d对象,其属于与输出向量相关联的类编号i,使得如果j≠i并且λi=1,则λj=0。利用所提供的用于形成数据集的方法来构建训练模式的示例。一旦定义了物理3d对象的nclass个类cj,j=1,…,nclass,用户可以负责定义特性参数及其约束。参数/类表捕获与相应类相对应的参数值的相应范围。另外,用户可以设计3dcad模板模型(以下称为模板模型)。最后,用户可以定义nrender个渲染参数。渲染参数是包含计算图像所需的全部数据的元组:视点、照明、外界环境、背景等。后续过程的所有步骤可以是完全自动的。针对每个类i∈{1,…,nclass},系统可以生成一个设计表,每个设计表潜在地表示多个个对象。然后,系统可以将每个设计表与模板模型进行组合,这生成总共个3d模型。最后,系统可根据渲染定义来生成每个3d模型的nrender个2d图像。这导致nimage=n3dnrender个图像。数据集由nimage个偶对(ii,j,k,(λ1,…,λnclass))组成,使得·针对每个i=1,…,nclass,针对每个并且针对每个k=1,…,nrender,ii,j,k是根据渲染编号k的构造编号j中类ci的对象的2d图像,·如果l≠i并且λi=1,则λl=0。工作流程在图7中表示。对象的类的示例设计训练模式的第一步骤可以是定义要识别的对象的类。这些类可能全部源自相同的根类。典型的根类是“桌子”,并且从功能的角度来安排类,典型地是“餐桌”、“茶几”、“托架桌”、“边桌”和“吧桌”。这在图8中表示。参数/类表、参数范围的示例特性参数和典型值(值的范围)可以与该功能组织的类相关联。这可能包括数值以及符号值。可能涉及几种参数:尺寸参数、样式参数和纹理参数。尺寸参数可以是长度或角度。样式参数可以支配对象的一个或多个组件的性质。纹理参数可以支配对象的外观,这取决于其材质。在图9-11中,支腿和桌板是样式参数。参数支腿的值圆形(相应地方形)表示具有圆形(相应地方形)基础的桌子的中央支腿。参数支腿的值4表示配备有四条垂直支腿的桌子。参数桌板的值圆形(相应地矩形、椭圆形)表示桌板的圆形(相应地矩形、椭圆形)形状。参数名称、类型和范围收集在所谓的“参数/类表”中,表1中提供了对其的简化。表i——桌子类:“餐桌”类、“茶几”类、“边桌”类、“吧桌”类和“托架桌”类的参数/类表的简化视图另外,所谓的“随机构造”的数量mclassname可以与每个类相关联。标记上标*的参数被称为“随机化的参数”。其他参数被称为“经遍历的参数”。如后文解释的,这两个特征可以在生成设计表时使用。该表可以如下形式化。给定类的集合c并且给定参数集合p,参数/类表是从p×c到集合z的功率集合(记录为)的映射范围(range),在这个示例中:c={边桌,吧桌,托架桌,餐桌,茶几}p={高度,长度,宽度,支腿,桌板,支腿纹理,桌板纹理}针对每个偶对(p,c)∈p×c,range(p,c)是当用于对类c参数化时参数p的范围。样式参数的范围可以始终是有限集合。尺寸参数的范围可以是有限集合或数字区间。例如,range(长度,茶几)=[80,120]表示茶几的长度大于80cm且小于120cm。样式参数是{支腿,桌板}。尺寸参数是{高度,长度,宽度}。纹理参数是{支腿纹理,桌板纹理}。经遍历的参数相对随机参数的示例参数的经遍历/随机状态由训练模式数据集的设计者设置。根据定义,在构建设计表时生成经遍历的参数的所有可能组合。相反,随机选择预定数量的值来设置设计表中的随机参数。原理可能是对3d对象形状有很大贡献的参数应该是经遍历的参数,而对形状贡献不那么大的参数应该是随机参数。典型地,样式参数可以是经遍历的参数,而尺寸参数可以是随机参数。注意,以数值区间范围[a,b]遍历参数意味着对其进行采样,因为其具有无限的一组值。在这种情况下,范围不能被完全遍历。所讨论的实现方式考虑经遍历的样式参数和随机尺寸参数,但是也允许随机样式参数和经遍历的尺寸参数。取决于用户的选择,纹理参数可以是经遍历的或随机的。约束的示例参数依赖关系可以通过使用例如两种类型的约束来捕获:比例约束和条件/动作约束。比例表示数值参数的值与另一数值参数的值成比例。例如长度:=1.618*宽度是典型的比例约束。它的意义在于在设置宽度值后长度值被设置。在条件/动作约束中,条件涉及参数及其相应值的列表。约束的条件中涉及的参数被称为“条件参数”。约束的动作中涉及的参数被称为“动作参数”。由约束激活的动作将根据条件参数的值来定义动作参数的范围。例如,典型的条件/动作约束是:如果((支腿=圆形)或(支腿=方形)),则(range(长度):=[100,150])该约束指出配备有中央支腿的桌子可能不会太长。条件参数是支腿。动作参数是长度。显然,约束可以创建参数依赖关系,但用户的责任可能是避免循环依赖关系。如先前解释的,从经遍历的参数的角度来看,该组训练模式是详尽的。相反,从随机参数的角度来看,它是随机采样的。由于这个原因,涉及随机参数作为条件参数的约束可能不涉及经遍历的参数作为动作参数。设计表生成可能受益于此限制,这将在稍后解释。在讨论的实现方式的上下文中,使用protobuff语言来表达约束,如在优先级日可访问的以下url中描述的https://developers.google.com/protocol-buffers/。设计表的示例设计表概念在cad行业非常流行。它可以有利地被该过程重新使用。给定参数pi的列表,i=1,…,m,给定作为“参数的范围”的集合ri的列表,i=1,…,m,并且给定数量n个所谓的构造,设计表特征为被称为“构造”的n个行,和被称为“参数”的m个列。注意到其中d(i,j)是范围rj的元素。构造是设计表的一行,其针对每个参数指定特定的值。设计表的目标是以紧凑的结构收集给定对象的n个变体。设计表的存在理由是与参数化的3dcad模型组合,以此种方式使得设计表的参数是cad模型的参数。这样,每个构造都可以表示3d对象的版本。例如,餐桌的n=4个构造的设计表涉及分别与范围75、[100,200]、[40,120]、{圆形,方形,2,4}和{矩形,椭圆形}相关联的m=5个参数{高度,长度,宽度,支腿,桌板},如表ii所示。高度长度宽度支腿桌板17510060方形矩形275120654椭圆形37510080圆形圆形4752001104矩形表ii-“餐桌”类的构造图12示出了3d对象的每个构造。排序参数和约束的示例由于约束创建参数依赖关系,所以可以设置参数并且可以在构建设计表时根据适当的排序激活约束。该排序可以通过定制有向无环图(dag)拓扑顺序算法来计算。设k是约束的集合,并且针对每个约束k∈k,约束k的条件参数集合记为cond(k),并且约束k的动作参数集合记为act(k)。通过使用捕获参数和约束依赖关系的有向图g=(x,u,α,ω)来计算排序。该图定义如下。节点x是约束、条件参数和动作参数。形式上,弧从条件参数到约束以及从约束到动作参数。形式上,针对所有的约束k∈k,并且针对每个参数x∈cond(k),存在在x处开始并且在k处结束的弧u∈u,这意味着α(u)=x且ω(u)=k;类似地,针对每个参数y∈act(k),存在在k处开始并且在y处结束的弧v∈u,这意味着α(u)=k且ω(u)=y。根据定义,节点x∈x的输入弧(相应地输出弧)是在x处结束(相应地开始)的弧u∈u,即ω(u)=x(相应地,α(u)=x)。根节点x没有输入弧,即或者等价地|ω-1(x)|=0。根据定义,节点x的输出节点y是节点x的输出弧的结束节点。节点x的输出节点集合是ω(α-1(x))。根据图论,有向无环图中存在至少一个根节点。例如,考虑表iii中定义的约束c1、c2、c3,经遍历的参数c、d、e,随机参数a*、b*、f*和依赖关系。cond(·)act(·)c1{b*,c}{a*}c2{d,e}{c,f*}c3{d,e}{b*,c}表iii-参数依赖关系对应的图在图13中示出。排序算法的原理可以在记录移除序列的同时迭代地(并且虚拟地)移除图的根节点。出于该目的,每个节点x∈x与整数p(x)相关联,该整数p(x)表示其当前输入弧的数量,并且由输入弧的初始数量初始化,即p(x):=|ω-1(x)|。这样,根节点x使得p(x)=0。算法的输出可以是映射q:{1,…,|x|}→x,表示序列中的第i个节点是q(i)。该算法可以使用由根节点={x∈x;p(x)=0}定义的当前根节点的集合。指令03选择要移除的适当的当前根节点。选择是根据以下优先级完成的:首先选择经遍历的参数,如果没有经遍历的参数,则选择约束,并且否则选择随机参数。必须理解,该算法没有区分参数和约束。该算法提供了用于设置参数值和激活约束的排序。示例的初始数据结构p(·)和q(·)可以如下。根节点是d和e,使得初始根节点集合是根节点={d,e},并且表q(·)未设置。这在图14中示出。通过算法的while循环的数据结构的连续状态如图15所示。注意,步骤4优选地选择约束根节点c3而不是随机参数根节点f*。类似地,步骤5优选地选择经遍历的参数根节点c,而不是随机参数根节点b*或f*。这在图16中示出。在步骤6之后,所有经遍历的参数都可以在排序中插入。最后一步完成总体排序,即:d-e-c2-c3-c-b*-f*-c1-a*形式上,它按照q(1)=d,q(2)=e,q(3)=c2直到q(9)=a*在表q(·)中被捕获,如图17所示。稍后,在构建设计表时,此排序可以被解释如下。1、设置参数d。2、设置参数e。3、激活约束c2,其定义参数c和f*的相应范围。4、激活约束c3,其定义参数b*和c的相应范围。5、设置参数c。6、设置参数b*。7、设置参数f*。8、激活约束c1,其定义参数a*的范围。9、设置参数a*。如预期的那样,每个参数在其范围被更新后设置,并且每个约束在其所有条件参数被设置后激活。另外,由于约束规范和根节点选择优先级,排序涉及从步骤1到步骤5的最左侧子序列d-e-c2-c3-c中的所有经遍历的参数。其余的最右侧子序列b*-f*-c1-a*涉及所有随机参数。然而,应该注意的是,参数c的范围在步骤3处首次被设置,并且在步骤4处被重新定义。参数c的值在步骤5处根据在步骤4处通过约束c3设置的范围来设置。显然,初始结构p(·)中约束的顺序会影响参数的输出值。事实上,考虑表p(·),其中约束c3在约束c2之前,如图18所示。在这种情况下,产生的序列是d-e-c3-c2-c-b*-f*-c1-a*,表示参数c在步骤5处根据在步骤4处由约束c2定义的范围来设置。该现象是不可避免的,并且用户的责任是以使得排序算法产生预期序列的方式组织表p(·)。生成设计表的示例设计表生成支配训练模式的多样性,并且因此在执行训练之后神经网络的效率。针对每类对象,算法生成一个设计表。设计表是为了覆盖经遍历的参数值的所有可能组合而构建的。相反,选择随机值以用于设置随机参数。输入是:参数/类表、约束和有序序列q(·)。整体算法可以如下。给定类ck,设计表生成算法可以基于所有经遍历的参数值的穷举遍历。针对经遍历的参数值的每个组合,设计表格都富含mk个构造,并且经遍历的参数值利用所述组合进行设置。然后,通过选择其相应范围内的随机值来设置设计表的随机参数。在下面,整数kt是最右侧的经遍历的参数在排序中的位置,如图19所示。该算法可以像深度优先树遍历那样结构化,如图20所示。图19的“初始化设计表”步骤针对每个参数创建具有零行和一个列的设计表dk(·,·)。为了方便,列利用参数名称进行索引。表达式大小(dk)是指设计表dk的行数,使得dk(size(dk)-i,x)是构造编号size(dk)-i中参数x的值。每次经遍历的参数的元组利用新值来设置时,图19的“丰富设计表”步骤可以启动。该步骤可以如下。然后,可以根据排序、约束激活和随机采样来设置随机参数。记住|x|是排序序列中的符号数量。random(range(x))指令随机选择参数x的范围range(x)内的值。现在用示例来解释该算法。最初的空设计表可以如图21所示。随机构造的数量可以是mk=3。a*b*cdef*表iv-设计表经遍历的参数的相应范围是range(d)={d′,d″,d″′},range(e)={e′,e″}和range(c)={c′,c″}。此外,约束c3表示如果d=d′,则range(c)={c′}。约束c1稍后描述,并且c2不需要描述。通过使用d-e-c2-c3-c排序,由该算法遍历的(虚拟)树可以如下。其特征为10个叶节点,每个叶节点定义与约束兼容的经遍历的参数值的组合。这在图21中示出。在访问最左侧的叶节点之后,可以创建三个构造,根据树的最左侧的分支来设置经遍历的参数c、d、e,并且随机参数a*、b*、f*仍然未被设置。a*b*cdef*1c′d′e′2c′d′e′3c′d′e′表iv-设计表随机参数的范围是range(a*)=[10,40],range(b*)=[10,30]和range(f*)=[5,10]。约束c1表示如果((b*≥20)并且(d=d′)),则(range(a*):=[10,20])设计表可以根据子序列b*-f*-c1-a*利用随机选择的随机参数来完成。例如,设计表的第一构造可以通过以下获得:1、b*:=22.672、f*:=6.513、激活约束c1,其设置范围(a*):=[10,20],因为b*>20。4、a*:=12.23使得:a*b*cdef*112.2322.67c′d′e′6.512c′d′e′3c′d′e′表v-设计表针对每个构造重复相同的过程,得到设计表:a*b*cdef*112.2322.67c′d′e′6.51234.1918.79c′d′e′6.18326.8511.12c′d′e′5.43表vi-设计表现在,访问下一个叶节点,如图22所示。可以将三个附加构造添加到设计表中,并且经遍历的参数可以根据访问的分支来设置。a*b*cdef*112.2322.67c′d′e′6.51234.1918.79c′d′e′6.18326.8511.12c′d′e′5.434c′d′e″5c′d′e″6c′d′e″表vii-设计表随机参数可以通过根据排序在适当范围内随机选择值来设置。a*b*cdef*112.2322.67c′d′e′6.51234.1918.79c′d′e′6.18326.8511.12c′d′e′5.43421.3212.52c′d′e″5.15528.0215.06c′d′e″7.3864.6510.20c′d′e″9.05表viii-设计表该过程可以继续,直到访问第十叶节点为止。产生的设计表格包括三十个构造。模板3dcad模型的示例模板3dcad模型是参数化的3d模型,包括具有尺寸、参数、公式和约束的实体。参数的名称是参数/类表的名称。模板模型是由熟练的用户以这样的方式设计的:通过为参数设置适当的值,潜在地能够创建任何类的任何对象的3d几何形状。逻辑上,此模板模型的名称是根类名称。dassault-systèmes的系统提供此功能。3d模型、图像和训练模式将设计表插入模板模型会自动生成3d模型。事实上,选择插入的设计表中的行使其成为活动构造,其使用构造的值来设置模板模型的参数。更新几何形状计算3d对象的形状。dassault-systèmes的系统提供此功能。读取模板模型图23-26示出了定义沙发类的参数化模型的示例。沙发的上位类可以包括长沙发子类。定义长沙发类可以包括定义“angle_sofa”样式参数,其可以具有六个值的范围:“否”、“右”、“左”、“右+”、“左+”和“双”。这些值由图23示出。“扶手”样式参数还可以利用提供多个扶手的不同值来定义,该范围例如是:{0;1;2;3}。这些范围值在图24中表示。“基座”样式参数还可以提供基座类型,该范围具有例如四个值:“无”、“扶手”、“圆形”,“方形”。这些范围值在图25中表示。长沙发类还可以包括尺寸参数。图26示出了具有不同尺寸参数值的不同实例。沙发类可以还包括纹理参数,提供了例如用于不同部件的材料的列表。一旦声明所有参数及其范围,定义参数化模型可以包括定义产生取参数值作为输入的3d建模对象的函数。鉴于上面描述地定义的参数,定义这样的函数的方法是简单直接的。该过程还可以可选地包括定义参数之间的约束。其他家具类可以以类似的方式定义。表ix提供了不同家具类的参数,这些参数允许针对这些类高效地创建多样的数据集。样式参数可以被标记为要被遍历。尺寸参数和纹理参数可以是(例如,标记为)随机化的。表ix-不同家具类的参数当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1