行人重识别 二阶注意力 SONA: Second-order Non-local Attention Networks for Person Re-identification

行人重识别 二阶注意力 SONA: Second-order Non-local Attention Networks for Person Re-identification
Bryan (Ning) Xia, Yuan Gong, Yizhe Zhang, Christian Poellabauer
University of Notre Dame, 2019

将Non-local和二阶注意力结合到了re-id任务中。


图1是说明Second-order Non-local Attention(SONA)的作用。
图1

Second-order Non-local Attention Network

网络backbone类似BFE(特征erasing的一篇re-id论文)。在backbone中间加入了SONA模块。在最终的局部分支加入了DropBlock,进行特征擦除。

Network Architecture

图2

图2是网络整体结构。ResNet50作为backbone。stage3和stage4改了一点空洞卷积,输入为$384 \times 128 \times 3$时,获得更大的特征图$48 \times 16 \times 2048$。stage3和4的特征图与原版stage2的分辨率一致,但输出通道数翻倍。

backbone输出特征图后,网络分为了两个分支。一个全局分支,GAP提取2048维特征向量,后接一个降维模块,由$1 \times 1$卷积、BN和ReLU层组成。然后对特征向量进行id和hard triplet训练

Local branch则是将特征图经过一个bottleneck(conv、bn、relu)后,使用DropBlock模块进行随机特征擦除,再类似的降维,训练。

推理时将两个分支的特征向量concat即可。

Second-order Non-local Attention Module

SONA注意力模块的目的是找到特征图空间点与点之间的相关性,故称Non-local。

对每张图片来说,特征图维度是$\mathbf{x} \in \mathbb{R}^{h \times w \times c}$,将其空间上的两个维度坍缩到一维,得到$\mathbf{x} \in \mathbb{R}^{h w \times c}$的张量。使用$1 \times 1$卷积、BN、LeakyReLU构建两个函数:$\theta$和$g$。它们会将特征的通道数降低r倍,论文的实验采用的r为2。得到$h w \times \frac{c}{r}$的两个特征图。用得到的$\theta(\mathbf{x})$计算协方差矩阵。

其中$\overline{\mathbf{I}}=\frac{1}{c / r}\left(\mathbf{I}-\frac{1}{c / r} \mathbf{1}\right)$。其维度为${h w \times hw}$。再使用$\frac{1}{\sqrt{c / r}}$进行尺度缩放,并进行softmax计算,再与$g(\mathbf{x})$进行矩阵乘法,得到$\mathbf{Z}$:

z的维度为$h w \times \frac{c}{r}$。再使用一个$1 \times 1$卷积将通道数恢复,最后add回特征图。就是整个SONA模块了:

图3

图3是一个SONA模块注意力作用的例子。人体的点(绿点)与人体区域相关度更高(红色区域),背景的点与背景区域相关度更高。

实现细节见论文。其中DropBlock的细节讲得不是很清楚。

表2