视学算法报道

转载自:机器之心

作者:力元

深度学习的灵活性恰好适合于复杂的 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 表示,希望能够看到更多利用已开发接口的灵活性优势开发的应用程序,比如以各种草图属性为条件,给定实体来推断约束,以自动完成图纸。

© THE END

转载请联系原公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

点个在看 paper不断!

Transformer应用到建筑行业,CAD设计起飞了相关推荐

  1. CAD制图, 机械CAD, 建筑CAD, 电力CAD, CAD设计, 数控与CAM, DXF导入\导出, 打印, 软件开发, VC++源代码,OCX 控件源程序2018

    CAD制图, 机械CAD, 建筑CAD, 电力CAD, CAD设计, 数控与CAM, DXF导入\导出, 打印, 软件开发,VC++源代码,OCX 控件源程序2018 -- 100%源码开放企业级CA ...

  2. Revit插件推动建筑行业BIM“正向设计”发展

    说到BIM的正向设计与传统设计的区别,可能每个BIMer都有自己的烦恼吧. 为什么别人可以出图那么快.效率那么高.发量还可以那么多---.到底用了什么插件? 到底是BIM让谁不爽了呢? 一个工程施工的 ...

  3. 不会画建筑CAD图纸?建筑CAD设计全流程解析打包送给你!

    建筑CAD图纸通常比较复杂,但千里之行始于足下,当我们要绘制一张建筑CAD图纸时,应当怎么着手呢?本CAD教程整理了相关绘图流程解析打包送给你! 从建筑CAD图纸内容上来划分,图纸的空间设计包括平面图 ...

  4. CAD制图,机械CAD,建筑CAD,电力CAD,CAD设计, CAD标注, 打印, 软件开发 ,VC++源代码,VB 控件源程序...

    CAD制图,机械CAD,建筑CAD,电力CAD,CAD设计, CAD标注, 打印, 软件开发 ,VC++源代码,VB 控件源程序 E-Form++可视化组件库集成最新最尖端的图形处理技术,全部采用VC ...

  5. 【重磅来袭】浩辰CAD+Linux国产操作系统,完全国产化CAD设计解决方案!

    2020年,我们承受了太多技术应用的至暗时刻: 当微软宣布停止对Windows 7的技术支持时,全球Windows 7用户面临着进退两难的局面:当美国三大电子设计自动化公司(Synopsy.Caden ...

  6. 工程建筑行业数据治理实践漫谈

    转载本文请注明出处:微信公众号EAWorld 目录: 1.工程建筑行业数据治理现状和存在问题都有哪些? 2.建筑施工行业的数据管理有什么特点? 3.建筑施工行业数据治理过程中普元主要做了哪些工作,普元 ...

  7. 是固执成见还是步步为营,工程建筑行业如何追赶人工智能化潮流?

    2019-11-07 13:02:18 一.工地人力日渐匮乏,行业数字化落后 房屋.道路.桥梁等设施的建设均离不开工程建筑行业的支持,但建筑行业在发展过程中,行业对劳动力的需求在增加,愿意从事建筑相关 ...

  8. 人工智能行业有哪些岗位_建筑行业年薪超50万,哪些岗位有希望达到?你是什么岗位呢?昆山建造师培训学校...

    建筑行业年薪超50万,哪些岗位有希望达到?你是什么岗位呢? 在我国的众多行业中,建筑行业的收入可以排在前三名了,收入是比较高的,不管是施工建筑工地的工人,还是技术岗位的建筑注册人才,收入都是十分不错的 ...

  9. 开发做甲方还是乙方_建筑行业的职场小白求职时是选择做甲方还是乙方?

    任何发生关系的甲方和乙方都是相对而言的.委托方,通俗的说掏钱的那一方都能称之为甲方.建筑行业圈内的各个主体的间大致是一种层级传递的关系. 至于谁更好,完全取决于你个人的具体情况和各个主体的情况匹配度以 ...

最新文章

  1. 在线作图|在线做Unifrac PCoA分析
  2. 【iCore3 双核心板_FPGA】实验二十七:基于SDRAM的TFT驱动器的设计
  3. linux C高手成长过程---书籍推荐
  4. 进程环境详解(四)---getenv、putenv和setenv函数详解
  5. 二十三、Python队列实现多线程(下篇)
  6. python数学函数_「分享」关于Python整理的常用数学函数整理
  7. 测试文章测试文章测试文章测试文章测试文章
  8. java操作elasticsearch实现批量添加数据(bulk)
  9. Python——itertools.chain.from_iterable将多个迭代器连接成一个统一的迭代器的最高效的方法
  10. 活动合作 | AI NEXTCon 硅谷AI技术峰会(北京分会)大咖来袭
  11. 寻找中项和第k小元素c语言,寻找一个序列中第k小的元素——分治法
  12. QEMU学习笔记——QOM(Qemu Object Model)
  13. 苹果开发者三类账号说明
  14. Eclipse安装教程
  15. ubuntu上安装http-server
  16. QT制作简易串口助手
  17. SSM框架整合仿QQ空间
  18. IP代理池Proxy_Pool使用教程(Windows版)
  19. excel打开密码忘记了_行李箱密码忘记了怎么办?教你3招轻松打开
  20. 话费通html模板,充话费好评怎么写 ——好评语模板

热门文章

  1. 《C#精彩实例教程》小组阅读02 – Visual Studio简介与安装
  2. 这封以数字构写的蓝图,正在实现笔尖所触即世界
  3. 面对互联网一线大厂,这些技术你需要了解!
  4. GitHub日收12000星,微软新命令行工具引爆程序员圈!
  5. 汉语转拼音工具、新华字典API——两个支持Python的中文资源
  6. 最新论文解读 | 神经网络“剪枝”的两个方法
  7. AI一分钟|美国第一家!Waymo商业自动驾驶打车服务正式获批
  8. 监管AI?吴恩达跟马斯克想到一块去了
  9. SpringBoot+flowable快速实现工作流,so easy!
  10. 面试官:磁盘 IO 变高,你怎么分析?