你是否曾遇到过观看视频时想要快速统计某个重复过程的次数?最近,谷歌与DeepMind合作发布了一篇CVPR 2020论文,介绍了一种基于机器学习的“计数助手”,能够方便地统计视频中重复过程的次数。特别是,谷歌不仅发布了论文,还提供了演示视频、源代码、模型以及一个新的相关数据集Countix。本文是对谷歌AI博客上关于这项研究的解读。
我们日常生活中充满了各种重复过程,无论是自然现象如月亮的盈亏,还是人为活动如生产线上的循环操作。这些重复过程往往包含了潜在的有价值信息,比如某个动作背后的原因或渐进变化的趋势。此外,重复过程还可以分解成一系列有意义的动作单元,从而实现更精细的自动化分析。
鉴于此,能够识别并统计不同重复过程的系统对于感知系统来说非常重要。谷歌的这篇论文《Counting Out Time: Class Agnostic Video Repetition Counting in the Wild》提出了一个名为RepNet的模型,它可以识别和统计多种类型的重复过程,包括人类活动、动物行为等。
RepNet
RepNet模型的输入是一段包含重复动作的视频,这些动作可能属于多种不同的类别。模型的输出是视频中找到的重复时间段。传统的重复计数方法通常直接比较帧的像素密度,但在现实世界中,视频可能会受到相机移动、物体遮挡、比例变化等因素的影响。为此,谷歌设计了一个端到端的机器学习模型,它可以通过学习不受这些噪声影响的特征来估计重复的时间段。
该模型由三部分组成:一个帧编码器、一个时间自相似矩阵(TSM)和一个时间段预测器。帧编码器使用ResNet架构生成视频中每一帧的嵌入表示。接下来,TSM计算视频中每帧之间的相似度,从而揭示视频中的自相似结构。最后,Transformer模型根据TSM中的相似度序列预测重复时间段和周期性。
时间自相似矩阵
TSM是一个关键组件,它在自相似空间中工作,而不是在特征空间中,这有助于模型泛化到未曾见过的类别。例如,跳跃和游泳这两种截然不同的动作,只要它们的重复频率相似,那么它们的TSM也会相似。这使得模型能够在训练过的类别之外也能有效工作。
数据集
为了训练这个模型,谷歌开发了一种合成数据生成方法,可以从任意视频生成带有重复过程的视频。此外,为了防止模型学习到虚假的模式,谷歌还采用了“相机运动增强”技术,模拟视频拍摄过程中相机的移动,使模型更难作弊。
评估
为了验证模型在真实视频上的性能,谷歌从Kinetics数据集中挑选了约9000段视频,构建了一个新的数据集Countix,并对其进行了标注。这个数据集已经公开发布,以促进更多研究人员的工作。
应用
RepNet模型的应用场景广泛,它可以用于评估超声心动图中的心率节律,监控重复过程中的速度变化等。即使在训练时未见过类似的视频,RepNet仍然能够很好地处理这些任务。
通过这些改进和优化,RepNet不仅提高了重复过程识别的准确性,还展示了强大的泛化能力,适用于多种不同的应用场景。