ICCV 2019 PAMTRI: Pose-Aware Multi-Task Learning for Vehicle Re-Identification


PAMTRI:Pose-Aware Multi-Task Learning for Vehicle Re-Identification Using Highly Randomized Synthetic Data
PAMTRI: Pose-Aware Multi-Task Learning for Vehicle Re-Identification Using Highly Randomized Synthetic Data | Research

摘要

车辆重识别面临的挑战:

  • 类内差异大:由形状、外观对视角的高度依赖导致
  • 类间差异小:由不同车辆在形状、外观上的相似性导致

为了设法应对这些挑战,我们提出了Pose-Aware Multi-Task Re-Identification (PAMTRI)框架,相比之前的各种方法,它包含两个创新点:

  • 通过关键点热点图姿态估计的分割怎么理解?)来明确推断车辆的姿态和形状,从而克服其对视角的依赖
  • 进行ReID时,通过嵌入姿态表示的多任务学习,联合对车辆的语义属性(颜色和类型)进行分类

同时因为手动对图像进行详细的姿态和属性信息标注过于昂贵,我们创建了一个大型的高度随机化的合成数据集,它带有自动标注好的训练车辆的属性。大量的实验验证了提出框架的每个部分的有效性,PAMTRI在两个主流的车辆重识别基准数据集:VeRi和CityFlow-ReID上取得了显著的成效。

1.引言

交通摄像头的广泛部署为视频分析在物流、交通和智能城市等各种应用中提供了大好机会。这类分析中一个特别关键的问题是目标的跨相机关联,比如行人和车辆, 重识别 (ReID),如图1所示。
在这里插入图片描述
虽然行人和车辆是智能城市应用中的共同目标,但是最近几年行人重识别更受重视。这主要因为丰富的充分标注的行人数据集,以及计算机视觉研究对人脸和身体的历史关注。而且,相比行人,车辆的重识别面临更大的挑战:high intra-class variability和small inter-class variability。

最近的车辆重识别方法利用特征学习[37,45,46] and/or 距离度量学习[3,10,13]训练深度神经网络(DNNs)来区分车辆样本对,但目前最先进的表现,仍远远无法和行人重识别相比拟[43]。此外,[30]已经表明,直接将最先进的行人重识别方法应用在车辆目标上并不足以填补这一差距,表明了这两个任务之间存在根本区别。我们认为,车辆重识别的关键是利用视角不变(不会随着视角变化而变化的信息)的信息,如颜色、类型和可变的形状模型编码的姿态(这儿是什么意思?)。为了将这些属性和姿态信息结合起来学习,我们用合成数据来克服手动标注包含这些细节信息的真实训练图像带来的高昂成本。

在这项工作中,我们提出了一个名为PAMTRI的框架,用于位置感知的多任务重识别。我们的主要贡献有三个:

  • PAMTRI将关键点、热点图和姿态估计的分割嵌入到车辆重识别的多任务学习过程中,去引导网络关注与视角相关的信息。
  • PAMTRI使用大规模的合成数据进行训练,包括随机的车辆模型、不同背景下的颜色和方位、光照条件和遮挡。自动生成用于训练的车辆ID、颜色、类型和2D姿态的标注。
  • 我们提出的方法在两个主流的基准数据集上取得了显著的改进效果:VeRi[14]和CityFlow-ReID[30]。进一步的实验验证了我们利用显式姿态信息的独特结构,以及随机化的合成数据进行训练的方式,是该方法成功的关键。

2.相关工作

2.1 Vehicle ReID

早期涉及深度学习的多种尝试里:

  • Liu等人[14,15]提出了一种渐进式框架,该框架采用具有对比损失的SNN网络进行训练,他们还构造了VeRi[14]作为第一个大规模的车辆重识别基准数据集, A Deep Learning-Based Approach to Progressive Vehicle Re-identification
  • Bai等人的[3]和Kumar等人的[10]也利用了距离度量学习的优势,将三元组嵌入在行人重识别[6]任务中的成功扩展到了基于车辆的任务中。尤其是,Kumar等人的批量采样变体是目前在VeRi和CityFlow-ReID [30]数据集上最先进的方法,后者是后来的多目标多摄像头的车辆跟踪基准数据集的一个子集。
  • 一些方法侧重于利用视角不变特征(不随着视角改变而改变的特征),如Wang等人的[37]方法,该方法将提取到的车辆关键点嵌入局部区域特征进行交叉熵损失训练。
  • Zhou等人[45,46]使用生成式对抗网络(GAN)生成多视角特征,这些特征由一个视图感知的注意力模型进行选择,其中属性分类也通过鉴别网络进行训练。
  • Yan等人使用多任务学习来同时处理多粒度排序和属性分类,但是它旨在寻找视觉相似的车辆,与我们的重识别目标不同。

据我们所知,没有一种方法能联合姿态信息和多任务学习来解决车辆重识别问题。

2.2 Vehicle pose estimation

通过可变性(例如基于关键点)建模进行车辆姿态估计,是一种很有前景的处理视角信息的方法。

  • 在[31]中,Tang等人提出可以使用进化优化生成的基于16个关键点的车辆模型来构建多个用于3D跟踪的内核。
  • Ansari等人[2]设计了一个更复杂的车辆模型,包含36个关键点,用于从行车记录仪进行三维定位和形状估计。
  • Wang等人[37]提出的车辆重识别方法,也使用了20个关键点的模型来提取基于方位的特征,以用于区域建议。但是,他们的网络不是显式地定位关键点坐标,而是仅用于估计响应映射,而且框架中没有利用到语义属性。
  • 其他方法可以直接回归估计出具有6个自由度的汽车姿态(DoF)[11, 16, 18, 39],但是由于没有采用基于关键点的车辆形状建模,因此这些方法也不能达到我们的目的。

2.3 Synthetic data

为了在训练图像上生成足够详细的标签,我们的方法利用了合成数据,该方法在渲染图像和真实图像的混合图像上进行训练。这将我们的工作置于使用模拟数据训练DNNs的其他研究背景下(模拟数据训练需要面临所谓的现实差距/现实鸿沟)。而克服所谓的现实差距的一种流行的方法是随机域数据生成[34,35],在这种方法中,一个模型被训练为具有极度多的视觉可变性,因此当要生成一个真实世界的图像时,模型只需将真实世界视为其中另一种变化即可。
论文笔记:Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World

合成数据已成功应用于各种问题,如光流[17]、汽车检测[22]、物体姿态估计[26,36]、基于视觉的机器人操作[8,34],机器人控制[4,29]。我们将这一研究扩展到车辆重识别和语义属性理解。

此处暂时还理解不透,不了解。。。。

3.提出的方法

在本节中,我们将描述提出的PAMTRI框架的算法设计,系统总体流程图如图2所示。

3.1 随机合成数据集

除了车辆ID标识,我们的方法还需要额外的车辆属性和关键点位置的标签。如果手工注释,这些标签,特别是关键点,将需要大量的、甚至是昂贵的工作。

为了解决这个问题,我们使用深度学习数据集合成器(NDDS)[33]生成了一个大规模的合成数据集,用于在虚拟引擎4 (UE4)中创建一个随机的环境,其中三维车辆网格从[22]导入。我们在CAD模型上,给NDDS添加了标注导出特定3D位置(例如关键点位置,在UE4中表示为sockets)的能力。这样,我们为每个车辆模型手动标注了Ansari等人[2]定义的36个3D关键点,然后用合成的图像输出的对应的2D位置。该方法使用了42个车身颜色为10种的汽车3D CAD模型来进行随机化。为了训练用于重识别的数据,我们为每一个具有特定颜色的车辆模型组合定义唯一标识。最终生成的数据集包含41,000个具有402个ID的独特图像,包括以下标注:关键点、方位和车辆属性(颜色和类型)。在生成数据集时,背景图像从CityFlow[30]中采样而来,并随机化车辆位置和光照强度。

此外,在训练期间,我们执行随机的后处理,如缩放、裁剪、水平翻转和添加遮挡。一些例子如图3所示。
这个图其实我也看不太明白
在这里插入图片描述

3.2 车辆姿态估计

为了利用视角感知信息进行多任务学习,我们训练了一个健壮(鲁棒性强)的DNN来提取与姿态相关的表示。与Tremblay等人的[35]类似,我们混合真实和合成的数据来弥补现实差距。更具体地说,在每个数据集中,我们使用预先训练好的模型[2]来处理采样后的图像,并手动选择大约10,000个成功的样本作为真实的训练数据。

与之前使用堆叠的沙漏状网络[21]作为backbone的方法[2,37]不同的是,我们修改了目前人体姿态估计领域里最先进的DNN网络HRNet[25],以作为我们的backbone。与堆叠的沙漏状结构和其他从低分辨率表达中恢复高分辨率表达的方法相比,HRNet保留了高分辨率表达,并通过多尺度融合逐步添加高到低分辨率的子网络。因此,预测的关键点和热点图信息更准确,空间上也更精确,这有利于我们进行多任务学习的嵌入。

我们提出了两种方法来嵌入车辆姿态信息作为在多任务网络的输入层处的额外的通道,分别基于热点图和分割:
1、在最后的反卷积层之后,我们为每个用于捕获车辆形状和姿态的关键点提取36个热点图
2、最后的全连接层(FC)预测的关键点坐标被用来对车身进行分割
例如,图3中,可变模型中的关键点#16、#17、#35和#34构成了代表汽车引擎盖的部分(分割)。因此,我们为每辆车定义了13个分割掩码 (如图3 TOP-LEFT),其中那些由低置信度的关键点组成的部分则设置为空白。然后从姿态估计网络中得到的热点图或分割的反馈被缩放并添加到原始的RGB通道中进行进一步处理。我们还将显式的关键点坐标和置信度发送给多任务网络进行进一步的嵌入。

3.3 车辆重识别的多任务学习

位置感知的表示对重识别和属性分类任务都有重要作用:

  • 车辆姿态描述了对于摄像机视角来说具有不变性的三维形状模型,因此重识别的子分支可以学习到如何关联来自不同视角的特征
  • 车辆形状与目标所属的车辆类型直接相关
  • 通过2D关键点进行分割,使得颜色分类子分支能够提取出主要的车辆颜色特征,而忽略掉那些非着色区域,如挡风玻璃和车轮

因此,我们嵌入预测关键点和热点图(或分割)到我们的多任务网络中,以帮助引导注意力到与视角相关的表示上。首先,将姿态估计得到的所有热点图/分割的反馈与原始输入的RGB通道进行叠加,形成一张新的图像。因此,我们对基于DenseNet121[7]的backbone卷积神经网络(CNN)的第一层进行了修改,使其允许更多的输入通道。当我们对RGB通道使用预训练的权值时,新的通道权值采用高斯随机初始化。叠加后的图像为DNN提供了关于车辆形状的额外信息,从而帮助特征提取专注于视图感知的表达。合成图像和真实图像都被混合在一个batch里面,并发送到CNN的backbone。

对于最后的池化层提取的深度学习特征向量,连结来自姿态估计的关键点坐标和置信度得分(被归一化到-0.5~0.5之间)(如图3)。由于关键点是显式表示和有序的,它们使得神经网络能够在最后的FC层中学习到更可靠的形状描述来进行多任务学习。最后,将连结之后的特征向量输入给三个独立的分支进行多任务学习,其中一个分支用于车辆重识别,另外两个分支用于颜色和类型分类

网络的最终损失函数是三个任务的联合损失:

  • 对于车辆重识别,将使用hard-mining三元损失与交叉熵损失相结合,共同利用距离度量学习和ID分类,具体描述如下:
    L I D = λ h t r i L h t r i ( a , p , n ) + λ x e n t L x e n t ( y , y ^ ) (1) \mathcal{L}_{\mathrm{ID}}=\lambda_{\mathrm{htri}} \mathcal{L}_{\mathrm{htri}}(a, p, n)+\lambda_{\mathrm{xent}} \mathcal{L}_{\mathrm{xent}}(y, \hat{y}) \tag{1} LID=λhtriLhtri(a,p,n)+λxentLxent(y,y^)(1)
    其中 L h t r i ( a , p , n ) \mathcal{L}_{\mathrm{htri}}(a, p, n) Lhtri(a,p,n)是hard triplet loss, a a a p p p n n n分别代表anchor,positive和negative 样本:
    三元组损失 Triplet Loss及其梯度 的理解
    L h t r i ( a , p , n ) = [ α + max ⁡ ( D a p ) − min ⁡ ( D a n ) ] + (2) \mathcal{L}_{\mathrm{htri}}(a, p, n)=\left[\alpha+\max \left(D_{a p}\right)-\min \left(D_{a n}\right)\right]_{+} \tag{2} Lhtri(a,p,n)=[α+max(Dap)min(Dan)]+(2)
    注意(2)式的欧氏距离前面有 m a x / m i n max/min max/min限制:看这儿:triplets 、triplet Loss和 hard triplets
    (2)式中α是边缘距离, D a p D_{ap} Dap D a n D_{an} Dan是特征空间中anchor与所有正/负样本之间的距离度量, [ ⋅ ] + [·]_+ []+代表 m a x ( ⋅ , 0 ) max(·,0) max(,0)。然后, L x e n t ( y , y ^ ) \mathcal{L}_{\mathrm{xent}}(y, \hat{y}) Lxent(y,y^)代表交叉熵损失:
    L x e n t ( y , y ^ ) = − 1 N ∑ i = 1 N y i log ⁡ ( y ^ i ) (3) \mathcal{L}_{\mathrm{xent}}(y, \hat{y})=-\frac{1}{N} \sum_{i=1}^{N} y_{i} \log \left(\hat{y}_{i}\right) \tag{3} Lxent(y,y^)=N1i=1Nyilog(y^i)(3)
    (3)式中, y y y代表ground-truth向量, y ^ \hat{y} y^代表估计值, N N N为类别数(此处为车辆ID数量)。(1)式中, λ h t r i \lambda_{\mathrm{htri}} λhtri λ x e n t \lambda_{\mathrm{xent}} λxent为正则化参数,均设置为1。

  • 对于剩下的两个用于颜色和类型分类的分支,均采用交叉熵损失:
    L color  = L xent  ( y color  , y ^ color  ) (4) \mathcal{L}_{\text {color }}=\mathcal{L}_{\text {xent }}\left(y_{\text {color }}, \hat{y}_{\text {color }}\right) \tag{4} Lcolor =Lxent (ycolor ,y^color )(4) L type  = L xent  ( y type  , y ^ type  ) (5) \mathcal{L}_{\text {type }}=\mathcal{L}_{\text {xent }}\left(y_{\text {type }}, \hat{y}_{\text {type }}\right) \tag{5} Ltype =Lxent (ytype ,y^type )(5)

最后的损失是所有任务的加权组合:
L ( θ , X ) = L I D + λ c o l o r L c o l o r + λ t y p e L t y p e (6) \mathcal{L}(\theta, \mathcal{X})=\mathcal{L}_{\mathrm{ID}}+\lambda_{\mathrm{color}} \mathcal{L}_{\mathrm{color}}+\lambda_{\mathrm{type}} \mathcal{L}_{\mathrm{type}} \tag{6} L(θ,X)=LID+λcolorLcolor+λtypeLtype(6)
其中, X = { ( x i , y i ) } \mathcal{X}=\left\{\left(x_{i}, y_{i}\right)\right\} X={(xi,yi)}代表输入训练集, θ \theta θ代表网络的参数集合。根据其他研究人员的实践[12,23],我们的正则化参数 λ c o l o r \lambda_{\mathrm{color}} λcolor λ t y p e \lambda_{\mathrm{type}} λtype设置为远低于1,在我们的实验中是0.125。这是因为,在某些情况下,车辆重识别和属性分类是相互冲突的任务,例如,两辆相同颜色及/或型号的车辆也不可以共用同一车辆ID。

在测试阶段,最后的ReID分类层是被移除掉的。对每张车辆图像,从最后一个全连接层提取1024维特征向量。对每对查询和测试图像的特征进行欧氏距离的比较来确定它们的相似性。

4.评估

4.1 数据集和评估协议

在两个主流基准数据集上进行评估:VeRi [14]和CityFlow-ReID [30]:
在这里插入图片描述
这项工作的另一个贡献是为CityFlow-ReID中的所有666个ID手动标记车辆属性(颜色和类型)。
。。。

4.2 实现细节

  • 多任务学习训练
    利用[44]中的已有实现,我们使用DenseNet121 [7]作为多任务学习的backbone,它的初始权重来自于在ImageNet[5]上预训练的模型。输入图像大小resize为256×256,训练批量大小设置为32。采用adam优化器训练base model最多60个epoch。初始学习速率设置为3e-4,并且分别在第20和40个epoch衰减为3e-5和3e-6。对于多任务学习,ReID的最后一个FC层的维度为1024,而属性分类的两个FC层大小相同,都是512。对于所有的最后的FC层,均采用 Leaky ReLU[40]作为激活函数。

  • 姿态估计训练
    目前最先进的用于人体姿态估计的HRNet[25]是我们用于车辆姿态估计的backbone,它是建立在Sun等人的最初实现基础上的。我们再次采用ImageNet[5]上预先训练好的权值进行初始化。每个输入图像的大小也resize为256×256,热点图/分割输出的大小为64×64。我们将训练批大小设置为32,最大epoch为210,学习率为1e-3。最后的FC层被调整成输出一个108维的向量,因为我们的车辆模型在2D上包含36个关键点,同时它们的可见性(由置信度分数表示)也被计算出来。

4.3 与其他方法的比较

VeRi见表2,分析就。。。
在这里插入图片描述
CityFlow-ReID [30]见表3。

在这里插入图片描述
在图4中,绘制了表3中方法的CMC曲线,以便更好地观察定量实验对比。
在这里插入图片描述
在图5中,我们还展示了一些使用我们所提出的方法的成功和失败的例子。如例子所示,大多数失败的例子是由于出租车等常见车辆类间相似性高,以及场景中物体(如标志、杆子)的强遮挡造成的。
在这里插入图片描述

4.4 属性分类比较

颜色和类型分类的实验结果如表4所示:
在这里插入图片描述

4.5 车辆姿态估计比较

在这里插入图片描述

5.结论

略。。。。


哎,这篇文章给我最大的感受就是,读不懂。。。好多个细节的地方都理解不了,希望过段时间回头看能加深理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值