AI CITY 2020比赛第三名论文笔记

Multi-Domain Learning and Identity Mining for Vehicle Re-Identification

论文链接
这篇文章介绍了人工智能中2020年城市挑战(AICITY20)比赛中Track2的解决方案,并且拿到了MAP排名第三的成绩,Track2是一项车辆再识别(ReID)任务,数据集中既有真实世界的数据,也有合成数据。训练中是有监督的学习,测试时是无监督的。其中训练数据集中和测试数据集中的车辆图片都有出现在视频中连续几秒的的车辆图片,含有轨迹信息(在可视化结果中可以看到轨迹信息)。
在这里插入图片描述
Track2不能完全被认为是一个标准的车辆ReID任务,因为标准的车辆ReID模型是在相同领域的数据上训练和评估的。如图1所示,提供了真实世界和合成数据集来训练Track2中的模型。这两种不同的数据集之间存在很大的偏差,如何合理地使用合成数据集仍然是一个挑战。此外,Track2中的一些特殊规则介绍如下:

  1. 无法使用外部数据。
  2. 额外的手动注释只能在训练集上进行。自动注释可以应用于测试集。
  3. 团队可以使用已经被公布的在外部数据集上进行预训练。
  4. 对合成数据的使用没有限制。
    在本文中使用了带有bag of tricks (BoT-BS)的强基线person ReID作为基线。BoT-BS引入BNNeck来减少训练阶段的ID损失(交叉熵损失)和三重态损失之间的不一致性。BoT-BS不仅是person ReID的强大基准,也适用于vehicle ReID,它可以在Veri-776基准上实现95.8%的rank-1和79.9%的mAP (ResNet50作为backbone)精度。这篇文章修改了一些训练设置,如学习速率、优化器和损失函数等,以提高新数据集上的ReID性能。
    由于真实数据与人工合成数据之间存在较大的偏差,因此它比车辆ReID中的跨域或域适应任务更具挑战性。无论是直接将真实世界和合成数据合并到训练模型中,还是在合成数据上进行预训练模型,都不能提高ReID的性能。因为不管是现实世界的数据还是合成的数据,它们共享低级的特征,比如颜色和质地,基于这个目的,提出一种多域学习(MDL)方法的模型,先使用真实数据和合成的一部分数据进行预训练,然后利用真实的数据进行微调,并且在微调过程中保持前两层参数不变。
    此外,测试集可以在没有手动注释的情况下使用。可以采用一些无监督的方法,如k-means聚类,为测试数据生成伪标签。然而,由于ReID模型的性能较差,伪标签不够准确。因此,提出了身份挖掘(Identity Mining, IM)方法来生成更准确的伪标签。IM选取不同id中一些置信度较高的样本作为聚类中心,每个身份只能选取一个样本。然后,对于每个聚类中心,用相同的ID标记一些相似的样本。不同于k-means聚类将所有数据分成几个聚类,的IM方法只是自动标记高置信的一部分数据。
    为了进一步提高ReID的性能,介绍了一些有效的方法。重新排序(RR)策略是一种广泛使用的对结果进行后处理的方法。原始RR是一个图像到图像的ReID方法,但是Track2提供了轨迹信息。为此,引入了一种基于加权特征的轨迹级重排序策略(WF-TRR)。
    这篇文章的主要贡献
    1 提出了一种多域学习策略来联合利用真实数据和合成数据。
    2.提出了身份挖掘的方法,为部分测试数据自动生成伪标签。
    3 MAP较高,比赛中排名第三。

Baseline model

在这里插入图片描述
基准模型对最终的排序很重要。在track2中,使用person ReID任务中提出的强基线(BoT-BS)作为基线模型。为了提高Track2数据集的性能,对BOT-BS的一些设置进行了修改。输出特征之后是BNNeck结构,它将ID损失(交叉熵损失)和三元组损失[5]分离到两个不同的嵌入空间。软边界三元组损失被表示为:

在这里插入图片描述
在推理阶段,观察到特征ft比fi获得了更好的性能。考虑性能,使用SGD优化器而不是Adam优化器。为了提高性能,用更深入的骨干和更大的图像训练bos-bs。基线模型的框架如图2所示。

Multi-Domain learning

DR and DS分别表示真实数据集和合成数据集,目标是在DR ∪ DS上训练,并且使其DR上表现出很好的性能。有两个简单的解决方案:
Solution-1:直接合并真实世界和合成数据来训练ReID模型;
Solution-2:首先在合成数据DS上训练一个预先训练好的模型,然后在真实数据DR上微调预先训练的模型。
然而,这两种解决方案在挑战中不起作用。由于DS中的数据量比DR中的数据量大得多,所以Solution-1会导致模型更偏向DS。由于DR和DS之间存在较大的偏差,所以对于CityFlow数据集,DS上的预训练模型可能并不比ImageNet上的预训练模型更好。因此,Solution-2也不是解决这个问题的好方法. 然而,一些工作使用Veri-776、VehicleID或CompCar数据集上的预训练模型在AI CITY Challenge中获得更好的性能,这是因为这些数据集是真实的数据集,而合成数据本身就具有不合理的部分。结果表明,在合理的数据上训练的预训练模型是有效的。基于上述讨论,提出了一种新的MDL方法来开发合成数据载体。该方法包括两个阶段,即预训练阶段和微调阶段。
Pre-trained Stage:
使用所有的真实的数据和一部分合成数据,为了保证训练结果不向合成数据产生偏差,因此,选取的合成数据的id不能大于真实数据的id数,结果表明,选取100个合成数据的id能获得最好的效果。
Fine-tuning Stage:
为了进一步提高DR的性能,对不含合成数据的预训练模型进行了微调。虽然DR和DS之间存在很大的领域偏差,但颜色和纹理等低级特征在这两个领域是共享的。因此,预先训练的模型的前两层被冻结,以保持低级特征处于微调阶段。
在这里插入图片描述

Identity Mining

因为测试环境是无监督的,但为了完成检索任务,需要为图片设置伪标签(也有其他测试方法,文章中是设置伪标签),聚类方法(k-means)效果不好,于是这篇文章提出了一个IM方法为测试集中的query和gallery设置伪标签。query集Q = {q1, q2, q3, …, qm},gallery集G = {g1, g2, g3, …, gn},使用MDL模型对Q和G提取全局特征,分别表示为:fQ = {fq1 , fq2 , fq3 , …, fqm},fG = {fg1 , fg2 , fg3 , …, fgn },如图3所示,IM的第一步是从不同的id中找到样本来形成Q集L = {l1, l2, l3, …, lt},首先随机采样一个探针图片l1,
在这里插入图片描述
然后计算距离矩阵Dist(Q, L),并且定义一个负样本对阈值dn,目的是发现新的样本id并添加到L中。如果min(Dist(qi , L)) > dn,则qi将作为一个候选图片,满足这个条件的会有很多候选图片,选择满足这个约束的最不相似的的候选者:
在这里插入图片描述
lt会被赋予一个新的id并加入到L集中,重复上述这个过程直到不满足约束条件。
第二步是找到属于同一id的样本,同样地,设置一个正样本对阈值dp,对于一个锚图片lt,如果一个样本x,x∈Q∪G满足Dist(x, lt) < dp,x将会被赋予与lt相同的id,但在这种约束下,x将会被赋予很多id,只需赋予与x最相似的lt的id即可。这些被添加到L集中的样本就都有了伪标签,然而,因为阈值dp<dn,所以只有一部分样本有伪标签。
与k-means聚类方法相比,IM方法可以在第一阶段自动生成聚类中心,不需要知道类的数量。然而,所提出的方法是一个局部优化,对L的初始样本敏感。

Tracklet-Level Re-Ranking with Weighted Features

Track2中的测试集提供了tracklet id。先验知识是一个tracklet的所有帧都属于同一个ID。在推理阶段,标准ReID任务是一个图像对图像(I2I)问题。然而,有了tracklet信息,任务就变成了一个图像跟踪(I2T)问题。对于I2T问题,用tracklet的所有帧的特征来表示tracklet的特征。对于轨迹:Ti = ti,1, ti,2, ti,3, …, ti,j,首先,计算一个子矩阵Dist(Q, Ti),T是gallery中的轨迹集,然后,将Dist(Q, Ti) 最小值小于0.2的这一行图片标注为D‘,然后计算D’中每一列的平均值,得到Ti的平均距离向量Ai,权值计算:
在这里插入图片描述
轨迹Ti的加权特征被表示为:
在这里插入图片描述
fTi是Ti的加权特征,F(Ti) = {fti,1 , fti,2 , fti,3 , …, fti,j }是Ti的特征集,然后我们可以得到图像到轨迹的距离矩阵Dist(Q, T)来得到ReID结果并平铺轨迹图像。
除了加权特征外,k-倒数重排序(RR)方法是另一种可以提高ReID性能的后处理方法。然而,RR是一种帧级的图像到图像ReID方法。为了解决这一问题,我们将每个探测图像视为一个独立的单帧轨迹。将RR方法应用于小轨特征分析中。我们称之为带加权特征的轨迹级重排序(WF-TRR)。

实验结果:

Datasets
与学术研究定义的标准车辆ReID任务不同,Track2可以根据真实世界和合成数据训练模型,如图1所示。此外,还允许对测试集进行无监督学习。
Real-world data:真实世界的数据,本文称之为CityFlow数据集[16,22],是在真实世界的交通监控环境中,通过40个摄像头采集的数据。它一共包含了666辆车的56277张图片。36935张333辆车的图像用于训练。其余的18290年333辆车的图像正在测试中。在测试集中,查询图像为1052张,图库图像为17238张。平均而言,每辆车有来自4.55个摄像头视图的84.50个图像签名。在训练和测试集上都提供了单摄像机跟踪装置。
Synthetic data:本文将合成数据称为VehicleX数据集,它是由一个公开的3D引擎VehicleX[28]生成的。数据集只提供了训练集,总共包含了1362辆车的192150幅图像。此外,属性标签(如汽车颜色和汽车类型)也有注释。在Track2中,合成数据可以用于模型训练或迁移学习。然而,真实数据与合成数据之间存在很大的领域偏差。
Validation data:将CityFlow的训练集划分为训练集和验证集,为了方便起见,将其分别命名为split-train和split-test。Splittrain和Split-test分别包含233辆车的26272张图像和100辆车的10663张图像。在Split-test中,每辆车采样3张图像作为probe,其余的图像作为gallery。
Implement Details:所有的图像都被调整320X320。如图2所示,采用ResNet101 IBN a[26]作为骨干网。对于数据增强,使用随机翻转、随机填充和随机擦除。在训练阶段,使用软边缘三元组损失,对8个id和每个id的12个图像进行小批量处理,从而提高了收敛性。使用SGD作为优化器,初始学习率设置为1e2。此外,采用了warm up学习策略,前10个迭代学习速率从1e3线性增加到1e2。在第40次迭代和第70迭代,学习速率分别衰减为1e3和1e4。共使用100次迭代来训练模型。
在MDL的预训练阶段,加入合成数据的前100个身份的14536张图像对模型进行预训练。在每个迭代都仅仅使用这些采样的合成数据。对于MDL的fune-tuning阶段,模型被微调了40个时代,其中骨干网层的初始学习率被设置为1e3,全连接层的2e3。IM方式:“距离阈值dn”为0.49,“dp”为0.23。使用L2归一化距离特征。从333个类别中选取130个身份的7084幅图像作为集合L。

实验结果以及模型的消融学习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CityFlow的消融学习

在这里插入图片描述

可视化结果比较

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值