行人重识别(Person Re-ID)【三】:论文笔记——Joint Detection and Identification Feature Learning for Person Search
Integrated Recognition and Classification Feature Learning in Person PS
前言:
本文基于CVPR2017探讨了行人重识别问题(Person Re-ID),由港中文大学、中山大学与商汤科技三方合作完成。文中提出了一个新的行人搜索框架。该框架将传统上被视为独立的两个研究领域——行人的检测与重识别结合起来研究,并仅需借助单一卷积神经网络(CNN)即可进行训练。文中还引入了一种名为OIM损失(Online Instance Matching)的方法用于网络训练,并实现了真正的端到端学习过程
现有主流的人行重识技术主要依赖于经裁剪的人行照片作为核心数据来源。如图(a)所示,在这一过程中,人工或借助算法手段将行人图像进行精确切割。这种处理方式不仅提升了数据质量,并且有助于从单一视角深入探究提高人行重识准确率的方法;然而,在实际应用中由于存在大量复杂背景干扰因素的存在而面临诸多挑战

但是经过裁剪后的行人图像明显存在与实际拍摄环境下的行人图像(如上图(b)所示)较大差异。显然,在直接输入全场景图像到神经网络中提取特征时(效果肯定比经过裁剪后的行人图像要差很多),因为行人的重识别问题本身就面临着诸多挑战需要解决:例如人体的姿态经常会发生变化( unlike cars which maintain a fixed shape),摄像机成像条件( camera angles)、光照强度( illumination levels)、像素数量( resolution)、遮挡情况( occlusions)、背景干扰等( background noise)都是影响识别的关键因素。因此,在仅依靠全场景图像进行训练时(如果不采取其他辅助手段),这些问题将会被夸大化而难以得到良好的解决效果

为实现ReID领域尽快达到商用价值的目标,在逐步缩小这一差距的过程中,请问有哪些可行的措施?
与传统方法中将行人检测与目标再识别视为两个独立的问题分别研究不同,在本文中我们提出了一种基于单一卷积神经网络(CNN)的集成方法。该网络由两个主要模块组成:其中一部分是 pedestrian detection module( pedestrian proposal net),其接受一张完整的行人图像作为输入,并生成一系列候选框( bounding boxes)。这些候选框随后被传递至 identification module 进行特征提取,并通过 joint optimization 方法实现目标人物的身份匹配。另一部分为 identification module(目标再识别网),其主要功能是提取行人的特征并完成身份匹配任务。在这一联合优化过程中,两模块展现出良好的相互适应性:pedestrian detection module 侧重于高召回率(Recall),旨在尽可能多地捕获所有相关行人;而 identification module 则专注于精确匹配以避免误判。为了进一步提升整体性能,在设计网络架构时我们采用了共享卷积层策略以减少计算开销
本文提出了一种称为**OIM损失(Online Instance Matching)**的新方法。传统的行人重识别方法通常采用pair-wise或triplet distance loss函数来提取特征进行匹配。然而这两种方法的效果并不理想,因为它们每次只能比较少量的数据。当输入数据数量为N时会产生N²种组合可能性,在实际应用中这会导致计算复杂度急剧增加。特别是在处理大数据量时会严重影响算法运行效率;为了缓解这一问题一些研究者提出采用更为高效的采样策略以提高计算速度和分类精度。而另一种常用的方法则是将行人的身份识别问题转化为多分类问题来处理这可以通过引入Softmax loss函数实现。这种方法的优势在于避免了pair-wise或triplet loss函数在处理大规模数据时带来的计算瓶颈但同时也带来了新的挑战:当不同身份的人数不断增加时训练一个覆盖所有类别的Softmax分类器将会面临巨大的困难甚至可能导致模型无法收敛
为了应对pair-wise、triplet distance loss functions以及Softmax loss function所引发的问题,本文提出了 Online Instance Matching(OIM)损失函数作为一种解决方案。其原理在于:通过整合所有 labeled identities 的特征信息构建 lookup table(查询表),并与 mini-batch 样本进行距离计算;此外,在全景图中出现的大量 unlabeled identities 可被视为天然的负样本,并将其特征存储于 circular queue(循环队列)中进行对比匹配。这也正是行人重识别与行人搜索结合所带来的天然优势所在:传统的行人重识别方法通常采用预处理裁切好的图像作为训练样本,因此难以涵盖未被标注的人群参与训练的情况。值得注意的是,在后续实验中我们发现该方法相较于 Softmax loss 几乎无需参数调节便展现出更快捷、更高效的收敛特性。
由于涉及了许多新概念——如labeled identities、unlabeled identities、lookup table以及circular queue——如果不加以解释的话,在后续内容中可能会让读者难以理解。
其中:
- labled identity是指与目标行人相匹配的proposals
- unlabeled identities指的是包含行人但不是目标行人的proposals
- background clutter则代表了非行人物体及背景元素
在OIM损失函数中只考虑前两个部分
LUT(look-up table):通过将所有 labeled identity data 的 features 进行组合存储在一个 look-up table 中,在后续步骤中只需对 mini-batch 中每个样本与该 look-up table 中已知 labeled samples 进行 distance comparison 即可确定当前的身份.
circular queue 类似于 LUT 的概念,在该框架下我们也将未标记的身份被当作负样本进行处理。同样也可以形成一个循环队列,在每一轮迭代结束后,在循环队列中加入新的特征向量,并移除不再活跃的项,在此过程中形成闭环。为什么不也不采用类似的命名方式呢?
本文第三项主要贡献是系统性地收集与标注了一个规模宏大的行人搜索数据集;这些数据集涵盖了城市街道的各种场景以及从电影中提取的人像截取样本。为了增强样例的多样性,在表1中展示了该数据集的具体信息:包括18,184张图片、8,432个身份(人)和96,143个行人bounding boxes。

具体方法:
下面文章详细介绍了如何实现本文提出的方法,主要过程参考Figure 2:

先简要说明流程:
- 给定一张行人全景图后,在第一阶段中使用一个stem CNN模型将原始图像的像素值转换为特征图,并基于之前介绍的行人检测网络( pedestrian detection network)在这些特征图上构建模型以预测候选行人的边界框;
- 将上述预测得到的边界框输入到能够执行RoI-Pooling操作的识别网络中,并提取每条边界框经过L2归一化处理后的256维特征向量;
- 在推理阶段中通过对库内行人工特征与其目标行人的特征距离进行排序来实现行人的识别;
- 在训练过程中除了采用OIM损失函数外还引入其他辅助损失函数以联合使用的方式对识别网络进行监督训练从而完成整个网络的优化任务。
接下来文章先介绍了CNN网络的结构:
1)文中采用了ResNet-50 作为CNN模型的网络结构,在网络的前端有一个7 × 7的卷积层(conv1),之后是4个blocks块(conv2_x到conv5_x,分别有3、4、6、3个残差模块),利用其中的conv1到 conv4_3之间的部分作为stem CNN的部分 。给定一张输入图片,stem CNN会产生1024个通道的 features maps,它们的分辨率只有原图像的十六分之一;
2)根据生成的这些features maps,利用512 × 3 × 3的卷积层来对行人特征进行转换,接着在feature map的每个位置利用9个anchors (源于Faster RCNN)和1个Softmax分类器 来预测每个anchor是否包含行人在内 ,同时还包括了1个线性回归器 来调整anchors的位置 。在NMS 过后仅保留128个调整后的bounding boxes作为最终的proposals ;
3)为了在这些proposals(128个)里找到目标行人,建立identification net 来提取每个proposal的特征,并将其与目标行人进行比较。首先利用 RoI Pooling 层从stem feature map中得到1024 × 14 × 14的区域(对应于每个proposal),接着将它们送入ResNet-50的剩下的conv4_4至conv5_3层 (因为之前只用了其中的conv1到 conv4_3之间的部分作为stem CNN),后面再接一个 global average pooling 层将其整合为2048维的特征向量;
4)另一方面,pedestrian proposal net 生成的 pedestrian proposals 中会不可避免地会包含一些 false alarms (也就是proposal里包含的不是行人)和 misalignments( 也就是框没有对齐行人**)** ,因此再次利用Softmax分类器和线性回归器来拒绝非行人的区域并精修proposal的位置 。另一方面,我们将特征投影到经过L2正则化后的256维向量子空间中,并在推测阶段计算它们和目标行人的余弦相似度 。
下面介绍一下OIM,也就是Online Instance Matching 损失函数:
先前我们已介绍过若干不同类别中的方案,例如:包含标签的身份(labeled identity)、未标记的身份(unlabeled identities)以及背景干扰(background clutter)。若记不清相关内容的朋友可回溯至上文查看详细说明。
如下Figure 3所示:
假设有训练集中共有L种不同的身份类别存在。当一个proposals成功匹配到目标行人时,则该类proposals被归类为labeled identities(即与目标行人的外观特征相匹配的proposals)。并为其分配一个1至L之间的类别ID编号。此外还有许多 proposals能够有效检测到行人在图像中(即与非目标行人的外观特征相匹配的proposals),这些不与目标行人匹配的proposals则被称为unlabeled identities。其中一些 proposals可能误将非人体物体或背景区域包含在内(即可能误报出非人存在),这类情况则被称为background clutter。
对于OIM损失函数而言,我们仅关注前两个关键组成部分:具体包括labeled identity和unlabeled identities。

目的是区分具有不同ID的人
在mini-batch中对每个带有标签的身份(即labeled identity)进行特征提取时会得到一个特征向量x(其维度为D)。随后会创建一个查找表V(也称为 Lookup Table, LUT),如图3右上方所示的那个蓝色方块区域。这个查找表V的作用就是负责存储每个带有标签身份的所有特征信息。它是一个二维矩阵(即V是一个D \times L维矩阵),其中D表示单个带有标签身份特征向量的空间维度数;而L则代表不同身份的数量。因此整个查找表V的空间维度数就等于D \times L。
在forward propagation过程中进行计算以获得mini-batch中的每个样本与所有已标记身份之间的余弦相似度指标(

在反向传播算法中执行时

:

(其中,

,并需要对

进行L2正则化)
除了在处理labeled identities时外,在处理这些unlabeled identities上也具有重要意义.这些unlabeled instances在全景图中出现的可能性较高,它们在学习特征表达方面同样具有重要意义.可被视为天然negative samples,通过利用当前 mini-batch中的所有unlabelled instances来生成特征向量,并将其存储于U矩阵中

由D维向量构成的一个Q维矩阵,在实验设置中被指定为5,000),同时还可以通过计算U与mini-batch样本之间的余弦相似度来评估模型性能。每轮迭代后会将新的特征向量加入队列,并移除不再活跃的数据项以维持队列容量不变。这也正是circular queue结构与线性表(LUT)的主要区别。
利用上面所涉及的LUT和circular queue这两种特殊的数据结构类型,并通过softmax函数来定义某个labeled identity的特征x被视为第i类行人的概率。

(其中

控制了概率分布的平缓程度,在实验中公式(1)、(2)的

均设置为0.1)
同样,在 circular queue 中,x被视为第i类 unlabeled identity 的概率为:

OIM损失函数最终优化的目标是使得期望似然函数最大化 :


对x的梯度可以表示为:

所以,在公式(1)和(2)的基础上可以看出,OIM损失函数通过实验结果表明,其中包含 mini-batch 中的样本以及被标记为同一身份和未标记的身份的数据点进行了系统对比,其最终目标是使具有相同身份标签的数据点之间的特征距离减小,从而使得不同身份标签之间数据点的特征间距增大。
为何不采用传统的softmax损失函数?相反,在本文中我们采用了新的OIM(Orthogonalized Information Maximization)损失函数,并对其进行了详细阐述。
主要原因有两个方面:首先,在行人搜索数据集中行人的类别数量过多(通常超过5000个ID),并且每个ID所对应的实例数目有限;此外,在每张图片中包含的ID数目也很有限;与此同时,在如此庞大的类别集合中进行分类器训练会导致每次使用随机梯度下降(SGD)时仅有少量的真实正样本参与训练;这种情况下分类矩阵的变化显得尤为剧烈难以稳定收敛;

数据集:
接下来,文章就介绍了用到的数据集:
本文采集并标注了一个大规模的行人搜索数据集用于验证上述方法的效果。研究者从城市中的照片中获取了一类数据同时从电影截取了另一类行人图像数据这两组不同来源的数据共同构成了实验所需的数据集。这些数据设计的目的在于通过增加视角多样性提升光照效果以及丰富背景类型从而保证实验结果的高度可信度。
该研究数据集总计包含了18,184张图像样本,在统计学意义上记录了96,143例行人边界框定位情况及8,432例标签化的身份识别样本。具体样本数量与分类分布详细信息可参考下文提供的Table 1.

未被标注的是那些身体未完全到位且姿势异常的人。与传统ReID方法类似,在这种情况下同样无法识别。这表明更换衣物及外饰会对ReID系统的识别精度产生显著影响。对于低质背景中的行人而言,在此条件下难以判断其身份。
在不同分辨率下的带标签与未带标签身份的高度分布情况如图所示(Figure 4)。从图中可以看出,本文所采用的数据集在行人尺寸方面具有广泛的多样性。

该数据集被系统性地划分为训练集合与测试集合;为了确保在训练集合与测试集合之间不存在来自同一id人的重复图片出现;这有助于提升整体检验的有效性。其中将属于测试集合的行人在功能划分上进一步细分为:查询集合(即待查询输入)与相貌 gallery(即候选行人数存库)。具体解释这些术语的具体含义可参考我的另一篇博文;如果有相关疑问请随时查阅相关内容。
一
一
一
总数约为2900个测试实体,并从中随机提取一个作为查询。相应的gallery库被划分为两组:一组包含了所有含有其他实例的照片,另一组则从剩余中选出不含当前查询的照片。
为了深入探究gallery(候选行人库)的size(数目)对行人搜索效果的影响 ,我们决定将gallery size设定为5至4千,并选取其中一种典型配置作为研究基准。例如,在选择gallery size=1千时,默认情况下每张图片约包含6名行人在内,则该 gallery 包含共计约6千名行人在选中区域内。我们的研究重点则在于从 gallery 中筛选出具有代表性的行人工像。其规模与主流 ReID 数据集相媲美,并且甚至更具难度。值得注意的是,在此过程中我们不可避免地引入了大量非目标背景元素干扰观察者的注意力分布模式。
一
主要涉及了两个评估标准:CMC top-K以及mAP,在另一篇博文[行人重识别(Person Re-ID)【一
CMC是一种广泛采用的行人重识别评估手段,在特定条件下应用:当在前K个估计边界框中至少一个边界框与ground truth匹配,并且其IoU值达到或超过0.5时,则判定为匹配成功。mAP则是一种常用的目标检测评估指标,在该领域采用了ILSVRC的目标检测规范作为基准。
实验:
在本节中将介绍该研究的实验部分。该研究对不同变量的影响分析进行了充分的研究,并值得我们进行借鉴。
文章作为核心框架和算法支持而建立在caffe框架和faster rcnn算法之上,并采用了经过ImageNet大规模数据训练的ResNet50模型作为预训练权重。
所使用的所有loss均具有相同的损失权重,在每个minibatch中包含两张全景图像。学习率初始设置为每秒千分之一,并在经过大约4万次迭代后降至每秒万分之一水平并维持不变直至模型在约5万次迭代时实现收敛。
文中将3种行人检测技术和5种行人再识别方法结合使用(总共有15种组合方案) 。这些行人检测技术主要包括CCF、ACF以及基于Resnet50实现的Faster R-CNN 。ground truth(GT)也被纳入其中一种检测器,在实验中经过验证并进行比较分析。
recall-precision curve的结果如下图Figure 5所示:

在行人重识别领域中主要采用了以下三种特征提取技术:Deep Shift(DSIFT)、Bag of Words(BoW)和 Localized Motion Optics Transform(LOMo)。随后将这些特征集合分别与欧氏距离(Euclidean)、余弦相似性度量(Cosine Similarity)、KISSME以及XQDA等常用的距离计算方法相结合。
为了展开对比实验,在不采用 pedestrian proposal net 的情况下,并选择 softmax loss 作为损失函数,在截取后的图像上仅对剩余部分进行训练以生成基础模型 IDNet。实验结果显示,在 IDNet 的训练过程中:引入 background clutter 作为一个类别显著提升识别效果;而引入 unlabeled identity 则未能带来预期的改进效果。
后面gallery size都默认是100。
在下文中,作者对本文提出的行人搜索框架(是否包含无标签身份识别)与其他15种基于将行人检测与重识别任务二分的基础组合方案进行了全面对比分析。具体实验结果见表2
结果显示无论是基于CMC指标还是mAP指标本文提出的方法均显著优于其他现有方法。与基于IDNet的方法一致提升的关键原因在于检测与重识别两大任务间的有效结合不仅实现了相互促进而且通过在OIM损失框架内巧妙引入无标签身份信息实现了有效的监督学习机制。

从表2可以看出,在行人检测领域中detectors选择对于行人数目识别任务的效果提升具有至关重要的作用。可以看到这些模型(CCF、ACF、CNN和GT)之间存在显著的差异性。如果采用现有的 detector,则可能会导致行人重识别效果受限
OIM和Softmax之间的对比分析,在训练阶段的身份识别准确率和测试阶段的人搜索平均精度曲线如图所示。
可以观察到,在未预先做微调的情况下使用softmax在整个训练过程中均能维持一个较低的accuracy值。此前曾提到过,在类别数量较多的情况下单独一个softmax模型具有较大的挑战性地进行训练,并且即便进行了相应的微调处理其提升效果依然较为缓慢。经过测试验证最终所得测试集mAP稳定在约60%左右。
与之相反,在初始阶段的训练中,模型的识别精度较低;然而该方法收敛速度极快,并且在测试集上的mAP持续提升。其主要原因在于通过无需参数化的OIM损失函数能够绕过直接构建庞大分类矩阵的问题。

随后的文章采用Inception和ResNet50模型,并基于Softmax损失函数及Oriented Image Magnitude(OIM)损失函数进行训练;随后,在CUHK03、Market1501以及Duke等三个大型ReID数据集上对模型进行了全面评估;并以CMC的top-1准确率作为性能评估标准。
如下表Table 3所示,在所有相关数据集上进行评估时无论是选用Inception模型还是Resnet50作为base CNN,OIM损失始终优于softmax损失。

之前已经指出,在行人种类ID数量不断增加的情况下,OIM中涉及公式(1)和(2)的计算相对耗时较多, 为此, 该研究采用了一种针对labeled与unlabeled身份类别进行二次采样以近似估计分母的方法
通过二次采样处理后的mAP曲线如下图。其中采用了不同规模的二次采样方法。评估指标为mAP:

OIM作为一种无参数损失函数存在一个潜在缺陷即是容易导致过拟合的问题;因此,在本文中将特征映射至经过L2正则化处理后的低维子空间有助于缓解过拟合问题;在此基础上我们进一步通过实验研究不同维度下的L2正则化后低维子空间对行人搜索任务性能的影响
结果如下表Table 4所示:

在表格中标记为N/A的部分表示直接应用了L2正则化后得到的2048维特征向量即未将这些特征映射至低维子空间通过观察可以看出这样的处理方式会导致效果最为糟糕这进一步验证了在经过L2正则化的条件下将特征投射至低维子空间对于后续分析具有重要意义在实验过程中发现 在不同维度(从256到1024)之间测试结果显示相近的效果 最终研究确定将特征投影至一个包含 个维度的空间以实现降维目标
接下来的文章主要采用了LOMO+XQDA方法,并深入分析了detection召回率如何影响行人搜索任务的表现。通过设置不同的检测到行人的阈值来实现宽松的检测效果。
较低的阈值能够提升召回率, 但会导致较高的错检数量; 因此为了实现30%的检测召回率目标, 实验从该指标出发开展相关研究.
下图是detection recall rates对mAP的影响:
可见单纯依赖高detection recall rate未必能保证最佳的mAP值。因此我们不能仅凭截取的人行像来进行训练,而应综合运用行人的搜索策略,并融合未标记身份特征及背景干扰。

最后就是探究 gallery size 对mAP的影响了,也是本文的最后一个实验。
随着 gallery size 的数量增加, 行人搜索的难度也随之提升。该研究采用了三种不同的方法, 并随后将 gallery size 设置为从 50 增加至最大值 6978, 进行了一系列实验分析, 测试结果如图所示
通过较小规模的 gallery 实现了对测试集图像的有效收敛,并观察到各方法间的性能差异随着 gallery 大小的增长趋于缩小。这一现象的根本原因在于所有方法最终都会面临一些具有挑战性的样本(难例)的影响,其对模型性能的影响程度显著。因此,在后续研究中可进一步探索基于 hard example minings 的方法来优化模型性能。

总结:
该方法针对行人搜索问题进行研究,并提出了一种新的框架结构。通过对过去常被分开研究的两个关键问题进行整合,即行人检测和行人重识别,在同一个框架内实现两者的结合。该网络在训练过程中采用了OIM损失函数作为主要损失函数,并通过单个CNN联合训练的方式进行模型优化。实验结果表明,该方法在实验中展现出显著的效果。零参数化处理使得该方法在运行速度和识别精度上均表现出色,并且能够有效地应用于大规模数据集。
