本文是对论文《Intelligent Home 3D: Automatic 3D-House Design from Linguistic Descriptions Only》的解读。该论文由华南理工大学、澳洲阿德莱德大学和酷家乐合作完成。
论文链接:https://arxiv.org/pdf/2003.00397.pdf代码链接:https://github.com/chenqi008/HPGM近日,计算机视觉顶会CVPR 2020接收论文结果公布,从6656篇有效投稿中录取了1470篇论文,录取率约为22%。在《Intelligent Home 3D: Automatic 3D-House Design from Linguistic Descriptions Only》(已开源)这篇由华南理工大学、澳洲阿德莱德大学和酷家乐合作完成的论文中,作者设计了一套能够针对人类语言描述自动生成室内三维场景的算法模型。
p语言描述到三维场景生成样例
房屋场景设计是一项十分复杂、繁琐且重人工的工作,通常由专业的建筑设计师来完成。然而,一个专业的建筑设计师必须接受数年的设计、规划和设计工具的培训,并且在实际进行房屋设计时,通常需要花费大量时间收集客户需求,然后根据其专业知识与过往经验来进行平面图的设计,这一般需要几天到几周的时间。另一方面,即使花费了大量时间,设计师绘制的设计图纸也不一定能让客户感到满意。因此,如何快速的绘制出符合要求的设计样例就显得十分关键。一个可行的思路是让客户自助描绘出想要的设计样例,然而由于专业知识的局限性,大部分普通人没有设计相关的知识储备,并且也不知道如何使用那些复杂的专业设计工具,但是每个人都有使用语言表达想法的能力。因此,为了节省时间并且允许没有专业知识的人参与设计,作者考虑设计一套能够针对人类语言描述生成室内三维场景的算法模型(HPGM模型),该模型会自主应用专业的设计常识,通过用户的语言描述进行户型和家装设计。此外,作者还收集了一个新的数据集用以检验语言信息生成三维场景的模型效果。HPGM模型框架包含五个主要部分,分别是:1)文本表达模块(Text Representation);2)基于图的布局预测网络(Graph Conditioned Layout Prediction Network,GC-LPN);3)平面图后处理模块(Floor Plan Post-processing);4)基于语言的纹理生成网络(Language Conditioned Texture GAN,LCT-GAN);5)三维场景生成与渲染模块(3D Scene Generation and Rendering)。算法总体框架图 首先,为了能够清晰的提取出客户描述中的关键属性信息,作者使用斯坦福提出的文本解析器(Sandford Scene Graph Parser)拆解输入的文本描述语句,生成半结构化的语义数据。具体可分为:1)针对每间房子的场景图:其中包含每间房屋的具体类型、方向位置、期望大小以及墙面和地板的材质与颜色等等;2)房子之间关系的场景图:通过场景图中节点(房屋)之间是否有直接连接来表示房屋之间相邻情况。
每间房子的场景图
房子之间关系的场景图 其次,基于提取出的文本信息,作者构建了一个布局预测网络(GC-LPN)用以生成房间布局图。网络输入为场景图,图中节点表示每间房屋的特征,包括房屋的类型、方位和大小;边则表示房屋之间的连接情况,有连接为1,反之为0。为保证生成布局图空间信息与描述中所包含的语义一致,并且能够进行端到端的训练,作者引入图结构并用图卷积网络(Graph Convolutional Network)进行更新。图卷积网络更新后的节点即包含自身的特征,也包含邻接节点的信息。紧接着,用一个边框回归网络(Bounding Box Regression)分别根据每个节点特征预测相应的房屋边框,最后组合成房屋的布局图。
然后,为了将所预测的房间布局图转换成真实世界中的平面图(Floor Plan),作者提出一个平面图后处理模块,该模块分为五步:(a)提取出图像中所有线段;(b)将相近的线段合并;(c)没有封闭的多边形封闭;(d)判断并标记每个多边形属于的房间类型;(e)根据特定规则加上门和窗。后处理步骤
纹理生成模型
另一方面,为了生成不同的房间风格,作者提出一个纹理生成网络(LCT-GAN),该网络能根据输入的语义信息生成地板和墙面的纹理图案。基于生成对抗网络的原理,纹理生成网络包含一个纹理生成器G和一个判别器D,除了生成对抗网络中基础的对抗损失函数 和 外,文章针对纹理图案的材质和颜色,提出两种不同的对抗损失辅助生成器的优化,分别是材质感知损失 (Material-aware Loss)和颜色感知损失 (Colour-aware Loss),用以评估生成纹理图像中材质样式和颜色是否与描述中的一致。值得注意的是,作者使用全卷积网络(Fully Convolutional Network, FCN)来构造纹理生成器G,该网络能够通过调节输入的大小来得到任意大小的输出纹理图像。最后,作者提出了一个三维场景生成与渲染模块(3D Scene Generation and Rendering),该模块可以根据上述模型生成的房屋二维平面图和对应的纹理图案,合成相应的三维场景模型。三维渲染图合成
1、数据集
为验证所提出模型的有效性,文章收集了一个新的数据集(Text-to-3D House Model dataset),其中包含完整的语言描述和对应的二维平面图以及纹理图案,数据集总共包含2000个平面图信息,共13478间房屋信息,另外有873张纹理图片,每段语言描述平均长度为173.73,全部描述共包含193个不同的单词。值得注意的是,由于某一些房间具有相同的纹理图案,因此纹理图片的数目小于房间的总数。
数据集样例
数据集样例
为测试GC-LPN算法生成二维平面图的效果,作者使用目标检测中普遍用到检测评价函数Intersection-over-Union(IoU)作为量化对比指标,并且展示可视化效果,其中Text1和Text2表示输入的描述。由于二维平面图生成是一个全新的任务,没有现成的已有算法,因此作者构建了几种所提出算法的变种来进行对比,其中包括:(1)MLG:针对输入文本中的房屋大小与位置信息,根据随机抽取的长宽比生成平面图;(2)C-LPN:将提出的网络模型中图卷积部分去掉,使用剩余模型来进行平面图生成;(3)RC-LPN:将图卷积部分换成LSTM模型来生成平面图。pGC-LPN与不同模型结果对比
由不同模型的数值结果与可视化结果对比表明,相较于其他网络模型,GC-LPN网络能生成更加合理且接近真实世界数据的平面图结构,同时也很好地契合了输入文本中关于房间相关位置以及各种属性的需求。3、纹理图片生成
其次,测试LCT-GAN纹理图案生成效果时,作者使用生成对抗网络中常用的FID和MS-SSIM指标进行量化比较,并展示可视化效果。文章对比经典的生成对抗网络算法ACGAN和StackGAN-v2,此外还考虑了专门生成纹理图像的PSGAN算法。无论从指标还是视觉结果,LCT-GAN都能达到令人满意的效果。LCT-GAN与不同模型结果对比
除此之外,为了讨论LCT-GAN的泛化能力,作者设计了一个差值图像生成实验和一个新纹理图像生成实验。差值实验对两个不同属性之间的输入特征进行线性差值,并把中间的差值特征输入到LCT-GAN网络中去。实验结果显示,不同属性间差值生成的图像能平滑过度,有效证明了LCT-GAN的泛化能力。而生成新纹理图像的实验中,作者尝试让LCT-GAN生成现实中不可能存在的属性组合,例如“花岗岩”+“粉红色”,结果表明,针对这类组合属性,LCT-GAN仍然能很好的生成相应的纹理。
差值结果
构造新纹理
最后,基于上述生成的平面图以及纹理图像,构建最终的三维场景图,并将其与真实世界中的场景图相比较,为验证生成场景图的合理程度,作者考虑使用类似“图灵测试”的方法,让人类来分辨生成的场景图与真实的场景图。结果显示,测试者将HPGM生成的设计场景判断为人类设计师绘制的概率为39.41%,并且还有12.65%的样例测试者不能明确的区分出来。这些结果表明,在一定程度上人类并不能分辨出生成的场景图是人工设计的还是HPGM算法设计的。HPGM v.s 人类(“Tie”表示不确定)
此外,文章最后还提供了一些完整的从输入到中间结果平面图,再生成最终三维场景的样例。从样例中可以看到,HPGM能较好的根据输入文本的语义信息生成相应的二维平面图和三维场景图,并且与人类设计师绘制的真实平面图和场景图也十分相似。
从语言到三维场景生成完整例子展示
文章中,作者尝试用人工智能算法模型解决真实世界应用需求,根据人类语言描述生成对应的户型与室内场景,将学术研究与实际产品落地相结合,通过解决一个新颖的、实际的问题,探索算法的可用性及可行性,希望能借此推动深度学习模型在多模态、图像生成等领域的发展进步。同时,构建自动三维场景生成模型能更好的缓解家居版块中复杂、繁琐的任务流程,减轻人工成本的消耗,有助于实际过程中的降本增效。