前言
最近希望能够寻找一个NMS的替代方案,能够去除冗余检测框,并且不阻断梯度传递。这篇论文的核心内容是设计了一种关系网络,输入输出维度相等,能嵌入到目标检测任务中提高检测结果,也能代替NMS作为后处理模块。论文主要参照了Attention方法中的一些思想,设计的Relation Module是由《Attention is all you need》论文中self-attention模型改进而来。
本人对NLP完全小白,因此翻了翻attention的一些资料,在这里推荐一下:
[1] https://zhuanlan.zhihu.com/p/47063917
[2] https://blog.csdn.net/yujianmin1990/article/details/85221271
关键词:Relation Module
、Duplicate Removal
注:编者水平有限,如有谬误,欢迎指正。若要转载,请注明出处,谢谢。
联系方式:
邮箱:yue_zhan@yahoo.com
QQ:1156356625
Object Relation Module
首先回顾一下Scaled Dot-Product Attention,这是作者relation module的构建原型,这方面推荐[1]中介绍得很详细。上公式
v
o
u
t
=
s
o
f
t
m
a
x
(
q
K
t
d
k
)
V
(1)
v^{out}=softmax(\frac{qK^t}{\sqrt{d_k}})V\tag{1}
vout=softmax(dkqKt)V(1)这里attention的本质是一个加权和,通过
q
q
q和
K
K
K的点乘表示相似度,再通过
s
o
f
t
m
a
x
softmax
softmax得到权值分布,最后对
V
V
V求加权和得到当前“时刻”v输出。这里不对公式在NLP中具体含义做展开,只要理解这个Attention本质为加权和即可。
有了公式(1),就可以对论文中的relation module进行拆解,上构造图
这里的
f
A
f_A
fA和
f
G
f_G
fG代表检测目标的纹理特征和几何特征,分别为卷积层feature和bbox坐标。这里的
m
m
m和
n
n
n挺容易误解,根据文义应该是代指任意两个目标,
{
f
G
m
,
f
G
n
}
\{f^m_G,f^n_G\}
{fGm,fGn}则代表任意两目标对。从左部分可以看出module输入输出维度保持不变,每个relation模块出来后用concat是考虑到计算代价问题。
右半部分本质是公式(1),橙色框scaled dot输出如果直接与
W
V
W_V
WV加权点乘,则与公式(1)一致。因此有
f
R
(
n
)
=
∑
m
ω
m
n
⋅
(
W
V
⋅
f
A
m
)
(2)
\textup f_R(n)=\sum_m\omega^{mn}\cdot(W_V\cdot\textup f^m_A)\tag 2
fR(n)=m∑ωmn⋅(WV⋅fAm)(2)其中
ω
m
n
\omega^{mn}
ωmn与公式(1)中
s
o
f
t
m
a
x
softmax
softmax等价,
W
V
⋅
f
A
m
W_V\cdot\textup f^m_A
WV⋅fAm是对纹理特征做维度转换,等价于(1)中V。继续看
ω
m
n
\omega^{mn}
ωmn的计算方式
ω
m
n
=
ω
G
m
n
⋅
exp
(
ω
A
m
n
)
∑
k
w
G
k
n
⋅
exp
(
ω
A
m
n
)
(3)
\omega^{mn}=\frac{\omega^{mn}_G\cdot \textup{ exp}(\omega^{mn}_A)}{\sum_k{w^{kn}_G\cdot \textup{exp}(\omega^{mn}_A)}}\tag3
ωmn=∑kwGkn⋅exp(ωAmn)ωGmn⋅ exp(ωAmn)(3)可以看出,除去
ω
G
m
n
\omega^{mn}_G
ωGmn,则完全等价于公式(1)的
s
o
f
t
m
a
x
softmax
softmax,文章原文:The usage of geometric weight Eq. (5) in the attention weight Eq. (3) makes our approach distinct from the basic attention Eq. (1). 也印证了这一观点。
公式(4)中
ω
A
\omega_A
ωA计算方式与公式(1)一致,这里两个
W
W
W将特征投影到子空间,然后点乘计算两个目标纹理特征的相似度。
ω
A
m
n
=
d
o
t
(
W
K
f
A
m
,
W
Q
f
A
n
)
d
k
(4)
\omega^{mn}_A=\frac{dot(W_K\textup f^m_A,W_Q\textup f^n_A)}{\sqrt{d_k}}\tag4
ωAmn=dkdot(WKfAm,WQfAn)(4)文中几何权重 的计算方式为
ω
G
m
n
=
m
a
x
{
0
,
W
G
⋅
ε
G
(
f
G
m
,
f
G
n
)
}
(5)
\omega^{mn}_G=max\{0,W_G\cdot\varepsilon_G(\textup f^m_G,\textup f^n_G)\}\tag 5
ωGmn=max{0,WG⋅εG(fGm,fGn)}(5)
ε
G
将
\varepsilon_G将
εG将两个目标的几何特征embedded to a high-dimensional(
d
g
d_g
dg) representation by method in <Attention is all you need>,4-d几何特征向量形式为
(
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
(
w
n
w
m
)
)
T
(log(\frac{|x_m-x_n|}{w_m}),log(\frac{|y_m-y_n|}{h_m}),log(\frac{w_n}{w_m}),log(\frac{w_n}{w_m}))^T
(log(wm∣xm−xn∣),log(hm∣ym−yn∣),log(wmwn),log(wmwn))T,
W
G
W_G
WG和
ReLU
\textup{ReLU}
ReLU将映射过后的相似度归一化并clip掉负值部分。
当然作者并没有直接解释公式(5)的设计理念,而是通过对照实验验证效果。通过调整
ω
G
m
n
\omega^{mn}_G
ωGmn形式,验证其效果。module内参数的优化算法部分此处省略。
Relation for Duplicate Removal
中间跳过了relation module嵌入目标检测网络的部分,因为我的关注点在于其如何取代NMS,从而使整个网络fully end-to-end。下图是duplicate removal模块的框架
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/198b7ce6afc02146b08114e3c8ca2d46.png)
s
0
s_0
s0和
s
1
s_1
s1分别表示classification score和degree of confidence(取值0到1),这里关于score有个疑惑是,原文写了classification score,但是又说N objects are sorted in descending order of their scores,所以这个score感觉又像是检测的置信度,头大。rank embed部分没有理解,希望大佬们解答。
通过relation module后,
W
s
W_s
Ws与
s
i
g
m
o
i
d
\textup sigmoid
sigmoid组成的线性分类器是完成duplicate操作的核心,可以把relation module理解为一个特征提取模块,然后接分类器。还有一个问题是文中计算IoU的部分,两张图上都没有画出,个人理解是网络中并不包含NMS常见的计算IoU。而是在计算loss时,需要评估与ground truth最匹配的检出框,而以不同的阈值得到的IoU结果不同。文中的multiple thresholds对
W
s
W_s
Ws的修改也是通过设置不同IoU得到的matched GT,分别与
s
1
s_1
s1计算loss,训练后得到的对应阈值的分类器,在inference阶段仅做一个平均。也就是说,inference阶段不需要计算IoU。这里纠结了很久,为什么不需要NMS的情况下还需要计算IoU,且不会干扰梯度。
结论
至此,文章的核心内容就解读完毕。这篇论文反复看了有2、3遍,能找到的笔记资料也都看过,但还是觉得大部分笔记都仅仅是翻译原文,或者讲的过于简略。因此我个人的理解也还是不够透彻,所以关于模型替代NMS的部分还希望大佬斧正。
接下来会找源码来看,不过快过年了也没有太大动力hhh。