https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123730018.pdfwww.ecva.net
一、简介
该论文作者提出了一种新的无监督的行人重识别方法(
ADTC),该方法是由
注意力机制驱动,并分为
两步聚类,获得了state-of-the-art表现。
二、创新点
(1) 注意力机制论文中,作者发现在现实的环境中,被同一个相机拍摄的行人往往具有相似的背景。 这导致聚类模型往往会把相同相机拍摄的照片分到同一个簇(cluster)中。这样的聚类模型的
注意力往往集中在图像的背景,无法捕获图像的相机内变异( in-camera variability)。如下图所示:
由第二行的热力图可知,模型的注意力更集中在背景中,而不是行人身上。
由于以上的缺点,
作者想让模型的注意力由从背景转移到前景(行人)。在行人重识别中,注意力机制往往通过引入一个 注意力核(attention kernel)来实现,注意力核可以突出行人图像中的"有用的信息"(例如,衣服上的logo,背包),压制"无用的信息"(例如,背景)。使用了注意力机制方法在上图的最后一行,显然,由热力图可知,模型的注意力由从背景转移到行人。
注意力机制(attention mechanisms)在文献中可以分为两种: hard-attention and soft-attention。hard-attention机制使用的是姿态估计模型(pose estimation model)去大致的定位行人的区域来获得特征。soft-attention 机制通常将可训练层插入模型主体中,以掩盖卷积特征图,从而突出显示"有用的信息"的区域。广泛使用的两种主要的 soft-attention 机制: spatial attention 和 channel attention。作者将两种 soft-attention 机制结合,提出
voxel attention(VA),应用在
无监督的设定中(以前都是用在有监督的方法中)。
(2) 两步聚类聚类第一步,作者采用 kmeans++[1] 聚类方法来生成每一个簇的中心点。聚类第二步,作者采用 k-reciprocal Jaccard distance(KRJD)距离指标来重新分配数据点到每个簇。
[1] Arthur, D., Vassilvitskii, S.: k-means++: The advantages of careful seeding. In: Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms. pp. 1027–1035. Society for Industrial and Applied Mathematics (2007)
最终,该论文的模型迭代地(iteratvely)执行数据聚类(生成伪标签)和模型训练(通过VA提取特征),如下图所示:
三、算法步骤 (1) Voxel attention (VA)给定一张行人的图片
,输入到 backbone model 中,得到一个特征图(feature map)
,其中
。
注意力特征图(attention feature map)
定义如下:
其中
是 voxel attention kernel,它的维度大小和
是相同的,也是
,
表示每一个对应位置的元素之积。如下图,
由两个部分组成: spatial attention 和 channel attention。
(1.1) spatial attention对于spatial attention 部分,作者首先计算沿相应通道(channel)的每个空间位置的平均激活强度(即对特征图的所有通道求平均值),其公式为:
。之后,作者应用softmax来计算
的概率
,即:
以上的 divisive normalization 处理使空间过滤器(spatial filters)具有能够(像全局抑制一样)突出"有用的信息"的区域。
divisive normalization 是一种视觉处理过程,一个神经元的响应会除以其邻域所有神经元的响应的和(或加权和)。(1.2) channel attention
对于channel attention 部分,作者采用了一个squeeze-and-excitation block [2] 来提高模型的性能。首先对
执行 global average pooling 将
的空间信息"挤压"(squeeze)到
个通道
中。对于每一个通道:
第二,为了捕获
中不同通道之间的相互依赖性,作者在
上使用了一个具有两个完全连接层的 bottleneck,即:
其中
表示 sigmoid 函数,
。且有
。
最终,voxel attention kernel
的计算方法是将两个张量
和
相乘:
也就是说,在位置
的
中的每个体素(voxel)
的计算公式为:
[2] Hu, J., Shen, L., Sun, G.: Squeeze-and-excitation networks. In CVPR, 2018.(2) Two-stage clustering (TC)
第一步:作者使用传统的 kmeans++ 算法来获得簇的中心点:
,
是预定义的簇的数量。
第二步:作者根据数据点的 k-reciprocal Jaccard distances(KRJDs)将它们重新分配给每个簇的中心点。一个特征点的 k-reciprocal nearest neighbours 的定义为:
其中
是正在聚类的特征点,
表示
的 k nearest neighbours。
表示
及其附近的每个元素都是彼此的 k nearest neighbours。两个特征点之间的 KRJD 距离为:
杰卡德距离(Jaccard Distance) 是用来衡量两个集合差异性的一种指标,杰卡德距离越大,说明两个集合差异性越大,杰卡德距离越小,说明两个集合差异性越小。
在重新分配数据点的过程中,由于输入图像的噪声或变化,某些簇可能会共享一些数据点,尤其是在训练的前几轮中特征点相互缠绕时。为了解决这个问题,作者删除具有歧义伪标签(pseudo)的数据点,并获得最终的用伪标签标记的训练集
,其中
是去除有歧义伪标签的数据点后,剩下的图像的数量。
(3) Progressive Training在loss函数的选取上,作者没有选择 softmax loss,而是选择了 triplet loss,并使用了 in-batch hard example mining [3] 策略来优化模型的参数。公式如下:
其中,
和
分别代表 mini-batch 中 关于
的 positive 和 negative 集合。即
在 mini-batch 中和
是同一个id,而
在 mini-batch 中和
的id不同。
是特征对之间的边距(margin),
是模型的参数。 ADTC 方法的总结如下:
[3] Hermans, A., Beyer, L., Leibe, B.: In defense of the triplet loss for person re-identification. arXiv preprint arXiv:1703.07737 (2017)
编者注:在论文《FaceNet: A Unified Embedding for Face Recognition and Clustering》中,作者详细阐述了 triplet loss 的 positive 和 negative 图像的选择问题,有兴趣的同学可以参考阅读。如下图所示:
四、实验
(1) 数据集Market-1501和DukeMTMC
(2) 整体的实验结果作者在Market1501上进行训练时,我们首先在DukeMTMC上初始化模型;在DukeMTMC上进行训练的时候,在Market1501上初始化模型。并进行了实验结果对比:
(3) 其他实验略