10

RelationNet:学习目标间关系来增强特征以及去除NMS后处理 | CVPR 2018

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzI3MzU5NjQyMQ%3D%3D&%3Bmid=2247485450&%3Bidx=1&%3Bsn=9168f4e46d14c53689e54b000d6af490
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

论文基于NLP的注意力机制提出了目标关系模块,通过与其它目标的比对增强当前目标的特征,而且还可以代替NMS进行端到端的重复结果去除,思想十分新颖,效果也不错

来源:晓飞的算法工程笔记 公众号

论文: Relation Networks for Object Detection

qemIruI.png!mobile
  • 论文地址:https://arxiv.org/abs/1711.11575

  • 论文代码:https://github.com/msracver/Relation-Networks-for-Object-Detection

Introduction

当前大多数目标检测算法仍专注于单独识别目标,没有尝试在训练时挖掘目标之间的关系,受限于当前简单的网络结构,无法对无规律的目标关系进行建模。参考自然语言处理中的注意力机制,论文提出了用于目标检测的自适应注意力机制 -- 目标关系模块(object relation module),学习目标间的关系来增强特征以及去除重复结果。

检测目标有2D空间分布和不同的长宽比,比文本的场景要复杂些,所以论文拓展了NLP的注意力权重,分为两个权重:

  • 基于目标特征产生的权重,跟NLP权重类似。

  • 基于目标相对几何位置产生的权重,相对几何位置保证平移不变性。

MfIRvyu.png!mobile

目标关系模块接收可变输入并行计算,是可微的in-place操作,可作为基础构建block嵌入到任意目标检测算法中,嵌入方式如图1所示,用于目标识别部分以及重复目标去除:

  • 目标识别部分(instance recognition):利用目标关系模块,联合所有的检测目标来进行特征增强,再进行后续的识别。

  • 重复目标去除(du-plicate remova):在识别完成后,常规的做法使用NMS进行重复目标的去除,而论文使用轻量级网关系网络进行该做法的替换。

Object Relation Module

常规的注意力机制为ScaledDot-Product Attention,计算为:

2IbyAna.png!mobile

给定查询目标,计算与其它目标的相似度,然后softmax归一化为权重,最后乘以各向量的值得到加权后的特征,这3个值一般都是对目标特征进行embedding得到的。

对于目标检测中的相似性计算,每个目标包含几何特征和外观特征,给定个目标,可计算每个目标相对于其它目标的关系特征(relation feature):

emArmm2.png!mobile

关系特征实际为所有目标的外观特征的加权和,为线性变化,相当于将外观特征embedding为公式1的值。权值表明其它目标相对于当前目标的重要性,计算方法为:

fMfU73A.png!mobile

公式3实际上等同于公式1中的softmax,唯一不同的是除了外观权值,还额外使用几何权值进行加权。

外观权值的计算跟公式1的softmax括号内的计算一样,具体为:

FVfYrmb.png!mobile

和同样为线性变化,分别将对比目标和当前目标的外观特征embedding成公式1的和,embedding后的特征维度为。

几何权值的计算为:

NrQr2mN.png!mobile

几何特征一般就是简单的四维bbox,所以公式5在计算几何权值包含两个步骤:

  • 将当前目标和对比目标的几何特征通过embedding成高维特征,为了保证平移和尺寸不变性,几何特征转为相对值,embedding方法跟Attention Is All You Need里的位置编码一样,使用正弦函数和余弦函数。

  • 使用将高维几何特征转换为标量权值,小于0时设为0。

论文在几何特征的使用上也尝试了其它方法:1) none,直接将设为1.0计算权值,即不使用。2) unary,将高维几何特征直接与外观特征融合,然后跟none一样计算权值。实验部分的表1有相关的结果对比,论文选择的公式5加权方法比较有效。

iAB3yyi.png!mobile

在实现时,类似于multi-head attention,一个目标关系模块(object relation module)包含个关系特征,每个特征的维度为输入特征的,图2可能会有一点问题,几何特征写了两个,但是外观特征只写了一个,大家根据公式理解就好,最后通过相加对输入目标的外观特征进行增强:

qauUNff.png!mobile7ZFvyq7.png!mobile

目标关系模块的计算逻辑如算法1所示,其空间复杂度和时间复杂度为:

N7FVZbb.png!mobileQBZjm2.png!mobile

一般而言,目标关系模块的整体计算量不会很大,而且输出特征的维度和输入特征的维度一致,可作为基础构建block嵌入到任何网络中。

Relation Networks For Object Detection

论文主要讨论将目标关系模块嵌入到region-based目标检测网络中,region-based目标检测网络一般包含四个步骤:1) 通过主干网络生成整图特征 2) 生成候选框的区域特征 3) 进行各实例识别和调整 4) 去除重复的检测结果,目标关系模块的嵌入主要在步骤3和步骤4。

Relation for Instance Recognition

目标分类和目标回归一般使用两个1024维全连接层对目标的RoI池化特征进行处理:

2yEJZbv.png!mobile

目标关系模块可直接增强所有目标的1024维,不改变特征的维度,不仅可以在任意位置插入,还可以多次堆叠:

AZvqquY.png!mobilen2QNvm.png!mobile

和为目标关系模块重复的次数,添加目标关系模块能够目标特征,提高识别的准确率,公式10的可视化如图a所示。

Relation for Duplicate Removal

去除重复目标这个任务本身就需要穷尽目标间的关系,比如启发式的NMS,高分目标可抹去其附近的低分目标。尽管NMS十分简单,但其去重的方式并不总是最优的,为此,论文采用目标关系模块去除重复目标。

EnAbYj.png!mobile

如图b所示,输入目标的分数、1024维外观特征以及几何特征,重复目标去除包含以下几个步骤:

  • 对目标分数进行名次的转换,采用几何特征的embedding方式将分数转换成128维特征,将外观特征降维为128维特征,将两个特征相加。

  • 跟前面描述的目标关系模块一样与其它目标计算,输出关系特征。

  • 通过线性变化和sigmoid函数输出概率,对原分数进行加权。

  • 分数高于阈值的即为最终的结果。

在训练时直接对最终的分数使用交叉熵损失迭代,虽然大部分的目标都是重复的,但由于其最终分数都很小,所以不会对网络造成很大的偏差。而在推理时,先按分类的分数过滤一轮,这样能减轻计算量,论文实测大约增加2ms,相对的,NMS和SoftNMS增加5ms左右。

Experiments

mmyuAbz.png!mobile

各位置设置的对比实验。

BZjYNbR.png!mobile

重复目标去重效果对比。

N3yYRvf.png!mobile

在各网络中的效果对比,分别对比2fc+SoftNMS、2fc+RM+SoftNMS和2fc+RM+e2e的效果。

Conclusion

论文基于NLP的注意力机制提出了目标关系模块,通过与其它目标的比对增强当前目标的特征,而且还可以代替NMS进行端到端的重复结果去除,思想十分新颖,效果也不错。

如果本文对你有帮助,麻烦点个赞或在看呗~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

maYnQbR.png!mobile work-life balance.

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK