Counting Out Time: Class Agnostic Video Repetition Counting in the Wild

Abstract

我们提出了一种估计视频中重复动作周期的方法。该方法的关键在于限制周期预测模块使用时间自相似性作为中间表示瓶颈,从而使模型对自然场景下未曾见过的重复视频具有泛化性。我们使用合成数据集来训练模型(RepNet\text{RepNet}RepNet​​),该数据集从一个大型的未标注的视频集中采样不同长度的剪辑片段,并且以不同的周期和次数重复该片段来生成新的视频内容。合成数据与功能强大但受约束模型的组合,使我们能够以与类别无关的方式预测周期。我们的模型在现有的周期性(PERTUBE\text{PERTUBE}PERTUBE​​)和重复计数(QUVA\text{QUVA}QUVA​​)的基准上大大超越了当前最高水平的性能。我们还收集了一个名为Countix\text{Countix}Countix​​的新数据集(比现有数据集大约909090​​倍),该数据集囊括了真实世界中具有挑战性的重复计数视频。项目网页:https://sites.google.com/view/repnet。

1. Introduction

想象一个最普通的场景——一个人在咖啡馆里进餐。他可能一边咀嚼着食物一边搅拌着咖啡里的方糖,并随着背景音乐用脚打着节拍。这个人至少同时进行了三项周期性活动。重复的动作和过程在我们的日常生活中无处不在。从生物循环(如心跳和呼吸)到编程和制造,再到行星周期(如昼夜交替和四季轮换)。因此,对识别视频中重复部分进行识别的需求无处不在,能够识别和计数视频中重复部分的系统将有助于任何旨在长时间观察和理解我们世界的感知系统。

重复动作和过程也是非常有趣的,原因如下:(111​​​)在多次发生的事情背后通常有一个意图或驱动因数;(222​​)相同的事件可以再次被观察到,但却略有不同;(333​​)由于重复,场景可能逐渐发生变化;(444​​​​)重复为我们提供了明确的动作单元,使动作子序列可以在时间上进行分割(例如切洋葱,其动作单元是进行洋葱切片的操作动作)。基于上述原因,任何与外界交互的Agent\mathbf{Agent}Agent​​都能从这样的系统中受益匪浅。此外,重复计数与许多计算机视觉应用相关。例如计算运动次数、测量生物事件(如心跳)等。

Agent:是学习者和决策者,能够获取自身之外的环境信息,采用学习算法,对环境变化做出合适响应。

然而,由于缺乏大规模重复动作标注视频数据集,对周期性视频理解的研究受到了限制。相比之下,对于动作识别,存在大规模数据集,例如Kinetics\mathbf{Kinetics}Kinetics​,但是它们的收集是通过将关键字/文本和视频相关联实现的。不幸的是,视频很少被标注与重复活动相关的注释,因为文本更可能会描述语义内容。因此,我们使用具有语义动作标注的数据集,这些标注通常被用于动作识别(Kinetics\text{Kinetics}Kinetics​​​),并手动选出包含周期运动(弹跳、拍手等)类别的视频。之后,我们会为选出视频的每个片段标注重复次数。

Kinetics:是一组大规模、高质量的URL\text{URL}URL链接数据集,包含多达650000650000650000​​​​个视频片段,涵盖几百个动作类型,包括乐器演奏(人物交互)以及握手拥抱(人人交互)等内容。每个视频片段都被人工标注为一种动作类型,并且持续约101010秒。

手动标注限制了可注释视频的数量——由于任务的时间细粒度特性,标注既乏味又昂贵。为了增加训练数据量,我们提出了一种通过重复不同时期现有视频片段来合成重复视频的方法。我们在合成视频的过程中,还对其中的周期以及重复次数进行了精确标注,可用于监督学习训练模型。然而,正如我们在工作中所发现的那样,这种合成视频无法捕捉真实重复视频中的所有细微差别,并且容易被高容量深度学习模型过拟合。为了解决了这个问题,我们提出了一种合成视频的数据增强策略,以便使用它们训练的模型能被应用到真实带重复动作的视频上。我们结合地使用真实数据和合成数据来开发我们的模型。

在本文中,我们的目标是研究一种适用于多类别周期性视频的单模型,实际上该模型也需要适用于未在训练阶段出现过类别的视频。我们使用一种中间表示来实现这一点,该表示支持泛化未出现过的类别。这种表示——一种时间自相似矩阵——被用于预测动作在视频中的重复周期。这种通用表示可以被用于不同类别的重复视频,从而实现所需的泛化。例如,无论是一个成人在做俯卧撑,还是一个孩子在操场上荡秋千的视频,其自相似矩阵都是共享参数化的,从中可以推断出重复的次数。这种极端的瓶颈化(特征图通道数由512512512​锐减至111​)也有助于从合成数据到真实数据的泛化。这种表示的另一个优点是模型的可解释性被纳入了网络架构中,因为我们强制网络仅从自相似矩阵预测周期,而非从潜在的高维特征推断周期。

我们会专注于两项任务:(i\text{i}i)重复计数,识别视频中的重复次数。我们将该问题重新表述为:首先估计每帧周期长度,然后将它们转换为重复次数;(ii\text{ii}ii)周期性检测,识别当前帧是否为某种重复时间模式的一部分。我们将此作为每帧的二分类问题来处理。这些问题的直观解释以及我们的解决方案概述如下图所示。

我们在本文中的主要贡献是:(i\text{i}i​​​)RepNet\text{RepNet}RepNet​​​,一种用于计算自然场景视频重复次数的神经网络架构。(ii\text{ii}ii​​​)一种从未标注视频生成和增强合成重复视频的方法。(iii\text{iii}iii​​​)通过在合成数据集上训练RepNet\text{RepNet}RepNet​​​,我们网络在重复计数和周期性检测任务表现上均优于现有基准的最先进方法。(iv\text{iv}iv​​​)一个全新的视频重复计数数据集Countix\text{Countix}Countix​​​,比之前最大的数据集大大约909090​​​倍。

2. Related Work

Periodicity Estimation. 利用时间序列的自相关性提取周期性(周期运动的检测)以及周期是一个被研究的很透彻的问题。视频的周期估计是在自相关的基础上使用周期图或在光流的基础上使用小波变换实现的。被提取出的周期运动可以被用来支持诸如3D\text{3D}3D重建和鸟类物种分类等任务。周期运动检测已被用于各种应用,包括时间模式分类。

Temporal Self-similarity Matrix(TSM). TSM\text{TSM}TSM​是人体动作识别以及步态分析的一种实用表示,因为与适当的特征表示相结合时,TSM\text{TSM}TSM​对大视角变化具有鲁棒性。《\text{《}《UnsupervisedUnsupervisedUnsupervised​ detectiondetectiondetection​ ofofof​ periodicperiodicperiodic​ segmentssegmentssegments​ ininin​ videosvideosvideos》》》​使用了基于改进密集轨迹的TSM\text{TSM}TSM​,用于对使用特殊滤波器视频的周期段进行无监督识别。与这些方法不同,我们使用TSM\text{TSM}TSM​作为端到端神经网络架构中的中间层,充当信息瓶颈。

密集轨迹:在视频序列中对每一帧感兴点进行追踪就形成轨迹,若是对每一帧密集采样感兴点进行追踪就形成了密集轨迹。密集轨迹简称DT\text{DT}DT​​​,是一种用来提取视频密集追踪轨迹的算法,其基本框架如下图:

Synthetic Training Data. 在计算机视觉中使用合成训练数据正变得越来越普遍。在真实图像上粘贴物体图像块已被证明是有效的,可作为物体检测和人体姿态估计的训练数据。将多个视频或多个图像拼凑在一起对于生成特定任务的合成训练数据以及正则化深度学习模型是非常有用的。《《《LiveLiveLive​​ repetitionrepetitionrepetition​​ countingcountingcounting》》》​​首次提出了用于训练重复计数的合成数据。他们引入了一个合成重复模式的数据集,并用该数据集来训练了一个基于深度学习的计数模型。然而,他们用于训练的数据是由手工设计的随机模式组成,这些模式看起来并不真实。如《《《Real−worldReal-worldReal−world​​ repetitionrepetitionrepetition​​ estimationestimationestimation​​ bybyby​​ divdivdiv,,,​​ gradgradgrad​​ andandand​​ curlcurlcurl》》》​​​所示,这些模式的多样性不足以捕捉真实重复视频中的所有细微差别。相反,我们建议从现有视频数据集创建真实重复视频的合成训练数据集。

Counting in Computer Vision. 计数图像中物体和人数的数量是计算机视觉中的一个活跃领域。但另一方面,在深度学习时代,视频重复计数很少受到社区的关注。我们在《《《LiveLiveLive​ repetitionrepetitionrepetition​ countingcountingcounting》》》​​预测周期(周期长度)的构思上开展了我们研究,尽管该文献并没有使用TSM\text{TSM}TSM​。

Temporally Fine-grained Tasks. 重复计数和周期检测是时间上的细粒度任务,和时间动作定位,每帧相位分类以及未来预测任务一样。我们利用之前收集动作定位数据集的界面来创建我们的重复数据集Countix\text{Countix}Countix​。我们没有标注语义片段,而是标记视频中周期片段的范围和每个片段中的重复次数。

3. RepNet Model

在本节中,我们将介绍RepNet\text{RepNet}RepNet架构,它由两个学习组件组成,编码器和周期预测器,它们之间存在一个时间自相似层。

假设我们有一个NNN​帧的视频序列V=[v1,v2,…,vN]V=\left[v_{1}, v_{2}, \ldots, v_{N}\right]V=[v1​,v2​,…,vN​]​。首先,我们将视频送入图像编码器ϕ\phiϕ​得到每帧嵌入X=ϕ(V)=[x1,x2,…,xN]X=\phi(V)=\left[x_1,x_2,\ldots,x_N\right]X=ϕ(V)=[x1​,x2​,…,xN​]​。然后,计算所有嵌入对之间的成对相似性SijS_{ij}Sij​​得到自相似矩阵SSS​。最后,将SSS​送入周期预测器模块,该模块对于每帧有两个输出值:周期长度l=ψ(S)l=\psi(S)l=ψ(S)​和周期得分p=τ(S)p=\tau(S)p=τ(S)​。周期长度是指重复发生的频率,而周期分数是指帧是否在视频的周期部分。总体架构如上图所示,更细节的版本如下图所示。

3.1. Encoder

我们的编码器ϕ\phiϕ由三个主要组件组成:

卷积特征提取器:我们使用ResNet-50\text{ResNet-50}ResNet-50​架构作为我们的基本卷积神经网络用以从输入视频的各帧viv_ivi​提取2D\text{2D}2D卷积特征。这些帧的尺寸为112×112×3112\times112\times3112×112×3。我们使用conv4_block3\text{conv4\_block3}conv4_block3​​层输出来生成更大空间的2D\text{2D}2D特征图。生成的每帧特征尺寸为7×7×10247\times7\times10247×7×1024。

时间上下文:我们把这些卷积特征通过一层3D\text{3D}3D​​卷积结构,以将局部时间信息添加到每帧特征中。我们使用512512512​​个尺寸为3×3×33\times3\times33×3×3​​带ReLU\mathrm{ReLU}ReLU​​​​​激活函数的滤波器。时间上下文有助于对短期运动进行建模,并且能使模型区分外观相似但运动不同的帧(例如,锻炼时手向上或向下移动)。

降维:我们通过在空间维度上使用全局2D\text{2D}2D最大池化来降低提取到的时空特征维度,并生成对应于每帧viv_ivi​的嵌入向量xix_ixi​。通过折叠空间维度,我们不再需要像先前方法那样追踪感兴区域。

3.2. Temporal Self-similarity Matrix (TSM)

在得到每帧viv_ivi​的潜在嵌入xix_ixi​后,我们通过计算嵌入xix_ixi​和xjx_jxj​对之前所有的成对相似性Sij=f(xi,xj)S_{ij}=f(x_i,x_j)Sij​=f(xi​,xj​)来构建自相似矩阵SSS,其中f(⋅)f(\cdot)f(⋅)是相似性函数。我们使用平方欧氏距离的负数作为相似性函数,f(a,b)=−∥a−b∥2f(a, b)=-\|a-b\|^{2}f(a,b)=−∥a−b∥2,然后逐行进行softmax\mathrm{softmax}softmax操作。

由于TSM\text{TSM}TSM只有一个通道,它在我们的网络中充当信息瓶颈并提供正则化。TSM\text{TSM}TSM​也使得模型具有时间可解释性,这为模型的预测带来了进一步的理解。一些示例如下图所示。

3.3. Period Predictor

RepNet\text{RepNet}RepNet​​的最后一个模块是周期预测器。该模块输入为自相似矩阵S=[s1,s2,…,sN]TS=\left[s_1,s_2,\ldots,s_N\right]^TS=[s1​,s2​,…,sN​]T​​,其中各行sis_isi​​​是每帧的自相似表示,模块会生成两个输出:每帧周期长度估计l=ψ(S)l=\psi(S)l=ψ(S)​​,每帧周期性二元分类结果p=τ(S)p=\tau(S)p=τ(S)​​。注意,lll​​和ppp​​都是向量,它们的元素是每帧预测的输出(即,lil_ili​​​是第iii​​帧的预测周期长度)。周期预测器模块的架构如上图所示。需要注意的是,在最后一个分类阶段之前,预测器ϕ\phiϕ​和τ\tauτ​共享结构和权重。共享处理流水线一开始是323232​个尺寸为3×33\times33×3​的2D\text{2D}2D​卷积滤波器,然后是一个transformer\text{transformer}transformer​层,该层使用了多头注意力和可训练位置嵌入,该嵌入通过训练学习为646464​长度的变量,通过训练学习。我们在transformer\text{transformer}transformer​层中使用444​个尺寸为128128128​维度的头,共计512512512​维度。共享处理流水线之后,我们有两个分类器,周期长度分类器ψ\psiψ​和周期性分类器τ\tauτ​。它们由两个尺寸为512512512​的全连接层组成。

3.4. Losses

我们的周期性分类器τ\tauτ输出每帧的周期性分类结果pip_ipi​并使用二元分类损失(二元交叉熵)进行优化。我们的周期长度估计器ψ\psiψ输出每帧长度估计li∈Ll_i\in Lli​∈L,其中类别LLL是离散周期长度{2,3,…,N2}\left\{2,3, \ldots, \frac{N}{2}\right\}{2,3,…,2N​},NNN表示输入帧数量。我们使用多分类目标函数(softmax\text{softmax}softmax交叉熵)来优化我们的模型。在我们的所有实验中,我们使用N=64N=64N=64。我们使用如下所述的方法以不同帧率对输入视频进行采样,以预测更长的周期长度。​

3.5. Inference

对于给定的视频,可靠地推断重复次数主要需要以下两个操作:

根据周期长度计数:我们对NNN​帧连续无重叠窗口进行采样,并将其作为输入提供给RepNet\text{RepNet}RepNet​,后者会输出每帧周期性pip_ipi​​和周期长度lil_ili​​​。我们将每帧计数定义为pili\frac{p_i}{l_i}li​pi​​​​。总的重复计数通过求和各帧计数求得∑i=1Npili\sum_{i=1}^N\frac{p_i}{l_i}∑i=1N​li​pi​​​。用于评估重复计数的数据集只含有周期片段。因此,我们将pip_ipi​​置111​作为计数实验的默认值。

多速评估:由于我们模型可预测的周期长度最长至323232​,为了覆盖更长的周期长度,我们以不同的帧率对输入视频进行采样(即我们以1×1\times1×​,2×2\times2×​,3×3\times3×​和4×4\times4×​速度播放视频)。我们会选定预测周期得分最高的帧率。这与《《《LiveLiveLive​ repetitionrepetitionrepetition​ countingcountingcounting》》》​在测试阶段的做法相似。​

4. Training with Synthetic Repetitions

周期估计的一种潜在监督方法是收集一个带有大量周期性视频的训练集,并为所有重复动作标注周期开始和结束的时间。然而,由于任务的细粒度特性,收集这样的数据集是很昂贵的。

作为一种更便宜、更具有可扩展性的替代方案,我们提出一种训练策略,利用自然场景下未标记的视频(例如YouTube\text{YouTube}YouTube​)生成合成重复视频。我们使用随机选择的视频生成合成周期性视频,并预测每帧周期性和周期长度。接下来,我们将解释我们如何生成合成重复视频,并介绍摄像头运动增强,这对于从合成视频训练有效的计数模型至关重要。

4.1. Synthetic Repetition Videos

鉴于存在大量未标注的视频,我们提出了一种简单而有效的方法来从中创建合成重复视频(如下图所示)。使用真实视频创建合成视频的优势在于,相较于合成视频,训练数据更接近真实重复视频。使用真实视频的另一个优势在于,使用诸如Kinetics\text{Kinetics}Kinetics​​这样的大数据集可以确保模型看到的数据多样性是极其丰富的。这使我们能训练出可以处理真实重复视频的大型复杂模型。

我们首先会从视频数据集中随机抽取一个视频VVV​​​。我们使用不带任何标注的训练集Kinetics\text{Kinetics}Kinetics​​​。然后,我们从VVV​​​中随机采样一段长度为PPP​​​帧的剪辑CCC​​​​。该剪辑CCC​​​会被重复KKK​​​次(其中K>1K>1K>1​​​​)以模拟重复视频。我们在重复的剪辑CCC​​​之前会随机拼接该剪辑的倒放以模拟在此期间反向完成运动的动作(如跳跃运动)。然后,我们将重复片段与VVV​​中的其他非重复片段(分别位于CCC​​​之前和之后)附加在一起。这些非周期性片段的长度是随机选择的,也可能是零。此操作可以确保生成的视频中既有周期性片段也有非周期性片段。最后,生成视频重复部分中的每一帧都会被分配一个周期长度标签PPP​​。同时,还会生成一个周期性标签,指示该帧是在生成视频的重复部分之内还是之外。

4.2. Camera Motion Augmentation

合成视频生成中的一个关键步骤是摄像头运动增强(如下图所示)。虽然在不知道场景中3D\text{3D}3D结构、被遮挡部分和光源的情况下预测任意移动摄像头的取景是不可行的,但我们可以通过放射图像变换来近似该取景。在这里,我们考虑取景框在视频上做放射运动,包括时间平滑的旋转、平移和缩放变化。正如我们将在第666​​​节中展示的那样,当我们在没有这些增强的情况下进行训练,训练损失会迅速下降,但模型无法应用到真实重复视频上。根据经验,我们发现摄像头运动增强是使用合成视频训练有效模型的重要组成部分。

为了实现摄像头运动增强,我们随着视频的播放以连续的方式临时改变各种运动类型参数。例如,我们随着时间的推移平滑地改变旋转角度。这确保了即使在增强之后视频在时间上也是连贯的。下图说明了时间增强参数是如何驱动各种运动类型取景框(蓝色矩形框)移动的。这使得视频在重复片段部分几乎是不同的。

5. Countix Dataset

现有视频重复计数数据集由于其大小的限制主要被用于测试。此任务最新的和具有挑战性的基准是QUVA\text{QUVA}QUVA​​​​重复数据集,该数据集包含具有遮挡、相机移动和变速重复动作的真实重复视频。它由100100100​​​个与类别无关的测试视频组成,并用重复动作计数进行了标注。尽管具有挑战性,但该数据集有限的规模使其难以涵盖重复的不同语义类别。用这种规模的数据训练监督深度模型也是不可行的。

QUVA\mathbf{QUVA}QUVA:

为了增加语义多样性并扩大计数数据集的规模,我们引入了Countix\mathbf{Countix}Countix数据集:一个真实世界重复视频数据集,包含在自然场景下(即YouTube\text{YouTube}YouTube)收集的重复视频,涵盖了具有重大挑战性的广泛语义设置,如相机和目标运动、不同的周期和计数,以及变速重复动作。Countix\text{Countix}Countix包含锻炼活动(深蹲、引体向上、战绳训练、手臂锻炼)、舞蹈动作(旋转、抽拳)、乐器(弹奏四弦琴)、反复使用工具(锤击物体、链锯切割木头、切洋葱)、艺术表演(呼啦圈、杂耍足球)、运动(打乒乓球和网球)以及许多其他运动。下图展示了数据集中的一些示例以及重复计数和周期长度的分布。

数据集收集:Countix\text{Countix}Countix​数据集是Kinetics\text{Kinetics}Kinetics​的子集,标注了重复动作的片段和相应的计数。在收集过程中,我们首先从Kinetics\text{Kinetics}Kinetics​​中手动选择一个有较高的重复发生概率类别的子集,例如跳高、切洋葱等,而非像倒立或鳄鱼摔跤这样类别的子集。我们众包重复片段的标注和所选类别的计数。所使用的界面类似于通常用于标注细粒度动作识别时间段的界面。然后标注员会计算每个时间段内的重复次数。该计数将作为整个剪辑的标签。对于三位标注员标记的时间范围出现不显著重叠的片段,我们不予考虑。对于剩余的片段,我们使用计数和分段的中值作为真实值。Countix\text{Countix}Countix数据集比之前最大的重复计数数据集(QUVA\text{QUVA}QUVA重复数据集)大约909090倍。详细的统计数据见下表。数据集可以在项目网页上获取。

需要注意的是,我们保留了Kinetics\text{Kinetics}Kinetics​数据集中训练/验证/测试集的划分。因此,使用Kinetics\text{Kinetics}Kinetics​预训练的模型可以用于训练计数模型而不会出现数据泄漏。

QUVA Countix
No. of Videos in Train set 0 4588
No. of Videos in Val. set 0 1450
No. of Videos in Test set 100 2719
Duration Avg. ± Std (s) 17.6 ± 13.3 6.13 ± 3.08
Duration Min./Max. (s) 2.5 / 64.2 0.2 / 10.0
Count Avg ± Std 12.5 ± 10.4 6.84 ± 6.76
Count Min./Max. 4 / 63 2 / 73

6. Experiments

我们首先介绍了现有基准以及重复计数中使用的评估指标。接下来,我们进行了一些列消融研究,展示有哪些组件和设计的选择是至关重要的。然后,我们在现有基准上将我们的网络与其他方法进行了比较,结果表明,RepNet\text{RepNet}RepNet​在重复计数和周期性检测方面明显优于最先进的方法。最后,通过定性分析,我们对我们的模型有了更多的了解。

6.1. Benchmarks and Evaluation Metrics

在这里,我们讨论两个已建立的用于周期性检测和重复计数的基准数据集以及常用的评估指标。

周期性检测:此任务的基准数据集是PERTUBE\mathbf{PERTUBE}PERTUBE​​数据集,它的每帧都具有标签来标识周期性(判断该帧是否为重复动作的一部分)。《《《UnsupervisedUnsupervisedUnsupervised​​ detectiondetectiondetection​​ ofofof​​ periodicperiodicperiodic​​ segmentssegmentssegments​​ ininin​​ videosvideosvideos》》》​​​将问题转换为每帧的二元分类任务,并且公布了精度、召回率、F1\text{F1}F1​​分数以及重叠度等指标。我们也遵循相同的评估指标。

PERTUBE\mathbf{PERTUBE}PERTUBE:周期性检测数据集。

重复计数:如第555节所述,QUVA\text{QUVA}QUVA​​数据集是可用于重复计数的最大数据集。现有文献使用两个主要指标来评估视频中的重复计数结果:

差一(OBO\text{OBO}OBO​)计数错误. 如果预测计数和真实值在一个计数误差范围内,则认为视频分类正确,否则认为分类错误。OBO\text{OBO}OBO错误是指整个数据集的错误分类率。

计数平均绝对误差(MAE\text{MAE}MAE​​​​​). 该指标会计算真实值计数与预测计数之间的绝对误差,然后除以真实值计数对其进行标准化。本文所提到的MAE\text{MAE}MAE​​​误差是在整个数据集上标准化绝对误差的平均值。

在我们的消融实验和与最先进方法对比实验中,我们遵循了先前的工作,公布了这些方法在QUVA\text{QUVA}QUVA和Countix\text{Countix}Countix验证集上的OBO\text{OBO}OBO错误和MAE\text{MAE}MAE误差。我们还在**表777**中提供了Countix\text{Countix}Countix测试集的最终分数。

6.2. Implementation Details

我们在Tensorflow\text{Tensorflow}Tensorflow​​中实现了我们的方法。我们使用通过ImageNet\text{ImageNet}ImageNet​​预训练的ResNet-50\text{ResNet-50}ResNet-50​的检查点来初始化编码器权重。我们使用ADAM\text{ADAM}ADAM​优化器以6×10−66\times10^{-6}6×10−6​​的学习速率​和555​个视频的批大小(每个视频有646464​帧)进行了400K\text{400K}400K​步的迭代训练模型。对于所有消融研究,除非另有说明,否则我们会在合成重复数据上训练模型。项目网页上提供了其他详细信息。

6.3. Ablations

我们进行了多次消融研究,以证明在设计RepNet\text{RepNet}RepNet时所做的决定是合理的。

时间自相似矩阵(TSM\text{TSM}TSM​​):在下表中,我们研究了TSM\text{TSM}TSM对模型的影响。移除TSM\text{TSM}TSM的模型将编码器生成的每帧嵌入直接接入到transformer\text{transformer}transformer中。无论我们是使用合成重复视频、真实Countix\text{Countix}Countix视频还是两者的混合视频训练模型,时间自相似矩阵都显著提高了验证集上的所有指标。此外,即使模型只使用合成重复视频(下表中的第111行和第222行)训练,TSM\text{TSM}TSM​​​层也有助于将模型推广到真实重复视频。

QUVA Countix(Val)
TSM Training Data Source MAE OBO MAE OBO
Synthetic 1.2853 0.64 1.1671 0.5510
Synthetic 0.1035 0.17 0.3100 0.2903
Countix 0.7584 0.72 0.6483 0.5448
Countix 0.3225 0.34 0.3468 0.2949
Synthetic + Countix 0.6388 0.57 0.8889 0.4848
Synthetic + Countix 0.1315 0.15 0.3280 0.2752

训练数据源:我们改变上表中的训练数据源,将合成重复视频与来自Countix\text{Countix}Countix数据集的真实视频进行比较。我们发现,当使用合成视频或Countix\text{Countix}Countix数据集的真实视频进行训练时,RepNet\text{RepNet}RepNet在Countix\text{Countix}Countix数据集上的性能是接近的。但是与在合成重复视频上训练的模型相比,在Countix\text{Countix}Countix数据集上训练的模型在QUVA\text{QUVA}QUVA数据集上的表现更差。这表明使用合成重复视频数据集可以使模型在未见过的类别上也具有竞争力。当使用两个数据集训练模型时,模型在OBO\text{OBO}OBO错误方面实现了最佳性能。

替代周期预测架构:在下表中,我们将Transformer\text{Transformer}Transformer架构与其他现代序列模型(如LSTM\text{LSTM}LSTM和时间CNN\text{CNN}CNN)进行了比较。我们还将它与在自相似矩阵上使用2D\text{2D}2D CNN\text{CNN}CNN的模型进行了比较。我们发现Transformer\text{Transformer}Transformer​​​架构的性能优于这些替代方案。

QUVA Countix(Val)
Architecture MAE OBO MAE OBO
Transformer 0.1035 0.17 0.3100 0.2903
LSTM 0.1395 0.18 0.6895 0.3579
2D CNN 0.1186 0.17 0.4440 0.3310
1D Temporal CNN 0.3229 0.23 0.7077 0.3641

摄像头运动增强:在下表中,我们展示了使用合成重复数据集时摄像头运动增强的价值。我们观察到,当摄像头运动增强的比例增加时,两个数据集的性能都会提高。

QUVA Countix(Val)
Augmentation Fraction MAE OBO MAE OBO
0.00 0.7178 0.32 1.2629 0.4683
0.25 0.1414 0.17 0.4430 0.3303
0.50 0.1202 0.15 0.3729 0.2993
0.75 0.1035 0.17 0.3100 0.2903
1.00 0.1710 0.17 0.3346 0.2848

6.4. Evaluation on Benchmarks

我们在第6.16.16.1节所述的现有基准上,将我们的系统与当前最先进的周期性检测和重复计数方法进行了比较。

周期性检测. 我们公布了使用最大化F1\text{F1}F1​​​分数阈值来评估的周期性分类性能。如《《《UnsupervisedUnsupervisedUnsupervised​​​ detectiondetectiondetection​​​ ofofof​​​ periodicperiodicperiodic​​​ segmentssegmentssegments​​​ ininin​​​ videosvideosvideos》》》​​​​​中所做的那样,我们在所有视频上计算指标并平均得分。我们还公布了PR\text{PR}PR​​曲线的曲线下面积(AUC\text{AUC}AUC​​​),该曲线与所选阈值无关。我们模型的AUC\text{AUC}AUC​​为0.9690.9690.969​​​​。在不使用上述文献中提到的任何手工设计过滤方法的情况下,我们方法的表现优于之前的工作(见下表)。我们的模型完全基于合成数据训练,可以对真实视频进行周期性检测。

Model Recall Precision F1 Overlap
Power spectrum baseline 0.793 0.611 0.668 0.573
P-MUCOS 0.841 0.757 0.77 0.677
RepNet (Ours) 0.859 0.821 0.820 0.731
Model MAE OBO
Visual quasi-periodicity 0.385 0.51
Live Repetition Counting 0.482 0.55
Div-Grad-Curl 0.232 0.38
RepNet (Ours) 0.104 0.17

重复计数. 在上表中,我们将我们的RepNet\text{RepNet}RepNet模型与之前的模型进行了比较,结果表明它有着明显的优势,因此我们为该数据集确立了一个新的最先进方法。在Countix\text{Countix}Countix测试集上的实验结果表明,RepNet\text{RepNet}RepNet​是视频重复计数任务的有效基线(见下表)​。

Model MAE OBO
RepNet 0.3641 0.3034

6.5. Qualitative analysis

时间自相似矩阵. TSM\text{TSM}TSM​为我们提供了关于模型预测的有意义的解释。它还包含了有关动作加速和减速的附加信息。我们在第3.33.33.3​节插图中展示了一些自相似矩阵的示例。

一维PCA\text{PCA}PCA​​​嵌入. 我们还研究了用于生成TSM\text{TSM}TSM​​​的学习嵌入。在下图中,对于每个视频,我们使用每帧嵌入的第一个主成分将512512512维向量投影到111​​​​​维空间中。这揭示了嵌入会随时间推移而呈现出一种有趣的准正弦模式。我们绘制出嵌入改变方向时刻的帧,并观察检索到的帧发现,其中的人或物状态相似但处于不同的周期时刻。

两倍计数错误. 我们观察到我们的模型的一种常见故障模式:对于某些动作(例如玩杂耍足球),它预测的计数值是标注者标注值的一半。模型倾向于考虑左右腿的运动而人倾向于考虑球的上下运动,这导致了标注员两倍计数。我们认为此类错误很难以利用与类别无关的方式处理。但这类问题可以被很轻松地被修复,如果数据带有类别标注或者在应用已知的场景下使用后处理方法。

7. Applications

预测重复速度变化. 给定一个视频片段,我们的方法可以预测其中任何重复动作的周期。预测速率的连续差异可以编码出重复速度的变化。监控速度变化对于运动追踪应用来说是非常有用的,在这些应用中,了解一个人是在加速还是减速可能很重要(下图第444​​​列)。

从视频估计过程频率. 我们的模型可用于预测生物过程(心跳)等视频中重复现象的计数以及频率。《《《EulerianEulerianEulerian​ videovideovideo​ magnifificationmagnifificationmagnifification​ forforfor​ revealingrevealingrevealing​ subtlesubtlesubtle​ changeschangeschanges​ ininin​ thethethe​ worldworldworld》》》​​提出了一种通过放大帧差异来揭示细微变化的方法。我们发现上述系统的输出可以直接输入我们的模型来预测这些变化的频率。与类别无关的周期估计器可以消除模型对这些视频进行训练的需求。在我们的项目网页上,我们展示了对超声心动图视频进行重复计数的示例,这些视频看起来与Kinetics\text{Kinetics}Kinetics视频非常不同。

细粒度跨周期检索. 学习到的嵌入对于执行跨周期检索非常有用。换句话说,这些特征捕捉了不同周期之间的相似性,同时也编码了相似帧之间的细微差异。这些检索的示例如上图和下图最后111列所示。

较长时间范围的重复. 许多重复现象发生在较长的时间范围内(以天或年为单位)。尽管我们的模型在短视频(约10s\text{10s}10s)上训练,但通过自动选择更长的输入帧步幅,它任然可以处理缓慢周期性事件的视频。在项目网页上,我们展示了RepNet\text{RepNet}RepNet通过卫星捕捉的地球视频预测一天周期长度的视频。

辅助自监督视频表示学习. 用于视频嵌入的自监督学习方法,例如Shuffle\text{Shuffle}Shuffle​ and\text{and}and​ Learn\text{Learn}Learn​、Odd-One-Out\text{Odd-One-Out}Odd-One-Out​网络、DPC\text{DPC}DPC​、TCC\text{TCC}TCC​以及TCN\text{TCN}TCN​并不是专门处理序列重复的模型。RepNet\text{RepNet}RepNet​​可以识别重复部分,这可能有助于在不修改建议目标的情况下帮助模型进行重复视频训练。

8. Conclusion

我们论证了组合合成训练数据以及时间自相似架构可以构造出一个功能强大的与类别无关的模型。该模型能在不同的角色(物体,人物,动物,地球)和传感器(标准相机,超声波,激光显微镜)的数据上成功检测出周期性和预测出计数结果,并且经过了大量视频的验证。我们目前解决了简单重复场景的问题,下一步是考虑更复杂场景的问题,例如同时存在多个重复信号和重复时间范围,如舞步和音乐。

《Counting Out Time: Class Agnostic Video Repetition Counting in the Wild》论文笔记相关推荐

  1. 论文笔记之Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 论文链接:http://dwz.cn/6qPeIb 本文的主要思想是为了剖析出一个跟踪算法中到 ...

  2. 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    本人为目标追踪初入小白,在博客下第一次记录一下自己的论文笔记,如有差错,恳请批评指正!! 论文相关信息:<Understanding and Diagnosing Visual Tracking ...

  3. 论文笔记Understanding and Diagnosing Visual Tracking Systems

    最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...

  4. 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...

  5. 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)

    追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) PROJECT http://winsty.net/tracker_di ...

  6. ICCV 2015 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    目录 写在前面 文章大意 一些benchmark 实验 实验设置 基本模型 数据集 实验1 Featrue Extractor 实验2 Observation Model 实验3 Motion Mod ...

  7. Understanding and Diagnosing Visual Tracking Systems

    文章把一个跟踪器分为几个模块,分别为motion model, feature extractor, observation model, model updater, and ensemble po ...

  8. CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做SANet.作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强.作者提出使用RNN对目标物体的self-structure进行建模,用于提 ...

  9. ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做UCT.就像论文题目一样,作者提出了一个基于卷积神经网络的end2end的tracking模型.模型的整体结构如下图所示(图中实线代表online trackin ...

  10. CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文提出的模型叫做STRCF. 在DCF中存在边界效应,SRDCF在DCF的基础上中通过加入spatial惩罚项解决了边界效应,但是SRDCF在tracking的过程中要使用 ...

最新文章

  1. 文件批量重命名的技术,你值得拥有
  2. 9个数据科学中常见距离度量总结以及优缺点概述
  3. php多选框怎么传值,php多选框表单checkbox参数传递的问题解析
  4. python——多态
  5. 计算机cpu 和 主板型号,CPU和主板怎么搭配?intel七代/八代/九代处理器和主板搭配对照表...
  6. cache buster issue application index and duplicate .library file
  7. 算法题目——Problem A 二进制(北邮机试)
  8. python入门——P48魔法方法:迭代器
  9. python模块介绍-Tornado:Tornado中文文档-概述
  10. iTOP4412 gdbserver安装
  11. 《ES6标准入门》学习笔记
  12. 生物学软件大汇总!史上最全
  13. python django面试题_django面试题(21道)
  14. 数据分析之basemap模块
  15. linux shell中各种分号和括号,Linux Shell中各种分号和括号#的用法总结
  16. 你认为3D建模是像程序员一样敲代码吗?你太out了
  17. 修改Avaya IP-Office电话交换机出厂自带的提示语音内容
  18. cesium three性能比较_初探希捷Exos银河18 TB盘,容量和性能双双提升
  19. qt移植到arm开发板
  20. TensorFlow入门教程(30)车牌识别之整合EAST+DenseNet进行车牌识别(六)

热门文章

  1. 海洋遥感技术的内涵及特征
  2. 网页变灰的方法,适用于IE
  3. php是世界上最好的语言滑稽,比较滑稽的句子_搞笑逗比的说说语录
  4. 稻盛和夫:经营为何需要哲学
  5. 如何了解负反馈里面的反馈系数(反馈因子)
  6. php 微信支付 退款接口,php实现微信支付之退款功能
  7. Flink CDC 将MySQL的数据写入Hudi实践
  8. python标准库math中用来计算平方根的函数_python考试复习题库
  9. 蓝牙扫描枪直连蓝牙打印机
  10. 从raspberry pi OS 64-bit lite开始安装图形界面(icewm ,dwm)