Abstraction
先验知识的引用可以使用图结构的方式帮助定义语义实体和实体间的关系,但是其有意义的抽象和干预仍然难以捉摸。本篇论文将模型在数学层面分为了两个子问题:1. 知识学习 2. 利用先验知识进行场景图预测。
和卷积神经网络从编码的视觉信息中学习knowledge embedding和regular pattern不同,我们希望可以抑制因外观相似和其他知觉混乱造成的误解。
在网络设计阶段,我们制定了一个图自编码器来从one-hot编码的类标签以及其本质上的图形结构中自动获取基于类的表示和拓扑结构,这样可以避免感知性的错误和噪声。
Introduction and Motivation
模型将knowledge-inspired 3D scene graph prediction method分为了两个子任务,首先是只通过one-hot编码的类标签和类之间的拓扑相互作用利用自编码器的结构来学习类标签的特征嵌入表达,获得meta-embedding。然后Scene Graph Prediction Model会选择相关的meta-embedding和点云的感知特征来学习最终的场景图。
前人的不足: 以前的利用先验知识的方法有 局限: 静态的知识(例如统计先验知识)可能是不完整的和不准确的,因此一些模型倾向于使用基于学习的知识来获取确定邻域的图结构以及常规组合。但是,直接从视觉信息进行学习的知识会将知觉上的混乱继承到知识嵌入和网络参数中去。
Contribution
- 介绍了一种全新的、受知识启发的、直接对点云进行操作的3D场景图生成算法。为了达成这一目标,本文将问题分成了两个子任务。
- 提出了一种图自编码器:meta-embedding。并用其学习了一组基于类的原型表示( class-dependent prototypical representations)。这个学习到的原型表示可以避免感知性错误(perceptual errors)并且可以更有效的、可辨别(distinguishable)的、潜在空间编码先验知识。
- 为了预测更为可信的三元组关系,我们设计了一个受益于先验学习知识的场景图预测模型。
Dataset
3DSSG
Method
问题提出
场景图定义: G = { V , E } V = O b j e c t , E = p r e d i c a t e G=\{V,E\}\ \ V=Object,E=predicate G={V,E} V=Object,E=predicate
训练过程: P ( G , K ∣ D ) = P ( K ∣ D ) P ( G ∣ D , K ) P(G,K|D)=P(K|D)P(G|D,K) P(G,K∣D)=P(K∣D)P(G∣D,K) 其中K表示先验知识,D表示训练集给出的带有场景图标注的3D场景图数据。
两个子任务是分开训练的!
K = { e m e t a } K=\{e_{meta}\} K={emeta}表示每一个object和predicate的类别的meta-embedding
第一个子任务:
这个任务中学习到的嵌入是每一个物体和谓词类别的prototypical embedding,这个meta-embedding希望可以表示每一个语义类别,并且还可以编码响应类别在场景图中的常规模式。
为了实现这个目标,设计了一个图自编码器。该编码器的输入仅仅是one-hot编码的类别标签和各类的拓扑互动,没有感知信息(perceptual information)。该模型将相关的meta-embedding和latent embedding的几何空间拉进为了让meta-embedding可以记录到训练集的先验知识。
这个perceptual information没搞清楚是什么?
第二个子任务:
结合meta-embedding和感知特征来预测可能的场景图元素,这也是在评估阶段对未见过的三维场景数据的预期数学模型。
Meta-embedding and Learning Model
图中展示的meta-embedding的学习模型
第一层的两个MLP将one-hot编码的类别标签映射到相同特征维度的空间中。然后假设每一个物体对之间都会有关系,然后构造一个全连接图,其中predicate作为边。最后设计一个GNN进行信息传播。
这里如何构造全连接图不清晰,因为它是不管物体对之间有没有relation都会将其相连。但predicate只存在在其中一部分物体对之间,那那些没有relation的物体对的边特征怎么表示嘞?
这个没有predicate的边类别会编码成none,也就保证了任何两个object之间的类别都可以表示出来。
在**网络设计阶段(GNN)**在图结构中使用消息传递机制
在第
l
l
l层中,对于所有结点
v
∈
V
v\in V
v∈V的latent embedding
{
h
v
n
,
l
}
\{h_v^{n,l}\}
{hvn,l},以及所有边
(
u
,
v
)
∈
E
(u,v)\in E
(u,v)∈E的latent embedding
{
h
u
v
n
,
l
}
\{h_{u v}^{n,l}\}
{huvn,l},消息传递可以被表示为:
h
v
n
,
l
+
1
=
G
R
U
n
,
l
(
h
v
n
,
l
,
m
n
,
l
(
v
)
)
h_v^{n,l+1}=GRU^{n,l}(h_v^{n,l},m^{n,l}(v))
hvn,l+1=GRUn,l(hvn,l,mn,l(v))
h u v e , l + 1 = G R U e , l ( h u v e , l , m e , l ( v ) ) h_{uv}^{e,l+1}=GRU^{e,l}(h_{uv}^{e,l},m^{e,l}(v)) huve,l+1=GRUe,l(huve,l,me,l(v))
其中 m e , l ( v ) m^{e,l}(v) me,l(v)和 m n , l ( v ) m^{n,l}(v) mn,l(v)表示第 l l l层的神经网络输入 x t x_t xt。
然后使用GRU(门控循环单元)来更新隐藏状态h。
重置门 r t r_t rt 更新们 z t z_t zt
值得注意的是,一个节点可以是关系三元组中的主语和宾语,因此本模型同时考虑其作为主体以及客体下的情况,因此可以被分为 m s , l ( v ) m^{s,l}(v) ms,l(v)和 m o , l ( v ) m^{o,l}(v) mo,l(v)
其中 ϕ p \phi_p ϕp、 ϕ o \phi_o ϕo和 ϕ s \phi_s ϕs分别表示对subject、predicate和object的非线性变换。同时为了稳定循环机制中的数值计算,采用Layer Normalization。最终节点 v v v的特征表示为 m s , l ( v ) m^{s,l}(v) ms,l(v)和 m o , l ( v ) m^{o,l}(v) mo,l(v)的平均
其中|.|表示集合中的数量, R v s R_v^s Rvs和 R v o R_v^o Rvo表示结点分别作为subject和object的结点集合。边(u,v)信息的计算可以表示为
最后,因为我们学习到了物体的latent embedding和predicate的meta-embedding,所以Loss可以被定义成尽可能缩小相关的物体和predicate中的latent embedding和meta-embedding之间的距离。
meta-embedding在文中没有具体给出计算方法(Knowledge Update过程不清楚),猜测使用的NLP中meta-embedding计算方式。
meta-embedding只有在遇到相关类别时才会被更新(个人认为这是GRU的特性),这一特性使得meta-embedding有资格成为甚至是不太频繁的类别的原型表示。最后两个MLP预测one-hot标签,以让latent embedding与类别相关,并构成自动编码器结构。
Knowledge-inspired Scene Graph Prediction Model
**input:**包含instance掩码的点云
同时编码点云物体和点云物体对的几何特征
Multi-Scale PointNet是在PointNet的基础上增强了原始结构以捕获多尺度的几何信息,文中没有提及具体的实现方式
对于物体对,首先独立编码subject和object点,然后将latent character与两个点集的中心坐标拼接起来。为了更好的编码坐标关系,我们在这两个特征上采用anti-symmetric操作,最后经过两层MLP的转换,我们获得来自物体对的初始edge-embedding。
我们在meta-embedding学习阶段采用了相同的图神经网络设计,用知觉信息捕捉全局背景。
在第一次迭代中,图神经网络只将MS PointNet的几何特征作为输入。最后两个MLP输出节点和边缘分类的可能性,并提供选择相关类别的meta-embedding向量的线索(选择融合哪些meta-embedding)。我们为每一个节点和边选择五个最可能的meta-embedding然后将它们与感知特征相融合。
实验表明,被选择的大量的embedding不可避免的提供错误的知识,同时一小部分meta-embedding集合可能没有包含正确的知识。因此在实际运用中选择五个meta-embedding作为折中。
在第二次迭代中,因为知觉嵌入和知识是在不同的潜在空间中,因此我们分别使用两个前馈神经网络来融合它们(Add & Norm)。在实践中,考虑到时间的消耗,我们只实施了两次迭代,因为更多的迭代并不能显著提高分类性能。
x x x表示的是MS PointNet的输出, e m e t a i e^i_{meta} emetai表示的是meta-embedding, ψ ( ) \psi() ψ()表示一个两层的MLP
Loss Function Design
Focal Loss
其中 p p p是预测的object或predicate的, α \alpha α是用于对象分类的归一化反频率(频率的倒数)或者用于predicate的有边/无边权重, γ \gamma γ是一个超参数
focal loss对于分类不准确的样本,损失没有改变,对于分类准确的样本,损失会变小。 整体而言,相当于增加了分类不准确样本在损失函数中的权重。
为了让meta-embedding在计量空间中靠近class latent vectors,我们采用了graph encoder和相关的meta-embedding的欧式距离作为损失。
其中 e m e t a v e_{meta}^v emetav和 e m e t a e e_{meta}^e emetae表示相关类别的meta-embedding。在meta-embedding的学习任务中,我们把loss定义成:
在场景图预测任务中(第二个任务)我们使用
其中 λ \lambda λ为超参数
Experiment
Task
- scene graph classification (SGCls) :同时预测object和predicate的语义类别
- predicate classification (PredCls):object类别给定,预测predicate类别
Dataset
3DSSG
Result
这两大块的区别是有无图约束。其中KERN是2D场景图分割的算法,这里直接讲一开始的PointNet换成了Fast-RCNN来实现其在3D场景图的运用。
百分比表示有多少的训练数据有Meta-embedding的介入。
Conclusion
Limitation
- 我们的多尺度点集编码器在遇到严重的不完整性时,可能无法预测出有把握的初始类别。不准确的对象定义会影响predicate的预测。
- 我们的知识干预不能帮助预测最频繁的语义类别,因为所选择的知识对这些类别的推断可能是噪音。