用动态规划求最小路径进行特征对齐。
让多个网络自动学习人体结构对齐,并彼此相互学习。
算法提到了两个创新点,动态对齐(Dynamic Alignment)和 协同学习(Mutual Learning),算法在Market1501和CUHK03上的Rank-1达到了94.0%和96.1%,首次在行人再识别问题上超越了人类表现。
仍然是学习全局的特征,但是能自动进行各部分的对齐,
在局部特征的学习中,我们通过计算最短路径进行对齐操作
在预测阶段,只使用了全局特征而没有采用局部特征。
对于度量学习,作者采用的是mutual learning 的方法,并取得了很好的结果
1)原理:
Re-ID一般分为两步:一是提取特征,二是进行度量学习。在AlignedReID中,每张输入图片的最终输出是单一的全局特征,而该全局特征是与局部特征联合训练得来的。
对于全局特征的提取,便是用global pooling在feature map上滑动提取特征。
对于局部特征提取,便是用horizontal pooling对feature map进行逐行提取,然后再进行1x1的卷积操作。这样得到的特征代表人体的水平部分。
最后,一张图像就可以用一个全局特征和多个局部特征代替。
两张图片的距离是全局特征距离与局部特征距离之和。
全局特征距离是指全局特征之间的L2距离
局部特征距离是指通过动态规划的方法求出的最短路径,并通过该最短距离找到对齐的局部特征。
2) 算法:
AlignedReID作者的思路是引入端到端的方法,让网络自动去学习人体对齐,从而提高性能。
深度卷积神经网络不仅提取全局特征,同时也对各局部提取局部信息。对于两张图片中任意一对局部信息,计算它们之间的距离,构成一个距离矩阵。再通过动态规划,计算一条从矩阵左上角到右下角的最短路径。
这条最短路径中的一条边就对应了一对局部特征的匹配,它给出了一种人体对齐的方式,在保证身体个部分相对顺序的情况下,这种对齐方式的总距离是最短的。
在训练的时候,最短路径的长度被加入到损失函数,辅助学习行人的整体特征。
这里面 N 为一个Batch(论文中N=128),通过一个共享的特征提取层后,分别提取局部特征和全局特征,通过N*N的距离矩阵描述,计算triplet loss。
在一个min-batch中,通过global distance计算距离,选择 相同标签差异最大、不同标签差异最小的input构造hard samples。实验中Triplet margin设为0.3。
动态规划实际是为了解决两幅图像之间的 Part对齐问题
3)路径规划过程
part距离公式
从(1,1)到(H,H)的最短路径
4) 协同学习
同时训练两个网络并使它们互相学习,可以有效提高模型的精度
同时训练的两个网络都包含一个分支做分类,一个分支做度量学习
两个做分类的分支通过KL divergence互相学习;两个做度量学习的分支通过作者提出的metric mutual loss互相学习
度量学习的分支又包括两个子分支,一个是全局特征的分支,一个是局部特征的分支
一旦训练完成,分类分支和局部特征分支都被丢弃,只保留了全局特征分支做ReID
1) 通过两个网络(上图θ1和θ2)实现 Mutual Learning
2)预测阶段,只用到了全局特征,没有采用局部特征
原因在于,通过协同学习,提取的全局特征在局部特征影响下,已经能够准确描述图像,和局部特征并无区别
当然还有一个原因,就是全局特征的提取更快,一致性描述更强。
3)Batch解构
对于一个Batch内N幅图像,通过global distance计算两两之间的距离,得到N*N的距离矩阵M,其中Mi,j表示图像(i,j)之间的距离
相互学习损失: