Token导航 LogoToken导航

计算机如何识别视频中的动作

更新时间 2026-09-23来源 科技行者正文 4103字阅读约 13分钟

2014年之前,如果你问计算机视觉圈子里的人一个问题:让电脑看一段视频,判断视频里的人在做什么动作,最好的方法是什么,得到的答案很可能不是深度学习。

这事听起来有点反常。因为就在两年前,AlexNet已经在图像识别的战场上把传统方法打得溃不成军,深度学习一路高歌猛进。可是一旦把静态图片换成动态视频,风向突然就变了。

当时视频动作识别领域最强的手工特征方法叫做密集轨迹

密集轨迹*:一种手工设计的视频特征提取方法,通过跟踪视频中密集采样的点的运动轨迹来描述动作,不依赖神经网络学习

用密集轨迹加上一些改进技巧,能在标准测试集UCF-101上做到87%左右的准确率。而当时人们尝试直接把卷积神经网络搬到视频上,效果却始终不理想,准确率普遍卡在70%出头,跟手工特征差了十几个百分点,怎么调都追不上。

这就是Karen Simonyan和Andrew Zisserman在2014年发表那篇论文时面对的局面。他们后来因为VGGNet被大家熟知,而这篇讲视频动作识别的论文,其实和VGGNet差不多是同期的工作,出自同一个牛津的研究组。两边的工作都在琢磨同一件事:怎么把卷积网络用得更聪明。

问题出在哪:视频比图片多了什么

先说清楚为什么视频比图片难啃。

一张图片,网络只需要认出里面有什么东西,是猫是狗还是汽车。这本质上是个静态识别问题,物体的形状、颜色、纹理这些空间信息就够用了。

但视频里的动作不一样。同样一张画面,一个人举着手,你根本判断不出他是在挥手打招呼还是要扔东西。动作的关键从来不在某一帧长什么样,而在这一帧和下一帧之间发生了什么变化。

这就好比你给一个从没见过跳绳的人看一张照片,照片里有个人双脚离地、手里拿着绳子。单看这一帧,他可能会以为这人在跳舞,在做操,甚至在被绳子绊倒。只有把一连串画面串起来看,运动的轨迹才会告诉你答案:这是跳绳。如果只让机器看单帧图像去猜动作,那就相当于蒙住眼睛只摸到物体的一个截面,永远拼不出完整形状。

早期把CNN搬到视频上的做法,大多是简单粗暴地把多帧图像叠在一起塞进网络,或者在网络里加一点时间维度的卷积操作,期望网络自己从像素的变化里学出运动的规律。听起来合理,但实际效果很差。原因也不难理解:从原始像素直接学习运动模式,信息噪音太大,网络很难自己总结出"这是运动"这种抽象概念,更别提把运动和具体动作对应起来。

双流网络:一支眼睛看内容,一支眼睛看动作

Simonyan和Zisserman的解法,现在回头看思路很直接,但在当时是个巧妙的转身。

他们没有执着于让一个网络同时学会看内容和看运动,而是把这两件事彻底拆开,交给两个独立的卷积网络分别处理,最后再把两边的判断结果融合起来。这就是论文提出的双流网络

双流网络*:Two-Stream Network,由两个独立的卷积神经网络组成,一个处理静止画面识别场景和物体,一个处理运动信息识别动作,两者结果融合后输出最终判断

第一支网络叫空间流,输入是视频里的单帧RGB图像,做的事情跟普通图像分类差不多,负责认出画面里有什么场景、什么物体、什么人。这部分网络甚至可以直接借用在ImageNet上训练好的模型做初始化,因为识别"这是一个网球场"和识别"这是一只猫"本质上是同一类任务。

第二支网络叫时间流,这才是整篇论文真正的创新点。它的输入不是原始图像,而是光流场

光流场*:Optical Flow,描述图像中每个像素点在连续两帧之间的运动方向和速度的场,通常用两张图分别表示水平和垂直方向的位移

光流这个概念,简单说就是提前用传统算法算出每个像素在这一帧和下一帧之间往哪个方向移动了多远,把这个运动信息打包成一张图,再交给网络去学习。这样一来,时间流网络看到的输入本身就已经是纯粹的运动信息,不掺杂颜色纹理这些干扰,网络的任务被大大简化了,只需要学会从运动模式里认出动作类型。

这里的设计哲学值得多说一句。研究者没有让网络从零开始琢磨"什么是运动",而是先用成熟的传统算法把运动信息提炼出来,再把这个提炼好的结果喂给网络。这相当于把一部分本该由深度学习完成的工作,提前用手工方法做了预处理。

这就像你要教一个孩子做数学应用题,如果直接把一整段文字扔给他,让他自己从头分析出这是加法问题还是减法问题,效率会很低,还容易理解错方向。但如果你先帮他把关键数字和关系提取出来,列成一个清晰的算式框架,剩下的计算他自己就能做好。如果不做这一步预处理,直接把原始像素序列扔进网络指望它自动学出运动概念,前面提到的那些早期尝试已经证明了后果,准确率卡在70%左右上不去,因为网络要同时学会"什么是运动"和"这种运动对应什么动作"两件事,任务耦合太紧,学习效率大打折扣。

论文里还有一个细节处理得很讲究。光流本身可以有很多种计算方式,网络对单张光流图的感知能力有限,于是作者堆叠了连续10帧的光流信息作为时间流网络的输入,让网络能看到一段时间窗口内运动的连续变化,而不是孤立的一瞬间。

两支网络各自训练好之后,最后一步是融合。论文尝试了两种融合方式,一种是简单地把两个网络输出的分类概率做平均,另一种是训练一个支持向量机

支持向量机*:SVM,一种经典的机器学习分类算法,常用于在特征空间里找到最优的分类边界

把两支网络的输出特征拼起来重新分类。实验发现,用SVM融合的效果略好一些。

数据说话:双流到底强在哪

论文在两个标准数据集上做了测试,UCF-101和HMDB-51,这是当时动作识别领域最常用的两个基准测试集。

| 方法 | UCF-101准确率 | HMDB-51准确率 |

|---|---|---|

| 仅空间流 | 72.6% | 40.5% |

| 仅时间流 | 81.2% | 54.6% |

| **双流融合(SVM)** | **88.0%** | **59.4%** |

| 密集轨迹(当时最强手工特征) | 87.9% | 57.2% |

这张表最值得琢磨的是前三行的对比。

单独用空间流,也就是只看画面内容不看运动,UCF-101上只能做到72.6%。单独用时间流,也就是只看运动不看画面内容,反而能做到81.2%,比空间流高了将近9个百分点。这个结果本身就很说明问题:在判断一个动作是什么这件事上,运动信息比画面内容更关键。

而当两者融合之后,准确率跳到88.0%,比单独任何一支网络都高出至少6个百分点。这说明两支网络学到的东西确实是互补的,静态场景信息和动态运动信息各自贡献了一部分判断力,谁也替代不了谁。

更关键的是这个88.0%,终于超过了密集轨迹的87.9%,虽然只高出0.1个百分点,看起来微不足道,但这是深度学习方法第一次在视频动作识别这个任务上打平并略微超越手工特征方法。放在2014年这个时间点,这句话的分量不亚于两年前AlexNet在图像识别上掀起的那场革命,只是这次战场换成了视频,而且赢得没有那么干脆,只是勉强反超。

这种勉强反超其实也暴露了当时深度学习方法的局限,数据量不够、网络结构还比较原始,双流网络能追平手工特征已经很不容易,真正把差距拉开是后面几年的事情。

这篇论文之后发生了什么

双流网络提出之后,成了后续几年视频理解领域最重要的基础框架,很多工作都是在这个骨架上做改进。

2016年,Feichtenhofer等人发表了一篇论文,专门研究双流网络里两支网络应该在什么阶段融合信息效果最好,而不是像原论文那样等到最后才融合分类结果,这个方向后来被称为时空融合网络,把准确率进一步往上推。

2017年,DeepMind团队提出了I3D网络

I3D*:Inflated 3D ConvNet,把二维卷积网络的卷积核膨胀成三维,直接在时间和空间两个维度上同时做卷积,替代了双流网络里分开处理的思路

这篇论文延续了双流网络的双支路设计思想,但把每一支网络里的二维卷积全部换成三维卷积,让网络能够直接从原始视频片段里学习时空特征,同时还引入了大规模视频数据集Kinetics做预训练,最终把UCF-101上的准确率推到了98%以上,彻底把这个基准测试集的成绩带出了双流网络时代的水平。

这两篇后续工作有一个共同点,都没有推翻双流网络"分开处理空间信息和运动信息"这个核心思路,而是在这个框架基础上不断优化融合方式和特征提取能力。这也说明双流网络提出的这个拆分逻辑,抓住了视频理解问题里一个相当本质的矛盾。

写在后面

读这篇论文时,最让我意外的一个细节是双流网络里空间流部分几乎是直接借用了ImageNet预训练模型,这种做法在今天已经是家常便饭,但在2014年,把图像识别领域训练好的模型直接搬到视频任务的一个分支上,还是个挺聪明的省力做法,说明作者很清楚哪些问题是新的,哪些问题前人已经解决好了,没必要重新造轮子。

另一个值得说的地方是,时间流单独跑的成绩比空间流高了将近9个百分点,这个结果多少推翻了我原本的一个直觉。我以前总觉得判断一个人在做什么,画面内容里的场景和物体应该是很重要的线索,比如看到球场就该联想到打网球。但实验数据说明,运动本身的模式携带的信息量,比场景内容更直接地指向动作类别。这提醒我们,有时候看似次要的信息反而是解决问题的关键钥匙,前提是你得先把它从一堆干扰信息里剥离出来,单独喂给一个专门处理它的系统。

这篇论文也留下了一个没解决透的问题,就是光流本身依然依赖传统算法提前计算,整个系统没有做到完全端到端。这个问题要等到后面的三维卷积网络,才算真正被绕开。

Q&A

Q1:双流网络是什么?

A:双流网络是2014年由Simonyan和Zisserman提出的视频动作识别方法,由两个独立的卷积神经网络组成,一个处理单帧图像识别场景内容,一个处理光流场识别运动信息,两者融合后判断视频中的动作类别。

Q2:双流网络的准确率有多高?

A:在UCF-101数据集上,双流网络融合后达到88.0%的准确率,首次超过了当时最强的手工特征方法密集轨迹的87.9%,在HMDB-51数据集上达到59.4%。

Q3:双流网络后来被什么方法取代了?

A:2017年DeepMind提出的I3D网络延续了双流网络的双支路思想,但把二维卷积换成三维卷积直接学习时空特征,配合大规模数据集预训练,把UCF-101准确率推到98%以上。

文章标签AI资讯
资讯来源:由AI资讯编辑整理自互联网公开内容,版权归原作者所有,未经许可,不得转载。

继续浏览更多资讯

返回资讯目录

相关资讯

更多