CN117094203A - 通过机器学习生成棱柱cad模型 - Google Patents
通过机器学习生成棱柱cad模型 Download PDFInfo
- Publication number
- CN117094203A CN117094203A CN202310283024.1A CN202310283024A CN117094203A CN 117094203 A CN117094203 A CN 117094203A CN 202310283024 A CN202310283024 A CN 202310283024A CN 117094203 A CN117094203 A CN 117094203A
- Authority
- CN
- China
- Prior art keywords
- model
- embedding
- encoder
- sketch
- sub
- 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
- 238000010801 machine learning Methods 0.000 title abstract description 38
- 238000000034 method Methods 0.000 claims abstract description 127
- 230000008569 process Effects 0.000 claims abstract description 89
- 230000006870 function Effects 0.000 claims description 201
- 238000012549 training Methods 0.000 claims description 153
- 238000001125 extrusion Methods 0.000 claims description 113
- 238000012545 processing Methods 0.000 claims description 102
- 238000013461 design Methods 0.000 claims description 29
- 230000000877 morphologic effect Effects 0.000 claims description 11
- 238000012986 modification Methods 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 8
- 238000011960 computer-aided design Methods 0.000 abstract description 44
- 238000004519 manufacturing process Methods 0.000 abstract description 30
- 238000004590 computer program Methods 0.000 abstract description 22
- 238000004422 calculation algorithm Methods 0.000 description 24
- 238000005457 optimization Methods 0.000 description 18
- 239000013598 vector Substances 0.000 description 15
- 230000000295 complement effect Effects 0.000 description 9
- 238000013527 convolutional neural network Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 239000007787 solid Substances 0.000 description 6
- 238000010276 construction Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 238000012938 design process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 230000001537 neural effect Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000009430 construction management Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241000544061 Cuculus canorus Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013434 data augmentation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003801 milling Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
- G06V10/765—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects using rules for classification or partitioning the feature space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/647—Three-dimensional objects by matching two-dimensional images to three-dimensional objects
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computer Graphics (AREA)
- Architecture (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
用于通过使用机器学习生成棱柱CAD模型来进行物理结构的计算机辅助设计和制造的方法、系统和设备(包括介质编码的计算机程序产品)包括:获得对目标二维(2D)形状的表示进行编码的输入嵌入;使用2D自动编码器的2D解码器处理输入嵌入以获得目标2D形状的解码表示;为输入嵌入确定拟合的2D参数化草图模型,包括:在2D自动编码器的嵌入空间和与2D自动编码器相关联的草图模型数据库中使用搜索来找到输入嵌入的2D参数化草图模型,以及将2D参数化草图模型拟合到目标2D形状的解码表示;以及在计算机建模程序中使用拟合的2D参数化草图模型。
Description
背景技术
本说明书涉及物理结构的计算机辅助设计和制造。
已经开发了计算机辅助设计(CAD)软件并使用其来生成对象的三维(3D)表示,并且已经开发了计算机辅助制造(CAM)软件并使用其来制造那些对象的物理结构,例如,使用计算机数控(CNC)制造技术。通常,CAD软件使用边界表示(B-Rep)格式来存储正在建模的对象的几何图形的3D表示。B-Rep模型是一组连接的表面元素,指定建模3D对象的实体部分与非实体部分之间的边界。在B-Rep模型(通常称为B-Rep)中,几何图形使用平滑和精确的数学表面存储在计算机中,这与网格模型的离散和近似表面形成对比,后者可能难以在CAD程序中使用。
此外,CAD软件已经被设计成执行生成式设计过程,例如,为要制造的较大零件系统中的一个零件或一个或多个零件自动生成3D几何图形。3D几何图形的这种自动生成通常限于CAD软件用户指定的设计空间,并且3D几何图形生成通常受设计目标和约束的影响,这些设计目标和约束可以由CAD软件用户或另一方定义并导入到CAD软件中。设计目标(诸如最大限度地减少设计零件的废料或重量)可以用于推动几何图形生成过程朝着更好的设计方向发展。设计约束可以包括对各个零件的结构完整性约束(即,在零件的使用期间零件不应在预期的结构载荷下失效的要求)和较大系统施加的物理约束(即,零件在使用期间不会干扰系统中的另一零件的要求)两者。
然而,直接从生成式设计过程生成的3D模型可能不适合用于制造。例如,来自生成式设计的模型可能具有圆边,并且可能具有不同于人类设计的草图模型的形状。通常,需要CAD软件用户手动调整3D模型以生成适合用于制造的修改后的3D模型。
发明内容
本说明书描述了涉及通过使用机器学习生成棱柱CAD模型来进行物理结构的计算机辅助设计的技术。
一般来说,本说明书中描述的主题的一个或多个方面可以体现在一种或多种方法(以及一种或多种非暂时性计算机可读介质,其有形地对计算机程序进行编码,所述计算机程序可操作以使数据处理设备执行操作)中,所述方法包括:获得对目标二维(2D)形状的表示进行编码的输入嵌入;使用2D自动编码器的2D解码器处理输入嵌入以获得目标2D形状的解码表示,其中2D自动编码器包括处理2D对象的表示以生成对象嵌入的2D编码器,以及处理对象嵌入以生成2D对象的解码表示的2D解码器;为输入嵌入确定拟合的2D参数化草图模型,包括:在2D自动编码器的嵌入空间和与2D自动编码器相关联的草图模型数据库中使用搜索来找到输入嵌入的2D参数化草图模型,其中2D参数化草图模型的形状由2D参数化草图模型的一个或多个参数值确定;以及通过修改2D参数化草图模型的一个或多个参数值来将2D参数化草图模型拟合到目标2D形状的解码表示以产生拟合的2D参数化草图模型;以及在计算机建模程序中使用拟合的2D参数化草图模型。
所述方法(或由数据处理设备根据有形地编码在一种或多种非暂时性计算机可读介质中的计算机程序执行的操作)可以包括:获得2D参数化草图模型的参数化实例;从2D参数化草图模型的参数化实例生成2D训练图像,其中2D训练图像中的每一个对应于2D参数化草图模型的参数化实例;以及在2D训练图像上训练2D自动编码器,包括:针对2D训练图像中的每一个:使用2D编码器处理2D训练图像以生成嵌入;以及使用2D解码器处理嵌入以生成解码后的2D图像;通过将2D训练图像中的每一个与其对应的解码后的2D图像进行比较来计算损失函数的值;以及基于损失函数的值来更新2D编码器的参数和2D解码器的参数。在2D训练图像上训练2D自动编码器可以包括:从2D训练图像生成带符号距离场图像;以及使用2D编码器处理带符号距离场图像以生成嵌入。
所述方法(或由数据处理设备根据有形地编码在一种或多种非暂时性计算机可读介质中的计算机程序执行的操作)可以包括:获得对目标三维(3D)对象的表示进行编码的初始输入嵌入;使用3D自动编码器的子嵌入解码器处理初始输入嵌入以获得包括输入嵌入的子嵌入,其中子嵌入对定义目标3D对象的表示的2D形状进行编码;生成参数化草图模型,包括:使用一个或多个中间2D解码器处理子嵌入中的每一个以获得定义目标3D对象的表示的2D形状;通过使用2D自动编码器的2D编码器处理2D形状中的每一个来生成中间嵌入中的每一个;以及执行为中间嵌入中的每一个确定参数化草图模型中的相应的参数化草图模型,其中相应的参数化草图模型是拟合的2D参数化草图模型,其中目标2D形状的解码表示是2D形状中的每一个;从子嵌入生成一组挤出参数;以及生成目标3D对象的3D边界表示(B-Rep)模型,其中所述生成包括以构建序列使用拟合的2D参数化草图模型来通过挤出到3D空间中来构建3D B-Rep模型,其中构建序列包括所述一组挤出参数。
子嵌入解码器可以包括多层感知器(MLP)。一个或多个中间2D解码器可以包括2D自动编码器的2D解码器。一个或多个中间2D解码器可以包括不同于2D自动编码器的2D解码器的第二2D解码器。3D自动编码器可以包括:3D编码器,所述3D编码器处理输入体素模型以生成3D对象嵌入;子嵌入解码器,所述子嵌入解码器处理3D对象嵌入以生成子嵌入;起始包络解码器,所述起始包络解码器处理子嵌入中的每个子嵌入以生成起始包络函数;结束包络解码器,所述结束包络解码器处理子嵌入的每个子嵌入以生成结束包络函数,其中所述一组挤出参数从起始包络函数和结束包络函数生成;以及可微分布尔引擎,所述可微分布尔引擎通过使用起始包络函数和结束包络函数将2D形状挤出到3D空间中来生成重构模型。
所述方法(或由数据处理设备根据有形地编码在一种或多种非暂时性计算机可读介质中的计算机程序执行的操作)可以包括:获得训练示例,其中每个训练示例包括训练体素模型、地面实况体素模型和地面实况2D形状,其中地面实况体素模型通过使用定义地面实况包络函数的一组地面实况挤出参数将地面实况2D形状挤出到3D空间中定义,其中训练体素模型从地面实况体素模型生成;以及在训练示例上训练3D自动编码器,包括:针对训练示例中的每一个:使用3D编码器处理训练体素模型以生成训练体素模型的3D对象嵌入;以及使用子嵌入解码器处理3D对象嵌入以生成子嵌入;使用2D解码器处理子嵌入中的每个子嵌入以生成2D形状中的2D形状;使用起始包络解码器处理子嵌入中的每个子嵌入以生成2D形状的起始包络函数;使用结束包络解码器处理子嵌入中的每个子嵌入以生成2D形状的结束包络函数;以及通过以预测的构建序列使用2D形状通过扩展到3D空间中构建重构体素模型来生成训练体素模型的重构体素模型,其中预测的构建序列包括在可微分布尔引擎中定义的运算和2D形状中的每个2D形状的起始包络函数和结束包络函数;通过将每个训练体素模型与其对应的重构体素模型进行比较来计算第一损失函数的值;以及至少基于第一损失函数的值来更新3D自动编码器的参数。
所述方法(或由数据处理设备根据有形地编码在一种或多种非暂时性计算机可读介质中的计算机程序执行的操作)可以包括:通过将地面实况2D形状与所述2D形状进行比较以及将起始包络函数和结束包络函数与地面实况包络函数进行比较来计算第二损失函数的值;以及至少基于第一损失函数的值和第二损失函数的值来更新3D自动编码器的参数。可以通过形态学修改从地面实况体素模型生成训练体素模型。3D自动编码器可以包括解码模块并且解码模块中的每一个对应于一组不同的预定义的一个或多个挤出方向和不同的预定义的一个或多个布尔运算,其中解码模块中的每一个可以包括相应的子嵌入解码器、相应的起始包络解码器以及相应的结束包络解码器。获得初始输入嵌入可以包括:从第一3D对象的第一体素模型生成第一3D对象嵌入;从第二3D对象的第二体素模型生成第二3D对象嵌入;以及从第一3D对象嵌入和第二3D对象嵌入生成初始输入嵌入。
所述方法(或由数据处理设备根据有形地编码在一种或多种非暂时性计算机可读介质中的计算机程序执行的操作)可以包括:获得目标3D对象的初始体素模型;通过形态学修改来处理初始体素模型来生成修改后的体素模型;通过使用包括在3D自动编码器中的3D编码器处理修改后的体素模型来生成初始输入嵌入;以及使用构建序列,通过挤出到3D空间中,从拟合的2D参数化草图模型生成重构3D B-Rep模型,其中重构3D B-Rep模型类似于初始体素模型。
所述方法(或由数据处理设备根据有形地编码在一种或多种非暂时性计算机可读介质中的计算机程序执行的操作)可以包括:获得目标3D对象的初始体素模型,其中初始体素模型由生成式设计输出生成;通过使用包括在3D自动编码器中的3D编码器处理初始体素模型来生成初始输入嵌入;以及生成目标3D对象的3D棱柱模型,其中目标3D对象的3D棱柱模型为3D B-Rep模型。
所述方法(或由数据处理设备根据有形地编码在一种或多种非暂时性计算机可读介质中的计算机程序执行的操作)还可以包括:获得目标3D对象的初始体素模型,其中初始体素模型从生成式设计输出生成;通过使用包括在3D自动编码器中的3D编码器处理初始体素模型来生成初始输入嵌入;以及通过改变3D B-Rep模型的一个或多个参数来将3D B-Rep模型拟合到目标3D对象的初始体素模型以产生拟合的3D B-Rep模型。使用拟合的2D参数化草图模型可以包括:在计算机建模程序的用户接口中显示拟合的2D参数化草图模型。
所述方法(或由数据处理设备根据有形地编码在一种或多种非暂时性计算机可读介质中的计算机程序执行的操作)可以包括:获得输入的2D图像,其中输入的2D图像包括两个或更多个2D形状;从输入的2D图像生成子图像部分,其中每个子图像部分描绘两个或更多个2D形状中的2D形状;针对子图像部分中的每个子图像部分生成相应的子图像部分嵌入;确定拟合的2D参数化草图模型,包括:执行为每个子图像部分嵌入确定每个拟合的2D参数化草图模型;以及通过在子图像部分的相应位置处组合拟合的2D参数化草图模型来生成组合的2D参数化草图模型。
本说明书中描述的主题的一个或多个方面也可以体现在一种或多种系统中,所述系统包括:非暂时性存储介质,所述非暂时性存储介质具有存储在其上的计算机辅助设计程序的指令;以及一个或多个数据处理设备,所述一个或多个数据处理设备被配置为运行计算机辅助设计程序的指令以执行由计算机辅助设计程序的指令指定的操作;其中所述操作包括:获得对目标二维(2D)形状的表示进行编码的输入嵌入;使用2D自动编码器的2D解码器处理输入嵌入以获得目标2D形状的解码表示,其中2D自动编码器包括处理2D对象的表示以生成对象嵌入的2D编码器,以及处理对象嵌入以生成2D对象的解码表示的2D解码器;为输入嵌入确定拟合的2D参数化草图模型,包括:在2D自动编码器的嵌入空间和与2D自动编码器相关联的草图模型数据库中使用搜索来为输入嵌入找到2D参数化草图模型,其中2D参数化草图模型的形状由2D参数化草图模型的一个或多个参数值确定;以及通过修改2D参数化草图模型的一个或多个参数值来将2D参数化草图模型拟合到目标2D形状的解码表示以产生拟合的2D参数化草图模型;以及在计算机建模程序中使用拟合的2D参数化草图模型。
所述操作可以包括:获得2D参数化草图模型的参数化实例;从2D参数化草图模型的参数化实例生成2D训练图像,其中2D训练图像中的每一个对应于2D参数化草图模型的参数化实例;以及在2D训练图像上训练2D自动编码器,包括:针对2D训练图像中的每一个:使用2D编码器处理2D训练图像以生成嵌入;以及使用2D解码器处理嵌入以生成解码后的2D图像;通过将2D训练图像中的每一个与其对应的解码后的2D图像进行比较来计算损失函数的值;以及基于损失函数的值来更新2D编码器的参数和2D解码器的参数。
所述操作可以包括:获得对目标三维(3D)对象的表示进行编码的初始输入嵌入;使用3D自动编码器的子嵌入解码器处理初始输入嵌入以获得包括输入嵌入的子嵌入,其中子嵌入对定义目标3D对象的表示的2D形状进行编码;生成参数化草图模型,包括:使用一个或多个中间2D解码器处理子嵌入中的每一个以获得定义目标3D对象的表示的2D形状;通过使用2D自动编码器的2D编码器处理2D形状中的每一个来生成中间嵌入中的每一个;以及执行为中间嵌入中的每一个确定参数化草图模型中的相应的参数化草图模型,其中相应的参数化草图模型是拟合的2D参数化草图模型,其中目标2D形状的解码表示是2D形状中的每一个;从子嵌入生成一组挤出参数;以及生成目标3D对象的3D边界表示(B-Rep)模型,其中所述生成包括以构建序列使用拟合的2D参数化草图模型来通过挤出到3D空间中来构建3D B-Rep模型,其中构建序列包括所述一组挤出参数。
3D自动编码器可以包括:3D编码器,所述3D编码器处理输入体素模型以生成3D对象嵌入;子嵌入解码器,所述子嵌入解码器处理3D对象嵌入以生成子嵌入;起始包络解码器,所述起始包络解码器处理子嵌入中的每个子嵌入以生成起始包络函数;结束包络解码器,所述结束包络解码器处理子嵌入中的每个子嵌入以生成结束包络函数,其中所述一组挤出参数从起始包络函数和结束包络函数生成;以及可微分布尔引擎,所述可微分布尔引擎通过使用起始包络函数和结束包络函数将2D形状挤出到3D空间中来生成重构模型。
所述操作可以包括:获得训练示例,其中每个训练示例包括训练体素模型、地面实况体素模型和地面实况2D形状,其中地面实况体素模型通过使用定义地面实况包络函数的一组地面实况挤出参数将地面实况2D形状挤出到3D空间中定义,其中训练体素模型从地面实况体素模型生成;以及在训练示例上训练3D自动编码器,包括:针对训练示例中的每一个:使用3D编码器处理训练体素模型以生成训练体素模型的3D对象嵌入;以及使用子嵌入解码器处理3D对象嵌入以生成子嵌入;使用2D解码器处理子嵌入中的每个子嵌入以生成2D形状中的2D形状;使用起始包络解码器处理子嵌入中的每个子嵌入以生成2D形状的起始包络函数;使用结束包络解码器处理子嵌入中的每个子嵌入以生成2D形状的结束包络函数;以及通过以预测的构建序列使用2D形状通过扩展在3D空间中构建重构体素模型来生成训练体素模型的重构体素模型,其中预测的构建序列包括在可微分布尔引擎中定义的运算和2D形状中的每个2D形状的起始包络函数和结束包络函数;通过将每个训练体素模型与其对应的重构体素模型进行比较来计算第一损失函数的值;以及至少基于第一损失函数的值来更新3D自动编码器的参数。
可以实施在本说明书中描述的主题的特定实施方案以实现以下优点中的一个或多个。机器学习模型(诸如自动编码器的解码器)可以将嵌入向量作为输入,并且可以生成目标3D对象的棱柱边界表示(B-Rep)模型,而无需提供目标几何图形,并且棱柱模型可以比其他类型的模型(例如体素模型)更容易制造。机器学习模型可以从近似数据(诸如点云或网格)重建3D模型。机器学习模型可以生成3D模型,所述3D模型是现有模型之间的插值。机器学习模型可以执行风格转移,例如,在现有模型之间转移局部细节。在一些情况下,机器学习模型可以根据生成式设计或拓扑优化过程的输出自动生成看起来像人类设计的几何图形的3D棱柱B-Rep模型,这可以减少手动调整3D模型以获得适合用于制造的模型所需的时间。在一些情况下,机器学习模型可以自动生成3D模型,其中仅为一个或多个零件指定设计标准,而整个3D模型的设计未指定或未知。例如,机器学习模型可以用于基于一些近似形状创建零件。
通过机器学习模型生成的3D模型是可编辑的,因为3D模型是使用受约束的草图和可编辑的参数特征历史生成的。将棱柱模型生成为CAD构建序列(例如,用于生成CAD模型的一序列步骤)可能是高度非线性或不规则的,因为非常类似的CAD序列可以生成非常不同的形状,而非常不同的CAD序列可以生成几乎相同的形状。机器学习模型可以处理输入嵌入向量,而不是在序列空间中进行编码,所述输入嵌入向量在自动编码器的嵌入空间中对目标3D对象的体素表示进行编码。由于体素表示中的类似形状可能具有由自动编码器的编码器生成的类似嵌入,因此自动编码器的嵌入空间的变化可能会引起对应的输出3D形状成比例且连续地变化。因此,嵌入向量的小变化可以对应于3D模型形状的小变化,从而提高生成的3D模型的可靠性和可预测性。在一些实施方式中,复杂的形状可以在图像空间中被分成更小的部分,并且可以为每个更小的部分搜索拟合的参数化草图模型。
可以使用监督预测的3D体素模型的第一损失函数和监督用于构建预测的3D体素模型的2D形状(轮廓)的第二损失函数来训练一个或多个机器学习模型。通过在训练期间使用3D和2D监督两者,机器学习模型可以自动生成具有期望特征(例如,可以用于CAD挤出的2D轮廓或形状)的3D模型,而无需了解轮廓序列和包络函数。可以训练机器学习函数来处理使用带符号距离函数生成的带符号距离场图像的嵌入。因此,机器学习函数可以生成更期望的2D或3D模型,因为带符号距离场图像可以提供2D或3D形状的改进的描述。
在附图和以下描述中陈述了在本说明书中所描述的主题的一个或多个实施方案的细节。将从具体实施方式、附图和权利要求明白其他特征、方面和优点。
附图说明
图1示出了可用于设计和制造物理结构的系统的示例。
图2A示出了通过机器学习算法生成目标3D对象的3D模型的过程的示例。
图2B是示出通过机器学习算法生成目标3D对象的3D模型的过程的示例的流程图。
图3是示出通过机器学习算法生成目标2D形状的拟合的2D参数化草图模型的过程的示例的流程图和对应的系统操作图。
图4是示出训练可以用于确定目标2D形状的拟合的2D参数化草图模型的2D自动编码器的过程的示例的流程图和对应的系统操作图。
图5示出了训练可以用于生成目标3D对象的3D模型的3D自动编码器的过程的示例。
图6是示出训练可以用于生成目标3D对象的3D模型的3D自动编码器的过程的示例的流程图。
图7示出了可以用于生成目标3D对象的3D模型的3D自动编码器的神经网络架构的示例。
图8A示出了针对复杂的2D形状确定拟合的2D参数化草图模型的过程的示例。
图8B示出了从输入的2D图像生成子图像部分的过程的示例。
图9是可用于实施所描述的系统和技术的数据处理系统的示意图。
在各个附图中,相似附图标记和名称表示相似元件。
具体实施方式
图1示出了可用于设计和制造物理结构的系统100的示例。计算机110包括处理器112和存储器114,并且计算机110可以连接到网络140,所述网络可以是专用网络、公共网络、虚拟专用网络等。处理器112可以是一个或多个硬件处理器,所述一个或多个硬件处理器可以各自包括多个处理器核心。存储器114可包括易失性存储器和非易失性存储器两者,诸如随机存取存储器(RAM)和快闪RAM。计算机110可以包括各种类型的计算机存储介质和装置,它们可以包括存储器114,以存储在处理器112上运行的程序的指令。
此类程序包括一个或多个3D建模、模拟和/或制造控制程序,诸如计算机辅助设计(CAD)程序116。程序116可以在本地在计算机110上运行,远程地在一个或多个远程计算机系统150(例如,一个或多个第三方提供商的可由计算机110经由网络140访问的一个或多个服务器系统)的计算机上运行,或者既在本地运行又远程地运行。机器学习算法134可以存储在存储器114中(和/或存储在一个或多个远程计算机系统150中)并且可以被CAD程序116访问。
CAD程序116在计算机110的显示装置120上呈现用户接口(UI)122,可以使用计算机110的一个或多个输入装置118(例如,键盘和鼠标)来操作所述用户接口。应注意,虽然在图1中示出为单独装置,但显示装置120和/或输入装置118还可以彼此集成和/或与计算机110集成,诸如集成在平板计算机中或虚拟现实(VR)或增强现实(AR)系统中。例如,输入/输出装置118、120可以包括VR输入手套118a和VR耳机120a。
用户190可以与程序116交互以创建和/或加载目标3D对象136的表示132。目标3D对象136的确切体素模型是未知的,并且只有目标3D对象136的想法或一部分是已知的。表示132可以是从生成式设计过程生成的目标3D对象136的初始设计(例如,斑点或模糊3D体素模型)的结果。在图1未示出的一些实施方式中,表示132可以是目标3D对象136的2D图像。在一些情况下,可以使用3D编码器对表示132进行编码以生成对目标3D对象的表示进行编码的嵌入,例如嵌入向量或嵌入矩阵。例如,当目标3D对象是介于两个已知形状之间的形状时,表示132可以是两个已知形状的两个嵌入之间的插值的结果。
CAD程序116可以使用机器学习算法134来从目标3D对象136的表示132生成目标3D对象136的3D模型135(例如,3D B-Rep模型)。机器学习算法134可以自动解码表示132以生成作为拟合的2D参数化草图模型133的2D形状或轮廓,包括2D形状133(a)、133(b)和133(c)。可以通过在草图模型的数据库130中执行搜索来获得拟合的2D参数化草图模型133,所述数据库可以在计算机110本地(如图所示)或是远程计算机系统150的一部分。CAD程序116可以在构建序列中使用拟合的2D参数化草图模型133通过挤出到3D空间中来自动生成目标3D对象136的3D模型135,例如3D B-Rep模型。解码表示132和生成3D模型135的自动过程可以加速3D模型生成过程,并且生成的3D模型135可以容易地适合于由CNC机器170制造。因此,自动化过程可以减少产生可制造结构所需的时间,同样可以减少从新零件的构思到那些新零件的实际制造所需的时间。解码表示以生成拟合的2D参数化草图模型的细节在下面结合图2A和图2B进行描述。
程序116可以在UI 122中包括一系列菜单,这些菜单允许用户190接受或拒绝由机器学习算法134自动生成的一个或多个3D模型135。在一些实施方式中,程序116可以在UI122中包括一系列菜单,这些菜单允许用户190调整3D模型135的一个或多个部分,直到用户对3D模型感到满意为止。一旦用户190接受机器学习算法生成的3D模型,程序116就可以将3D模型保存在3D模型文档160中。此外,用户190可以与程序116交互以在3D模型135保存在3D模型文档160中之前对其进行额外的修改。例如,可以基于3D模型135来拟合圆角。
由CAD程序116的机器学习算法生成的3D模型135可以由计算机控制的制造系统使用,例如由CNC机器170(诸如减材制造(SM)机器等)使用,以制造目标3D对象136。这可以使用已知的图形用户接口工具来完成。可以在计算机中使用各种已知的3D建模格式,诸如使用实体模型(例如,体素)或表面模型(例如,B-Rep、表面网格),来定义3D模型135。
一旦目标3D对象136的3D模型135准备好用于制造,就可以通过生成刀具路径以供计算机控制的制造系统使用来制造目标3D对象136来准备3D模型135以制造对象136的物理结构。例如,可以使用3D模型135来生成刀具路径规范文档165,所述刀具路径规范文档可以被发送到CNC机器170并且用于控制一个或多个铣削刀具的操作。这可以根据用户190的请求来完成,或者根据用户对另一动作的请求来完成,诸如将3D模型文档160发送到CNC机器170、或可以直接连接到计算机110或经由网络140连接的其他制造机械装置,如图所示。这可以涉及在本地计算机110或云服务上执行的将3D模型文档160导出到制造所依据的电子文档的后处理步骤。应注意,电子文档(以下将简称为文档)可以是文件,但不一定对应于文件。可以将文档存储在保存其他文档的文件的一部分中,存储在专用于所讨论的文档的单个文件中,或存储在多个协同文件中。
在任何情况下,程序116都可以在文档165中创建一个或多个刀具路径,并将文档165(具有适当的格式)提供给CNC机器170以创建目标3D对象136的物理结构(应注意,在一些实施方式中,计算机110被集成到CNC机器170中,因此刀具路径规范文档165由将使用刀具路径规范文档165来制造对象136的同一个计算机创建)。例如,CNC机器170可以是减材制造机器,其可以通过去除库存材料来制造对象180。CNC机器170可以使用刀具路径(例如,保存在文档165中)来控制切削刀具174。
虽然上面的示例集中于减材制造,但也可以使用各种其他制造系统和工艺,包括增材制造(AM)以及混合AM+SM制造。此外,本申请中描述的系统和技术也可以与支持建筑施工管理或视频和电影制作的3D建模程序116一起使用。例如,如本申请中所述,现有模型之间的插值可以用于生成新的3D角色(在视频/电影制作工作流程中),所述新的3D角色是两个现有3D角色的混合体。其他应用也是可能的。本申请中描述的系统和技术也可以与目标3D对象的其他形式的表示一起使用。例如,系统的输入可以包括表示目标3D对象的点云,并且机器学习算法134可以包括点网神经网络(Qi,Charles R.等人的“Pointnet:Deeplearning on point sets(点网:用于三维分类和分割的点集深度学习)”IEEE计算机视觉和模式识别会议纪要.2017),可以对所述点网神经网络进行训练以处理点云数据。例如,系统的输入可以包括自然语言文本,可以使用预训练的自然语言处理机器学习模型对所述自然语言文本进行解码。在一些实施方式中,系统的输入可以包括体素表示132和第二表示(例如,2D图像、点云、文本等)两者。
图2A示出了通过机器学习算法生成目标3D对象的3D模型的过程200的示例。图2B是示出通过机器学习算法生成目标3D对象的3D模型的过程的示例的流程图。程序116获得232对目标3D对象的表示进行编码的初始输入嵌入。参考图2A,程序116获得初始输入嵌入206。初始输入嵌入206可以是来自3D编码器204的输出,所述3D编码器对初始设计(例如,目标3D对象的初始3D体素模型202)进行编码。初始输入嵌入206可以是具有浮点数或其他类型的数值的一维向量,例如,长度为512、1024或2048位、字节、字或双字的整数值的向量。在一些实施方式中,初始输入嵌入206可以是嵌入矩阵。在一些实施方式中,初始输入嵌入206可以是对应于未知3D形状的任意嵌入向量或矩阵。
如本说明书中使用的嵌入是图像特征或目标3D对象的3D体素模型特征的数字表示。特定地,嵌入是嵌入空间中的数字表示,即固定数量的数值的有序集合,其中数值的数量等于嵌入空间的维数。嵌入空间可以是高维空间,并且嵌入可以是高维空间中的点。例如,嵌入可以是浮点或其他类型的数值的向量。一般来说,嵌入空间的维数比由给定嵌入表示的图像或体素模型中的数值的数量小得多。可以使用查询嵌入来执行搜索以找到与嵌入空间中的查询嵌入接近的另一个嵌入,这是因为类似的形状可以在嵌入空间中具有类似的嵌入(例如,嵌入向量)。
3D编码器204属于3D自动编码器。3D自动编码器包括3D编码器204和子嵌入解码器208。可以训练3D自动编码器以将3D体素模型编码为嵌入并将嵌入解码为2D轮廓,所述2D轮廓可以用于以构建序列(例如,参数化构建序列)重构3D体素模型。训练3D自动编码器的细节在下面结合图5和图6进行描述。3D编码器可以包括3D卷积神经网络(CNN),所述3D卷积神经网络包括具有可配置大小的一个或多个3D卷积层、一个或多个全连接层、一个或多个激活层、或层之间的跳跃连接等。子嵌入解码器可以包括CNN,所述CNN包括一个或多个全连接层、一个或多个激活层,或层之间的跳跃连接等。在一些实施方式中,子嵌入解码器可以包括多层感知器(MLP),所述多层感知器包括一系列多层感知器网络层。
在一些实施方式中,当目标3D对象是两个3D对象之间的某种形状时,可以从两个3D对象的两个嵌入生成初始输入嵌入206。程序116可以从第一3D对象的第一体素模型生成第一3D对象嵌入。程序116可以从第二3D对象的第二体素模型生成第二3D对象嵌入。程序116可以从第一3D对象嵌入和第二3D对象嵌入生成初始输入嵌入206,例如,通过对第一3D对象嵌入和第二3D对象嵌入插值。
再次参考图2B,程序116使用3D自动编码器的子嵌入解码器处理234初始输入嵌入以获得子嵌入,并且子嵌入对定义目标3D对象的表示的2D形状进行编码。参考图2A,子嵌入解码器208接收初始输入嵌入206作为输入。子嵌入解码器208可以处理初始输入嵌入206以生成子嵌入210(a)和210(b)。子嵌入可以表示一组2D形状,例如,形状214(a)和214(b),它们定义目标3D对象的表示。在一些实施方式中,每个子嵌入对处于预定的2D取向的相应2D形状进行编码。例如,子嵌入210(a)对x-y平面中的2D形状214(a)进行编码,并且子嵌入210(b)对x-y平面中的2D形状214(b)进行编码。
再次参考图2B,程序116确定236参数化草图模型。程序116为子嵌入中的每一个确定相应的参数化草图模型。子嵌入中的每一个的相应的参数化草图模型是拟合的2D参数化草图模型。2D参数化草图模型是2D形状的2D模型。2D参数化草图模型的形状可以由2D参数化草图模型的一个或多个参数值确定。由于将3D对象建模为草图可能很困难,因此可以将3D对象的2D部分建模为可以挤出到3D空间中的2D参数化草图模型。在一些实施方式中,程序116使用一个或多个中间2D解码器处理子嵌入中的每一个以获得定义目标3D对象的表示的2D形状。程序116通过使用2D自动编码器的2D编码器处理2D形状中的每一个来生成中间嵌入中的每一个。程序116为中间嵌入中的每一个确定相应的拟合的2D参数化草图模型。
参考图2A,可以为每个子嵌入确定拟合的2D参数化草图模型。例如,可以为子嵌入210(a)确定拟合的2D参数化草图模型218(a),并且可以为子嵌入210(b)确定拟合的2D参数化草图模型218(b)。经过训练的中间2D解码器212将子嵌入210(a)或210(b)作为输入并生成解码后的2D形状214(a)或214(b)。程序116执行搜索和拟合步骤219以从解码后的2D形状214(a)或214(b)生成拟合的2D参数化草图模型218(a)或218(b)。
在一些实施方式中,搜索和拟合步骤219可以包括以下内容。经过训练的2D自动编码器的2D编码器260可以生成解码后的2D形状(例如解码后的2D形状214(a))的中间嵌入254。程序116可以在草图模型数据库256中搜索中间嵌入254的2D参数化草图模型258,并且搜索是在经过训练的2D自动编码器的嵌入空间中执行的。程序116可以通过修改2D参数化草图模型258的一个或多个参数值来使2D参数化草图模型258拟合到解码后的2D形状214(a)以产生拟合的2D参数化草图模型218(a)。根据嵌入确定拟合的2D参数化草图模型的过程的细节将在下面结合图3进行描述。在一些实施方式中,2D形状214(a)和214(b)中的每一者都可以是指示像素在2D形状内部的可能性的概率(例如,通过sigmoid函数从得分生成),并且程序116可以使用带符号距离场函数,例如图4的带符号距离场函数408,来针对每个2D形状生成带符号距离场图像。2D形状的带符号距离场图像可以由2D编码器260处理以生成嵌入,例如2D形状214(a)的中间嵌入254。
再次参考图2B,由程序116从子嵌入生成237一组挤出参数。程序116为子嵌入中的每一个确定一组相应的挤出参数。参考图2A,包络解码器可以将子嵌入作为输入并且可以生成包络函数作为输出。程序116可以根据包络函数确定所述一组挤出参数。
先前对包络解码器进行训练以生成包络函数。包络解码器可以使用MLP或一个或多个一维反卷积神经网络层来实施。例如,包络解码器217(a)可以将子嵌入210(a)作为输入并且可以生成包络函数216(a)。包络解码器217(b)可以将子嵌入210(b)作为输入并且可以生成包络函数216(b)。包络函数包括指示起始位置或结束位置的可能性的得分。通过将得分传递给sigmoid函数,可以将得分转换为概率值。例如,包络函数216(a)和216(b)中的灰度级是指示起始位置或结束位置的可能性的概率值。
在一些实施方式中,包络解码器可以包括起始包络解码器和结束包络解码器。起始包络解码器可以将子嵌入作为输入并且可以生成起始包络函数作为输出,并且结束包络解码器可以将子嵌入作为输入并且可以生成结束包络函数作为输出。起始包络函数和结束包络函数可以是浮点数或其他类型的数值的两个1D向量。起始包络函数可以用于确定挤出的起始位置,并且结束包络函数可以用于确定挤出的结束位置。当位置低于挤出的起始平面时,起始函数可以为正,而当位置高出挤出的起始平面时,起始函数可以为负。当位置低于挤出的结束平面时,结束函数可以为负,而当位置高出挤出的结束平面时,结束函数可以为正。
所述一组挤出参数可以包括从相应的子嵌入生成的对应的拟合的2D参数化草图模型的挤出起始位置和挤出结束位置。所述一组挤出参数可以用于执行将拟合的2D参数化草图模型218(a)和218(b)挤出到3D空间中。挤出起始位置和挤出结束位置可以根据包络函数确定。例如,根据包络函数216(a),程序116可以确定拟合的参数化草图模型218(a)的挤出起始位置213(a)和挤出结束位置211(a)。根据包络函数216(b),程序116可以确定拟合的2D参数化草图模型218(b)的挤出起始位置213(b)和挤出结束位置211(b)。
在一些实施方式中,程序116可以根据起始包络函数确定挤出起始位置并且可以根据结束包络函数确定挤出结束位置。在一些实施方式中,挤出起始位置可以在起始包络函数过零的位置,并且挤出结束位置可以在结束包络函数过零的位置。在一些实施方式中,起始挤出位置和结束挤出位置可以是概率过预定阈值(例如,50%)的位置。如果多于一个位置过预定阈值,则起始位置可以在起始包络函数的第一交叉处,并且结束位置可以在结束包络函数的最后一个交叉处。挤出方向可以是预定的或硬编码的。在此示例中,对于拟合的2D参数化草图模型218(a)和218(b)两者,挤出方向都为z方向。但应注意,在一些实施方式中,挤出方向的取向可以是挤出参数中的另一个挤出参数。
在一些实施方式中,一次挤出可以从前一次挤出的末尾开始。因此,取代将起始包络解码器用于第一2D参数化草图模型并且将结束包络解码器用于第二2D参数化草图模型的是,可以使用一个包络解码器来生成定义共享的平面/位置的起始-结束包络函数。例如,结束包络函数(例如,用于确定(例如,2D参数化草图模型218(b)的)下挤出的结束位置211(b))可以是起始包络函数(例如,用于确定(例如,2D参数化草图模型218(a)的)上挤出的起始位置213(a))的(-1)倍。这个共享包络函数可以被同一个包络解码器解码,并且可以被两个挤出共享。
再次参考图2B,例如可以通过程序116将由机器学习算法生成的拟合的2D参数化草图模型提供给用户以确定238设计对于目标3D对象是否可接受。程序116可以在UI 122中包括允许用户190接受或拒绝由机器学习算法生成的拟合的2D参数化草图模型的UI元素。在一些实施方式中,程序116使用拟合的2D参数化草图模型生成2403D B-Rep模型,并且3DB-Rep模型被显示给用户,使得用户可以决定接受或拒绝3D B-Rep模型。
如果用户确定生成的拟合的2D参数化草图模型对于构建目标3D对象是不可接受的,则程序116可以使用机器学习算法生成更新的拟合的2D参数化草图模型。在一些实施方式中,程序116可以在UI 122中包括允许用户190指定另一组挤出方向的UI元素。机器学习算法可以生成具有另一组挤出方向的拟合的2D参数化草图模型。
一旦用户确定238生成的拟合的2D参数化草图模型对于构建目标3D对象是可接受的,则由程序116生成240目标3D对象的3D边界表示(B-Rep)模型。程序116以构建序列(例如,参数化构建序列)使用拟合的2D参数化草图模型来通过挤出到3D空间中来构建3D B-Rep模型。构建序列包括所述一组挤出参数(例如,起始挤出位置和结束挤出位置)、预定的挤出方向和在CAD布尔引擎222中定义的预定的布尔运算。
参考图2A,程序116可以将拟合的2D参数化草图模型218(a)或218(b)中的每一者挤出成3D。程序116可以包括CAD挤出引擎。CAD挤出引擎可以从每个拟合的2D参数化草图模型在包括在所述一组挤出参数中的起始挤出位置和结束挤出位置处以及在包括在构建序列中的预定的挤出方向上生成挤出参数化草图模型。例如,CAD挤出引擎可以使用所述一组挤出参数,例如挤出起始位置213(a)和挤出结束位置211(a),从拟合的2D参数化草图模型218(a)生成第一挤出参数化草图模型。CAD挤出引擎可以使用所述一组挤出参数,例如挤出起始位置213(b)和挤出结束位置211(b),从拟合的2D参数化草图模型218(b)生成第二挤出参数化草图模型。程序116可以包括CAD布尔引擎222。CAD布尔引擎222是不可微分的。CAD布尔引擎222可以接收挤出参数化草图模型(例如,从218(a)生成的第一挤出参数化草图模型和从218(b)生成的第二挤出参数化草图模型)作为输入,并且可以通过一组预定的(或硬编码的)布尔运算来生成3D边界表示(B-Rep)模型220。CAD布尔引擎222定义了所述一组预定的(或硬编码的)布尔运算,诸如并运算、交运算、补运算或其组合。
例如,拟合的2D参数化草图模型218(a)在z方向上从包络函数216(a)确定的起始挤出位置与结束挤出位置之间挤出成3D,并且拟合的2D参数化草图模型218(b)是在z方向上从包络函数216(b)确定的起始挤出位置与结束挤出位置之间挤出成3D。CAD布尔引擎222可以包括预定的并运算。因此,从拟合的2D参数化草图模型218(a)和218(b)挤出的两个3D参数化草图模型可以通过并运算组合在一起。在一些情况下,CAD布尔引擎222可以定义以下运算,所述运算是交运算和补运算的乘积(例如,-1),并且这导致一个3D参数化草图模型从另一个3D参数化草图模型中减去。在一些情况下,CAD布尔引擎222可以定义一序列并运算、交运算、补运算或其组合。
程序116可以确定一组连接的表面元素,这些元素指定3D B-Rep模型220的实体部分与非实体部分之间的边界。因此,3D B-Rep模型220的几何图形可以使用平滑和精确的数学表面存储在计算机中。程序116可以将3D B-Rep模型220存储在本地计算机中或将其发送到远程计算机。程序116可以在计算机110的显示装置120的UI 122中显示3D B-Rep模型220。程序116可以针对3D B-Rep模型160或220生成刀具路径165。刀具路径165可以由SM和/或AM机器170使用来制造目标3D对象。在一些实施方式中,程序116可以从3D B-Rep模型220生成目标3D对象的3D体素模型。
在一些实施方式中,程序116可以使用过程200来撤销对3D体素模型的形态学修改。程序116可以获得目标3D对象的初始体素模型。程序116可以通过形态学修改处理初始体素模型来生成修改后的体素模型202。程序116可以通过使用3D编码器204处理修改后的体素模型202来生成初始输入嵌入206。程序116可以从修改后的体素模型202的初始输入嵌入206生成子嵌入210(a)和210(b)。程序116可以基于子嵌入来确定拟合的2D参数化草图模型218(a)和218(b)。程序116可以使用构建序列通过挤出到3D空间中来从拟合的2D参数化草图模型218(a)和218(b)生成重构3D B-Rep模型220。重构3D B-Rep模型220可以类似于初始体素模型,从而撤销形态学修改。
在一些实施方式中,程序116可以从生成式设计过程的输出生成棱柱CAD模型。程序116可以获得目标3D对象的初始体素模型202,并且初始体素模型可以是生成式设计输出。程序116可以通过使用3D编码器204处理初始体素模型202来生成初始输入嵌入206。程序116可以生成目标3D对象的3D棱柱模型,所述3D棱柱模型为3D B-Rep模型220。
在一些实施方式中,3D B-Rep模型220可以由程序116进行后处理,以增加其与目标3D对象的初始3D体素模型202的相似性。程序116可以获得目标3D对象的初始3D体素模型202,其中初始3D体素模型从生成式设计输出生成。程序116可以通过使用3D编码器204处理初始体素模型202来生成初始输入嵌入206。在获得3D B-Rep模型220之后,程序116可以对3D B-Rep模型220执行后处理。程序116可以通过改变3D B-Rep模型220的一个或多个参数来将3D B-Rep模型220拟合到目标3D对象的初始体素模型202以产生拟合的3D B-Rep模型。例如,可以将圆角添加到3D B-Rep模型220以使3D B-Rep模型220的边变圆。在一些实施方式中,当初始3D体素模型202不可用时,程序116可以使用3D反卷积体素解码器(例如,结合图7描述的3D反卷积体素解码器703)从输入嵌入206生成解码后的3D体素模型,并且程序116可以基于解码后的3D体素模型对3D B-Rep模型220执行圆角拟合。
在一些实施方式中,在生成拟合的2D参数化草图模型218(a)和218(b)之后,程序116可以将圆角弧拟合到拟合的2D参数化草图模型218(a)和218(b)以更好地近似由中间2D解码器212解码的2D轮廓214(a)和214(b)的形状。因此,草图模型数据库256中的草图可以主要使用线来定义,并且对于使用线定义的草图更容易使用约束求解器来执行拟合259。圆角弧半径可以通过在要切圆角的顶点处评估带符号距离函数来从该函数获得。如果2D形状214(a)和214(b)不是用带符号距离函数生成的,则可以使用快速行进方法从2D形状214(a)和214(b)生成带符号距离值。
在一些实施方式中,可以拟合2D参数化草图模型258的参数以更好地近似整个目标体素模型202或由3D反卷积体素解码器生成的3D体素模型。程序116可以使用不需要导数的优化算法。在一些实施方式中,所述一组挤出参数(例如,挤出起始位置和挤出结束位置)可以被拟合以更好地近似整个目标体素模型202或由3D反卷积体素解码器生成的3D体素模型。
在一些实施方式中,可以使用带符号距离函数,通过评估带符号距离函数沿着每条边的平均值,然后构建以该平均值作为半径的圆角,来确定圆角半径。这消除了对创建圆角的优化算法的需要。如果可用的体素模型不是带符号距离函数(例如,当体素模型是3D反卷积体素解码器的输出时),可以使用快速行进方法来创建带符号距离函数。
图3包括示出通过机器学习算法生成目标2D形状的拟合的2D参数化草图模型的过程的示例的流程图。鉴于嵌入向量,机器学习算法可以找到表示嵌入向量并类似于人类设计(诸如人类用户先前设计的草图模型)的2D形状。
程序116获得322对目标2D形状的表示进行编码的输入嵌入。例如,程序116可以接收对目标2D形状的表示进行编码的输入嵌入302。目标2D形状的确切模型是未知的,并且只有目标2D形状的某些方面或期望特征是已知的。因此,输入嵌入302可以表示目标2D形状的期望特征。例如,可以通过使用2D编码器对目标2D形状的初始设计进行编码来生成输入嵌入302。作为另一示例,目标2D形状可以是与两个2D形状相关的形状,并且输入嵌入302可以是两个2D形状的两个嵌入的插值。在一些2D实施方式中,输入嵌入302可以是2D形状的嵌入。在一些3D实施方式中,输入嵌入302可以是从3D形状(例如,3D体素模型202)生成的相应子嵌入210(a)和210(b)中的每一个。
输入嵌入由程序116使用2D自动编码器的2D解码器进行处理324,以获得目标2D形状的解码表示。2D解码器304先前经过训练并且可以解码输入嵌入302以生成2D图像306,所述2D图像是目标2D形状的解码表示。2D解码器304属于包括2D编码器和2D解码器304的2D自动编码器。2D自动编码器包括处理2D对象的表示以生成对象嵌入的2D编码器,以及处理对象嵌入以生成2D对象的解码表示的2D解码器304。训练2D自动编码器的过程的细节在下面结合图4进行描述。
2D编码器可以包括2D卷积神经网络(CNN),所述2D卷积神经网络包括:具有可配置大小的一个或多个卷积层、一个或多个全连接层、一个或多个激活层、或层之间的跳跃连接等。2D解码器304可以包括CNN,所述CNN包括:具有可配置大小的一个或多个反卷积层、具有可配置大小的一个或多个转置卷积层、一个或多个全连接层、一个或多个激活层、或层之间的跳跃连接等。2D解码器生成作为目标2D形状的近似形状的2D图像306。2D图像的每个像素的值是指示像素在近似形状内部的可能性或概率的得分。在一些实施方式中,2D解码器304的架构可以与2D编码器的架构成镜像。例如,如果2D编码器包括输出大小为32、64和512的嵌入的三个卷积层,则2D解码器可以包括接收大小为512、64和32的嵌入的三个反卷积层。
程序116通过执行运算326和328来确定输入嵌入的拟合的2D参数化草图模型。程序116在2D自动编码器的嵌入空间和与2D自动编码器相关联的草图模型数据库中使用搜索来找到326输入嵌入的2D参数化草图模型。2D参数化草图模型的形状(例如,包括x和y方向上的平移和统一比例因子)由2D参数化草图模型的一个或多个参数值确定。程序116使用草图模型数据库308在2D自动编码器的嵌入空间中执行搜索310。草图模型数据库包括先前为多个2D参数化草图模型的参数变型计算的嵌入。
为了生成草图模型数据库,程序116获得多个2D参数化草图模型。每个2D参数化草图模型都具有控制尺寸和粗略形状的约束。每个2D参数化草图模型的形状的细节是灵活的并且可以由2D参数化草图模型的一个或多个参数值确定。程序116改变每个2D参数化草图模型的一个或多个参数值,从而为2D参数化草图模型创建许多几何形状或参数变型。在一些实施方式中,2D参数化草图模型的参数化变型可以被镜像、旋转和/或平移。可以使用2D自动编码器的2D编码器对2D参数化草图模型中的每一个的每个参数变型进行编码以获得嵌入。多个2D参数化草图模型的不同参数变型的嵌入被保存在草图模型数据库308中。
程序116可以在数据库308中使用搜索来找到输入嵌入302的2D参数化草图模型312。在一些实施方式中,程序116可以在2D自动编码器的嵌入空间中搜索存储在数据库308中最接近输入嵌入302的嵌入,并且程序116可以找到对应于最接近的嵌入的2D参数化草图模型312。
在一些实施方式中,程序116可以使用变换器生成器来执行搜索。在DeepCAD中可以找到使用变换器生成器执行搜索的示例(Wu、Rundi、Chang Xiao和Changxi Zheng.“Deepcad:A deep generative network for computer-aided design models(深度计算机辅助设计:用于计算机辅助设计模型的深度生成式网络).”IEEE/CVF计算机视觉国际会议纪要.2021)。其他示例包括以下文献中描述的模型:Engineering Sketch Generationfor Computer-Aided Design(计算机辅助设计的工程草图生成),Karl D.D.Willis和Pradeep Kumar Jayaraman和Joseph G.Lambourne和Hang Chu和Yewen Pu,The 1stWorkshop on Sketch-Oriented Deep Learning(SketchDL)(第一期面向草图的深度学习研讨会(SketchDL)),CVPR 2021;Ganin,Yaroslav等人的"Computer-aided design aslanguage(作为语言的计算机辅助设计)."Advances in Neural Information ProcessingSystems(神经信息处理系统进展)34(2021);Para,Wamiq等人,"Sketchgen:Generatingconstrained cad sketches(草图生成:生成受约束的CAD草图)."Advances in NeuralInformation Processing Systems(神经信息处理系统进展)34(2021);Seff,Ari等人,"Vitruvion:A Generative Model of Parametric CAD Sketches(Vitruvion:参数化CAD草图的生成式模型)."arXiv preprint arXiv:2109.14124(2021)。
2D参数化草图模型由程序116通过修改2D参数化草图模型的一个或多个参数值拟合328到目标2D形状的解码表示,以产生拟合的2D参数化草图模型。由数据库308中的搜索检索到的2D参数化草图模型可以通过修改2D参数化草图模型的一个或多个参数值来进一步调整。因为数据库308保存2D参数化草图模型312的有限数量的参数变化,因此程序116可以执行2D参数化草图模型312到2D图像306的拟合314。程序116可以执行优化算法(例如,不需要导数的多维优化算法)以修改2D参数化草图模型312的一个或多个参数值以获得拟合的2D参数化草图模型316。可以在这里应用的优化算法的示例包括单纯形优化(即Nelder-Mead方法)、贝叶斯优化、(自适应)坐标下降、布谷鸟搜索等。如图3所示,与2D参数化草图模型312相比,调整拟合的2D参数化草图模型316的圆的直径和拟合的2D参数化草图模型316的矩形的长度和/或宽度。因此,拟合的2D参数化草图模型316更紧密地匹配2D图像306的形状。
在一些实施方式中,除了拟合参数化草图模型的内部参数之外,程序116可以拟合定义参数化草图模型的位置(例如,x和y方向上的平移)和参数化草图模型的比例(例如,统一比例因子)的参数。在一些实施方式中,在拟合314期间使用的成本函数可以是基于2D解码器304预测每个像素在轮廓内部的概率。令Pr(x,y)为在由整数x和y定义的位置处的像素在轮廓内部的概率。令Inside(x,y)为以下值:如果像素在轮廓内部,则值为+1,而如果像素在轮廓外部,则值为-1。在拟合314期间使用的成本函数可以是
cost=∑x,y(0.5-Pr(x,y))*Inside(x,y)。 (1)
这里的总和是2D轮廓的图像中所有像素的总和。
在计算机建模程序(诸如CAD程序)中使用330拟合的2D参数化草图模型。程序116可以在计算机建模程序的用户接口(UI)中显示拟合的2D参数化草图模型。例如,拟合的2D参数化草图模型316可以在计算机的显示装置318上的UI 320中显示,所述UI可以使用计算机的一个或多个输入装置(例如,键盘和鼠标)来操作。计算机建模程序的用户可以对拟合的2D参数化草图模型316进行进一步修改。用户可以将拟合的2D参数化草图模型316合并到正在创建的3D B-Rep模型中。例如,用户可以使用CAD工具将拟合的2D参数化草图模型316挤出到3D空间中。在一些实施方式中,生成拟合的2D参数化草图模型316的过程可以是3DB-Rep模型的自动生成的一部分。例如,输入嵌入302可以是图2A的相应的子嵌入210(a)和210(b),并且拟合的2D参数化草图模型316可以是相应的拟合的2D参数化草图模型218(a)和218(b)。
图4包括示出训练可以用于确定目标2D形状的拟合的2D参数化草图模型的2D自动编码器的过程的示例的流程图。通过程序116获得422 2D参数化草图模型的参数化实例。程序116获得2D参数化草图模型(例如,轮廓),并且每个2D参数化草图模型的形状由2D参数化草图模型的一个或多个参数值确定。2D参数化草图模型的参数化实例是具有一个或多个确定的参数值的2D参数化草图模型的2D形状。程序116可以改变2D参数化草图模型的一个或多个参数值并获得2D参数化草图模型的多个参数化实例。例如,2D形状402是2D参数化草图模型的参数化实例,例如,具有定义2D参数化草图模型的圆部分的大小的一个参数值和定义2D参数化草图模型的矩形部分的宽度和高度的另外两个参数值。
由程序116从2D参数化草图模型的参数化实例生成424 2D训练图像。2D训练图像中的每一个对应于2D参数化草图模型的参数化实例。例如,程序116可以生成2D参数化草图模型的参数化实例402的二进制掩码406,并且二进制掩码406是可以用于训练2D自动编码器的2D训练图像中的一个。
遵循操作426、428、430和432,由程序116在2D训练图像上训练2D自动编码器。2D自动编码器包括2D编码器412和2D解码器416。针对2D训练图像中的每一个,程序116使用2D编码器处理426 2D训练图像以生成嵌入。在训练期间,2D编码器412可以接收2D训练图像406作为输入并且可以生成2D训练图像406的嵌入414。嵌入414可以是一维嵌入向量,例如,具有512、1024或2048位、字节、字或双字的长度。
在一些实施方式中,带符号距离场图像从2D训练图像生成,并且使用2D编码器处理带符号距离场图像以生成嵌入。程序116可以使用带符号距离函数(SDF)408处理2D训练图像406以获得可以提供2D形状的改进描述的带符号距离场图像410。SDF是将位置作为输入并输出从该位置到形状的最近部分的距离的函数。带符号距离场图像410可以包括作为浮点数的像素值,而不是诸如2D训练图像406中的像素值的二进制值。因为二进制图像仅描述黑色像素与白色像素之间的边界处的形状,而带符号距离函数可以将信号散布在整个图像或像素区域上,所以带符号距离场图像410可以比二进制2D训练图像406提供对2D形状402的更好描述,从而提高2D自动编码器的性能。
例如,二进制图像中的像素只能提供有关形状轮廓的信息,但带符号距离场图像中的像素可以提供有关像素位置的信息以及有关像素处形状厚度的信息。因为CNN(诸如2D自动编码器)可以具有平移不变性,所以图像中不同位置的相同形状可以为二进制图像产生相同的签名,但图像中不同位置的相同形状可以为带符号距离场图像产生不同的签名,从而提供对2D形状的更好描述。例如,从带符号距离场图像410生成的嵌入414可以描述2D形状402和像素在2D训练图像406中的相对位置两者。实验结果表明,使用带符号距离场图像对2D自动编码器的性能的提高。
程序116使用2D解码器处理428嵌入以生成解码后的2D图像。2D解码器416可以生成解码后的2D图像418,并且解码后的2D图像418的每个像素可以是得分,例如浮点数或其他类型的数值,其指示像素在2D形状内部的可能性。在一些实施方式中,程序116可以通过sigmoid函数传递解码后的2D图像418的像素值以获得像素在2D形状内部的概率。sigmoid的作用在于将负数转换为低于阈值(例如,50%)的概率以及将正数转换为高于阈值(例如,50%)的概率。在一些实施方式中,在应用sigmoid函数之前,可以将带符号函数应用于解码后的2D图像418,并且带符号函数可以在2D形状内部为负且在2D形状外部为正。
程序116通过将2D训练图像中的每一个与其对应的解码后的2D图像进行比较来计算430损失函数的值。程序116可以使用损失函数420将每个2D训练图像406与其对应的解码后的2D图像418进行比较。损失函数可以将预测概率中的每一个与2D训练图像中指示的实际类别进行比较。损失函数的示例包括(二进制)交叉熵损失、均方误差、Huber损失和合页损失。
2D编码器的参数和2D解码器的参数由程序116基于损失函数的值来更新432。程序116可以针对从2D训练图像中选择的一批2D训练图像计算损失函数的值。程序116可以使用优化器(诸如随机梯度下降)通过迭代优化过程,基于损失函数的值来更新2D自动编码器的参数,例如2D编码器的参数和2D解码器的参数。程序116可以在2D训练图像的批次上迭代更新2D自动编码器的参数。
可以针对优化的收敛(例如,2D自动编码器的训练的完成)进行检查434。在一些实施方式中,如果参数的更新小于阈值,则可以确定迭代优化过程已经收敛。在一些实施方式中,当更新已经达到计算机或CAD程序支持的精度极限时,会发生收敛。在一些实施方式中,当已经执行固定次数的迭代时,优化会收敛。
在完成训练之后,程序116可以使用436 2D自动编码器。程序116可以使用2D编码器412来针对多个参数化草图模型的参数变化创建嵌入数据库。例如,2D编码器412可以用于生成存储在图3的草图模型数据库308和/或图1的草图数据库130中的嵌入,在一些实施方式中,这两个数据库可以是相同数据库。程序116可以使用带符号距离场函数408将参数化草图模型的每个参数化变化转换为带符号距离场图像。然后,程序116可以使用2D编码器412生成参数化草图模型的参数化变化的嵌入。参数化草图模型的参数化变化下的嵌入和映射关系可以存储在草图模型数据库308和/或草图数据库130中。
程序116可以在过程200中使用经过训练的2D解码器416和经过训练的2D编码器412来生成目标3D对象的3D模型。特定地,经过训练的2D解码器416可以是图2A的中间2D解码器212或其一部分,并且经过训练的2D解码器可以用于为子嵌入210(a)和210(b)确定拟合的2D参数化草图模型218(a)和218(b)。经过训练的2D编码器412可以是图2A的2D编码器260或其一部分。程序116还可以在过程500中使用经过训练的2D解码器416来训练可以用于生成目标3D对象的3D模型的3D自动编码器。
图5示出了训练可以用于生成目标3D对象的3D模型的3D自动编码器的过程500的示例。图6是示出训练可以用于生成目标3D对象的3D模型的3D自动编码器的过程的示例的流程图。3D自动编码器包括:3D编码器508,所述3D编码器处理输入体素模型以生成3D对象嵌入510;子嵌入解码器512,所述子嵌入解码器处理3D对象嵌入510以生成子嵌入(例如,514(a)、514(b)和514(c));包络解码器517,所述包络解码器处理子嵌入中的每一个以生成相应的包络函数;以及可微分布尔引擎,所述可微分布尔引擎通过使用包络函数将2D形状扩展到3D空间中来生成重构体素模型。在一些实施方式中,包络解码器517可以包括:处理子嵌入中的每个子嵌入以生成起始包络函数的起始包络解码器,以及处理子嵌入中的每个子嵌入以生成结束包络函数的结束包络解码器。一组挤出参数(例如,图2A的起始挤出位置和结束挤出位置)可以从起始包络函数和结束包络函数生成。例如,所述一组挤出参数可以是图2A的挤出参数211和213,所述挤出参数可以用于将2D参数化草图模型挤出到3D B-Rep模型220中。
再次参考图6,通过程序116获得602训练示例。每个训练示例包括训练体素模型和地面实况体素模型。训练体素模型从地面实况体素模型生成。当生成地面实况体素模型的历史信息可用时,每个训练示例还可以包括地面实况2D形状和定义地面实况包络函数的一组地面实况扩展参数(例如,每次挤出的起始平面和结束平面)。地面实况体素模型是通过使用所述一组地面实况扩展参数将地面实况2D形状扩展到3D空间中而生成的。当生成地面实况体素模型的历史信息不可用时,地面实况2D形状和所述一组地面实况扩展参数不包括在训练示例中。在一些实施方式中,可以直接在地面实况体素模型上训练3D自动编码器。因此,每个训练示例包括地面实况体素模型,并且程序116不需要从地面实况体素模型生成训练体素模型。
例如,参考图5,程序116可以获得多个训练示例,并且每个训练示例可以包括训练体素模型506、地面实况体素模型502和地面实况2D形状528,包括三个2D形状528(a)、528(b)和528(c)。为了生成多个训练示例,程序116可以获得多个地面实况体素模型。程序116可以通过数据增强从每个地面实况体素模型502生成一个或多个训练体素模型506。例如,程序116可以对地面实况体素502执行各种形态学修改504以获得多个训练体素模型,诸如具有斑点或模糊形状的训练体素模型506和附加孔507。通过形态学操作,训练体素模型506可以具有圆边并且训练体素模型506可以具有与通过拓扑优化或生成式设计创建的各种模型类似的形状。在一些实施方式中,训练体素模型可以是在3D网格中使用3D带符号距离函数生成的训练带符号距离场体素模型。
使用地面实况体素模型502作为地面实况,可以使用监督学习,例如使用第一损失函数524,来训练3D自动编码器。例如,可以训练3D自动编码器以通过从斑点或模糊输入体素模型506生成3D体素模型522来撤销形态学修改504。因此,可以训练3D自动编码器以从由拓扑优化或生成式设计创建的模型生成3D棱柱B-Rep CAD模型。
在一些实施方式中,当生成地面实况体素模型的历史信息可用时,每个地面实况体素模型502可以由地面实况2D形状528定义。也就是说,地面实况体素模型502是通过使用定义地面实况包络函数的一组地面实况扩展参数来扩展地面实况2D形状528而生成的。地面实况包络函数可以是地面实况起始包络函数和地面实况结束包络函数的最大值或交集。地面实况起始包络函数和地面实况结束包络函数可以是二进制值的两个1D向量。因此,当地面实况2D形状和对应的地面实况起始和结束包络函数对程序116是可用时,地面实况2D形状和对应的地面实况扩展参数可以用作额外的地面实况标签以使用监督学习(例如,除了第一损失函数524之外,还使用第二损失函数526)来训练3D自动编码器。特定地,地面实况起始和结束包络函数可以用于使用监督学习来训练包络解码器517(例如,包括起始包络解码器和结束包络解码器)。
例如,2D形状528(a)、528(b)和528(c)分别位于x-y平面、x-y平面和y-z平面处。地面实况体素模型502可以通过用以下方式生成三个中间3D形状来生成:在z方向上在由2D形状528(a)的地面实况起始和结束包络函数定义的位置处扩展2D形状528(a)、在z方向上在由2D形状528(b)的地面实况起始和结束包络函数定义的位置处扩展2D形状528(b)、以及在x方向上在由2D形状528(b)的地面实况起始和结束包络函数定义的位置处扩展2D形状528(c)。三个中间3D形状可以通过并运算(例如,最小运算)、交运算(例如,最大运算)和补运算(例如,负1)来组合。例如,地面实况体素模型502可以通过以下方式生成:取对应于2D形状528(a)和528(b)的3D形状的并集,然后减去对应于2D形状528(c)的3D形状,例如,通过交运算和补运算。
再次参考图6,3D自动编码器遵循操作604、606、608、610、612、614和616在训练示例上进行训练。针对训练示例中的每一个,程序116使用3D自动编码器的3D编码器处理604训练体素模型以生成训练体素模型的3D对象嵌入。参考图5,3D编码器508接收训练体素模型506作为输入并生成训练体素模型506的3D对象嵌入510。3D对象嵌入510可以是具有预定长度(例如512、1024或2048位、字节、字或双字)的一维向量。
再次参考图6,程序116使用3D自动编码器的子嵌入解码器处理606 3D对象嵌入以生成子嵌入。参考图5,子嵌入解码器512接收3D对象嵌入510作为输入并生成子嵌入514(a)、514(b)和514(c)。子嵌入的数量和对应于子嵌入的2D形状的取向可以由子嵌入解码器预定。例如,子嵌入解码器512可以被配置为生成对应于y-z平面(例如,518(a))、x-y平面(例如,518(b))和x-y平面(例如,518(c))中的形状的三个子嵌入。
再次参考图6,程序116处理608子嵌入中的每个子嵌入以生成2D形状以及起始和结束包络函数。程序116使用2D解码器516处理每个子嵌入以生成2D形状。程序116使用包络解码器517处理每个子嵌入以生成2D形状的包络函数。在一些实施方式中,包络解码器517包括起始包络解码器和结束包络解码器。程序116可以使用起始包络解码器处理每个子嵌入以生成起始包络函数。程序116可以使用结束包络解码器处理每个子嵌入以生成结束包络函数。
参考图5,2D解码器516解码每个子嵌入以生成对应的2D形状518。例如,2D解码器516解码子嵌入514(a)以生成2D形状518(a)。2D解码器516解码子嵌入514(b)以生成2D形状518(b)。2D解码器516解码子嵌入514(c)以生成2D形状518(c)。
在一些实施方式中,2D解码器516可以是用于在推理时确定拟合的2D参数化草图模型的相同中间2D解码器212,并且2D解码器可以属于先前已经通过结合图4描述的过程训练的2D自动编码器。程序116可以在3D自动编码器的训练期间冻结经过训练的2D解码器的参数。也就是说,经过训练的2D解码器的参数在3D自动编码器的训练期间不会更新。因此,可以训练3D自动编码器,使得从子嵌入解码器512生成的子嵌入514(a)、514(b)和514(c)在推理时所使用的中间2D解码器212的相同嵌入空间中。因此,在推理期间,参考图2A的过程200,经过训练的中间2D解码器212可以从子嵌入解码器208生成的子嵌入210(a)和210(b)确定拟合的2D参数化草图模型218(a)和218(b)。图2A的中间2D解码器212、图5的2D解码器516、图3的2D解码器304可以是使用图4中描述的过程训练的相同2D解码器。
在一些实施方式中,2D解码器516可以是不同于结合图4描述的可以用于为输入嵌入确定拟合的2D参数化草图模型的2D自动编码器的2D解码器416的2D解码器。也就是说,还未训练2D解码器516来为输入嵌入确定拟合的2D参数化草图模型。在一些情况下,2D解码器516可以具有与2D解码器416相同但可以具有不同的参数值的架构。在一些情况下,2D解码器516可以具有与2D解码器416不同的架构。2D解码器516的参数可以与3D自动编码器的参数一起进行训练。因此,从子嵌入解码器512直接生成的子嵌入514(a)、514(b)和514(c)处于不同于图2A的中间2D解码器212定义的嵌入空间的嵌入空间中。
因此,在推理期间,参考图2A的过程200,可以使用附加处理,如框219所示。程序116可以使用2D编码器260处理解码后的2D形状214(a),并且2D编码器260与用于生成草图模型数据库256中的草图模型的嵌入的经过训练的2D自动编码器的2D编码器412相同。因此,程序116可以在经过训练的2D自动编码器的嵌入空间中搜索中间嵌入254的2D参数化草图模型258。
返回参考图5,在一些实施方式中,包络解码器517从每个子嵌入生成包络函数。在一些实施方式中,包络解码器517可以包括起始包络解码器和结束包络解码器。起始包络解码器可以从子嵌入生成起始包络函数。结束包络解码器可以从子嵌入生成结束包络函数。起始函数和包络函数可以确定包络函数。在一些实施方式中,起始包络函数和结束包络函数的最大值或交集可以是包络函数。包络函数可以用于生成2D形状的包络挤出(例如521(a)、521(b)或521(c))。
再次参考图6,程序116通过以预测的构建序列使用2D形状通过扩展在3D空间中来构建重构体素模型来生成610训练体素模型的重构体素模型。参考图5,程序116使用预测的构建序列从2D形状518生成重构体素模型522。预测的构建序列包括包络函数、在可微分布尔引擎520中定义的运算和预定义的扩展方向。
在一些实施方式中,程序116可以包括微分扩展引擎519。微分扩展引擎519可以通过在预定扩展方向上扩展每个2D形状518(a)、518(b)或518(c)来生成三个中间3D形状。例如,可微分2D形状518(a)、518(b)或518(c)可以沿着3D网格的预定或硬编码轴复制。程序116可以使用对应的包络函数处理中间3D形状中的每一个以生成包络扩展。例如,包络函数和中间3D形状的最大值或交集可以是包络扩展。包络函数可以应用于与预定或硬编码扩展轴正交的扩展2D形状,使用最大函数来定义交集。3D形状521(a)是2D形状518(a)的包络扩展,并且3D形状521(b)是2D形状518(b)的包络扩展,并且3D形状521(c)是2D形状518(c)的包络扩展。微分布尔引擎520可以处理包络扩展以生成重构的3D体素模型522。例如,包络扩展521(a)、521(b)和521(c)可以使用在可微分布尔引擎520中定义的并运算、交运算、补运算或其组合来组合。
再次参考图6,程序116通过将每个训练体素模型与其对应的重构体素模型进行比较来计算612第一损失函数的值。参考图5,程序116可以使用第一损失函数524测量重构体素模型522与地面实况体素模型502之间的差异。第一损失函数的示例包括(二进制)交叉熵损失、均方误差、Huber损失和合页损失。第一损失函数允许训练机器学习模型而不需要来自基于草图的历史的训练示例。
在一些实施方式中,通过将地面实况2D形状与2D形状进行比较以及通过将起始和结束包络函数与地面实况包络函数进行比较,来计算614第二损失函数的值。程序116可以使用第二损失函数526测量2D形状518(a)、518(b)和518(c)与地面实况2D形状528之间的差异。第二损失函数的示例包括交叉熵损失、均方误差、Huber损失和合页损失。在一些实施方式中,程序116还可以使用第二损失函数526测量起始和结束包络函数与地面实况包络函数之间的差异。第二损失函数允许3D自动编码器学习将3D形状分解为类似CAD的2D轮廓。因此,在监督第二损失函数的情况下,可以训练3D自动编码器以生成可以用于CAD挤出的2D轮廓或形状。
再次参考图6,程序116至少基于第一损失函数的值来更新3D自动编码器的参数。在一些实施方式中,至少基于第一损失函数的值和第二损失函数的值来更新616 3D自动编码器的参数。参考图5,可以基于第一损失函数524的值来更新3D编码器508的参数、子嵌入解码器512的参数和包络解码器517的参数。在一些实施方式中,3D编码器508的参数和子嵌入解码器512的参数可以基于第一损失函数524的值和第二损失函数的值的和(或加权和)来更新。在一些实施方式中,2D解码器516的参数也可以在3D自动编码器的训练期间被更新。3D自动编码器的参数可以使用优化器(诸如随机梯度下降),通过迭代优化过程,基于第一和/或第二损失函数的值进行更新。程序116可以在训练示例的批次上迭代更新3D自动编码器的参数。
可以针对优化的收敛(例如,3D自动编码器的训练的完成)进行检查618。在一些实施方式中,如果参数的更新小于阈值,则可以确定迭代优化过程已经收敛。在一些实施方式中,当更新已经达到计算机或CAD程序支持的精度极限时,会发生收敛。在一些实施方式中,当已经执行固定次数的迭代时,优化会收敛。
在完成训练之后,程序116可以使用经过训练的3D自动编码器620。程序116可以使用经过训练的子嵌入解码器并且在过程200中生成目标3D对象的3D模型。特定地,经过训练的子嵌入解码器512可以是图2A的子嵌入解码器208,并且经过训练的子嵌入解码器512可以用于将嵌入206解码为子嵌入210(a)和210(b)。经过训练的包络解码器517可以是图2A的包络解码器217(a)和217(b),并且可以用于从子嵌入生成起始包络函数和结束包络函数。程序116也可以使用经过训练的3D编码器508作为过程200中的3D编码器204以从目标3D对象的表示202生成嵌入206。
图7示出了可以用于生成目标3D对象的3D模型的3D自动编码器的神经网络架构700的示例。3D自动编码器包括3D编码器702和多个解码模块,诸如子解码器706(A)、706(B)、706(C)等。解码模块中的每一个对应于一组不同的预定义扩展方向。解码模块中的每一个包括相应的子嵌入解码器和相应的可微分布尔引擎以生成3D体素模型。可以使用包括扩展/挤出方向和布尔运算的构建序列来从2D形状扩展3D对象。尽管存在许多不同的3D对象,但可以通过有限数量的构建序列构建许多3D对象。3D自动编码器可以确定扩展/挤出方向的有限数量的组合。3D自动编码器可以针对每个挤出方向组合确定有限数量的布尔运算。因此,3D自动编码器可以包括有限数量的(例如18个)解码模块,并且每个解码模块可以具有一组预定的挤出/扩展方向和在对应的可微分布尔引擎中预定的一组布尔运算。相同的2d解码器712可以在所有解码模块之间共享。
例如,3D自动编码器架构700可以包括两个或更多个解码模块。解码模块706(A)包括子嵌入解码器708,所述子嵌入解码器可以被训练以生成子嵌入710(a)和710(b),所述子嵌入对y-z平面中的2D形状(例如形状714(a))和x-z平面中的2D形状(例如形状714(b))进行编码。预定义2D形状714(a)和714(b)的扩展方向,例如,分别在x方向和y方向上。2D形状714(a)和714(b)的扩展可以通过定义预定并运算、交运算、补运算或其组合的可微分布尔引擎来组合,以生成3D体素模型716。解码模块706(B)包括子嵌入解码器720,所述子嵌入解码器可以被训练以生成对三个2D形状进行编码的子嵌入722(a)、722(b)和722(c)。三个2D形状可以包括例如y-z平面中的形状726(a)、x-y平面中的形状726(b)和x-y平面中的形状726(c)。预定义三个2D形状的扩展方向,例如分别在x方向、z方向和z方向上。2D形状726(a)、726(b)和726(c)的扩展可以通过定义预定并运算、交运算、补运算或其组合的可微分布尔引擎来组合,以生成3D体素模型728。解码模块706(C)包括子嵌入解码器730,所述子嵌入解码器可以被训练以生成对2D形状进行编码的子嵌入732。2D形状可以包括例如x-z平面中的形状734。预定义2D形状734的扩展方向,例如在y方向上。2D形状734的扩展可以产生3D体素模型736。
在3D自动编码器的训练期间,例如,图5的过程500,程序116可以针对每个地面实况体素模型确定扩展方向和布尔运算,并将地面实况体素模型分类为不同的类别。可以选择具有每个类别的地面实况体素模型的训练示例来训练以对应的扩展方向和布尔运算操作的相应解码模块。
在推断时,例如图2A的过程200,程序116可以获得目标3D对象的表示701并且可以确定一个或多个可能的构建序列。每个构建序列都可以包括一组挤出方向和布尔运算。程序116可以选择对挤出方向和布尔运算进行操作的3D自动编码器架构700的解码模块,并且可以使用所选择的解码模块生成3D B-Rep模型。解码模块的选择可以由计算机程序自动执行或者可以由用户通过UI执行。
例如,对于输入的3D形状701,程序116可以选择在x方向上挤出2D形状714(a)并且在y方向上挤出2D形状714(b)的解码模块706(A)。替代地,对于输入的3D形状701,程序116也可以选择在z方向上挤出两个x-y平面2D形状并在x方向上挤出一个y-z平面2D形状的解码模块706(B)。任一解码模块都可以生成令人满意的3D B-Rep模型。程序116可以确定解码模块706(C)无法生成仅在y方向上挤出单个x-z平面2D形状的令人满意的3D B-Rep模型,例如,无法生成孔。在一些实施方式中,用户可以使用两个或更多个解码模块生成3D B-Rep模型,并且可以从结果中选择优选的3D B-Rep模型。
在一些实施方式中,在推断时,例如图2A的过程200,程序116可以接收对目标3D对象的表示进行编码的初始输入嵌入704,而不接收目标几何图形。程序116可以使用3D反卷积体素解码器703从初始输入嵌入生成解码后的3D体素模型701,所述3D反卷积体素解码器先前被训练以将初始输入嵌入206解码成3D形状。3D反卷积体素解码器703可以包括CNN,所述CNN包括:具有可配置大小的一个或多个3D反卷积层、具有可配置大小的一个或多个3D转置卷积层、一个或多个全连接层、一个或多个激活层、或层之间的跳跃连接等。解码后的3D体素模型701的每个体素可以是指示体素被材料填充的可能性的得分。然后,程序116可以基于解码后的3D体素模型确定可能的构建序列,并且可以基于可能的构建序列选择解码模块。例如,程序116可以接收初始嵌入704,而不接收3D形状的目标3D几何图形。程序116可以使用3D反卷积体素解码器703来处理初始嵌入704作为输入并生成解码后的3D体素模型701。基于解码后的3D体素模型701的形状,程序116可以确定解码模块706(A)或解码模块706(B)可以生成令人满意的3D B-Rep模型。
图8A示出了针对复杂的2D形状确定拟合的2D参数化草图模型的过程的示例。通过程序116获得输入的2D图像。输入的2D图像包括两个或更多个2D形状。例如,通过程序116获得输入的2D图像802。输入的2D图像802包括位于图像802的八个不同位置和八个不同取向的八个矩形。所述矩形中的一个是矩形804。
子图像部分由程序116从输入的2D图像生成。每个子图像部分描绘了两个或更多个2D形状中的2D形状。例如,可以例如通过连通区域分析生成包括八个矩形中的每一个的八个图像块。例如,可以为矩形804生成图像块805。由程序116针对子图像部分中的每个子图像部分生成相应的子图像部分嵌入。程序116可以通过使用在如图4中描述的过程中训练的2D自动编码器的2D编码器412对八个子图像部分进行编码来生成八个子图像部分嵌入。
拟合的2D参数化草图模型由程序116确定。也就是说,为每个子图像部分嵌入确定拟合的2D参数化草图模型。例如,可以为图像块805的子图像部分嵌入确定拟合的2D参数化草图模型806。程序116通过在子图像部分的相应位置处组合拟合的2D参数化草图模型来生成组合的2D参数化草图模型。例如,八个2D拟合的参数化草图模型可以在子图像部分的相应位置处组合以生成组合的2D参数化草图模型808。
图8B示出了从输入的2D图像生成子图像部分(例如内环和外环)的过程的示例。程序116可以获得输入的2D图像812。输入的2D图像包括圆形2D对象,所述圆形2D对象具有位于中心处的一个大孔以及六个小孔。程序116可以例如通过形态学操作来填充输入的2D图像812的大孔和小孔,以获得2D图像814。程序116可以例如通过减法生成2D图像814与输入2D图像812之间的差异图像816。差异图像816包括七个子部分,例如中间的大圆以及六个小圆。程序116可以针对七个圆中的每一个单独确定拟合的2D参数化草图模型。程序116可以通过组合七个圆的拟合的2D参数化草图模型来生成差异图像816的组合的2D参数化草图模型。程序116可以通过将2D图像814的拟合的2D参数化草图模型与差异图像816的组合的2D参数化草图模型的补组合来针对输入的2D图像812生成2D参数化草图模型,因为输入的2D图像812可以通过从2D图像814中减去七个圆来生成。
图9是包括数据处理设备900的数据处理系统的示意图,所述数据处理设备可以编程为客户端或服务器。数据处理设备900通过网络980与一个或多个计算机990连接。虽然在图9中仅示出一个计算机作为数据处理设备900,但是可以使用多个计算机。数据处理设备900包括各种软件模块,所述软件模块可以分布在应用层与操作系统之间。这些可以包括可执行和/或可解译的软件程序或库,包括实施上述系统和技术的一个或多个3D建模程序904的工具和服务。因此,3D建模程序904可以是CAD程序904,并且可以实施通过机器学习算法生成棱柱B-Rep CAD模型。此外,程序904可以潜在地实施制造控制操作(例如,生成和/或应用刀具路径规范以实现设计对象的制造)。在一些情况下,程序904可以潜在地实施建筑施工管理或视频和电影制作。所使用的软件模块的数量可以因实施方式而异。此外,软件模块可以分布在由一个或多个计算机网络或其他合适的通信网络连接的一个或多个数据处理设备上。
数据处理设备900还包括硬件或固件装置,包括一个或多个处理器912、一个或多个附加装置914、计算机可读介质916、通信接口918和一个或多个用户接口装置920。每个处理器912能够处理用于在数据处理设备900内执行的指令。在一些实施方式中,处理器912是单线程或多线程处理器。每个处理器912能够处理存储在计算机可读介质916或诸如附加装置914中的一个的存储装置上的指令。数据处理设备900使用通信接口918以例如通过网络980与一个或多个计算机990通信。用户接口装置920的示例包括显示器、相机、扬声器、传声器、触觉反馈装置、键盘、鼠标以及VR和/或AR设备。数据处理设备900可将实施与上述程序相关联的操作的指令存储在例如计算机可读介质916或一个或多个附加装置914(例如,硬盘装置、光盘装置、磁带装置和固态存储器装置中的一者或多者)上。
本说明书中描述的主题和功能操作的实施方案可实施在数字电子电路中,或实施在计算机软件、固件或硬件(包括本说明书中公开的结构和它们的结构等同物)中,或实施在它们中的一者或多者的组合中。本说明书中描述的主题的实施方案可以使用一个或多个计算机程序指令模块来实施,所述指令模块编码在非暂时性计算机可读介质上以由数据处理设备执行,或用于控制数据处理设备的操作。所述计算机可读介质可以是制造产品,诸如计算机系统中的硬盘驱动器,或通过零售渠道销售的光盘,或嵌入式系统。可单独地获取计算机可读介质,或者所述计算机可读介质稍后诸如通过经由有线或无线网络输送一个或多个计算机程序指令模块而被编码有所述一个或多个计算机程序指令模块。计算机可读介质可以是机器可读存储装置、机器可读存储基板、存储器装置或它们中的一者或多者的组合。
术语“数据处理设备”涵盖用于处理数据的所有设备、装置和机器,例如包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,所述设备还可以包括为所讨论的计算机程序产生执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、运行时环境或它们中的一者或多者的组合的代码。此外,所述设备可以采用各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
计算机程序(还称为程序、软件、软件应用、脚本或代码)可以以任何编程语言形式(包括编译或解译语言、声明或过程语言)写入,并且其可以以任何形式部署,包括作为独立程序或作为模块、部件、子例程、或适用于计算环境的其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中、存储在专用于所讨论程序的单一文件中、或存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署以在一个计算机上或在多个计算机(其位于一个地点或分布在多个地点且通过通信网络互连)上执行。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,所述一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,并且设备也可以实施为所述专用逻辑电路。
适用于执行计算机程序的处理器包括例如通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元素是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘或光盘)或可操作地耦合以从所述大容量存储装置接收数据或向其传输数据或两者兼而有之。然而,计算机不需要具有此类装置。此外,计算机可以嵌入另一装置中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储装置(例如,通用串行总线(USB)快闪驱动器),仅举数例。适合于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,包括例如:半导体存储器装置,例如,EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)和快闪存储器装置;磁盘,例如,内部硬盘或可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或合并到专用逻辑电路中。
为了提供与用户的交互,可以在计算机上实施本说明书中描述的主题的实施方案,所述计算机具有用于向用户显示信息的显示装置(例如,LCD(液晶显示器)显示装置、OLED(有机发光二极管)显示装置、或其他监视器)、以及键盘和指向装置,例如鼠标或轨迹球,用户可以通过其向计算机提供输入。其他类型的装置也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可以以任何形式接收,包括声音、语音或触觉输入。
计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系由于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。本说明书中描述的主题的实施方案可以在包括后端部件(例如,作为数据服务器)的计算系统中实施;或在包括中间件部件(例如,应用服务器)的计算系统中实施;或在包括前端部件(例如,客户端计算机,其具有图形用户接口或网页浏览器,用户可以通过所述图形用户接口或网页浏览器与本说明书中描述的主体的实施方式交互)的计算系统中实施;或在包括一个或多个此类后端部件、中间件部件或前端部件的任何组合的计算系统中实施。系统的部件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如互联网)和对等网络(例如,自组织对等网络)。
虽然本说明书包含许多实施方式细节,但这些不应被解释为对受权利要求保护或可能受权利要求保护的内容的范围的限制,而是作为对所公开主题的特定实施方案所特有的特征的描述。本说明书中在单独实施方案的背景下描述的特定特征也可以在单个实施方案中组合实施。相反地,在单个实施方案的背景下描述的各种特征也可以单独地在多个实施方案中实施或以任何合适的子组合实施。此外,尽管特征在上文可以被描述为以某些组合起作用并且甚至最初因此而受权利要求保护,但是来自受权利要求保护的组合的一个或多个特征在一些情况下可以与所述组合分离,并且受权利要求保护的组合可以涉及子组合或子组合的变化。
类似地,尽管操作在附图中是按特定顺序描绘,但是此不应被理解为要求此类操作以所示的特定顺序或以有序的顺序执行,或所有所示操作被执行,以实现期望结果。在某些情况中,多任务和并行处理可能是有利的。此外,上文描述的实施方案中的各个系统部件的分离不应理解为在全部实施方案中需要这种分离,并且应理解,所描述的程序部件和系统一般可以一起集成在单一软件产品中或封装在多个软件产品中。
已经描述了本发明的多个特定实施方案。其他实施方案在以下权利要求的范围内。
Claims (25)
1.一种方法,其包括:
获得对目标二维(2D)形状的表示进行编码的输入嵌入;
使用2D自动编码器的2D解码器处理所述输入嵌入以获得所述目标2D形状的解码表示,其中所述2D自动编码器包括处理2D对象的表示以生成对象嵌入的2D编码器,以及处理所述对象嵌入以生成所述2D对象的所述解码表示的所述2D解码器;
为所述输入嵌入确定拟合的2D参数化草图模型,包括:
在所述2D自动编码器的嵌入空间和与所述2D自动编码器相关联的草图模型数据库中使用搜索来找到所述输入嵌入的2D参数化草图模型,其中所述2D参数化草图模型的形状由所述2D参数化草图模型的一个或多个参数值确定;以及
通过修改所述2D参数化草图模型的所述一个或多个参数值将所述2D参数化草图模型拟合到所述目标2D形状的所述解码表示,以产生所述拟合的2D参数化草图模型;以及
在计算机建模程序中使用所述拟合的2D参数化草图模型。
2.如权利要求1所述的方法,其包括:
获得2D参数化草图模型的参数化实例;
从所述2D参数化草图模型的所述参数化实例生成2D训练图像,其中所述2D训练图像中的每一个对应于2D参数化草图模型的参数化实例;以及
在所述2D训练图像上训练所述2D自动编码器,包括:
针对所述2D训练图像中的每一个:
使用所述2D编码器处理所述2D训练图像以生成嵌入;以及
使用所述2D解码器处理所述嵌入以生成解码后的2D图像;
通过将所述2D训练图像中的每一个与其对应的解码后的2D图像进行比较来计算损失函数的值;以及
基于所述损失函数的所述值来更新所述2D编码器的参数和所述2D解码器的参数。
3.如权利要求2所述的方法,其中所述在所述2D训练图像上训练所述2D自动编码器包括:
从所述2D训练图像生成带符号距离场图像;以及
使用所述2D编码器处理所述带符号距离场图像以生成所述嵌入。
4.如权利要求1所述的方法,其包括:
获得对目标三维(3D)对象的表示进行编码的初始输入嵌入;
使用3D自动编码器的子嵌入解码器处理所述初始输入嵌入以获得包括所述输入嵌入的子嵌入,其中所述子嵌入对定义所述目标3D对象的所述表示的2D形状进行编码;
生成参数化草图模型,包括:
使用一个或多个中间2D解码器处理所述子嵌入中的每一个以获得定义所述目标3D对象的所述表示的所述2D形状;
通过使用所述2D自动编码器的所述2D编码器处理所述2D形状中的每一个来生成中间嵌入中的每一个;以及
执行为所述中间嵌入中的每一个确定所述参数化草图模型的相应的参数化草图模型,其中所述相应的参数化草图模型是所述拟合的2D参数化草图模型,其中所述目标2D形状的所述解码表示是所述2D形状中的每一个;
从所述子嵌入生成一组挤出参数;以及
生成所述目标3D对象的3D边界表示(B-Rep)模型,其中所述生成包括以构建序列使用所述拟合的2D参数化草图模型来通过挤出到3D空间中构建所述3D B-Rep模型,其中所述构建序列包括所述一组挤出参数。
5.如权利要求4所述的方法,其中所述子嵌入解码器包括多层感知器(MLP)。
6.如权利要求4所述的方法,其中所述一个或多个中间2D解码器包括所述2D自动编码器的所述2D解码器。
7.如权利要求4所述的方法,其中所述一个或多个中间2D解码器包括不同于所述2D自动编码器的所述2D解码器的第二2D解码器。
8.如权利要求4所述的方法,其中所述3D自动编码器包括:
3D编码器,所述3D编码器处理输入体素模型以生成3D对象嵌入,
所述子嵌入解码器,所述子嵌入解码器处理所述3D对象嵌入以生成所述子嵌入,
起始包络解码器,所述起始包络解码器处理所述子嵌入中的每个子嵌入以生成起始包络函数,
结束包络解码器,所述结束包络解码器处理所述子嵌入中的每个子嵌入以生成结束包络函数,其中所述一组挤出参数从所述起始包络函数和所述结束包络函数生成,以及
可微分布尔引擎,所述可微分布尔引擎通过使用所述起始包络函数和所述结束包络函数将所述2D形状挤出到所述3D空间中来生成重构模型。
9.如权利要求8所述的方法,其包括:
获得训练示例,其中每个训练示例包括训练体素模型、地面实况体素模型和地面实况2D形状,其中所述地面实况体素模型通过使用定义地面实况包络函数的一组地面实况挤出参数将所述地面实况2D形状挤出到3D空间中定义,其中所述训练体素模型从所述地面实况体素模型生成;以及
在所述训练示例上训练所述3D自动编码器,包括:
针对所述训练示例中的每一个:
使用所述3D编码器处理所述训练体素模型以生成所述训练体素模型的所述3D对象嵌入;以及
使用所述子嵌入解码器处理所述3D对象嵌入以生成所述子嵌入;
使用所述2D解码器处理所述子嵌入中的每个子嵌入以生成所述2D形状中的2D形状;
使用所述起始包络解码器处理所述子嵌入中的每个子嵌入以生成所述2D形状的起始包络函数;
使用所述结束包络解码器处理所述子嵌入中的每个子嵌入以生成所述2D形状的结束包络函数;以及
通过以预测的构建序列使用所述2D形状来通过扩展在所述3D空间中构建重构体素模型来生成所述训练体素模型的所述重构体素模型,其中所述预测的构建序列包括在所述可微分布尔引擎中定义的运算以及所述2D形状中的每一个的所述起始包络函数和所述结束包络函数;
通过将每个训练体素模型与其对应的重构体素模型进行比较来计算第一损失函数的值;以及
至少基于所述第一损失函数的所述值来更新所述3D自动编码器的参数。
10.如权利要求9所述的方法,其还包括:
通过将所述地面实况2D形状与所述2D形状进行比较以及通过将所述起始包络函数和所述结束包络函数与所述地面实况包络函数进行比较,来计算第二损失函数的值;以及
至少基于所述第一损失函数的所述值和所述第二损失函数的所述值来更新所述3D自动编码器的所述参数。
11.如权利要求9所述的方法,其中所述训练体素模型是通过形态学修改从所述地面实况体素模型生成的。
12.如权利要求8所述的方法,其中所述3D自动编码器包括解码模块并且所述解码模块中的每一个对应于一组不同的预定义的一个或多个挤出方向和不同的预定义的一个或多个布尔运算,其中所述解码模块中的每一个包括相应的子嵌入解码器、相应的起始包络解码器以及相应的结束包络解码器。
13.如权利要求4所述的方法,其中获得所述初始输入嵌入包括:
从第一3D对象的第一体素模型生成第一3D对象嵌入;
从第二3D对象的第二体素模型生成第二3D对象嵌入;以及
从所述第一3D对象嵌入和所述第二3D对象嵌入生成所述初始输入嵌入。
14.如权利要求4所述的方法,其包括:
获得所述目标3D对象的初始体素模型;
通过形态学修改处理所述初始体素模型来生成修改后的体素模型;
通过使用包括在所述3D自动编码器中的3D编码器处理所述修改后的体素模型来生成所述初始输入嵌入;以及
使用所述构建序列,通过挤出到所述3D空间中,从所述拟合的2D参数化草图模型生成重构的3D B-Rep模型,其中所述重构的3DB-Rep模型类似于所述初始体素模型。
15.如权利要求4所述的方法,其包括:
获得所述目标3D对象的初始体素模型,其中所述初始体素模型从生成式设计输出生成;
通过使用包括在所述3D自动编码器中的3D编码器处理所述初始体素模型来生成所述初始输入嵌入;以及
生成所述目标3D对象的3D棱柱模型,其中所述目标3D对象的所述3D棱柱模型为所述3DB-Rep模型。
16.如权利要求4所述的方法,其还包括:
获得所述目标3D对象的初始体素模型,其中所述初始体素模型从生成式设计输出生成;
通过使用包括在所述3D自动编码器中的3D编码器处理所述初始体素模型来生成所述初始输入嵌入;以及
通过改变所述3D B-Rep模型的一个或多个参数来将所述3DB-Rep模型拟合到所述目标3D对象的所述初始体素模型以产生拟合的3D B-Rep模型。
17.如权利要求1所述的方法,其中所述使用所述拟合的2D参数化草图模型包括:在所述计算机建模程序的用户接口中显示所述拟合的2D参数化草图模型。
18.如权利要求1所述的方法,其包括:
获得输入的2D图像,其中所述输入的2D图像包括两个或更多个2D形状;
从所述输入的2D图像生成子图像部分,其中每个子图像部分描绘所述两个或更多个2D形状中的2D形状;
针对所述子图像部分中的每个子图像部分生成相应的子图像部分嵌入;
确定拟合的2D参数化草图模型,包括:执行为每个子图像部分嵌入确定每个拟合的2D参数化草图模型;以及
通过在所述子图像部分的相应位置处组合所述拟合的2D参数化草图模型来生成组合的2D参数化草图模型。
19.一种系统,其包括:
非暂时性存储介质,所述非暂时性存储介质上存储有计算机辅助设计程序的指令;以及
一个或多个数据处理设备,所述一个或多个数据处理设备被配置为运行所述计算机辅助设计程序的所述指令以执行由所述计算机辅助设计程序的所述指令指定的操作;
其中所述操作包括
获得对目标二维(2D)形状的表示进行编码的输入嵌入;
使用2D自动编码器的2D解码器处理所述输入嵌入以获得所述目标2D形状的解码表示,其中所述2D自动编码器包括处理2D对象的表示以生成对象嵌入的2D编码器,以及处理所述对象嵌入以生成所述2D对象的所述解码表示的所述2D解码器;
为所述输入嵌入确定拟合的2D参数化草图模型,包括:
在所述2D自动编码器的嵌入空间和与所述2D自动编码器相关联的草图模型数据库中使用搜索来找到所述输入嵌入的2D参数化草图模型,其中所述2D参数化草图模型的形状由所述2D参数化草图模型的一个或多个参数值确定;以及
通过修改所述2D参数化草图模型的所述一个或多个参数值将所述2D参数化草图模型拟合到所述目标2D形状的所述解码表示,以产生所述拟合的2D参数化草图模型;以及
在计算机建模程序中使用所述拟合的2D参数化草图模型。
20.如权利要求19所述的系统,其中所述操作包括:
获得2D参数化草图模型的参数化实例;
从所述2D参数化草图模型的所述参数化实例生成2D训练图像,其中所述2D训练图像中的每一个对应于2D参数化草图模型的参数化实例;以及
在所述2D训练图像上训练所述2D自动编码器,包括:
针对所述2D训练图像中的每一个:
使用所述2D编码器处理所述2D训练图像以生成嵌入;以及
使用所述2D解码器处理所述嵌入以生成解码后的2D图像;
通过将所述2D训练图像中的每一个与其对应的解码后的2D图像进行比较来计算损失函数的值;以及
基于所述损失函数的所述值来更新所述2D编码器的参数和所述2D解码器的参数。
21.如权利要求19所述的系统,其中所述操作包括:
获得对目标三维(3D)对象的表示进行编码的初始输入嵌入;
使用3D自动编码器的子嵌入解码器处理所述初始输入嵌入以获得包括所述输入嵌入的子嵌入,其中所述子嵌入对定义所述目标3D对象的所述表示的2D形状进行编码;
生成参数化草图模型,包括:
使用一个或多个中间2D解码器处理所述子嵌入中的每一个以获得定义所述目标3D对象的所述表示的所述2D形状;
通过使用所述2D自动编码器的所述2D编码器处理所述2D形状中的每一个来生成中间嵌入中的每一个;以及
执行为所述中间嵌入中的每一个确定所述参数化草图模型的相应的参数化草图模型,其中所述相应的参数化草图模型是所述拟合的2D参数化草图模型,其中所述目标2D形状的所述解码表示是所述2D形状中的每一个;
从所述子嵌入生成一组挤出参数;以及
生成所述目标3D对象的3D边界表示(B-Rep)模型,其中所述生成包括以构建序列使用所述拟合的2D参数化草图模型来通过挤出到3D空间中构建所述3D B-Rep模型,其中所述构建序列包括所述一组挤出参数。
22.如权利要求21所述的系统,其中所述3D自动编码器包括:
3D编码器,所述3D编码器处理输入体素模型以生成3D对象嵌入,
所述子嵌入解码器,所述子嵌入解码器处理所述3D对象嵌入以生成所述子嵌入,
起始包络解码器,所述起始包络解码器处理所述子嵌入中的每个子嵌入以生成起始包络函数,
结束包络解码器,所述结束包络解码器处理所述子嵌入中的每个子嵌入以生成结束包络函数,其中所述一组挤出参数从所述起始包络函数和所述结束包络函数生成,以及
可微分布尔引擎,所述可微分布尔引擎通过使用所述起始包络函数和所述结束包络函数将所述2D形状挤出到所述3D空间中来生成重构模型;
并且其中所述操作包括:
获得训练示例,其中每个训练示例包括训练体素模型、地面实况体素模型和地面实况2D形状,其中所述地面实况体素模型通过使用定义地面实况包络函数的一组地面实况挤出参数将所述地面实况2D形状挤出到3D空间中定义,其中所述训练体素模型从所述地面实况体素模型生成;以及
在所述训练示例上训练所述3D自动编码器,包括:
针对所述训练示例中的每一个:
使用所述3D编码器处理所述训练体素模型以生成所述训练体素模型的所述3D对象嵌入;以及
使用所述子嵌入解码器处理所述3D对象嵌入以生成所述子嵌入;
使用所述2D解码器处理所述子嵌入中的每个子嵌入以生成所述2D形状中的2D形状;
使用所述起始包络解码器处理所述子嵌入中的每个子嵌入以生成所述2D形状的起始包络函数;
使用所述结束包络解码器处理所述子嵌入中的每个子嵌入以生成所述2D形状的结束包络函数;以及
通过以预测的构建序列使用所述2D形状来通过扩展在所述3D空间中构建重构体素模型来生成所述训练体素模型的所述重构体素模型,其中所述预测的构建序列包括在所述可微分布尔引擎中定义的运算以及所述2D形状中的每一个的所述起始包络函数和所述结束包络函数;
通过将每个训练体素模型与其对应的重构体素模型进行比较来计算第一损失函数的值;以及
至少基于所述第一损失函数的所述值来更新所述3D自动编码器的参数。
23.一种非暂时性计算机可读介质,其对指令进行编码,所述指令能操作以致使数据处理设备执行各操作,所述操作包括:
获得对目标二维(2D)形状的表示进行编码的输入嵌入;
使用2D自动编码器的2D解码器处理所述输入嵌入以获得所述目标2D形状的解码表示,其中所述2D自动编码器包括处理2D对象的表示以生成对象嵌入的2D编码器,以及处理所述对象嵌入以生成所述2D对象的所述解码表示的所述2D解码器;
为所述输入嵌入确定拟合的2D参数化草图模型,包括:
在所述2D自动编码器的嵌入空间和与所述2D自动编码器相关联的草图模型数据库中使用搜索来找到所述输入嵌入的2D参数化草图模型,其中所述2D参数化草图模型的形状由所述2D参数化草图模型的一个或多个参数值确定;以及
通过修改所述2D参数化草图模型的所述一个或多个参数值将所述2D参数化草图模型拟合到所述目标2D形状的所述解码表示,以产生所述拟合的2D参数化草图模型;以及
在计算机建模程序中使用所述拟合的2D参数化草图模型。
24.如权利要求23所述的非暂时性计算机可读介质,其中所述操作包括:
获得2D参数化草图模型的参数化实例;
从所述2D参数化草图模型的所述参数化实例生成2D训练图像,其中所述2D训练图像中的每一个对应于2D参数化草图模型的参数化实例;以及
在所述2D训练图像上训练所述2D自动编码器,包括:
针对所述2D训练图像中的每一个:
使用所述2D编码器处理所述2D训练图像以生成嵌入;以及
使用所述2D解码器处理所述嵌入以生成解码后的2D图像;
通过将所述2D训练图像中的每一个与其对应的解码后的2D图像进行比较来计算损失函数的值;以及
基于所述损失函数的所述值来更新所述2D编码器的参数和所述2D解码器的参数。
25.如权利要求23所述的非暂时性计算机可读介质,其中所述操作包括:
获得对目标三维(3D)对象的表示进行编码的初始输入嵌入;
使用3D自动编码器的子嵌入解码器处理所述初始输入嵌入以获得包括所述输入嵌入的子嵌入,其中所述子嵌入对定义所述目标3D对象的所述表示的2D形状进行编码;
生成参数化草图模型,包括:
使用一个或多个中间2D解码器处理所述子嵌入中的每一个以获得定义所述目标3D对象的所述表示的所述2D形状;
通过使用所述2D自动编码器的所述2D编码器处理所述2D形状中的每一个来生成中间嵌入中的每一个;以及
执行为所述中间嵌入中的每一个确定所述参数化草图模型的相应的参数化草图模型,其中所述相应的参数化草图模型是所述拟合的2D参数化草图模型,其中所述目标2D形状的所述解码表示是所述2D形状中的每一个;
从所述子嵌入生成一组挤出参数;以及
生成所述目标3D对象的3D边界表示(B-Rep)模型,其中所述生成包括以构建序列使用所述拟合的2D参数化草图模型来通过挤出到3D空间中构建所述3D B-Rep模型,其中所述构建序列包括所述一组挤出参数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/747,953 US20230376639A1 (en) | 2022-05-18 | 2022-05-18 | Generating prismatic cad models by machine learning |
US17/747,953 | 2022-05-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117094203A true CN117094203A (zh) | 2023-11-21 |
Family
ID=85727200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310283024.1A Pending CN117094203A (zh) | 2022-05-18 | 2023-03-22 | 通过机器学习生成棱柱cad模型 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230376639A1 (zh) |
EP (1) | EP4280162A1 (zh) |
CN (1) | CN117094203A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210358202A1 (en) * | 2020-05-13 | 2021-11-18 | Electronic Caregiver, Inc. | Room Labeling Drawing Interface for Activity Tracking and Detection |
CN117935291A (zh) * | 2024-03-22 | 2024-04-26 | 粤港澳大湾区数字经济研究院(福田) | 草图生成模型的训练方法、草图生成方法、终端及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3958162A1 (en) * | 2020-08-20 | 2022-02-23 | Dassault Systèmes | Neural network for outputting a parameterized 3d model |
-
2022
- 2022-05-18 US US17/747,953 patent/US20230376639A1/en active Pending
-
2023
- 2023-03-22 EP EP23163459.3A patent/EP4280162A1/en active Pending
- 2023-03-22 CN CN202310283024.1A patent/CN117094203A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4280162A1 (en) | 2023-11-22 |
US20230376639A1 (en) | 2023-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11443192B2 (en) | Machine-learning for 3D modeled object inference | |
CN111465944B (zh) | 用于生成对象的结构化表示的图形神经网络系统 | |
EP3674984B1 (en) | Set of neural networks | |
EP4280162A1 (en) | Generating prismatic cad models by machine learning | |
US9881388B2 (en) | Compression and decompression of a 3D modeled object | |
US20220156430A1 (en) | Topological message passing for three dimensional models in boundary representation format | |
CN115797606B (zh) | 基于深度学习的3d虚拟数字人交互动作生成方法及系统 | |
JP2022036024A (ja) | パラメータ化された3dモデルを出力するニューラルネットワーク | |
US20220114289A1 (en) | Computer architecture for generating digital asset representing footwear | |
JP2023017718A (ja) | 機械的アセンブリを表す3dモデル化オブジェクトのセグメント化 | |
CN114694158A (zh) | 票据的结构化信息的提取方法及电子设备 | |
EP3888091B1 (en) | Machine learning for protein binding sites | |
US20220229943A1 (en) | Joint retrieval and mesh deformation | |
WO2020023811A1 (en) | 3d object design synthesis and optimization using existing designs | |
CN115997213A (zh) | 计算机辅助设计(cad)组件的约束的基于机器学习的生成 | |
KR102491025B1 (ko) | 학습용 데이터셋을 생성하기 위한 방법 | |
CN114882496B (zh) | 基于深度图像的三维部件相似度计算方法 | |
JP2022036023A (ja) | 3dモデルを出力する変分オートエンコーダ | |
US20230360327A1 (en) | Generating three-dimensional representations for digital objects utilizing mesh-based thin volumes | |
CN114331827B (zh) | 风格迁移方法、装置、设备和存储介质 | |
EP4325388A1 (en) | Machine-learning for topologically-aware cad retrieval | |
CN116664645B (zh) | 一种点云匹配方法、装置、电子装置和存储介质 | |
US20230195088A1 (en) | Three-dimension (3d) assembly product planning | |
JP2022140339A (ja) | 3dセグメンテーションのための機械学習 | |
Romanyuk et al. | Deep Learning-Based Determination of Optimal Triangles Number of Graphic Objects Polygonal Model |
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 |