论文基于 NLP 的注意力机制提出了指标关系模块,通过与其它指标的比对加强以后指标的特色,而且还能够代替 NMS 进行端到端的反复后果去除,思维非常新鲜,成果也不错
起源:晓飞的算法工程笔记 公众号
论文: Relation Networks for Object Detection
- 论文地址:https://arxiv.org/abs/1711.11575
- 论文代码:https://github.com/msracver/Relation-Networks-for-Object-Detection
Introduction
以后大多数指标检测算法仍专一于独自辨认指标,没有尝试在训练时开掘指标之间的关系,受限于以后简略的网络结构,无奈对无规律的指标关系进行建模。参考自然语言解决中的注意力机制,论文提出了用于指标检测的自适应注意力机制 — 指标关系模块(object relation module),学习指标间的关系来加强特色以及去除反复后果。
检测指标有 2D 空间散布和不同的长宽比,比文本的场景要简单些,所以论文拓展了 NLP 的注意力权重,分为两个权重:
- 基于指标特色产生的权重,跟 NLP 权重相似。
- 基于指标绝对几何地位产生的权重,绝对几何地位保障平移不变性。
指标关系模块接管可变输出并行计算,是可微的 in-place 操作,可作为根底构建 block 嵌入到任意指标检测算法中,嵌入形式如图 1 所示,用于指标辨认局部以及反复指标去除:
- 指标辨认局部(instance recognition):利用指标关系模块,联结所有的检测指标来进行特色加强,再进行后续的辨认。
- 反复指标去除(du-plicate remova):在辨认实现后,惯例的做法应用 NMS 进行反复指标的去除,而论文应用轻量级网关系网络进行该做法的替换。
Object Relation Module
惯例的注意力机制为 ScaledDot-Product Attention,计算为:
给定查问指标 $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。
论文在几何特色的应用上也尝试了其它办法:1) none,间接将 $w^{mn}_G$ 设为 1.0 计算权值,即不应用。2) unary,将高维几何特色间接与外观特色交融,而后跟 none 一样计算权值。试验局部的表 1 有相干的后果比照,论文抉择的公式 5 加权办法比拟无效。
在实现时,相似于 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]$,对原分数进行加权。
- 分数高于阈值的即为最终的后果。
在训练时间接对最终的分数应用穿插熵损失迭代,尽管大部分的指标都是反复的,但因为其最终分数都很小,所以不会对网络造成很大的偏差。而在推理时,先按分类的分数过滤一轮,这样能加重计算量,论文实测大概减少 2ms,绝对的,NMS 和 SoftNMS 减少 5ms 左右。
Experiments
各地位设置的比照试验。
反复指标去重成果比照。
在各网络中的成果比照,别离比照 2fc+SoftNMS、2fc+RM+SoftNMS 和 2fc+RM+e2e 的成果。
Conclusion
论文基于 NLP 的注意力机制提出了指标关系模块,通过与其它指标的比对加强以后指标的特色,而且还能够代替 NMS 进行端到端的反复后果去除,思维非常新鲜,成果也不错。
如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】