Scene Graph Generation by Iterative Message Passing解读
lifeifei老师团队在发布了Visual Genome数据集后,又在Scene Graph Generation做的新的创新
关于Scene Graph Generation就不再赘述,在上一篇neural motif介绍过,neural motif比这篇晚一些,效果也好一些
Image to Scene Graph现状
- Lu et al: Visual Relationship Detection with Language Priors
- Xu et al: Scene Graph Generation by Iterative Message Passing
- Newell et al: Pixels to Graphs by Associative Embedding
- 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就是算权重,类似attentionedge_ctx = self._compute_edge_context(vert_factor, edge_factor, reuse=reuse)edge_factor = self._edge_rnn_forward(edge_ctx, reuse=True)# compute vert statesvert_ctx = self._compute_vert_context(edge_factor, vert_factor, reuse=reuse)vert_factor = self._vert_rnn_forward(vert_ctx, reuse=True)vert_in = vert_factoredge_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要很多
- [论文笔记] Scene Graph Generation by Iterative Message Passing
Scene Graph Generation by Iterative Message Passing解读相关推荐
- [Scene Graph] Neural Motifs: Scene Graph Parsing with Global Context 论文解读
[Scene Graph] Neural Motifs: Scene Graph Parsing with Global Context (CVPR 2018) 论文解读 简介 这篇文章工作的创新之处 ...
- 论文阅读笔记-场景图谱-图谱生成:Scene Graph Generation from Objects, Phrases and Region Captions
文章目录 摘要 引言 正文部分 Conclusionn Li Y, Ouyang W, Zhou B等. Scene Graph Generation from Objects, Phrases an ...
- Learning Visual Commonsense for Robust Scene Graph Generation论文笔记
原论文地址:https://link.springer.com/content/pdf/10.1007/978-3-030-58592-1_38.pdf 目录 总体结构: 感知模型GLAT: 融合感知 ...
- 论文Spatial-Temporal Transformer for Dynamic Scene Graph Generation
最近由于要做SGG方向,恰巧之前保存过这篇论文 2107.12309.pdf (arxiv.org)https://arxiv.org/pdf/2107.12309.pdf 代码地址: GitHub ...
- 论文阅读:Target Adaptive Context Aggregation for Video Scene Graph Generation
Target Adaptive Context Aggregation for Video Scene Graph Generation 视频场景图中的目标自适应上下文聚合 论文地址:https:// ...
- 场景图生成论文阅读笔记 之 Graph R-CNN for Scene Graph Generation
2018 ECCV <Graph R-CNN for Scene Graph Generation> 比较早使用图网络进行场景图生成的论文,对后续工作具有一定的启发性,在这做一记录 文章目 ...
- 【场景图生成】Unbiased Scene Graph Generation from Biased Training
文章下载地址:https://arxiv.org/pdf/2002.11949.pdf 代码地址:GitHub - KaihuaTang/Scene-Graph-Benchmark.pytorch 发 ...
- Stacked Hybrid-Attention and Group Collaborative Learning for Unbiased Scene Graph Generation
现有的SGG方法面临的另一个突出问题是由于长尾数据分布导致的关系预测有偏差.由于只有少数头部谓词(如on,has)拥有大量的.多种多样的实例,它们在训练过程中占据主导地位,输出的场景图中含有少量信息量 ...
- 论文阅读:Probabilistic Modeling of Semantic Ambiguity for Scene Graph Generation(CVPR21)
传统的判别模型(针对predicate种类)如c所示,对于同一对物体总是倾向于产生相同的predicate.但是视觉关系往往是语义模糊的 ,比如: (1)person-holding-umbrella ...
- 论文阅读:Sketching Image Gist:Human-Mimetic Hierarchical Scene Graph Generation(ECCV20)
这篇文章的重点有三个,都在框架里有体现:HET.Hybrid-LSTM和Relation Ranking Module 1.HET(Hierarchical Entity Tree) 论文作者认为人在 ...
最新文章
- Swagger3.0 天天刷屏,真的香吗?
- 主键策略UUID升级
- C++11 (多线程)并发编程总结
- 用NFS挂载root出现:NFS: failed to create MNT RPC client, status=-101(-110)
- Dalvik/ART(ANDROID)中的多线程机制(1)
- chrome调试、移动端调试
- 机器学习--Lasso回归(LassoRegression)
- 滴滴人脸识别申诉照片怎么拍_涅槃乐队Nevermind封面照片是怎么拍出来的?
- 初始JAVA--约定俗成的命名规则
- 腾讯云服务器配置ftp~
- 在https上面使用ws不加密_ASP.NET Core 3.1 中使用JWT认证
- [NOI导刊2010提高]黑匣子
- Day 6 函数与模块
- 数学建模经验分享及比赛时间汇总
- coreldraw怎么画转弯箭头_新交规出炉,这样转弯会被扣8分罚款300,又有7.3万车主因此被罚!...
- 5步完成物联网小程序开发
- python实现有趣的数学逻辑程序
- php java扩展模块_php扩展模块装安装
- 秋意浓(2018.9.28)
- CRM项目第一天(2021-12-16)1