RelationNet(学习目标间关系来增强特征以及去除NMS|RelationNet:学习目标间关系来增强特征以及去除NMS | CVPR 2018)
论文基于NLP的注意力机制提出了目标关系模块,通过与其它目标的比对增强当前目标的特征,而且还可以代替NMS进行端到端的重复结果去除,思想十分新颖,效果也不错论文: Relation Networks for Object Detection
?
来源:晓飞的算法工程笔记 公众号

文章图片
- 论文地址:https://arxiv.org/abs/1711.11575
- 论文代码:https://github.com/msracver/Relation-Networks-for-Object-Detection
? 检测目标有2D空间分布和不同的长宽比,比文本的场景要复杂些,所以论文拓展了NLP的注意力权重,分为两个权重:
- 基于目标特征产生的权重,跟NLP权重类似。
- 基于目标相对几何位置产生的权重,相对几何位置保证平移不变性。

文章图片
? 目标关系模块接收可变输入并行计算,是可微的in-place操作,可作为基础构建block嵌入到任意目标检测算法中,嵌入方式如图1所示,用于目标识别部分以及重复目标去除:
- 目标识别部分(instance recognition):利用目标关系模块,联合所有的检测目标来进行特征增强,再进行后续的识别。
- 重复目标去除(du-plicate remova):在识别完成后,常规的做法使用NMS进行重复目标的去除,而论文使用轻量级网关系网络进行该做法的替换。

文章图片
? 给定查询目标$q$,计算与其它目标$K$的相似度,然后softmax归一化为权重,最后乘以各向量的值$V$得到加权后的特征,这3个值一般都是对目标特征进行embedding得到的。
? 对于目标检测中的相似性计算,每个目标包含几何特征$f_G$和外观特征$f_A$,给定$N$个目标$\{(f^n_A, f^n_G)\}^N_{n=1}$,可计算每个目标相对于其它目标的关系特征(relation feature)$f_R(n)$:

文章图片
? 关系特征实际为所有目标的外观特征的加权和,$W_V$为线性变化,相当于将外观特征embedding为公式1的值$V$。权值$w^{mn}$表明其它目标相对于当前目标的重要性,计算方法为:

文章图片
? 公式3实际上等同于公式1中的softmax,唯一不同的是除了外观权值$w^{mn}_A$,还额外使用几何权值$w^{mn}_G$进行加权。
? 外观权值$w^{mn}_A$的计算跟公式1的softmax括号内的计算一样,具体为:

文章图片
? $W_K$和$W_Q$同样为线性变化,分别将对比目标和当前目标的外观特征embedding成公式1的$K$和$Q$,embedding后的特征维度为$d_k$。
? 几何权值$w^{mn}_G$的计算为:

文章图片
? 几何特征一般就是简单的四维bbox,所以公式5在计算几何权值包含两个步骤:
- 将当前目标和对比目标的几何特征通过$\varepsilon_G$embedding成高维特征,为了保证平移和尺寸不变性,几何特征转为相对值$(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}) )$,embedding方法跟Attention Is All You Need里的位置编码一样,使用正弦函数和余弦函数。
- 使用$W_G$将高维几何特征转换为标量权值,小于0时设为0。

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

文章图片

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

文章图片

文章图片
? 一般而言,目标关系模块的整体计算量不会很大,而且输出特征的维度和输入特征的维度一致,可作为基础构建block嵌入到任何网络中。
Relation Networks For Object Detection ? 论文主要讨论将目标关系模块嵌入到region-based目标检测网络中,region-based目标检测网络一般包含四个步骤:1) 通过主干网络生成整图特征 2) 生成候选框的区域特征 3) 进行各实例识别和调整 4) 去除重复的检测结果,目标关系模块的嵌入主要在步骤3和步骤4。
Relation for Instance Recognition
? 目标分类和目标回归一般使用两个1024维全连接层对目标的RoI池化特征进行处理:

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

文章图片

文章图片
? $r_1$和$r_2$为目标关系模块重复的次数,添加目标关系模块能够目标特征,提高识别的准确率,公式10的可视化如图a所示。
Relation for Duplicate Removal
? 去除重复目标这个任务本身就需要穷尽目标间的关系,比如启发式的NMS,高分目标可抹去其附近的低分目标。尽管NMS十分简单,但其去重的方式并不总是最优的,为此,论文采用目标关系模块去除重复目标。

文章图片
? 如图b所示,输入目标的分数、1024维外观特征以及几何特征,重复目标去除包含以下几个步骤:
- 对目标分数进行名次的转换,采用几何特征的embedding方式将分数转换成128维特征,将外观特征降维为128维特征,将两个特征相加。
- 跟前面描述的目标关系模块一样与其它目标计算,输出关系特征。
- 通过线性变化$W_s$和sigmoid函数输出概率$s_1\in [0, 1]$,对原分数进行加权。
- 分数高于阈值的即为最终的结果。
Experiments

文章图片
? 各位置设置的对比实验。

文章图片
? 重复目标去重效果对比。

文章图片
? 在各网络中的效果对比,分别对比2fc+SoftNMS、2fc+RM+SoftNMS和2fc+RM+e2e的效果。
Conclusion ? 论文基于NLP的注意力机制提出了目标关系模块,通过与其它目标的比对增强当前目标的特征,而且还可以代替NMS进行端到端的重复结果去除,思想十分新颖,效果也不错。
?
?
?
如果本文对你有帮助,麻烦点个赞或在看呗~【RelationNet(学习目标间关系来增强特征以及去除NMS|RelationNet:学习目标间关系来增强特征以及去除NMS | CVPR 2018)】
更多内容请关注 微信公众号【晓飞的算法工程笔记】

文章图片
推荐阅读
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习
- 【韩语学习】(韩语随堂笔记整理)
- 焦点学习田源分享第267天《来访》