您的当前位置:首页>热点 > 正文

速读:双流卷积网络:当深度学习第一次学会“看”动作

  • 2026-08-24 17:09:47 来源:科技行者

2014 年,深度学习已经在图片识别上打得所有人心服口服。AlexNet 横空出世两年,卷积网络在静态图像分类上把手工特征甩开了一大截,大家都觉得这套打法接下来该去视频领域继续摧城拔寨了。


【资料图】

结果没想到,视频动作识别这块硬骨头,深度学习啃了整整两年都没啃动。

当时最好的深度学习方法,准确率停留在 65% 左右。而一个叫做“密集轨迹”的手工特征方法,能做到 87.9%。

这个差距有多大?差了将近 23 个百分点。换句话说,同样识别 100 个动作视频,深度学习要比手工方法多认错 20 多个。这在图像分类领域是不可想象的差距,那时候卷积网络对手工特征已经是碾压式领先了,怎么到了视频这里,反而被倒过来碾压?

这就是本文要讲的这篇论文出现时的背景。论文的作者是 Karen Simonyan 和 Andrew Zisserman,两人来自牛津大学的 VGG 研究组。有意思的是,几个月后这两人又发表了另一篇论文,叫 VGGNet,后来成了图像分类领域的标杆网络之一。这说明当时这个组同时在两条战线上作战:一边死磕图片分类,一边琢磨视频到底该怎么喂给神经网络吃。

问题到底难在哪

要理解这篇论文的价值,得先搞明白视频和图片的根本区别。

图片是一张静态画面,卷积网络只需要学会认物体的形状、纹理、颜色组合就够了。而视频是一连串画面叠加时间,动作这个东西,本质上是“变化”,不是“形状”。你看一张挥手的静态照片,可能根本猜不出这个人是在打招呼还是在赶苍蝇,动作的意义藏在“时间上的变化”里,不在某一帧的画面里。

问题就来了:卷积网络天生擅长处理空间结构(一张图片里像素怎么排列),但它并不天生擅长处理时间结构(一段视频里画面怎么变化)。之前的深度学习方法大多是把视频简单地看成一堆连续的图片,硬塞给一个卷积网络,指望网络自己学会“运动”这个概念。

> 卷积网络*:一种擅长处理网格状数据(比如图片像素)的神经网络结构,通过滑动的“滤波器”提取局部特征,比如边缘、纹理、形状。

这就好比让一个只会看照片相册的人去判断一段舞蹈跳得好不好。他翻着相册里一张张剪影去猜测,肯定能看出个大概,比如这人穿了什么衣服站在什么姿势,但很难判断出这段舞蹈的节奏感和流畅度,因为那种感觉只存在于连续画面之间的关系里,不存在于某一张照片本身。如果不给他看动态的东西,他永远只能猜个大概,猜不准精细的动作类别。

之前的深度学习方法就有点像这个只能看照片相册的人。它们试图从一堆静态帧里硬挤出运动信息,效果自然打了折扣。

双流架构:把“看形状”和“看运动”彻底分开

这篇论文最核心的想法,说出来其实不复杂:**既然一个网络很难同时学会“认物体”和“认运动”,那就干脆用两个网络,一个专门负责认物体,一个专门负责认运动,最后把两边的判断结果加在一起。**

这两条“流”分别叫空间流和时间流。

> 空间流*:输入是视频中的单帧静态画面,专门负责识别画面里有什么物体、什么场景,类似传统的图片分类网络。

> 时间流*:输入不是原始画面,而是光流场,专门负责捕捉画面之间的运动信息。

这里最关键的设计是时间流吃的“食物”不是普通的视频帧,而是光流。

> 光流*:描述画面中每个像素点从上一帧到下一帧移动方向和速度的一种表示方法,本质上是一张记录了“运动方向和快慢”的图。

为什么不直接把连续几帧原始画面喂给网络,让它自己去学运动?因为这就是之前那些方法失败的原因,让网络在一堆混杂着形状信息和运动信息的原始像素里,自己去分离出“运动”这个概念,太难了。而光流场把这件事情提前算好了,它把背景形状、颜色这些无关的信息全部剥离掉,只留下“这个点往哪个方向动了多远”这一个纯粹的信号。相当于帮网络提前做了一次降噪和提纯。

这就像做菜前先把食材切好、去骨去皮,而不是把整只鸡连毛带内脏一起扔进锅里让厨师自己现场处理。如果不提前处理,厨师得先花大量精力在分辨哪些是能吃的肉、哪些是骨头和内脏上,能不能做出好菜全看厨师自己的悟性和耐心。提前处理好之后,厨师只需要专心把火候和调味做好就行,效率和成品质量都会高很多。光流对于时间流网络来说,就是那份已经处理好的食材。

论文里还专门做了个实验来验证光流的重要性。他们对比了两种运动输入方式,一种是光流场,一种是把原始的连续帧直接叠起来喂给网络(论文里叫“trajectory stacking”,轨迹堆叠)。结果显示,光流的效果明显更好,光流版本达到 73.9%,而轨迹堆叠版本只有 67.1% 左右。差了近 7 个百分点,这说明提前把运动信息提纯出来,这一步是真的有必要,不是可有可无的花活。

光流怎么塞进卷积网络

光流这个东西本身是有方向和速度的,包含水平方向的位移和垂直方向的位移两个分量。论文把这两个分量当成两张“图”,叠在一起塞给网络,这样网络的输入就变成了一个多通道的数据结构,跟普通图片的 RGB 三通道有点像,只是这里的“颜色”换成了“水平位移”和“垂直位移”。

单独看一帧的光流其实信息量有限,一个瞬间的运动方向很难判断这到底是什么动作。所以论文进一步把连续多帧的光流叠在一起,作为时间流网络的输入,这样网络能看到的不是某一瞬间的运动,而是一小段时间窗口内的运动轨迹。实验里他们测试了不同的叠加帧数,发现叠加 10 帧左右效果最好,再往上叠加帧数增加,提升就不明显了,说明运动信息在这个时间尺度上就已经基本表达充分了。

论文里还有一个细节挺值得说的,他们观察了网络第一层学到的卷积核长什么样。结果发现这些卷积核大多呈现出明显的方向性,像是专门用来检测某个特定方向上的运动模式。这不是人为设计出来的,是网络自己从光流数据里学出来的。这说明网络确实理解了光流场里最重要的信息就是方向性,这一点和研究者的设计初衷是吻合的,算是给这套架构的合理性提供了一个直观的证据。

两条流怎么合并

空间流和时间流分别训练完,各自会给出一个针对每个动作类别的概率打分。论文用的合并方式很直接,把两条流的打分做加权平均,或者训练一个简单的分类器(比如支持向量机)把两边的打分结合起来做最终判断。

> 支持向量机*:一种经典的机器学习分类算法,通过寻找一个最优的分界线(或分界面)把不同类别的数据点分开。

这里有个实验结果特别能说明问题。如果只用空间流做判断,准确率是 73%左右;如果只用时间流,准确率能到 83.7%;但两者结合起来,能冲到 88%。这说明两条流学到的信息确实是互补的,谁也替代不了谁。

只用空间流会怎样?网络看到一个人站在草地上,可能会猜这是“打高尔夫”或者“踢足球”,因为它只能靠场景和物体形状去联想,草地这个背景本身给出的信息有限,容易在相近场景的动作之间混淆。只用时间流又会怎样?网络能感觉到肢体在做出某种挥动的动作,但不知道这是在挥高尔夫球杆还是挥网球拍,因为它看不到场景和道具的样子。两者结合,网络才能同时知道“这是什么场景,这个人拿着什么东西”加上“这个动作的运动轨迹长什么样”,判断自然就准了。

这就像是破案的时候只有指纹没有监控录像,或者只有监控录像没有指纹,破案效率都会打折扣。指纹告诉你这个人是谁(对应空间流的“认物体”),监控录像告诉你他做了什么动作(对应时间流的“认动作”)。只有两者对上号,案子才能办得漂亮。如果警察非要坚持只用一种证据破案,效率一定会大打折扣,误判率也会升高。

数据不够怎么办:用图片数据集来“借力”

深度学习一个绕不开的老问题是需要大量标注数据才能训练好,而当时的视频动作数据集规模都不大,最大的也就几千段视频,跟图片分类动辄百万张的规模完全不能比。

> 过拟合*:模型在训练数据上表现很好,但在没见过的新数据上表现很差,通常是因为训练数据太少,模型“死记硬背”了训练集里的细节,而没有学到真正通用的规律。

数据不够,网络很容易过拟合,尤其是空间流网络。论文的解决办法是借用图片分类领域已经训练好的大型网络参数做初始化,也就是所谓的迁移学习思路,先在图片数据集上把网络训练成一个“懂形状认物体”的高手,再拿到视频数据集上做微调。

> 迁移学习*:把一个模型在某个任务(通常是数据量很大的任务)上学到的知识,迁移到另一个数据量较小的相关任务上,避免从零开始训练。

这就好比一个已经在别的城市开了十年出租车、对交通规则和路况判断都很熟练的司机,搬到新城市开车,他不需要从头学怎么开车、怎么看红绿灯,只需要花很短时间熟悉一下新城市的路名和几条主要道路就能上岗。如果非要让他从零学起,把驾照考试和交规都重新学一遍,那才是真正的资源浪费。空间流网络借助图片分类任务上已经学好的“认物体”能力,省下了大量重新学习基础视觉特征的成本,只需要专注学习和动作分类相关的那部分知识。

时间流网络因为输入是光流场,跟普通图片差异比较大,没法直接借用图片分类的预训练参数,所以论文对时间流用了一些数据增强手段,比如裁剪、多种数据集混合训练等方式来缓解数据不足的问题。

实验结果:一次翻身仗

最后来看数据。论文在两个当时主流的动作识别数据集上做了测试,一个叫 UCF-101,一个叫 HMDB-51。

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

| 手工特征(密集轨迹,此前最优) | 87.9% | 57.2% |

| 之前的深度学习方法 | 约65% | — |

| 仅空间流 | 73.0% | 40.5% |

| 仅时间流 | 83.7% | 54.6% |

| **双流网络(融合)** | **88.0%** | **59.4%** |

双流网络的结果不仅甩开了之前所有深度学习方法一大截,还第一次超过了统治了这个领域好几年的手工特征方法。这是深度学习在视频动作识别领域第一次真正打赢手工特征,在 2014 年,这个意义不亚于两年前 AlexNet 在图片分类上的突破。

这篇论文之后发生了什么

这套双流的思路影响非常直接,后面几年里几乎成了视频动作识别领域的标准范式,很多论文都是在这个骨架上做改进。

2016 年,Feichtenhofer 等人发表的论文提出了一种更巧妙的双流融合方式,不再是简单地在最后把两条流的打分相加,而是在网络中间层就让两条流互相交流信息,进一步把准确率往上推了一截。

2017 年,Carreira 和 Zisserman(还是这个 Zisserman)提出了 I3D 网络,把双流网络里的二维卷积换成了三维卷积,直接在网络内部同时处理空间和时间维度,并且借助一个新的更大规模的视频数据集 Kinetics 做预训练,把准确率进一步推高,这也成了后续很长时间里视频理解领域的重要基准模型。

写在后面

最让我觉得意外的是那张卷积核可视化图。一个网络在完全没有人告诉它“运动有方向性”这件事的情况下,自己从光流数据里学出了一堆方向性滤波器。这说明深度学习真正厉害的地方不是它记住了多少规则,而是它能从数据里反推出规则背后的结构。这和人类小孩学走路有点像,没人给他讲牛顿力学,他自己摸索几百次就掌握了平衡的规律。

另外一个让我反复琢磨的地方是,这篇论文的核心思路其实是一种“分而治之”,承认一个网络同时学两件差异很大的事情很难,那就拆成两个网络分别学。这个思路后来在很多领域都能看到影子,比如多模态模型里把文本和图像分开编码再融合,本质上都是同一个哲学。什么时候该拆,什么时候该合,可能是深度学习架构设计里一个值得反复问的问题。

Q&A

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

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

Q2:为什么双流网络要用光流而不是直接用视频帧?

A:因为光流已经把运动的方向和速度提前提取出来了,剔除了背景和形状这些无关信息,让时间流网络能专注学习运动模式,而不需要自己从原始像素里费力分离出运动信息,实验证明这样比直接堆叠原始帧效果好很多。

Q3:双流网络对后续研究有什么影响?

A:这套思路成了视频理解领域很长一段时间的标准范式,2016 年 Feichtenhofer 等人改进了两条流之间的融合方式,2017 年 Carreira 和 Zisserman 又提出了 I3D 网络,把二维卷积换成三维卷积并结合大规模视频数据集,进一步推动了整个领域的发展。

标签: 算法 动作 双流 深度学习 神经网络

推荐阅读

速读:双流卷积网络:当深度学习第一次学会“看”动作

双流卷积网络:当深度学习第一次学会“看”动作,算法,动作,双流,深度学

措利斯:我沿用了在布鲁日时的踢法,我现在练了非常多定位球

措利斯:我沿用了在布鲁日时的踢法,我现在练了非常多定位球,角球,措利

辽篮更视频!韩德君讲话鼓舞青训展担当,并带全队吃大餐!

辽篮更视频!韩德君讲话鼓舞青训展担当,并带全队吃大餐!,梅奥,青训,

8月24日通信设备板块跌幅达3%

8月24日13点53分,通信设备板块指数报22673 45点,跌幅达3%,成交1423

猜您喜欢

【版权及免责声明】凡注明"转载来源"的作品,均转载自其它媒体,转载目的在于传递更多的信息,并不代表本网赞同其观点和对其真实性负责。亚洲网倡导尊重与保护知识产权,如发现本站文章存在内容、版权或其它问题,烦请联系。 联系方式:8 86 239 5@qq.com,我们将及时沟通与处理。