首页 > 资讯 > 热闻 > 正文

前沿资讯!视频里的动作,AI是靠"看图片"还是"看动作"认出来的?

2026-09-17 21:31:33来源:科技行者  

视频里的动作,AI是靠"看图片"还是"看动作"认出来的?,算法,动作,光流,

2014年,如果你问计算机视觉领域的研究者一个问题:给你一段视频,让电脑自己认出里面的人在做什么动作,比如跑步、拳击、弹钢琴,深度学习行不行?

大部分人会摇头。

不是深度学习不行,而是在视频动作识别这个具体任务上,深度学习已经被一种叫密集轨迹的手工特征方法压制了两年多。


(相关资料图)

> 密集轨迹(Dense Trajectories)*:一种不用神经网络的传统视觉方法,通过在视频里密集采样点并追踪它们的运动轨迹,再手工设计一套统计描述子来刻画这些轨迹的形状、外观和运动方式,最后靠这套描述子做分类。

密集轨迹在几个标准数据集上的表现十分稳定,准确率能到87%左右。当时业内已经有人尝试用卷积神经网络去处理视频,但效果始终差了一截,最好的深度学习方法也就六十多分。这不是一两个百分点的差距,这是接近二十个点的鸿沟,意味着每五个动作里,深度学习就要比手工方法多认错一个还不止。

这种局面很尴尬。2012年AlexNet已经在图片识别上把传统方法打得溃不成军,可到了视频领域,深度学习反倒像个新手,被一个诞生更早、设计更朴素的手工方法按在地上摩擦了两年。问题出在哪?这正是本文要讲的这篇论文试图回答的东西。

这篇论文的作者是Karen Simonyan和Andrew Zisserman,来自牛津大学。有意思的是,这两位几个月后又发表了另一篇后来家喻户晓的论文,VGGNet。也就是说,你现在熟悉的VGG网络架构,和这篇讲视频动作识别的论文,其实出自同一个团队同一段时间的工作,两条线几乎是并行推进的。

视频比图片难在哪,静态网络为什么啃不动

要理解这篇论文的贡献,得先搞清楚视频识别到底比图片识别难在哪儿。

一张图片,网络看到的是空间信息,颜色、形状、纹理、物体之间的相对位置。一段视频,除了每一帧的空间信息,还有一个图片识别完全没有的维度,时间。人在做动作的时候,关键信息往往不在某一帧的画面里,而在帧与帧之间的变化里。你截取拳击视频中的某一帧静止画面,可能看起来就是一个人举着手,你根本判断不出他是在打拳还是在伸懒腰。真正暴露"打拳"这个动作本质的,是手臂快速向前冲出去的那个运动过程。

之前的深度学习方法大多是直接把视频当成一堆图片喂给卷积网络,或者简单地把多帧图像堆叠起来输入网络,让网络自己去学习时间信息。这个思路听起来合理,但实际效果不理想。网络确实能学到一些运动的痕迹,但学得很吃力,远远比不上手工设计的密集轨迹方法,那种方法专门针对运动轨迹做了精细的统计建模,是"对症下药"式的设计,而深度学习是"广撒网"式的自学,自学的效率明显更低。[page]

这就好比你想教一个从没打过篮球的人学会运球,一种办法是直接把他扔进球场,让他自己摸索规律,另一种办法是先给他讲清楚重心怎么放、手腕怎么用力,再让他练。两种办法最终都可能学会,但如果时间有限,后一种明确指导的方式往往进步更快。之前深度学习在视频领域的做法有点像前者,让网络自己从原始像素堆里悟出运动规律,而密集轨迹方法则是把运动信息直接、明确地喂给了统计模型。

如果这个问题不解决会怎样?深度学习在图片领域的成功没法自动迁移到视频领域,视频动作识别这个方向就会一直被手工特征统治,深度学习的通用性也会大打折扣,因为它连一个多加了时间维度的任务都搞不定。

两条流,一条看画面一条看运动

这篇论文提出的解法叫双流卷积网络。

> 双流卷积网络(Two-Stream Convolutional Networks)*:把一个视频动作识别任务拆成两个独立的卷积神经网络来分别处理,一个网络专门看画面内容,另一个网络专门看运动信息,最后把两个网络的判断结果融合起来。

具体来说,第一条流叫空间流,输入的是视频中的单帧静止图片,就跟普通的图片分类网络一样,负责识别画面里有什么物体、什么场景,比如网球场、游泳池、钢琴。这条流本质上就是一个图片分类器,甚至可以直接借用在ImageNet上训练好的网络权重来做初始化,因为背景和场景信息在图片分类任务和视频分类任务里是共通的。

第二条流叫时间流,这条流才是真正解决"动作"问题的关键。它的输入不是原始的视频帧,而是光流场。

> 光流场(Optical Flow)*:描述视频中相邻两帧之间每个像素点是如何移动的一种表示方式,本质上是一张记录了运动方向和速度的场。

光流场这个概念听起来抽象,但换个说法你就懂了。假设你在拍一个人挥手,相邻两帧之间,手部区域的像素点整体往一个方向移动了一段距离,光流就是把这种移动用箭头的形式记录下来,每个像素点都对应一个箭头,箭头指向它移动的方向,箭头长度代表移动的速度。把整段视频的光流场拿出来,你几乎不需要看到原始画面,光看这些箭头的运动模式,就能猜出画面里的人在做什么动作。挥拳的光流是集中向前的一团箭头,跑步的光流是双腿交替摆动形成的周期性箭头模式,拍手的光流是两只手从两侧向中间聚合的箭头。

这里作者做了一个关键的设计决策,光流不是直接喂给网络原始像素,而是先用传统的光流计算算法(比如作者用的是一种叫TV-L1的方法)把运动信息提前计算出来,转换成一张张类似图片的光流图,再把这些光流图输入到一个和空间流结构类似的卷积网络里。[page]

为什么要这么绕一圈,先用传统算法计算光流,而不是让网络直接从原始像素里自己学习运动信息?

这其实是这篇论文最核心的直觉。作者的想法是,运动信息的提取本身是一件相对成熟、已经有很好数学工具的事情,光流计算算法已经被研究了几十年,效果稳定可靠。硬要让一个卷积网络从零开始、从原始像素里自己摸索出运动的规律,是在浪费网络的学习能力去解决一个已经有更好现成工具的问题。不如站在巨人的肩膀上,先用传统方法把运动信息干净地提取出来,网络只需要专心学习"看着这些运动模式该怎么分类"这一件事就够了。

这就像做饭,你要做一道复杂的菜,可以选择从种菜、磨面粉开始一步步来,也可以直接去市场买现成的、已经处理好的食材,专心把精力放在烹饪技巧上。如果你非要从头开始种菜磨粉,最后菜做出来的味道可能反而更差,因为你在种菜这件不擅长的事情上耗费了太多本该用来琢磨调味的精力。作者选择了"买现成食材"的路线,用传统光流算法处理运动信息的提取,让网络专注在它真正擅长的模式识别和分类上。

论文里有一张很直观的图,展示的是几个动作视频对应的原始帧和光流场的对比。你能看到,原始帧里游泳的人和打高尔夫的人背景截然不同,一眼就能靠场景区分开,但光流图里看到的是完全不同的运动模式,游泳是双臂周期性划动的箭头,高尔夫是一次性挥杆的箭头轨迹。这两种信息是互补的,一个告诉你"在哪儿、有什么",一个告诉你"在做什么动作"。

如果只用空间流会怎样?实验数据给出了明确答案,仅用空间流的准确率是72.6%,比密集轨迹的87%还低了十几个点,说明单靠画面内容确实认不准动作。而仅用时间流呢,准确率反而达到了81%,已经比空间流高出不少,这恰恰印证了动作识别这件事,运动信息比画面内容更重要。而当两条流融合起来,准确率冲到了88%,第一次超过了密集轨迹的87%。

这是深度学习在视频动作识别上第一次赢过手工特征。放在2014年这个时间点看,这个分量不比AlexNet当年横空出世轻多少,只是它没有那么轰动,因为视频识别本身是个更细分的领域,聚光灯没那么强,但对研究方向的指引意义是同等重要的。

融合两条流,数据不够怎么补

除了双流架构本身,这篇论文还解决了另一个实际问题,数据不够用。

当时能用来训练视频动作识别模型的数据集规模都不大,像UCF101这样的常用数据集,总共也就一万多个视频片段,分成101个动作类别。对于要从零训练一个深层卷积网络来说,这个数据量是杯水车薪。图片分类领域的ImageNet有上百万张标注图片,视频数据集的规模连它的一个零头都不到。[page]

> UCF101*:一个包含101种人体动作类别、约13000个视频片段的公开数据集,是当时视频动作识别研究最常用的基准之一。

数据不够,网络很容易过拟合,也就是在训练集上表现很好,一到没见过的新视频就翻车。作者用了几个办法来缓解这个问题。

一个办法是多任务学习,简单说就是让网络同时在两个不同的数据集上训练,比如同时用UCF101和另一个数据集HMDB51来训练时间流网络,两个数据集的动作类别不完全重合,但共享底层的运动特征。这样网络能从更多样的数据里学到更泛化的运动模式,而不是死记硬背某一个数据集的特定分布。

另一个办法是用ImageNet上预训练好的模型来初始化空间流网络的权重,而不是从随机初始化开始训练。这个做法现在已经是深度学习里的标准操作了,但在2014年,把图片领域训练好的网络权重直接搬到视频任务里去做初始化,还是一个相对新颖的尝试,效果也确实不错,省去了从零学习底层视觉特征(比如边缘、纹理)的过程。

数据不够就想办法多路取材、借用外部经验,这个思路其实在生活里也很常见。你想学一门新语言,如果只靠课本上那点例句,学起来肯定磕磕绊绊,但如果你已经会一门语法结构相近的语言,很多规律可以直接迁移过来,学习效率会高很多。空间流借用ImageNet的预训练权重,本质上就是"我已经会看图片了,现在只是要在这个基础上多学一点视频里的场景知识",而不是从头学起。

如果不做这些数据层面的补救会怎样?论文里的对比实验显示,不用预训练、只用有限的视频数据从零训练,网络的表现会明显下降,过拟合问题严重,这也说明了小数据集场景下,合理利用外部知识迁移的重要性,这个教训后来被整个视频理解领域反复验证。

结果说话,两条流加起来能打多少分

来看一下论文里几个关键的实验数据对比。

| 方法 | UCF101准确率 |

| 密集轨迹(手工特征,2013年前最优) | 87.0% |

| 仅空间流(单帧图像) | 72.6% |

| 仅时间流(光流场) | 81.0% |

| **双流网络融合(本文方法)** | **88.0%** |

这张表格里最值得琢磨的对比,是空间流和时间流单独拿出来的差距。空间流只有72.6%,时间流有81%,中间差了8.4个百分点。这说明在动作识别这件事上,运动信息本身比静态画面信息更能说明问题,这也反过来验证了作者最初的判断,之前深度学习方法效果不好,很可能就是因为没有专门、干净地把运动信息提炼出来喂给网络,而是让网络在原始像素堆里囫囵吞枣地学。

再看融合之后的88%,比单纯用密集轨迹的87%高出一个百分点。这个提升数字看起来不大,但它的历史意义在于,这是深度学习第一次在视频动作识别这个具体任务上跑赢了统治多年的手工特征方法。一旦这道门被推开,后面的研究者就有了信心继续往这个方向深挖。[page]

这篇论文之后,视频理解怎么往前走的

双流网络的思路提出之后,很快引来了大量后续工作在它的基础上继续改进。

2015年,Wang等人发表了论文,提出把双流网络和轨迹思路结合起来,用轨迹约束的方式来采样和汇聚卷积特征,进一步把准确率往上推了一截,这个方法被称为TDD(Trajectory-Pooled Deep-Convolutional Descriptors)。

2016年,Feichtenhofer等人发表了论文,研究了双流网络里空间流和时间流应该在网络的哪一层进行融合效果最好,而不是像原始双流网络那样只在最后的分类结果层面简单融合,这项工作被称为卷积双流网络融合方法,把准确率进一步提升,也让研究者意识到,两条流之间的信息交互点选在哪里,直接影响最终效果。

2017年,Carreira和Zisserman(同样有Zisserman参与)发表了I3D网络的论文,把双流的思路和三维卷积结合起来,用三维卷积网络直接处理视频片段而不再依赖单独计算光流,同时提出了更大规模的Kinetics数据集来训练,这基本上标志着视频理解领域从双流架构逐渐过渡到端到端三维卷积架构的转折点。

从这条脉络可以看出,双流网络这篇论文虽然架构相对简单,两个独立网络加一个融合步骤,但它确立了一个重要的方向性认知,视频里的空间信息和时间信息值得分开建模、再融合,这个思路在后续几年里被反复验证、反复改进,直到三维卷积和后来的Transformer架构逐渐让这种"分而治之"的必要性有所降低,但双流网络提出的这个基本问题,如何有效捕捉视频中的时间维度信息,至今仍是视频理解研究绕不开的核心问题。

写在后面

读这篇论文时最触动我的一点,是作者没有执着于让网络"从原始像素里自己学会一切",而是坦然承认,有些问题传统方法已经解决得很好了,光流计算就是其中之一,深度学习不需要重新发明轮子,只需要把力气花在真正需要学习能力的地方。这种务实的态度,在今天这个动辄追求"端到端""大一统"的氛围里,反而显得有点不合时宜,但恰恰是这种务实,让双流网络在数据稀缺的2014年跑出了当时最好的成绩。

另一个值得琢磨的细节是,仅用光流的时间流网络准确率能到81%,比仅用画面的空间流高出8个多点。这说明人类识别动作时,可能也更依赖运动的"形状"而不是画面里的"内容",这多少有点反直觉,毕竟我们平时看视频认动作,好像是"看懂了画面里发生了什么",但数据说的是,运动轨迹本身携带的信息量可能比静态场景更大。这会不会也提示着,人类大脑里专门处理运动感知的那部分神经通路,可能真的和处理物体识别的通路是两条不同的路径,这个类比虽然是我自己联想的,但双流网络的架构设计和人类视觉系统里腹侧流、背侧流的分工,确实有种说不清的呼应感。[page]

Q&A

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

A:双流卷积网络是2014年由Simonyan和Zisserman提出的视频动作识别方法,用两个独立的卷积神经网络分别处理视频的静态画面(空间流)和运动信息(时间流,基于光流场),再把两者结果融合,第一次让深度学习在视频动作识别任务上超过了传统手工特征方法。

Q2:双流网络比之前的手工特征方法密集轨迹好在哪?

A:在UCF101数据集上,密集轨迹准确率约87%,双流网络融合后达到88%,首次让深度学习方法反超手工特征。更关键的是,双流网络把运动信息通过光流场单独建模,时间流单独准确率就有81%,说明专门处理运动信息比让网络自己从原始像素学运动效果好得多。

Q3:光流场为什么对识别动作这么重要?

A:光流场记录的是视频相邻帧之间每个像素点的运动方向和速度,直接反映了动作本身的运动模式,比如挥拳是集中向前的运动,跑步是周期性摆动。实验显示仅用光流场的时间流网络准确率达81%,比仅用静态画面的空间流(72.6%)高出8个多百分点,说明运动信息对判断动作类型比画面内容更关键。

责任编辑:hf009

免责声明:本文仅代表作者个人观点,与浙城网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如有问题,请联系我们!