博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用机器学习辅助设计,助你化身建筑大师!
阅读量:2107 次
发布时间:2019-04-29

本文共 4352 字,大约阅读时间需要 14 分钟。

全文共4378字,预计学习时长8分钟

图片来源:pexels.com/@kaboompics

从网页上的搜索提示到图像推荐,机器推荐已在无数行业得到充分应用。其实质在于推荐引擎可以从海量数据库中查询相关信息(文本、图像等),随后在用户登录某一特定界面时呈现相关信息。当前,随着大型3D数据库的整合,建筑与设计可从类似实践中受益。

事实上,本学科的设计过程主要是通过3D软件(Rhinoceros 3D, Maya, 3DSmax, Auto CAD)实现的。建筑师通过CAD软件(计算机辅助设计)或是BIM引擎(建筑信息模型),不断将他们的想法转化为3D空间中的线条和平面。此外,从外部数据源获取的相关3D对象可以强化设计过程。

本文旨在通过“启发性建模”,研究并提出一种帮助设计师的方法。即当建筑师在三维空间中绘制模型时,机器学习分类器将筛选相关建议,并给出可替代的、相似或互补的设计选项。

为此,受三维形状识别与分类领域的先例启发,本文提出了一种方法或工具,能够在设计师绘制模型时向他们提出建议。事实上,本文的目标有两个方面:1. 基于预先建模的建议提高3D建模速度;2. 通过可替代或互补的选项激励设计师。

卷积神经网络

图1:卷积神经网络架构

是否能够查询与用户绘制的设计特征相匹配的三维对象依赖于设计特征比较。除了标准的几何度量外,卷积神经网络(CNNs)为形状比较提供了更为简明、全面的方式。

CNNs不是简单的度量匹配(也称特征提取),而是输入图像,将像素显示传递给一系列“神经元”层(图1)。一个 CNN模型占据一个神经元,在最后一层神经元输出预测项。通过连续的训练与验证,用户能够估计模型的准确性,并且能够进一步调整CNN权重以最大限度地提高准确性。一旦训练完全,CNN模型将能预测“分组”或者说预测给定对象图像所在的组别。

CNNs只是机器学习中的一种标准实践,并不能代表技术突破或复杂的体系结构。然而,其仅基于空间特征建立某种直觉的能力与本文中的应用十分相关:公共3D对象的格式异质性使得特征提取和元数据对比十分具有挑战性。使用图像简单地从物体的拓扑特征考虑,为用户提供了一个强大且统一的三维形状比较和检索框架。

前人研究

本文的工作建立在3篇论文研究之上,这些研究最近为三维物体识别和分类领域构建了框架,并揭示了卷积作为理解和描述三维形状的理想工具的相关性。

1. 用于三维形状识别的多视图卷积神经网络

第一篇论文(链接后附)介绍了一个标准的CNN结构,经过处理,它能够独立识别形状的渲染视图。该结构表明即便是单一视图也可以识别出三维形状,并且其准确度远远高于使用最先进的三维形状描述符。而提供形状的多个视图能进一步提高识别率。

图2:多视图CNN用于三维形状识别

此外,本文还介绍了一种新颖的CNN结构,它将从三维形状的多个视图中提取的信息组合成单一紧凑的形状描述符,从而更好地识别信息。

2. VoxNet:用于实时对象识别的三维卷积神经网络

图3:VoxNet结构

由于LiDar和RGBD扫描仪应用越来越广,点云数据库也在逐步扩大,因此,为了利用此数据库,第二篇论文提出了“VoxNet”。该结构旨在通过将空间占用网格表示与监测到的三维卷积神经网络(3D CNN)相结合以解决广域点云处理和标记问题。

利用LiDAR、RGBD和CAD数据,以公开的基准对结果进行评估。最终,VoxNet每秒能做数百个标记,同时还在准确性上超过最新技术水平。

3. 设计中的体积表示和机器学习

第三篇论文论文探讨了是否能用机器学习进行体素建模。

图4:工作流程总结

该论文首先介绍了体素建模的概念,并将其与传统建模进行比较。还阐述了像素映射和图形表示等概念,以最终检验基于机器学习的空间,以及几何光栅化过程的设计系统或工作流的原型实现。

模型定义

该项目中的方法是识别用户正在绘制的对象,并简单地将物体形状作为参考提供类似的对象。

简而言之,这里设计的模型要完成两个主要任务:

· 分类:识别用户正在绘制的物体类型,即:为任何给定的图像输入找到正确的标签(“椅子”、“长椅”、“床”等等),并附上预测置信度得分。

· 匹配:在三维对象数据库中,搜寻一些最符合用户建模输入的形状,即:在数据库中寻找一系列相似对象,并将其按相似度高低排序,随后反馈给用户。

图5:典型分类匹配模型

如图5所示,结合两种不同的模型(“分类模型”和“匹配模型”),用户能够执行这两个步骤。每个模型都首先接受3D物体图像的分类,随后在用户建模的物体图像上进行测试。

1. 数据来源与生成

第一步是生成一个数据库来处理模型。由于方法需要共享,所以本文将在这里详细说明这一关键步骤,以及为实现共享而使用和建立的资源。

首先从现有的公共三维物体库中提取信息,例如:

· ShapeNet

传送门:https://www.shapenet.org/

· Google 3D Warehouse

传送门:https://3dwarehouse.sketchup.com/?hl=en

· ModelNet

传送门:

http://modelnet.cs.princeton.edu/

在ShapeNet中,用户可以从14个特定分组中下载将近2330个已标记的三维模型。

图6:处理集分组

然后使用Rhinoceros 和Grasshopper编写一个工具脚本来创建物体处理器和验证器。在这个脚本中,一个围绕每个连续物体旋转的摄像头将以特定角度进行拍摄,并以JPG格式将图像保存在给定的目录。

图7是典型的摄像机路径(左)和拍摄的结果图像(右)。

图7:摄像机路径(左)和拍摄的结果

 

每个物体都要在图像为白色背景/中性背景的情况下拍摄30个图像进行处理,10个图像进行验证,可在下列地址下载用于捕捉图像的数据生成器。

传送门:http://stanislaschailloucom/suggestive-cad/download/Data_Generator.zip

最后可以得到一个带有标签的图像库,每组10个对象,共14个不同的组。图八为一个图像处理集。

图8:图像处理集

2. 分类

数据集准备就绪后便是处理第一个模型,即分类器。此步骤要基于大量的三维物体图像,同时验证用该模型处理其他相似组的图像的性能。

迭代

以下几个参数严重影响处理后分类器的精确度:

· 处理集和验证集的大小

· 分组数量

· 每组的物体数量

· 每个物体的图像数量

· 处理集和验证集中的图像尺寸

· 物体周围的摄像机捕捉路径

此时要在不同的选项之间进行重复,目的是提高验证集上模型的整体准确性。由于资源有限,不能从头处理。因此,使用一些转移学习是很方便的,因为它可以提高模型的精确度,而无需数天的模型处理。在模型的第一层添加一个经过预先培训的VGG16模型,这将提高32%的精确度。

这一处理过程的关键收获是相机的捕捉路径确实会极大影响最终的准确度。下图是两种不同的相机路径的比较性能:圆弧形路径和球形路径。

图9:两种不同相机路径的比较性能

结论

最后该项目使用一个像素为200*200的图像分类器,摄像机采用球形路径,每个物体拍摄30张图像用于处理,10张图像用于验证。30轮反复后,最终在验证集中精确度达到93%。现在看来,以下参数对整体模型性能存在很大的影响:

· 提高图像尺寸可以提高精确度。模型上的速度和精确度的平衡应在像素200*200左右。

· 摄像机捕获路径也直接影响精确度。采用球形路径,而不是圆弧形路径(见图9),能显著提高模型性能:更少的时间,更高的精确度。使用球形路径似乎能更为全面地捕捉给定物体形状。

图10显示了四种不同的用户输入在分类器上所得的结果。

 

图 10:分类模型结果,从用户输入(左)到预测组(右)

 

· 更有趣的是在给定用户的三维建模过程中运行的同一模型的性能。在建模对象中,只要几个表面就足以推动分类器朝正确的方向移动。因此,在建模过程的早期便能识别建模对象的分组。可以从数据库中向用户推荐模型。如果用户在推荐的模型中发现有匹配成功的对象,便缩短了3D建模的时间。图11是建模的五个不同步骤中分类器显示的结果。

图11:建模过程中的分类

3. 匹配

图12:匹配:通过卷积模型在数据库中找到最佳匹配对象

在第二步中,CNN模型试图在大量的3D模型数据库中找到理想的匹配对象。如果说分类模型有助于缩小搜索范围,匹配模型则是将给定组中所有的三维模型按相似程度由高到低排列。

匹配模型是另一种卷积神经网络,它在给定分组的物体图像上进行处理,并在相同的物体上进行验证,从不同角度的视图下进行观察。之于测试模型,输入的是用户建模的三维物体图像,输出的则是已识别分组的数据库中所有相似物体图像,并且按相似性顺序排列。

结论

当为单个分组处理匹配模型时,我们现在可以将分类模型与匹配模型结合。处理一个输入图像时,将首先对该图像进行分类,随后将其与数据库中相似对象进行匹配。同时,CNNs会输出预测置信度以帮助衡量原始模型与实际匹配对象之间的相似度。

图13为不同分组中7个物体的测试。

GitHub更多有关信息传送门:https://github.com/StanislasChaillou/Independent_Study/blob/master/Week 4/Testing_Matching_Model.ipynb

图13:包括功能分类和匹配模型的完整流程

结语

本文已为该领域做了许多工作,并为其他领域提供了解决方案。让这些技术渗透到设计中将真正有利于日常建筑实践。此外,本文所提到的结合CNN模型只是三维形状识别与建议这一更大概念中的一种可能性。还可以采用其他方法和模型使建筑师和设计师可以获得广泛且丰富的公共数据。

事实上,除了本文提到的结合分类模型和匹配模型外,还有一个更为基本的概念:建筑形式的资质。是否能够构建包含现有形状的异质性和复杂性的框架对设计至关重要。数字数据增加并组成一个大型的数据库,获取知识会如查询知识一样方便。正如本文所演示的,用户可以在某种程度上依赖机器学习来找到一种通用语言,从而能够比较各种复杂的物体形状。

基本上,本文仅仅展示了启示性设计的发展潜力。通过在创作过程中为设计师提供相似的设计选择,以扩大设计师的工作范围。当这种方法扩展到不再是单一对象分类法时,被动的公共知识将会变成一种积极的灵感来源。

算法的公平性也可以量化?试试这三个指标吧

留言 点赞 关注

我们一起分享AI学习与发展的干货

欢迎关注全平台AI垂类自媒体 “读芯术”

(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)

转载地址:http://cyfef.baihongyu.com/

你可能感兴趣的文章
Idea Maven项目使用jar包,添加到本地库使用
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>
TP5.1事务操作和TP5事务回滚操作多表
查看>>
composer install或composer update 或 composer require phpoffice/phpexcel 失败解决办法
查看>>
TP5.1项目从windows的Apache服务迁移到linux的Nginx服务需要注意几点。
查看>>
win10安装软件 打开时报错 找不到 msvcp120.dll
查看>>
PHPunit+Xdebug代码覆盖率以及遇到的问题汇总
查看>>
PHPUnit安装及使用
查看>>
PHP项目用xhprof性能分析(安装及应用实例)
查看>>
composer安装YII
查看>>