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

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​​的新数据集(比现有数据集大约 90 90 90​​倍),该数据集囊括了真实世界中具有挑战性的重复计数视频。项目网页:https://sites.google.com/view/repnet

1. Introduction

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

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

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

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

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

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

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

我们会专注于两项任务:( 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​​​,比之前最大的数据集大大约 90 90 90​​​倍。

2. Related Work

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

Temporal Self-similarity Matrix(TSM). TSM \text{TSM} TSM​是人体动作识别以及步态分析的一种实用表示,因为与适当的特征表示相结合时, TSM \text{TSM} TSM​对大视角变化具有鲁棒性。 《 \text{《} U n s u p e r v i s e d Unsupervised Unsupervised d e t e c t i o n detection detection o f of of p e r i o d i c periodic periodic s e g m e n t s segments segments i n in in v i d e o s videos videos 》 》 ​使用了基于改进密集轨迹 TSM \text{TSM} TSM​,用于对使用特殊滤波器视频的周期段进行无监督识别。与这些方法不同,我们使用 TSM \text{TSM} TSM​作为端到端神经网络架构中的中间层,充当信息瓶颈。

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

Synthetic Training Data. 在计算机视觉中使用合成训练数据正变得越来越普遍。在真实图像上粘贴物体图像块已被证明是有效的,可作为物体检测和人体姿态估计的训练数据。将多个视频或多个图像拼凑在一起对于生成特定任务的合成训练数据以及正则化深度学习模型是非常有用的。 《 《 L i v e Live Live​​ r e p e t i t i o n repetition repetition​​ c o u n t i n g counting counting 》 》 ​​首次提出了用于训练重复计数的合成数据。他们引入了一个合成重复模式的数据集,并用该数据集来训练了一个基于深度学习的计数模型。然而,他们用于训练的数据是由手工设计的随机模式组成,这些模式看起来并不真实。如 《 《 R e a l − w o r l d Real-world Realworld​​ r e p e t i t i o n repetition repetition​​ e s t i m a t i o n estimation estimation​​ b y by by​​ d i v div div , , ,​​ g r a d grad grad​​ a n d and and​​ c u r l curl curl 》 》 ​​​所示,这些模式的多样性不足以捕捉真实重复视频中的所有细微差别。相反,我们建议从现有视频数据集创建真实重复视频的合成训练数据集。

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

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

3. RepNet Model

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

假设我们有一个 N N N​帧的视频序列 V = [ v 1 , v 2 , … , v N ] V=\left[v_{1}, v_{2}, \ldots, v_{N}\right] V=[v1,v2,,vN]​。首先,我们将视频送入图像编码器 ϕ \phi ϕ​得到每帧嵌入 X = ϕ ( V ) = [ x 1 , x 2 , … , x N ] X=\phi(V)=\left[x_1,x_2,\ldots,x_N\right] X=ϕ(V)=[x1,x2,,xN]​。然后,计算所有嵌入对之间的成对相似性 S i j S_{ij} Sij​得到自相似矩阵 S S S​。最后,将 S S S​送入周期预测器模块,该模块对于每帧有两个输出值:周期长度 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​架构作为我们的基本卷积神经网络用以从输入视频的各帧 v i v_i vi提取 2D \text{2D} 2D卷积特征。这些帧的尺寸为 112 × 112 × 3 112\times112\times3 112×112×3。我们使用 conv4_block3 \text{conv4\_block3} conv4_block3​​层输出来生成更大空间的 2D \text{2D} 2D特征图。生成的每帧特征尺寸为 7 × 7 × 1024 7\times7\times1024 7×7×1024

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

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

3.2. Temporal Self-similarity Matrix (TSM)

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

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

3.3. Period Predictor

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

TSM示例图

3.4. Losses

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

3.5. Inference

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

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

多速评估:由于我们模型可预测的周期长度最长至 32 32 32​,为了覆盖更长的周期长度,我们以不同的帧率对输入视频进行采样(即我们以 1 × 1\times 1×​, 2 × 2\times 2×​, 3 × 3\times 3×​和 4 × 4\times 4×​速度播放视频)。我们会选定预测周期得分最高的帧率。这与 《 《 L i v e Live Live r e p e t i t i o n repetition repetition c o u n t i n g counting counting 》 》 ​在测试阶段的做法相似。​

4. Training with Synthetic Repetitions

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

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

4.1. Synthetic Repetition Videos

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

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

视频合成方法

4.2. Camera Motion Augmentation

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

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

相机运动增强

5. Countix Dataset

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

Q U V A \mathbf{QUVA} QUVA:
重复模式

为了增加语义多样性并扩大计数数据集的规模,我们引入了 C o u n t i x \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重复数据集)大约 90 90 90倍。详细的统计数据见下表。数据集可以在项目网页上获取。

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

Countix数据集

QUVACountix
No. of Videos in Train set04588
No. of Videos in Val. set01450
No. of Videos in Test set1002719
Duration Avg. ± Std (s)17.6 ± 13.36.13 ± 3.08
Duration Min./Max. (s)2.5 / 64.20.2 / 10.0
Count Avg ± Std12.5 ± 10.46.84 ± 6.76
Count Min./Max.4 / 632 / 73

6. Experiments

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

6.1. Benchmarks and Evaluation Metrics

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

周期性检测:此任务的基准数据集是 P E R T U B E \mathbf{PERTUBE} PERTUBE​​数据集,它的每帧都具有标签来标识周期性(判断该帧是否为重复动作的一部分)。 《 《 U n s u p e r v i s e d Unsupervised Unsupervised​​ d e t e c t i o n detection detection​​ o f of of​​ p e r i o d i c periodic periodic​​ s e g m e n t s segments segments​​ i n in in​​ v i d e o s videos videos 》 》 ​​​将问题转换为每帧的二元分类任务,并且公布了精度、召回率、 F1 \text{F1} F1​​分数以及重叠度等指标。我们也遵循相同的评估指标。

P E R T U B E \mathbf{PERTUBE} PERTUBE:周期性检测数据集。

重复计数:如第 5 5 5节所述, 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误差。我们还在**表 7 7 7**中提供了 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 × 1 0 − 6 6\times10^{-6} 6×106​​的学习速率​和 5 5 5​个视频的批大小(每个视频有 64 64 64​帧)进行了 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视频还是两者的混合视频训练模型,时间自相似矩阵都显著提高了验证集上的所有指标。此外,即使模型只使用合成重复视频(下表中的第 1 1 1行和第 2 2 2行)训练, TSM \text{TSM} TSM​​​层也有助于将模型推广到真实重复视频。

QUVACountix(Val)
TSMTraining Data SourceMAEOBOMAEOBO
Synthetic1.28530.641.16710.5510
Synthetic0.10350.170.31000.2903
Countix0.75840.720.64830.5448
Countix0.32250.340.34680.2949
Synthetic + Countix0.63880.570.88890.4848
Synthetic + Countix0.13150.150.32800.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​​​架构的性能优于这些替代方案。

QUVACountix(Val)
ArchitectureMAEOBOMAEOBO
Transformer0.10350.170.31000.2903
LSTM0.13950.180.68950.3579
2D CNN0.11860.170.44400.3310
1D Temporal CNN0.32290.230.70770.3641

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

QUVACountix(Val)
Augmentation FractionMAEOBOMAEOBO
0.000.71780.321.26290.4683
0.250.14140.170.44300.3303
0.500.12020.150.37290.2993
0.750.10350.170.31000.2903
1.000.17100.170.33460.2848

6.4. Evaluation on Benchmarks

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

周期性检测. 我们公布了使用最大化 F1 \text{F1} F1​​​分数阈值来评估的周期性分类性能。如 《 《 U n s u p e r v i s e d Unsupervised Unsupervised​​​ d e t e c t i o n detection detection​​​ o f of of​​​ p e r i o d i c periodic periodic​​​ s e g m e n t s segments segments​​​ i n in in​​​ v i d e o s videos videos 》 》 ​​​​​中所做的那样,我们在所有视频上计算指标并平均得分。我们还公布了 PR \text{PR} PR​​曲线的曲线下面积( AUC \text{AUC} AUC​​​),该曲线与所选阈值无关。我们模型的 AUC \text{AUC} AUC​​为 0.969 0.969 0.969​​​​。在不使用上述文献中提到的任何手工设计过滤方法的情况下,我们方法的表现优于之前的工作(见下表)。我们的模型完全基于合成数据训练,可以对真实视频进行周期性检测。

ModelRecallPrecisionF1Overlap
Power spectrum baseline0.7930.6110.6680.573
P-MUCOS0.8410.7570.770.677
RepNet (Ours)0.8590.8210.8200.731
ModelMAEOBO
Visual quasi-periodicity0.3850.51
Live Repetition Counting0.4820.55
Div-Grad-Curl0.2320.38
RepNet (Ours)0.1040.17

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

ModelMAEOBO
RepNet0.36410.3034

6.5. Qualitative analysis

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

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

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

一维PCA嵌入

7. Applications

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

从视频估计过程频率. 我们的模型可用于预测生物过程(心跳)等视频中重复现象的计数以及频率。 《 《 E u l e r i a n Eulerian Eulerian v i d e o video video m a g n i f i f i c a t i o n magnifification magnifification f o r for for r e v e a l i n g revealing revealing s u b t l e subtle subtle c h a n g e s changes changes i n in in t h e the the w o r l d world world 》 》 ​​提出了一种通过放大帧差异来揭示细微变化的方法。我们发现上述系统的输出可以直接输入我们的模型来预测这些变化的频率。与类别无关的周期估计器可以消除模型对这些视频进行训练的需求。在我们的项目网页上,我们展示了对超声心动图视频进行重复计数的示例,这些视频看起来与 Kinetics \text{Kinetics} Kinetics视频非常不同。

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

较长时间范围的重复. 许多重复现象发生在较长的时间范围内(以天或年为单位)。尽管我们的模型在短视频(约 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

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

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值