赞
踩
论文:Joint Detection and Identification Feature Learning for Person Search
链接:https://arxiv.org/abs/1604.01850
这篇是CVPR2017关于行人重识别(Person Re-ID)的文章,由港中文、中山大学和商汤联合提出。本文主要提出了一种行人搜索的新框架,把传统的两门独立的研究任务——行人检测和行人重识别结合起来研究,且只需要使用单个CNN来进行训练,真正意义上实现了end-to-end训练;同时本文还提出了一种OIM损失(Online Instance Matching)来训练网络,它比一般的Softmax损失函数的效果更快更好。
现有主流的行人重识别方法中所使用的数据和方法主要集中在经过裁剪的行人照片,也就是人为或者通过算法把行人完美地裁切出来了,如下图(a)所示,这对单独研究如何提升行人重识别准确率等方面肯定是有利的,毕竟减少了很多背景的干扰;
但是经裁切的行人图片明显与现实场景中的图片如摄像头抓拍的行人全景图片(如下图(b))差异较大,如果直接把全景图送进神经网络去提取特征,效果肯定是比经裁切的行人图片要差很多的,因为行人重识别本身就存在诸多难点需要克服,如人物的姿态时常是变化的,因为人本身不是刚体(不像汽车那样固定形态),摄像机的角度,光照强弱,像素,遮挡,背景干扰等等,所以如果用的是全景图片进行训练而不加入其他的手段辅助训练,只会让这些难点放大化,达不到很好的效果。
为了使得ReID领域可以尽快达到商用的价值,需要逐步缩小这种差距,怎么做?
与传统方法中将行人检测和再识别分成两个问题单独研究不同,本文利用单个CNN将两者结合来同时解决这些问题,该CNN分为两部分:第一部分是pedestrian proposal net,给定一张行人全景图,pedestrian proposal net可以产生候选行人的 bounding boxes,在后续CNN会将这些bounding boxes输入给identification net进行特征的提取,从而匹配目标人物;另一部分是刚刚提到的identification net,主要是用来提取行人的特征和检索目标进行比较。两者在joint optimization联合优化的过程中具有相互适应的特点,从而消除自身外另一网络带来的问题。对这点的解释是:pedestrian proposal net因为是用来产生候选行人的 bounding boxes,所以更注重的是召回率recall,希望能把行人给找齐,而那些错误的目标或者是框没有匹配对都可以通过后续的identification net来修正,所以说它们各司其职,分工明确,合作提高网络识别的准确程度。同时通过部分共享卷积层,可以有效的加速网络的学习。
本文的另一个亮点就是提出了OIM损失(Online Instance Matching)。传统的行人重识别的特征学习主要使用pair-wise或者triplet distance loss functions,但是这两种方法都不是很有效的,因为它们一次都只能用少量的数据做比较,对于N个输入数据,会存在N^2组合的可能性,这会导致计算量很大,特别是当N很大的时候,网络会学习得很慢,而目前有研究提出采用不同的采样数据的方法可以在一定程度上提高速度和效果,比如triplet loss就有很多种变种形式,但是当N不断增加时,采样难度也在提升;另一种常用的方法就是使用Softmax loss function去区分行人的身份identities,就把行人重识别问题当成是多分类问题去做,这样就解决了pair-wise或者triplet distance loss functions不能一次比较所有样本的缺陷,但是Softmax loss function也存在它的缺点,就是随着行人类型(不同身份的人)数量的增多,训练一个如此庞大的Softmax 分类器会变得及其的慢,甚至更糟糕的时候网络会无法收敛。
所以为了解决上面pair-wise、triplet distance loss functions以及Softmax loss function带来的问题,本文提出 Online Instance Matching(OIM)损失函数。OIM的原理是:利用来自所有 labeled identities 特征组成一个 lookup table(查询表) ,与mini-batch样本之间进行距离比较;另外还有全景图中出现的许多 unlabeled identities 都可以被视为是天然的negatives(负样本),因此也可以将它们的特征存储在circular queue(循环队列)中并进行比较。这也是行人重识别加上行人搜索后带来的一个天然优势,因为传统的行人重识别都是采用裁切好的行人图像,自然就不会存在那些没有label的人参与训练了。而且OIM损失函数是无参数的,在后面的实验结果可以看出,它是比 Softmax loss 收敛得更快和更好的。
因为这里涉及到很多新的概念如 labeled identities 、unlabeled identities、lookup table 和 circular queue,如果不解释一下,后面可能读者会看不太明白:
labeled identity:与目标行人相吻合的proposal。
unlabeled identities:包含行人但不是目标行人的proposal。
background clutter:包含非行人物体或者背景的proposal。
在OIM损失函数中只考虑前两者,即 labeled identity 和 unlabeled identities。
lookup table(LUT):把所有 labeled identities 的特征组成一个查询表lookup table,那么之后我只需要将需要查询的mini-batch的每个样本去跟这个查询表的已知标签的样本进行距离比较,就可以知道当前的这个人是什么身份了。
circular queue:跟LUT同理,我们把 unlabeled identities 当作是负样本,也可以存在一个循环队列circular queue中,为什么这边不也一样叫LUT,这是因为这里的circular queue在每一轮迭代过后,会将新的特征向量压入队列中,并剔除那些过时的,呈现一个循环的过程。
本文还有第三个贡献,就是收集和标注了一个大规模的行人搜索数据集,覆盖了城市街道的场景以及电影中包含有行人的截图,加入电影的图片是为了增加场景的多样性,如下表
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。