微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 两个人靠看视频里的动作,居然能比机器学得更准

两个人靠看视频里的动作,居然能比机器学得更准

2026-10-14 16:17
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-10-14 16:17 • 科技行者

2014年的深度学习圈子里,有一件事让不少研究者感到很不是滋味。

图像识别领域,卷积神经网络已经把手工设计的特征方法打得节节败退。AlexNet 在 2012 年横空出世之后,整个计算机视觉界都在往深度学习转向。可是当研究者们把同样的思路搬到视频动作识别上,事情却不太顺利。

当时视频动作识别领域最强的方法,是一种叫做密集轨迹的手工特征方法,在标准测试集 UCF-101 上能达到 87.9% 的准确率。而深度学习方法呢,最好的成绩只有 65.4%,差了整整 22 个百分点。

这个差距意味着什么。意味着每 5 个动作里,深度学习方法就要比手工方法多认错超过 1 个。要知道,图像识别上深度学习已经是碾压级的优势,怎么到了视频上反而掉链子了。

这就是牛津大学的 Karen Simonyan 和 Andrew Zisserman 在他们那篇论文里要解决的问题。这两位后来几个月又发表了另一篇更出名的论文,提出了 VGGNet,这是同一个实验室同一时期的工作,说明他们那会儿正在系统性地琢磨卷积网络到底该怎么设计才好用。

视频比图片难在哪

一张图片是静止的空间信息,一个卷积网络看一眼就能抓住物体的形状、纹理、边缘。但视频不一样,视频的核心是运动,是画面随时间的变化。

如果你只把视频的每一帧单独喂给一个图像分类网络,让它一帧一帧地看,会发生什么。

答案是,网络会完全丢失动作的信息。一个人挥手和一个人把手举着不动,单看某一帧图片可能长得几乎一样,只有连续看几帧,看到手的位置在变化,才能分辨出这是挥手还是举手不动。

这就像你看一本连环画,如果只给你看其中一页,你可能猜不出这是打拳还是伸懒腰,你需要翻看连续的几页才能读懂这个动作的意思。如果只看一页就下判断,你大概率会理解错整个故事。

所以问题的关键在于,怎么让卷积网络也能"看懂"时间维度上的变化,而不仅仅是空间维度上的形状。

两条流一起看,效果立刻不一样

Simonyan 和 Zisserman 给出的方案叫做双流卷积网络。

双流网络*:同时用两个独立的卷积网络分别处理视频的两种不同信息,一个处理静止画面,一个处理运动信息,最后把两边的判断结果融合起来。

具体来说,第一条流叫空间流,输入是视频里的单张 RGB 图片,专门负责识别画面里有什么物体、什么场景,比如识别出画面里有个人、有个球、有片草地。这条流本质上跟普通的图像分类网络没什么区别。

第二条流叫时间流,这条流不看原始画面,而是看光流场。

光流场*:描述画面中每个像素点在连续两帧之间移动方向和速度的一种表示,本质上是把"运动"这件事变成了一张可以输入给卷积网络的图片。

光流场把每个像素的运动方向拆成水平方向和垂直方向两张图,叠加连续几帧的光流图,就得到了一个专门描述运动模式的输入,把这个输入喂给另一个卷积网络,这个网络就专门学习"动作"本身长什么样,而完全不管画面里到底是谁在动。

这个设计背后的逻辑其实挺直白的。人类大脑处理视觉信息的时候,本来就存在两条相对独立的通路,一条负责识别"这是什么",另一条负责感知"这在怎么动"。神经科学上这个理论已经有些年头了,Simonyan 和 Zisserman 借用了这个思路,把它翻译成了两个并行的卷积网络。

如果不这样拆开会怎样。论文里做了对比实验,只用空间流单独跑,UCF-101 上的准确率是 72.6%。这个数字甚至比不过一些手工特征方法。但是把两条流的结果融合起来之后,准确率跳到了 88%,直接反超了当时最强的手工特征方法 87.9%。

这是深度学习第一次在视频动作识别这个任务上赢过手工特征,在 2014 年,这句话的分量不亚于两年前 AlexNet 在图像识别上的那次胜利。

这个差距背后揭示的东西挺有意思。空间流之所以效果一般,是因为很多动作类别其实光靠画面里的场景和物体就能蒙对一部分,比如看到游泳池大概率是在游泳,看到篮球场大概率是在打球。但真正区分"挥手"和"招手"这种细粒度动作的时候,光看静态画面是不够的,必须依赖运动轨迹。这也解释了为什么加上时间流之后提升这么明显。

数据不够用,怎么办

深度学习一直有个软肋,就是需要海量标注数据才能训练出好效果。而 2014 年那会儿,视频动作识别的数据集规模远远比不上图像分类。UCF-101 一共才 13320 段视频,跟图像分类动辄百万级的 ImageNet 完全不是一个量级。

数据不够,网络很容易过拟合。

过拟合*:模型在训练数据上表现很好,但换到没见过的新数据上表现很差,相当于死记硬背了考试题却没学会解题方法。

Simonyan 和 Zisserman 用了两个办法应对这个问题。

第一个办法是多任务学习,让同一个网络同时在两个不同的数据集上训练,UCF-101 和另一个叫 HMDB-51 的数据集共享网络的大部分参数,只在最后分类的那一层分开。这样网络能从两份数据里都学到东西,相当于把两个小数据集拼成了一个更大的训练资源。

第二个办法是大量的数据增强,对训练图片做随机裁剪、水平翻转、颜色抖动这些操作,人工制造出更多样化的训练样本。

这里的思路其实很朴素。你只有 100 张照片来教一个从没见过猫的人认猫,直接给他看这 100 张,他很容易记住"这张照片左上角有个黑点就是猫"这种毫无意义的规律。但如果你把这 100 张照片裁剪、翻转、调色调出上千种变体,他就被迫去关注猫真正的特征,比如耳朵形状、身体轮廓,而不是背景里的某个偶然细节。如果不做这一步,网络记住的很可能是背景噪声而不是动作本身。

融合方式也有讲究

两条流各自算出一个分类结果之后,怎么把它们合并成一个最终答案,这里也有讲究。

论文里试了几种融合方式,比较简单的一种是取两条流预测概率的平均值,另一种是训练一个额外的分类器,把两条流的输出当作特征喂进去,让这个分类器自己学怎么加权。

实验结果显示,用额外分类器融合的效果稍微好一点,但差距不算特别大,两条流各自的贡献才是效果提升的主要来源,融合方式本身的选择是锦上添花而不是决定性因素。

这个发现其实提醒了后来的研究者一件事,比起纠结怎么融合,更重要的是先把每一路的信息提取做扎实。

方法 UCF-101准确率

密集轨迹(手工特征) 87.9%

单独空间流 72.6%

单独时间流 83.7%

双流融合 **88.0%**

从这个表格能看出一个挺关键的细节,时间流单独拿出来跑,效果已经逼近手工特征方法了,达到 83.7%,比空间流单独跑的 72.6% 高出 11 个百分点。这说明光流场这种运动表示本身就已经抓住了动作识别最核心的信息,空间流更多是提供辅助性的场景信息。

这篇论文之后,视频动作识别领域走上了一条很明显的延续路线。

2016 年,Feichtenhofer 等人发表的论文进一步研究了双流网络里两条流应该在网络的哪个层次上融合,而不是等到最后输出层才融合,提出了更早期的特征级融合方案,进一步把准确率往上推了一截。

2017 年,DeepMind 团队发表了 I3D 网络,把双流网络里的二维卷积换成了三维卷积,直接让卷积核在时间维度上也能滑动,不再需要单独计算光流,这个方法在 Kinetics 数据集上把准确率进一步推高,成为后续几年视频理解领域的重要基线模型。

这两个后续工作说明双流网络提出的"分别处理空间和时间信息"这个核心思路是站得住的,后来的改进大多是在这个框架内部做优化,而不是推翻重来。

写在后面

读到光流场这个设计的时候,我脑子里冒出的第一个念头是,这其实是一种很聪明的"作弊"。网络本身处理时间序列信息很吃力,那不如干脆在输入网络之前,先用传统的图像处理算法把"运动"这件事算出来,变成一张静态图片,再喂给网络。这相当于绕过了让网络自己学习时间建模这个更难的问题,用一个巧妙的预处理把难题拆解成了网络擅长的静态图像分类。

这个思路让我联想到工程里经常出现的一种取舍。不是所有的问题都值得用最"纯粹"的端到端方案解决,有时候先用已有的成熟工具把问题转化一下,反而比硬train一个通用模型更划算。三年后的 I3D 网络选择放弃光流场直接用三维卷积,某种程度上说明当数据和算力都跟上之后,端到端方案才会重新变得更有优势。这也提醒我,一个方法在特定历史阶段是不是最优解,很大程度上取决于当时手头的资源够不够。

论文里还有个细节我觉得值得单独说一下,光流场需要提前用传统算法计算好再存起来,这个预处理步骤在当时其实相当耗时耗资源,几乎跟训练网络本身一样费劲。这个笨拙的中间步骤后来正是被 I3D 网络这类方法优化掉的地方。

一个方法解决了问题,同时也留下了它自己的负担,这大概是技术演进里挺常见的一个规律。

Q&A

Q1:双流卷积网络是什么?

A:双流卷积网络是 Simonyan 和 Zisserman 在 2014 年提出的视频动作识别方法,用两个独立的卷积网络分别处理静止画面和运动信息,再把两者的判断结果融合起来,最终准确率超过了当时最强的手工特征方法。

Q2:双流网络里的时间流为什么要用光流场而不是原始视频帧?

A:因为光流场直接描述了像素在连续帧之间的运动方向和速度,等于把"动作"本身变成了一张图片,让网络专注学习运动模式,而不必费力从原始画面里自己摸索出运动信息。

Q3:双流网络之后有哪些重要的后续研究?

A:2016年Feichtenhofer等人研究了更早期的特征级融合方案,2017年DeepMind提出的I3D网络用三维卷积直接建模时间维度,不再需要单独计算光流,都是在双流网络框架基础上的重要延伸。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-