20 CVPR Learning 3D Semantic Scene Graphs From 3D Indoor Reconstructions 学习笔记

Author

德国慕尼黑科技大学+Google

Abstraction

3RScan是大规模真实世界的室内场景,特点是对478个自然改变的室内环境在不同的时间帧进行了1482 RGB-D scans,每一个scene都包括了一些位置被改变的物体。它和ScanNet数据集的区别主要在于ScanNet中的每一个采样环境都不相同,但是3RScan中存在采样环境相同但物体的位置不同的场景。

Scene Graph Annotations 则是在3RScan的基础上给物体加入了场景图需要的关系、物体特征和类别标注,同时对3RScan进行了扩展,以此形成了场景图数据。同时该论文提出了一种从3D点云中生成语义场景图的可学习的方法。最后展示了我们的方法在一个domain-agnostic 的检索任务中的应用,其中图作为3D-3D和2D-3D匹配的中间表示。

Introduction

我们相信,对一个给定的三维场景的场景图进行回归的能力可以成为三维场景理解的一个基本要素,作为学习和表示物体关系和环境的背景信息的一种方式。因此,本文提出了一种学习的方式来预测3D semantic graphs

我们进一步展示了在一个跨领域的场景中,场景图是如何在不断变化的条件下作为三维和二维场景检索任务的共同编码的。

Contribution

  1. 提出了大型3D数据集——3DSSG,它扩展了3RScan并带有语义场景图注释,其中包含关系、属性和类层次的结构。同时可以通过渲染3D场景图获得2D场景图,从而产生363k个场景图-图像对
  2. 提出了一种GCN的方法,用于从3D点云中直接生成语义场景图
  3. 如何在跨域检索中使用3D语义场景图

Dataset

语义场景图由节点 N N N和边 R R R之间的一组元组 ( N , R ) (N,R) (N,R)组成,与之前定义不同的是,本文中的节点不是仅分配了单个对象类别 C C C,而是由类 c = ( c 1 , . . . , c d ) c=(c_1,...,c_d) c=(c1,...,cd)的层次结构定义,其中 c ∈ C d c∈C_d cCd d d d可以变化。由于要应对多变的场景,每个节点还具有一组属性 A A A,描述了对象实例的视觉和物理外观,以及功能性描述。

在这里插入图片描述

为了生成最后的3DSSG数据集,我们将semantic annotation、几何数据和额外的人工验证结合起来。最后的dataset有1482场景图、48k物体节点、544k条边

3D场景图的一个特征是它可以很轻易的呈现为2D的场景。只要给定3D模型和相机位置,可以很轻松的过滤出图像中存在的节点和边。变化过程中,支持和属性比较关系不会发生变化,但是方向关系(left,right,behind,front)在新环境中一定要自动更新。

根据论文内容,在实际做场景图生成实验的时候,只使用了3DSSG的一个子集,这个子集里有160个不同的物体类别和26中predicate类别。

在这里插入图片描述

1. Nodes

每一个节点都有标签,每一通过一系列标签定义的instance,都将第一个标签作为自己的注释标签。其它的标签最后通过WordNet递归解析获得。因为词汇关系的模糊性,所以每一个类需要获得一个唯一类定义。

在这里插入图片描述

其中被框住的是数据集中实际存在的类别定义,没有框住的是数据集中不存在的类别定义。

2. Attribute

属性分为静态属性和动态属性。

**Static Properties:**包括颜色、大小、类型、纹理以及物理特征。

**Dynamic Properties :**动态状态,例如open、empty

**Affordances:**将承受力定义为特定对象类别的节点的交互可能性或对象功能,例如seat可以sitting;只有closed door 可以被opened。

这一块的信息主要用于另一个任务,名字叫做semantic change detection。它的主要目的是识别两个同一场景不同状态的场景图,不同物体之间的关系变化。

在这里插入图片描述

3. Relationship

本文将关系分为了三种:

  • **Support Relationship:**表示支撑关系,例如bottal-table中的standing、lying关系
  • **Proximity Relationships: **表示接近关系,例如next to、in front of等
  • **Comparative Relationships:**表示比较关系,例如bigger than, darker than, cleaner than, same shape as等

Graph Prediction

在这里插入图片描述

给定场景 S S S的点集 P P P和类不可知的实例分割 M M M,场景图预测网络(SGPN)的目标是生成图 G = ( N , R ) G =(N,R) G=(N,R),包含场景中的对象 N N N以及他们的关系 R R R。我们的学习方法基于场景图预测中的通用框架,其中涉及到每个节点 ϕ n \phi_n ϕn和边缘 ϕ r \phi_r ϕr的视觉特征提取。

我们使用两种PointNet 体系结构来提取 ϕ n \phi_n ϕn ϕ r \phi_r ϕr,我们将其称为ObjPointNet和RelPointNet,首先对于实例 i i i的组成点云 P i \mathcal{P_i} Pi,我们通过以下公式获得:

在这里插入图片描述

其中 δ \delta δ表示克罗内克函数,它的输入为 m k , i m_k,i mk,i m k m_k mk表示实例 i i i的点云掩码, k k k表示场景编号(在场景集合 ∣ P ∣ \mathcal{|P|} P中),这一步的目的就是确定节点的点云集合。然后将 P i \mathcal{P_i} Pi输入ObjPointNet。

然后我们用3D bounding box的方法提取出物体对 P i , j \mathcal{P_{i,j}} Pi,j的点云集合,其中 B \mathcal{B} B表示bounding box,这和上面提取单个物体的方法按理是相同的。

具体实施时我们分别提取单个实例的点云和两个相邻实例的点云送入ObjPointNet和RelPointNet中。

GCN

我们将提取的特征以关系三元组(subject,predicate,object)的形式排列在图结构中,其中 ϕ n \phi_n ϕn占据主语/宾语单位,而边缘特征 ϕ r \phi_r ϕr占据谓语单位。
( ϕ s , i j , ϕ p , i j , ϕ o , i j ) (\phi_{s,ij},\phi_{p,ij},\phi_{o,ij}) (ϕs,ij,ϕp,ij,ϕo,ij)
接下来,我们采用图卷积网络(GCN)处理获得的三元组。GCN的每个消息传递层均包含两个步骤。首先,将每个三元组输入至MLP g 1 ( ⋅ ) g_1(\cdot) g1()中以进行信息传播。

其中 ψ \psi ψ表示处理后的特征, s , p , o s,p,o s,p,o分别表示subject、predicate、object。

其次,对于某个节点,在聚合步骤中,将来自该节点的所有有效连接的信号求平均,生成的节点特征将输入至另一个MLP g 2 ( ⋅ ) g_2(\cdot) g2() 中。

ρ i ( l ) = 1 ∣ R i , s ∣ + ∣ R i , o ∣ ( ∑ j ∈ R s ψ s , i j ( l ) + ∑ j ∈ R o ψ o , i j ( l ) ) ϕ i ( l + 1 ) = ϕ i ( l ) + g 2 ( ρ i ( l ) ) \rho_i^{(l)}=\frac{1}{|R_{i,s}|+|R_{i,o}|}(\sum_{j\in R_s}\psi_{s,ij}^{(l)}+\sum_{j\in R_o}\psi_{o,ij}^{(l)})\\ \phi_i^{(l+1)}=\phi_i^{(l)}+g_2(\rho_i^{(l)}) ρi(l)=Ri,s+Ri,o1(jRsψs,ij(l)+jRoψo,ij(l))ϕi(l+1)=ϕi(l)+g2(ρi(l))
然后就可以进行下一层的卷积了。在每个层之后,节点可见性将传播到另一个相邻层。GCN的最后一部分由两个MLP组成,用于预测节点和谓词类。

Loss

模型的损失函数包含分类损失 L o b j L_{obj} Lobj以及谓词分类损失 L p r e d L_{pred} Lpred

因为两个实体之间可能存在多个可行关系来描述它们之间的关系。例如一个椅子可以front of 另一个椅子,也可以same as 另一个椅子。因此 L p r e d \mathcal{L_{pred}} Lpred被定义为每一个类的二元交叉熵。为了解决class imbalance的问题,两个损失项都使用focal loss的格式:

其中 p t p_t pt表示预测的值, γ \gamma γ是超参数, α t \alpha_t αt表示在计算多类损失( L o b j \mathcal{L_{obj}} Lobj)时为类别的标准化的频率倒数,在计算per-class loss( L p r e d \mathcal{L_{pred}} Lpred)为固定的有边/无边的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值