2. 北京大学深圳研究生院 深圳物联网智能感知技术工程实验室, 深圳 518055
2. Engineering Lab on Intelligent Perception for Internet of Things (ELIP), Shenzhen Graduate School, Peking University, Shenzhen 518055, China
行人再识别(person Re-IDentification, ReID)是指在不同背景的非重叠摄像头视域下, 确认在不同场景和不同时间出现的行人是否为同一个人, 在视频监控中, 当出现一个目标行人时, 行人再识别会判断这个人是否在另一个地方(时间)被另一个摄像机观察过. 作为一个新兴的方向, 也是计算机视觉领域近年来研究热点之一, 近几年越来受到的关注越来越高. 这一方向的出现可以归结为: (1)公众安全需求的增加; (2)遍布于公园、大学校园和街道等地区的摄像机网络. 这两种原因都使得仅仅依靠蛮力的人为标注来准确和有效地识别或者追踪目标行人是非常昂贵的. 从计算机视觉的角度来看, 行人再识别中最具挑战性的问题是如何在密集的外观变化下, 如照明、姿态和视点等, 正确匹配同一人的两幅图像, 其具有重要的科学价值和应用前景.
近几年, 深度学习(Deep Learning, DL)的急速发展, 卷积神经网络(Convolutional Neural Networks, CNN)成功进入人们的生产生活中, 使用深度学习与卷积神经网络的解决行人再识别的问题是最有效的一种方式之一[1]. 按照训练损失将卷积神经网络分为度量学习与表征学习, 按照是否具有局部特征分为局部特征与全局特征, 根据数据集的不同可以分为基于单帧和基于序列. 一种生成对抗网络(Generative Adversarial Nets, GAN)的方法利用生成新数据来解决行人再识别的难点问题.
1.1 基于度量学习的ReID方法ReID作为一个图像检索(Text-Based Image Retrieval, TBIR)的子问题, 目的是找出两张照片的相似度. 度量学习(metric learning)是普遍用来解决TBIR的方法之一. 也就是说: 如果两张照片的是同一行人ID, 那么它们的相似度就大于别的照片. 于是提出映射概念, 由原始域映射图片至特征域, 定义距离度量函数对两个特征向量间距离计算, 再根据网络最小化度量损失获取最优映射f(x), 让ID相同的行人正样本通过损失函数使其具有较短的余弦距离或者欧式距离, 不同ID的行人负样本通过损失函数使其具有更长的余弦距离或者欧式距离, 该f(x)映射为经过训练获得的深度卷积网络.
(1)对比损失(contrastive loss)
通常对比损失用来训练孪生网络(Siamese Network)[2-4], 该网络的输入一般为一对(两张)照片, 例如a和b, 这对照片可以是正样本对(同一行人), 也可以为负样本对(不同行人).
(2)三元组损失(triplet loss)
三元组损失是近几年被大量运用于度量学习中[5-8], 很多度量学习的损失函数都是基于三元组损失的形式, 该损失的特点是: 需要每次输入3张图片做为训练. 包括: 锚点图片, 正样品图片和负样本图片.
锚点图片a和正样本图片p是来自同一行人ID, 锚点图片A和图片N来自不同行人ID.
(3)四元组损失 (quadruplet loss)
四元组损失在三元组损失的基础上的一个改进[9]. 四元组损失需要4张照片, 包括: 锚点图片, 正样品图片及两张负样本图片.
文献[9]作者认为三元组损失考虑了正样本和负样本之间的相对距离, 但没有考虑正负样本之间的绝对距离. 为此提出了四元组损失. 在神经网络中采用四元组损失可以学习到更明确的特征息.
1.2 基于特征学习的ReID方法行人再识别另一个基于损失函数的方法就是表征学习(representation learning), 表征学习极其常见于卷积神经网络. 行人再识别的目的是获取两张不同图间的相似程度, 然而表征学习方法并未在训练网络直接应用时将图片间的相似度考虑在内, 而是看作分类问题或者验证问题来看待. 其中分类问题是指将相同的行人ID聚集为一类[10], 使用ID或者属性分类, 而验证问题是在行人重识别中是一个二分问题, 直接让网络判断输入的两张行人照片是否为一个ID.
分类方法的特点: CNN网络中提取特征, 提取到的特征经过池化层, 经过一个FC层. 该FC的维度就是网络中的ID数, 将提取到的特征运用分类损失(identification loss)函数进行网络训练. 因为训练时候的FC层是训练集的维度, 测试时, 训练集和测试集的ID一般不相同, 也就是说训练集的全部FC层在训练完后全部要丢弃. 分类网络中经常采用一个属性损失(attribute loss)[11], 用一些行人属性来辅助行人特征, 能增强网络的性能. 分类损失在ReID问题中也被称为ID损失, 所以该网络也被称作IDE网络. 行人再识别中最主要的一项基准(baseline)为IDE网络.
这类方法就是将ReID问题看为是一类二分问题, 旨在让网络直接判别输入网络的行人ID两者是否是同一行人[11]. 每次输入一对照片, 进入孪生网络进行特征提取. 融合孪生网络中每个网络的特征信息计算一个二分类损失(验证损失), 训练时可以和ID损失一起使用. 测试时输入两张图片, 网络直接判断两张照片是否属于同一行人.
1.3 基于局部特征与全局特征的ReID方法全局特征是指每一张行人图片的全局信息进行一个特征抽取, 这个全局特征没有任何的空间信息. 一般的卷积网络提取的都是全局特征, 然而行人数据集复杂性逐步上升, 采用全局特征难以达到当前需求. 目前研究的热点问题为提取复杂度较高的特征, 局部特征为确定某个网络或者网络自动对设计者注重的局部区域关注. 常用的方法有切块, 关键点定位等方法.
图片切块是的提取局部特征方法主要为水平切块. 文献[12]是这方面的内容. 每一块图像经过CNN网络得到特征, 局部特征按顺序输入到LSTM (Long Short-Term Memory)网络, 自动表达为图像最终的特征. 利用对比损失训练网络水平切块是比较早期的工作, 目前已经很少使用. 改进的水平切块算法PCB[12]和Aligned ReID[13]是现在的主流方法. 将图像进行水平方向的等分, 每一个水平切块通过水平池化提取一个特征, Gate Siamese和Aligned ReID通过设计规则融合所有的局部特征计算距离就, PCB、ICNN、SCPNet对每一个局部特征计算一个ReID损失, 直接将局部特征拼接起来, 联合局部特征和全局特征往往能够得到更好的结果.
图像语义分割是一种极精细的像素级别part信息, 图像分割分为粗粒度的行人前景分割和细粒度的肢体语义分割, 分割结果通常作为图像预处理的Mask或者feature map中的attention相乘, 目前基于分割的方法没有取得特别广泛的应用. 行人的局部特征被越来越多的论文来验证是极其有效的, 一定程度上解决了行人姿势不同的问题. 融合全局特征和局部特征的方法在Person-ReID领域越来越流行. 如何很高效率和低消耗的提取局部特征是现在的研究热点方向之一.
序列重识别也常被称为视频重识别(Video ReID), 是指利用一段连续的行人图片序列进行行人再识别任务, 或者说是个序列搜索序列的问题.
有以下特点: (1) 姿态变化丰富. (2) 遮挡现象普遍. (3) 总有几帧质量好, 也有几帧质量差. (4) 需要考虑如何融合各帧的信息.
1.4 基于GAN的ReID方法生成对抗网络(Generative Adversarial Nets, GAN)在最近几年呈现快速发展状态[14], 最主要的应用为生成图片. 深度学习方法在实际应用的前提条件为训练数据量庞大, 然而当前行人再识别数据集数量、规模上相对较少, 采用GAN进行识别行人任务发展成为热门, 传统GAN 网络是以随机方式生成图片, 再后期推出的DualGAN、CycleGAN及DiscoGAN等可以转换图片风格[15], 推动在行人再识别领域广泛运用GAN. 网络中有生成器(Generator, G)和鉴别器(Discriminator, D). 有两个数据域分别为X, Y.
生成器G用来生成数据, 生成的数据被鉴别器D识别是否为真实数据, 两者存在一种矛盾关系. 生成器G使用X域中的数据生成的图片越来越接近真实数据. 鉴别器D的鉴别能力越来越强, 越来越能够把真实与伪造图片分开来. 最后生成器G生成的照片已经接近真实图片, 鉴别器D分不清真实图片与伪造图片. 到这时, 生成器G和鉴别器D达到了动态平衡的状态, 我们就可以使用改GAN来生成图片, 用来扩充数据集.
训练完成后, 一般不使用鉴别器, 而只使用生成器来生成我们想要的数据图片, CycleGAN一个非常实用的地方就是输入的两张图片可以是任意的两张图片, 也就是非成对, 而且CycleGAN可以使两个域的图像风格进行转换.
目前传统行人再识别方法缺少综合考虑多帧信息以及多特征融合思想, 因此本文综合考虑全局特征和局部特征, 提出了一种利用水平池化提取局部特征的HPLF(Horizontal Pooling for Local Feature)算法, 在ResNet-50网络中对输入的联合数据集进行预处理, 提取特征, 对特征图进行水平切割, 计算两两特征之间的距离, 再用难样本三元组损失来作为局部特征损失函数训练, 通过特征图计算全局距离, 提高了行人再识别精度.
2 行人再识别网络的设计 2.1 网络结构本文的方法是: 将数据集的数据输入到ResNet-50网络中进行预处理, 将提取到的特征进入一个池化层进行池化操作, 得到特征图. 得到的特征图分别进入一个局部网络分支, 改网络将特征图进行水平池化操作, 将得到的特征图进行切割, 将每个特征图划分为高为1的特征图, 之后用距离函数计算它们之间的距离. 在另一个分支中, 进行一个传统的度量学习操作, 计算完距离后, 两个分支分别进行一个难样本三元组的构造工作, 然后用三元组损失进行网络训练, 流程图如图1所示.
2.2 HPLF方法HPLF (Horizontal Pooling for Local Feature)方法主要涵盖一个水平池化跟难样本挖掘的方法.
水平池化层: 在经过一个ResNet-50的输出后会得到一个(N×C×H×W)的向量, 其中N是batchsize的大小, C是照片的像素大小, H为照片的高度, W为照片的宽度. HPLF方法用一个1×W的窗口去剪裁该特征图, 最后会得到H个N×C×1×W的局部特征图. 用这个局部特征图去训练网络, 如图2.
难样本挖掘: 传统的度量学习方法是随机采样组成元祖样本, 但是这样采集的样本通常是一些非常容易识别的样本, 不利于训练表达能力强的ReID网络. 为了使网络更好的识别行人, 利用难样本训练网络, 让网络注意到更多的细节特征, 利用难样本来训练网络的方法是很有效的方法. 本文训练时, 会在一个batchsize(size)中找到一个最难的正样本与一个最难的负样本来作为一个三元组来训练网络.
2.3 损失函数本文构建的网络中应用了2种损失: Softmax交叉熵损失(Softmax Cross Entropy Loss)函数和难样本三元组损失(TriHard loss)函数.
(1) Softmax交叉熵损失: 在神经网络中, 最后一个输出层的个数与分类任务的标注数相等. 假设最后的输出层个数为N, 那么对于神经网络可以有一个N维度的数组作为他的输出结果. 在理想的状态下, 假设某一个样本属于M, 那么这个该样本对于M的输出值应该为1, 对于其他的输出结果应该为0. 例如这种情况[0, 1, 0, 0,…, 0, 0], 这是最期望的结果, 但一般实际输出与这不相符. 例如[0.02, 0.01, 0.7, 0.05,…, 0.01], 这就是Softmax所做的, 将样本的输出值, 做了加权和非线性处理之后, 使其变成了一个概率值, 概率和为1.
假设y1, y2, y3, …, yn是某神经网络的输出, 那么经过Softmax处理之后, 如式(1)所示:
$ {y{'}} = softmax ({y_i}) = \frac{{{e^{{y_i}}}}}{{\displaystyle\sum\limits_{j = 1}^n {{e^{{y_i}}}} }} $ | (1) |
其中, yi网络的第i个输出, e是输出的期望值. n是代表网络有n个输出.
交叉熵 (Cross Entropy, CE)所表达的是输出与期望输出的距离, 如果输出与期望输出之间越接近, 如式(2)所示:
$H(p,q) = - \sum\limits_{\rm{x}}^{} {p(x)\log q(x)} $ | (2) |
其中, q为输出, 而p为期望输出.
(2) 难样本三元组损失函数
在三元组损失的基础上经过改进后形成难样本三元组损失, TriHard loss的核心思想是: 每一次训练批量挑选P个行人, 将他们的ID作为属性. 每个ID行人, 随机挑选他们训练集中的照片, 所以每一个批量一共有P×K张图片. 在P×K张照片中, 选取对于网络最困难分辨的照片, 组成三元组, 三元组需要每次输入3张图片做为训练, 3张照片分别被命名为:
① 锚点图片(anchor, a);
② 正样品图片(positive, p);
③ 负样本图片(negetive, n).
图片集A是锚点图片(anchor) ID相同的行人图片集合, B为与锚点图片(anchor) ID不同的图片集合. 如式(3)所示:
${L_{th}} = \frac{1}{{P \times K}}\sum\limits_{a \in batch}^{} \left( {{\mathop {\max }\limits_{p \in A} } {d_{a,p}} - \mathop {\min }\limits_{n \in B}{d_{a,n}} + \alpha } \right)_ + $ | (3) |
其中, batch为输入批量, max为最难的正样本对, min为最难的负样本对. P为输入的ID数, A, B是输入的两个不同ID. K为输入的每个ID数有几张照片, a为锚点照片, p为正样本照片, n为负样本照片, d代表距离. α是人为设置的参数. 相对于传统的三元组损失, TriHard loss考虑了极端样本的信息, 而且一般有自适应权重计算, 即对于正样本对来说, 越接近的样本, 权重越大. 对于负样本拉说, 距离越大, 权重越小.
3 实验结果与分析 3.1 实验环境本文所使用的的参数如表1所示.
3.2 训练过程
训练过程以数据集Market1501[16], 本数据集来自清华大学校园中6个不同区域由摄像头拍摄采集的图像信息, 该训练集中有751个有标记(ID)的行人图像, 包含12936张图像, 训练时将图片像素转为256×128, 设置margin(损失函数的阈值)=0.3, 设置batch-size(批量)=32, 置num-instance(输入行人ID的个数)=4, 每次输入32张照片, 分别来自4个ID行人, 每个行人8张照片. 设置迭代次数(epoch)=150, stepsize (步长)设置为50, 其他参数默认. 在HPLF网络中图片经过ResNet网络, 对输出结果最后用Triplet loss和Softmax的联合损失函数来约束网络进行学习. 设定CNN的学习率为0.0002, 并且150个epoch进行一次学习率递减为之前的1/10, 进行训练. 采用梯度下降算法来逆向修正网络的参数, 最后绘制训练和校验曲线图. 测试时, 在最后的卷积层提取图像的特征, 对欧式距离求解后排列测试集中的图像或者指定图像, 并且在测试文件中, 进行mAP, Rank-1, Rank-5, Rank-10, Rank-20的测试. 当epoch=150次以后loss函数基本达到最小值.
3.3 实验结果本文测试所使用的指标为mAP以及Rank-1、Rank-5、Rank-10. 表2和表3是Market1501在本文算法下获得测评结果, 与文献[17]中描述的方法对比, 精准性大大提高. 本文算法在单人检索有着90.6%的Rank-1指标和77.7的mAP指标. 但是在某些方面数据集的提升不太明显, 主要考虑是图片中目标人体被遮挡.
本文实验结果与其他方法对比如表3所示.
本文还做了自身对比实验, 在不使用本文的HFML算法的情况下得到的训练结果如表4所示.
与表2比较, 可以看出使用本文的HFML算法的情况下mAP指标高了6.9%, Rank-1指标提升4.4%, Rank-5指标提升1.4%, Rank-10指标提升0.6%, Rank-20指标提升0.6%. 可以看出本文的HFML算法可以有效的提取特征, 可以提升精度.
4 总结本文提出了一种利用水平池化提取局部特征的HPLF算法, 在特征图进行水平切割, 将分割的特征图通过难样本三元组损失来作为局部特征损失函数, 同时原先特征图也将通过难样本三元组损失和Softmax损失函数来作为全局特征损失函数, 将3个损失函数作为联合损失函数进行参数修正. 未来考虑复杂场景下的行人再识别.
[1] |
林景栋, 吴欣怡, 柴毅, 等. 卷积神经网络结构优化综述. 自动化学报, 2020, 46(1): 24-37. |
[2] |
Varior RR, Haloi M, Wang G. Gated Siamese convolutional neural network architecture for human re-identification. Proceedings of the 14th European Conference on Computer Vision. Amsterdam, the Netherlands. 2016. 791–808.
|
[3] |
Varior RR, Shuai B, Lu JW, et al. A Siamese long short-term memory architecture for human re-identification. Proceedings of the 14th European Conference on Computer Vision. Amsterdam, the Netherlands. 2016. 135–153.
|
[4] |
Wang YC, Chen ZZ, Wu F, et al. Person re-identification with cascaded pairwise convolutions. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City, UT, USA. 2018. 1470–1478.
|
[5] |
Cheng D, Gong YH, Zhou SP, et al. Person re-identification by multi-channel parts-based CNN with improved triplet loss function. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA. 2016. 1335–1344.
|
[6] |
Hermans A, Beyer L, Leibe B. In defense of the triplet loss for person re-identification. arXiv preprint arXiv: 1703.07737, 2017.
|
[7] |
Liu H, Feng JS, Qi MB, et al. End-to-end comparative attention networks for person re-identification. IEEE Transactions on Image Processing, 2017, 26(7): 3492-3506. DOI:10.1109/TIP.2017.2700762 |
[8] |
Ristani E, Tomasi C. Features for multi-target multi-camera tracking and re-identification. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City, UT, USA. 2018. 6036–6046.
|
[9] |
Chen WH, Chen XT, Zhang JG, et al. Beyond triplet loss: A deep quadruplet network for person re-identification. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017. 1320–1329.
|
[10] |
Chen HR, Wang YW, Shi YM, et al. Deep transfer learning for person re-identification. Proceedings of 2018 IEEE Fourth International Conference on Multimedia Big Data. Xi’an, China. 2018. 1–5.
|
[11] |
Lin YT, Zheng L, Zheng ZD, et al. Improving person re-identification by attribute and identity learning. Pattern Recognition, 2019, 95: 151-161. DOI:10.1016/j.patcog.2019.06.006 |
[12] |
Zhang X, Luo H, Fan X, et al. AlignedReID: Surpassing human-level performance in person re-identification. arXiv: 1711.08184, 2017.
|
[13] |
Sun YF, Zheng L, Yang Y, et al. Beyond part models: Person retrieval with refined part pooling (and a strong convolutional baseline). Proceedings of the 15th European Conference on Computer Vision. Munich, Germany. 2018. 501–518.
|
[14] |
罗浩, 姜伟, 范星, 等. 基于深度学习的行人重识别研究进展. 自动化学报, 2019, 45(11): 2032-2049. |
[15] |
Zhu JY, Park T, Isola P, et al. Unpaired image-to-image translation using cycle-consistent adversarial networks. Proceedings of the IEEE International Conference on Computer Vision. Venice, Italy. 2017. 2242–2251.
|
[16] |
Zheng L, Shen LY, Tian L, et al. Scalable person re-identification: A benchmark. Proceedings of the IEEE International Conference on Computer Vision. Santiago, Chile. 2015. 1116–1124.
|
[17] |
Ristani E, Solera F, Zou R, et al. Performance measures and a data set for multi-target, multi-camera tracking. Proceedings of the European Conference on Computer Vision. Amsterdam, the Netherlands. 2016. 17–35.
|
[18] |
Ustinova E, Ganin Y, Lempitsky V. Multi-region bilinear convolutional neural networks for person re-identification. Proceedings of 2017 14th IEEE International Conference on Advanced Video and Signal Based Surveillance. Lecce, Italy. 2017. 1–6.
|
[19] |
Zheng ZD, Zheng L, Yang Y. Unlabeled samples generated by GAN improve the person re-identification baseline in vitro. Proceedings of 2017 IEEE International Conference on Computer Vision. Venice, Italy. 2017. 3774–3782.
|
[20] |
Li W, Zhu X, Gong S. Harmonious attention network for person re-identification. Proceedings of 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City, UT, USA. 2018. 2285–2294.
|