zl程序教程

您现在的位置是:首页 >  其他

当前栏目

《Relation Networks for Object Detection》论文笔记

论文笔记 for object Detection Networks Relation
2023-09-11 14:22:29 时间

代码地址:Relation-Networks-for-Object-Detection

1. 概述

一直以来都认为对检测目标之间的联系进行建模会帮助提升目标检测的性能,但是却没有实质性的证据表明这个猜想在现有的深度学习领域是可行的。现有的一些state-of-art的目标检测算法依赖于独立地识别目标,并没有在学习过程中考量他们之间的关系。
这篇文章受语言模型中attention的启发,提出了一个目标关联模块(object relation module),它通过目标的图像特征(appearance feature)与几何位置(geometry)生成连续的目标集合,这就能够对目标之间的关系进行建模。其实,这篇文章主要的思想是使用attention机制关联目标,并将attention机制引入到NMS中去提升检测器的性能。也就是对应文章中提到的instance recognition与NMS部分,文章这些改动嵌入到网络,且能够完成端到端训练。

Attention机制在语言模型与Image Caption中早已经有了广泛使用,但是在目标检测领域就很少使用了,这主要是对应的操作元素是不一样的。在检测中目标具有空间二维分布、不同的scale与ratio,并且它们的位置等几何特征相比语言模型中词的位置更复杂也更重要。
在这篇文章中为了适应目标检测任务,将原始的attention权重划分为两个部分:原始权重(original weight)与几何权重(geometry weight),后面一个权重用于建模检测目标之间的几何关系,由于只考虑了它们的几何关系使得该模块具有平移不变性。后面实验中也证明几何权重的重要性。

这篇文章提出的object relation module具有与传统上attention方法一样的性质,输入输出的维度是一致的,这就当做一个独立模块任意嵌入到网络中。在图1中展示了这个模块嵌入到类Faster R-CNN的目标检测算法中,在Instance Recognition与NMS步骤中发挥作用。
在这里插入图片描述
除了目标检测任务之外,这篇文章指出其还可以扩展到实例分割、工作识别等任务中去,扩展性比较强。

2. Object Relation Module

在attention机制中使用如下的关系对输入数据进行变换:
在这里插入图片描述
在这篇文章中使用 f G f_G fG代表几何特征(geometry feature),也就是4维的目标框。 f A f_A fA代表图像特征(appearance feature),这个需要根据任务而定,可以理解为对应的特征。给定一个包含 N N N个目标的集合 { ( f A n , f G n ) } n = 1 N \{(f_A^n,f_G^n)\}_{n=1}^N {(fAn,fGn)}n=1N,则 n t h n^{th} nth的目标对应整个目标集合的关联特征(relation feature)为 f R ( n ) f_R(n) fR(n),其表示为:
在这里插入图片描述
上面这个公式的输出是来自其它目标的图像特征的加权和, W V W_V WV是线性变换,对应公式1中的 V V V w m n w^{mn} wmn是其它目标对其的影响程度,对应公式1中的softmax,其是通过下面这个公式计算出来的:
在这里插入图片描述
也就是归一化权值,其中 w A m n w_A^{mn} wAmn是通过dot product操作得到的,与公式1类似:
在这里插入图片描述
其中, W K , W Q W_K,W_Q WK,WQ是矩阵与公式1中 K , Q K,Q KQ类似。它们将图像特征 f A m , f A n f_A^m,f_A^n fAm,fAn映射到一个子空间去描述它们的相似度,映射之后的维度是 d k = 64 d_k=64 dk=64
几何特征的权值是通过下面的公式计算得到的:
在这里插入图片描述
这个计算过程分为两步:

  • 1)两个目标的几何特征被嵌入到高维表达中,描述为 E G \mathcal{E}_G EG,这是通过使用cos与sin函数会用不同的波长计算得到的,高纬度表达的维度为 d g = 64 d_g=64 dg=64。为了使得表达具有平移与尺度不变性,对每个维度的几何特征做了如下变换: ( l o g ( ∣ x m − x n ∣ w m ) , l o g ( ∣ y m − y n ∣ h m ) ) , l o g ( w n w m ) , l o g ( h n h m ) (log(\frac{|x_m-x_n|}{w_m}),log(\frac{|y_m-y_n|}{h_m})),log(\frac{w_n}{w_m}),log(\frac{h_n}{h_m}) (log(wmxmxn),log(hmymyn)),log(wmwn),log(hmhn)
  • 2)完成嵌入的特征使用矩阵 W G W_G WG进行转换,作用于ReLU类似。

最后,将object relation module的特征整合到 N r N_r Nr个(文章默认为16),这些整合的特征通过concat操作连接起来,再与 f A n f_A^n fAn相加,得到attention之后的特征。为了使特征维度匹配这里将 W V r W_V^r WVr的输出channel设置为输入特征 f A m f_A^m fAm 1 N r \frac{1}{N_r} Nr1文章里面这样做的目的是为了减少计算量
在这里插入图片描述
其整个过程归纳为算法1所示:
在这里插入图片描述
而且这样的步骤可以很容易通过一些基础的网络模块实现,其结构见图2所示:
在这里插入图片描述

3. Relation Networks For Object Detection

在之前的内容中提到文章将attention运用于instance recognition与NMS操作中,接下来的内容就是围绕两点展开,说明它们是怎么在网络中工作起来的。

3.1 Relation for Instance Recognition

对于Faster RCNN系列的算法使用RoI Pooling操作产生 n t h n^{th} nth个目标提取,之后使用线性层去预测结果,其过程可以总结如下:
在这里插入图片描述
那么,这里使用这篇文章的object relation module接在fc层的后面,由于这个模块的输入输出维度是相同的,因而并不会改变特征维度,也可以堆叠任意多次,每个fc后面接一个object relation module的结构见下图所示:
在这里插入图片描述
其处理过程如下:
在这里插入图片描述

3.2 Relation for Duplicate Remova

这部分内容是对原有NMS操作的改进,在其中加入了attention机制。文章将去除重复检测框的问题转换为二分类问题,也就是一个GT只与一个检测结果对应,其余的全是负样本。完成这部分功能的结构见下图所示:
在这里插入图片描述
这个模块的输入有3个分别是分类置信度、1024维度的特征与预测框,输出是一个2分类,分别代表是否要去除对应的检测框。最后的分类置信度是 s 0 , s 1 s_0,s_1 s0,s1的乘积。这个模块的计算过程可以分为3个步骤:

  • 1)分类置信度经过排序之后通过 w f g w_{fg} wfg映射到128维度,1024维度的特征经过 w f w_f wf也被映射到128维度,之后两个特征融合;
  • 2)预测结果与融合之后的特征进行attention操作;
  • 3)attention之后的结果使用线性变换 w s w_s ws与sigmoid完成二分类;

4. 实验结果

性能表现:
在这里插入图片描述
网络中模块对性能的影响:
在这里插入图片描述
instance中各变量对性能的影响:
在这里插入图片描述
NMS中各变量对性能的影响:
在这里插入图片描述
NMS中阈值对性能的影响:
在这里插入图片描述