行人重识别-表征学习

行人重识别(ReID)-表征学习

前言

在记录今天的内容前,先推一下罗浩老师的行人重识别的论文综述,这对于了解行人重识别领域是有很大帮助的,接下来的几篇博客呢,也是围绕这篇综述中的内容进行介绍的。
行人重识别-罗浩知乎专栏
顺便附上几个行人重识别的开源代码:
https://github.com/zhunzhong07/IDE-baseline-Market-1501
https://github.com/KaiyangZhou/deep-person-reid
https://github.com/huanghoujing/person-reid-triplet-loss-baseline

表征学习概念

在上一篇博客中我们提到过根据训练损失可以分为基于表征学习度量学习,这一篇博客主要围绕表征学习来介绍。
基于表征学习(Representation learning)的方法是一类非常常用的行人重识别的方法。它的特点就在于虽然行人重识别的最终目标是为了学习出两张图片之间的相似度,但是表征学习的方法并没有直接在训练网络的时候考虑图片间的相似度,而是把行人重识别任务当作分类问题或者验证问题
具体来说呢,分类问题就是把行人的ID或者属性作为训练标签来训练模型,每次只需要输入一张图片就够了;而验证问题呢,则需要输入一对(两张)行人的图片,让网络学习这两张图片是否属于同一个行人。在这里插入图片描述分类网络对应的就是分类损失,蓝色的线表示两个图片同属于一个ID,训练网络时对应激活的就是同一个神经元,也表示他们具有相似的特征。
验证网络则是每次针对一对图片,红色表示不相关,蓝色表示为同一ID。
这类方法的特点就是网络的最后一层全连接层(FC)输出的并不是最后要使用的图像特征向量,而是要再经过一个Softmax激活函数来计算表征学习损失,相应的此时的FC层作为特征向量层。

分类损失

当我们将每一个行人作为分类问题的一个类别,用行人的ID作为训练数据的标签来训练CNN网络时,这个网络损失就被称为ID损失,只有ID损失的网络称为ID Embedding网络(IDE网络)。在这里插入图片描述如图所示,训练集中行人的ID数为网络的类别数,特征层后接一个分类FC,经过Softmax激活函数计算交叉熵损失。但是在测试阶段我们使用的是倒数第二层的特征向量进行检索,而将分类FC层丢弃,因为训练集和测试集对应两个完全独立的行人,也意味着他们对应这不同的特征,因此不能再重复使用FC层。
后来有研究者发现,光靠行人ID信息不足以学习一个具有足够强泛化能力的模型(模型过拟合了),因此,又添加了额外的属性信息,如发色、性别、衣着。这就要求训练好的网络不仅仅要预测行人ID,同时也要预测对应的属性,由此带来的是属性损失。网络结构如下图:
在这里插入图片描述

网络的总损失就可以由ID损失和M个属性损失共同组成:
在这里插入图片描述

验证损失

和分类网络不同,验证网络每次输入一对(两张)图片,进入同一个Siamese(孪生网络:解决one-shot问题,可以输出两张给定图片的相似度)提取特征,然后将网络输出的两个特征向量融合,输入到一个只有两个神经元的FC层,计算一个二分类损失(验证损失)。这样在测试阶段就可以直接输入两张图片,计算它们的相似度。
但是,单单使用验证损失效果不好,因此常常将它与上面提到的ID损失结合起来进行训练。
在这里插入图片描述如上图所示的行人重识别网络:

  • 输入为若干对行人图片
  • 网络
    • 分类子网络(Classification Subnet)
    • 验证子网络(Verification Subnet)
  • 损失
    • 总损失为 L = Lid + Lv(关于各交叉熵损失的具体形式在综述中都有提到,就不赘述了)

经过足够多的数据训练后,测试时仅需要再次输入一张测试图片,网络将自动提取特征,用于行人重识别任务。

总结

通过构造网络来直接得到鲁棒的ReID特征,不直接学习图片之间的相似性

  • 通常需要额外的FC层来辅导特征学习,测试阶段FC层会被丢弃
  • ID损失的FC层维度与ID数量一致,当训练集太大时网络巨大,训练收敛很难
  • 验证损失测试的时候需要输入一对图片,识别效率很低
  • 表征学习通常而言训练比较稳定,结果易复现
  • 表征学习的分布式训练通常比较成熟
  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以列举出一些经典的深度神经网络,如ResNet、Inception-v3、VGG等,这些网络在很多行人重识别的任务中表现不错。同时,还可以考虑使用基于Transformer的模型,如ViT和DeiT等,这些模型在图像识别领域也有很好的表现,可能对行人重识别也有一定的帮助。 ### 回答2: 在行人重识别领域,深度神经网络是一种最常用的方法。以下是常见的几种深度神经网络模型: 1. ResNet(残差网络):ResNet是一种经典的深度神经网络模型,通过使用残差连接来解决梯度消失和梯度爆炸等问题。在行人重识别中,ResNet可以通过训练大规模的数据集来学习到更具有表征能力的特征。 2. GoogLeNet:GoogLeNet是由Google提出的一种深度卷积神经网络模型,其主要特点是通过使用多个并行的卷积层和降维层来提高网络的表征能力。在行人重识别中,GoogLeNet可以通过多层次的卷积和池化操作来提取更具有判别性的特征。 3. VGGNet(Visual Geometry Group Network):VGGNet是由牛津大学的研究团队提出的一种深度卷积神经网络模型,其特点是采用了相对较小的卷积核和更深的网络结构。在行人重识别中,VGGNet可以通过更深层次的卷积和池化操作来提取更丰富的特征。 4. InceptionNet:InceptionNet是由Google提出的一种深度卷积神经网络模型,其特点是通过多个不同大小的卷积核和池化层来提取多尺度的特征。在行人重识别中,InceptionNet可以通过提取多尺度的特征来更好地捕捉行人的外貌和姿态信息。 需要注意的是,以上仅是行人重识别领域中深度神经网络的一些常见模型,实际应用中可能还会结合其他技术和方法进行深度特征提取和行人重识别。 ### 回答3: 在行人重识别的深度神经网络中,常见的模型包括以下几种: 1. 深度残差网络(Deep Residual Network,ResNet):ResNet 是一种非常经典的深度神经网络,由于其具有良好的梯度传播和模型拟合能力,被广泛应用于行人重识别任务中。 2. 三流网络(Triplet Network):三流网络是一种常用的神经网络模型,其主要思想是通过学习一个特征空间,在该空间中行人的特征向量之间的欧几里得距离能够表示他们的身份相似性。 3. Siamese网络:Siamese网络是一种双支路结构的神经网络,通过输入两个行人图像,共享神经网络的权重,学习得到一个特征空间,使得同一个行人的图像在该空间中距离更近。 4. DuATM网络(DuATM Network):DuATM网络利用了注意力机制来提升行人重识别性能。它通过自适应注意力网络(Adaptive Attention Network)来自动选择和调整对行人图像的关注区域,使得关注到的区域更加准确,从而提高了重识别的准确性。 5. PCB网络(Part-Based Convolutional Baseline):PCB网络通过将行人图像划分为多个部分,并分别提取每个部分的特征,最后将这些特征进行融合,从而得到一个更加鲁棒的特征表示。这种分解和融合的方式使得网络能够更好地处理行人图像中的位姿和遮挡变化。 除了以上提到的几种深度神经网络,还有一些其他的模型和方法,如行人边界框回归网络(Pedestrian Box Regression Network)、多尺度网络(Multi-Scale Network)等,这些模型都在行人重识别任务中发挥重要作用,不同的模型适用于不同的场景和数据集,可以根据具体情况选择合适的模型来进行行人重识别的研究和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值