【论文阅读】CVPR2022——TransRAC

声明:

该论文阅读仅作为个人学习,如解读观点不对,欢迎指正。
论文标题:《TransRAC: Encoding Multi-scale Temporal Correlation with Transformers for Repetitive Action Counting》
论文地址:https://arxiv.org/abs/2204.01018

一、引言

这部分首先简述了视频重复动作计数的应用范围,之后提出了在这一领域所存在的两个问题。

  • 实验数据问题:目前的实验数据场景不真实,这主要体现在实验视频的长度太短标注信息不够(标签只有最终的重复动作次数,忽略了过程)。

  • 算法问题:之前的方法普遍是采用固定数量帧数作为输入片段做预测。这里举了两个例子。
    1、如 TSN这篇论文,就是将每个输入的视频分为三个部分,再分别从中抽取25帧作为输入,因此视频的重复动作信息将集中在某些关键帧中,但这样的做法在长视频中表现不好,因为视频较长,抽取帧数较少,容易错失关键帧。但抽取的帧数太多,又会引起计算资源的浪费。
    2、另外一种方法是对视频进行相同长度的采样,但动作频率不一致也会导致模型效果不好。

因此,文章提出了一种使用swin-transform进行多尺度时间自相关的编码网络,该网络能够很好的提取不同频率的动作信息和不同视频长度的信息。模型能够根据接受到的不同帧数数量尺度,选择最优。并用最优尺度计算出时间自相关矩阵用以预测。
最后,引言部分总结了论文所作的三项工作,第一是创造了新的数据集。第二是提出新的网络,第三模型在不同数据集有着不错的表现。

二、相关工作

论文第二部分主要介绍了论文算法部分用到的四项关键技术,并介绍现有数据集存在的问题。

1、Temporal auto-correlation

这里提到的是时间自相关,因为时间自相关包含了周期信息,在时间自相关矩阵中能够计算出重复动作的次数。因此在视频计数中,都有广泛应用这项技术。而在目前主流的自相关计算方法就是attention的方法,该方法应用在论文的4.2部分。

2、Video feature extraction

这里是视频特征提取,文章先提到之前的方法是使用卷积的方法提取空间或者时间的特征。但是由于感受野的限制,难以提取完整的全局信息,因此文章这里的backbone使用的swin-transformer。同时为了减少训练时的计算花费,swin-transformer进行了预训练。该方法应用在论文的4.1部分。

3、Counting in computer vision

这里前面提到了视频计数的应用场景,然后引用了一篇论文,该论文在视频计数中新颖的提出了一种通过相邻片段输入的方法实现上下文理解。该方法在文章中可能应用在论文的4.1部分。

4、Density map

这里是实现视频计数的关键方法。Density map通过高斯核产生,它包含了视频信息和空间信息,广泛应用在视频人数统计。Density map更多资料可以参考这篇blog。该方法在文章中应用在论文的4.3部分。

5、Period annotation

这部分说明了目前数据集普遍存在的问题,并说明质量好的数据集是无价的。

三、提出的数据集

这一部分说明了数据集的来源与标注方法。并克服了动作无间断,动作单一、视频短和标注信息不足的问题。该数据集的名称为RepCount。

四、TransRAC Model

这一部分为论文的主体部分,提出的模型名称为TransRAC,该模型包含三个部分:Encoder,Temporal correlation和Period predictor。模型的前向过程为视频序列V输入进Encoder层,该层输出为X,根据X计算Temporal correlation,并根据其进行Period predictor,最终得到Density map。该流程如下:
在这里插入图片描述

4.1、Encoder

这里在流程中涉及的部分是 X = ϕ ( V ) X=\phi(V) X=ϕ(V)。在清楚这里的 ϕ \phi ϕ的含义前,需要清楚这里的输入是什么。前面相关工作提到过固定的帧数输入存在缺陷,因此这里设置了不同帧数的输入。这里文章假设了一个视频为64帧,分为三个部分作为输入,每部分输入的片段帧数不一致。
从图中可知,上面的输入 V 1 V_{1} V1为1个片段的帧数为1,片段间步数为1,因此上面的输入为 64 × 1 × H × W 64\times 1\times H\times W 64×1×H×W。中间的输入 V 4 V_{4} V4为1个片段的帧数为4,片段间步数为2,因此中间的输入为 32 × 4 × H × W 32\times 4\times H\times W 32×4×H×W。下面的输入 V 8 V_{8} V8为1个片段的帧数为8,片段间步数为4,因此上面的输入为 16 × 8 × H × W 16\times 8\times H\times W 16×8×H×W
分为三个部分作为输入后,再使用swin-transformer进行特征提取,即 X = ϕ ( V ) X=\phi(V) X=ϕ(V),这里的输出为 7 × 7 × t × 768 7\times 7\times t\times 768 7×7×t×768,其中t为视频时间,既帧数。 7 × 7 × 768 7\times 7\times 768 7×7×768为一帧画面经过提取信息后得到的维度,可以理解为一张图片的输入为 H × W × 3 H\times W \times 3 H×W×3经过特征提取后变为 7 × 7 × 768 7\times 7 \times 768 7×7×768,更多细节可以参考swin-transformers
之后,为了得到更多的上下文信息,这里使用3维卷积,通道数为512(这里将前面的768降为512),并将输出使用ReLU函数进行映射,再使用3D Max-pooling减少模型参数(将 7 × 7 7\times 7 7×7降为1),最终得到 64 × 512 64\times512 64×512

4.2、Temporal correlation and Self-attention

这里在流程中涉及的部分是 C = ψ ( X ) C=\psi(X) C=ψ(X),即计算X之间的相似度,这里X为前面得到 3 × 64 × 512 3\times64\times512 3×64×512,有三部分。计算方法在相关工作中有提到,使用的是attention的方法进行计算,计算方法为将 64 × 512 64\times512 64×512拆分为64个 1 × 512 1\times512 1×512的向量,接着将向量分别乘以K矩阵和Q矩阵,得到64个K矩阵和Q矩阵,紧接着点乘计算每个Q矩阵与每个K矩阵的值,该值即为相关系数。最后得到的矩阵维度为 64 × 64 64\times 6 4 64×64,由于有四个注意力头,三个部分,所以得到12个 64 × 64 64\times 64 64×64矩阵,之后文章进行了一次concat的操作。

4.3、Period Predictor

这里在流程中比较直观,即通过卷积层和transformer后,得到Density Map。这里文章作者做了消融实验,认为使用回归的方式拟合会比使用分类的方式拟合得到的Density Map效果更好。而得到Density Map后在视频计数中也有非常强的解释性。

4.4、Losses

损失函数使用的Mse。

五、实验部分

最后作者验证了模型在不同数据集上有着较好的表现。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值