Introduction
上下文信息或对象之间的关系有助于对象识别。该论文提出了一个对象关系模块,类似于自然语言处理的注意力机制。该对象关系模块使用对象的外貌特征和几何特征。后者模拟对象之间的空间关系,仅考虑它们之间的相对几何关系,使模块具有平移不变性——对象识别的理想属性。该对象关系模块对对象的外貌特征和几何特征进行加权操作得到新的特征,提高了目标检测的预测精度。同时,对象关系模块可以用来替换NMS,把NMS的去掉重复bounding box的操作定义成二分类问题——bounding box是正确的还是重复的。
Object Relation Module
该论文受到自然语言处理的注意力机制的启发。论文参考的注意力机制模型"Scaled Dot-Product Attention"的输入包括queries,
d
k
d_k
dk维的keys和
d
v
d_v
dv维的values。对query和keys进行点乘来获取它们的相似度。给定一个query
q
q
q,所有keys (组成矩阵
K
K
K)和values (组成矩阵
V
V
V),输出为
(1)
v
o
u
t
=
s
o
f
t
m
a
x
(
q
K
t
d
k
)
V
v^{out} = softmax (\frac{qK^t}{\sqrt{d_k}})V \tag{1}
vout=softmax(dkqKt)V(1)
对象关系模块类似于公式(1)。一个对象包含几何特征
f
G
\mathbf{f}_G
fG和外貌特征
f
A
\mathbf{f}_A
fA。几何特征是简单的4维的对象bounding box,外貌特征是指神经网络的激活值特征。给定N个对象的输入集
{
(
f
A
n
,
f
G
n
)
}
n
=
1
N
\{ (\mathbf{f}_{A}^n, \mathbf{f}_G^n) \}_{n=1}^N
{(fAn,fGn)}n=1N,第n个对象的关系特征
f
R
(
n
)
\mathbf{f}_R(n)
fR(n)为
f
R
(
n
)
=
∑
m
w
m
n
⋅
(
W
V
⋅
f
A
m
)
\mathbf{f}_R(n) = \sum_{m} w^{mn} \cdot (W_V \cdot \mathbf{f}_A^m)
fR(n)=m∑wmn⋅(WV⋅fAm)
即把第n个对象与其他对象(m)的关系定义成外貌特征的加权和。首先对外貌特征进行线性变换
W
V
⋅
f
A
m
W_V \cdot \mathbf{f}_A^m
WV⋅fAm,然后使用关系权重
w
m
n
w^{mn}
wmn对变换后的特征进行加权和。
关系权重
w
m
n
w^{mn}
wmn的计算公式是
w
m
n
=
w
G
m
n
⋅
exp
(
w
A
m
n
)
∑
k
w
G
k
n
⋅
exp
(
w
A
k
n
)
w^{mn} = \frac{w_G^{mn} \cdot \exp (w_A^{mn})}{\sum_k w_{G}^{kn} \cdot \exp (w_A^{kn})}
wmn=∑kwGkn⋅exp(wAkn)wGmn⋅exp(wAmn)
先算出对象m对对象n的重要性,然后normalize。
外貌权重
w
A
m
n
w_A^{mn}
wAmn通过点乘操作得到,具体如下
w
A
m
n
=
d
o
t
(
W
K
f
A
m
,
W
Q
f
A
n
)
d
k
w_A^{mn} = \frac{dot(W_K \mathbf{f}_A^m, W_Q \mathbf{f}_A^n)}{\sqrt{d_k}}
wAmn=dkdot(WKfAm,WQfAn)
其中矩阵
W
K
W_K
WK和
W
Q
W_Q
WQ类似公式(1)的K和q,把原来的特征
f
A
n
\mathbf{f}_A^n
fAn和
f
A
m
\mathbf{f}_A^m
fAm映射到子空间中,然后点乘操作衡量他们之间的匹配程度。映射之后的特征维度是
d
k
d_k
dk。
几何权重
w
G
m
n
w_G^{mn}
wGmn的计算公式为
w
G
m
n
=
max
{
0
,
W
G
⋅
ε
G
(
f
G
m
,
f
G
n
)
}
w_G^{mn} = \max \{0, W_G \cdot \varepsilon_G(\mathbf{f}_G^m, \mathbf{f}_G^n)\}
wGmn=max{0,WG⋅εG(fGm,fGn)}
几何特征是相对几何特征
(
log
(
∣
x
m
−
x
n
∣
w
m
)
,
log
(
∣
y
m
−
y
n
∣
h
m
)
,
log
(
w
n
w
m
)
,
log
(
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(wm∣xm−xn∣),log(hm∣ym−yn∣),log(wmwn),log(hmhn)),然后把特征嵌入到高维空间中
ε
G
(
f
G
m
,
f
G
n
)
\varepsilon_G(\mathbf{f}_G^m, \mathbf{f}_G^n)
εG(fGm,fGn),维度是
d
g
d_g
dg,然后用
W
G
W_G
WG进行变换,最后通过ReLU函数。
上面说了怎么计算对象n与其他对象的关系特征
f
R
(
n
)
\mathbf{f}_R(n)
fR(n),这只是一种关系,对象n与其他对象可能有多种关系,作者设对象n与其他对象一共有
N
r
N_r
Nr种关系。作者把对象n与其他对象的
N
r
N_r
Nr种关系特征组合起来
f
A
n
=
f
A
n
+
C
o
n
c
a
t
[
f
R
1
(
n
)
,
⋯
 
,
f
R
1
(
N
r
)
]
,
for all n
\mathbf{f}_A^n = \mathbf{f}_A^n + Concat[\mathbf{f}_R^1(n), \cdots, \mathbf{f}_R^1(N_r)], \text{for all n}
fAn=fAn+Concat[fR1(n),⋯,fR1(Nr)],for all n
为了匹配channel维度,每个
W
V
r
W_V^r
WVr的维度是
1
N
r
\frac{1}{N_r}
Nr1。作者设置这些参数为
N
r
=
16
,
d
k
=
64
,
d
g
=
64
N_r=16,d_k=64,d_g=64
Nr=16,dk=64,dg=64。
整个对象关系模块的结构是
对象关系模块可以嵌入到目标检测的流程中,如下图
对象关系模块既可以嵌入到全连接层之间,还可以用于删除重复bounding box的duplicate removal network。
嵌入到全连接层的对象关系模型可以表示成
r
1
r_1
r1和
r
2
r_2
r2表示对象关系模块重复的次数,作者默认使用
r
1
=
1
,
r
2
=
1
r_1=1,r_2=1
r1=1,r2=1。
Duplicate removal network
Duplicate removal network目的是为了替换NMS,因为NMS没有考虑对象之间的关系信息。Duplicate removal 是一个二分类问题,对于每个ground truth对象,只有一个检测到的匹配对象记为correct,其它匹配的对象记为duplicate。
Duplicate removal network的结构如上图所示。该网络有3个输入,分别是对象的分类分数、1024维的对象特征和bounding box。对象分类分数有助于分类,先把分类分数变成降序排列的序号,然后把它嵌入到128维的高维空间。同样把对象特征映射到128维,和对象分类分数组合成新的外貌特征。外貌特征和bounding box进入对象关系模块,然后经过简单的线性变化和sigmoid函数,得到分数 s 1 s_1 s1。最后分类分数 s 0 s_0 s0和 s 1 s_1 s1相乘得到最终结果。
Experiment
下面列一些对比实验结果
从上图可以发现网络加了对象关系模块后效果都得到提升。