微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

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

首页 视频里的动作,AI怎么才能看懂

视频里的动作,AI怎么才能看懂

2026-08-20 16:40
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-08-20 16:40 科技行者

2014年,如果你问一个计算机视觉研究者"深度学习能不能识别视频里的动作",大概率会得到一个尴尬的沉默。

那一年深度学习已经在图像识别上大杀四方,AlexNet在2012年横空出世,把图像分类的错误率硬生生拉低了十个百分点,整个学术圈为之震动。但是换到视频动作识别这个任务上,深度学习却屡屡碰壁。

最好的深度学习方法,准确率卡在65%左右。而一个叫做"密集轨迹"的手工特征方法,却能做到85%以上。

> 密集轨迹*:一种不用神经网络的传统方法,靠人工设计的规则去追踪视频里每个像素点的运动轨迹,然后统计这些轨迹的方向、形状等特征来判断动作类型。

二十个百分点的差距,意味着什么?意味着每5个动作里,深度学习就要比手工方法多认错1个。这在当时几乎是不可接受的差距,以至于很多人开始怀疑,深度学习是不是根本不适合处理视频。

牛津大学的Karen Simonyan和Andrew Zisserman不信这个邪。他们琢磨出了一个思路:也许问题不在于神经网络不够强,而在于我们喂给它的"食物"不对。

问题出在哪:视频比图片难在哪里

先说说这事到底难在哪。

一张静态图片,信息很直白。一只猫在图片里,不管猫是站着还是趴着,你一眼就能认出来。图片识别本质上是在学"这个东西长什么样"。

但视频不一样。视频里的动作,核心信息根本不是"长什么样",而是"怎么动的"。挥手和挥拳,静态截图可能看起来差不多,区别全在于手臂划过的轨迹和速度。

这就是视频动作识别的根本矛盾:空间信息(长什么样)好学,但时间信息(怎么动的)难学。

当时的深度学习方法,大多是把视频的每一帧当成独立的图片来处理,然后简单粗暴地把结果平均一下。这种做法完全丢掉了运动的连续性,相当于看了十张照片就想拼出一段舞蹈的感觉,自然效果不好。

核心思路:把网络劈成两半

Simonyan和Zisserman的解法,说出来其实很朴素:既然一个网络学不好"长什么样"和"怎么动的"这两件事,那就干脆用两个网络,一个专门学长相,一个专门学动作。

这就是这篇论文最核心的贡献,他们管这个架构叫"双流卷积网络"。

> 双流卷积网络*:Two-Stream Convolutional Networks,一种把视频识别拆分成两条独立处理通道的神经网络架构,一条处理画面内容,一条处理运动信息,最后把两条通道的判断结果融合起来。

第一条流叫空间流,输入是视频里单独抽出来的一帧画面,和普通的图片分类网络没什么区别,负责识别画面里有什么东西,比如背景是不是游泳池,画面里有没有球拍。

第二条流叫时间流,这条流不看画面本身,只看画面之间的运动信息,专门负责捕捉动作的轨迹和速度。

这两条流各自训练,各自打分,最后把两边的分数加权融合,得出最终判断。

这里有个类比可能会帮你理解为什么要拆开做。

想象你去医院看病,医生不会指望一个全科大夫既懂验血又懂拍片子又懂做心电图,这些工作会分给不同的科室,每个科室用专门的设备和专门的医生,最后所有报告汇总到主治医生那里综合判断。如果非要一个医生什么都自己上手,效率低不说,准确率也堪忧,因为验血报告和X光片需要完全不同的专业知识和工具去解读。双流网络就是把"看画面"和"看动作"分给了两个专门的科室,而不是让一个网络硬扛所有信息。

如果不这样拆分会怎样?论文里其实做了对照实验。只用空间流单独跑,准确率是72.6%,比双流融合之后的88%整整少了15个百分点。这说明单靠画面内容,网络确实抓不住动作的精髓,运动信息是不可替代的。

时间流怎么"看"运动:光流场

问题来了,时间流具体怎么"看"运动?视频本质上也是一帧一帧的图片,怎么才能让网络专门看到"动"这件事,而不是又被画面内容带偏?

答案是光流。

> 光流*:Optical Flow,一种描述视频中每个像素点从一帧移动到下一帧的方向和速度的数据表示,本质上是给画面里每个点画一个箭头,指出它接下来要往哪个方向移动多快。

普通的视频帧是一张彩色图片,记录的是"这里有什么颜色"。而光流场是一张特殊的图,记录的是"这个位置的东西正在往哪个方向移动"。光流场里没有颜色信息,只有运动方向和速度的信息。

Simonyan和Zisserman把连续几帧的光流场叠在一起,当作时间流网络的输入。这样一来,时间流网络看到的东西已经被提前"过滤"过,画面里的颜色、纹理、背景这些干扰信息全被去掉了,只剩下运动本身。

这就好比你想训练一个人专门通过脚步声辨认走路姿势,如果直接把整段监控视频给他看,他可能会被路人的衣服颜色、背景招牌这些无关信息干扰。但如果你只给他一份脚步的节奏和力度记录,不告诉他任何视觉信息,他反而能更专注地学会辨认步态特征。如果不做这个转换,直接把原始像素差值喂给网络,网络很容易被光照变化、背景抖动这些噪音带偏,学到的可能是错误的规律。

论文里还专门去看了时间流网络第一层学到的卷积核长什么样。结果发现,这些卷积核大多呈现出方向性的模式,像是专门捕捉某个特定方向运动的探测器。这不是巧合,这说明网络自己学会了光流场里最重要的信息就是方向,这和研究者最初设计光流输入的直觉是吻合的。

训练数据不够怎么办:多任务学习

光流这个思路解决了"怎么看动作"的问题,但还有一个更现实的困难:当时能用来训练的视频动作数据集,规模都很小。

比如UCF-101这个数据集只有101类动作,总共一万多个视频片段,和ImageNet那种上百万张图片的规模完全没法比。数据量小,神经网络很容易过拟合,学到的规律没有泛化能力。

Simonyan和Zisserman的解法是多任务学习。

> 多任务学习*:Multi-task Learning,让同一个网络同时在多个相关但不完全相同的数据集上训练,共享底层特征,但在最后分类层保持独立,这样可以用更多数据撑起同一套底层表示。

具体做法是,他们同时用了两个数据集来训练时间流网络,一个是UCF-101,另一个是HMDB-51,这是另一个规模也不大但类别不同的动作数据集。网络的主体结构共享,但最后输出分类结果的那一层,针对两个数据集分别设置独立的输出头。

这个做法背后的逻辑是,尽管两个数据集的具体动作类别不同,但底层的运动模式,比如什么样的光流场对应"快速挥动"、什么样的对应"缓慢转身",这些规律是可以共用的。让网络同时在两份数据上学习底层规律,相当于变相扩大了训练数据的规模。

这就像一个新手厨师同时在两家不同菜系的餐厅打工,尽管川菜和粤菜的具体菜品完全不同,但刀工、火候的基本功是通用的,同时在两家餐厅历练反而能让他更快掌握基本功,比只在一家餐厅练习进步更快。如果不做这种数据共享,单独在一个小数据集上训练,网络很容易记住训练集里的具体样本,而学不到真正有用的通用规律,这就是论文里反复强调的过拟合问题。

实验证明这招确实管用,加入多任务学习之后,时间流网络在UCF-101上的准确率从81%左右提升到了86%以上,提升幅度相当明显。

最终成绩单

把这些设计组合起来,双流网络在UCF-101数据集上跑出了88.0%的准确率,在HMDB-51数据集上是59.4%。

这里放一张数据对比,能更直观感受这个提升幅度。

| 方法 | UCF-101准确率 |

|---|---|

| 单独空间流 | 72.6% |

| 单独时间流 | 83.7% |

| 密集轨迹(手工特征,此前最强) | 85.9% |

| **双流网络融合** | **88.0%** |

这张表格里最值得琢磨的一行是密集轨迹和双流网络的对比。密集轨迹作为纯手工设计的方法,已经做到了85.9%,这个数字本身已经很能打了。而双流网络在此基础上又往前推了两个多百分点,更关键的是,这是深度学习方法第一次在视频动作识别这个任务上,正面超过了手工特征方法。

这个历史节点的分量,不亚于两年前AlexNet在图像分类上的横空出世。在此之前,深度学习在视频这个领域屡战屡败,这篇论文证明了不是深度学习不行,而是之前没有找到正确的"喂食"方式。

顺带一提,Simonyan和Zisserman这两位作者,几个月后又发表了另一篇论文,提出了后来大名鼎鼎的VGGNet网络结构。这两篇论文几乎是同期的工作,出自同一个牛津团队的手笔,某种程度上也说明了这个团队当时在卷积网络设计上的敏锐度。

后来的故事

双流网络这个思路提出之后,直接催生了一大批后续研究。

2015年,Feichtenhofer等人发表的论文进一步研究了两条流应该在网络的哪一层融合效果最好,他们发现在网络中间层就做融合,比只在最后输出层融合效果更好,这个改进让准确率又往上提了一截。

2016年,Wang等人提出的时间片段网络(Temporal Segment Network)把双流网络的思路扩展到了整段视频的层面。原始的双流网络每次只能看一小段视频片段,而时间片段网络学会了从整段视频里稀疏采样多个片段,综合判断,这让模型能够捕捉更长时间跨度的动作模式,在多个数据集上的准确率进一步提升到90%以上。

这两篇后续工作都是站在双流网络这个框架上做的改进,说明这篇论文提出的"拆分空间和时间"的思路,确实抓住了视频理解问题的一个关键结构,后来者不是推翻它,而是在这个骨架上继续添砖加瓦。

写在后面

读这篇论文的时候,一个细节让我停下来想了很久:光流场作为输入这个决定,本质上是研究者主动放弃了一部分信息,把颜色纹理这些丢掉,只留运动方向。

这和现在很多深度学习的思路正好相反。这几年大家越来越倾向于"给模型看原始数据,让它自己学会该关注什么",端到端训练几乎成了默认选项。但双流网络这篇论文提醒我们,在数据不够多、任务足够明确的时候,人为地帮网络过滤掉无关信息,反而可能是更有效的路径。

这也是为什么我觉得这篇论文即便放到今天,依然值得被重新读一次。它不是靠更大的模型或者更多的数据取胜,而是靠一次对问题结构的重新拆解。如果换到现在数据充裕、算力便宜的时代,是不是还有类似的"任务拆分"的机会被大模型的暴力美学所掩盖了?这个问题我没有答案,但确实值得追问。

Q&A

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

A:双流卷积网络是Simonyan和Zisserman在2014年提出的一种视频动作识别架构,把网络拆成空间流和时间流两条通道,一条负责识别画面内容,一条负责捕捉运动信息,最后融合两者的判断结果,在UCF-101数据集上达到88.0%的准确率。

Q2:光流为什么对识别视频动作很重要?

A:光流记录的是画面中每个点的运动方向和速度,去掉了颜色纹理等干扰信息,让网络能专注学习运动本身的规律。实验显示单独用光流的时间流网络就能达到83.7%的准确率,证明运动信息对动作识别至关重要。

Q3:双流网络比之前的手工特征方法好在哪?

A:在这篇论文之前,最强的手工特征方法密集轨迹能达到85.9%的准确率,而深度学习方法一直卡在65%左右。双流网络首次让深度学习方法反超手工特征,达到88.0%,是视频动作识别领域的重要转折点。

分享至
0赞

好文章,需要你的鼓励

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