【论文笔记】Revisting Temporal Modeling for Video-based Person ReID

Revisting Temporal Modeling for Video-based Person ReID

原文链接
代码链接

前言

这篇博客记录了对于视频行人重识别领域的初次尝试,在提取论文的观点后,还会针对代码部分进行分析。

摘要

首先介绍了一个具体的video-based 行人重识别系统应该包含的三个部分(后面也是根据这个完成的论文结构):

  • an image-level feature extractor (CNN) 图像特征提取
  • a temporal modeling method 时序建模方法去融合时序特征
  • loss function 损失函数

虽然已经提出了很多的时序建模方法,但是很难直接比较这些方法的好坏,因为特征的提取方式和损失函数都会对最终的效果产生挺大的影响。
这篇文章就是在保证其他条件相同时,测试了以下4种不同的temporal modeling methods:

  • temporal pooling
  • temporal attention
  • RNN
  • 3Dconvnets

还提出了一种新的attention generation network 用来适应时序卷积从不同帧中提取时序信息。

1.Introduction

2.Related Work

上面两部分就是总结了别人的工作,引了一些论文,就不介绍了,可以自行谷歌翻译看原文。

3.Method

这一部分介绍了整个系统结构以及三种temporal modeling methods的实现细节。
整个系统可以分为两个部分:

  • a video encoder which extract visual representations from video clips 能够从视频切片中提取有效信息的解码器
  • a loss function to optimize the video encoder and a method to match the query video with the gallery videos 一种能够匹配query video和gallery video的方法 ,以及损失函数

一段视频首先被切割成不重复的谦虚的切片 c k c_{k} ck,每个切片都包含T帧。

clip encoding 把clips作为输入,然后对每个clip输出一个D维的特征向量 f c f_{c} fc.

最后视频的特征就是所有clip特征的平均值。

3.1Video CIip Encoder

这里采用了两种类型的CNN网络来建立video clip encoder。

3D CNN直接将一个包含n帧的切片c作为输入,输出一个特征向量 f c f_{c} fc
2D CNN是先提取一个image-level features f c t {f^t_{c}} fct,t=[1,n],然后通过时序建模方法把 f c t {f^t_{c}} fct融合成一个单一的向量 f c f_{c} fc

  • 3D CNN
    • 使用3D Resnet 模型,采用3D卷积核,专门用于action classification。
    • 用person identity输出替代原本的final classification。
    • 使用预训练模型
    • 将T张连续帧(一个clip)作为输入,将最终分类层之前的层作为representation

2D CNN 采用标准的ResNet50作为图像特征提取器。对于给定的一个image sequence图像序列(一个video clip),输入每一张图片的特征,输出一个image level feature sequence f c t {f^t_{c}} fct,t是第一帧到第n帧,这是一个T×D的矩阵,n是clip sequence length,D是特征的维度。
然后就是使用temporal aggregation method把特征融合成一个clip feature f c f_{c} fc,它是一个D维的向量。下面就是具体的介绍三种方法:

  • Temporal pooling(TP)
    使用pooling层对特征矩阵进行pooling,常用的pooling方式有两种:

    • max pooling
      在这里插入图片描述
    • average pooling
      在这里插入图片描述
  • Temporal attention(TA)
    在这个模型中对sequence of image feature使用attention weighted average,给每一个切片c一个attention系数,即 a c t a^t_{c} act,特征向量:
    在这里插入图片描述

    • Resnet50最后一层卷积层得到的tensor size为[w,h,2048]
    • attention generation network 将一列特征[T,w,h,2048]作为输入,输出T个attention scores。
    • 第一种attention network 是 spatial conv + FC
      卷积层input channel = 2048,kernal width =w,kernal height = h, output channel number = d t d_t dt,即{w,h,2048, d t d_t dt};全连接层input channel = d t d_t dt,output channel = d t d_t dt,卷积层输出是一个scalar vector s c t s^t_{c} sct,作为clip c对应t帧的得分。
    • 第二种是spatial + temporal conv
      第一个卷积层同样为{w,h,2048, d t d_t dt},对于每个clip的每一帧可以得到一个 d t d_t dt维的特征,然后对提取到的特征使用一个temporal conv layer{3,d,1}生成temporal attention s c t s^t_{c} sct
      对应下图的C部分:
      在这里插入图片描述当我们获得了 s c t s^t_{c} sct,我们有两种方式计算最终的attention score a c t a^t_{c} act
      softmax function:
      在这里插入图片描述
      sigmoid function:
      在这里插入图片描述
  • RNN

    • RNN cell在一个time step t处按顺序编码一个图像特征,然后将隐藏状态 h t h_{t} ht传递到下一时间步。
    • 两种方式考虑融合图像特征到一个单独的切片特征 f c f_{c} fc
    • 一种是使用最后一个时间步长的隐藏状态 h t h_{t} ht,即 f c = h t c f_{c}=h^c_{t} fc=htc
    • 另一种是计算RNN输出{ o t o^t ot}的平均值
    • 测试了两种不同的RNN cell :LSTM and GRU

3.2 loss function

  • triplet loss
    • Batch Hard triplet
    • 对于每个identity随机取P个identities和K个clips(每个clips 包含T帧),所以一个batch总共包含PK clips。
    • 对于一个batch中的每个sample a,挑取最难正样本和最难负样本形成triplets去计算loss
      在这里插入图片描述
  • Softmax cross-entropy loss
    • 交叉熵损失把PK clips 分类到正确的identities
      在这里插入图片描述

-total loss
在这里插入图片描述

3.3 Similarity calculation for testing

和之前一样,一个视频被切割成连续且不重复的切片c,每个切片都包含T帧。
测试时,提取视频每个切片的clip level representation,video level representation 是所有clip level representation的平均值。
使用L2 distance来测量每个video的相似度。

4.Evaluation

4.1 Evaluation Settings

  • Metric
    • mAP + CMC
  • Dataset
    • mars
  • Implementions
  • Image-based baseline models
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Temporal Ensembling是一种半监督学习方法,它使用了时间上的一致性来提高模型的性能。该方法通过对未标记数据进行预测,并将预测结果与之前的预测结果进行平均,从而获得更加稳定和准确的预测结果。同时,该方法还使用了一个噪声注入技术来增加模型的鲁棒性。该方法已经在图像分类、语音识别等领域取得了很好的效果。 ### 回答2: Temporal Ensembling是一种半监督学习方法。它主要通过使用同一批数据的多个副本,在单批数据上进行迭代学习来提高预测模型的准确性。这种方法能够很好地利用已有数据中的潜在信息,同时也能避免因缺乏大量标注数据而损失准确性的问题。 Temporal Ensembling的核心思想是使用模型的历史预测结果来生成新的虚拟标签。在训练期间,模型不断地更新,同时不断生成新的“标注”,并将这些新的“标注”与原始标注数据一起训练。这样,模型可以从大量带有“标注”的数据中学习并逐渐提高其准确性。 Temporal Ensembling方法在许多学习任务中都展现出优良的性能,比如图像分类、物体识别、图像分割、语音识别等。其中,与其他半监督学习方法相比,Temporal Ensembling在半监督图像分类中的性能最为出色。 尽管Temporal Ensembling的性能非常出色,但是其中的一些问题仍需要解决。 首先,这种方法需要大量的GPU计算力和存储空间,并且需要复杂的算法设计。其次,由于该方法是基于生成虚拟标签的,因此,如果模型在未来预测错误而不正确地生成了虚拟标签,那么可能会产生负面影响。 总之,Temporal Ensembling是一种有效的半监督学习方法,其取得的结果显示出高水平的准确性。与其他方法相比,Temporal Ensembling具有更好的稳健性及效能。也因此,它在深度学习领域中被广泛应用。 ### 回答3: Temporal Ensembling是一种半监督学习技术,可以用于训练深度神经网络。该技术旨在利用未标记的数据来改善模型的泛化能力。在传统的监督学习中,我们需要分类器预测每个样本的标签,并将其与真实标签进行比较以计算损失函数。然而,在许多现实世界的场景中,标记数据的数量通常是有限的,这使得监督学习变得更加困难和昂贵。相反,在半监督学习中,我们将未标记的数据与标记数据结合在一起进行训练。 Temporal Ensembling的实现是基于一个假设,即相似的输入应该具有相似的潜在表示形式。具体来说,该技术通过在连续训练周期中收集了单次训练中的模型预测,通过将这些预测结果整合成一个移动平均版本来构建模型共识。这可以看作是把模型的预测提供给下一个周期的训练,让模型逐渐整合起来,在连续的训练周期中收集了对训练数据更准确的表示。在训练过程中,我们不仅使用真实标签来计算损失函数,还将平均预测意味着的交叉熵添加到损失函数中。这使得模型学习时能够尽可能地匹配模型共识中的数据。 虽然在许多情况下,半监督学习可以增加模型学习任务的效果,但它依赖于许多因素,包括未标记样本的数量、分布和标记样本之间的相似性。使用Temporal Ensembling时,需要做好降噪处理,适当选择数据能够真正提高该技术效果。此外,需要注意的是,Temporal Ensembling只能在没有过度拟合数据集时才能有效,因为此技术基于模型共识构建。在实际应用中,可以将Temporal Ensembling与其他半监督学习技术结合使用,以提高模型性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值