文章目录

  • 摘要
  • 1.引言
  • 2.相关工作
    • 2.1 Vehicle ReID
    • 2.2 Vehicle pose estimation
    • 2.3 Synthetic data
  • 3.提出的方法
    • 3.1 随机合成数据集
    • 3.2 车辆姿态估计
    • 3.3 车辆重识别的多任务学习
  • 4.评估
    • 4.1 数据集和评估协议
    • 4.2 实现细节
    • 4.3 与其他方法的比较
    • 4.4 属性分类比较
    • 4.5 车辆姿态估计比较
  • 5.结论

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分类,具体描述如下:
    LID=λhtriLhtri(a,p,n)+λxentLxent(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​=λhtri​Lhtri​(a,p,n)+λxent​Lxent​(y,y^​)(1)
    其中Lhtri(a,p,n)\mathcal{L}_{\mathrm{htri}}(a, p, n)Lhtri​(a,p,n)是hard triplet loss,aaa,ppp和nnn分别代表anchor,positive和negative 样本:
    三元组损失 Triplet Loss及其梯度 的理解
    Lhtri(a,p,n)=[α+max⁡(Dap)−min⁡(Dan)]+(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)式的欧氏距离前面有max/minmax/minmax/min限制:看这儿:triplets 、triplet Loss和 hard triplets
    (2)式中α是边缘距离,DapD_{ap}Dap​和DanD_{an}Dan​是特征空间中anchor与所有正/负样本之间的距离度量,[⋅]+[·]_+[⋅]+​代表max(⋅,0)max(·,0)max(⋅,0)。然后,Lxent(y,y^)\mathcal{L}_{\mathrm{xent}}(y, \hat{y})Lxent​(y,y^​)代表交叉熵损失:
    Lxent(y,y^)=−1N∑i=1Nyilog⁡(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^​)=−N1​i=1∑N​yi​log(y^​i​)(3)
    (3)式中,yyy代表ground-truth向量,y^\hat{y}y^​代表估计值,NNN为类别数(此处为车辆ID数量)。(1)式中,λhtri\lambda_{\mathrm{htri}}λhtri​和λxent\lambda_{\mathrm{xent}}λxent​为正则化参数,均设置为1。

  • 对于剩下的两个用于颜色和类型分类的分支,均采用交叉熵损失:
    Lcolor =Lxent (ycolor ,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)Ltype =Lxent (ytype ,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)=LID+λcolorLcolor+λtypeLtype(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​+λcolor​Lcolor​+λtype​Ltype​(6)
其中,X={(xi,yi)}\mathcal{X}=\left\{\left(x_{i}, y_{i}\right)\right\}X={(xi​,yi​)}代表输入训练集,θ\thetaθ代表网络的参数集合。根据其他研究人员的实践[12,23],我们的正则化参数λcolor\lambda_{\mathrm{color}}λcolor​和λtype\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.结论

略。。。。


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

ICCV 2019 PAMTRI: Pose-Aware Multi-Task Learning for Vehicle Re-Identification相关推荐

  1. Multi task learning多任务学习背景简介

    2020-06-16 23:22:33 本篇文章将介绍在机器学习中效果比较好的一种模式,多任务学习(Multi task Learning,MTL).已经有一篇机器之心翻译的很好的博文介绍多任务学习了 ...

  2. Multi Task Learning在工业界如何更胜一筹

    摘要: 本文主要介绍多任务学习和单任务学习的对比优势以及在工业界的一些使用.如何从单任务学习转变为多任务学习?怎样使AUC和预估的准确率达到最佳?如何对实时性要求较高的在线应用更加友好?本文将以淘宝实 ...

  3. SinGAN实现的单图动画,ICCV 2019 Best Paper

    点击我爱计算机视觉标星,更快获取CVML新技术 ICCV 2019 Best Paper <SinGAN:Learning a Generative Model from a Single Na ...

  4. ICCV 2019 Vehicle Re-identification with Viewpoint-aware Metric Learning

    文章目录 摘要 1.引言 2.相关工作 2.1 关于重识别 2.2 深度度量学习 3.VANet 3.1 度量学习baseline 3.2 视角感知的度量学习 3.2.1 空间内约束 3.2.2 跨空 ...

  5. ICCV 2019 | 基于无标签单目视频序列的单帧三维人体姿态估计算法

    作者丨王璇 学校丨西安交通大学 研究方向丨人体姿态估计 我们都知道,要训练一个准确的三维人体姿态估计深度神经网络,需要大量有三维标签的数据,越多越好.而在现实生活中,我们很难得到很多有标签数据,而无标 ...

  6. ICCV 2019 | 商汤科技57篇论文入选,13项竞赛夺冠

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自商汤科技SenseTime. 商汤科技及联合实验室共有57篇论文入选ICCV 2019(包含11篇Oral),同时在Open Images.C ...

  7. ICCV 2019 | 厦大提出快速NAS检索方法,四小时搜索NN结构

    点击我爱计算机视觉标星,更快获取CVML新技术 机器之心专栏 作者:郑侠武 ICCV 2019 将于 10.27-11.2 在韩国首尔召开,本次会议总共接受 1077 篇,总提交 4303 篇,接收率 ...

  8. ICCV 2019 中国论文数量超美国,商汤57篇论文入选!

    整理 | AI科技大本营编辑部 出品 | AI科技大本营(ID:rgznai100) ICCV 2019 最佳论文 论文标题:SinGAN:从单张图像学习生成模型 <SinGAN: Learni ...

  9. 76篇 ICCV 2019 论文实现代码

    ICCV 2019 将于2019/10/27-2019/11/2在韩国首尔的 COEX 会议中心举行,本次ICCV 收到了创纪录的4303份提交(比ICCV 2017年增加了100%),并接受了107 ...

最新文章

  1. Java初学者如何自学和自己定位解决问题
  2. php的遍历方法,PHP数组遍历方法总结
  3. PN结中存在的Boltzmann常数
  4. 【Groovy】编译时元编程 ( 编译时处理 ASTTransformation 接口实现 | 配置 ASTTransformation )
  5. 快来捡武器:Black Hat USA 将推出的8款安全工具
  6. 让我感动的经典台词(zz)
  7. [渝粤教育] 广东-国家-开放大学 21秋期末考试建筑工程概预算10326k2
  8. Office2010-2016官方镜像大全
  9. 程序员都会的 35 个 jQuery 小技巧
  10. 2019-05-18 操作系统概论
  11. 拆解拼多多、趣头条、小红书背后的上海互联网基因
  12. 现当代英国童话小说传统对幻想文学创作的启示
  13. linux 宽带连接
  14. 芯片短缺困局难解汽车巨头被迫停工减产---道合顺大数据
  15. BZOJ 3876 AHOI2014 支线剧情 费用流
  16. R语言与多元线性回归方程及各种检验
  17. DOS子程序汇编样例及详解
  18. 远程办公利器——利用cpolar内网穿透在家远程公司内网电脑
  19. Java | SpringBoot 常用注解详解
  20. coco128训练YOLOv5

热门文章

  1. mysql 读取未提交(脏读问题)与读取已提交(不可重复读问题)
  2. FlexSim实战练习(二)——多品种小批量订单拣选作业
  3. NC65 sql server 查询人员薪资发放 数据
  4. Python程序员找了个女朋友, 没有时间聊天? 做一个自动回复功能!还会怕没有女朋友吗?
  5. 吴恩达《深度学习专项》笔记+代码实战(二):简单的神经网络——逻辑回归
  6. 编辑器 的保存怎么绑定事件_适合新手用的公众号文章编辑器,你必须知道这一款...
  7. 1分钟链圈 | 雄安上线首个区块链租房平台;微软入局区块链
  8. IDEA的安装、配置与使用详解
  9. 功能测试如何转型自动化测试
  10. 树与二叉树(二叉树前传、数据结构初阶、C语言)