视频里藏着两条线索,AI 学会了同时看两条
2014 年,如果你去问任何一个做计算机视觉的研究者,深度学习能不能识别视频里的动作,大概率会得到一个摇头。这听起来有点反直觉。毕竟就在两年前,AlexNet 已经在图像识别上把传统方法打得没有还手之力,深度学习的旗号已经插满了图像领域的山头。可是一旦换成视频,情况完全反过来了。当时最强的视频动作识别方法,叫做密集轨迹 密集轨迹*一种手工设计的视频特征提取方法,通过追踪视频里密集分布的采样点在时间上的运动轨迹,再手工计算这些轨迹周围的图像和运动统计特征,拼起来判断视频里发生了什么动作。密集轨迹在标准测试集上能做到接近 88% 的准确率,而当时人们尝试过的深度学习方法,只能做到 65% 左右。这个差距有多大?意味着每识别 5 个动作,深度学习就要比手工方法多认错超过一个。整整 20 个百分点的落差,这在当时几乎被当成了一个定论:深度学习不适合处理视频里的运动信息。牛津大学的 Karen Simonyan 和 Andrew Zisserman 就是在这个背景下,拿出了一篇论文,题目叫《用于视频动作识别的双流卷积网络》。这篇论文做的事情,说出来你可能会觉得简单得不可思议:他们没有去发明什么全新的网络结构,而是想明白了一件事,视频里其实藏着两种完全不同性质的信息,过去的深度学习方法,一直在用同一双眼睛看这两种信息,而这双眼睛,其实只擅长看一种。视频里到底藏着什么,为什么一个网络看不懂先说说视频到底是什么。一段视频,说到底就是一帧一帧的静止图片连续播放。你可能会想,那深度学习既然能看懂单张图片,把每一帧丢进去识别不就行了?问题就出在这里。单张图片能告诉你的,是这是什么。一个人站着,一只手举着,这可能是在打招呼,也可能是要打人,也可能只是伸懒腰。图片本身回答不了这个问题,因为动作的本质不在某一帧里,而在帧与帧之间的变化里。这就是视频识别真正难的地方,你需要的不只是空间信息,更需要时间信息,也就是画面是怎么随着时间变化的。在这篇论文之前,大部分深度学习方法的思路是,把连续几帧图像叠在一起,当成一个厚一点的图片扔进卷积网络,让网络自己去学习帧与帧之间的关系。听起来挺合理,但效果很差,因为普通的卷积网络天生是为了识别静态图案设计的,边缘、纹理、色块,这些东西它很擅长。可是运动这件事,不是靠堆叠图像就能学出来的,运动的本质是位移,是速度,是方向,这些概念在卷积网络的视野里根本不存在合适的表达方式。这就好比让一个只会看照片的人去判断一场足球比赛谁进球了。你把十张连续的照片摆在他面前,他能看出球在不同位置,但要他从静态画面里感觉出球飞行的速度和轨迹,这几乎是在为难他。他缺的不是眼力,缺的是一种专门针对运动设计的感知方式。如果不给他补上这一课,他永远只能靠猜。拆成两条流,一条看形状一条看运动Simonyan 和 Zisserman 的思路是,既然一个网络同时处理空间信息和时间信息效果不好,那就干脆拆成两个网络,一个专门负责空间,一个专门负责时间,最后把两边的判断结果合并起来。这就是论文标题里双流的来源。 双流卷积网络*把视频识别任务拆分成两条独立的卷积神经网络处理通道,一条处理静态画面信息,一条处理运动信息,两条通道各自输出预测结果,最后融合成最终判断。第一条流叫空间流,输入很简单,就是视频里随便抽出的一帧静止图片。它的任务和普通的图片分类网络没什么区别,负责识别画面里有什么物体、什么场景、什么姿态。比如画面里有游泳池,有个人在挥臂,这条流基本上能判断出这可能是游泳。第二条流叫时间流,这才是整篇论文真正的巧思所在。它的输入不是图片,而是光流场 光流场*描述视频画面中每一个像素点从上一帧到下一帧移动方向和移动距离的一种表示方式,可以理解成给画面里每个点画一个运动箭头。光流场这个概念不是这篇论文发明的,在传统计算机视觉里早就有,通常用来做视频压缩、机器人导航之类的任务。但把光流场喂给卷积神经网络,让深度学习直接从运动轨迹里学特征,这是这篇论文的关键一步。具体做法是,先用传统算法算出视频里连续几帧之间每个像素的位移,把水平方向的位移和竖直方向的位移分别存成两张图,这两张图不是普通图片,每个像素的数值代表的不是颜色,而是这个点往哪个方向移动了多远。把连续 10 帧算出来的这些位移图叠在一起,喂给一个和空间流结构类似的卷积网络,让它单独学习运动这件事。这个设计背后的道理是,把不同性质的信息交给不同的专家处理,比让一个人同时兼顾两件事效果好得多。想象一家餐厅,主厨既要炒菜又要记账,结果往往是菜炒得一般,账也记得马虎。但如果分成两个人,一个专心炒菜,一个专心记账,两个人各自做到极致,最后菜好账也清楚。空间流就是那个专心看画面的厨师,时间流就是那个专心看运动轨迹的会计,他们互不干扰,各自把自己擅长的事情做到最好,最后再把结果汇总。如果硬要一个网络同时干两件事,就像逼着那位主厨一边颠勺一边记账,难免两头顾不上。论文里还有一个细节值得说一说。作者尝试了两种计算光流的方式,一种是让画面上所有点的运动都被平等对待,另一种是先把摄像机本身的移动去掉,只保留画面里物体相对于摄像机的运动。后者的效果明显更好,因为很多视频是手持拍摄或者镜头本身在移动的,如果不把镜头晃动这个噪音过滤掉,时间流学到的很可能不是动作本身,而是摄像师的手抖。这提醒我们,看似简单的运动信息,其实里面藏着好几层需要精心剥离的成分。数据不够用,那就借别处的数据来凑深度学习这套东西,吃的是数据,而 2014 年能用来训练视频动作识别模型的数据集非常小,像 UCF-101 这样的标准测试集,总共也就一万多段视频,分成 101 个动作类别。这个规模放到今天简单的图片分类任务里都算小,更别说要训练两个卷积网络。数据不够,直接训练容易过拟合 过拟合*模型在训练数据上表现很好,但因为训练数据太少或模型太复杂,模型记住了训练数据里的细节和噪音,导致在新数据上表现很差的现象。Simonyan 和 Zisserman 想了两招来解决这个问题。第一招是把空间流网络放到一个更大的图片数据集上先预训练一遍,这个数据集就是著名的 ImageNet,里面有上百万张标注好的图片。这样空间流在正式看视频之前,已经从海量静态图片里学会了怎么识别物体和场景的基本套路,再拿相对小得多的视频数据去微调,效果自然好得多。这一招现在回头看是常识,但在当时的语境下,能想到用图片数据集去支援视频任务,说明作者已经意识到,空间流本质上做的事情和普通图片分类是一回事,完全可以借用图片领域已经积累的海量数据和经验。第二招是找到另一个数据规模更大的视频数据集,叫 Sports-1M,里面有一百万段体育视频,涉及 487 种运动类别。作者先在这个更大的数据集上训练网络,再迁移到目标数据集上做微调,这种做法叫多任务学习 多任务学习*让一个模型同时在多个相关任务或数据集上训练,借助任务之间的相关性,提升模型在每个任务上的表现,尤其在某个任务数据量不足时特别有用。这两招放在一起,本质上是同一个逻辑:数据不够,就去借。借的方式可以是借图片数据给空间流用,也可以是借更大的视频数据集给整体训练用。这就有点像准备一场重要考试,如果你手头的真题太少,一种办法是先做大量相关学科的基础题打底子,再回来做真题,另一种办法是找一份题量更大、难度相近的模拟卷先练手,最后再攻克目标考试的真题。两种办法都是在数据稀缺的情况下,想办法把经验从别处引进来。如果没有这两招,单靠一万多段视频去从零训练两个深度网络,大概率会训练出一个只会背题却不会举一反三的模型,遇到测试集里没见过的画面立刻露馅。两条流合起来,效果超过了手工特征最后到了见真章的时刻。空间流单独跑,在 UCF-101 上准确率是 72.6%。时间流单独跑,能达到 81.0%。这个结果本身已经说明,运动信息对识别动作的贡献,比单纯看画面外观还要大,这也印证了前面说的,动作的本质藏在时间变化里,不在某一帧的静态内容里。把两条流的预测结果做加权融合以后,准确率来到了 88.0%,这个数字第一次追平甚至略微超过了当时最好的手工特征方法。|方法|准确率||---|---||空间流单独|72.6%||时间流单独|81.0%||密集轨迹(手工特征基准)|约 88%||**双流网络融合**|**88.0%**|这个结果放在 2014 年的分量,不亚于两年前 AlexNet 在图片识别上的横空出世。区别在于,AlexNet 证明了深度学习在图片上可以碾压传统方法,而双流网络证明的是,深度学习在视频上终于追上了传统方法,而且找到了正确的路径,接下来只会越走越远。如果只用空间流会怎样?准确率停留在 72.6%,比双流融合整整低了 15 个百分点。这 15 个点意味着什么,意味着如果只靠看画面内容判断动作,每识别接近 7 个视频就要错认接近 1 个,而这个错误本可以靠给网络补一双看运动的眼睛来避免。有个细节特别值得拿出来说。Simonyan 和 Zisserman 当时同属牛津大学同一个研究组,几个月后,这个组又发表了另一篇后来同样载入历史的论文,VGGNet,提出了那个后来被无数人当作基础模型使用的网络结构。这两篇论文几乎是同期完成的工作,一篇解决了视频运动信息该怎么表示的问题,一篇把图片卷积网络的深度和规整性推到了一个新高度。这不是巧合,这说明当时这个研究组正处在对卷积网络理解突飞猛进的阶段,不同方向的思考互相印证互相促进。这条思路后来被怎样接着走双流网络这个想法,后来被证明不是一个孤立的巧思,而是打开了一整条研究路径。2016 年,Feichtenhofer、Pinz 和 Wildes 发表了《卷积双流网络融合用于视频动作识别》,他们指出原始双流网络的两条流是完全独立训练、最后简单加权融合的,这样空间流和时间流之间没有任何交流,信息融合发生得太晚太浅。他们提出在网络中间层就让两条流互相对话,提前融合特征,而不是等到最后一步才拼接结果,这个改进把准确率进一步推高。2017 年,Carreira 和 Zisserman(还是同一个 Zisserman)发表了《Quo Vadis 动作识别?一个新模型和 Kinetics 数据集》,提出了 I3D 模型,把双流网络里的 2D 卷积换成了 3D 卷积,直接在时间维度上做卷积运算,不再需要单独计算光流,同时配合他们发布的大规模数据集 Kinetics,把整个领域的训练数据规模又往上推了一个量级。这篇论文里依然保留了双流的思路,只是把时间流这个角色用 3D 卷积重新实现了一遍,说明双流的核心思想,分开处理静态外观和动态变化,在三年后依然被认为是对的,只是具体的实现方式在不断进化。这条从 2014 年延伸出去的路径,一直影响到后来的视频理解模型设计,核心逻辑始终没有变过:视频里的信息天然分成两种性质,一种是静态的外观,一种是动态的变化,想让模型学好,就得让它有能力分别捕捉这两种信息,而不是囫囵吞枣地混在一起处理。写在后面读这篇论文最触动我的地方,不是双流这个结构本身有多复杂,恰恰相反,是它简单到几乎让人怀疑,这么直接的想法,之前怎么没人试过。后来查资料才明白,光流场这个概念在传统视觉里已经用了几十年,真正的难点从来不是想不到,而是敢不敢把一个老古董技术,原封不动地塞进当时还很新潮的卷积网络里,让两种完全不同时代的技术手拉手工作。这种把旧工具和新框架强行拼接、居然拼出了突破的做法,让我想起很多工程史上的创新,往往不是凭空造出一个新零件,而是发现两个原本各自存在的零件,可以用一种没人试过的方式装在一起。有一个问题这篇论文没有回答,后来的研究者也还在持续追问:如果光流这种运动表示本身就是有损的、不完美的,那网络学到的运动理解到底是真的理解了运动,还是只是学会了利用光流算法本身的某些统计规律?这个问题放到今天的视频大模型身上,依然值得继续问下去。QAQ1双流卷积网络是什么A双流卷积网络是 2014 年由牛津大学 Simonyan 和 Zisserman 提出的视频动作识别方法,把视频识别拆分成空间流和时间流两个独立的卷积神经网络,空间流处理静态画面识别物体和场景,时间流处理光流场识别运动信息,最后融合两者结果做出判断。Q2双流网络的准确率和传统手工特征方法比怎么样A在 UCF-101 数据集上,双流网络融合后达到 88.0% 的准确率,首次追平甚至略微超过了当时最强的手工特征方法密集轨迹(约 88%),而在此之前的深度学习方法只能做到 65% 左右,差距达 20 多个百分点。Q3双流网络后来被哪些研究继续改进A2016 年 Feichtenhofer 等人提出卷积双流融合网络,让两条流在中间层就开始交流特征而不是最后简单加权。2017 年 Carreira 和 Zisserman 提出 I3D 模型,用 3D 卷积直接处理时间维度,配合新发布的 Kinetics 大规模数据集,进一步推动了视频识别的发展。

相关新闻

Claude代码命令实战指南:10个提升AI编程效率的核心技巧

Claude代码命令实战指南:10个提升AI编程效率的核心技巧

1. 引言:为什么Claude的代码命令值得深挖?如果你和我一样,日常开发、调试或者处理文本时,Claude已经成了离不开的助手。我们最熟悉的,可能就是那个聊天框,输入问题,等待它生成代码、解释逻辑或者…

2026/10/13 8:47:31 阅读更多 →
用一段视频,换出一个可以自由走动的世界

用一段视频,换出一个可以自由走动的世界

你有没有试过这样的场景:刷到一段朋友随手拍的旅行视频,镜头晃晃悠悠地扫过一座古镇的石板路,你突然特别想知道,如果镜头往左边多拍一点、往前再走十步,会看到什么。可惜视频已经拍完了,那个"如果&quo…

2026/10/14 12:34:04 阅读更多 →
三步告别绿幕:免费AI背景移除插件让你的人像抠图秒变专业

三步告别绿幕:免费AI背景移除插件让你的人像抠图秒变专业

三步告别绿幕:免费AI背景移除插件让你的人像抠图秒变专业 【免费下载链接】obs-backgroundremoval An OBS plugin for removing background in portrait images (video), making it easy to replace the background when recording or streaming. 项目地址: https…

2026/10/11 7:46:40 阅读更多 →

最新新闻

东方财富行情数据接口抓取实战:从XHR响应到SQLite增量存储

东方财富行情数据接口抓取实战:从XHR响应到SQLite增量存储

做数据的人,十个里有八个都动过爬东方财富网的心思。这个系列第二篇,我不再抓静态页面,而是直接抓行情数据接口。上一篇跑通了最基础的页面解析,但那只是开胃菜:页面源码里看不到的几个关键字段——最新价、涨跌幅、成…

2026/10/14 17:37:01 阅读更多 →
B7-H3抗体:一种在肿瘤免疫治疗中兼具双重调控潜力的新兴靶点如何被研究?

B7-H3抗体:一种在肿瘤免疫治疗中兼具双重调控潜力的新兴靶点如何被研究?

B7-H3(又称CD276)是B7免疫共信号家族中的一种I型跨膜蛋白,在正常组织中表达有限,但在黑色素瘤、肺癌、前列腺癌等多种恶性肿瘤表面过表达。其确切功能机制尚存争议:早期研究支持其作为共刺激受体促进T细胞活化&#xf…

2026/10/14 17:37:01 阅读更多 →
Echarts折线图区域高亮交互实现指南

Echarts折线图区域高亮交互实现指南

1. 项目概述:让折线图真正“活”起来的交互细节Echarts 折线图区域鼠标事件高亮——这八个字背后,藏着一个被大量业务系统长期忽视却极其关键的用户体验断点。我做过不下二十个数据可视化项目,从某高校实验室的科研数据看板,到某公…

2026/10/14 17:37:01 阅读更多 →
压裂方案毕设头秃?这些 AI 工具可以这样搭着用 ✨

压裂方案毕设头秃?这些 AI 工具可以这样搭着用 ✨

先交代一下背景:我是石油工程方向的,毕业设计做的是某低渗透砂岩油藏水力压裂工艺方案设计。这类题目在工学 / 矿业类 / 石油工程专业里很典型——要读大量区块地质和压裂文献,要写开题报告和任务书,要做裂缝参数计算、施工参数优…

2026/10/14 17:37:01 阅读更多 →
Ubuntu上构建嵌入式LCD+触摸屏软件模拟器

Ubuntu上构建嵌入式LCD+触摸屏软件模拟器

1. 项目概述:为什么要在Ubuntu上跑开发板的LCD触摸屏模拟器?“Ubuntu——配置开发板lcd和触摸屏模拟器”这个标题乍看像一句操作指令,但背后藏着嵌入式开发中一个高频、高痛、却极少被系统梳理的实操场景:在通用PC环境里&#xff…

2026/10/14 17:37:01 阅读更多 →
IntelliJ IDEA 的Qoder CN 插件报错“暂时无法同步代码库索引选择”怎么解决?完整排查与修复指南

IntelliJ IDEA 的Qoder CN 插件报错“暂时无法同步代码库索引选择”怎么解决?完整排查与修复指南

摘要 本文针对在IDEA中使用Qoder CN时出现的报错,给出官方说明与实战解决步骤。官方指出需启用代码库索引:可点击“创建”手动启用,或切换“自动索引”。实战中,先登录Qoder CN且不要输入提示词,再进入设置—>Qode…

2026/10/14 17:36:00 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →