论文思想:
1.Person re-id通常在完美行人detection的假设下进行,先输入完美的bounding-box包围的图像,然后抽取特征和target进行比对,然而,现实场景中,完美detection的假设前提不成立。
2.已有前人尝试用detection+re-id的思路来解决现实场景中的re-id问题,不过,当时采用的思路是滑动窗口检测+手工选择特征的方式,并且将detection和re-id分为两个stage。
3.本文的思路是使用一个深度网络解决整个Person Search问题,让detection网络和re-id网络共用一部分CNN卷积层,联合优化。并且本文提出了一种Online Instance Matching Loss,能比Softmax Loss更快的收敛(为什么?)。此外,本文还贡献了一个Person Search的数据集便于研究者进一步研究Person Search。
模型结构:
1.首先通过proposal net和identification net共用的骨干网络提取到包含1024个通道,分辨率为原始输入(3*224*224)的1/16的feature maps(1024*14*14)。
2.然后将1中得到的feature maps(1024*14*14)送入proposal net生成行人的bounding box,具体做法是:首先用512个3*3的卷积核将1中得到的feature maps进行卷积,然后在包含512通道的feature maps(512*14*14)上借鉴运用faster rcnn的anchor机制,在feature maps上的每个位置预测9个anchor,再用softmax分类器找到前景(行人),再通过linear regression修正框的位置,再通过non-maximum suppression最终保留128个bounding box。
3.通过ROI-Pooling层对1中的feature maps(1024*14*14)上的每个bounding box(由第2步得到)进行池化,然后通过后续的卷积和全局平局池化层,将每个bounding box对应的部分特征图转化为2048维的特征向量。到此,再应用softmax分类器拒绝non-person,用linear regression调整框的位置;与此并行的,将2048维的特征向量用L2正则化映射到256维,用该256维向量与target-person的特征向量做cosine余弦相似性度量。在训练阶段,用OIM Loss监督intentification net的训练。对于整个网络(包括1,2,3步)采用多任务损失的训练方式训练。
整个网络的结构图如下:
OIM Loss:
在外部存储中维护LUT(look up table)和CQ(circular queue)中存储的特征向量。
当在输入的mini-batch中遇到某个labled identities的instance时,更新LUT中对应id的labled indentities vector,若遇到unlabled indentities时,剔除CQ中过时的特征向量,将这个新的unlabled indentities vector加入CQ。
读后尚存的一些疑问:
1.为何OIM Loss能比Softmax Loss更快的收敛?为何在Indentification网络中应用一个Softmax Classfier来匹配输入与target person不够好?
2.OIM Loss的梯度是如何计算得到的?
3.CMC top-k是如何计算的?