室内场景生成任务,其目的就是将家具摆放在具有固定大小、结构的三维空间中,并满足现实室内场景中的功能约束及物理约束。其中,家具在三维空间中的属性信息可由位置、朝向、类别来描述。室内场景生成的本质是确定摆放的家具类别以及家具排列在三维空间中的方式。与室内场景生成任务类似,三维模型生成过程是确定模型部件的排列方式,户型图生成则是将房间进行排列,所以户型图、三维模型以及室内场景生成任务的解决方案可以互相借鉴或组合使用。三维模型由于其固定的功能特性,使得模型部件之间具有相对固定的布局规律,不具有太多的变化。与三维模型生成相比,室内场景生成有以下3个难点:
(1)室内场景中家具的摆放方式有很大的自由度,同样的家具可能有多种合理的布局,所以家具之间的关系相对更加复杂。
(2)三维模型有固定的计算机可以理解的表达方式,如点云、体素、网格等。如何将室内场景抽象为计算机可以理解的场景表达方式是一项挑战。
(3)室内场景生成还需要考虑更多特殊的约束,如过道连通性、视野开阔性等。主流的室内场景生成算法,使用物体之间的上下文关系对场景布局进行结构化,少量基于人类活动与物体上下文关系来表达场景布局的室内场景生成算法组成了新的分支。无参考信息的室内场景生成任务是非常具有挑战性的,
图1场景生成算法框架
由此,出现了一系列基于样例的场景生成算法。本文从上述3个难点出发,将场景生成任务按照无样例的基于物体关系的生成方式、无样例的基于人类活动的生成方式以及基于样例和物体关系的生成方式3个分支,对场景生成算法进行描述和分析。
图1展示了整个场景生成过程中所涉及的算法框架,其中,室内场景效果图来自3D-FRONT数据集。
2室内场景数据集
3室内场景生成算法的分类
室内场景生成算法发展至今已有许多出色的研究成果。本文从已有算法中,抽象出了5个分类标准,并从不同角度对现有的算法进行归纳总结,分析比较现有算法的优劣,用于帮助读者更好地理解室内场景生成算法的发展现状,具体如表1室内场景生成算法分类所示。
3.1基于场景输入的分类
根据场景输入是否存在参考样例,可以将室内场景生成算法分为无样例的场景生成算法和基于样例的场景生成算法。无样例的场景生成算法往往是从大规模室内场景数据集中总结规则、抽象能量函数,或者将布局规律融入概率统计、深度学习先验,进而从无到有地生成合理的室内场景。基于样例的场景生成算法有文本、草图、图像、三维信息等输入形式,要求场景的生成结果与输入一定程度上匹配,属于有条件的场景生成任务。
在场景生成的实际应用中,往往需要加入用户的喜好,所以基于样例的生成算法能够更好地与人交互,更具有应用前景。但是,在需要大量多样的虚拟室内场景时,无样例的场景生成算法更具优势。
3.2基于场景上下文关系的分类
设计师在利用计算机软件进行室内场景设计的过程中,未将人可能在的区域或动作输入计算机中,所以缺少包含人类行为的虚拟室内场景数据集。另外,在不考虑复杂度的情况下,基于物体与物体之间的关系建模是最易实现的,未来的算法会更加倾向于基于这种关系的建模方式。然而,现有的算法仍避免不了人为定义如支撑、环绕等物体与物体之间的关系,采用注意力机制学习物体与物体之间的关系能更好地解决该问题。
3.3基于场景表达方式的分类
室内场景生成算法根据其表达方式的不同主要分为图结构、层次结构、图像结构和矩阵结构。图结构是由节点集合和边集合构成的,其优点是灵活直观,可以在任意两个对象之间添加联系,所以大部分算法都采用图结构的方式进行表达。层
表1室内场景生成算法分类
注:场景上下文关系中,O代表物体-物体关系,P代表人-物体关系;场景表达中,G代表图结构,H代表层次结构,I代表图像结构,M代表矩阵结构;生成顺序中,Seq代表顺序生成,Syn代表同步生成;场景输入中,N代表无参考,T代表文本输入,S代表草图输入,I代表图像输入,D代表三维信息输入;生成算法中,C代表传统算法,L代表深度学习算法。
次结构是由一组具有父子关系的节点组成,每一个子节点都只有一个父节点。一般将整个场景作为根节点,家具或家具部件作为叶子节点,节点之间存在指向性关系。按照层次递进的方式生成室内场景比较符合设计师设计场景时的设计思路。考虑到家具一般排列在二维空间中,有研究人员采用俯视图的方式来表达场景,图像结构的表达方式可以更加直观地将家具之间的位置关系体现到坐标上。基于矩阵的表达方式,首先将每个家具节点的属性用向量来表示,然后将所有家具的向量整合为一个可以代表整个场景布局信息的矩阵,矩阵的表达形式最为简单,不需要定义物体之间的上下文关系,但是在生成过程中同样无法体现家具之间的关系,可解释性不强。
目前,深度学习是主要的场景生成算法,而图卷积神经网络的出现使得图结构表示的场景也能利用深度学习的优势,自动学习场景布局规律。同时,图结构本身能灵活增加、删除节点的优势也能使深度学习算法更好地与人交互。所以利用图卷积神经网络进行深度学习的图结构表达场景会更具优势。
3.4基于场景生成方式的分类
根据场景生成方式的不同,可将室内场景生成算法主要分为传统算法和深度学习算法。在深度学习算法出现以前,为了确定布局参数,传统方法采用基于规则、优化以及概率统计的传统方式对场景的布局规律进行建模。在大规模室内场景数据集出现以后,深度学习算法由于其强大的特征学习和提取能力成为室内场景布局算法的主要手段。传统算法需要耗费大量的人工成本对室内场景布局规律进行抽象,并且在生成过程中耗时相对较长。而深度学习算法则通过端到端的生成神经网络,可以自动学习布局规律并且快速生成布局,成为目前主流的场景生成算法。
3.5基于家具摆放顺序的分类
根据场景中家具摆放的顺序,可以将室内场景生成算法分为顺次迭代和同步生成两种方式。顺次迭代的缺点是后序摆放的物体由于顺序性无法对前序摆放的物体产生影响,而前序摆放的物体也无法预测后续摆放的物体类别,但其优点是如果发现放不下的物体可以舍弃,所以只要算法正确就一定能够生成合理的场景。同步生成的优点是所有家具在摆放时都可以考虑其他所有家具的摆放,缺点是摆放的过程中不能舍弃家具,可能会有不合理的场景出现。
4室内场景生成算法
室内场景布局生成的目标是确定家具的大小、类别及摆放在三维空间中的位置和朝向。目前,主流的场景生成算法是在无样例约束的条件下,基于物体关系对场景建模后进行生成。本节对无样例的基于物体关系的场景生成算法,按照传统算法和深度学习算法两大类进行梳理,并概述了场景表达方式和场景生成顺序。在上述主流算法的基础上,还衍生出了基于人类活动的无样例场景建模的场景生成方式,以及基于物体关系和样例的场景生成方式。
本节按照无样例的基于物体关系的场景生成算法、无样例的基于人类活动的场景生成算法以及基于样例和物体关系的场景生成算法3大类对场景生成算法进行具体地梳理和分析,用于帮助读者更好地了解场景生成算法的发展趋势。
4.1无样例的基于物体关系的场景生成算法
4.1.1传统生成方法
早期用于研究自动室内场景生成的传统方法主要分为3种:基于规则的场景生成、基于能量优化的场景生成以及基于概率统计的场景生成。传统方法需要充分发挥科研人员的概括和抽象能力,利用有限的知识和能力抽象出可能的场景布局规律,并用算法来表示。
Fisher等提出一种基于高斯混合模型和贝叶斯模型的概率模型来学习场景的布局先验,并以此为基础生成与用户给定示例场景相似的新室内场景。该模型能够根据成对物体在空间位置中的共现概率,预测可摆放的家具类别以及场景空间中最有可能摆放该家具的位置。为了增加新场景布局的多样性,该论文还提出了一种基于场景上下文信息的聚类算法,并以此提供可互相替换的家具类别。除了考虑成对的对象关系以外,Kermani等还采用了涉及两个以上对象的关系表示场景的上下文。与前述只考虑局部家具之间的上下文关系不同,Liu等利用给定的大规模室内场景数据集构造了一个具有层次结构的语法概率模型,用其来概括整个室内场景的上下文关系。这种利用数据集学到的层次关系,将其作为一个整体进行摆放更能增加布局的合理性。Henderson等也是按照主要物体、小物体、天花板物体、墙面物体这样层次递进的顺序进行家具摆放。
4.1.2深度学习生成方法
深度学习是一种基于数据进行表征学习的方法。随着大规模室内场景数据集的出现,采用深度学习的方式进行场景生成成为了可能。传统生成方法需要人工定义具体的规则、优化函数或密度函数,而深度学习可以直接利用具有特殊结构的神经网络来隐式地学习表达这些信息,避免人工定义的复杂性。除此之外,采用深度学习的方式从大规模室内场景数据集中学习到的场景先验能够很好地补充人有限的室内场景设计经验。
Wang和Ritchie等提出一种基于卷积神经网络的场景生成模型,能够快速灵活地生成场景。虽然室内场景存在于三维空间,但重力决定了大多数对象在二维平面上进行布局,所以该模型将俯视图表示的场景作为模型输入,利用不同的卷积神经网络对家具的类别、位置、朝向以及大小进行预测,并以迭代的方式将家具逐个添加到场景中。将场景图表示为俯视图可以实现像素级别的细粒度的推理过程,并且可以利用专门为图像理解而开发的卷积神经网络学习复杂的室内场景结构。
与图像平铺表示的室内场景不同,Li等认为室内场景的结构本质上是分层的,提出将室内场景抽象为包含支撑关系、共现关系、环绕关系以及墙依靠关系的分层树结构。首先,循环神经网络根据抽象出的分层树结构,由叶子节点开始自下而上地对家具属性以及与其他家具的相对位置关系进行编码;然后,从根节点向下解码出每个家具节点的类别、大小、朝向等场景布局信息;最后,以变分自编码器的方式进行训练,由随机采样的噪声进行生成。
与分层树结构类似,Zhang等也采用了变分自编码器的生成网络结构,该结构将场景中所有物体特征排列成固定大小矩阵作为室内场景的表达方式,将参数化矩阵输入稀疏连接的前向神经网络中学习室内场景粗粒度的全局布局信息,同时利用有向距离场将场景映射到二维空间中学习细粒度的局部布局信息。Yang等也采用了矩阵的表达形式,除了包含单个物体信息的生成网络外,该研究还利用生成网络对物体的相对属性进行编码,最后利用贝叶斯方法结合单独对象属性、相对属性以及参数先验对最终布局进行优化。
以往的场景生成方式会对家具之间的关系进行假设,Wang等提出将场景抽象成一个对象属性的序列,将场景生成任务转化为序列生成任务,采用Transformer结构生成场景,并通过Transformer中的注意力机制隐式学习家具物体之间的关系。
4.2无样例的基于人类活动的场景生成算法
通过人体姿态可以预测接下来的动作倾向,而动作是人和物体之间产生交互的中介,所以人体姿态和物体之间存在一定的上下文关系。Jiang等通过构造概率密度函数来学习物体的支撑性、可达性以及易用性与人体6种标准姿态的上下文关系。在场景生成过程中,模型首先根据已有物体推断可能的人体姿态以及位置,然后再以人体姿态为中心,从概率密度函数中采样找到可能的下一个物体的摆放位置。
Ma等研究了一种由动作驱动的场景生成框架,该框架通过模拟被人类动作改变的物体放置确定场景布局。首先,利用标注图像对动作模型进行学习,其中,每种类型的动作结合了一个或多个人体姿势、一个或多个物体类别和表示人-物体以及物体-物体之间的空间位置关系信息;然后,通过采样动作序列生成场景。与其他算法不同的是,由于一个动作可能涉及多个人体姿势和物体,该框架能在确定动作后同时触发一系列物体的放置,而且场景中所有动作之间具有某种顺序关系,使得整个场景的生成更具一致性。
4.3基于样例和物体关系的场景生成算法
4.3.1文本输入
利用自然语言描述来获取场景布局是一种较为简便的方式,自然语言作为人们日常表达思维的方式在描述场景时不需要任何培训。Seversky和Coyne等较早地提出了语言驱动的场景生成方式,该方法通过自然语言详细描述对象及空间位置的关系,实现自然语言到场景的映射,这种方式可以生成符合语言表达的室内场景,但限制了用户表达场景的自由度和多样
性,只能生成固定的场景布局。Chang等提出将自然语言解析成一个包含要摆放物体以及物体之间如何排列的场景模版后,根据数据集中学习到的物体之间的空间位置先验,将隐含的物体之间的位置关系扩充进来。Ma等提出的算法不仅考虑了物体之间的空间位置关系,还对物体成对出现的概率进行建模,因此,该方法不仅支持隐式位置关系扩充,也支持隐式的物体类别扩充,这种利用从数据集中提取出的隐式、通用的布局规律对场景增强的方式,可以让用户不必像以前的大多数方法一样提供明确的布局信息。Chang等尝试将描述内容与物体关联起来,以便找到更适合文本描述的三维模型,还将规则转化成基于文本的交互式场景编辑操作,并开发出给用户使用的UI界面。
4.3.2草图输入
草图对于用户而言也是一种表达场景布局的简易方式,建模师会根据室内设计师预先绘制的概念草图创建对应的三维室内场景。现有的三维场景设计工具需要建模师多次重复模型寻找以及模型摆放两个步骤将家具逐个摆放到室内场景中。在给定草图进行场景生成的自动化算法中,Shin等也采用了类似的流程,首先,从草图中识别出单个物体;然后,根据物体的视觉特征去模型库中找到对应的三维模型;最后,摆放到三维空间中。将三维模型拆分成部件,完成部件级别的模型寻找以及摆放,也能实现模型草图到三维模型的生成,但是单个物体的检索和摆放往往会产生歧义,为此,Xu等提出对数据集中提取的具有共现关系和空间位置关系的家具组合进行提取,从而实现多个物体的协同检索和放置,该方法极大地减少了用户干预。
4.3.3图像输入
手机是人们日常携带且具有摄像功能的设备,得到一张场景图像只需要按下拍照按钮,所以通过RGB图像生成场景也是用户可选的方案,并得到了广泛的研究和发展。Huang等提出利用能够表征场景功能和几何约束联合分布的整体场景语法来表示三维场景的结构,利用蒙特卡洛方法找到与真实场景最相似的由场景三维信息渲染得到的场景。Nie等将图像重建分为场景布局结构估计、物体检测及网格重建3个子任务,本质上还是检测要摆放的物体,根据相机姿态投影到三维空间中。该研究通过注意力机制对所有物体的卷积特征进行加权求和,将上下文信息融入到物体三维空间预估过程中。Xiao等采用了更复杂的图卷积神经网络,通过消息传递融入上下文信息。Zhang等结合了以上两种思路,利用Nie等提出的注意力机
制得到初始位置后,再利用Xiao等提出的图卷积神经网络进一步优化场景布局。
4.3.4三维信息输入
用二维RGB图像进行三维场景生成较易出现偏差,而基于深度信息构建的RGB-D场景或扫描场景带来的三维场景信息更加明确,但是RGB-D图像往往充满噪声,所以Chen等提出将在数据库中学习到的物体上下文关系用于约束重建,确保重建家具与扫描家具之间的语义相似性。Hampali等采用了蒙特卡洛方法,搜寻RGB-D图像中可能的家具集合信息,以最小化重建场景与真实场景的差异。Fisher等利用人-物体的上下文关系生成和具有噪声的扫描场景相似的新场景。Avetisyan等则是在检测出扫描场景中的物体后,利用物体-物体的上下文关系对家具的摆放位置进行优化。
5总结与未来展望
本文对场景生成算法做了一个较为全面的分析和描述,分别从基于规则、概率统计、优化函数的传统场景生成方式到基于图卷积神经网络、深度神经网络、卷积神经网络的深度学习生成方法,从基于物体-物体之间上下文关系的算法到基于人-物体的上下文关系的算法,从无样例的生成模型到基于样例的生成模型,从矩阵结构、层次结构、图像结构到图结构的场景表达方式,从顺序生成到同步生成的生成顺序分析了各个场景生成算法的优缺点,以及近年来的发展。
目前,室内场景生成算法仍然存在问题。主流的深度学习方法虽然能学习到一定的场景先验知识,但仍然需要预定义一些空间位置关系和共现关系来辅助算法进行场景理解,且预定义的关系所能表达的场景上下文关系有限。神经网络中的注意力机制可以很好地解决这个问题,但注意力机制仅能表示物体之间联系的紧密程度,不包含任何语义信息。所以将语义关系预测融入场景生成是未来研究的方向之一。
最直观且目前最有发展前景的场景表达方式是图结构和图像结构的表达方式。图结构表达方式可以忽略家具本身在三维空间中的位置,在任意节点之间构造联系,但该表达方式的节点之间不具备明确顺序。而图像结构由于其本身排列在二维空间坐标系中,所以图像表示的场景能自然地捕捉到家具之间的位置关系。因而将图结构和图像结构结合进行场景预估也是一个值得研究的课题。现有的算法虽将图和图像相结合但是采用的是两步走的策略,未来可以尝试训练一个端到端的网络将两者结合起来。
杨淼1陈宝权2*
1山东大学计算机科学与技术学院
2北京大学前沿计算研究中心
转载自《集成技术》
产品新闻
推荐专题
技术视频
传动网-工业自动化与智能制造的全媒体“互联网+”创新服务平台