【CVPR2022】NFormer: Robust Person Re-identification with Neighbor Transformer
代码:https://github.com/haochenheheda/NFormer
这是一个来自 Amsterdam 大学 和 小红书 团队的工作。要解决的问题是:当前大多数工作是分析单张图片内部特征之间的关联关系,没有考虑图片与图片之间的 potential ineractions。
如下图所示,由于光照、遮挡、视角等因素,同一个类别的图片可能外观存在差异,导致outlier比较敏感(空心样本是因遮挡产生的ourlier,跑到别的类里了)。为此,作者提出了 Neighbor Transformer Network (NFormer),旨在建模所有输入图像之间的关系,可以看到所有类内部的联系更加紧密,outlier能够正确分类。
NFormer的框架如下图所示,比较关键的有两个部分:Landmark agent attention (LAA) 和 Reciprocal neighbor softmax (RNS)。
1、Landmark agent attention. 该模块如下图所示,在以前的 attention 计算中,需要将输入
z
z
z 变成
q
,
k
,
v
q,k,v
q,k,v,然后在计算
q
q
q 和
k
k
k 之间相似性时复杂度较高为
O
(
N
2
d
)
O(N^2d)
O(N2d)。 为此,作者如下改进:(1)在输入
z
z
z 中随机采样
l
l
l 个样本得到
z
l
z^l
zl ,然后生成
k
l
k_l
kl? 和
q
l
q_l
ql?,这样特征就从
N
×
d
N\times d
N×d 降为
l
×
d
l\times d
l×d。将原始的
q
q
q 和
k
k
k 通过与
k
l
k_l
kl? 和
q
l
q_l
ql? 分别相乘,得到
q
^
∈
R
N
×
l
\hat{q}\in \R^{N\times l}
q^?∈RN×l $\hat{k}\in \R^{N\times l}
。(
3
)
。(3)
。(3)\hat{q}$ 和
k
^
\hat{k}
k^ 计算得到 NxN 的相似性矩阵。这样,和原来相比,复杂度就从
O
(
N
2
d
)
O(N^2d)
O(N2d) 降低为
O
(
N
2
l
)
O(N^2l)
O(N2l) 。在这个论文中,
l
=
5
l=5
l=5 ,
d
=
256
d=256
d=256,是显著降低了计算量的。
2、Reciprocal neighbor softmax. 原始的softmax计算是聚合所有的样本,但是不相关样本的显著存在会对最终计算产生负面影响。
假设如果两幅图像在特征空间中互为邻域,则它们很可能是相关的。为此,作者建议从矩阵 A 中进行如下计算:
意思就是 A矩阵中每行 attention weights 前 k 个最大的置为1,其余的置为 0。然后使用下面计算生成一个 mask:
在计算 Softmax 时候,把 M 乘在前面,如下:
个人感觉这个操作并不会降低计算量,只是对相似性计算的结果进行了约束。
先写到这里,实验部分的分析有时间再补充 ~~~
|