Graph RCNN解读

版权声明:本文为博主原创文章,如若转载,请注明出处! https://blog.csdn.net/u013010889/article/details/83340944

这个十月一堆事,心情也比较烦闷,就一直没有动笔写blog,之前一直在做scene graph的生成,然后最近恰好看到graph-rcnn这篇很不错的文章,就解读做个记录

Framework

以往做scene graph generation,基本都是在faster rcnn基础上检测出图片的物体后,两两配对识别他们的关系,这样做是很有效但是很低效,毕竟并不是所有物体都有关系的,这样做太耗时间了。本文的框架分为3个步骤

  1. object node extraction 利用faster rcnn进行物体检测
  2. relationship edge pruning 利用RePN去除掉不太可能出现的关系对
  3. graph context integration 利用Attentional GCNS对相关节点和边进行context集成

在这里插入图片描述

RePN(Relation Proposal Network)

经过faster rcnn后我们得到n个物体,照以往的做法这时候需要预测n*(n-1)个relation,但是并不是所有的物体两两之间都有关系的,比如人和马的关系是骑,而大象和马的关系就很有可能不存在了。这个时候我们需要对这些不太可能存在联系的关系对进行过滤。简单的做法就是将每对物体的分类向量cat起来,然后接一个全连接层得到一个relateness,但是这样的效率太低了。
本文的做法是对主语宾语的分类向量进行映射,然后relateness矩阵就由矩阵乘法直接得到了。
在这里插入图片描述

得到关联度矩阵后,我们对Relation Proposal进行NMS操作,IoU的计算公式如下:其中(u,v)和(p,q)是两个关系对
在这里插入图片描述

Attentional GCN

由上一步RePN的过滤后,一个全连接的图变成了一个十分稀疏的图,这时图中有边相连的点才是真正的有关系,回想之前讲过的daijifeng老师的Relation Network for Object Detection,我们是不是可以对每个节点每个边进行context集成呢?
本文采用GCN(Graph Convolutional Network)集成context信息,而且在这个基础上加入了Attention。传统的GCN中alpha是预设好的,而本文的alpha是动态的
在这里插入图片描述
在这里插入图片描述

有了以上基本公式后,我们可以集成context信息到物体和关系中了
物体的context: 其他物体,它作为主语的relation,它作为宾语的relation
关系的context: 主语物体,宾语物体
在这里插入图片描述

A new metric called SGGen+

在这里插入图片描述

之前的指标SGGen中(仅考虑boy),c把所有的关系都识别错了 SGGen=0, 而d只是把boy识别成了man(不是严重错误),关系全对了 SGGen得分一样是0,所以本文作者感觉这个指标没有区分度,提出了一个新的指标SGGen+,如下C(O)是物体识别正确的个数,C§是谓词识别正确的个数,C(T)是Triple识别正确的个数,这样c和d的得分就不同了

在这里插入图片描述

Experiment

没有和neural motif进行比较,motif里面trick太多分数做的太高了。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u013010889/article/details/83340944