Token导航 LogoToken导航

双流网络如何解决视频动作识别中双流信息冲突

更新时间 2026-09-30来源 科技行者正文 4666字阅读约 15分钟

2014年发生了一件挺让人意外的事。

深度学习那时候已经在图像识别上打得手工特征方法节节败退,AlexNet在2012年一战成名之后,卷积神经网络几乎成了视觉任务的标配答案。但奇怪的是,到了视频动作识别这个领域,深度学习却一直打不过一个叫做"密集轨迹"的老派方法。

不是打不过一点点。

**在当时最权威的UCF-101数据集上,手工特征方法的准确率能达到85%以上,而深度学习方法只能在70%上下打转。**

十五个百分点的差距,这在机器学习圈子里几乎是鸿沟级别的差距。要知道,同一时期图像分类领域深度学习已经把传统方法甩开了一大截,怎么到了视频这里反而掉链子了?

这就是Karen Simonyan和Andrew Zisserman在2014年发表那篇论文时面对的局面。他们俩来自牛津大学的VGG研究组,没错,就是那个几个月后发布了VGGNet、后来成为图像分类标准架构之一的团队。两篇论文差不多是同期的工作,一篇解决图片,一篇解决视频,出自同一批人手上,这个巧合本身就挺有意思。

视频比图片难在哪

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

图片识别本质上是个静态问题,一张照片里有什么东西,神经网络看纹理、看形状、看颜色分布,就能给出答案。但视频不一样,视频的核心信息藏在时间维度里。

一个人站着不动和一个人正在挥拳,如果只看单帧画面,两张图可能长得差不多。真正区分"站立"和"挥拳"的信息,藏在这一帧和下一帧之间发生了什么变化。

> 光流*:描述图像中像素点在连续帧之间移动方向和速度的一种表示方法,简单说就是把"什么东西往哪儿动了"这件事用图像的形式画出来。

早期研究者试过直接把好几帧图像堆叠起来扔给卷积网络,让网络自己去学时间信息。结果并不理想,网络学到的运动信息很浅,甚至不如手工设计的轨迹特征。

问题出在哪?卷积网络天生擅长的是空间模式识别,边缘、纹理、局部结构,这些东西训练起来得心应手。但要让同一套网络参数同时兼顾"这是什么"和"这个东西怎么动"两件事,网络会很纠结,学出来的特征两头不到岸。

双流网络:把两件事分给两个人干

Simonyan和Zisserman想的办法说起来挺朴素,但效果拔群。

**既然一个网络同时学外观和运动会顾此失彼,那就干脆用两个独立的网络,一个专门看外观,一个专门看运动,最后把两边的判断结果加权融合起来。**

这就是论文标题里"双流"的意思。

> 双流网络*:由两个各自独立训练的卷积神经网络组成的架构,一路叫空间流,处理单帧的静态图像信息;另一路叫时间流,处理连续帧之间的光流信息,两路网络最后做分数融合得出最终判断。

空间流这一路很好理解,把视频里随便抽出的一帧当成普通图片扔进卷积网络,让它去判断"这张图里有什么",背景是什么场景,物体的形状颜色是什么样。这一路的网络结构基本照搬了当时图像分类领域已经验证过的架构。

时间流是这篇论文真正的创新点。这一路网络不看原始画面,它看的是连续多帧之间算出来的光流场。具体做法是取相邻的几帧(论文里用的是10帧),两两之间算出水平和垂直方向的位移量,堆叠成一个多通道的"运动图像",喂给另一个卷积网络去学习。

这里有个很关键的设计选择。研究者没有让网络直接吃原始视频帧去学运动,而是先用传统的光流算法把运动信息提取出来,再交给网络处理。这等于是把"如何检测运动"这个子问题提前用成熟的经典算法解决掉,网络只需要在光流的基础上学会"什么样的运动模式对应什么动作"。

这就好比你要教一个新手厨师做菜,你有两个选择。一种是把生鲜食材直接扔给他,让他自己去学怎么切配处理再炒制,这个过程漫长且容易学出一堆坏习惯。另一种是先让专业的备菜师傅把食材洗净切好装盘,厨师只需要专注学炒制的火候和调味。双流网络里的时间流走的就是第二条路,先用光流算法完成"备菜"这道预处理工序,卷积网络只需要专心学"这个动作模式意味着什么"。如果不做这层预处理,直接让网络从原始像素里挖运动规律,结果会退化成前面说的那种效果不佳的堆叠帧方案,网络会被空间纹理信息带偏,很难专注学到干净的时间动态。

论文里还有个细节值得单独说一下。研究者发现,仅仅给网络看瞬时的光流帧对(也就是任意两帧之间的位移),效果不如给网络看一小段时间窗口内累积起来的光流轨迹。他们把这种改进叫做"轨迹叠加",本质上是让网络能看到更长时间尺度上的运动连贯性,而不只是相邻两帧的瞬间抽动。这个细节反映出一个道理,动作识别真正依赖的不是单一时刻的速度,而是一段时间里动作展开的整体轨迹。

融合的方式:谁说了算

两路网络各自给出预测结果之后,怎么把这两个结果合并成最终答案?

论文尝试了两种融合策略,一种是直接对两路网络输出的分类分数做加权平均,另一种是训练一个支持向量机把两路的分数当成新的输入特征再做一次分类。

实验结果显示,用支持向量机做融合的效果略好一些,但差距不算特别悬殊。这说明两路网络本身给出的信息已经足够互补,融合方式的选择只是锦上添花,真正决定性能的是"分开学习再融合"这个大框架本身。

**实验数据非常直接地证明了双流架构的价值:如果只用空间流单独跑,UCF-101上的准确率是73%,如果只用时间流单独跑,准确率是83.7%,而两者融合之后,准确率跳到了88.0%。**

这组数字挺耐人寻味。单独看时间流比空间流表现更好,这本身已经推翻了很多人过去的直觉,大家一般认为"这是什么东西"比"这东西怎么动"更重要,但在动作识别任务里,运动信息本身的判别力反而更强。而两路结合之后又比单独任何一路都高出至少4个百分点,说明外观信息和运动信息确实提供了彼此都覆盖不到的判别线索,谁也不能替代谁。

如果只依赖外观信息会怎样?想象一段视频里一个人张开双臂,如果没有运动信息,模型很难分清这是"拥抱"还是"做体操张开手臂",背景和人的外观可能极其相似,唯一能区分的就是接下来手臂往哪个方向移动、移动速度多快。这也解释了为什么时间流单独跑的分数会比空间流高,因为很多动作类别在静态画面上根本没法区分,动作的本质就写在运动本身里。

数据不够怎么办:迁移学习登场

深度学习有个众所周知的软肋,数据量不够时很容易过拟合。而当时可用的视频动作识别数据集规模都不大,UCF-101满打满算也就一万多个片段,这对于训练一个深层卷积网络来说是远远不够的。

研究者用了一个当时已经在图像领域证明有效的招数,迁移学习。

> 迁移学习*:先在数据量庞大的任务上训练一个网络,再把训练好的参数拿到数据量较小的目标任务上继续微调,利用大数据集学到的通用特征来弥补小数据集的不足。

空间流网络的做法是先在ImageNet这个包含上百万张标注图片的大型图像数据库上预训练,再用视频动作数据集做微调。这个思路顺理成章,因为空间流处理的就是普通的静态图像,ImageNet的图像知识天然可以迁移过来。

时间流没法直接用ImageNet预训练,因为光流图像和普通照片长得完全不一样。研究者的解决办法是把不同的视频动作数据集混合起来一起训练,用数据集之间的互补性来扩充有效训练样本量。他们还用了一些数据增强手段,比如对训练样本做裁剪和镜像翻转,人为制造出更多变体来喂给网络。

这套组合拳打下来,效果立竿见影。用了预训练之后,空间流网络的准确率从没有预训练时的直接训练结果大幅提升,证明了在小数据集上,"借用"别处学到的知识确实能顶大用。这就跟一个刚毕业没什么工作经验的新人去应聘,如果他在校期间做过大量相关的实习和项目积累了通用技能,上岗后适应新岗位的速度肯定比一个完全零经验的人快得多。如果没有这层预训练铺底,直接拿小数据集从零开始训练深层网络,很可能网络还没学会什么有效的特征,就已经把训练数据背得滚瓜烂熟,遇到新样本立马露怯。

历史节点上的意义

这篇论文发表的时间点,2014年,放在整个深度学习发展史里看,是个值得标出来的坐标。

在这篇论文之前,深度学习在图像分类上已经证明了自己,但在视频这个更复杂的时空联合任务上,一直是传统手工特征方法说了算,最典型的代表就是密集轨迹特征方法,它通过追踪视频里密集分布的关键点轨迹,手工设计描述子来刻画运动模式,在很长一段时间里是这个领域的性能标杆。

**双流网络的88.0%准确率,是深度学习方法第一次在标准的大规模视频动作识别基准上超越了当时最好的手工特征方法。**

这句话放在2014年的语境里,分量不亚于两年前AlexNet在图像分类上一战成名的那个瞬间。区别只是这次的战场从静态图片换成了动态视频,胜负逆转来得晚了两年,但终究还是逆转了。

这个突破没有停在原地。三年后,Carreira和Zisserman(还是同一个人)在2017年提出了I3D网络,把双流网络里的二维卷积升级成三维卷积,让网络能够直接在三维时空体块上做卷积运算,不再需要显式计算光流,这套架构在Kinetics数据集上把准确率又往上推了一大截。稍晚一些,Feichtenhofer等人在2016年提出了时空残差网络的改进方案,把空间流和时间流之间加入了跨流的信息交互机制,让两路网络在训练过程中就能互相借力,而不是等到最后一步才简单地做分数融合。这两个后续工作,一个解决了双流网络依赖手工光流计算的效率瓶颈,另一个解决了双流网络两路信息交流太晚的局限,都是站在双流网络这个原始框架上做的针对性改良。

写在后面

读这篇论文最触动我的地方,不是双流网络这个架构本身有多精巧,而是那组"时间流单独跑比空间流单独跑还要高10个百分点"的实验数据。这个结果某种程度上颠覆了一种朴素的直觉,很多人下意识觉得"识别出画面里有什么"应该是识别"这是什么动作"的前提和基础,但实际情况是,运动信息本身就足够强大,甚至比静态外观更能直接命中动作分类的答案。

这让我想起认知科学里的一个说法,人眼视觉系统里专门存在处理运动信息的通路,跟处理静态形状颜色的通路是分开的,两条通路在大脑皮层的不同区域加工后再汇总整合。双流网络的架构某种意义上是无意中复现了这个生物学上早就存在的分工模式,先各自独立处理,再统一整合。研究者未必是刻意模仿视觉神经科学,但殊途同归这件事本身挺值得琢磨。

这篇论文也留下一个没解决的问题。双流网络里空间流和时间流从头到尾都是分开训练的,两者只在最后一步做分数融合,这意味着网络在学习过程中完全没有机会让两种信息互相校正互相启发。后来的工作已经开始往这个方向修补,但如果两条通路能在训练的早期阶段就开始对话,会不会学到更精细的联合表示?这个问题在当年是留白,后来的研究者们花了不少功夫去填这个坑,而这条填坑之路本身,可能比双流网络这个起点还要精彩。

Q&A

Q1:双流网络是什么?

A:双流网络是2014年由Simonyan和Zisserman提出的视频动作识别架构,由两个独立的卷积神经网络组成,一个处理单帧静态图像(空间流),一个处理连续帧之间的光流信息(时间流),最后融合两路预测结果得出动作分类答案。

Q2:双流网络为什么能超过传统手工特征方法?

A:因为它把"识别外观"和"识别运动"这两个不同性质的任务分给两个专门的网络分别处理,避免了单一网络顾此失彼的问题,最终在UCF-101数据集上达到88.0%的准确率,首次超越了当时最强的密集轨迹手工特征方法。

Q3:时间流为什么要用光流而不是直接用原始视频帧?

A:因为直接让网络从原始像素里学运动规律容易被空间纹理信息带偏,效果不佳。先用传统光流算法提取出干净的运动信息,网络只需要专注学习运动模式和动作类别的对应关系,这样效果明显更好。

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

继续浏览更多资讯

返回资讯目录

相关资讯

更多