何为行人重识别?

众所周知,人脸识别技术在今天已得到广泛应用,而行人重识别(ReID)是对其的扩展,它的基本任务流程如下图:

行人重识别技术 深度学习算法 行人重识别的挑战_搜索

如上图,系统首先对视频画面中的行人进行检测,抽取其特征,进行结构化储存。当执行行人查找任务时,系统会先抽取输入图像中目标人物的特征,然后将其同数据库已保存的图像特征进行对比,搜索目标人物。

行人重识别任务的挑战

1、人物方向变换

2、人物着装与形态变换

3、人物光照变换

4、人物被遮挡

5、人物出镜不完整

6、区分相似外表人物

行人重识别任务架构

方法一

输入图像被送入神经网络提取出一个特征图,通过 Global Pooling 操作后得到一个代表该图片人物信息的特征,特征进一步被送入一个分类器,分类器会在整个训练样本中对人物身份进行分类。该方法的好处是它与分类问题十分相似,缺点是单纯的分类效果往往欠佳。

方法二

因此出现了法二,即在损失函数上的创新,如 Triplet Loss 函数,其目的是增大非同类之间的距离,缩小同类间的距离。然而由于训练样本往往都比较简单(尤其是非同一个人时,因为非同一个人之间的差异普遍很大),因此在大量这些样本上训练是无法让网络迅速收敛的,所以研究人员会通过 Hard Mining 来找出难样本,进而大大提升训练效率。

 

在实际应用中,人们往往会结合方法一与方法二。在业界通用的数据集 Market1501 上的 Top1 测试结果普遍可以达到 92% 左右。

 

目前讨论的方法都是基于被识别人体的整体信息来描述,考虑到人存在不同的部位,如果将不同的部位信息也纳入分析能否提升重识别精度?因此出现了 PCB 方法。

       

行人重识别技术 深度学习算法 行人重识别的挑战_行人重识别技术 深度学习算法_02

与前述方法类似,输入图像首先进入神经网络,然后网络提取出特征图。不同的是,在 PCB 方法中不使用 Global Pooling 抽出特征,而是将人从上到下切分为多块,并对每一块都抽取特征,然后再将其拼合。这其中假设:通过对人物不同部位的特征进行比较,可以完成对整个人物身份的比较。 

 

实验结果表明,结合了全局与局部特征比较以后的 PCB 方法较之前在性能上有明显的提升。

行人重识别技术 深度学习算法 行人重识别的挑战_行人重识别技术 深度学习算法_03

从上图发现,虽然模型性能取得了大幅提升,但 PCB 方法依然存在缺陷。例如当人体姿势较大或者人体检测不全或者存在冗余部分的时候,在这种情况下如果依然按照 PCB 方法来切分人体各部分并进行特征比对,是无法保证每一块的特征是对应的,以下图为例:

      

行人重识别技术 深度学习算法 行人重识别的挑战_搜索_04

对于图 A、B 而言,显然图 A 的切分可以很好表示人体的基本结构,按照该切分进行 pooling 则可以认为能够获取头部等各部位信息。然而对于图B,由于检测的效果不佳因此导致 PCB 法不适用。

为此,人们提出了 AlignedReID 方法,该方法预设,虽然检测图像质量可能不佳,切分画面不能对齐人体,但人体的基本结构是固定的。因此可以让系统从上到下搜索匹配的方式,保证匹配不交叉。判定匹配好坏的标准即是选择特征距离最小的对齐方式。

于是可以采用动态规划的方法,来对每个局部之间的特征两两之间求其距离,构成一个矩阵,然后从矩阵左上角到右下角寻找最短路径,该公式完全可导。

行人重识别技术 深度学习算法 行人重识别的挑战_行人重识别技术 深度学习算法_05

实验结果显示,AlignedReID 方法在性能上较 PCB 有一定提升,之所以性能不明显是因为在Market1501 中大部分人体的检测效果都比较好,姿势也没有特别大的变化。

行人重识别技术 深度学习算法 行人重识别的挑战_行人重识别技术 深度学习算法_06

对于 AlignedReID 任务而言,其实也有一定局限性,因为在出现人的图像中,经常有可能出现人物被部分遮挡或是因为摄像头角度而没有办法收集到全部身体信息的情况。如果在这种情况下强行使用前述方法,则会将很多不存在的特征信息加入对比,造成严重不对齐,模型性能大幅下降,因此进一步出现了 Rartial ReID 方法。

 

行人重识别技术 深度学习算法 行人重识别的挑战_行人检测_07

Partial ReID 方法是 PCB 方法的扩展。根据 PCB 方法,首先系统会对人体进行切分,对每一块抽出一个特征,然后为了实现 Partial ReID,现多保留一项信息“是否可见”来作为补充。具体而言,如下图,人体被分为 3 部分,训练网络会根据这三个部分输出三个特征,分别代表头肩、身体、腿部;同时,系统还会输出三个可见度分数,分别对应身体三部分是否可见。

       

行人重识别技术 深度学习算法 行人重识别的挑战_数据集_08

在训练方法设计中,考虑到对人体进行切分获得身体部分特征的过程其实已经人为的产生了有关对应身体部位可见度的监督信息(即可见是怎样,不可见是怎样),因此当只有部分身体的图像被输入网络,得到特征图以后,可以对特征图上的每个点都进行分类,以判断该点的特征具体应该属于身体的哪个部分。也就是上图中的概率图。

所以总结而言,可以得到图像中每个点的特征以及该点属于身体哪个部分这两个信息。通过对特定身体部分的所有点的可见信息求和,就能够得到该身体部分整体的可见度分数,也即是图中最右边显示的三个局部特征分别对应的三个可见度分数。

      

行人重识别技术 深度学习算法 行人重识别的挑战_行人检测_09

具体到训练分别有分类与 metric learning 的两种损失。分类损失用于可见部分的分类,而metric learning 损失(如上图的 triplet loss)用于计算两图中共同可见部分的距离。图中表格显示了各种方法在面对画面中身体从半身到全身的条件下,性能的变化。可以发现,PCB 方法虽然在人体可见度 1.0 时 R-1 精度可达 93.4%,但面对半身情况其性能直接掉下 1%;而 VPM 方法虽然在人体可见度为 1.0 时 R-1 精度稍逊于 PCB,但它可以很好应对半身情况。

行人重识别任务中的行人检测

从前文介绍可以了解到,行人重识别任务性能的好坏极大程度上受制于其前一步工作——行人检测的影响。那么为了提升识别性能,除了研究识别本身以外,也需要研究对重识别足够友好的行人检测方法。

       

行人重识别技术 深度学习算法 行人重识别的挑战_行人重识别技术 深度学习算法_10

 

关于这个问题,人们首先需要了解当前训练数据集是如何对样本进行标注的。行人数据标注存在两个过程,画面中行人身份的分类以及边界框位置的确定。行人身份的分类十分简单,真的问题在于标注员在标注有关行人的边界框的时候,没有一个明确的可量化标准,即该过程完全依靠人类的主观判断。可以想象,由此类数据产生的边界框不一定对行人重识别任务是最友好的。

 

为此旷视提出了一种更加客观的、对行人重识别友好的边界框标注方法,它将行人检测与行人重识别结合到了一个端到端框架中。这样做的原因是为了让检测器在重识别的监督下进行优化,以便给出更好的检测框。

 

具体而言研究人员开发了一个可微的 ROI 变换层,它能够通过计算从原图坐标到目标坐标的仿射变换来将原图检测框图像裁剪出来。裁剪后的图像被送入一个重识别模型,可以计算相应的  triplet loss 或 classification loss。通过梯度回传,实现检测框在重识别网络监督下进行的检测修正。

 

上图是可视化的结果,可以看到在(a)、(b)中,最左边的图像是人为标注的结果,中间是 baseline,最右是经过定位修正后的结果。以(a)中下方三图为例,可以发现,在 groun truth 与 baseline 中都存在一个问题,即都包含了一个不相关的人物。而能够明确评判目标人物身份的指标——红色书包却没有出现在画面中,而使用了旷视的方法以后,检测框进行了少许偏移,且包含了红色书包,排除了不必要的背景信息。在该方法的帮助下,实际行人搜索应用的性能取得了很大提升,见上图中(c)。

 

跨域行人重识别问题

 

在深度学习模型训练与应用中人们经常会遇到模型泛化性能的问题,行人重识别任务同样如此,实验中往往发现,在一个数据集中训练好的模型经常可能在另一个数据集上完全不可用,因此跨域 ReID 也成为了近年来研究社区非常关心的问题,即在一个数据集上训练得到的模型,是否放之四海皆准。

 

虽然业内就此提出了一些试图解决该问题(如基于半监督学习、GAN 等方法),但性能涨点也不太理想,因为它们都会涉及到使用测试域中的数据来帮助训练。较为本质的方法依然是提升训练集的数据与种类。当前学术研究涉及到的数据集普遍偏小,因此容易使模型出现过拟合等问题,这种模型是无法应用于实践的,所以需要更多的从真实世界和场景中收集相关数据,以保证模型在学习过程中能够接触到尽可能普遍的样本,从而也能够更好帮助ReID领域进一步发展。

Beyond ReID

Drawing for ReID

 

研发该项目是为了补充城市安全场景下通用ReID流程的不足。一般情况下,用于搜索该类人群的系统有个前提:即已经锁定、并获取了其真实图像。凭借这个信息,系统可以在数据库中比对搜索其它出现该人的场景,找出其行进路线或通过具有清晰正脸的图像来识别其身份。

       

行人重识别技术 深度学习算法 行人重识别的挑战_行人重识别技术 深度学习算法_11

 

但当面对只有目击证人口头描述信息的情况下,普通的ReID搜索便失去了效用。因此旷视开发了一个绘图搜索该类人群的系统,进一步,系统可以根据该虚拟形象在数据库进行相似人员搜索,进行快速锁定。

 

Single Object Tracking

 

该项目用于拥挤场景下的行人跟踪。在 ReID 的实际应用场景里经常会出现画面中人物拥挤的情况,目标人物不以全身、半身,而是以一些更小的特征如戴帽子、背包出现,面对这种情况,旷视研究院开发了通过单目标跟踪的手段来锁定目标人群的技术。

       

行人重识别技术 深度学习算法 行人重识别的挑战_数据集_12

  

行人重识别技术 深度学习算法 行人重识别的挑战_行人检测_13

即只要将目标的一张模板输入系统,系统便可以根据该目标在数据库中进行、搜索、跟踪。

以上是我的分享,谢谢大家。