作者:力元

DeepMind新模型自动生成CAD草图网友:建筑设计要起飞了_草图_模子 计算机

深度学习的灵巧性恰好适宜于繁芜的 CAD 设计,DeepMind 的研究者基于 CAD 草图与自然措辞建模的相似性,提出了自动天生 CAD 草图的机器学习模型。

在制造业中,CAD 的运用十分广泛。
凭借着精准、灵巧、快速的特性,CAD 已经取代了纸笔画图,并且不再只是运用于汽车制造、航空航天等领域,哪怕小到一个咖啡杯,生活中险些每个物件都由 CAD 画图建模。

CAD 模型中最难制作的部件之一便是高度构造化的 2D 草图,即每一个 3D 布局的核心。
只管时期不同了,但 CAD 工程师仍旧须要多年的培训和履历,并且像纸笔画图设计的前辈们一样关注所有的设计细节。
下一步,CAD 技能将领悟机器学习技能来自动化可预测的设计任务,使工程师可以专注于更大层面的任务,以更少的精力来打造更好的设计。

在最近的一项研究中,DeepMind 提出了一种机器学习模型,能够自动天生此类草图,且结合了通用措辞建模技能以及现成的数据序列化协议,具有足够的灵巧性来适应各领域的繁芜性,并且对付无条件合成和图像到草图的转换都表现良好。

论文链接:https://arxiv.org/pdf/2105.02769.pdf

详细而言,研究者开展了以下事情:

利用 PB(Protocol Buffer)设计了一种描述构造化工具的方法,并展示了其在自然 CAD 草图领域的灵巧性;

从最近的措辞建模肃清冗余数据中吸取灵感,提出了几种捕捉序列化 PB 工具分布的技能;

利用超过 470 万精心预处理的参数化 CAD 草图作为数据集,并利用此数据集来验证提出的天生模型。
事实上,无论是在演习数据量还是模型能力方面,实际的实验规模都比这更多。

CAD 草图展示效果图如下:

特写镜头展示:

对付 DeepMind 的这项研究,网友的评价非常高。
用户 @Theodore Galanos 表示:「非常棒的办理方案。
我曾利用 SketchGraphs 作为多模态模型的候选方案,但序列的格式和长度太不随意马虎处理了。
等不及在建筑设计中也利用这种方法了。

草图之于 CAD

2D 草图是机器 CAD 的核心,是构成三维形式的骨架。
草图由通过特定的约束(例如正切、垂直和对称)干系联的各种线、弧、样条线和圆组成。
这些约束旨在传达设计意图,并定义在实体的各种变换下,形状该当如何发生变革。
下图解释了约束是如何将不同的线、弧等几何图形组合创建成特定的形状的。
虚线显示了丢失约束时的另一个有效的办理方案。
所有的几何实体都位于一个草图平面上,共同形成封闭的区域,供后续操作(例如放样和拉伸)利用,以天生繁芜的 3D 几何。

约束:草图逃不开的问题

约束( constraint )使草图比看起来要繁芜得多。
它们展现了可以间接影响草图中每个实体的关系。
例如,在上图中,如果在底角保持固定的状态下向上拖动两个圆弧相交的点,则心形的大小会增大。
这种转变看似大略,但实际上是所有约束共同浸染的结果。

这些约束确保了当每个实体的尺寸和位置发生变革时,形状仍保持着设计者想传达的状态。
由于实体之间繁芜的相互浸染,很随意马虎意外地指定一组约束,从而导致草图无效。
例如,同时知足平行和垂直约束的两条线是无法绘制的。
在繁芜的草图中,约束依赖关系链会导致设计职员确定要添加的约束变得极为困难。
此外,对付给定的一组实体,有许多等效的约束系统能产生类似的草图。

一个高质量的草图常日会利用一组保留设计意图的约束,这意味着纵然变动了实体参数(例如尺寸),草图的语义也得以保留。
简而言之,无论实体尺寸如何变革,上图中的心形永久是心形。
捕捉设计意图与选择同等的约束系统的繁芜性使草图天生变成极其困难的问题。

草图与自然措辞建模的相似性

草图布局的繁芜性有些类似于自然措辞建模。
在草图中选择下一个约束或实体就像天生句子中的下一个单词,而两者中的的选择又必须在语法上起浸染(在草图中形成一个同等约束系统),并保留设计意图。

在天生自然措辞方面,已经有了许多成功的工具,个中表现最佳的无疑是在大量现实天下数据上进行演习的机器学习模型。
比如 2017 年的 Transformer 架构,展示了强大的连贯造句的能力。
这些自然措辞模型中的规律,是否可以用来绘制草图呢?

数据

Onshape 是维度驱动设计的一个参数化实体建模软件。
但为了存储和处理草图,研究者利用 PB,而不是 Onshape API 供应的原始 JSON 格式。
利用 PB 具有双重的上风:由于移除了不必要的信息,结果数据占用的空间更少;利用 PB 措辞可以轻松地为构造互异的繁芜物体定义精准的规格。

一旦设定好所有必要的工具类型,就须要将数据转换为可以通过机器学习模型来处理的表格。
研究者选择将草图表示为 tokens 序列,以便利用措辞建模天生草图。
文本格式包含了却构和数据的内容,这样利用的上风是可以运用任何现成的文本数据建模方法。
不过,纵然对付当代措辞建模技能,这样做也是有代价的:模型为了天生有效的语法,将额外占用模型容量的一部分。

办理的手段便是避免利用字节格式 PB 定义的通用解析器,利用草图格式的构造来自定义构培植计阐明器,即输入一系列代表草图创建过程中各个决策步骤有效选择的 tokens。
在这种 tokens 序列的格式下设计阐明器会导致 PB 有效。

在这种格式下,研究者将表示为 triplets 序列(,,),个中是 token 的索引。
给定一系列这样的 triplets,推断每个 token 对应的确切字段是可能的。
实际上,第一个 token(,,)始终与 objects.kind 干系联,由于它是创建一个草图的首选。
第二个字段取决于1 的详细值。
如果1= 0,那么第一个工具是一个实体,这意味着第二个 token 对应于 entity.kind。
该序列的别的部分以类似的办法关联。
字段标识符及其在工具中的位置构成了 token 的高下文。
由于它使阐明 triplets 值的含义以及理解整体数据构造更随意马虎,研究者将此信息用作机器学习模型的其他输入。

如上图所示,草图包含了一条线实体和一个点实体。
在左列的每个 triplet 中,实际利用的值以粗体显示。
右列显示了 triplet 与工具的哪个字段有关联。

从模型中取样

建立模型的紧张目标是估计数据集 D 中的 2D 草图 data 的分布。
就像上文提到的,研究者将像 token 序列一样处理草图。
在这项事情中,由于干系原始文本格式的序列长度寻衅,只会考虑利用用字节和 triplet 来表示。

从字节模型取样很大略,该过程与任何范例的基于 Transformer 的措辞建模过程相同,而 Triplet 模型须要更多的定制处理。

上图展示了 Triplet 的处理过程:首先将分外的 BOS token 嵌入并供应给 Transformer。
然后,Transformer 输出一组 triplets,每个可能的 token 组一个。
为了确定详细须要发出哪个 token,运用从数据规格中自动天生的阐明器(状态机),再选择得当的 token 组并关联在合成工具中具有字段的 triplet 的活动组件。
填入适当的字段后,阐明器转换到下一个状态并天生一个输出 token,然后将其反馈到该模型。
当状态机收到最外层重复字段(即 object.kind)的 “end” triplet 时,停滞该过程。

实验

研究者利用了从 Onshape 平台上公开可用的文档库中得到的数据对方法进行验证。
遵照自回归天生模型的标准评估方法,研究者利用对数可能性作为紧张的定量指标。
此外,研究者还供应了各种随机和选定的模型样本以进行定性剖析评估。

演习细节

研究者利用 128 个通道的批次演习模型以进行 10^6 个权重更新。
每个通道都可以在 triplet 设置中容纳 1024 个 tokens 的序列,在字节设置中容纳 1990 个 tokens。
为了提高占用率并减少打算摧残浪费蹂躏,研究者动态地填满了通道,在连续提高到下一条道之前将尽可能多的例子打包。
每个批次由 32 个 TPU 内核并行处理。

此外,研究者还利用了 Adam 优化器,学习率为 10^−4,梯度范数为 1.0,所有实验均采取 0.1 的失落活率。

实验结果

如上图所示,各种模型的可能性都被测试到了。
第三列是草图测试样本中每个工具的均匀字节数,第四列是第三列乘以工具数。

下图是从 triplet 模型中取样的实体与约束。
第一列节点代表了不同的实体,节点从上至下遵照天生的顺序。
第二列代表着不同的约束,按照序列索引排序。
第三列是从频率最高到最低的约束类型。

下图是条件模型的实体和约束。
左下角是输入位图,下例解释了模型在分布外输入时的表现。

下图显示了从非条件模型取样的各种草图数据分布统计,而括号中的是 Nucleus 取样的 top-p 参数。

这些只是最初的观点验证实验。
DeepMind 表示,希望能够看到更多利用已开拓接口的灵巧性上风开拓的运用程序,比如以各种草图属性为条件,给定实体来推断约束,以自动完成图纸。