阅读笔记-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 层,两张大小为H_{im}\times W_{im}的观测经过一个卷积(ks=m_1)和池化层,进行特征的提取,最终得到H_0\times W_0\times K_1的featmap,注意这里的激活函数采用的ReLU函数。max-pooling有点类似于ROIpooling的思路,将featmap划分成网格,每个格子进行maxpooling获得H_1\times W_1\times K_1的特征图。
  • patching matching 层,这一层主要是度量水平方向的misalignment,具体而言,将featmap水平划分为M个stripe(想起了PCB模型), 然后每一个stripe水平分成W_1份(其实就是每一列)与另一个观测的对应stripe的特征计算相似度矩阵,于是每个stripe获得K_1W_1\times W_1的矩阵(这里相似度矩阵是分通道计算的。),于是所有的stripe就获得MK_1个相关矩阵。
  • maxout-grouping 层,这一层主要是对channel上的分组处理,将K_1分成T组,每一组中的相关矩阵在通道上进行最大值选择,于是获得了MTW_1\times W_1的相关矩阵。
  • convolutional and max-pooling层,这一个操作是将 MT作为通道数,卷积核大小为m_2, 分辨率为W_1\times W_1的featuremap作为输入,进行卷积和池化,得到W_2\times H_2\times K_2的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时,是在MT个通道上进行的,相当于把图像按照stripe进行了重要性的学习,这时候的感受野是整张图象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容