本文主要是介绍A Robust Visual Representation for Vehicle Re-identification(超越真实数据:一种用于车辆重新识别的鲁棒视觉表示),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
摘要
在本报告中,我们向CVPR 2020年AICity挑战提交了Baidu-UTS的报告。这是成功解决车辆重新识别(re-id)轨道。我们专注于为真实场景开发一个强大的车辆re-id系统。特别是,我们的目标是充分利用合成数据的优点,同时配备真实图像,学习一个鲁棒的表示,在不同的视点和光照条件下的车辆。通过对各种数据增强方法和常用的强基线的综合调查和评价,分析了制约车辆重识别性能的瓶颈。基于我们的分析,我们设计了一种具有更好的数据增强、训练和后处理策略的车辆重新识别方法。我们所提出的方法在41个团队中获得了第一名,在私有测试集上产生了84.13%的mAP。我们希望我们的实践能够帮助我们在训练深层re-id网络时有效地使用合成和真实的数据,并为现实中的车辆re-id系统铺平道路。
1. 简介
在人工智能技术的推动下,智能交通系统(ITS)在学术界和工业界都引起了越来越多的关注,并得到了极大的改进,可以应用于现代城市中的现实问题。例如,它通过估计交通流特性和自适应调整交通灯来优化交通设计,使交通能力最大化。此外,它还提供了道路和周围环境的全面信息,通过检测车辆和行人,以及估计他们的运动,为自动驾驶系统生成驾驶政策。ITS的感知系统通常包括以下功能,包括检测交通要素,跟踪要素,计算交叉路口的车辆总数以及估算车辆的姿态。 车辆重新识别是一种在ITS中最关键的组件之一,该技术可以在不同时间甚至是通过不同摄像机捕获的帧中查找同一车辆。
传统的re-id方法首先在帧中独立检测目标,然后进行特征提取,总结出感兴趣目标的外观特征。由于图像中存在遮挡、噪声检测、不同光照条件和视点变化等问题,鲁棒的外观特征提取方法非常需要在不同的帧中表示相同的对象。有些方法利用对象的统计特征,如颜色直方图或梯度直方图(HOG)来提高特征表示的鲁棒性。然而,在许多具有挑战性的情况下,手工制作的统计特征不能代表在不同的视图和光照条件下或有遮挡的对象。
最近,基于深度神经网络的re-id方法[12,27,7,43]已经证明了优于那些手工制作的基于特征的方法的性能。一般来说,它们中的大多数都是由一个孪生网络和一个度量学习目标训练而成的,如三元组损失[10],n对损失[22]和角损失[3]。具体来说,这些目标旨在将来自同一辆车的特征表示的距离最小化,同时将不同车辆的特征表示分开。此外,最近的扩展利用车辆类型、颜色和车辆姿态等额外信息来设计re-id网络结构,进一步提高识别性能[24]。此外,还引入了各种图像生成方法来提高re-id系统的性能。例如,引入领域随机化[26],通过绘制具有指定姿态和颜色的车辆三维模型来生成图像。在[39]中,GAN已被证明是reid系统训练数据生成的一种有效方法。
在这项工作中,我们感兴趣的是在真实场景中设计一个高精度的车辆re-id系统。为了实现这一目标,需要解决三个主要问题:(i)如何有效,高效地设计车辆识别网络;(ii)如何结合特定任务的信息以进一步提高测试过程中的检索性能; (iii)给定多个re-id网络,如何进一步提高re-id性能。 在本报告中,我们将报告针对这些关键问题的解决方案,从而为后续工作提供坚实的基础。
2. 相关工作
车辆再识别(re-id)的最新进展主要得益于通过卷积神经网络(CNNs)学习的视觉深度表示[7,17,34,28]。根据[13]的报道,为了方便CNN的学习过程,该领域已经提出了有效的损失函数、采样策略等训练技术。例如,Liu等人[16]将CNN feature与传统手工制作的feature融合,产生鲁棒的视觉表示。为了挖掘细粒度模式,Wang等[28]首先对车辆图像的关键点进行标注,挖掘基于部件的车辆特征。Shen等人[21]利用车辆通常在短时间内会在摄像机下重新出现的先验知识,利用时空约束去除难负样本。
同时,车辆重新识别方法还利用了其他相关任务的经验,即行人重识别和人脸识别,例如中心丢失[30],空间变换器[41]和batch normalization neck[23]。然而,现实中的车辆再识别仍然是一项具有挑战性的任务,因为不同的摄像机、车辆的方向、光照和遮挡会导致视觉外观发生较大的变化。
为了减少变异和学习鲁棒车辆表示,许多最近的工作已经探索了数据生成方法,即游戏引擎,并证明了合成数据在训练reid网络[39:Joint discriminative and generative
learning for person re-identification]的有效性。Zhou等人[43]提出通过针对方向变化问题变换单视图特征来合成多视图特征,而Yao等人[35]利用图形引擎来扩充具有不同方向和属性的真实数据集。
最近,生成对抗网络(GAN)[6]被广泛用于数据生成,它不仅可以将图像样本的风格从源域转移到目标域[44,29,4],还可以生成具有特定属性的样本[11,39]。遵循这种精神,我们还探索了不同的数据增强方法,并允许模型“看到”更多的车辆变体,从而产生健壮的视觉表示。
3.方法
在本节中,我们首先探讨数据生成方法3.1,然后进行3.2节中的表示学习。在进行推理时,我们从训练好的模型中提取出视觉表示,并在3.3节中进行后处理方法。
3.1 合成数据
风格的变换。与典型的车辆再识别数据不同,AICity-Flow 由真实数据和合成数据组成。我们观察到,虽然合成数据中的身份来自于真实世界,但合成图像与真实图像仍然存在明显的风格差异,即众所周知的领域差距。为了解决这一问题,我们采用了图像转换技术。具体来说,像CycleGAN一样的框架,即UNIT [15],使用真实数据和合成数据作为两个不同的来源进行训练。在训练时,输入图像需要在两个源之间进行转换。经过训练后,我们将所有的合成图像按照合成→真实方向进行转换,得到更加真实的样本,减小了分布差距。(参见图1的左边部分)。
图1所示。风格的变换。在左侧,为了满足真实世界的分布,合成域中的a.1图像被转换为真实世界a.2的风格。内容操作。在右边,b.1是从原始数据集中选择的一个标识的图像。我们将b.2作为目标外观图像,应用DG-Net在b.3中生成既具有b.1结构又具有b.2外观的新样本。我们将生成的带有目标外观的图像作为一种新的车辆类别,并将其纳入到训练中。
内容操作。我们注意到,上面提到的样式转换方法不会改变图像内容。因此,生成的数据在视觉外观方面仍然接近原始输入,这可能限制了对合成数据的学习。为此,我们还尝试通过内容操作生成新数据。DGNet[39]是一种新颖的框架(https://github.com/NVlabs/DG-Net),可以生成具有不同视觉外观的样本,对reid任务特别有效。它使用两个编码器分别负责外观和结构信息,而解码器根据外观和结构特征生成图像。在我们的任务中,DG-Net在AICity Challenge的组织者提供的车辆re-id数据集上进行训练。然后利用训练好的模型生成新的身份。如图1的右侧所示,给定两种不同颜色的身份图像,DG-Net将生成具有目标外观的新图像。为了避免由于相似的身份引起的歧义以及由于低分辨率图像导致的故障情况,我们将生成应用于数据集的高分辨率子集。此外,为了使生成的数据具有一致的外观,我们只选择一个目标图像,为整个源图像提供外观嵌入。生成的数据只在微调阶段使用,我们将在3.2节中提供更多细节。
复制和粘贴。此外,我们还探索了直接的方法,即复制粘贴,来增加训练数据,让模型“看到”更多的背景变量。我们通过将真实图像的前景与合成图像的背景相结合来生成新样本。 特别是,对于前景提取,我们通过实例分割方法(即MaskRCNN [8])从真实图像中分割出车辆。对于背景,我们应用DeepFill v2 [36]在去除前景的空白区域进行图像修复。 整个过程如图2所示。最后,我们应用无缝图像克隆来融合前景和背景图像。
图2 复制粘贴过程。给定一个前景输入和一个背景输入,我们首先应用MaskRcCNN[8]来获得车辆遮罩。然后使用DeepFill v2对背景图像进行图像inpaint。最后,我们部署无缝图像克隆,将车辆区域“粘贴”到背景图像上。
3.2 表示学习
网络结构。根据现有的re-id工作[40,37],我们部署了在ImageNet[2]上预先训练的最先进的网络作为骨干模块,包括ResNeXt101[32]、ResNeXt101 32x8l wsl[19]和ResNet50 IBN a[33]。具体来说,我们部署了以下开源网络结构变体:
- 原始re-id基准(https://github.com/layumi/Person_reID_baseline_
pytorch)使用一个新的分类器模块替换了ImageNet的原始分类层。 新的分类器模块包含一个全连接层fc1,一个批处理规范化层和一个全连接层fc2。 当第二fc2层可以看作是线性分类器以输出类别预测时,第一fc1层将学习的特征压缩到512维。 进行推断时,我们提取fc2层之前的512像素特征作为视觉表示。 - 此外,我们还探索了另一种复杂的reid网络架构(https://github.com/douzi0248/Re-ID),融合多尺度信息,增强车辆表示。图3简要说明了这个网络的体系结构。具体地说,激活ResNet主干的最后两个区块,即区块3和区块4。我们将这两个特征分别表示为X3和X4。采用全局平均池化(GAP)和全局最大池化(GMP)来获得全局表示。在X4上进行输出大小为2×2的自适应平均池(AAP)和自适应最大池(AMP),得到局部表示。X3_g_avg表示X3的全局平均池化特性,X4_a_max表示X4的自适应最大池化特性。同样,我们也得到X3_g_max, X4_g_avg, X4_g_max和X4_a_avg。以上所有的输出特征都通过秩损失来监督,将相同身份的样本拉得更近,将不同身份的样本在特征空间中推得更远。X3_g_avg和X3_g_max进一步馈入头块,X4_g_avg和X4_g_max,X4_a_avg和X4_a_max也被馈入。 头部包含一个批处理规范化(BN)层,一个Leaky ReLU层,一个卷积(Conv)层,另一个批处理规范化层和一个完全连接的(fc)层,以预测车辆的身份。 交叉熵损失被用来惩罚错误的预测。
图3。网络架构的一个典型模型,在此工作中使用。GAP和GMP分别表示全局平均池和全局最大池,AAP和AMP表示自适应平均池和自适应最大池。头块包含一个批处理标准化(BN)层,Leaky ReLU函数,一个卷积层和一个BN层,然后是全连接层(fc)。
优化函数我们部署了两个广泛适应的目标,即交叉熵损失和排序损失来优化模型。我们将N表示为数据集中车辆标识的数量。对于输入图像x和对应的标签y,交叉熵损失是为了惩罚分类预测错误,可以表示为:
其中pi是输入样本x的真值标签。 如果i等于真值标签y,则pi = 1,否则pi = 0。pˆi是预测概率。
排序损失主要是优化训练样本之间的距离。直觉是把正对的特征拉得很近,而把来自不同车辆身份的样本的特征拉得很远。鉴于三元组{xa, xp, xn}, xa和xp是同一辆车的样本,而xa和xn是不同身份的。排名损失可表示为:
Dap = ||f(xa) − f(xp)||,Dan = ||f(xa) −f(xn)||,m是边距,[·] +表示hinge函数max(0,·)。 || ·|| 表示L2范数。
**Negative Mining.**为了提高学习模型的辨识能力,我们采用离线反例挖掘步骤对模型进行微调。它包括消极挖掘和定期训练两个阶段。在negative mining阶段,我们从mini batch中随机抽取50%的图像,然后选择最相似的负对组成hard-negative training triplet。因此,我们可以获得接近决策边界的具有挑战性的训练样本,以帮助模型学习。第二阶段是像往常一样使用排名损失来训练模型。
学习辅助信息。我们发现,车辆re-id模型容易被方向相似的不同样本所混淆。为了克服这一缺点,我们采用方向分类模型来预测每一辆车的方向,并在后处理阶段根据车辆的方向相似度抑制一些车辆对。该网络和相应的注解扩展训练集(https://github.com/wzgwzg/AICity)已经在AICity Challenge 2019中发布. 该方向分类模型简单有效,遵循标准的分类网络结构。ResNet50[9]被选择为由一个全局平均池层跟随的主干网。采用dropout操作以避免过拟合。然后,通过对卷积层和批处理归一化层的叠加来降低特征维数。最后,一个完全连接的层将特征映射到预定义的方向数。在测试阶段,将每幅图像通过方向分类模型得到方向概率向量。最后,我们利用两个方向概率向量的点积来表示一对图像的方向相似度。此外,我们还训练相机感知模型来预测相机捕捉车辆图像的位置。摄像头感知模型与方向感知模型相结合,使在后处理管道中对摄像头进行验证。更多细节见第3.3节。
实现细节。我们基于paddlepaddle框架(https://www.paddlepaddle.org.cn/)使用动量为0.9的随机梯度下降(SGD)训练模型。基本学习率设置为0.001。 我们采用余弦策略来衰减学习率[18]:
将输入图像的大小调整为{384、400、416},以训练不同的模型以进行进一步的集成。 我们还在ImageNet [1]上应用了常见的数据增强,包括随机翻转,比例抖动和学习的增强策略。我们使用detectron2 [31]作为实例分割工具从图像中提取车辆遮罩。 以X101-FPN为骨干,该模型在COCO数据集train2017上进行了训练[14]。 此外,无缝图像克隆[20]用于将车辆区域从前景图像复制到背景图像上,以去除可见的接缝。
微调模型。为了迫使模型更好地满足实际应用,在经过标准的训练过程之后,该模型将以较小的学习率在实际数据上进行进一步的微调[38]。由于真实数据的类别数小于合成数据的真实数据的类别数,我们用一个新的分类器层替换训练模型的分类器。因此,在微调阶段,我们采用预热策略,在固定骨干网的同时,先优化新的分类器层。然后对网络中的所有参数进行微调。除了来自原始数据集的数据外,我们还利用DG-Net[39]生成的数据以及裁剪的数据来为后期处理中的模型集成微调不同的模型。
3.3 后处理
此外,我们还部署了一些后处理技术来促进最终的检索结果(见图4).具体的方法包括图像对齐、模型集成、查询扩展、重新排序、相机验证和群体距离。
图4。推理管道。对于一个输入图像和一个裁剪图像,我们从训练的模型中提取特征。我们对特征进行规范化和连接。然后应用查询扩展和摄像头验证。最后,我们利用群体距离和重新排序来检索更多的正样本。
图像对齐们注意到挑战数据集提供了一个相对松散的边界框,这可能会引入额外的背景[41]。因此,我们用最先进的MaskRCNN[8]重新检测了这辆车。为了得到最终的结果,我们对原始图像和裁剪图像的车辆表示进行平均,以获得更鲁棒的车辆表示。
模型集成。我们采用[38]中的类似策略进行特征级合奏。 特别是,我们将来自12个不同模型的归一化特征连接起来作为最终的视觉表示。
查询扩展和重新排序。我们采用无监督聚类的方法,即DBSCAN[5]来寻找最相似的样本。查询特征更新为同一集群中其他查询的平均特征。我们注意到,低分辨率图像可能会影响特征识别能力。因此,我们在计算平均特征时不涉及低分辨率图像的特征。此外,我们采用[42]重新排序的方法来细化最终结果,该方法考虑了高置信候选图像。在这项工作中,我们的方法没有修改重新排序的过程。相反,该方法从“看到”的各种车辆中提取出有区别的车辆特征。有了更好的功能,重新排名更有效。
摄像头验证。我们利用相机验证进一步去除一些难负样本。在训练时,我们训练几个摄像头感知的CNN模型来识别拍摄车辆图像的摄像机。在测试时,我们从训练好的模型中提取相机预测和相机感知特征,然后对这些特征进行聚类。我们假设查询图像和目标图像在不同的摄像机中拍摄。针对一个查询图像,我们从候选图像(图库)中减少相同相机预测图像或相同相机聚类中心图像的相似性。此外,如图[25]所示,我们观察到#6,#7,#8,#9摄像机位于十字路口,并且车辆的方向大多不同。 我们注意到,训练数据仅包含场景1、3和4中的真实图像,而没有摄像机#6,#7,#8,#9。 因此,在推断时,我们假设相机预测置信度低的图像来自#6,#7,#8,#9。 我们不对测试数据使用任何额外的相机注释。基于此假设,我们进一步添加了一个方向约束,即查询图像和目标图像还应该有不同的方向预测。
群体距离。在AICity Challenge中提供了车辆的轨迹信息,接近真实场景。在实际应用中,可以通过车辆检测和跟踪算法在同一摄像机下获得tracklet。为了充分利用这些信息,我们提出了两个假设:1)来自同一轨迹的图像是同一辆车,并且可以共享视觉表示,以提高单个图像的表示可扩展性;2)同一摄像头下不同的轨迹属于不同的车辆。基于第一个假设,我们采用图库扩展,将图库特征更新为同一tracklet中其他图像的平均特征。相反,基于第二个假设,我们引入了一种积极的策略来减少难负样本的相似性。考虑到从摄像机C中检索到的高可信度图像,我们降低了同一摄像机C中不同轨迹的相似度评分。
4 实验
4.1 数据集分析
这个挑战基于城市流数据集[25],它包含333辆车的36935张训练图像。私有测试集包含1052张查询图像和18290张图库图像。今年,主办方还提供了来自[35]的合成数据,包括1362辆汽车的192,150张照片。由于没有提供验证集,因此我们从训练集中拆分了一个验证集,以进行重要成分的消融研究。 我们遵循[38]中的拆分,该拆分将最后的78个车辆ID保留为验证集。
4.2 定量分析
与其他团队的比较。如表1所示,所提出的方法已经达到了最先进的mAP准确度,即84.13%,大大优于第二名的团队,并验证了所提出的re-id的有效性方法。
表1。AICity车辆识别挑战赛结果。我们的结果是粗体的。
合成数据的影响。首先,我们在验证集上评估了合成数据的有效性。我们分别对有合成数据和没有合成数据的模型进行了训练和评估。如表2所示,使用合成数据训练的模型Rank@1达到80.86%,mAP达到46.90%,优于未使用合成数据训练的模型。
表2。消融研究。在有/没有合成训练数据的情况下,Rank@1(%)和mAP(%)的准确率。
后处理的效果。此外,我们在验证集上评估所提出的后处理方法,并逐步添加后处理技术(见表3),从而产生优越的性能。在验证集上,重新排序后,我们将基线从46.90%提高到61.26。
表3。消融研究。不同后处理技术对验证集的影响。
4.3 定性结果
检索结果的可视化。我们分别显示不使用后处理或使用后处理的排名列表(请参见图5和图6)。 我们在测试集中选择一些难负样本。 从排名列表的变化中,我们观察到尽管模型已经非常强大,但是仍然存在很多查询,由于姿势相似的难负样本,无法找到正确的匹配项。 借助后处理,可以纠正许多情况。
图5。后处理前难样本的可视化。第一列显示由不同摄像机捕获的选定查询图像,每行显示从左到右根据相似度评分检索到的前7个图库图像。绿色框中的图像是真实阳性,而红色框中的图像是假阳性。
图6。最终检索结果的可视化。第一列显示由不同摄像机捕获的查询图像,每行显示从左到右根据相似度评分检索到的前7个图库图像。绿色框中的图像是真实阳性,而红色框中的图像是假阳性。我们观察到,后处理技术可以成功地消除图5中类似方向的难负样本。
特征图的可视化。我们进一步可视化学到的模型的热图(见图7)。对于输入的图像,我们按照[40]中的可视化方法计算最终池化层之前激活的总和。我们观察到,学习的模型更多地关注有区别的部分,比如汽车灯,这与人类的经验是一致的。因此,由于较大的视点变化,车辆表示对于视觉外观变化是鲁棒的。
图7。特征图的可视化。在[40]之后,我们在最终的池化层之前可视化激活映射。与人相似的是,学习的模型对有区别的部分有很强的关注,例如汽车的灯和轮胎的类型。
5. 结论
在本文中,我们开发了一个用于车辆再识别的鲁棒车辆再识别系统,在AICity Challenge 2020的车辆再识别跟踪中获得了第一名。我们验证了合成数据在学习鲁棒视觉表示中的有效性,并探讨了在车辆表示学习中不同流行的基线和生成模型。在未来,我们将继续研究3D车辆模型和其他相关技术,以促进实际应用中的车辆re-id。
这篇关于A Robust Visual Representation for Vehicle Re-identification(超越真实数据:一种用于车辆重新识别的鲁棒视觉表示)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!