Learning Deep Context-aware Features over Body and Latent Parts for Person Re-identification
作者: DangWei Li等人 CVPR 2017
1. 摘要:
设计了Multi-Scale Context-Aware Network(MSCAN)来学习全身和body parts的强大特征,通过在每一层堆叠多尺度卷积来很好地捕捉局部上下文知识。此外,不再使用预定义的刚性parts,而使用具有新的空间约束的Spatial Transformer Networks(STN)来学习和定位可变形的行人parts(人体不是刚性结构)。所学习的body part可以解决在基于parts的特征表示中的如姿态变化和背景杂波的影响。最后,将全身和body parts的表征学习过程整合到一个统一的reid框架中。大量实验表明本文的方法都SOTA。
2. 介绍
目前的工作要么基于单尺度,要么是基于刚性part;前者很容易导致忽略某些尺度上的线索,如低分辨率的行人图像中的墨镜就要在很小的尺度下才能观察到,后者会因为图像不对齐或行人检测器误差造成误差。如下图:
-
而作者使用Multi-Scale Context-Aware Network(MSCAN)解决第一个问题,即用不同感受野的卷积核去学习不同尺度的信息(不同感受野可以通过不同大小的卷积核或不同空洞率的空洞卷积实现。作者选择Dilated Convolutions,因为这可以减少参数、减少重叠、冗余,但达到相同的效果==>小感受野就关注图像中的小区域,大感受野就关注大区域,这样通过使用多种不同的感受野就相当于实现了不同的尺度,而不是像之前那样缩放图像尺寸);
-
为了解决第二个问题,作者选择使用三个Spatial Transform Networks(STN)分别学习行人的头-肩、上半身、下半身,是一个行人part定位任务。
-
然后,对full body使用MSCAN得到全局特征,对原始图像使用是三个STN得到是三个part,分别使用MSCAN得到三个局部特征,然后先融合是三个局部特征,再将局部特征结果和全局特征融合得到最终行人描述符。
关于空洞卷积参考https://blog.csdn.net/quincuntial/article/details/78743033
3. 本文的方法
3.1. MSCAN
一个MSCAN如下图所示:
其余几个也如此。而使用Conv1,Conv2,Conv3三重级联也就利用了不同感受野的Context-Aware信息。
3.2. Latent Part Localization
通过集成STN来实现。优点有二:首先容易集成到DCNN中;其次可以学习translate,scale,crop,wrap一个感兴趣的区域而不必利用标注信息
STN由两部分组成:
- spatial localization network==>用以学习变换参数,作者只学习translate和scale即可有效crop part
- grid generator==>用以采样输入图像,作者使用双线性内插
图像的宽高都归一化到[-1,1]之间
变换过程如下:
然而存在三个问题:
- 三个STN都容易落入同一区域,即person center,造成冗余
- scale参数容易成负数,将导致图像水平和垂直翻转
- 最终计算出来的crop区域在图像外
对以上三个问题分别提出三个先验约束来缓解/解决问题:
-
中心约束,缓解问题1,后面可以看到没有解决问题
-
预测scale参数值的范围约束
-
在图像内裁减的约束
3.3. 目标函数
定位loss加上softmax的id loss,得到总loss如下:
4. 实验
4.1.数据集和评估协议
4.2.实现细节
4.3.和SOTA方法比较
全部拿下SOTA。
4.4. MSCAN的作用
paper给出的是三个尺度,这里还可以使用4,5…个尺度,即在
4.5. Latent Part Locationcal的作用
如下:
结果显示效果比刚性part划分好得多。
结果显示局部定位loss对reid结果很重要。
4.6. Cross-dataset Evaluation
在其他数据集上的模型迁移到VIPeR,分别验证了直接迁移(viper作为测试集)和迁移后进行微调(在viper上进一步微调再测试)的性能。结果分别为表10和表11:
5. 总结
- MSCAN
- STN
- global + local/part特征,互补