今天为大家分享中山大学人机物智能融合实验室HCP Lab被CVPR 2017收录的论文:Person Search成果。
Joint Detection and Identification Feature Learning for Person Search
联合检测的行人比对
Tong Xiao*, Shuang Li*, Bochao Wang, Liang Lin, Xiaogang Wang
IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Spotlight, 2017
论文:http://arxiv.org/abs/1604.01850
代码: https://github.com/ShuangLI59/person_search
当前主要的行人再识别的评测指标以及方法都主要利用截取好的行人图像与候选图像进行匹配。但是在真实的生活场景中,很多时候需要从大量的图像原图中搜索特定的目标人物,而原图中并不包含行人的标注框信息。为了弥补这个差距,我们提出了一种新的深度学习框架,将行人检测(Pedestrian Detection)和人物再识别(Person Re-Identification)看做是一个任务——人物搜索(Person Search),而不是两个单独的任务。我们提出了一种新的损失函数——Online Instance Matching,用于训练,该损失函数具有很强的伸缩性,能够适应包含大规模数量人物 ID 的数据集。此外为了验证我们的方法,我们收集了一个 Person Search 的数据集,该数据包含 18184张图像,8432 个ID,96143 个标注框。实验证明我们的方法比其他将两个任务分开的方法效果要好,我们提出的 OIM 损失函数比 Softmax 损失函数,收敛更快,效果更好。
我们提出的方法在在单个神经网络框架下,同时处理行人检测和人物在识别,如下图。给定一张包含目标人物的原图,将图像输入到 stem CNN,得到一系列的特征图(Feature maps)。在这些 feature maps 上使用 pedestrian proposal Net 提取候选人物的 bounding box,使用 RoI-Pooling 提取候选人物的特征,最后通过 Identification Net 得到候选人物的一个经过 L2 归一化的 256维的特征。在测试阶段,将目标人物的特征与图像库中人物的特征进行距离比较,得到一个排序结果。训练阶段,我们提出了一个 Online Instance Matching(OIM)损失函数,用于监督学习 Identification net,与其他训练 pedestrian proposal net 的损失函数一起,构成一个 multi-task 的框架。
➤结构模型
下图是我们提出的框架,Pedestrian Proposal Net 生成候选人的 bounding box, Identification Net用于提取对应人物的特征。我们将提取到的特征映射成 L2 归一化的 256维,通过 OIM 损失函数训练。整个框架中 Pedestrian Proposal Net 和 Identification Net 共享低层的卷积特征。
➤Online Instance Matching Loss
在下图中,左边部分,蓝色框表示有ID的候选人物,橙色表示没有ID的候选人物。在训练过程中,我们同时维护一个 Lookup Tabel(LUT) 和一个 Circular Queue(CQ)用于存储特征。在网络 forward 的时候,每个ID的候选人物,与所有存储的特征进行匹配。在 网络 backward 的时候,根据带 ID 的人物,更新对应 ID 的特征,同时将新的不带 ID 的候选人物特征,放到队列 CQ 中。注意,LUT 和 CQ 都是用于存储的数据集结构,不是 CNN 的网络参数。
OIM 和 Softmax 很像,最大的不同在于 OIM 不需要额外学习参数,梯度直接通过特征的计算得到,不需要分类矩阵的转换。通过对 LUT 和 CQ 中的样本采样,可以减少运算量,当ID 数量非常大的时候,其作用更加明显,相比于 Softmax具有很强的伸缩性(Scalability)。此外相对于 Softmax,OIM 能够充分利用不带标签的数据。
我们收集和标注了一个大规模的 Person Search 数据库。为了增加场景的多样性,数据有两个来源。一方面通过手持摄像机在城市中选取街景,另一方面,收集电影中包含行人的场景。
数据集包含 18184 张图像,在这些场景中标注 96143 个行人的 Bounding Box,最后包含 8432 个 ID。下图是两个来源的具体统计数据:
数据集中只标注了直立行走的人,其他 pose 或者被遮挡严重的行人被忽略。带 ID 的行人在数据集中的至少出现在两张原图中。为了使得背景的行人不包含带 ID 的人物,我们把这些背景人物当作 identification 任务的负样本。在标注背景行人中,我们忽略那些高度小于 50个像素的行人,因为即便是人眼也很难识别。下图统计了带 ID 和不带 ID 的行人的高度分布。
我们将数据集分成两部分,训练集和测试集,两者之间图像和带 ID 的人物之间没有交叠。Table-1 显示了两部分数据集的统计信息。带 ID 的测试人物,分成两部分 query 和 gallery。对于 2900 个测试 ID,我们随机选取其中一张图像作为 query,gallery 包含同一ID的其他图像,以及随机选取的不包含该ID的图像。不同的 Query 的 gallery不相同,共覆盖 6978张图像。
为了更好了解不同的 gallery 大小对 person search 性能的影响,gallery 的大小从 50到 4000 设定了一系列评价指标。以 gallery 大小 100 为例,每张图像大约包含 6 个行人,我们的任务就是在 600个行人中找到目标人物。
我我们使用两个评价指标,CMC(cumulative matching characteristics) 和 mAP(mean Averaged Precision)。
我们的框架基于 Caffe 和 py-faster-rcnn。使用在 ImageNet 上 pretrain 的 ResNet50 的模型用于参数初始化,然后结合我们提出的 OIM 进行训练。我们比较了3种Detection 方法与 5种 ReID 方法,组合的性能的结果。
从上述表格中可以看到,随着Detection性能的提高,使用 ReID 的结果都能够得到提升。在Detetion方法确定的情况下,Re-ID性能越好,其结果也越好。值得注意的是,使用联合训练的方式的性能,比其他方法在 GT 标注下的结果,还要略好一点。其主要原因是,使用 OIM 能够充分利用未标注人物的信息,增加数据样本的多样性。
此图为可视化结果
*点击“阅读原文”到HCP Lab官网读原汁原味英文版介绍😘