Relation Networks for Object Detection解读

论文连接
代码地址
首先介绍一下这项工作的难点:

  1. obiect-to-object关系的建模很困难,因为对象的位置,尺度,类别,数量可能会随着不同的图像变化而变化。
  2. 深层的卷积神经网络通过大的接受域隐式地合并了上下文信息。

本项工作的贡献:

  1. 提出了一种relation module,在检测的过程中通过利用图像中object之前的相互关系或者图像内容(context)来优化检测效果,同时它不改变特征的维度,能很好的嵌入目前的各种的检测框架,进而提高检测的性能。
  2. 将attention机制引入了NMS操作当中,即提出了一种特别的代替NMS的去重模块,可以避免NMS需要手动设置参数的问题。进而实现了真正意义上的end-to-end 训练。
    产生了第一个真正意义上的end-to-end detector。
1、Background

 我们首先假设一个问题,给出一个显示器,我们如何去进行判断它是电脑显示器还是电视显示器呢?用我们的检测的方法好像很难去进行判断,但是我们如果能够结合周围的一些信息,可能就会很容易的进行区分,比如说,放在客厅里的显示器就是电视,在检测到显示器的同时,检测到了鼠标和键盘,那么它就是笔记本的显示器。总之,周边其他物体的信息很可能对某个物体的分类定位有着帮助作用,这个作用在目前的使用RoI的网络中是体现不出来的,因为在第二阶段往往就把感兴趣的区域取出来单独进行分类定位了。这篇文章作者就考虑改良这个情况,来引入关联性信息。让我们带着问题一起来看看吧。
 我们先来看一个实际的例子,蓝色的框代表检测到的物体,黄色的框代表对该次检测有帮助的联合信息。
在这里插入图片描述

2、Object Relation Module

 首先说明的是,这篇文章的主要是基于Faster RCNN系列算法的(Faster RCNN,FPN等)引入Object Relation Module。
 接下来我们看一下这个module,这篇文章是借鉴了Google 2017发表的《Attention Is All You Need》,没有详细的了解过NLP中的这种思想,只是简单的看了一下相关的解读,以及论文中提到的一些东西。
 个人认为这个模块的特点就是联合所有的Object的信息来提升每一个object recognition的准确性。模块的示意图如下:
在这里插入图片描述
详细的介绍一下上图(左侧),先说明几个符号的含义。
1、 f A n f_A^n fAn代表第n个物体的apperance特征,就是物体的大小、形状、颜色等这些外观特征。
2、 f G n f_G^n fGn对应的是第n个物体的geometry特征,代表物体的位置和大小(bounding box)。
3、这个的relation模块(数量 N r N_r Nr),我们可以类比成神经网络中每一层都有很多的通道,以便于学习不同种类的特征。
每一个relation模块都用所有object的两个特征做输入。得到不同的relation特征后再concat,并且和原来的特征信息融合,作为物体最终的特征。
对于上图右边的部分,我们首先看公式:
在这里插入图片描述
右图符号含义:
4、 f R ( n ) f_R(n) fR(n) 是第n个relation模块的输出,它是由各个所有物体的apperance特征经过 W v W_v Wv的维数变化后,又赋予不同的权重叠加得到的.
5、 W v W_v Wv是一个线性变换操作, W G W_G WG代表object的位置特征权重,
f R ( n ) f_R(n) fR(n)是由各个所有物体的apperance特征经过 W v W_v Wv的维数变化后,又赋予不同的权重叠加得到的……位置特征是体现在权重里的(这也就是为什么在上式中输入仅仅只有 f A m f_A^m fAm一个的原因),第m个物体对于当前第n个物体的权重 ω m n \omega^{mn} ωmn的求法如下:
在这里插入图片描述
上式的分母是个归一化的项,重点来看一下分子的含义,它是由两部分决定的,第一个是第m个物体对于当前第n个物体在geometry上的权重 ω G m n \omega_G^{mn} ωGmn 和在apperance上的权重 ω A m n \omega_A^{mn} ωAmn ,它们各自的求法如下:
在这里插入图片描述
在这里插入图片描述
这里的 W G , W K , W Q W_G,W_K,W_Q WG,WK,WQ都跟 W V W_V WV类似,起到的是一个维数变化的效果,dot代表点乘, d k d_k dk是点乘后的维数;
对于上式,首先对 f G f_G fG做了坐标上的变换,主要进行尺度归一化和log操作,可以增加尺度不变性,不至于因为数值变化范围过大引起训练的发散。可以看出坐标变换公式和目标检测算法中的回归目标构造非常相似,最大的不同点在于对x和y做了log操作,原因在于这里要处理的 x m x_m xm x n x_n xn y m y_m ym y n y_n yn之间的距离要比目标检测算法中的距离远,因为目标检测算法中的距离是预测框和roi之间的距离,而这里是不同预测框(或者说是不同roi)之间的距离,因此加上log可以避免数值变化范围过大。 ε G \varepsilon_G εG操作主要是将4维的坐标信息embedding成高维的坐标信息(比如默认是64维),借鉴的是attention is all you need这篇文章的思想,主要由一些cosine函数和sine函数构成。接着,将 W G W_G WG和embedding特征相乘,这里 W G W_G WG也是通过全连接层实现的。最后的max操作类似relu层,主要目的在于对位置特征权重做一定的限制。 w G m n w_G^{mn} wGmn的引入是本文和attention is all you need这篇文章较大的不同点。

上式中 f G f_G fG坐标变换的公式为:
在这里插入图片描述
在得到一个关系特征 f R n f_R^n fRn后,这篇文章最后的做法是融合多个( N r N_r Nr个,默认是16)关系特征后再和图像特征 f A n f_A^n fAn做融合,如下面公式所示。这里有个细节是关于关系特征的融合方式,这里采用的concat,主要原因在于计算量少,因为每个 f R n f_R^n fRn的通道维度是 f A n f_A^n fAn 1 / N r 1/N_r 1/Nr倍,concat后的维度和 f A n f_A^n fAn相同。假如用element-wise add的方式进行融合,那么每个 f R n f_R^n fRn的维度和 f A n f_A^n fAn都一样,这样的加法计算量太大。这正好对应了Figure2中左侧的信息。
在这里插入图片描述
综上所述,我们可以用下图来概括前面提到的所有的公式算法。
在这里插入图片描述
作者选取了 d k = d g = 64 d_k=d_g=64 dk=dg=64, N r = 16 N_r=16 Nr=16。总结一下这个模块的求法:

  1. 分别根据两个特征计算它们各自的权重。
  2. 由两个特征的权重获得总权重。
  3. 按照第m个物体对当前物体的总权重,加权求出各个relation模块。
  4. concat所有relation模块,与原来的特征叠加,最终输出通道数不变的新特征。
3、relation for object detection

 上面介绍完了relation module,那么下面我们来看一下,它是怎么应用到目标检测的算法当中的。我们先上图,看图来理解。
在这里插入图片描述
在这里插入图片描述
上面两图是将relation module应用在目标检测算法中的示意图, F A n , F G n F_A^n,F_G^n FAn,FGn是分别代表表面特征和几何特征。
在这里插入图片描述
 上图是relation module插入目标检测算法的示意图,左侧是插入两个全连接层的情况,在全连接层之后会基于提取到的特征和ROI的坐标构建attention,然后将attention加到特征中传递给下一个全连接层,再重复一次后就开始做bounding box regression and classification。
 右图是插入NMS模块的情况,图像特征通过预测框得分的高低顺序和预测框特征的融合得到,然后将该融合特征与预测框坐标作为relation模块的输入得到attention结果,最后将NMS当作是一个二分类过程,需要注意的是对于每个ground truth,只有一个detected object被归为correct类,而其余的都是duplicate,这个模块的输入是instance recognition模块的output,也就是一系列的detected objects,它们每个都有1024-d的特征,分类得分 s 0 s_0 s0还有bbox。而输出则是 s 0 ∗ s 1 s_0*s_1 s0s1得到的最终分类分数。
 接下来,以object relation module插入全连接层为例,来大致的了解一下,这篇文章中是怎么做的。
 原有的的全连接的形式如公式(9)所示:
在这里插入图片描述
而这篇文章的解决的方法是直接在每个全连接层的后面接RM(relation module),我们前面提到过,RM不会改变输入的维度。如公式10所示。
在这里插入图片描述
RM右上角的 r 1 , r 2 r_1,r_2 r1,r2表示的是RM的数量,因为RM不改变输出的维度,所以RM的数量可以任意的添加。说完了relation module在detection module(全连接层)的嵌入之后,另一部分就是其在NMS模块的嵌入啦,也就是Figure3中的右侧部分(上面有简单的介绍,下面会详细点的说一下)。
 NMS的思想简单讲就是根据将和当前预测得分最高的框的IOU大于某个阈值的框删除掉。因此这其实是一个二分类的问题,也就是针对每个ground truth,只有一个预测为该类的框是对的,其他预测为该类的框都是错的。具体实现参考前面的Figure3(b),其中 s 0 s_0 s0是预测框的socre,这个socre对应公式9和10中最后一行的输出socre; s 1 s_1 s1是二分类的结果(1表示对的,0表示错的,要移除)。那么这个二分类怎么做呢?主要分成3步:
1、先获取输入score的排序信息(index),然后对index做embedding,并将embedding后的index和图像特征(f)通过一些全连接层(维度从1024降为128)后进行融合,融合后的特征作为relation module的输入之一。
2、预测框的坐标作为relation module的另一个输入,经过relation module后得到关系特征。
3、关系特征经过一个线性变换(Figure3(b)中的 W s W_s Ws)后作为sigmoid的输入得到分类结果,这样就完成了预测框的二分类,且基于的特征引入了attention。
因此将NMS纳入end-to-end训练后,整体网络的损失函数不仅包含原来的坐标回归和分类损失函数,还包含NMS的二分类损失函数。

作者认为这么做的好处如下:

  1. output的时候,NMS需要一个预设置的参数;而duplicate removal模块是自适应学习参数的。
  2. 通过设置不同的ηη,可以将模块变成多个二分类问题,并取其中最高的值作为输出,作者经过试验,证明这种方式较单一阈值的方式更可靠。
  3. 作者发现阈值的设置和最后的指标有某种联系。例如mAP0.5在η为0.5时的效果最好,mAP0.75同理,而mAP使用多个η效果最好。
  4. 最后,就是η的含义问题。η本质上代表的是分类和定位问题的权重,它的值设置得越高,说明网络越看重定位的准确性。

在这里作者也提出了几个问题,并进行了解释。

  1. 只有一个样本被划分为correct,会不会导致严重的正负样本不均衡?
    答案是否定,网络工作的很好,这是为什么呢?因为作者实际运行发现,大多数的object的 s 0 s_0 s0得分很低,因此 s 0 s_0 s0 s 1 s_1 s1就很小,从而导致 L = − l o g ( 1 − s 0 s 1 ) L=−log(1−s_0s_1) L=log(1s0s1)和梯度 ∂ L ∂ s 1 \frac{\partial L}{\partial s_1} s1L都会比较小。
  2. 设计的两个模块功能是否矛盾?因为instance recognition要尽可能多地识别出high scores的物体,而duplicate removal的目标是只选择一个正样本。
    作者认为这个矛盾是由 s 0 s_0 s0 s 1 s_1 s1来解决的,instance recognition输出的高 s 0 s_0 s0可以通过较低的 s 1 s_1 s1来调节。
  3. duplicate removal是一个可以学习的模块,和NMS不同,在end2end训练中,instance recognition输出的变化会直接影响到该模块,是否会产生不稳定性?
    答案也是否定的,实际上,作者发现end2end的训练方式更好,作者认为这是由于不稳定的label某种程度上起到了平均正则化的作用。

疑问:对这个模块还是有些许的疑惑,可能要去看一下源码来进步的了解。主要疑惑点在于是不是每一个类别都有一个分支,也就是是不是class specific。(看的其他的博客也没有解释这个问题),回头看源码会思考这个。

4. experiments

Table1主要做了3个验证:
1、验证引入位置特征(geometric feature)的有效性(a);
2、验证关系特征数量的影响(b);
3、验证relation module在两个全连接层中的数量的影响(c)。
在这里插入图片描述
Table2主要是验证RM效果提升是否是因为参数量增加带来的。因此这里做了一些增加 f c f_c fc层、加宽 f c f_c fc层和增加residual结构的操作,最后表明效果的提升并非由于参数量提升带来。
在这里插入图片描述
Table5是关于在不同算法上引入RM的效果。

在这里插入图片描述

5.Summary

个人觉得本文提出的这个relation module 是一个很有意思的点,idea来自于NLP的启发,可以看出扩宽知识面的重要性,而且感觉这个思路也是一个很好的切入点。但是,个人感觉这篇文章还是比较的粗糙,比如,文章中的实验都是在基于Faster RCNN系列上进行的,也就是我们说的two stage方法,那么它适不适用于Yolo等系列的one stage呢?(文章中说的是适应于现在的顶尖的检测方法)需要自己去验证一下。还有就是这个relation module到底学到了什么?作者并没有给出详细的解释。在CVPR2019上好像有relation module最新的研究,我准备去看一下,比较一下。

参考资料

Relation Networks for Object Detection算法笔记 强烈安利,结合了代码进行的分析
Relation Networks for Object Detection 笔记 盗用了几张图片

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "few-shot object detection with attention-rpn and multi-relation detector" 是一种使用注意力机制的少样本目标检测方法。它通过使用 Attention-RPN(Region Proposal Network)和 Multi-Relation Detector 来实现对目标的检测。 Attention-RPN 可以在提议区域中识别关键部位,而 Multi-Relation Detector 则可以在少量样本中识别目标并定位它们。这种方法在训练和测试时都需要少量样本,因此可以减少模型的训练时间和资源消耗。 ### 回答2: 随着人工智能技术的不断发展,目标检测的研究也得到了越来越多的关注。其中,Few-shot object detection with attention-rpn and multi-relation detector是目前在目标检测领域上的一个最新研究成果。那这个算法是什么呢? 针对目前目标检测领域中的一大难点——少样本学习,此研究提出了一种基于RPN(region proposal network)和注意力机制的多关系检测算法,使得模型只需使用少量的训练数据,就能在未见过的类别中达到较高的检测准确率。 具体来说,该算法通过在RPN中引入注意力交互模块来提供精细的检测区域,同时通过设计多组关系特征提取器,能够有效处理不同目标类别之间的相互关系。在训练阶段,该算法将训练数据集划分为meta-train和meta-test集合,然后在较小的meta-train集合中学习关系特征提取器和注意力交互模块,最后在meta-test集合的未知类别中进行目标检测。 综合以上基本思路,该算法通过引入注意力机制和多关系特征提取器来实现Few-shot object detection。该算法在目前的Few-shot目标检测基准测试数据集上进行了实验证明,实现了较高的检测准确率,在很大程度上解决了少样本学习的问题。未来,这个技术还需要进一步实践和推广,使得得到更广泛的使用。 ### 回答3: 本文介绍了一种基于注意力机制RPN(Attention-RPN)和多关系检测器(Multi-Relation Detector)的小样本目标检测技术(Few-shot Object Detection)。该技术可以利用预训练的模型来辅助小样本检测任务,并可以适应新的目标类别。 本文中的Attention-RPN是一种针对小样本学习的改进版本,它可以通过选择性的关注训练数据中的重要区域来提高小样本的性能。同时,Attention-RPN还可以利用先前训练模型的知识来指导小样本的训练过程,从而提高检测结果的准确性。 而多关系检测器则是一种可以检测目标之间关系的模型。通过学习目标之间的关系,可以更好地理解图像中的场景,并且可以更准确地定位和分类目标。本文中的多关系检测器采用了一种新的模型结构,其中用到了一种称为Transformers的自注意力机制,它可以自适应地聚焦于任务中的关键区域,从而提高检测性能。 在实验中,本文采用了COCO、VOC和miniImagenet等数据集进行测试。结果表明,本文所提出的Few-shot Object Detection技术可以在少量样本的情况下取得好的检测结果。同时,Attention-RPN和Multi-Relation Detector也能分别提高小样本和多样本的检测性能,证明它们是十分有效的模型改进方式。 综上所述,本文提出了一种新的小样本目标检测技术,并通过Attention-RPN和Multi-Relation Detector的改进来提高检测性能。该技术对于具有高效率和精度要求的目标检测任务具有十分重要的意义,可能对未来的计算机视觉研究和工业应用产生积极的影响。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值