阅读笔记-FPNN-DeepReID Deep Filter Pairing Neural Network for Person Re-Identification

image.png

来源:CVPR2014, 港中文,Xiaogang Wang大佬

这篇文章设计了一种类似siamese的网络结构度量两个候选观测之间的相似度,并提出了CUHK03这个数据集。
Filter Pairs 是指孪生结构的两个分支的卷积核不共享参数。

最大的motivation是认为真实场景中的detection结果会存在很多misalignment情况,因此需要进行部件的对齐。CUHK03提供了更大规模的ReID数据集,同时该数据集提供了SOTA检测器的检测结果。

Model

模型包含六个部分,如下图:


image.png
  • convolutional and max-pooling 层,两张大小为的观测经过一个卷积()和池化层,进行特征的提取,最终得到的featmap,注意这里的激活函数采用的ReLU函数。max-pooling有点类似于ROIpooling的思路,将featmap划分成网格,每个格子进行maxpooling获得的特征图。
  • patching matching 层,这一层主要是度量水平方向的misalignment,具体而言,将featmap水平划分为M个stripe(想起了PCB模型), 然后每一个stripe水平分成份(其实就是每一列)与另一个观测的对应stripe的特征计算相似度矩阵,于是每个stripe获得个的矩阵(这里相似度矩阵是分通道计算的。),于是所有的stripe就获得个相关矩阵。
  • maxout-grouping 层,这一层主要是对channel上的分组处理,将分成组,每一组中的相关矩阵在通道上进行最大值选择,于是获得了个的相关矩阵。
  • convolutional and max-pooling层,这一个操作是将 作为通道数,卷积核大小为, 分辨率为的featuremap作为输入,进行卷积和池化,得到的featmap,主要用来考虑spatial信息。
  • 将特征拉成列向量,进一步的抽象成长度为N的特征。
  • softmax层,两类,判断是否属于同一个人。损失函数采用的交叉熵损失。

具体实验参数如下表:


image.png

Training Strategies

  • Drop out. 主要是为了增强对 misdetection patch的鲁棒性。具体实现是在第一个阶段的convolutional 层的输出进行随机掩码。
  • Data augmentation. 主要为了缓解正样本对相对于负样本对太少的问题。具体实现是在原始图像中样本的附近进行多次采样构建正样本对。
  • Data balancing. 是指每个batch内正负样本的均衡,避免batch训练时梯度方向过于偏激。具体实现是在训练开始的若干次迭代使用相等的正负样本,然后逐渐增加负样本占比,直到5:1
  • Bootstrapping。通过对分错样本打分机制,在新的训练过程中使用难分样本进行训练。

Dataset

即CUHK03数据集的提出。
特性1: 提供原图,以及使用SOTA检测器获得的检测结果。
特性2:视图来自于多个view的摄像头
特性3: 每个序列来自于时许较长的拍摄,涉及到较大的光照变化。


image.png

Experiments

总结

FPNN这篇文章主体是针对于两个观测设计了一种计算相似度的网络,以更好的处理misalignment问题。具体手段包括:每个stripe中水平offset的刻画、channel上的max池化、全连接层。
另外 第二个convolution layer时,是在个通道上进行的,相当于把图像按照stripe进行了重要性的学习,这时候的感受野是整张图象。

你可能感兴趣的:(阅读笔记-FPNN-DeepReID Deep Filter Pairing Neural Network for Person Re-Identification)