faster rcnn论文_Scene Graph Generation领域近年论文分析

2023-05-16

【Scene Graph and Visual Relationship论文总结】

-------------------------- 2019.4.4 更新 -----------------------------

2019_CVPR. Learning to Compose Dynamic Tree Structures for Visual Contexts

无耻的推荐下自己今年CVPR的文章把,其实performance不算高。主要是用了个动态的树结构+TreeLSTM 来给每个bounding box encode一下context信息。另外因为现在scene graph完全都是被大样本的类别主导(e.g. on, has, wearing,....),基本上只要预测对最高频的几个relationship类performance就很高,而完全不考虑低频类,所以我提出了个Mean Recall@K的metric,其实就是对50个relationship的类分别算Recall@K 然后求平均, 这样就可以看出模型学习小样本的能力,而我提出的VCTree可以大大提高学习小样本的能力(可见下图和Motif的对比)。我个人认为原因有二 (1)VCTree给每个bounding box encode了更相关的环境信息(而不是Motif的无脑BiLSTM),所以可以预测更复杂的relation,比如'covered in’(2) 我们的树结构,在training过程中一直在微调,这可以看成是网络结构(Tree LSTM结构)一直在微调,所以不容易轻易的过拟合。

关于详细的Mean Recall@K 分析可以参考我的Supplementary Material

具体的code可以参考我放出的代码,RL部分我做的不是太好,有兴趣的人可以优化下:

KaihuaTang/VCTree-Scene-Graph-Generation​github.com

------------------------- 下面为之前的原文 -------------------------------------------------

因为最近开始接触这方面的研究,所以写下这个笔记为之后自己查阅和给他人参考提供便利。如果有对论文理解有问题的地方,欢迎指正。同时也会记录了一些或许可行的想法(多半是没有太大前途的,有前途的就自己发论文了)。也欢迎大家一起交流。

2016_ECCV. (Recommend) Visual Relationship Detection with Language Priors:

Pros: 在视觉模型的基础上加上从语言模型中获取的概率分布作为额外的监督。大多数方法可以用这个方式做后期提升。

Cons: 本质并没有提升视觉模块部分

2017_CVPR. (Recommend) Scene Graph Generation by Iterative Message Passing:

Pros: Faster-RNN提取object/Relationship feature的基础上,用Message Passing迭代,通过相邻的节点或边对目标节点或边进行约束,从而对这些特征进行提升。

Cons: Relationship feature提取方式过于原始(个人认为, 另一篇论文的提取方式就更加有说服力:Detecting Visual Relationship with Deep Relationship Networks)。

同时随着迭代效果下降的现象可以试试Attention model,或者在iterative message中引入残差的概念(下一篇中用了但是为什么没有用)。

2017_CVPR. (Recommend) Scene Graph Generation from Objects, Phrases and Region Captions

Pros: 和Visual Relationship Detection with Language Priors有异曲同工之妙,通过对三种任务进行联合训练,提供额外信息。

Cons: 同样是一篇胜在想法的文章

2017_CVPR. (Highly Recommend) Detecting Visual Relationship with Deep Relational Networks

Pros: 关于predicate的特征,并非只提取了一个region的特征,而是混合了的object和subject的空间信息(个人觉得目前看起来最靠谱)。利用一个类似条件随机场的DR-Net进行统计关系上的迭代优化,没有iterative message passing直观,但是似乎没有退化问题。

Cons: 目前来说,是在Region - Feature - Iterative Finetune框架下最符合我口味的一篇文章,几乎没看到明显问题,解决的了这类框架下比较明显的两个问题:(1)phrase特征提取太笼统,(2)在迭代优化中随迭代次数的退化问题。

2017_CVPR. Visual Translation Embedding Network for Visual Relation Detection:

Pros: 使用自然语言处理中的状态转移观念解读Visual Relation,非常有想象力的一个出发点。主语特征 - 宾语特征 ~~ Relationship

Cons: 低估了Visual Relationship的复杂度,另外不同于自然语言中的状态转换,Visual Relationship并不适合用状态转移,举例next to的subject和object几乎不存在任何特征上的联系。

2017_CVPR. ViP-CNN: Visual Phrase Guided Convolutional Neural Network

Pros: 实现了在Conv层的Message Passing,基本是个end-to-end

Cons: 除此之外并无太大亮点,相比于其他Message Passing,其机制也更为Naive

2017_CVPR. Deep Variation-structured Reinforcement Learning for Visual Relationship and Attribute Detection

Pros: 看到的第一个使用强化学习来做这方面研究的论文。且创新的使用很多数据构建了一个全局的语意图,这个很有意思。构建单张图片的Scene Graph其实是在一堆nodes中检索出一个sub-graph。做每一步的跳转决策时,同时检索中记录历史路径信息,而且陷入局部子图时也有跳出机制,具体细节参考论文。

Cons: 1. 构建语义图时只使用了常见关系和物体。2. 感觉很花哨但不落地,暂时看不到进一步研究的价值。

2018_CVPR. Neural Motifs: Scene Graph Parsing with Global Context

Pros: 对数据库中物体和关系的类别做了统计分析。发现relationship高度依赖subject和object的种类。个人对motif的理解:重复且相似的子结构(语义上)。然后用两个BiLSTM去Encode和Decode, 算是在特征提取上和别人不一样吧。

Cons: 挂arXiv上的文章,好像投CVPR 2018被拒了?实验细节还没有看,以后补。

2017_NIPS. Pixels to Graphs by Associative Embedding

Pros: 唯一一篇不基于Faster-RCNN的文章。而是引入了associative embedding的想法。这个设计最初是用在人的姿态识别上的,因为需要判断识别出来的每个肢体是否属于同一个人,所以需要embedding一个类似ID的东西,相似的ID就代表来自同一个人。本文利用这种思想实现objects & relationship的检测(每个像素都检测),object像素会生成一个ID判断来自哪个个体,relationship像素输出两个ID分别表示连接的两个物体。

Cons: 算是将一个其他领域的概念第一次引入这个领域,整个框架略显简陋。是否值得进一步更近值得商榷。

【Conclusion】

总的来说这两年主流框架是,Faster-RCNN + Region Feature + Iterative Feature Finetune。其他有趣的想法包括(1)用自然语言处理中的Embedded Vector迁移表示Relationship。(2)用强化学习实现从一个总的结构图中提取子图表示图片。(3)引入Human Pose Estimation中的associative embedding。

----------------------------------------持续更新----------------------------------------

【Idea】

1. 因为Scene Graph Generation by Iterative Message Passing有明显的随迭代次数退化问题,中加入Attention机制(应该有些许改进,但估计不会大)

2. 同理,按说在上文的迭代中加入Residual应该也可以解决退化的问题,但是为什么Scene Graph Generation from Objects, Phrases and Region Captions加了但没有用

------------------------- 2018.09.06 更新 ---------------------------

从今年三月开始,做到现在。正好ECCV也结束了,更新下论文吧。

【State-Of-The-Art】: 2018_CVPR.Neural Motifs : Scene Graph Parsing with Global Context

之前分析的时候低估了这篇文章的结果,这篇文章截止目前为止当之无愧的State-Of-The-Art。不过认真看过这篇文章的人大概也能发现了,这篇文章含蓄的指出了,当前基于Visual Genome数据集下作出的Scene Graph或者Visual Relationship Detection,其实说白了都是学习的数据集的bias,并没有真正学习到relationship。

如果有人打算现在开始做Scene Graph,最好的选择是从Motif的代码开始改进。

2018_ECCV. Graph R-CNN for Scene Graph Generation

本质还是message passing,其实graph cnn和message passing本来就是同一个东西。这篇文章只是加入了个小trick,把前人的dense graph(n*n) message passing变成sparse graph message passing。提了个新指标,但比较粗糙,而且举的例子有误导的嫌疑。如果核心object的分类有明显的错误,比如直接从human错分为bicycle,那么确实应该把所有他的relation都看成错的。

2018_ECCV. Factorizable Net : An Efficient Subgraph-based

和上文Graph R-CNN的核心想法很像。都是发现了原先的Message Passing是用的Dense Connect(n*n),这样做肯定是不好的。上文改成稀疏的,这篇文章把一些node整合成subgraph看成一个node。

------------------------- 2018.09.24 更新 ---------------------------

2018_NIPS. Mapping Images to Scene Graphs with Permutation-Invariant Structured Prediction

这篇哥们的文章都中NIPS我也是醉了,以下分析纯粹是出于自己没有中过NIPS的愤慨。(1)效果都没有完全超过motif就自称state-of-the-art。(2)sgdet实验直接没有做。(3)行的吧,NIPS主要搞理论,我们来看他自称if and only if的证明。充分性是没问题的,必要性就感觉证明的不是那么靠谱了,公式(1)中右半边个人感觉缺了一项的,补齐了才能证明必要性。这里就不赘述了。。。反正很感慨,这都中了,哎。

-------------------------- 2018.12.10 更新 -----------------------------

2018_NIPS. LinkNet: Relational Embedding for Scene Graph

新state-of-the-art,个人感觉和别的方法相比,最大的不同处在于给每个object的feature都并入一个global context feature。别的替换掉bilstm什么的,感觉没啥创新。不过我同学联系了原文作者,对方表示因为公司规定无法开源,所以一些具体的(炼丹)细节就不得而知了。

-------------------- The End -----------------------------

最后推荐大家一个更全的文章整理吧:PIC - Person In Context ,这个网上实时更新各种relationship的文章,还有他们的paper/code链接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

faster rcnn论文_Scene Graph Generation领域近年论文分析 的相关文章

  • 时间轴上刻度子集的日期格式

    Problem 我想格式化我的 X 轴 时间 以便周末清晰可见 我想显示日期以及星期几 现在的情况 我用 下面的完整代码 来做到这一点 scale x date breaks myData timestamp labels paste su
  • 给定源顶点,查找有向图中具有环路的所有路径

    我无法解决这个问题 我必须找到所有simple从源顶点开始的路径s含有一个simple有向图中的循环 即不允许重复 当然除了循环在路径上连接回的单个重复顶点 我知道如何使用 DFS 访问来查找图形是否有循环 但我找不到一种方法来使用它来查找
  • 如何将自定义图形适合boost图形库模板?

    我对 C 模板很生疏 而且我正在使用 boost 图形库 一个致命的组合 我在网上搜索过 但找不到任何关于如何采用自定义图形结构并将其足够适合 BGL 增强图形库 的直接说明 以便我可以使用增强图形遍历算法 有熟悉图书馆的人可以帮助我吗 编
  • 键入lattice命令后图形不显示

    我安装了这个包lattice 并输入xyplot 没有错误消息 但也没有显示图表 我尝试切换到plot 而且效果很好 知道为什么会这样吗 谢谢你 尝试这个 require lattice require stats Depth lt equ
  • 从绘图中删除线

    只是一个简单的问题 我正在尝试在 R 中绘制图表 并且我已经介绍了如何做到这一点 但是如何删除刚刚创建的线 例如 x lt c 1 2 4 5 6 7 7 8 10 y lt c 40 30 10 20 53 20 10 5 plot x
  • 如何将共现矩阵转换为 networkx 图

    我正在使用以下代码将列表列表转换为共现矩阵 lst a b b c d e a d b e u pd get dummies pd DataFrame lst prefix prefix sep groupby level 0 axis 1
  • 为什么使用 Dijkstra 算法而不是最佳(最便宜)优先搜索?

    从我到目前为止所读到的来看 这最佳优先搜索 https en wikipedia org wiki Best first search在找到到达目标的最短路径方面似乎更快 因为 Dijkstra 算法在遍历图时必须放松所有节点 是什么让 D
  • JavaFX 中的隐形舞台/场景

    我正在寻找一种隐藏 JavaFX 舞台或场景的方法 现在我知道了 hide 但这行不通 我需要一些仍然保留窗口的东西 但只是使其完全透明 一个很好的比喻是display none and visibility hidden在CSS中 第一个
  • 在 python matplotlib 中格式化损坏的 y 轴

    我正在 matplotlib 中处理一个 相当复杂的 条形图 它包含来自多个源的摘要数据 每个源都沿 x 轴标记 y 轴上有一系列结果 许多结果都是异常值 我尝试使用断开的 y 轴来显示这些结果 而不会使用以下组合来扭曲整个图表这个方法 h
  • ZedGraph 垂直线与 LineObj 问题

    我有一个 ZedGraphControl 里面有几条曲线 我想在一些固定的 x 位置添加垂直线 当然 这些线只能位于实际图形区域内 我尝试以下 LineObj line new LineObj Color Black xPos myPane
  • Gremlin 按顶点属性分组并获取同一顶点中其他属性的总和

    我们有顶点来存储各种作业及其类型 并算作属性 我必须按状态和数量进行分组 我尝试了以下查询 该查询适用于一个属性 receiveCount g V hasLabel Jobs has Type within A B C group by T
  • Visual Studio 项目的依赖关系图

    我目前正在将一个大型解决方案 约 70 个项目 从 VS 2005 NET 2 0 迁移到 VS 2008 NET 3 5 目前我有 VS 2008 NET 2 0 问题是我需要将项目一一移动到新的 NET 框架 确保没有 NET 2 0
  • Bellman-Ford 算法检测什么?负重还是负循环?

    如果给定一个图 现在我们要从源头计算最短路径 现在 如果一条边具有负权重 但在到达目的地时有边到后边返回到该边 我的意思是如果没有循环 那么我们就没有负循环 但是here http en wikipedia org wiki Bellman
  • 在无向图中查找强连通分量

    我想在无向图中找到强连接的组件 即如果我从节点开始A然后我会回到节点A并且每条边都被恰好访问一次 对于有向图可以使用Tarjan算法来寻找强连通分量 但是对于无向图怎么办 我认为您错过了强连通分量的含义 强连接组件 如果所有顶点对之间都存在
  • 使用 d3 进行多级/分组轴标签

    我想知道是否有一种简单的方法可以在 d3 中添加多级 分层 分组轴标签 例如 如果我有一个折线图 其中 x 轴的月份名称跨越多年 那么我还希望将年份作为月份名称下方的标签 因此它看起来像这样 Oct Nov Dec Jan Feb Mar
  • 如何从该 Voronoi 图数据中获取单元格字典?

    使用找到的voronoi delaunay图生成库在这个节目中 http sourceforge net projects mapmanager 这是基于 财富 最初的实施他的算法 http en wikipedia org wiki Fo
  • 图中的后边

    I m having a hard time understanding Tarjan s algorithm for articulation points I m currently following this tutorial he
  • Flash 图表和图形的最佳解决方案是什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道融合图表 http www fusioncharts com 还有其他好的解决方案或 API 用
  • 用表达式分割轴标签

    我有一个带有包含表达式的长标签的图 我想将其分成两行 在表达式中添加 n 结果不符合预期 ylabel lt expression A very long label with text and n expression alpha bet
  • 更改 3D 图形颜色 (matplotlib)

    我使用以下代码在 matplotlib 中绘制了 3D 图形 Previously defines lists of data to plot fig plt figure ax fig add subplot 111 projection

随机推荐