一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于输出3D模型的变分自动编码器的制作方法

2022-02-24 13:47:28 来源:中国专利 TAG:

用于输出3d模型的变分自动编码器
技术领域
1.本公开涉及计算机程序和系统的领域,并且更具体地涉及与神经网络相关的方法、程序、数据结构和系统,该神经网络被配置为将2d草图作为输入,并输出由2d草图表示的3d模型。


背景技术:

2.市场上提供了许多用于对象的设计、工程和制造的系统和程序。cad是计算机辅助设计的首字母缩略词,例如它涉及用于设计对象的软件解决方案。cae是计算机辅助工程的首字母缩略词,例如它涉及用于模拟未来产品的物理行为的软件解决方案。cam是计算机辅助制造的首字母缩略词,例如它涉及用于定义制造过程和操作的软件解决方案。在这种计算机辅助设计系统中,图形用户界面在技术效率方面起着重要的作用。这些技术可能嵌入在产品生命周期管理(plm)系统中。plm指的是一种商业战略,其帮助企业共享产品数据,应用通用流程,并利用企业知识进行从概念到产品生命尽头的跨越扩展企业概念的产品开发。达索系统(dassault syst
è
mes)(以catia、enovia和delmia为商标)提供的plm解决方案提供了一个组织产品工程知识的工程中心、一个管理制造工程知识的制造中心和一个使企业集成和连接工程和制造中心的企业中心。整个系统提供了一个开放的对象模型,其链接产品、流程和资源,以实现动态的、基于知识的产品创建和决策支持,其驱动优化的产品定义、制造准备、生产和服务。
3.在该上下文中,研究人员一直在寻找解决方案来计算由输入2d草图表示的3d模型。这是一个复杂的问题,因为根据为输入2d草图选择的视角,可能很难找到用户想要的3d模型。例如,矩形的2d草图可以是3d圆柱体(从前视图)或长方体(从任何规范视图)的表示。此外,2d草图可能绘制不准确,因为其线条可能不平滑或不直,或者其透视图可能不符合现实。这些不精确性使这个问题更难解决。
4.现有技术中存在解决该问题的不同方法。
5.delanoy et al.,3d sketching using multi-view deep volumetric prediction,proceedings of the acm on computer graphics and interactive techniques 1.1,2018,pages 1-22,提出了一种通过学习深度卷积神经网络(cnn)来从一张或多张图重建3d形状的数据驱动方法。cnn从线条图中预测体素栅格(grid)的占用情况,并在用户完成所需形状的单个绘图后立即提供初始3d重建。该单视图网络用更新器cnn相补充,该更新器cnn根据从新颖视点创建的形状的新图来改进现有预测。
6.waily and bousseau,sketch-based modeling of parametric shapes,acm/eg expressive symposium-posters,demos,and artworks,2019,提出了一种基于草图的建模系统,其使用深度卷积网络来解释参数形状的草图。所提出的方法专注于依靠两种类型的深度卷积网络进行草图解释来创建简单的形状(长方体、圆柱体、圆锥体、球体、金字塔)。首先,分类网络识别绘制的形状。然后,参数估计网络预测识别形状的位置和尺寸。每个形状类别有一个这样的网络,因为不同的类别具有不同的参数。此外,每个形状在从上方照亮时
投射在地平面上的阴影被渲染并提供给深度网络,以便允许该方法消除形状相对于地面的高度的歧义。
7.li et al.,sweepcanvas:sketch-based 3d prototyping on an rgb-d image,2017,pages 387-399,提出了一种基于草图的交互式工具,其用于在rgbd图像之上进行探索性3d建模,以为最终用户提供一种在图像上创建3d模型的方法。该工具包括一个基于草图的建模界面,它将一对用户笔画作为输入,并通过沿另一个笔画扫过一个笔画立即生成弯曲的3d表面。所提出的方法应用基于马尔可夫随机场(mrf)的优化程序,以从上下文中提取空间平面对以定位和扫过笔画。
8.eitz et al.,sketch-based shape retrieval,acm transactions on graphics(proc.siggraph),2012,vol.31,no.4,pages 31:1

31:10,提出了一种基于草图特征线作为输入的3d对象检索方法,其在计算机生成的对象线图上使用特征袋(bof)方法。该方法基于几何相似性提出了从数据集到用户的匹配模型集合。
9.在这种上下文中,仍然需要改进的解决方案来从输入的2d草图输出由2d草图表示的3d模型。


技术实现要素:

10.因此,提供了一种计算机实现的机器学习方法。该方法包括为神经网络提供变分自动编码器(vae)架构,该神经网络被配置为将2d草图和随机变量作为输入,并输出由2d草图表示的3d模型。机器学习的方法还包括学习神经网络。
11.机器学习的方法可以包括以下各项中的一项或多项:
[0012]-神经网络包括:第一部分,其被配置为将所述2d草图和所述随机变量作为输入并提供相应的输出,以及第二部分,其被配置为将所述第一部分的相应输出作为输入并输出所述3d模型;
[0013]-第一部分包括:第一子部分,其被配置为将所述2d草图作为输入并输出第一潜在向量,以及第二子部分,其被配置为取得所述第一潜在向量和随机变量,并利用随机变量将第一潜在向量重新参数化为第二潜在向量;
[0014]-第二子部分被配置为执行以下操作,输出=μ δ*ε,其中:输出表示所述第二潜在向量,ε表示所述随机变量,μ表示所述第二潜在向量的条件均值,并且δ表示所述第二潜在向量的条件标准差;
[0015]-所述随机变量遵循符合由均值和标准差定义的定律的概率分布,所述随机变量具有均值的相应值和标准差的相应值,并且所述学习包括优化包含损失的目标函数,所述损失惩罚以下各项之间的差异:符合由μ和δ定义的定律的概率分布,以及符合针对均值由所述随机变量的所述相应值以及针对标准差由随机变量的所述相应值定义的定律的概率分布。
[0016]-3d模型由截面和挤出(extrusion)定义,所述截面由位置参数列表定义,并且所述神经网络包括被配置为输出所述列表的值的循环神经网络(rnn);
[0017]-神经网络还被配置为基于所述rnn的最终状态输出所述挤出的值;
[0018]-截面进一步由表示所述截面的类型的数字定义,所述神经网络进一步被配置为输出表示所述数字的概率分布的向量,并且可选地,输出挤出和/或位置参数列表的值进一
步基于表示所述概率分布的向量;
[0019]-3d模型是由参数集合定义的参数化3d模型,所述参数集合包括一个或多个参数的第一子集和一个或多个参数的第二子集,并且所述神经网络被配置为选择性地:输出所述集合的值,以及将来自用户的第一子集的值作为输入,并输出所述第二子集的值;
[0020]-该架构包括向量,为了选择性地输出所述集合的值,该神经网络被配置为:为表示所述第一子集的概率分布的向量产生第一值,输出对应于表示所述概率分布的向量的argmax的第一子集的值,并且进一步基于所述向量的所述第一值来输出所述第二子集的值;并且为了选择性地将来自用户的第一子集的值作为输入并输出第二子集的值,该神经网络被配置为:产生向量的第二值,对于对应于第一子集的值的坐标该第二值的值为1,并且对于所有其他坐标其值为0,所述神经网络被配置为基于所述向量的第二值输出所述第二子集的值;和/或
[0021]-神经网络包括:第一部分,其被配置为将所述2d草图和所述随机变量作为输入并提供相应的潜在向量作为输出,以及第二部分,其被配置为将所述第一部分的相应潜在向量作为输入,所述第二部分包括:第一子部分,其被配置为输出表示所述概率分布的向量,以及第二子部分,其被配置为将相应潜在向量和表示概率分布的向量的串联作为输入,并输出所述第二子集。
[0022]
还提供了一种计算机实现的3d设计方法。3d设计的方法包括:提供学习的神经网络,提供2d草图,将神经网络应用于2d草图和随机变量,以输出由2d草图表示的3d模型。
[0023]
还提供了一种包括指令的计算机程序,所述指令当在计算机系统上执行时,使计算机系统执行该方法。
[0024]
还提供了一种数据结构,其表示学习的神经网络。
[0025]
还提供了一种设备,该设备包括其上记录有计算机程序和/或数据结构的存储器。该设备可以替代地形成或用作非暂时性计算机可读介质,或者作为计算机系统,该计算机系统包括耦合到存储器的处理器。
附图说明
[0026]
现在将通过非限制性示例的方式并参考附图描述实施例,其中:
[0027]-图1示出了系统的示例;
[0028]-图2示出了系统的图形用户界面的示例;以及
[0029]-图3-12示出了该方法。
具体实施方式
[0030]
特此提出一种计算机实现的机器学习方法。机器学习方法包括为神经网络提供架构。神经网络被配置为将2d草图作为输入,并输出由2d草图表示的3d模型。机器学习方法还包括学习神经网络。神经网络被配置为输出由一个2d草图表示的3d模型。这代表了用户基于单个相应2d草图推断(即计算)3d模型的高度人体工程学。
[0031]
从机器学习领域已知,神经网络是包括符合架构的操作的函数,每个操作由包括权重值的数据定义。神经网络的架构定义了每个操作的操作数以及权重值之间的关系。因此,神经网络的学习包括基于为这种学习配置的数据集来确定权重的值。为此,数据集包括
数据片段,每个数据片段形成相应的训练样本。训练样本代表了神经网络在被学习后要使用的情况的多样性。本文提及的任何数据集都可以包括大于1000、10000、100000或1000000的训练样本数量。
[0032]
机器学习方法可以是机器学习过程的一部分,该过程包括用于形成这样的数据集的计算机实现的方法,其可以被称为“数据集形成方法”。数据集形成方法可以在机器学习方法之前执行,或者可替代地,与机器学习方法交错执行。数据集形成方法包括提供(例如,合成)一个或多个3d模型。该数据集形成方法还包括:确定(例如,合成)均代表相应3d模型的一个或多个相应的2d草图(例如,基于生成的3d模型),并在数据集中插入一个或多个训练样本,每个训练样本包括(例如,合成的)3d模型和相应的(例如,合成的)2d草图。
[0033]
在数据集形成方法之后的示例中,神经网络方法的学习可以例如至少部分地基于由数据集形成方法形成的数据集来执行。这种机器学习过程特别高效,并提供了更高的准确性。
[0034]
可替代地,机器学习过程可以包括数据集形成方法,并基于数据集执行任何其他计算机实现的方法(除了所提出的学习方法)以学习神经网络。另外可替代地,机器学习过程可以包括对由任何其他计算机实现的方法(除了所提出的数据集形成方法)提供的数据集执行学习方法,例如用于形成数据集或检索数据集本身的另一种方法。
[0035]
它还提出了一种计算机实现的3d设计方法。3d设计方法包括提供根据机器学习方法学习的神经网络。3d设计方法还包括提供2d草图。3d设计方法然后包括将神经网络应用于2d草图,以输出由2d草图表示的3d模型。3d设计过程指定任何动作或动作系列,其至少是细化3d模型的过程的一部分。因此,该方法可以包括从头开始创建3d模型。该方法最终允许用户输入2d草图并输出一个或多个3d模型,这是用于执行3d设计的人体工程学的方式。
[0036]
3d设计方法形成了用于cad设计的改进解决方案。值得注意的是,学习的神经网络可用于将2d草图转换为实体cad。在cad的上下文中,用学习的神经网络执行这种转换允许实现机器学习领域提供的好处,例如快速或实时执行、不需要繁琐的事先手动编程/编码,以及结果的准确度。本文中,准确度是指3d模型与用户在绘制2d草图时所预期的3d形状之间评估的3d相似度的值,例如可选地测量为在3d模型(例如,3d模型的特征边缘)的2d投影与2d草图之间评估的2d相似度的值。因此,学习方法改善了3d设计上下文中的人体工程学。3d设计的方法可以向用户输出一个单个的3d模型或3d模型的多个提议。在后一种情况下,用户可以根据她/他在设计过程中的意图来选择一个。在示例中,3d设计方法可以包括显示由2d草图表示的一个或多个3d模型的3d图形表示。
[0037]
3d设计的方法可以迭代。在这种情况下,3d设计的方法包括提供神经网络,并迭代地提供2d草图,将神经网络应用于每个2d草图,以每次(例如,自动)输出由2d草图表示的新3d模型。该方法可以包括将新获得的每个3d模型添加到当前设计,从而迭代地/增量地构建由输出的个体3d模型对象组成的(最终)3d模型对象。2d草图的每次提供可以由用户执行,例如通过绘制草图(例如,经由诸如触摸屏或触摸板之类的触摸技术)。如下文进一步描述的,最终的3d模型对象可以表示机械组装件的机械部件。
[0038]
3d设计方法可以包括机器学习方法,或者它可以在之后执行,例如作为机器学习过程的一部分。
[0039]
建模对象是由例如存储在数据库中的数据定义的任何对象。通过扩展,表述“建模
对象”指的是数据本身。根据用于设计建模对象的系统的类型,建模对象可以由不同种类的数据定义。在cad的上下文中,建模对象通常可以是3d建模对象(或3d模型),例如,以表示产品,产品例如零件、或零件的组装件、或可能是产品的组装件。3d模型是建模对象,它形成实体的3d表示,例如,构成真实世界对象的材料的3d空间分布。真实世界对象可能是机械零件或零件组装件,或者可能是机械设计过程中的产品的组装件。3d表示允许从所有角度查看零件。例如,3d模型可以被处理并围绕它的任何轴旋转,或者围绕显示该表示的屏幕中的任何轴旋转。3d模型可以表示实体的表皮(即,外表面)。可以向cad系统提供3d模型以显示给用户和/或供用户对3d模型执行一个或多个cad设计操作。这尤其不包括2d图标,它们不是3d建模的。3d表示的显示有助于设计(即,提高设计人员在统计上完成任务的速度)。这加快了行业中的制造过程,因为产品的设计是制造过程的一部分。
[0040]
该系统实际上可以是cad系统、cae系统、cam系统、pdm系统和/或plm系统的任何组合。在那些不同的系统中,建模对象由对应的数据定义。因此可以说cad对象、plm对象、pdm对象、cae对象、cam对象、cad数据、plm数据、pdm数据、cam数据、cae数据。然而,这些系统并不是相互排斥的,因为建模对象可以由对应于这些系统的任意组合的数据来定义。因此,系统很可能既是cad系统又是plm系统。
[0041]
所谓cad系统,另外意味着至少适于基于建模对象的图形表示来设计建模对象的任何系统,例如catia。在这种情况下,定义建模对象的数据包括允许表示建模对象的数据。cad系统可以例如使用边或线(在某些情况下用面或表面)来提供cad建模对象的表示。线、边或表面可以以各种方式表示,例如非均匀有理b样条(nurbs)。具体而言,cad文件包含可以从中生成几何图形的规范,这转而允许生成表示形式。建模对象的规范可以存储在单个cad文件或多个cad文件中。代表cad系统中建模对象的文件的典型大小在每零件1mb的范围内。建模对象通常可以是数千个零件的组装件。在cad的上下文中,建模对象通常可以是3d建模对象,例如代表产品,产品例如零件或零件的组装件,或者可能是产品的组装件。
[0042]
2d草图是表示2d平面上的3d模型的2d图像。2d草图可能已由用户建立。特别地,2d草图可以是手绘草图。可替代地,2d草图可以已经被合成,即人为地,并且可以由计算机系统自动合成。特别是,数据集形成方法中的手绘图可能是合成的。因此,2d草图是一种2d图像数据结构,其包括一个或多个(2d平面)笔画,这些笔画从3d形状可见的相应视点表示3d形状。一个或多个笔画定义在同一平面中,并表示从相应视点看到的3d形状的透视图。每个笔画是在平面中定义的连续或实质上连续的曲线。
[0043]
在示例中,对于本文中的任何2d草图,2d图像的背景可以是单色的或者可替代地不是单色的。例如,背景可以是照片,用户可以在其上方添加笔画。笔画可以是可识别的,例如,基于与高于预定阈值的照片其余部分的对比度。在机器学习过程中,背景可以由第一颜色的单色背景代替,并且2d草图的识别笔画可以以第二颜色渲染。在示例中,第一颜色可以是黑色,并且第二颜色可以是白色。在其他示例中,第一颜色可以是白色,并且第二颜色可以是黑色。机器学习过程的所有方法,包括机器学习方法和数据集形成方法,以及3d设计方法可以使用相同的第一颜色和第二颜色。可替代地,机器学习过程的方法和3d设计方法可以使用不同的第一颜色和/或第二颜色结合一个或多个变换步骤,来保持它们相应输入和输出的一致性。
[0044]
在示例中,对于本文中的任何2d草图,一个或多个(例如,所有)笔画可以均具有距
另一笔画(例如,距另一笔画的端点)的距离的端点,例如低于预定阈值,例如10或5毫米。在示例中,对于本文中的任何2d草图,笔画自由地表示3d形状。这意味着可以按任何顺序定义笔画,并且没有预定义的约束(例如,必须具有平行和/或正交的笔画),并且它们没有组织成集群(例如,可基于距离获得的),每个集群代表实体的平面。在示例中,本文中的任何2d草图可以替代地或附加地以原始格式提供,例如没有任何与笔画相关联的标签(例如,动作注释,例如创建、挤出、弯曲)和/或没有任何附加数据(例如,图片、用户定义的平行线、深度图像)。
[0045]
2d草图的绘制可以通过与计算机屏幕的图形交互、通过顺序地(例如,实质上连续地)激活定义笔画的屏幕的一系列像素来执行。激活可以经由作用在像素上的触觉设备来执行,例如鼠标(例如,定义笔画的光标移动)或经由用户与触摸屏或触摸板的交互(例如,包括在触摸屏或触摸板上物理触摸绘制笔画的交互)。这在cad领域中被称为草图设计或笔画设计。在替代方案中,可以将纸质草图或任何其他图像的扫描输入到推理方法中。另外可替代地,手绘图可以从存储器中检索或从远程计算机系统接收,例如已经由另一个用户和/或任何先前描述的技术产生。
[0046]
本文中的任何方法都可以被包括在制造过程中,该制造过程可以包括在执行该方法之后,产生与建模对象相对应的物理产品。在任何情况下,由该方法设计的建模对象可以代表制造对象。因此,建模对象可以是建模实体(即,表示实体的建模对象)。制造对象可以是产品,例如零件、或零件的组装件。因为该方法改进了建模对象的设计,该方法还改进了产品的制造,并且因此提高了制造过程的生产率。
[0047]
本文中的任何3d形状都可以表示要在现实世界中制造的产品的几何形状,例如(例如,机械)零件或零件组装件(或等价地,零件的组装件,因为从方法的角度来看,零件的组装件可以被视为零件本身,或者这些方法可以独立地应用于组装件的每个零件),或更一般地说是任何刚体组装件(例如,移动机构)。该产品可以是各种且不受限的工业领域的产品之一,包括:航空航天、建筑、建造、消费品、高科技设备、工业设备、运输、海洋和/或海上石油/天然气生产或运输。3d形状因此可以代表工业产品,其可以是任何机械零件,例如陆地车辆(包括例如汽车和轻型卡车设备、赛车、摩托车、卡车和机动车设备、卡车和公共汽车、火车)的一部分,飞行器(包括例如机身设备、航空航天设备、推进设备、国防产品、航空设备、航天设备)的一部分,海上载具(包括例如海军设备、商用船、海上设备、游艇和工作船、船舶设备)的一部分,通用机械零件(包括例如工业制造机械、重型移动机械或设备、安装的设备、工业设备产品、金属制品、轮胎制品),机电或电子零件(包括例如消费类电子产品、安全和/或控制和/或仪器产品、计算和通信设备、半导体、医疗设备和装备),消费品(包括例如家具、家居和花园产品、休闲用品、时尚产品、硬商品零售商的产品、软商品零售商的产品),包装(包括例如食品和饮料和烟草、美容和个人护理、家用产品包装)。
[0048]
这些方法中的任何一种都是计算机实现的。这意味着该方法的步骤(或实质上所有步骤)由至少一台计算机或任何类似系统执行。因此,该方法的步骤由计算机执行,可能是全自动执行,或者是半自动执行。在示例中,可以通过用户-计算机交互来执行该方法的至少一些步骤的触发。所需的用户-计算机交互级别可能取决于预见的自动级别,并与实现用户意愿的需求保持平衡。在示例中,该级别可以是用户定义的和/或预定义的。
[0049]
还提出了一种包括指令的计算机程序,当其在计算机系统(即,具有耦合到存储器
的处理器的系统)上执行时,使计算机系统执行这些方法中的任何方法。计算机程序可以包括可由计算机执行的指令,该指令包括用于使上述系统执行该方法的装置。该程序可以可记录在任何数据存储介质上,包括系统的存储器。该程序可以例如以数字电子电路或计算机硬件、固件、软件或它们的组合来实现。该程序可以被实现为装置,例如有形地体现在机器可读存储设备中以由可编程处理器执行的产品。方法步骤可以通过可编程处理器执行指令程序以通过对输入数据进行操作并生成输出来执行该方法的功能来执行。因此,处理器可以是可编程的并且被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向数据存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。可以以高级过程或面向对象的编程语言或者汇编或机器语言(如果期望的话)来实现应用程序。在任何情况下,该语言都可以是编译语言或解释语言。该程序可以是完整的安装程序或更新程序。在任何情况下,程序在系统上的应用都会导致执行该方法的指令。
[0050]
还提出了表示根据机器学习方法和/或3d设计方法学习的神经网络的数据结构。
[0051]
还提出了一种设备,该设备包括其上记录有计算机程序和/或数据结构的存储器。该设备可以在saas(软件即服务)或另一服务器、或基于云的平台等上形成或用作非暂时性计算机可读介质。该设备可以可替代地包括耦合到存储器的处理器。该设备因此可以整体或部分地形成系统(例如,该设备是整个系统的子系统)。该系统还可以包括耦合到处理器的图形用户界面。
[0052]
计算机系统可以包括耦合到存储器和图形用户界面(gui)的处理器,该存储器上记录有计算机程序,该计算机程序包括用于执行该方法的指令。存储器还可以存储数据库。该存储器是适合于这种存储的任何硬件,可能包括几个物理上不同的部分(例如,一个用于程序,而可能一个用于数据库)。
[0053]
图1示出了一个计算机系统的示例。
[0054]
该示例的客户端计算机包括连接到内部通信总线1000的中央处理单元(cpu)1010、也连接到总线的随机存取存储器(ram)1070。客户端计算机还配备有图形处理单元(gpu)1110,其与连接到总线的视频随机存取存储器1100相关联。视频ram 1100在本领域中也称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储设备(例如,硬盘驱动器1030)的访问。适合于有形地体现计算机程序指令和数据的大容量存储设备包括所有形式的非易失性存储器,包括例如半导体存储器设备,例如eprom,eeprom和闪存设备;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及cd-rom盘1040。上述各项中的任一项可以通过专门设计的asic(专用集成电路)进行补充或合并在其中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如光标控制设备、键盘等。在客户端计算机中使用光标控制设备以允许用户将光标选择性地定位在显示器1080上的任何期望位置处。此外,光标控制设备允许用户选择各种命令并输入控制信号。光标控制设备包括多个信号生成设备,以用于将控制信号输入到系统。通常,光标控制设备可以是鼠标,该鼠标的按钮用于生成信号。替代地或附加地,客户计算机系统可以包括敏感垫和/或敏感屏幕。
[0055]
图2示出了本文中任何系统的gui的示例,其中该系统是cad系统。
[0056]
gui 2100可以是典型的类似cad的界面,具有标准菜单栏2110、2120以及底部和侧边工具栏2140、2150。这样的菜单栏和工具栏包含一组用户可选择的图标,每个图标与如本领域已知的一种或多种操作或功能相关联。这些图标中的一些与软件工具相关联,适用于
编辑gui 2100中显示的3d建模对象2000和/或在gui 2100中显示的3d建模对象2000上工作。软件工具可以分组到工作台中。每个工作台都包含软件工具的子集。特别地,工作台之一是编辑工作台,适用于编辑建模产品2000的几何特征。在操作中,设计者可以例如预先选择对象2000的一部分并且然后发起操作(例如,改变尺寸、颜色等)或通过选择适当的图标来编辑几何约束。例如,典型的cad操作是对屏幕上显示的3d建模对象的冲压或折叠进行建模。gui可以例如显示与显示的产品2000相关的数据2500。在图中的示例中,显示为“特征树”的数据2500及其3d表示2000属于包括制动钳和制动盘的制动组装件。gui可以进一步显示各种类型的图形工具2130、2070、2080,例如用于促进对象的3d定向、用于触发对编辑产品的操作的模拟或呈现所显示产品2000的各种属性。光标2060可以由触觉设备控制以允许用户与图形工具交互。
[0057]
现在讨论机器学习方法和3d设计方法的各个方面。
[0058]
根据第一方面,在机器学习方法中,为神经网络提供的架构是变分自动编码器(vae)架构。在这种情况下,神经网络被配置为将随机变量作为附加输入。这形成了从输入2d草图输出由2d草图表示的3d模型的改进的解决方案。
[0059]
具体而言,包括输入随机变量的变分自编码器提高了学习方法相对于神经网络输入数据的不准确性的鲁棒性。实际上,输入的2d草图可能不精确(例如,当2d草图包含笔画之间的间隙或当2d草图是手绘时),并且vae的特征提高了该方法输出具有不精确输入数据的3d模型的能力。
[0060]
根据第一方面,在3d设计方法中,将根据第一方面的学习的神经网络应用于2d草图和随机变量,以输出由2d草图表示的3d模型。此特征改进了3d设计方法的人体工程学,因为它提高了设计方法在输入的2d草图有一些不精确或不完整时(例如,当用户打算更快地计算3d模型时/或当他/她当前正在绘图时)准确输出3d模型的能力。
[0061]
在vae中输入一个随机变量也使得根据第一方面的3d设计方法能够从单个2d草图输出多个3d模型。每个输出的3d模型对应一个随机变量。这形成了一种改进的解决方案,以从输入的2d草图输出由用户在向用户提议的多个3d模型之中选择的2d草图表示的3d模型。当输入的2d草图不精确、不完整或2d草图不能明确表示单个3d模型时,这尤其高效。参考图3,vae允许获得正则化的潜在空间并在输出中引入随机性。如前所述,2d矩形可以从前视图表示3d圆柱体,或者从任何规范视图表示3d盒子(box),因此该方法可能会提出圆柱和盒子二者。该图示出了正则化潜在空间310和非正则化潜在空间320的图示。稍后提供关于正则化的更多细节。人们可以观察到,在正规化潜在空间310中,与非正规化潜在空间320相比,颜色区域彼此更接近。因此,选择蓝色区域312附近的潜在向量(例如,表示圆柱体)可以给出绿色区域314中的潜在向量(例如,代表盒子)。相比之下,蓝色区域322附近的潜在向量可能不会给出绿色区域324中的潜在向量。因此,如果2d草图不确定,则vae方法可能会提出多个不同的解决方案,即对应于正则化潜在空间310中的不同区域的3d模型,例如,一个3d模型对应于区域312,并且另一个对应于区域314。
[0062]
根据第二方面,3d模型是由参数集合定义的参数化3d模型。该参数集合由一个或多个参数的第一子集和一个或多个参数的第二子集组成。根据第二方面,在机器学习方法中,神经网络被配置为选择性地(1)输出该集合的值,以及(2)将来自用户的第一子集的值作为输入,并输出第二子集的值(换言之,可以根据选项(1)或选项(2)替代地/选择性地使
用神经网络)。这形成了从输入2d草图输出由2d草图表示的3d模型的改进的解决方案。
[0063]
2d草图的(例如,完全)参数化3d模型可通过修改少量参数轻松编辑,这与3d模型的固定表示(如网格(mesh)表示、体素占用栅格或点云)不同。在示例中,用于参数化3d模型的参数数量低于其细分网格的面数、其体素栅格的占用栅格数、或其点云中标记点的数量,其系数高于5(例如,高于10)。每个参数化3d模型可以由低于100(例如,低于50)的多个参数定义。因此,参数化特征以紧凑和有组织的方式表示3d模型。此外,如cad领域所知,作用于单个参数可能会产生全局影响,而在网格或体素栅格或点云的情况下,作用于单个几何实体仅会产生局部影响。例如,与移动/增加大量网格三角形相反,本文中的任何3d模型可以被配置为通过修改小于5(例如,小于3)的数量的参数值来按比例放大其占据的体积。此外,参数化3d模型在语义上比网格或体素栅格或点云对用户更有意义。
[0064]
根据第二方面,用户可以选择性地固定定义输出的3d模型的数据的一部分。因此,可以高效地学习神经网络以输出特定类型的3d模型,其特征在于具有一个或多个参数的第一子集的特定值。这改善了学习。
[0065]
在示例中,3d模型可以通过一个或多个形状参数来参数化,例如包括一个或多个边界点的一个或多个定位参数(例如,3d坐标)(例如,当3d模型表示棱柱时的角点)。形状参数可以附加地或替代地包括对应于一个或多个维度的一个或多个长度(例如,长方体的边长和/或棱柱的高度)。本文中的任何3d模型可以替代地或附加地由类型参数定义(例如,当3d模型表示棱柱时截面的类型)。本文中的任何3d模型可以替代地或附加地由取决于其类型的附加形状参数定义,可选地包括一个或多个定位参数(例如,当3d模型表示棱柱时,是截面的角点的3d坐标)。3d模型的这种参数化对于用户编辑来说特别符合人体工程学。
[0066]
在下文中,该参数集合的值由第一子集的值和第二子集的值组成。对集合的值的选择性输出意味着用户可以选择输出(整个)参数集合的值或将参数的第一子集的值作为输入提供给神经网络。在前一种情况下,第一子集和第二子集的值不是由用户输入的,而是均由神经网络(自动)计算的。在这种情况下,2d草图可能是神经网络的唯一输入,并且第一子集和第二子集的输出值由神经网络计算。在后一种情况下,神经网络可以使用3d模型的第一参数集合的输入值来输出第二子集的值。
[0067]
在示例中,一个或多个参数的第一子集可以由类型参数中的一个或多个组成,而一个或多个参数的第二子集可以由形状参数中的一个或多个组成。因此,用户可以将神经网络的输出限制为某种类型(例如,具有三角形截面的棱柱),同时让神经网络自由计算形状。
[0068]
根据第二方面,在3d设计方法中,选择性地提供一个或多个参数的第一子集的值,以输出一个或多个参数的第二子集的值。因此,用户能够将定义3d模型的部分参数设置为模型的输入并获得其余参数。该特征通过允许用户输出特定类别的3d模型(即,具有表征该类别的一个或多个参数的某个预定义集合)来改进3d设计方法的人体工程学。在3d设计方法的示例中,用户可能已经决定了第一子集的一个或多个参数的值,或者有一些实际限制来选择它们。
[0069]
根据第三方面,在机器学习方法中,3d模型是由截面和挤出组成的参数集合定义的参数化3d模型。这提供了3d模型的简单且紧凑的可编辑参数化,并形成了一种从输入的2d草图输出由2d草图表示的3d模型的改进的解决方案。
[0070]
在示例中,该参数集合在不同类别的3d模型之中是公共的,每个类别可以由该参数集合中的一个或多个参数表征。根据第三方面的机器学习学习单个网络,然后使用该网络生成几个类别的3d模型。单个网络是指在机器学习方法中针对不同类别的3d模型一起学习神经网络的单组操作和权重值。换句话说,学习包括单个损失的单个最小化,即使可能是逐个小批量(mini-patch)地进行,例如,单个随机梯度下降。因此,单个网络不同于几个神经网络的组合,其中可以针对一个或多个类别的3d模型来学习每个网络,通过相应类别的选择器连接在一起。
[0071]
在示例中,该截面可以由表示该截面的几何类型的类型参数和一个或多个(例如,两个或更多个)形状参数来定义。形状参数可以是位置参数列表。在示例中,挤出可以由3d空间中的线定义。在示例中,挤出线可以是直线或曲线。直线可以垂直于截面;因此,挤出可以用挤出长度来表示。
[0072]
根据第三方面,在3d设计方法中,将学习的神经网络应用于2d草图,以输出由截面和挤出组成的参数集合的值。此特征改进了3d设计方法的人体工程学,因为它为用户提供了3d模型的简单且紧凑的可编辑参数化。
[0073]
该方法的不同方面可以组合在一起。
[0074]
例如,第一方面可以与第二方面组合。在这种情况下,3d模型由参数集合定义,该参数集合由一个或多个参数的第一子集和一个或多个参数的第二子集组成,并且神经网络具有vae架构。神经网络被配置为将随机变量作为附加输入。神经网络还被配置为选择性地输出集合的值并将来自用户的第一子集的值作为输入,并输出第二子集的值。这形成了从输入2d草图输出由2d草图表示的3d模型的改进的解决方案。
[0075]
因此,将3d设计方法应用于2d草图和随机变量,以输出由2d草图表示的3d模型,并且可以选择性地,提供一个或多个参数的第一子集的值,以输出一个或多个参数的第二子集的值。在这样的选择中,神经网络的vae架构可能会成为基于第一子集的输入值的条件vae。这种架构被称为条件变分自编码器(cvae)。
[0076]
作为另一示例,第二方面可以与第三方面组合。在这种情况下,3d模型由截面和挤出定义,其中截面和挤出由参数集合定义,该参数集合由一个或多个参数的第一子集和一个或多个参数的第二子集组成。然后,第一子集可以由代表截面类型的数字组成。在示例中,该数字可以表示形成该截面的边的数量。每条边可以是直线(段)或曲线(弧)。第二子集可以包括定义挤出的参数和/或进一步定义截面的参数。
[0077]
作为又一示例,第一方面可以与第三方面组合。在这种情况下,3d模型是由参数集合定义的参数化3d模型,该参数集合由截面和挤出组成。3d设计方法输出可能具有不同类型截面的一个或多个3d模型。
[0078]
最后,第一方面、第二方面和第三方面可以结合在一起。在这种情况下,将3d设计方法应用于2d草图和随机变量,以输出由2d草图表示的3d模型,并选择地提供截面类型,以输出挤出和/或进一步定义该挤出的参数的值。
[0079]
然后,第一子集可以由代表截面类型的数字组成。在示例中,该数字可以表示形成该截面的边的数量。每条边可以是直线(段)或曲线(弧)。第二子集可以包括定义挤出的参数和/或进一步定义截面的参数。
[0080]
现在讨论数据集形成方法的示例。
[0081]
在示例中,数据集形成方法可以包括为一个或多个训练样本生成随机值。对应于一个或多个训练样本的随机值的生成可以是学习方法的一部分,例如可以“即时(on the fly)”生成随机值。可以根据概率分布(例如,正态分布)选择随机值,可能具有预定义的参数(例如,标准正态分布)。
[0082]
在示例中,3d模型可以是由参数集合定义的参数化3d模型,该参数集合由一个或多个参数的第一子集和一个或多个参数的第二子集组成。该数据集形成方法可以包括提供初始数据,该初始数据包括对应于一个或多个参数的第一子集的一个或多个参数域的第一离散子集,以及对应于一个或多个参数的第二子集的一个或多个参数域的第二离散子集。可以基于第一子集和/或第二子集在它们相应的参数域中的选择值基于这种初始数据来执行3d模型的合成。
[0083]
在合成3d模型时执行的任何选择都可以经由(例如,随机)采样来执行。这允许生成相对较好地表示真实情况的多样性的数据。这因此导致最终准确的学习。任何(例如,随机)抽样可以包括要选择的变量取值的集合内的均匀(例如,随机)抽样(例如,随机均匀抽样是根据均匀概率分布的随机抽样)。可替代地,采样可以包括随机非均匀采样,其中选择一些值的概率高于选择其他值的概率。更高的概率可能归因于在3d设计方法的应用中更频繁出现的值。
[0084]
在特定示例中,数据集形成方法可以包括提供初始数据,该初始数据包括来自截面类型的离散集合的截面类型,以及在该截面类型的情况下一个或多个形状参数的一个或多个参数域的相应离散集合。可以基于这样的初始数据来执行3d模型的合成。特别地,数据集的合成可以包括生成表示截面类型的整数,并且基于该数量生成位置参数的列表和挤出的值。因此,完全定义了3d模型。
[0085]
在根据第三方面的数据集形成方法的高效示例中,该方法可以选择截面类型的值(例如,对应于三角形的值)、所选截面类型的位置参数的一个或多个值(例如,三角形截面角的3d坐标)、以及垂直于截面的挤出长度的值。在本示例的一些选项中,截面的位置参数可以对应于截面的角,并且可以在单位圆上进行选择。在本示例的其他选项中,可以选择截面的位置参数和挤出长度的值,以获得与这些位置参数的集合相对应的最大3d模型以及适于单位球体中的挤出。特别是,对于缩放,3d模型的边界框重新居中于坐标系的原点((0,0,0))。然后以缩放比例重新缩放3d模型,以获得适于单位球体中的最大的3d模型。为了重新缩放模型,我们简单地将3d模型的每个点的范数乘以缩放比例。数据集的这种缩放改进了学习。
[0086]
在示例中,数据集形成方法可以通过应用随机旋转,用来自单个3d模型的几个2d草图填充数据集。在其他示例中,可替代地,3d模型可以保持固定并且该方法可以从随机观察方向获得几个2d草图,由从单位球体上的选定点到其中心的向量表示。在这两个示例中,然后可以将2d草图计算(例如,投影)到垂直于观察方向的平面。在示例中,计算出的2d草图可以以黑色和白色渲染,其中所渲染的边缘可以是黑色的(例如,到大小为256像素乘以256像素的照片),并插入到数据集中。在示例中,插入的2d草图的颜色被反转以获得黑色背景和白色线条。这使神经网络的输入的2d草图中的零值数量最大化。因此,这改进了学习。渲染草图的值可以从标准[0,255]重新缩放到[0,1]。
[0087]
在示例中,该方法可能会向草图的线添加一些随机噪声。该方法可以将噪声添加
到定义草图的每条线和/或每条线的端点的一个或多个参数。此类示例提高了在此类数据集上学习的神经网络的、针对输入的2d草图的不精确的鲁棒性。
[0088]
现在讨论学习方法的示例。
[0089]
该学习方法形成了cad设计的改进的解决方案。值得注意的是,学习的神经网络可用于将2d草图转换为3d模型。在cad的上下文中,正如已经特别讨论过的,这特别有用。学习可以包括基于数据集的至少一部分的监督训练。在这种情况下,对于每个2d草图,数据集的所述至少一部分包括与2d草图一起形成(标记的)训练样本的相应3d模型。数据集的所述至少一部分可以根据任何方法提供,例如根据数据集形成方法形成。
[0090]
在特别高效的示例中,学习方法可以包括基于由数据集形成方法形成的数据集的监督训练。如从机器学习领域已知的,每次训练可以包括迭代地处理相应的数据集(例如,逐个小批量地),以及沿着迭代处理修改神经网络的权重值。这可以根据随机梯度下降来执行。可以以任何方式为每次训练初始化权重值。权重值可以以任何任意方式初始化,例如随机初始化或每个都初始化为零值。
[0091]
在示例中,根据机器学习方法的第一方面,神经网络被配置为将2d草图和随机变量作为输入。学习方法可以包括根据概率分布(例如,n(0,1))为输入的随机变量生成值的步骤。学习方法可以在学习过程中为每个训练样本“即时”生成随机数。
[0092]
学习可以包括最小化来自训练样本的相应2d草图的损失函数,其中损失函数代表训练样本集的每个3d模型与神经网络输出的3d模型之间的差异。
[0093]
在示例中,根据机器学习方法的第二方面和第三方面,损失可以惩罚定义每个训练样本的3d模型的参数与由神经网络计算的相应参数之间的差异。在一个特别精确的示例中,根据机器学习方法的第三方面,差异可以包括定义每个训练样本的3d模型的截面的位置参数(例如,点的坐标)与其相应的预测值之间的均方误差和/或每个训练样本的3d模型的挤出参数(例如,挤出长度)与其相应的预测值之间的均方误差。在另一个特别精确的示例中,根据机器学习方法的第三方面,差异可以包括由方法计算出的、每个训练样本的3d模型的截面类型与类型或者每个类型的概率值之间的差别的度量。
[0094]
在示例中,根据机器学习方法的第一方面,神经网络,损失函数可以包括正则化损失,其带有用于惩罚随机变量(ε)的概率分布(例如,n(0,1))与由均值(μ)和标准差(δ)定义的概率分布(例如,n(μ,δ))之间的差异的项。学习方法可以在学习开始时初始化均值和标准差的值。学习方法可以在学习过程期间计算均值和标准差的值。损失函数可以使用两个概率分布之间的不同距离和/或散度来测量差异。在一个特别高效的示例中,所述概率分布之间的差异是kullback-leibler散度损失。
[0095]
回到图3,可以观察到kullback-leibler散度损失的正则化效果。在非正则化潜在空间320中,对应于不同计算均值和/或标准差的不同区域可以完全分离。因此,根据第一方面的方法可能失去从除了具有最小重建损失的区域之外的其他区域提出3d模型的可能性。重建损失可以表示生成的3d模型(例如,定义3d模型的参数)中的误差。在目标函数中包括kullback-leibler散度损失可能会强制神经网络考虑重建损失和输入数据随机性之间的平衡。此外,在目标函数中包括kullback-leibler散度损失会促使预测均值在0附近重新组合,并且标准差在1左右。这些影响可能导致使不同区域在正则化潜在空间310中彼此更接近。
[0096]
现在讨论该方法的第一方面。
[0097]
根据第一方面,神经网络可以包括第一部分和第二部分。第一部分可以被配置为将2d草图和随机变量作为输入并提供相应的输出。第二部分可以被配置为将第一部分的相应输出作为输入并输出3d模型。这里,神经网络的一部分是指神经网络的架构和对应权重的虚拟分组。
[0098]
与在解码阶段之前由一个或多个解码器引入随机变量相比,被配置为将随机变量作为包括编码器的第一部分中的输入可以形成对输出的改进的解决方案。这是因为它在解码阶段保持输入草图的一致性,因为所有解码器解码相同的潜在向量。此外,这修复了将在每个解码器中解码的最终潜在向量。
[0099]
第一部分可以包括第一子部分和第二子部分。第一子部分可以被配置为将2d草图作为输入并输出第一潜在向量。第二子部分可以被配置为取得第一潜在向量和随机变量ε,并将第一潜在向量重新参数化为具有随机变量的第二潜在向量。潜在向量是指神经网络的数据块,在从相应输入计算神经网络输出的过程中,它充当中间结果。潜在向量可能无法直接访问或输出。在第一方面的一个特别高效的示例中,第一子部分可以是卷积神经网络(cnn)。
[0100]
第二子部分可以被配置为计算第二潜在向量的“条件平均值”μ和“条件标准差”δ。条件均值和条件标准差分别表示均值向量和标准差向量。本文中的重新参数化是指进行所谓的“重新参数化技巧(re-parameterization trick)”,其中第二子部分的输出(即,第二潜在向量)可以根据以下公式通过随机采样来计算:
[0101]
输出=μ δ*ε
[0102]
其中输出表示第二潜在向量。因此,标准差的任何元素可以乘以作为偏移的随机变量并且可以被添加到均值以获得第二潜在向量。这种用于获得第二潜在向量的公式关于μ和δ是可微的。这种可微性使得训练神经网络成为可能,例如,使用梯度下降法。
[0103]
根据该第一方面,随机变量ε可以遵循符合由均值和标准差定义的定律(n(.,.))的概率分布,随机变量具有均值的相应值(例如,0)和标准差的相应值(例如,1)。在示例中,该定律可以是正态分布定律。在理想学习的神经网络中(即,当神经网络的相应学习权重没有误差时),条件均值和条件标准差应表示与随机变量ε相同的分布,在示例中,n(μ,δ)=n(0,1)。因此,根据该第一方面,学习可以包括优化目标函数,该目标函数包括这两个概率分布之间的损失。包含这样的损失项在优化目标函数方面具有正则化效果,因为它有助于对潜在空间进行正则化。这种正则化效果可以与机器学习领域中广泛使用的“l
2-正则化”损失的效果进行比较,以惩罚网络的大权重。为了避免所有正则化的权重变为零,具有正则化效果的损失项的相关系数可以选择得较小。稍后将讨论根据该方面的学习示例。
[0104]
现在讨论该方法的第二方面。
[0105]
根据第二方面,该架构可以包括数据片段。为了选择性地输出集合的值,神经网络可以被配置为:产生数据片段的第一值,基于数据片段的所述第一值确定第一子集的值,以及进一步基于该数据片段的所述第一值确定第二子集的值。为了选择性地将来自用户的第一子集的值作为输入并输出第二子集的值,神经网络可以被配置为:基于第一子集的值产生该数据片段的第二值,基于数据片段的第二值输出第二子集的值。
[0106]
数据片段可以表示神经网络中的数据块,或者包括一个或多个操作和/或一个或
多个数据块的神经网络的一个或多个层。数据片段的第一值和第二值表示数据块是如何填充的:神经网络可以在其执行期间通过计算自动填充数据片段的第一值;第二值经由用户交互与神经网络执行独立地进行填充。
[0107]
此外,根据第二方面,神经网络可以包括操作,即函数。该函数可以是预先确定的,例如恒定的,并且在神经网络的执行期间预先确定。为了选择性地输出该集合的值,其中第一子集的值是基于所述第一值产生的,第一子集的值对应于该数据片段的第一值的函数的图像。为了选择性地将来自用户的第一子集的值作为输入并输出第二子集的值,第二值是根据函数的第一子集的值的原像(preimage)。由于通常根据函数可能存在值的多于一个原像,因此根据标准选择第二值作为可容许原像之一。标准可能是选择具有最大向量无穷范数的原像。因此,可以在推理时使用该函数(例如,argmax函数,如下所述),以便将来自用户的第一子集的输入值转换为第二值。神经网络使用第二值来计算第二子集。
[0108]
根据第二方面,该数据片段可以是表示第一子集的概率分布的向量,并且该函数可以是argmax函数。此外,该数据片段的第二值可以是向量,该向量对于对应于第一子集的值的坐标具有值1,并且对于所有其他坐标具有值0。
[0109]
在根据第二方面的3d设计方法的示例中,在用户为第一子集提供值之前,可以将神经网络应用于2d草图,以输出一个或多个相应的值,每个值用于该集合,并且可以向用户显示一个或多个3d模型。用户可以在显示一个或多个3d模型的同时提供第一子集的值。
[0110]
现在讨论该方法的第三方面。
[0111]
在这方面,3d模型是通过挤出定义的参数化模型,即沿挤出线扫过截面。截面的几何类型由数字表示。神经网络还被配置为输出表示数字的概率分布的向量。
[0112]
该截面可以是2d的,即平面的,并且由两条或更多条边组成,每条边是一条直线(段)或一条曲线(弧)。因此,截面类型的表示数字可以表示形成截面(nbsides)的边(段或弧)的数量。曲线可以以各种方式表示,例如样条或非均匀有理b样条(nurbs)。
[0113]
该截面可以由位置参数列表进一步定义。位置参数的数量可以等于截面的边数。每个位置参数可以可选地包括一对3d点。可替代地,一个或多个位置参数可以包括一个单个3d点。截面可以完全由代表截面几何类型的数字和位置参数列表来定义。该截面可以进一步由与每对预测的点相关联的标志来定义,以表示相应的边是线段还是弧。
[0114]
根据这个方面,神经网络的架构可以包括循环神经网络(rnn),其被配置为输出列表的值。rnn在计算序列列表的值方面非常高效,因为列表中的任何元素都可以相对于列表中已经计算的元素进行计算。
[0115]
rnn可以包括一个或多个长短期记忆(lstm)单元。lstm单元的数量可以等于列表的元素数量。可替代地,该架构可以是静态的,并且对于不同类型的截面,lstm单元的数量可以是固定的。lstm单元的数量可能等于定义不同类型截面所需的位置参数的最大数量。具有静态架构可能会改善训练的计算时间。每个lstm单元都可以归属于列表中的元素之一,并被配置为输出该元素的值。在示例中,rnn可以被全连接(fc)层替换。
[0116]
神经网络还可以被配置为基于rnn的最终状态输出挤出的值。挤出线可以用直线或曲线表示。曲线可以以各种方式表示,例如样条或非均匀有理b样条(nurbs)。在示例中,曲线可以由位置参数的第二列表定义;每个位置参数可选地包括一对3d点。神经网络可以包括被配置为输出第二列表的值的第二rnn。在示例中,挤出线可以是垂直于截面的直线,
因此它可以由挤出长度(h)的标量参数表示。在示例中,每个位置参数是一个或一对3d点,其表示位于截面边界上的点。
[0117]
在该方面的优选示例中,3d模型是圆柱体或棱柱体,其挤出与截面正交。
[0118]
现在讨论不同方面的组合。
[0119]
在示例中,可以组合根据第一方面和第二方面的机器学习方法。这种组合可以包括包含两部分的神经网络。第一部分可以被配置为将2d草图和随机变量作为输入并提供相应的潜在向量作为输出,并且第二部分可以被配置为将第一部分的相应潜在向量作为输入。第一部分可以与根据第一方面的第一部分相同。潜在向量可以与根据第一方面的第二潜在向量相同。第二部分可以包括被配置为输出表示概率分布的向量的第一子部分,以及被配置为将相应潜在向量和表示概率分布的向量的串联作为输入并输出第二子集的第二子部分。第一子部分可以是全连接(fc)层。根据第二方面的特征,第一子部分可以可选地将来自用户的第一子集的值作为输入。在示例中,神经网络可以被配置为产生向量的第二值,该第二值对于对应于第一子集的值的坐标具有值1并且对于所有其他坐标具有值0。
[0120]
在示例中,可以组合根据第一方面和第三方面的机器学习方法。在这样的示例中,可能存在神经网络的一部分,其被配置为将串联rnn的最终状态的向量和至少一个表示概率分布的向量作为输入,并输出挤出的值。在示例中,表示概率分布的向量是第二潜在向量。该部分可以是fc层。
[0121]
在第二方面与第三方面的组合中,一个或多个参数的第一子集可以由代表截面类型的数字组成。这个数字可能归属于将argmax函数应用于该段数据的概率分布的向量。此外,选择根据函数的值的原像,使得它与这样的向量一致:对于与代表类型的数字的值相对应的坐标其具有值1并且对于所有其他坐标其具有值0。此外,第二子集可以包括定义挤出的参数和/或进一步定义截面的位置参数列表。
[0122]
现在参考图4-12讨论这些方法的实施方式。这些实施方式集中在简单且参数化的3d图元(primitive)的重建,这些3d图元是:参数化的圆柱体、盒子和规则棱柱。图4示出了这种图元的示例。任何3d图元的3d模型由扫过表示(sweep representation)来表示,使得每个3d模型可以由3d平面截面和垂直于该截面的3d直线挤出线定义。
[0123]
这些实施方式的可能变型可以允许覆盖扫过表示所表示的更复杂的3d形状。在这些3d形状中,截面可以是不规则的和/或线段和弧的组合和/或挤出线可以是由样条线表示的曲线,即一组3d点。
[0124]
为了从用户2d草图预测3d模型,这些方法的实施方式使用了神经网络深度学习算法。该算法允许从单个2d草图生成多个参数化3d模型。神经网络还可以在输入中接受用户反馈,以约束预测模型的类型。
[0125]
在这些实施方式中,神经网络是一个基础模型(vanilla model),并从2d草图返回一个单个3d模型。但是变型可能允许从2d草图返回几个3d模型,例如,如果神经网络包含表示要输出的3d模型数量的输入参数。
[0126]
在这些实施方式中,神经网络是一个vae模型,并被配置为将一个或多个随机变量作为输入,以从2d草图的单个输入产生一个或多个提议。每个输入的随机变量对应于每个提议的3d模型。随机变量从标准高斯分布n(0,1)中采样。
[0127]
在这些实施方式的一个选项中,神经网络特别地是cvae模型并且包括条件变量以
强加3d模型的类型。cvae模型从2d草图返回期望的强加类型的一个或多个3d模型。换句话说,神经网络既可以用作vae或者cvae。
[0128]
在这些实施方式中,每个3d模型都可以通过以下方式完整描述:
[0129]-与定义截面的点数相对应的边数(nbsides)。它也可以看作是图元类型。在该示例中,边的最大数量限制为5。此外,边数2至5分别归属于圆柱体、三棱柱、盒子或立方体和五棱柱。
[0130]-一组3d点(点)作为定义截面点的最多5对3d点的列表。例如:点=[{(x1,y1,z1),(x
′1,y
′1,z
′1)},

,{(x5,y5,z5),(x
′5,y
′5,z
′5)}]在示例中,一对两个点用于描述截面的弯曲边,例如圆柱体。符号点[i][0]和点[i][1]用于每对3d点中的第一元素和第二元素。
[0131]-与每对点相关联的标志,用于表示相应的边是线段还是弧。标志等于0代表线段,并且标志等于1代表弧。一个圆柱的所有对的点的标志都是1,并且框和正棱柱的所有对的点的标志都是0。
[0132]
3d模型的构造参考图5a和图5b进行解释。
[0133]
首先,在3d空间中考虑定义截面的点,即[0,nbsides[中i的点[i]。一般情况下,这些点可能不位于同一个2d平面中;因此,计算点的均值平面。对应于一组点的均值平面意味着这样的平面:该平面使其到每个点的距离之和最小。均值平面可以通过本领域的任何已知方法计算。这些点按角度的升序排列。每个点[i]的归属角可以在均值平面上定义为连接点[i]和均值平面上的参考点的线段与位于均值平面上并通过参考点的参考线之间的角。每个点都正交投影到该平面。每个投影点都可以用与原始点相同的符号表示,点[i]。然后,如果点[i]对应的标志代表线段,即等于0,则通过在每个点[i][0]和点[(i 1)%nbsides][0](其中,i在[0,nbsides[中)之间画一条线得到封闭的平面截面。当b非零时,用于两个整数a和b的符号a%b表示数a到b的除法的余数。如果点[i]的对应标志表示弧,即等于1,则在每个点[i][0]和点[(i 1)%nbsides][0]之间绘制一条曲线,使得其通过点[i][1](其中,i在[0,nbsides[中)。截面的结果曲线是圆形或椭圆形。此外,挤出是用均值平面(n)法线方向上的挤出长度(h)计算的。
[0134]
参考图6,讨论了这些实施方式的变型,其中截面沿着弯曲的挤出线挤出。该部分包括弧和线段二者,并由四个位置参数列表表示[{(x1,y1,z1),(x
′1,y
′1,z
′1)},(x2,y2,z2),(x3,y3,z3),(x4,y4,z4)],其中第一个位置参数由一对参数组成,列表中的每个参数代表3d中截面边界的一个点的笛卡尔坐标。挤出线由样条表示,其度数可选地小于3,由参数列表[(x
h,1
,y
h,1
,z
h,1
),(x
h,2
,y
h,2
,z
h,2
),(x
h,3
,y
h,3
,z
h,3
),(x
h,4
,y
h,4
,z
h,4
)]定义。
[0135]
在这些实施方式的另一种变型中,可以将标志概括为取0和大于1的n之间的整数值。标志的每个值指示线段或曲线类型(例如,圆弧、样条或nurbs)。
[0136]
根据示例清楚的是,参数集nbsides、点和h足以参数化和构建3d图元的3d模型。
[0137]
现在参考图7讨论用于该特定参数选择的数据集形成的示例。
[0138]
在示例数据集形成方法中,对截面的边数进行随机采样,并根据区间[2,5]中的整数的均匀概率分布对nbsides进行采样。在此示例的变型中,nbsides根据来自区间[2,5]中整数的非均匀概率分布进行采样。与nbsides的其他值相比,圆柱(nbsides=2)和盒子(nbsides=4)的非均匀概率分布具有更大的值,因为圆柱和盒子在实际3d设计中出现的频率更高。在区间[h
min
,h
max
]的最大值和最小值之间对挤出长度(h)进行均匀采样。h
min
和h
max
值由用户设置或通过数据集形成方法自动设置为默认值,例如分别设置为1和10。此外,当nbsides=3或5时,计算参数点以获得棱柱的规则截面,例如通过选择均匀距离处的圆上的nbsides点数。然后将所选点按其在极坐标系中对应角度的升序排序。对于盒子,nbsides=4,在得到其他棱柱的规则截面后,在区间[r
min
,r
max
]的最大值与最小值之间均匀采样新的随机参数(r),对应于两边之间的长度比。r
min
和r
max
值由用户设置或通过数据集形成方法自动设置为默认值,例如分别设置为1和10。在数据集形成方法的一个选项中,该方法在nbsides=3、4或5时为3d模型生成非规则截面,例如通过选择单位圆盘内的nbsides点数。然后将所选点按其在极坐标系中对应角度的升序排序。
[0139]
从上述采样的叉积中采样原始3d模型。在相对于原点的随机旋转被应用于图元3d模型以模拟随机视点之后。在示例中,随机旋转相对于x轴和z轴应用,并且其值从x轴的区间[10
°
,80
°
]和z轴的区间[0
°
,180
°
]均匀采样。然后通过选择重新缩放参数并在所有方向上缩放3d模型以使其适合单位球体内,来重新缩放图元3d模型。该步骤改进了学习。然后将3d模型从固定视点投影到2d平面上,以得到模型尺寸为256*256的照片。随机噪声应用于草图的线条,并且一些随机选择的顶点以随机或预定义的值在随机或预定义的方向上移动。此步骤改进了应用于不精确输入2d草图的3d设计方法。
[0140]
然后计算所得草图的边界正方形并将其大小调整为256*256。这个草图是黑白的,而渲染的边缘是黑色的。图像的颜色被反转以获得黑色背景和白色线条。该步骤增加了神经网络的输入的2d草图中零值的数量并改进了学习。渲染的草图的值可以从标准区间[0,255]重新缩放到[0,1]。
[0141]
示例中神经网络的训练是对通过讨论的数据集形成方法形成的数据集的部分进行的。在示例中,3d模型可以是图元之一并且神经网络的训练可以包括监督训练,其包括最小化损失(l)。损失可能会惩罚以下各项中的一项或多项的总和:
[0142]
·
挤出损失,具有类型为的一项,表示预测的挤出高度和3d模型的挤出高度的差异。在此,hn表示所述相应的挤出长度并且表示相应的预测的hn。
[0143]
·
点损失,具有类型为点损失,具有类型为的一项,表示3d模型的截面的点的预测坐标与其对应的预测值的差异。在这里,i表示所述点,并且每个p
n,i
表示相应3d模型n的基础事实点[i][0]或点[i][1]的所述相应坐标,并且表示相应的预测的p
n,i
。此外,shifts(array)表示用于将array的每个元素向右移位s次的函数。此函数允许不对预测点集的循环排列进行惩罚。
[0144]
·
多个边损失,具有类型为的一项,表示3d模型的截面的点的3d模型预测坐标与其对应预测值的类型的差异。这里,nbsidesn是第n个示例的nbsides基础事实。此外,表示相应3d模型属于k类型的预测概率。此外,nbsidesn==k表示这样的函数:当k等于nbsidesn时其给出1,否则给出0。
[0145]
·
kaulback

leibler散度损失,具有类型为
的一项,表示由和定义为的正态概率分布与标准正态分布n(0,1)的差异。这里,表示预测的条件均值,并且表示预测的条件标准差。
[0146]
这里n表示训练样本的数量,并且n指的是训练样本的每个3d模型。此外,λ1、λ2、λ3表示需要设置以在可变性和目标重建可靠性之间平衡的权重。选择λ3大(与λ1和λ2相比)优先考虑生成的3d模型的可变性,并在边数、点数和挤出误差方面的损失误差方面授权更大的预测误差。例如,(λ1,λ2,λ3)可以被设置为(4.0,1.0,001)。
[0147]
现在参考图8讨论使用vae架构的机器学习的示例。将2d草图和随机变量输入到神经网络,并输出包含三个参数子集的参数集:点列表、挤出长度、和预测边数的概率向量。输入的草图由cnn编码器处理以产生第一潜在向量。通过均值和标准差以及输入的随机变量,经由重新参数化技巧将第一潜在向量转换为第二潜在向量。运算符的符号 *代表运算输出=μ δ*ε。fc层用于输出预测的边数的向量概率。预测边数的概率向量与第二潜在向量串联,以被输入到rnn解码器中,其中每个lstm单元预测一对点。rnn解码器的最终状态用于串联到rnn解码器的输入向量,以使用fc层输出挤出长度。
[0148]
现在参考图9讨论结合第一方面和第二方面(即,使用cvae架构)的机器学习方法的示例。与讨论的vae架构相比,nbsides的预测层已被移除。在该示例中,概率向量是基于用户的选择创建的。例如,是圆柱体归属于概率向量中的第三坐标;因此,要施加圆柱体,输入可能是[0.,0.,1.,0.,0.,0.]。此输入与vae架构中预测的向量一致。在示例中,cvae架构没有单独训练,并且使用了从vae架构中学习到的相同权重。
[0149]
在与实施方式的变型相关的机器学习方法的示例中,神经网络可以计算一组点,这些点使用第二rnn来定义挤出线的样条。神经网络可以为定义截面的每对点预测标志,以指代是线段的一部分或弧的一部分。此外,代替预测nbsides概率向量,神经网络可以预测与每对预测的点相关联的停止(stop)标志。该标志表示相关联的一对点是定义该截面的最后一对点的概率。nbsides可以通过概率》0.5的第一stop标志的出现来确定。
[0150]
参考图10讨论了3d设计方法的示例。用户使用触觉设备提供2d草图,而不输入随机变量。该方法计算边界正方形并将其大小调整为256*256。草图的颜色被反转以获得白色图画和黑色背景。此外,草图的值从[0,255]重新缩放到[0,1]。几个最可能的3d模型因此被计算出来,并使用基础架构(vanilla architecture)以图形方式呈现给用户。用户可以根据她/他的设计意图选择提供的模型之一。如果用户偏好针对预期的设计目的在提议的3d模型中生成变型,他/她可以从相同的草图生成一个新的3d模型,并使用vae架构从分布n(0,1)中自动采样一个随机变量。为了增加提议的3d模型中的变型,用户可以增加分布的标准差,并且随机变量可以从分布n(0,2)中采样。给定相同的草图和自动采样的随机变量,用户还可以将3d模型的类型强加为盒子,并生成强加类型的新3d模型。
[0151]
给定相同的草图(以及可选地,随机变量),用户还可以通过强加3d模型的类型来生成新的3d模型。这参考图11进行了讨论。用户可以通过在gui的输入窗口中输入其对应的nbsides或通过经由触觉设备在gui中选择预期类型来强加圆柱体类型或长方体类型。因此,使用cvae架构,计算并以图形方式向用户呈现强加类型的几个最可能的3d模型。
[0152]
参考图12讨论了3d设计方法的另一个示例。在该示例中,该方法不会等待完成的草图来推断3d模型。cnn编码器使用部分信息(来自不完整草图)和学习模式将2d草图编码
为定义3d模型的数据。在这个示例中,不同的3d模型在用户仍在绘图时被提议给他/她。此外,使用vae架构,用户可以根据相同的草图和从n(0,1)自动采样的随机变量生成提议的3d模型的变型。附加地或替代地,在给定相同草图的情况下,使用cvae架构,用户还可以通过强加3d模型的类型来生成新的3d模型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献