三维场景图:用于统一语义、三维空间和相机的结构

三维场景图:用于统一语义、三维空间和相机的结构

3D Scene Graph: A structure for unified semantics, 3D space, and camera

论文链接:

http://openaccess.thecvf.com/content_ICCV_2019/papers/Armeni_3D_Scene_Graph_A_Structure_for_Unified_Semantics_3D_Space_ICCV_2019_paper.pdf

摘要

对场景的全面语义理解对于许多应用程序都很重要,但是在什么样的空间中,不同的语义信息(如对象、场景类别、材质类型、三维形状等)应该被固定下来,其结构应该是什么?我们希望有一个统一的结构,承载不同类型的语义,我们遵循三维场景图范式,生成一个三维场景图。给定一个三维网格和注册的全景图像,我们构建一个横跨整个建筑的图形,其中包括对象(例如类、材质、形状和其他属性)、房间(例如功能、照明类型等)和相机(例如位置等)的语义,以及这些实体之间的关系。然而,这一过程是令人望而却步的劳动繁重,如果手动完成。为了缓解这一问题,我们设计了一个半自动的框架,该框架采用了现有的检测方法,并使用两个主要的约束条件对其进行增强:

1. 在全景图上采样的查询图像的框架,以最大限度地提高2D检测器的性能;

2. 不同摄像机位置的二维检测的多视图一致性增强。

 

1.       Introduction

语义信息应该建立在哪里,它应该是最有用和不变的结构?这是一个基本问题的内容,占据了许多领域,如计算机视觉和机器人。             

游戏中有很多组件:物体和空间的几何结构,其中实体的类别,以及观察场景的视点(即相机姿势)。在这些信息可以固定的空间上,最常用的选择是图像。然而,为此目的使用图像并不理想,因为它呈现出各种弱点,例如像素对任何参数变化都有很大的变化,缺少对象的整个几何体,等等。             

为此目的的理想空间应至少(a)尽可能多地保持不变,(b)容易且确定地连接到不同域和任务所需的各种输出端口,例如图像或视频。             

为此,我们阐明,三维空间更稳定和不变,但连接到图像和其他像素和非像素输出域(如深度)。因此,我们在那里建立语义信息,并根据需要将其投影到其他所需的空间(例如,图像等)。具体来说,这意味着信息是基于建筑物的底层三维网格。此方法提供了许多有用的值,如自由三维、amodal、遮挡和开放空间分析。              

更重要的是,语义可以投射到任何数量的视觉观察(图像和视频)上,从而为它们提供注释,而无需额外的成本。结构应该是什么?语义存储库使用不同的表示,如对象类和自然语言标题。与其他表示方法相比,场景图的思想具有许多优点,使其成为理想的候选对象。它能够包含比对象类(如ImageNet[14])更多的信息,但它比自然语言标题(如CLEVR[22])包含更多的结构和不变性。我们在基本的场景图结构(如Visual Genome[27]中的场景图结构)中增加了必要的3D信息,并生成了3D场景图。              

我们将三维场景图视为一个分层图,每个层代表不同的实体:建筑、房间、对象和相机。可以添加更多层来表示语义信息的其他来源。与2D场景图类似,每个实体都增加了几个属性,并与其他实体连接,形成不同类型的关系。为了构建三维场景图,我们将最新的算法结合在一个主要的自动语义识别方法中。从二维开始,我们使用两个约束逐步聚合三维信息:框架和多视图一致性。每个约束都提供更健壮的最终结果和一致的语义输出。

本文的贡献可以概括为:             

•我们将[27]中的场景图思想扩展到三维空间和地面语义信息。这为各种属性和关系提供了自由计算。             

•我们提出了一种两步robusti fication方法,利用不完善的现有检测器优化语义识别,这使得主要是手动任务的自动化成为可能。             

•我们使用3D场景图作为附加模式来扩充Gibson Environment的[44]数据库,并在3dscenegraph.stanford.edu上公开发布。

 2.       Related Work

场景图             

视觉基因组是一个多样的、结构化的知识库[27],它由物体和人在野外的二维图像组成。每幅图像的语义信息以场景图的形式进行编码。除了对象类和位置之外,它还提供属性和关系。图中的节点和边源于手动定义的自然语言标题。为了解决由于注释的自由形式而导致的命名不一致,在将条目转换为最终场景图之前对其进行规范化。在我们的工作中,语义信息是以一种自动化的方式生成的,因此更加有效,已经标准化,并且在很大程度上没有人类的主观性。尽管使用预先定义的类别可能会受到限制,但它与当前的学习系统兼容。此外,3D场景图允许从3D计算无限数量的空间一致的2D场景图,并为关系提供数值精确的量化。然而,我们目前的设置仅限于室内静态场景,因此不包括室外相关属性或动作相关关系,如视觉基因组。使用场景图跟随视觉基因组,出现了一些使用或产生场景图的作品。示例包括场景图生成[30,46]、图像字幕/描述[26,3,23]、图像检索[24]和视觉问答[17,51]。除了视觉语言任务,还有焦点关系和动作检测[34,31,47]。除了常见的3D视觉任务外,3D场景图同样能够使其它任务以3D空间、2D-2.5D图像、视频流和语言的组合出现。             

结构在预测中的应用             

将结构添加到预测中(通常以图表的形式)已经证明对一些任务是有益的。一个常见的应用是用于语义分割的条件随机场(CRF)[28],通常用于为局部预测提供全局平滑和一致的结果[43,25]。在机器人导航的情况下,通过使用语义图来抽象物理地图,代理可以通过了解独立于度量空间的语义节点之间的关系来学习,这使得跨空间的泛化更容易[42]。图形结构也常用于人-对象交互任务[39]和其他时空问题[20],在连续视频帧内和跨连续视频帧的节点之间创建连接,因此扩展结构以包括空间和时间。将几何、提供和外观结合起来的语法已经被用于图像中的整体场景解析,其中关于场景和对象的信息被捕获在层次树结构中[11、48、21、19]。节点表示场景或对象的组件和属性,而边可以表示分解(例如,场景到对象等)或关系(例如,支持等)。类似于这样的作品,我们的结构结合了不同的语义信息。然而,它可以捕捉建筑尺度上的全局3D关系,并通过将元素放置在不同的层中,在图形的定义中提供更大的自由dom。这消除了它们之间直接依赖关系的需要(例如,场景类型和对象属性之间)。另一个有趣的例子是Visual Memex[36],它利用一个图形结构来编码对象之间的上下文和视觉相似性,而不需要类别的概念,目的是预测对象类放置在一个屏蔽区域之下。朱等人。[50]将知识库表示用于对象提供推理任务,该任务在对象、属性和提供的不同节点之间放置边。这些例子将不同类型的语义信息整合在一个用于多模态推理的单一结构中。上面的内容反映了拥有丰富的结构化信息的价值。             

语义数据库             

现有的语义存储库被分割成特定类型的视觉信息,其中大多数集中在对象类标签和空间跨度/位置信息(例如,分段掩码/边界框)。这些可以基于视觉形态(例如RGB、RGBD、点云、3D网格/CAD模型等)和内容场景(例如室内/室外、仅对象等)进一步分组。其中,少数提供基于三维网格的多模式数据(例如,2D-3D-S[6],Matterport3D[10])。最近在[44]中提出的Gibson数据库由数百个带有注册全景图像的3D网格模型组成。它的平面尺寸大约是2D-3D-S和Matterport3D数据集的35倍和4.5倍,然而,它目前缺乏语义注释。其他存储库专门处理不同类型的语义信息,例如材料(例如,上下文数据库中的材料(MINC)[8])、视觉/触觉纹理(例如,描述纹理数据集(DTD)[12])和场景类别(例如,麻省理工学院地点[49])。             

自动和半自动语义检测             

语义检测是一个非常活跃的领域(本文不包括详细的概述)。需要强调的一点是,与存储库类似,工作的重点是有限的语义信息范围。对象语义范围从类识别到空间跨度定义(边界框/分段掩码)。最新的工作之一是Mask R-CNN[18],它在RGB图像中提供对象实例分割遮罩。其他具有类似输出的是闪电网[15](RGB)和截锥点网[38](RGB-D)。除了检测方法外,众包数据注释也是一种常见的策略,尤其是在构建新的存储库时。尽管大多数方法只专注于体力劳动,但有些方法使用自动化来最小化与数据的人工交互量,并提供更快的周转。类似于我们的方法,Andriluka等人。[4] 使用在COCOStuff数据集上训练的Mask R-CNN获取初始对象实例分割遮罩,随后由用户验证和更新。Polygon RNN[9,2]是另一个机器辅助注释工具,它在给定用户定义的边界框的图像中提供对象的轮廓。两者都停留在二维世界中,专注于对象类别和分割遮罩。另一些则采用较低级别的自动化来加速3D中的注释。ScanNet[13]提出了一个web界面,用于手动注释室内空间的3D网格模型。它首先使用基于图切割的方法对场景进行过度分割。然后,系统会提示用户以对象实例分段为目标标记这些分段。[37]有一个相似的起点;根据几何和外观线索,结果的过分段进一步分组为更大的区域。这些区域由用户编辑以获取对象语义注释。[41]使用来自2D注释的对象分割遮罩和标签来自动恢复3D场景几何体。尽管采用了自动化技术,但上述方法在很大程度上依赖于人与人之间的相互作用,以获得足够精确的结果。

3.       3D Scene Graph Structure

该方法的输入是三维扫描仪的典型输出,由三维网格模型、注册的RGB全景图和相应的相机参数组成,如Matterport3D[10]或Gibson[44]数据库中的数据。输出是扫描空间的三维场景图,我们将其表示为四层图(见图1)。每个层都有一组节点,每个节点都有一组属性,节点之间有表示它们关系的边。第一层是整个建筑,包括图形中给定网格模型的根节点(例如住宅建筑)。建筑的房间构成了三维场景图的第二层,每个房间都有一个独特的节点(如客厅)。房间内的物体形成第三层(如椅子或墙)。             

最终层将相机作为图形的一部分引入:

每个相机位置是3D中的一个节点,并且可能的观测(例如RGB图像)与之关联。属性:图中的每个建筑、房间、对象和相机节点(从现在起称为元素)都有一组属性。例如对象类、三维形状、材质类型、姿势信息等。             

关系:             

元素之间的连接是通过边建立的,可以跨越不同的层(例如,对象对象、相机对象室等)。属性和关系的完整列表见表1。

4.       Constructing the 3D Scene Graph

要构建三维场景图,我们需要识别其元素、属性和关系。在给定元素数量和比例的情况下,用对象标签标注输入的RGB和3D网格数据及其空间跨度是构建3D场景图的主要劳动瓶颈。因此,本文的主要工作是通过提出一种自动方法来解决这个问题,该方法使用现有的语义检测器引导注释管道并最小化人工劳动。管道的概述如图2所示。在我们的实验(第5节)中,我们使用了性能最好的掩模R-CNN网络[18],得到的结果仅适用于置信度为0.7或更高的检测。然而,由于检测结果不完善,我们提出了两种分别在二维和三维域上操作的鲁棒机制,即帧和多视图一致性,以提高其性能。             

全景图像的帧处理             

二维语义算法对直线图像进行操作,其中一个最常见的错误与它们的输出相关,就是对图像边界处部分捕获对象的错误检测。当从一个稍微不同的视角观察相同的物体时,将它们放在靠近图像中心的位置,并且不部分捕捉它们,则检测精度得到提高。使用RGB全景图作为输入,可以制定一种框架方法,从中对直线图像进行采样,以最大限度地提高检测精度。图3总结了这种方法。它使用了两种启发式方法:(a)将对象放在图像的中心;(b)将图像适当放大以提供足够的上下文。             

多视图一致性             

在三维网格上注册RGB全景图后,我们可以通过在三维曲面上投影二维像素标签来对其进行注释。然而,由于全景图结果不完美(图4(b)),以及某些对象的常见不良重建或图像像素与网格表面之间的不对准(相机注册错误),仅投影一个全景图并不能产生准确的分割。这会导致相邻对象上的标签“泄漏”(图4(c))。但是,场景中的对象可以从多个全景图中看到,这使得可以使用多视图一致性来解决此类问题。这就形成了我们的第二个robustification机制。我们首先将所有全景标签投影到三维网格曲面上。为了聚合投出的选票,我们根据观察点离曲面的距离来制定加权多数投票方案,并遵循这样的启发:摄像机离物体越近,观察点就越大,越容易看到。

与帧机制类似,在检测级别上执行投票。我们在一组从全景图中的同一个对象实例接收投票的面Fobj中寻找标签的一致性。我们首先对每个人脸进行加权多数投票,以确定Fobj的候选标签池,因为它是通过投射所有全景图得到的,然后使用最常见的标签池将其分配给组。在3D中查找连接组件的最后一步,为我们提供了最终实例分割遮罩。这些信息可以投影回全景图,从而提供一致的二维和三维标签。             

最后,我们对自动提取的结果进行手动验证。我们开发了web界面,用户可以根据需要进行验证和更正。[5]中提供了此步骤的屏幕截图和更多详细信息。我们在Amazon Mechanical Turk(AMT)上批量采购验证。然而,我们并不认为这是管道的关键步骤,因为没有任何验证的自动化结果非常可靠,具有一定的实际用途(见第5.3和[5]节)。手动验证主要用于评估目的,并形成特定研究用例的无错误数据。管道由两个主要步骤组成(所有操作都在直线图像上执行)。             

验证和编辑:             

在全景图上投影最终的三维网格标签后,我们渲染直线图像,显示每个找到的对象的中心和最大程度,包括20%的周围环境。我们要求用户(a)验证所示对象的标签-如果错误,图像将从其余过程中丢弃;(b)验证对象的分割掩码;如果掩码不符合标准,则用户(c)添加新的分割掩码。添加丢失的对象:上一步将重新定义自动结果,但可能仍有丢失的对象。我们将经过验证的遮罩投射回全景图,并将其分解为5个重叠的直线图像(每张图像72个偏航差)。此步骤(a)询问用户是否缺少对象类别的任何实例,如果发现不完整,(b)用户递归地添加掩码,直到对象类别的所有实例都被屏蔽。              所描述的方法将图形的对象元素作为输出。为了计算属性和关系,我们使用现成的学习和分析方法。有关它们的完整描述和带有结果的视频,请参见[5]。

 5.       Experiments

我们在Gibson Environment的[44]数据库上评估我们的自动流程。

5.1.  Dataset Statistics

吉布森环境的数据集由572栋完整的建筑物组成。它是从真实的室内空间收集,并为每栋建筑提供相应的三维网格模型、RGB全景图和相机姿态信息。我们用我们的自动流水线注释所有的二维和三维模式,并在Gisbon的小分割上手动验证这个输出。使用的语义类别来自对象的COCO数据集[33],材质的MINC[8],纹理的DTD[12]。关于数据集和每个属性和关系的细节分析见[5]。

5.2.  Evaluation of Automated Pipeline

我们在二维全景图和三维网格模型上评估我们的自动化管道。我们遵循COCO评估方案[33]并报告两种模式的平均精密度(AP)和召回率(AR)。我们使用在COCO数据集上训练的最好的现成掩模R-CNN模型。具体来说,我们从Detectron[1]中选择了带有铃铛和口哨的面具R-CNN。根据模型说明,它使用ResNeXt-152(32x8d)[45]与特征金字塔网络(FPN)[32]相结合。它在ImageNet-5K上进行了预先训练,在COCO上进行了调谐。有关实现和培训/测试的更多详细信息,请参阅Mask R-CNN[18]和Detectron[1]。             

基线:             

我们在二维中比较了以下方法:             

Mask R-CNN[18]:我们对全景图上采样的6个没有重叠的直线图像运行Mask R-CNN。探测结果被投射回全景图上。             

•带框架的掩模R-CNN:这里的全景图结果来自我们的第一个robusti fication机制。              •使用框架和多视图一致性(MVC)屏蔽R-CNN-我们的:这是我们的自动化方法。应用两种robusti fication机制得到全景图结果。             

这些是3D的:              

Mask R-CNN[18]和全景投影:Mask R-CNN的全景结果投影在三维网格表面上,每个面都有简单的多数投票。             

•使用框架和全景投影屏蔽R-CNN:我们第一个机制的全景结果遵循类似的二维到三维投影和聚集过程。             

•使用框架和多视图一致性(MVC)屏蔽R-CNN-我们的:这是我们的自动化方法。              如表2所示,我们方法中的每个机制都有助于提高最终精度。这在定性结果中也是可见的,每一步都进一步消除了错误的检测。例如,在图5的第一栏中,Mask R-CNN(b)检测到窗户外的树木是盆栽植物、绘画上的花瓶和镜子中的床反射。带有框架(c)的面罩R-CNN能够移除树检测,并恢复高度阻塞的缺失厕所。用框架和多视图一致性(d)屏蔽R-CNN,进一步去除             

粉刷花瓶和床上用品,效果非常接近地面的真实感。             

类似的改进可以在3D中看到(图6)。尽管它们在数量上看起来可能没有那么大,但它们对于获得一致的三维结果和大多数与一致的局部区域和更好的对象边界相关的变化来说是至关重要的。              

人力劳动:             

我们进行了一项用户研究,将检测性能与人类劳动(花费的时间)联系起来。结果见表3。请注意,完全手动3D注释[7]报告的工时是针对12个对象类(与我们的62个对象类相比)和专家3D注释器(与我们的非熟练工人相比)计算的。              使用不同的检测器:             

在此之前,我们一直在使用性能最好的面具R-CNN网络,在COCO上有41.5个美联社报道[18]。我们想进一步了解当使用不太精确的检测器时两种robusti fication机制的行为。             

为此,我们使用BlitzNet[15]进行了另一组实验,BlitzNet是一个推理速度较快但在COCO数据集上报告性能较差的网络(AP 34.1)。我们注意到,两个检测器的结果在不同基线之间提供了相似的AP相对增加(表4)。这表明,无论初始预测如何,robusti fication机制在提高标准检测器性能和纠正错误方面都能提供类似的价值。

 5.3.  2D Scene Graph Prediction

到目前为止,我们关注的是自动检测结果。下一步将自动生成最终的三维场景图,并计算属性和关系。这方面的结果见[5]。我们将此输出用于二维场景图预测的实验。二维场景图(SG)[35]有3个标准评估设置:(a)SG检测,(b)SG分类,和(c)关系分类(用于解释见[5])。与仅存在稀疏和实例特定关系的视觉基因组相比,我们的图是密集的,因此一些评估(例如,关系检测)不适用。我们专注于关系分类,并提供以下结果:(a)空间顺序和(b)相对体积分类,以及(c)作为遮挡关系应用的amodal掩模分割。             

空间顺序:             

给定一个RGB直线图像和一个对象对的(可见的)分割遮罩,我们预测查询对象是否在另一个对象的前/后、左/右。我们使用由我们的方法自动生成的分割掩码训练ResNet34,并使用中等吉布森数据分割。基线是从训练数据中提取的统计信息猜测。              

相对体积:             

我们遵循相同的设置并预测查询对象的体积是小于还是大于另一个对象。图7显示了两项任务的预测结果,而定量评估则在表5中。             

Amodal掩码分段:             

在给定摄像机位置的情况下,我们预测了部分被其他物体遮挡的物体的二维非对称分割。由于我们的语义信息存在于三维空间中,因此考虑到以往工作中数据收集的困难,我们可以在不附加注释的情况下,以完全自动的方式推断出对象遮挡的全部范围[29、52、16]。我们训练一个U-Net[40]不可知到语义类,以预测以RGB图像为中心的对象的可见/遮挡掩模的每像素分割(Amodal Prediction(Ours))。

作为基线,我们取一个模态掩码的平均值(a)超过训练数据(平均a modal掩码)和(b)假设每个语义类在测试时拥有完美的知识(平均类特定Amodal掩码)。关于数据生成和实验设置的更多信息见[5]。我们将f1分数和交叉重叠合并作为三个语义类(空、遮挡和可见)的每像素分类以及宏平均值(表6)。尽管由于空类的严重偏差,性能差距看起来并不显著,但我们的方法在预测闭塞区域方面始终显示出显著的性能提升,表明它成功地学习了不同于基线的模态感知(图8)。

6.       Conclusion

我们讨论了多模态三维语义信息在建立物体、三维空间和相机之间关系的单一结构中的基础。我们发现这样的设置可以提供对现有任务的洞察,并允许在语义信息源的交叉中出现新的任务。为了构建三维场景图,我们提出了一种主要的自动方法,该方法在框架和多视图一致性的情况下提高了当前学习系统的鲁棒性。我们在Gibson数据集上演示了这一点,该数据集的3D场景图结果是公开的。我们计划扩展对象类别以包含更多通常出现在室内场景中的对象,因为当前注释在某些地方往往很稀疏。

原文地址:https://www.cnblogs.com/wujianming-110117/p/12666043.html