Scene Graph Generation by Iterative Message Passing解读

lifeifei老师团队在发布了Visual Genome数据集后,又在Scene Graph Generation做的新的创新

关于Scene Graph Generation就不再赘述,在上一篇neural motif介绍过,neural motif比这篇晚一些,效果也好一些

Image to Scene Graph现状

这里写图片描述

  1. Lu et al: Visual Relationship Detection with Language Priors
  2. Xu et al: Scene Graph Generation by Iterative Message Passing
  3. Newell et al: Pixels to Graphs by Associative Embedding
  4. Zellers et al: Neural Motifs: Scene Graph Parsing with Global Context

图片来源于CVPR2018 Visual Recognition and Beyond Scene Graphs for Recognition and Generation - Justin Johnson

框架

这里写图片描述

因为Scene Graph本身就已经不是单独地去识别物体,本文想通过message passing 更好地利用上下文来预测物体和它们之间的关系
(a)
edge feature: 主语和宾语box的并集组成rel-rois,去特征图上扣
node feature: 检测出的所有rois,去特征图上扣
然后把edge feature(#num_rels, feature_dim)和node feature(#num_rois, feature_dim)送入GRU得到初步融合了一些context的edge feature(#num_rels, hidden_dim)和node feature(#num_rois, hidden_dim)
(b)
核心的message passing过程
本文观察到由于scene graph独特的结构使得消息传递是二分的结构,node集合和edge集合是没有交流的,而且由于它特殊的结构,我们还不用使用全连接,不用使node去和edge集合每个元素相连,反之edge也不用和node集合每个元素相连,那么怎么办呢?

我们注意到edge其实就是relation,只需要把主语node特征和宾语node特征连过来,再和自身的hidden state进行融合,而node其实就是物体,我们只要把和该物体有关的edge/relation连过来,包括inbound(入界,即作为宾语的edge特征)和outbound(出界,即作为主语的edge特征),然后再和自身的hidden state进行融合

# vertext: 点 (#num_rois, feature_dim)
vert_unary = self.get_output('vert_unary')
# edge: 边 (#num_rels, feature_dim)
edge_unary = self.get_output('edge_unary')
# (#num_rois, hidder_dim)
vert_factor = self._vert_rnn_forward(vert_unary, reuse=False)
# (#num_rels, hidder_dim)
edge_factor = self._edge_rnn_forward(edge_unary, reuse=False)

for i in xrange(self.n_iter):
    reuse = i > 0
    # compute edge states  edge状态融合
    # 或用hard就是直接取max或者mean
    # 或用soft就是算权重,类似attention
    edge_ctx = self._compute_edge_context(vert_factor, edge_factor, reuse=reuse)
    edge_factor = self._edge_rnn_forward(edge_ctx, reuse=True)

    # compute vert states
    vert_ctx = self._compute_vert_context(edge_factor, vert_factor, reuse=reuse)
    vert_factor = self._vert_rnn_forward(vert_ctx, reuse=True)
    vert_in = vert_factor
    edge_in = edge_factor

adaptively weighted message pooling functions即soft更新
mi是node的更新,mij是edge的更新,v1,v1,w1,w2是可学习的参数,它们是融合的权重。
这里写图片描述
将上述公式与下式对比,可以看到用了类似于concat attention的机制
这里写图片描述
(c)(d)
迭代message passing过程,最后输出物体和关系

评价指标和实验

  • predicate classification (PREDCLS): given a ground truth set of boxes and labels, predict edge labels,
  • scene graph classification (SGCLS): given ground truth boxes, predict box labels and edge label
  • scene graph detection(SGDET): predict boxes, box labels, and edge labels.

这里写图片描述

baseline就是0次迭代,只有(a)(d)两步,没有message passing
可以看到随着迭代次数的增加,predcls在增加,而且本文提出的动态权重调整的融合策略比两个naive的融合如avg/max要很多


  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 场景图生成是指将图像或视频中的物体和场景转化为一种图形结构,以便计算机能够理解和处理。这种技术可以用于计算机视觉、机器人、虚拟现实等领域。场景图生成的过程包括物体检测、物体识别、物体关系建模等步骤,最终生成一张包含物体和它们之间关系的图形结构。 ### 回答2: Scene graph generation(场景图生成)是一种计算机视觉技术。它的目的是将图像中的对象及其关系转化成为一种语义结构、层次图或图表,以便计算机更好地理解图像内容。这种技术是自动化场景理解的基础。在深度学习领域,基于神经网络的场景图生成技术由于其高度的可解释性已经成为了研究的热点。 场景图是一种形式化的描述图像语义的方法,通过将图像中的各种元素(物体、人、颜色、位置、关系等)组织成一种树形结构,来表示图像中物体的属性、关系和语义信息。它不仅可以支持对特定物体的检测和识别,还可以将物体之间的关系进行建模。这种方法可以被用于图像检索、目标跟踪、可视化以及更高级别的任务,如图像问答和基于图像的推理。 生成 scene graph 的技术可以分为两种:基于目标检测的方法和基于全局信息的方法。基于目标检测的方法是利用物体检测器来先分别找到物体,再整合场景图;而基于全局信息的方法是直接提取图像中物体和它们之间的关系的特征,为每个对象生成一个向量,然后用这些向量生成场景图。这两种方法各有优缺点,实际应用中需要根据实际情况来选择。 总之,场景图生成技术是计算机视觉领域的热门研究方向,它在图像理解、人机交互、自动驾驶、机器人等领域都有着广泛的应用价值。 ### 回答3: 场景图(Scene Graph)是指一种数据结构,它描述了场景中的物体、他们的关系、以及物体之间的作用。而场景图生成(Scene Graph Generation)是指将图像或视频中的内容转换为类似场景图的结构的任务。场景图生成通常涉及物体检测、实例分割、语义分割等计算机视觉任务。 场景图生成有着广泛的应用,例如图像描述生成、视觉问答、图像修复、物体识别、目标跟踪等任务。场景图还可以被用于智能辅助驾驶系统、机器人视觉导航和处理3D模型等领域。 实现场景图生成的方法有许多,其中主要包括基于模板的方法、基于神经网络的方法以及基于图像和视频分析的方法。在基于模板的方法中,人们会根据已有的场景图模板来填充场景中的物体和关系。在基于神经网络的方法中,人们会使用深度学习模型来自动地检测和分割图像或视频中的物体,并从中提取出物体之间的关系。而基于图像和视频分析的方法,则通过对图像或视频进行语义分析、物体检测以及图像分割,提取出场景中的各个元素,进而生成场景图。 然而,场景图生成仍然是一个非常挑战的任务,存在许多问题需要被解决。例如,如何处理多个物体之间的复杂关系、如何消除物体之间的干扰、如何处理图像中遮挡的问题等等。因此,对于场景图生成,仍然存在大量的研究的空间和需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值