motivation:
a在车辆的不同视图中的视觉模式的变化远大于人的视觉模式.
b车辆的分类网络不仅学习到了模型的颜色,类别信息,还学习到了相应的视点特征。采用一个生成网络,通过输入视图的固有特征以及预期视点的特征和噪声矢量将这三个特征concat一起,通过相对应的真实视角来学习同一辆车的目标视图。如果有生成网络那么就有相应的判别网络,Discriminative Net将真实图像与合成样本区分开来,并通过属性label来同时保持生成的图像具有正确的车辆属性。来自交叉视图对数据的推断的车辆图像通过学习距离度量有助于re-ID的表现。
c对于输入的车辆产生不同视角的图像。
车辆重识别中一个难点:最小化同一车辆的侧视图和前视图之间的距离,并且在前视图中让两个类似车辆的距离尽量远离,这将使模型训练而难以得到正确和收敛的损失。但是或许把相同id的多个视角特征concat在一起或许可以让训练具有区分力的同时让训练变的更加容易。
XVGAN:
输入cameraA的一个视角的车辆图像,经过四个卷积层以及两个全连接层,每层后都经过Leakey-ReLU函数,接着通过多属性分类,分出256维作为属性向量Xattr,和视角分类,得到128为视角向量Xvp。这样做希望的是视角信息在属性向量中较弱,而在视角向量中被加强。所有车辆的视角被粗糙的分为五类,在训练分类网时,视点分类的loss可以快速且很好地收敛。 因此,我们可以通过k均值聚类从所有训练数据中轻松学习五个视点的特征聚类,并在每个聚类的中心计算特征。聚类好的视点特征就可以作为产生视点图像B,cameraB视角图像的条件。
再来看Generative Net ,G作为条件生成器任务是将,属性特征向量,随机噪声向量Z和目标视角中心视点特征向量,concat在一起后,生成属性,id,颜色不变的目标视角。concat在一起后的向量是512维经过,一层全连接层(为了让这三个向量更好的融合)四个反卷积层,产生视角B的合成图像,然后与真实的视角B图像共同输入Discriminative Net/Matching of image and attributes,DN的网络结构与CN的结构相同,为了让属性和原始的输入图片相同,视角与视角B的相同会使用一个multi-label classfication.与此同时为了更好的优化G和D,会在卷积层达到8*8的时候将CN得到的Xtta和视角B的中心特征XcvpB在深度上复制过来,一起经过1*1卷积就相当于全连接了。用下面的loss函数
当然在训练出为了图像生成的XVGAN,还是为了更好优化re-ID这个任务,,定义一个positive paire,同一类别的不同视角,和nagative paire,不同类别的车辆。以类似孪生网络的形式输入样本对,将CN网络的最后一层卷积层与DN最后一层卷积层得到的特征concat起来,如果是正样本对那么就将concat之后的特征靠近,如果是负样本对就将特征远离。
在推理阶段,分类网首先预测查询车辆和图库集中每个待匹配的视角。 然后,采用彼此相应的中心视点特征以及内在特征来生成交叉视图图像。最后,2048维ReidFeat用于测量排名距离。
VAMI:
motivation:同一辆车的不同角度之间角度会有非常大的差异;不同车辆的图像之间的细微的实例间差异以及同一车辆的图像之间的大的实例间差异使得现有视觉模型不能令人满意地解决匹配问题。提出了一种视点感知的注意力多视图推理模型(VAMI)来推断来自单视图图像输入的多视图特征。然后,可以在生成的视点不变多视图特征空间上学习距离度量。
contributions:
a.提出了一种视点感知注意模型,以从输入图像获得attention map。每张map的高分区域显示输入车辆视图与目标视点之间的重叠外观。例如,为了从正面视图输入图像推断侧视图特征,VAMI仅关注车辆侧面图案而忽略前面区域。
b.鉴于单视图输入的细节特征,我们设计了条件多视图生成网络,以推断包含输入车辆的不同视点信息的全局特征。将对抗性训练机制和辅助车辆属性分类器组合以实现有效的特征生成。
c.除了推断多视图特征之外,我们还在网络中进行成对距离度量学习,以将同一车辆放在一起并推开不同的车辆。
网络结构:
给定一对图片,和相应的相似性标签,如果两个视角是来自同一辆车那么相似性标签为1,否则为0.而对于每张单视角图片I,目的是希望将它的特征映射成多视角的特征f,通过下面这个函数:
其中F(I)代表提取的单视角特征,是通过视点感知注意模型获得的,以选择输入视图和目标视点v之间的重叠区域,V代表视角的数量。
Vehicle Feature Learning
为了判别给定的两辆车,front-side 和rear-side人们关注的是重合的更多的是重合的部分来判断两辆车是否是同一辆车,因此提出一个视角感知的注意力模型。
经过两个5*5卷积层,和3个3*3卷积层,每层使用Leaky-ReLu函数和两个全连接层,得到的特征进行视点,和属性分类,在训练F Net之后,我们可以在所有训练数据上提取视点特征,并通过k-means聚类轻松学习五个视点的特征聚类,从而可以获得每个聚类中心的特征,称为中心视点特征。这里其实和XVGAN的思路是一样的,主要不同的是引入了注意力感知机制。这些中心视点特征用于学习视点感知注意模型。
Viewpoint-aware Attention Mechanism
输入特征为F网络的第四个卷积层的输出(8×8×256)因为这一层既有高级特征也有较大的空间尺寸(8的尺寸对于视角注意力确实也基本够用了)。另外利用F的视角分类结果,将对应视角的Attention map设为1。模型生成的5个AM与输入特征点乘,就得到了5个视角下的特征图。
图3为注意力机制的详细设计。注意力的行程分为t步,后一步会依赖前一步的结果,可以把这一多步的形式看做多模块。可以通过学习由指示输入和目标视点之间的共享外观的标签弱监督的context vector来产attention map。弱监督是指仅定义通过5种视角间的两两重合关系,定义了一个code,代表了6种重合情形,其bit的表见图3的表格。要注意哪个视角的区域,就会利用那个视角的训练集聚类特征,与上一步的context vector ct−1相乘,并经过神经元激活。
初始的context-vector
输入的图像是表示为,N是图像区域的数量,并且un是第n区域的256维特征向量(注意这是从F-NET的第四层卷积层得到feature map为8*8*256)
步骤t的上下文向量可以通过以下等式关注输入视图的某些区域:
其中c t-1是步骤t-1的上下文向量,v表示五个中心视点特征之一,通过两层非线性变换和softmax函数计算注意力权重
其中和偏差项是可学习的参数。⊙表示元素乘法
Conv4的特征激活后与其相乘,再次激活并softmax后就得到了注意力权重α。α在于原始特征图相乘后再求和,就得到了这一阶段的context vector结果ct。并将其与弱标签通过交叉熵loss优化。
Adversarial Multi-view Feature Learning
与通常的GAN训练生成器和辨别器来生成和辨识样本不同,我们需要的是从单视角特征生成多视角特征。
定义了两个网络,分别是用于假与真的生成。GfGf的输入为单视角特征的注意力特征后的concat,其噪音以dropout的形式加入。GrGr的输入为与fake同一id的所有5个视角照片的真实特征的concat。其主要目的是更好地融合和训练一个输入车辆的真实、高级、多视角的特征。
由于无需生成图片,所以无需逐渐扩大特征图面积,我们用残差块替代了逆卷积。
两个网络有完全一样的架构但参数不共享。进行过尝试但无法收敛,因为两种输入的差距过大。
辨别器为FCN。其目的不是最大化地辨识出生成的数据,而是用于优化GfGf,使其匹配D的一个中间层的特征分布。loss如下:
其中m就是D中的第m层(实验中设置为4)。而且D还用汽车的多属性分类进行了训练,使推理出的多视角特征与汽车本身id具有更好的关联。第二层与原始视角特征(F中的第四层的输出)concat,来更好的优化GfGf和D(毕竟这才是真实的特征),GfGf和D是有条件的,对应不同视角的输入不同而不同。
训练时除了LAdversLAdvers,还需要通过另外给定的正和负的样本对(图2中的红色箭头),使用距离度量优化LReidLReid。它的训练是基于从单视角图片推理出的多视角特征,而不是真实的多视角输入。
AMI的训练共分4步。
- 使用softmax训练F网络得到汽车特征,并对训练集特征进行k-means得到5个视角下的聚类特征。
- GrGr需要与D一起,使用汽车的5视角输入以及额外的多属性分类进行预训练。否则在早期就一起优化Gf,Gr,DGf,Gr,D的话会使LAdversLAdvers不稳定,因为这时对抗结构中的真实数据分布尚未形成。
- 固定GrGr,训练各视角条件下的GfGf和D,学习从单视角下推理多视角特征。
- 最终使用成对图片训练re-id,调优除了F和GrGr的整个网络。因为早期推理出的多视角特征很差,re-id loss无法用于优化。