Pedestrian Alignment Network for Large-scale Person Re-identification(对齐并利用空间变换网络stn)
年份:1707.ICCV.
论文:https://arxiv.org/pdf/1707.00408.pdf
代码(.m的代码):https://github.com/layumi/Pedestrian_Alignment本论文着重对错检和body部分缺失引起的尺度和姿态变化问题研究(如上图),前者可能会使检测得到的图像含有过多的背景,后者则是局部缺失,由此产生的misa lignment对reid识别的结果有重要的影响。
由于Pedestrian alignment(行人对齐)和 re-id 是两个相联系的问题。当我们有行人bounding boxes 的 identity labels,我们能找到最优的仿射变换(the optimal affine transformation)用来更好的区分不同的identities。在仿射变换下,行人可以更好地被对齐。进一步,更好的对齐,更具有区别性的特征将会被学习,反过来,匹配的准确率将会提高
对此提出了PAN网络,PAN利用了person alignment 和 re-id 互补的性质。即可以在不用额外的标注情况下同时进行行人对齐和学习判别性的特征描述,提出的网络可以充分利用CNN提取的特征图更多**表现在body上这个注意机制来自适应的定位和对齐行人。
本文的网络分为两个卷积分支和一个仿射估计分支,网络后又采用重排名方式对网络检索结果进行优化。
两个卷积分支:一个基础分支和一个对齐分支。两个分支都是预测训练图像身份的分类网络(基础分支利用原始图像来预测行人类别,对齐分支利用对齐后的图片预测行人类别)。 给定一个原始检测到的图像,**基础分支不仅学会将其身份与其他图像区分开,而且还对检测到的图像的外观进行编码,并提供空间定位的线索(见图3)。 对齐分支与基础分支共享一个低级特征,但处理的是由仿射估计分支生成的对齐特征图。仿射估计分支:对输入图像进行重新定位和估计。使用基础分支的高级卷积层的特征图res4来估计仿射参数。之后,在基础分支的较低级特征图res2上使用仿射变换。在这步,使用一个STN(空间变压器网络)。使用STN,我们可以对包含很多背景的图像进行裁剪或对缺少的部分进行图像零点边界填充。结果,减少了由于误检测造成的的大小位置变化的影响,最后获得的匹配更加准确。
两个分支:作者使用在ImageNet上预训练的除去最后一个FC的ResNet-50。将其应用于Market-1501数据集。(图2中的每个Resi,i = 1、2、3、4、5块表示具有批处理归一化,ReLU和可选的最大池化的几个卷积层。 在每个块之后,对特征图进行下采样,使其大小为前一个块中特征图大小的一半。)因为在Market-1501训练集中有K = 751个身份,我们增加一个FC layer把1 * 1 * 2048大小的CNN嵌入映射 751个未归一化的概率。alignment包含3个ResBlocks和一个平均池层,我们也增加了一个FC层预测多分类的概率。对齐分支和基础分支两个分支不共享权值。使用W1和W2分别定义两个卷积分支的参数。即给定一个输入图像x,p(k|x)定义给定图像x时属于类别k∈ {1…K}的概率.具体地说,
其中,zi为从CNN网络中输出的概率值。对于两个分支,交叉熵损失函数(cross-entropy losses)为:
其中,xa定义为aligned input,其可以从原始的输入求得xa = T(x)。给定label y,真实的分布(ground-truth distribution)q(y|x) = 1 和 q(k|x) = 0 对于所有 k ≠ y。若丢弃Eq.1 和 Eq.2中的0,则losses等于:
因此,在每次迭代中,我们要最小化总共的熵,就等价于最大化正确预测的概率。
仿射估计分支
我们知道,为了解决过多的背景和部分缺失的问题,关键是要预测行人的位置并进行相应的空间变换:
-
当存在过多背景时,使用裁剪策略;
-
当part missing时,我们需要在对应的图像边界进行pad zeros的操作。
两种策略都需要找到仿射变换的参数。在这里,这个功能由仿射估计分支实现。
仿射估计分支的输入为两个张量的**值:基础分支的Res4特征图(14 * 14 * 1024)Res2特征图(56 * 56 * 256)。Res2特征图包含原始 图像的浅层特征并反映了局部模式的信息;同时,Res4 Feature Maps更接近分类层,它编码用于协Identification的关注的行人和语义线索。
仿射估计分支包含一个双线性采样器和一个Grid Network的小网络。GridNetwork包含一个ResBlock和一个平均池层。 变换参数用于产生 the image grid。映射过程如下:
其中,
为特征图上的目标坐标;
另一个
为原始输入feature map(Res4 Feature Maps)的原始坐标
θ11, θ12, θ21 和 θ22 处理大小和旋转变换,而θ13 and θ23处理补偿。在本文,我们定义坐标:(-1,-1)指的是位于图像左上的像素,而(1,1)指的是右下的像素。eg:若
输出图像中(-1,-1)的输入值等价于在输入功能上的(-0.9,-0.7)。
使用一个双线性采样器来弥补像素丢失,并分配0在超过原始图像的位置上。因此,我们从原始特征图V到aligned输出U中获得一个内射函数。更正式地讲,函数如下:
其中,
在本文中,我们的行人对齐在浅层的特征上而不是原始图像(减少运行时间和模型的参数)。这也解释了在features上使用re-localization grid。可视化如图3所示。可以看到通过ID的监督,我们在一定程度上可以重定位行人和检测的正确性。
3.4 Pedestrian Descriptor
给定微调的PAN模型和一个输入图像xi,the pedestrian descriptor是base分支和alignment分支的FC features 的加权融合。即,我们从原始图像和aligned图像中获得行人特征。4.3节的实验证明:这两个特征相互互补并提高re-id性能。
本文最后采用一个简单的特征融合: fi = g(f1i, f2i).其中f1i and f2i 分别是两个类型图像的FC层descriptors。我们在最后的平均池化后转化成一维的向量作为每个分支的pedestrian descriptor。表示为:
其中| · |操作表示一个L2-normalization步骤。在L2-normalization步骤后,串联对齐后的descriptor 和 原始图像的descriptor。若没有明确指出,则α = 0.5。
3.5重排序
重排序在RE-ID中主要起到画龙点睛的作用,是用来优化前面的结果的。
首先通过按gallery images与the query之间Euclidean distance的排序获得the rank list N(q, n) = [x1, x2, …xn] 。欧式距离计算如下:
其中fi 和 fj分别是图像i和j的L2-normalization 特征。之后再执行re-ranking来获得更好的检索结果。
除了欧几里得距离,我们还考虑the Jaccard similarity。为了介绍此距离,我们先对每个图像定义一个稳健的检索集。The KNN的 R(p,k)包括对于query为p的top-K检索的rank:
根据 扩展集合 R to R以包含更多的正例样本(positive samples)。
对于R使用Jaccard similarity 来重新排序。
当我们使用正确的匹配图像来产生retrieval,我们应该取回一个和原始的query相似的rank list。Jaccard similarity 计算如下:
其中| ·|定义集合的基数,若R *(q,k)和R *(xi,k)共享更多的元素,xi就更像一个真实匹配。这有助于我们区分一些难的困难样本与正确的匹配项。在测试时,这个相似距离加入欧氏距离来重新排列结果。实验结果表明该操作可以提升检索效果。
参考:https://blog.****.net/xuluohongshang/article/details/78992315