Joint Detection and Identification Feature Learning for Person Search

Joint Detection and Identification FeatureLearning for Person Search(整合行人检测和行人再识别的行人搜索新框架)

Abstract

现存的行人再识别基准和方法主要是在queries and candidates之间匹配已经裁剪过的行人图片。但是现实中的场景不会这样理想,在做行人搜索时,我们需要先用行人检测的方法标记出行人,再用行人再识别的方法搜索出特定的人。

本文提出了一个针对行人搜索的新的深度学习框架,它能够将行人检测和行人再识别整合到一个卷积神经网络。本文建议使用在线实例匹配(online instance matching,简称OIM)损失函数来训练网络,因为它能很好的适应大量的识别数据集。

数据集包含18184 images,8432 identities和96143个行人包围框,实验结果展示,这个整合的框架比那些为整合的方式工作的更好,并且OIM损失函数比传统的softmax损失函数收敛更快。

1.  Introduction

行人再识别旨在在gallery中匹配target person。他在视频方面有广泛的应用,如识别嫌疑犯,交叉视频的行人跟踪(两个以上摄像机拍摄到的内容,不一定连续),行人活动分析。这个问题具有挑战性,因为人的姿势,摄像机的角度,光线,背景噪声等都会影响检测。

尽管已经提出了大量的行人再识别数据集和方法,但是他们还是很难应用到现实世界中。因为行人再识别的研究使用的数据集大多数是手工标记的剪切过的图片。

如上图,可以很清晰的解释了行人再识别和行人搜索的不同点。行人再识别,是在已经假设行人检测已经做的完美的基础上做的再识别研究。而行人搜索更贴近于现实世界的应用,更具有挑战性,正如检测行人时可能不可避免的出现false alarms(假正例吗?不确定),漏检,misalignments(包围框错位),这些都会对行人搜索的效果产生影响。

在2014年,有人首次将行人检测和再识别结合起来,提出一种基于行人检测和人的匹配得分的滑动窗口方案来解决行人搜索问题。但是手工设计特征和滑动窗口的自身存在的限制性因素越来越明显。

文章中,提出了一个针对行人搜索的新框架。传统的方法时将这个问题分成两个任务(行人检测和行人再识别)。他们在一个单一的CNN中处理这两个任务。

我们的CNN包括两个部分,给出输入是gallery image,用pedestrain proposal net(行人候选网络)来产生候选行人的bounding boxes(包围框),然后将他们放入identificationnet(身份识别网络)来提取特征,最后和target person 进行比较。Pedestrain proposal net和identification net 在整合优化中相互适应。例如:proposalnet会更优先候选框的召回率(召回率高,那么假正例率也会变高)而不是精确率(精确率高那么假反例就会增多),因为这些假正例(非行人却被误认为是行人的候选框)会在后面的特征匹配中被剔除掉。同时misalignments of proposal(候选区错位)也可以接受,他们会在后面的identification net 被调整。为了提高整个系统的可扩展性,我们鼓励两个方面共享基本的卷积特征映射,这能够加快推理过程40倍。

扫描二维码关注公众号,回复: 1154993 查看本文章

传统的再识别特征学习主要使用pair wise 或者 tripletdistance 损失函数。然而,她们都不是很有效,因为每次都只有少量的样本进行比较,并且当输入N张images时有中组合情况。不同的采样策略对收敛速度和质量都有影响,但是当N增加时很难找到有效的采样策略。

另一个方法是用softmax损失函数来分类标识,这个函数能够同时比较所有的样本。但是,当类别增加时,训练大的Softmax分类器矩阵时会特别慢,甚至无法收敛。

2.  Related Work

2.1 行人再识别

传统的行人再识别采取的方法是:手工设计特征值、手工将摄像机视角转化成特征值、手工设计距离度量函数(损失函数)。后来提出使用基于深度学习的方法来处理这些方面,Li设计了CNN模型,它的输入是裁剪过的行人图片,使用 a binary verification loss function来训练网络参数。Ding 使用triplet sample来训练CNN以使同一个人的图片的特征值尽可能相似,不同人图片之间的特征值尽可能相异(同小异大原则)。    

近期的工作是对非正常图片的行人再识别,如:分辨率低、局部遮挡的图片。

2.2 行人检测

这部分工作也经历了从手工设计到CNN的过程,有人曾提出过用“复杂感知增强算法”来学习CNN检测器。

3. Method

本章作者提出了新的行人搜索框架。

首先,经过Stem CNN将raw pixel转换成Convolutional Feature Maps。然后,放到Pedestrain Proposal net生成候选行人的bounding boxes。然后放到一个带有Rol(regionof interest) Pooling的识别网络,提取出每个候选区(boundingbox)对应的L2正则化256维特征向量。

在推理阶段,会根据bouding box与target person之间的距离将bounding box排序。

在训练阶段,用OMI loss function和一些其他得损失函数来监督identificationnet。

3.1 模型结构

Stem CNN:采用ResNet-50作为CNN模型的基础。前面是conv1(7*7)的卷积层,接着是4个blocks(命名为conv2_x到conv5_x) 他们分别包含3,4 ,6 ,3个residual units。我们把conv1到con4_3作为主干部分。给定输出图像,能够产生的features maps有1024个channels,分辨率是原图的1/16。

PedestrianProposal Net:首先通过512*3*3的卷积层转换出行人特征,然后按照每个特征图的位置关联9个锚点,然后使用Softmax分类器来判断是否为行人,同时通过线性回归来调整他们的位置。最后选出128个bounding boxes

IdentificationNet:用于提取每个候选区的特征,并和目标特征做对比。首先用ROI-Pooling从每个候选区的特征图中池化出一个1024*14*14的区域。然后,他们通过ResNet-50的con4_4到conv5_3,最后通过全局的平均池化层汇总成2048维特征向量。

一方面,使用Softmax分类器去除无行人的bounding boxes,使用Linear regression矫正bounding boxes。另一方面,在推理阶段,将这些特征放到L2正则化的256维子空间,并且使用它们来与目标行人做相似度比对。在训练阶段,用OIM和其他损失函数来监督identificationnet,用多任务方式联合训练net。

3.2 Online Instance Matching Loss

左图中,蓝色框内的是有标签的目标的实例,橘色框内的是无标签的行人,剩余的是背景。右图表示的是:对于有标签的实例打上其所属标签的id并将特征向量放入查找表中对应的位置;对于无标签的实例将其特征向量放入循环队列(Circular Queue)。向前传播是,标记的行人要与所有的已经存储的特征进行匹配;反向传播时,根据id更新LUT,并将新的特征放入循环队列、剔除过时的特征向量。
特别注意:LUT和CQ都是外存,并不是CNN中的参数。

我们的目标是使相同标签的实例特征值相似度尽可能高,不同标签的实例之间的相似度尽可能小。

以下提出的OIM只考虑labeled identity的实例和unlabeled identity的实例
前向时minibatch的图像得到的proposals与LUT的ID匹配的是labeled identity的实例,minibatch的图像得到的proposals与CQ匹配的是unlabeled identity的实例,且不是新的unlabeled identity的实例,后向传播时,把与LUT相匹配的proposals特征更新到LUT表中,不匹配的是proposals且是与CQ不匹配的prosal特征的加入到CQ队列中,并弹出失效的老的proposals特征。

为最小化同一ID的person,最大化不同ID的行人差异性,我们要存储所有person的特征,这可以通过前向计算所有训练图像得到,但无法用SGD优化参数,因此选择一个在线近似Loss来优化,与GT IOU交叠满足阈值的proposals为labeled identity的实例,所以用LUT存储每个minibatch中labeled identity的实例,proposals,每一列为一个ID实例,前向计算时,会计算minibatch sample 与所有LUT中labeled identity的实例的cosine 相似度,通过矩阵乘法,后向传播时,如果query的ID为t,则更新LUT的第t列与之ID对应的labeled identity实例特征,如下:

我们用循环队列存储最近几个minibatch的unlabeledidentities的proposals实例,同样,前向的时候,计算minibatch sample 与所有CQ中labeled identity的实例的cosine 相似度,通过矩阵乘法,后向传播时,把没能匹配的sample proposal 特征放入到队列中,移除过时的,保证队里的长度不变。

为什么不用Softmax loss?

因为每个ID太少的实例,每个图像仅几个ID,对很多的ID分类,分类阵会稀疏,每次SGD迭代因计算容量的限制,只能为几张image,这样正样本和负样本极不均匀,反向传播会有很大的方差离散,不可以有效学习,另外,softmax loss无法利用unlabeledidentities信息,因为他们没有对应监督的ID的号。

采用OIM loss更容易过拟合,所以作者采取将特征投影到L2正则化的256d的低维子空间,以减弱过拟合的影响。

4. Dataset

4.1 数据统计

随机选择一张test image中有ID标注的一个实例作为query,包含该ID其他实例的所有图像,和一些随机采样得到的images组合成该query对应的gallery。

不同的queries有不同的galleries,they cover all the 6978 test images。

4.2 评估和度量标准

采用mAP和top-K

5. Experiment Settings

5.1 实验比较

框架的实现基于Caffe 和py-faster-rcnn,用ImageNet-预训练模型参数对框架的ResNet-50做参数初始化。

循环队列设为5000

temperaturescalar设置为0.1

每个mini-batch包含两个场景图片

学习率初始化0.001,40k次迭代后降至0.0001。并保持学习率不变,最终模型在50K次迭代后收敛。

比较我们的“整合新框架”和“将行人检测与再识别分开的方法”。后者,其中有3中行人检测和5种行人再识别方法,自由组合后共15中组合方式。其中CCFdetector(Hand-crafted features)直接用,没有finetune,其他两个ACF和Faster-RCNN (CNN) with

ResNet-50在该数据集下做了finetune。

GT标准框作为理想检测器的检测结果!

分框架为CNN+IDNet两部分组合,而整体框架为CNN+IDNet+OIM

gallery size 为100

用detector boxes训练IDNet时,我们发现增加背景噪音能提高实验效果,但增加无标签的行人目标不能提高实验效果

5.2 OIM loss的优势

不需要学习一个大的分类矩阵,只需要直接学习特征

Low-dimensional subspace

采样维度的设置:

为了正则化神经网络的训练,我们将特征映射到低维子空间,并且选择256维来加速特征之间距离的计算。

Detection recall And Gallery size

说明:新框架、联合训练的新思想对提高行人搜索的效果非常好。

基础知识

Pedestraindetection:在图片中检测出所有的行人。

Personre-identification:识别出特定的人

Personre-identification benchmarks         //行人再识别基准

Matching croppedpedestrian images        //裁剪过的行人图片

Queries andcandidates            //查询和候选

The annotationsof pedestrian bounding boxes         //标记的行人包围框

Convolution neuralnetwork             //卷积神经网络

猜你喜欢

转载自blog.csdn.net/qq_33614902/article/details/79501890