Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Panda编译

CVPR 2020 | 用机器学习打造计数君,谷歌RepNet可自动计数视频重复片段


你是否曾在看视频时呼唤过计数君?近日,谷歌和 DeepMind 公布的一篇 CVPR 2020 论文利用机器学习方法打造了一种机器计数君,可以非常便利地统计视频中重复过程的出现次数;尤其值得注意的是,谷歌不仅公布了论文,还发布了演示视频、代码、模型以及一个新构建的相关数据集 Countix。本文为谷歌 AI 博客对这项研究的解读介绍。

  • 项目:https://sites.google.com/view/repnet

  • 论文:http://openaccess.thecvf.com/content_CVPR_2020/papers/Dwibedi_Counting_Out_Time_Class_Agnostic_Video_Repetition_Counting_in_the_CVPR_2020_paper.pdf

  • Countix 数据集:https://storage.googleapis.com/deepmind-media/Datasets/countix.tar.gz

  • Colab Notebook:https://colab.research.google.com/github/google-research/google-research/blob/master/repnet/repnet_colab.ipynb


我们的日常生活中存在各种各样的重复过程,有的是自然周期,比如月相变化或心跳和呼吸节律;也有的重复过程是人为的,比如生产线或交通中的重复模式。

重复过程不仅普遍存在,而且其中还蕴含着可通过巧妙的方式提取出来的见解:在重复多次发生的事件背后,也许还隐藏着什么底层原因;在重复的场景中也许隐藏着某种渐进的变化趋势,这也许能帮助我们理解这个场景。

有时候,重复过程能为我们提供清晰明确的「动作单元(action units)」,即构成一个动作的且具有语义含义的分段。举个例子,如果一个人正在切洋葱,其动作单元就是切下洋葱片的重复操作动作。这些单元可能成为更复杂动作的指示并可能允许我们无需人工标注这些单元,就能在更细粒的时间尺度上自动分析更多这样的动作。

基于上述原因,如果能集成可理解一般重复模式的系统,则以长期观察和理解世界为目标的感知系统将会大获助益。

谷歌的 CVPR 2020 论文《Counting Out Time: Class Agnostic Video Repetition Counting in the Wild》在这一研究方向上迈出了重要一步。这篇论文提出了一种可理解多种重复过程的单一模型 RepNet——其中涵盖人类锻炼或使用工具、动物奔跑、鸟类扇动翅膀、钟摆摆动等多种不同的重复过程。之前的重复过程研究大都使用了周期一致性约束来分析有同一动作的不同视频,以便能细粒度地理解它们。谷歌这篇论文则采用了一种不同方案:一种能识别单个视频中的重复模式的系统。

RepNet

RepNet 模型的输入是包含重复动作的视频,而且这些重复动作可以属于多种不同类别(包括在训练期间未曾见过的类别);而其返回的结果是在视频中找到的重复时间段。

过去,执行重复计数的常见思路是直接比较帧的像素密度,但现实世界的视频可能存在相机移动、视野中物体遮挡、比例尺发生巨大变化、形状变化等情况,因此学习不受这些噪声影响的特征是非常必要的。为了做到这一点,当然要用机器学习

具体来说,谷歌以端到端的方式训练了一个机器学习模型,可以直接估计重复的时间段。该模型由三部分组成:一个帧编码器、一个中间表征(称为时间自相似度矩阵)、一个时间段预测器。

首先来看帧编码器,其使用了 ResNet 架构作为每帧模型,以为视频的每一帧生成嵌入。选择 ResNet 架构的原因是其已经在许多图像和视频任务上得到了成功应用。将视频的每一帧传递给基于 ResNet 的编码器会得到一个嵌入序列。

接下来就该计算时间自相似度矩阵(TSM)了,即比较视频中每一帧的嵌入与其它每一帧的嵌入,返回的矩阵可帮助后续模块轻松分析,进而对重复过程计数。这个过程能让视频帧流中的自相似性显现出来,从而可帮助实现时间段估计,如下所示:

TSM 处理地球日夜循环图像的方式演示。

然后,对每一帧,再根据 TSM 中的相似度序列使用 Transformer 来直接预测重复的时间段和周期性(即该帧是否属于该周期过程)。一旦有了时间段,就可以用周期段的帧数除以周期时间段长度来获得每帧计数。归总起来,就可以预测出视频中的重复数量。

RepNet 模型概况

时间自相似度矩阵

上面展示的日夜循环的时间自相似度矩阵(TSM)示例是一个固定时间段长度重复的理想场景。而对于真实世界视频,TSM 往往能揭示出视频中让人着迷的结构。下面展示了三个示例:跳跃运动差不多算是一个固定周期长度的理想周期动作了;对比之下,由于动能损失,弹跳小球的弹跳高度会在重复过程中逐渐下降。而某人挖铲混凝土的视频前后都有一段无运动的片段。这三个行为对应的学习到的 TSM 也有明显差别,这需要模型关注场景中的细微变化。

跳跃运动(恒定周期长度;视频来自 Kinetics),弹跳小球(下降式周期,Kinetics),挖铲混凝土(视频中存在非周期性片段,PERTUBE 数据集)

在 RepNet 中使用 TSM 作为中间层的一大优势是 Transformer 的后续处理是在自相似度空间中完成的,而不是在特征空间中完成。这会鼓励向未曾见过的类别泛化。举个例子,只要动作的重复速度是相似的,跳跃和游泳等非常不同的动作所得到的 TSM 也是相似的。这使得该模型可以在某些类别的动作上训练之后再泛化用于未曾见过的类别。

数据

训练上述模型的方法之一是收集一个大规模的包含重复活动的视频数据集且其中带有良好标注的重复次数。但这种方法存在两方面的困难。第一,需要有人检查大量视频以识别出其中带有重复动作的视频。之后,每个视频都必须标注上一个动作重复的次数。尽管对于特定的任务而言,标注者可以跳过某些帧(举个例子,在分类跳跃运动这样的视频时),但他们仍然需要看完整个视频才能统计出跳跃运动的执行次数。

针对这一难题,谷歌采取的做法是引入一个合成数据生成过程,可以使用可能不包含重复动作的视频生成带有重复的视频。具体做法是随机选取一个视频片段并将其重复任意次数,然后再在两段加上原视频的前后部分。

这种合成数据生成流程可以基于任何视频生成带有重复的视频

尽管这一流程可以生成带有重复过程且看起来自然的视频,但对于深度学习方法来说还是过于简单,因为深度学习可以通过查找伪影而非学习识别重复而学会欺骗。针对这个问题,谷歌的策略是执行极端的数据增强,他们称之为「相机运动增强(camera motion augmentation)」。这种方法会对视频进行修改,从而在视频进行过程中使用 2D 仿射运动模拟平滑移动的相机。

左图:一个由随机视频生成合成带重复视频的示例。右图:一个使用相机运动增强合成的视频示例,这对于模型来说难度更大,但能更好地泛化用于真实的重复视频上。(视频均来自 Kinetics)

评估

现在可以在合成的重复视频上训练模型了,但是所得到的模型必须要能泛化用于带有重复过程的真实视频才行。为了在真实视频上评估训练所得到的模型的性能,谷歌从 Kinetics 数据集收集了大约 9000 段视频,并构建了一个新的数据集。这些视频根基于 YouTube 上的数据多样性,涵盖许多动作类别,并且具有丰富多样的场景。然后,谷歌为这些视频标注了视频中动作的重复次数。为了鼓励对这一领域的进一步研究,谷歌已经公开发布了这一起名为 Countix 的数据集。

应用


不依赖类别的计数模型具有许多有用的应用场景。以单个模型使用的 RepNet 可以统计许多不同领域的视频中的重复次数:

RepNet 可以计数多种领域活动的重复次数,比如切洋葱、地球昼夜周期甚至运动中的猎豹。

RepNet 可用于评估来自超声心动图的心跳节律,即便其在训练期间并未见过这样的视频:

预测得到的心跳速率:45bpm(左边)和 75bpm(右边)真实的心跳速率分别为 46-50 bpm 和 78-79 bpm。RepNet 对来自不同设备的数据的心跳速率预测非常接近该设备实际测得的心跳速率。

RepNet 还可用于监控重复活动中的速度变化。下面展示了这样的速度变化也可用于其它设置中,以便进行质量控制或过程控制。

在视频中可以看到 RepNet 计数了在激光显微镜下观察到的加速细胞振荡,即便其在训练期间并未见过这样的视频。

左图:一个人进行「登山者」锻炼。右图:使用主成分分析得到的 RepNet 嵌入的 1D 投影,这里是该人在锻炼过程中改变速度的时刻。

原文链接:https://ai.googleblog.com/2020/06/repnet-counting-repetitions-in-videos.html

理论CVPR 2020谷歌
1
相关数据
DeepMind机构

DeepMind是一家英国的人工智能公司。公司创建于2010年,最初名称是DeepMind科技(DeepMind Technologies Limited),在2014年被谷歌收购。在2010年由杰米斯·哈萨比斯,谢恩·列格和穆斯塔法·苏莱曼成立创业公司。继AlphaGo之后,Google DeepMind首席执行官杰米斯·哈萨比斯表示将研究用人工智能与人类玩其他游戏,例如即时战略游戏《星际争霸II》(StarCraft II)。深度AI如果能直接使用在其他各种不同领域,除了未来能玩不同的游戏外,例如自动驾驶、投资顾问、音乐评论、甚至司法判决等等目前需要人脑才能处理的工作,基本上也可以直接使用相同的神经网上去学而习得与人类相同的思考力。

https://deepmind.com/
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

主成分分析技术

在多元统计分析中,主成分分析(Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。由于主成分分析依赖所给数据,所以数据的准确性对分析结果影响很大。

视频生成技术

视频生成是指利用深度学习等技术生成视频的任务。

合合信息机构
暂无评论
暂无评论~