前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习为CAD插上一双翅膀(下)

机器学习为CAD插上一双翅膀(下)

作者头像
AiTechYun
发布2019-07-24 17:49:44
1K0
发布2019-07-24 17:49:44
举报
文章被收录于专栏:ATYUN订阅号ATYUN订阅号

编译 | sunlei

发布 | ATYUN订阅号

文中所有蓝色字体均为链接,部分外部链接无法在文章内部直接跳转,请点击阅读原文以访问链接。

在昨天的文章中,我们主要讲述了在3个主要研究项目的基础上,这些项目最近构建了三维对象识别和分类领域。揭示了卷积作为理解和描述三维形状的理想工具的相关性。

传送门:机器学习为CAD插上一双翅膀(上)

二.模型定义

我们在这个项目中的方法是识别用户正在绘制的对象,并通过简单地使用对象的形状作为代理来提供类似的对象。

简而言之,我们在这里设计的模型涉及两个主要任务:

(1)分类:识别用户正在绘制的对象类型,即为任何给定的图像输入找到适当的标签(“椅子”、“长椅”、“床”等),并结合预测置信度得分。

(2)匹配:在三维对象的数据库中,查询一些最符合用户建模输入方面的形状,即返回数据库中的对象列表,从最相似到最不相似排序。

典型管道

如上图所示,通过嵌套两个不同级别的模型(分类器和“匹配器”),我们可能能够执行这两步过程。每个模型将接受3D对象图像的训练,然后将在用户建模的对象图像上进行测试。

A.数据来源和生成

第一步是生成一个数据库来训练我们的模型。由于我们的方法论是要共享的,所以我们希望在这里详细说明这一关键步骤,并共享我们为实现这一点而使用和构建的资源。

我们首先从现有的公共3D对象仓库中提取信息,例如:

ShapeNet |链接

谷歌三维仓库|链接

ModelNet |链接

从ShapeNet数据库中,我们可以下载多达2.330个标记为3D models的14个特定类(下图)。

训练集的类

然后,我们使用Rhinoceros和Grasshopper编写脚本,创建一个工具来创建训练集和验证集。在这个脚本中,一个摄像机在每个连续的对象周围旋转,以特定的角度拍摄对象,并将JPG图像保存在给定的目录中。

下图显示了一个典型的相机路径(左侧)和所捕获的结果图像(右侧)。

图像捕获路径,并生成图像

对于每个对象,我们使用30张图像进行训练,10张图像进行验证,同时保留白色背景/中性背景。

用于捕获图像的数据生成器可在以下地址下载。

我们最终获得了一个带标签的图像库,每个类对应10个对象,总共有14个不同的类。这里显示了一个子集,如下图所示。

训练集的子集

B.分类

一旦我们的数据集准备好了,我们的目标就是训练我们的第一个模型,分类器,在大量的3D对象的图像上进行训练,同时验证它在属于类似类的其他对象的图像集上的性能。

迭代

几个参数严重影响经过训练的分类器的精度:

  • 培训和验证集的大小
  • 班级数量
  • 每个类的对象数
  • 每个对象的图像数
  • 两组图像的大小
  • 相机在物体周围的捕获路径

此时,我们在不同的选项之间进行迭代,目的是提高验证集上模型的整体准确性。由于资源有限,我们不能从头开始训练。使用一些转移学习是很方便的,因为它可以提高我们的模型的准确性,同时绕过几天的训练。我们在模型的第一层添加了一个VGG16预训练模型,这将使我们的准确率提高32%。

这个训练过程的一个关键要点是,摄像机的路径实际上会显著影响结果的准确性。在我们尝试过的许多版本中,我们在下面的图中演示了两种不同相机路径(圆形和球形)的比较性能。

不同图像采集技术下的训练性能

结果

最后,我们用200*200像素的图像作为分类器,球形摄像机路径,每个对象30个图像用于训练,10个图像用于验证。经过30个周期的验证,我们最终得到了93%的验证集。现在看来,以下参数对整体模型的性能影响很大:

增加图像大小可以提高精度。在我们的机器上,速度和精度之间的平衡在200x200px左右。

相机的拍摄路径也直接影响着拍摄的准确性。通过使用球形捕获路径,而不是圆形路径(请参见图上图),我们显著地提高了模型性能:在更少的周期之后,精确度要高得多。使用球面路径似乎是一种更全面的方法来捕捉给定形状的外观。

上图显示了四个不同用户输入的分类器的典型结果。

分类器模型的结果,用户输入(左)到预测类(右)

  • 更有趣的是,在给定用户的三维建模过程中运行的相同模型的性能。当一个对象被建模时,只要很少的曲面就足以将分类器推向正确的方向。因此,在建模过程的早期,我们能够识别建模对象的类。作为回报,我们可以向用户推荐数据库中的模型,如果用户在建议中找到匹配项,可能会缩短3D建模时间。下图显示了分类器在建模过程的五个不同步骤中的结果。

建模过程中的分类

关于Github的更多信息。

C.匹配

匹配:通过卷积模型查找数据库之间的最佳匹配

在第二步中,我们的模型尝试在大量的3D模型数据库中找到理想的匹配。如果分类模型有助于缩小搜索范围,则匹配模型将给定类中的所有三维模型从“最相似”排列到“最不相似”。

关于Github的更多信息。

我们的匹配模型是另一个卷积神经网络,在给定类对象的图像上进行训练,并在相同的对象上进行验证,从不同的角度进行观察。为了测试,我们的输入将是一个用户建模的3D对象的图像,输出将是我们数据库中已识别类的所有对象的列表,按相似性的顺序排列。

结果

当我们为每个类训练匹配模型时,我们现在能够将分类模型和匹配模型嵌套为一个单独的管道。我们现在可以处理一个输入图像,它将首先被分类,最后与数据库中存在的类似对象相匹配。同时,我们的模型输出一些预测置信度,以帮助我们判断原始模型与实际匹配之间的相似性有多强。

已经为7个不同类的对象运行了测试,如下图所示。

关于Github的更多信息。

功能分类匹配模型的完整管道

三、结论

首先,我们鼓励在我们的行业内进一步发展和改进上述理念。这一领域已经做了很多工作,并为相邻领域带来了解决方案。让这些技术渗透到我们的学科中,将真正有利于我们的日常建筑实践。此外,像我们一样嵌套CNN模型只是一个更大概念的可能版本:3D形状识别和建议。可以部署其他方法和模型,使架构师和设计人员能够获得公开可用数据的广度和丰富性。

实际上,除了本文开发的简单管道之外,还有一个更基本的概念:架构形式的限定。我曾经的一篇文章所述,能够构建包含现有形状的异质性和复杂性的框架,将很快对我们的学科至关重要。随着数字数据量的增加和在大型公共存储库中的汇集,我们对这些共享知识的访问将只取决于查询的智能程度。正如我们在这里演示的,我们可以在一定程度上依赖于机器学习来找到一种共同的语言,从而能够比较各种复杂的形状。

在一个更基本的层面上,这项工作仅仅展示了暗示设计的潜力。通过在创意过程中为设计师带来相关的替代品,我们有机会扩大他们的工作范围。当这种方法扩展到比简单的离散对象更大的分类法时,它最终将把被动的集体知识变成一种积极的灵感来源。

参考文献

[1]多视图卷积神经网络用于三维形状识别,Hang Su, Subhransu Maji, Evangelos Kalogerakis, Erik learreid – miller,马萨诸塞大学,Amherst |链接

[2] VoxNet:一个用于实时对象识别的三维卷积神经网络,Daniel Maturana和Sebastian Scherer |链接

[3]重新混合和重新采样三维对象在设计中使用体积表示和机器学习,NJ Namju Lee,哈佛GSD, 2017年|链接

End

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ATYUN订阅号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二.模型定义
    • A.数据来源和生成
      • B.分类
        • 迭代
    • 结果
      • C.匹配
        • 结果
        • 三、结论
          • 参考文献
          相关产品与服务
          图像处理
          图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档