2014年之前,如果你问一个计算机视觉研究者"深度学习能不能识别视频里的动作",大概率会得到一个尴尬的沉默。
(资料图片仅供参考)
不是因为没人试过。恰恰相反,大家试了很多次,结果都不太理想。当时最好的手工设计特征方法,叫做密集轨迹
**密集轨迹**:一种通过追踪视频中密集采样点的运动轨迹来描述动作的传统方法,不依赖神经网络,完全靠人工设计的规则提取特征。
在UCF-101这个动作识别数据集上能做到87.9%的准确率。而深度学习方法呢,最好的成绩只有65.4%,差了整整22.5个百分点。
这个差距说明什么?说明每5个动作里,深度学习就要比手工方法多认错1个还不止。这在当时的视觉领域是一件挺尴尬的事情,因为就在同一时期,深度学习在静态图片分类上已经把传统方法打得落花流水了。AlexNet横空出世之后,图像识别这个领域几乎被卷积神经网络统治,可视频动作识别这块阵地,深度学习就是攻不下来。
这篇论文要讲的,就是Karen Simonyan和Andrew Zisserman这两位牛津大学的研究者,在2014年怎么把这块硬骨头啃下来的。顺便说一句,这两人几个月后还发表了VGGNet,现在深度学习教材里几乎人人都学过的经典网络结构。这两篇论文是同一时期的工作,出自同一个实验室,这个背景本身就很有意思:一群人同时在攻克静态图像和动态视频两条战线。
问题出在哪:视频比图片难在哪里
要理解这篇论文的贡献,得先搞清楚视频识别到底难在哪。
图片分类,神经网络要处理的就是一张静态画面里的空间信息,颜色、形状、纹理、物体之间的相对位置。这套逻辑,卷积神经网络已经玩得很熟了。
但视频不一样。视频除了空间信息,还多了一个维度:时间。一个动作能不能被识别,往往不取决于某一帧画面长什么样,而取决于画面是怎么随时间变化的。
举个例子,一张"手臂抬起"的静态照片,你很难判断这是在打招呼、扔东西,还是准备打人。但如果你能看到手臂运动的轨迹和速度,答案就一目了然了。
早期直接把卷积神经网络套用到视频上的做法,基本上是把视频当成一堆连续的图片,让网络自己去学习帧与帧之间的时间关系。这个想法听起来合理,但实际效果并不好。网络很难自己从原始像素里悟出"运动"这个概念,就像让一个只会看照片的人去猜一段哑剧在表演什么,单张截图给的信息实在太有限。
核心思路:把运动信息直接喂给网络,而不是让它自己猜
Simonyan和Zisserman的洞察其实挺朴素:如果网络自己学不好运动信息,那就别让它自己学了,直接把运动信息计算好,喂给它。
这就是双流网络的核心设计。整个网络分成两条独立的通路。
第一条叫空间流
**空间流**:处理单帧静止画面的卷积网络分支,负责识别画面里有什么物体、什么场景,相当于回答"这是什么"的问题。
空间流的输入就是视频里挑出来的一帧图像,和普通的图片分类网络没什么区别。它负责捕捉场景和物体信息,比如识别出画面里有一个游泳池,那这个动作很可能和游泳有关。
第二条叫时间流
**时间流**:专门处理光流场的卷积网络分支,负责捕捉画面中物体的运动方向和速度,相当于回答"发生了什么运动"的问题。
时间流的输入不是原始图像,而是光流
**光流**:描述图像中每个像素点在连续两帧之间移动方向和速度的向量场,通常用一张彩色图或者两张灰度图来表示水平和垂直方向的位移。
光流图本质上是一种预先计算好的运动地图。你可以把它理解成,把"这个像素点往右移动了3个单位,往上移动了1个单位"这种信息,画成一张图,颜色和亮度代表运动的方向和幅度。
这里就得说说那个必须出现的类比了。
想象你要向一个从没看过足球比赛的人解释什么叫"传球"。你有两种办法。第一种,给他看一张球场的静态照片,让他自己去猜球是怎么飞过去的。第二种,直接给他一张标注了球的运动轨迹和速度的示意图,箭头清清楚楚画着球从哪飞到哪,速度多快。第二种方法显然更直接,也更容易让人一眼看懂发生了什么。如果不这样做,只靠静态照片,他可能得看上几十张连续照片,自己在脑子里拼凑运动轨迹,而且很可能拼错,这正是早期把视频直接扔给卷积网络训练时遇到的困境,网络花了大量的参数和训练时间,试图从像素变化中自己领悟运动模式,效果却不理想。而双流网络的做法,相当于直接把那张运动示意图递给了网络,省去了它自己摸索的过程。
这两条流各自训练自己的卷积神经网络,最后再把两边的预测结果融合起来,得出最终的动作判断。
为什么要分成两条流,而不是一条流搞定所有事
这里有个自然会冒出来的疑问:为什么非要分成两条独立的网络?直接把图像和光流一起塞进一个网络里,让它自己去学着综合这两种信息,不行吗?
论文的答案是,行不通,或者说效果会打折扣。原因和视频数据本身的特性有关。
空间信息和时间信息其实是两种性质完全不同的数据。静态图像的统计规律,比如物体的轮廓、颜色分布,和光流场的统计规律,比如运动的连续性、方向的聚集性,是两套截然不同的模式。让同一个网络同时学习两种性质迥异的信号,往往会造成互相干扰,顾此失彼。
而分成两条独立的流,让每条流专注学习自己那一类信号的规律,反而能学得更精更透。这就好比让一个人同时精通两门完全不相关的手艺,比如又要做顶级的木匠又要做顶级的裁缝,通常不如让两个专业人士分别把各自的手艺做到极致,最后再合作完成一件作品。如果强行让一个人同时兼顾两门手艺,大概率两门手艺都做不到顶尖水准。
实验结果也验证了这个设计的价值。论文做了对照实验,如果只用空间流,不管时间流,准确率是72.6%。如果只用时间流,不看图像内容,准确率反而更高,达到81.0%。这个结果本身就很有意思,说明运动信息对识别动作的重要性,甚至超过了单纯看画面内容。而当把两条流结合起来,准确率一下跳到88.0%。
这组数字说明了两件事。第一,时间信息对动作识别极其关键,甚至比空间信息更关键,这点或许有点反直觉,毕竟直觉上我们会觉得"看清楚画面里是什么"应该是识别的基础,但数据告诉我们,"看清楚东西怎么动"反而更重要。第二,两条流结合之后的效果,远超单独任何一条流,说明这两种信息确实是互补的,不是重复的。
光流该怎么算:一个容易被忽略但很关键的细节
这里还有个技术细节值得展开讲讲,那就是光流具体怎么计算和输入到网络里。
论文里用的是密集光流
**密集光流**:为图像中的每一个像素点都计算出运动向量,而不是只计算稀疏的关键点,能够提供更细致完整的运动描述。
具体做法是,取相邻的两帧图像,用传统的光流算法计算出每个像素在水平方向和垂直方向上的位移,分别得到两张位移图。然后把连续多帧的位移图堆叠在一起,作为时间流网络的输入。
这里有个设计选择很值得说,那就是到底堆叠多少帧。论文测试了不同的帧数,发现堆叠10帧左右的光流效果最好。堆叠的帧数太少,网络看到的运动信息片段太短,判断不准;堆叠太多,又会引入冗余甚至噪声,反而拖累效果。
这就像看一段监控录像判断一个人是在走路还是在跑步。只给你看两帧,信息太少,很难判断;但如果给你看几百帧,又显得啰嗦,而且中间可能夹杂了一些无关的晃动干扰你的判断。取一个恰到好处的时间窗口,比如两三秒钟的动作片段,往往是判断动作最有效率的方式。10帧左右的光流堆叠,本质上就是找到了这样一个恰到好处的时间窗口。
论文还测试了另一种方案,叫做轨迹光流
**轨迹光流**:不是简单堆叠固定位置的光流,而是沿着运动轨迹去采样光流信息,试图更精确地跟踪同一个点在不同时刻的位移。
结果发现,轨迹光流并没有比普通的堆叠光流带来明显提升,这个结果对研究者来说估计有点出乎意料,毕竟轨迹光流听起来是更精细、更"聪明"的方案,理论上应该更准。但深度学习这个领域,经常会出现"听起来更精巧的设计,实际效果未必更好"的情况,这也是为什么实验验证永远比直觉推理更重要。
训练技巧:数据不够怎么办
深度学习一个绕不开的问题是,它非常吃数据。视频数据集当年的规模比图片数据集小得多,像UCF-101只有约1.3万段视频,这个规模对训练一个深层卷积网络来说,是远远不够的,很容易出现过拟合
**过拟合**:模型在训练数据上表现很好,但在没见过的新数据上表现很差,相当于死记硬背了答案而没有真正学会规律。
为了解决这个问题,论文用了两个办法。
第一个办法是多任务学习
**多任务学习**:让同一个网络同时在多个相关但不完全相同的数据集上训练,共享网络的大部分参数,只是在最后输出层区分不同任务,以此扩充有效的训练数据量。
具体来说,论文把UCF-101和另一个动作识别数据集HMDB-51放在一起训练,共享网络主干,只在最后加两个不同的分类输出层,分别对应两个数据集的类别。这样相当于用两份数据共同训练同一套特征提取能力,缓解了单一数据集数据量不足的问题。
第二个办法是用ImageNet预训练
**ImageNet预训练**:先在包含上百万张图片的ImageNet数据集上训练网络的空间流部分,让它先学会识别物体和场景等通用视觉特征,再把这些学到的参数迁移到动作识别任务上继续微调。
这个思路现在已经是深度学习的标准操作了,但在当时,把图片识别学到的知识迁移到视频识别任务上,还是个挺巧妙的做法。毕竟空间流本质上就是在看单帧画面,这和普通的图片分类任务是相通的,没理由不利用现成的、已经在海量图片上训练好的知识。
这就好比一个人要去学做中餐,如果他之前已经在西餐厨房里练过多年刀功、掌握了火候的基本感觉,那这些底层技能是完全可以带过去用的,不需要从零开始学怎么拿刀怎么开火。如果非要从零练起,不去借用已有的基础技能,那学习效率会低很多,而且在数据量不够的情况下,很可能练不出扎实的功底。
最终成绩单:数字说话
说了这么多设计细节,最后来看实际效果。
| 方法 | UCF-101准确率 | HMDB-51准确率 |
| 密集轨迹(手工特征,此前最优) | 87.9% | 57.2% |
| 之前最好的深度学习方法 | 65.4% | 约23% |
| 仅空间流 | 72.6% | 40.5% |
| 仅时间流 | 81.0% | 54.6% |
| **双流网络(融合)** | **88.0%** | **59.4%** |
这张表格里最重要的信息是最后一行。双流网络在UCF-101上的88.0%,首次超过了此前统治了这个领域多年的手工特征方法密集轨迹的87.9%。在HMDB-51上更是从57.2%提升到59.4%。
这个数字差距看起来不算夸张,只有零点几到两个百分点,但它的历史意义完全不在于差距有多大,而在于这是第一次,深度学习方法在视频动作识别这个任务上,真正打赢了手工设计特征方法。这个时刻对视频理解领域的意义,不亚于AlexNet在图片分类上打赢传统方法的那一刻。
这篇论文之后发生了什么
双流网络提出之后,后续的研究基本上都是在这个框架上做加法和优化。
2015年,Feichtenhofer等人在论文里探索了如何更好地融合空间流和时间流,提出了更精细的融合策略,让两条流在网络的中间层就开始交换信息,而不是等到最后才简单相加,进一步提升了识别准确率。
2016年,Wang等人提出了时间片段网络
**时间片段网络(TSN)**:把一段长视频切成若干片段,分别抽取每个片段的特征再汇总,解决了双流网络原本只能处理短时间窗口、难以捕捉长视频里完整动作节奏的问题。
这个改进直接针对双流网络的一个局限,那就是原始双流网络每次只看一个很短的时间窗口,比如10帧光流,对于时间跨度较长、节奏变化复杂的动作,信息覆盖不够。时间片段网络把整段视频拆成几个片段分别处理再综合,大大提升了长视频动作识别的效果,在当年的多个数据集上都刷新了纪录。
再往后,2017年出现的I3D网络,把双流的思路和三维卷积结合起来,直接用三维卷积核同时处理空间和时间维度,某种程度上是对双流网络"分离处理"这个基本假设的一次挑战和演进,证明了三维卷积也能捕捉到与光流类似的运动信息,而且效果更好。这也说明双流网络提出的"运动信息需要显式处理"这个核心洞察是对的,只是后来的研究找到了更高效的实现方式。
写在后面
读这篇论文最有意思的一点,是它解决问题的方式特别"笨拙"又特别管用。研究者没有指望神经网络凭空学会理解运动,而是先用传统算法算好光流,再喂给网络。这种"不追求端到端优雅,先用已知有效的工具垒好地基"的思路,在今天很多追求端到端训练的氛围里显得有点不合时宜,但恰恰是这种务实态度,让深度学习第一次在视频识别上站稳了脚。
还有一点值得琢磨,实验里单独用时间流的效果比单独用空间流还好,这说明我们平时理解"看懂一个动作"的方式,可能过于依赖画面内容,而低估了运动本身携带的信息量。这多少提醒我们,理解一件正在发生的事,有时候关注"它怎么变化"比关注"它现在是什么样子"更重要。
三维卷积后来证明能不依赖显式光流也学到类似效果,这个事实留下一个问题:网络到底是不是真正"理解"了运动,还是只是找到了另一种统计捷径去逼近光流能提供的信息?这个问题现在依然没有特别确定的答案。
Q&A
Q1:双流卷积网络是什么?
A:双流卷积网络是Simonyan和Zisserman在2014年提出的视频动作识别模型,把网络拆成空间流和时间流两条独立通路,分别处理静态画面和光流运动信息,最后融合两边结果做出判断,是深度学习第一次在视频动作识别上超越传统手工特征方法。
Q2:为什么双流网络要分成两条通路,合并成一条不行吗?
A:因为空间信息和运动信息是两种统计规律完全不同的数据,混在一条网络里训练容易互相干扰。实验显示分开训练再融合,准确率能达到88.0%,远高于只用一条流的72.6%或81.0%。
Q3:双流网络之后有哪些改进工作?
A:2015年Feichtenhofer等人改进了两条流之间的融合方式;2016年Wang等人提出时间片段网络,解决了长视频动作识别的问题;2017年出现的I3D网络用三维卷积替代了显式光流计算,进一步提升了效果。
焦点消息!双流卷积网络:当深度学习第一次学会"看懂"视频里的动作
双流卷积网络:当深度学习第一次学会"看懂"视频里的动作,算法,动作,光流,卷积,双流,深度学习,神经网络
热议:海格通信(002465.SZ):拟公开挂牌转让参股公司河南经纬20%股权
,格隆汇
大家乐集团(00341)8月31日斥资149.35万港元回购28.4万股|报资讯
智通财经APP讯,大家乐集团(00341)发布公告,该公司于2026年8月31日斥资149.35万港元回购28.4万股股份,每股回购价格为5.16-5.3港元。
每日快播:河北:5年后将实现北斗实时正常高发布服务
【河北:5年后将实现北斗实时正常高发布服务】根据规划,2026年至2030年间,河北将优化省级北斗导航定位基准站网的空间布局,定期开展测绘基准框架动态更新,确保基准站网运行稳定可靠。5年后,河北将实现
短讯!财政部:1-7月国有企业利润总额25089.9亿元 同比增长0.6%
财政部发布公告,1-7月国有企业营业总收入464466.4亿元,同比下降2.4%;利润总额25089.9亿元,同比增长0.6%。1-7月国有企业应交税费36615.6亿元,同比增长5.0%。
消息称三星电子正为英伟达开发定制8Hi HBM:17~18Gbps高速设计
消息称三星电子正为英伟达开发定制8HiHBM:17~18Gbps高速设计,内存,英伟达,hbm,gbps,三星电子,高速设计,nvidia
海上丝路排名前十的上市公司有哪些(第二季度毛利润排行榜)
海上丝路排名前十的上市公司有哪些(第二季度毛利润排行榜),南方财富
后日1只新债上市,你中签了吗?(9月14日)
后日1只新债上市,你中签了吗?(9月14日),后日,共有1只新债上市,为
智能互动玩具概念有那些上市公司?(2023/9/12)
智能互动玩具概念有那些上市公司?(2023 9 12),智能互动玩具概念有那
9月11日北向资金十大成交股一览表
9月11日北向资金十大成交股一览表,北向资金9月11日净流入4 49亿,其中
安防监控概念股龙头股票一览(2023/9/12)
安防监控概念股龙头股票一览(2023 9 12),安防监控概念股龙头股票一览
洲际酒店湖州安吉项目签约
9月8日,来自洲际酒店集团六洲酒店管理(上海)有限公司代表与浙江金银
上海乐高乐园度假区全面启动主体工程建设
9月8日,据“上海发布”公众号消息,上海乐高乐园度假区取得乐园中心区
马蜂窝携手腾讯云研发“AI旅行伙伴”
9月8日,2023腾讯全球数字生态大会召开,会上,马蜂窝执行副总裁陈惠为
香港迪士尼乐园:全球首个《冰雪奇缘》主题园区将于11月开幕
近日,香港迪士尼乐园度假区行政总裁莫伟庭表示:“全球首个及最大型的
建发房地产集团拟发行不超6.7亿元住房租赁专项公司债券;瑾家成功中标『玖悦台租赁社区』| 迈点住房租赁周报
焦点关注01、建发房地产集团拟发行不超6 7亿元住房租赁专项公司债券9月
湖南丰富文旅消费发展乡村旅游
近日,湖南省政府新闻办召开《湖南省恢复和扩大消费的若干政策措施》(
旅游酒店板块午后拉升,华天酒店、曲江文旅盘中大涨
9月8日,旅游酒店板块低开高走,Choice数据显示,旅游酒店指数(BK0485)
CCL概念上市公司股票一览(2023/9/8)
CCL概念上市公司股票一览(2023 9 8),CCL概念上市公司股票一览(2023
电芯装配上市公司有哪些?电芯装配上市公司一览(2023/9/8)
电芯装配上市公司有哪些?电芯装配上市公司一览(2023 9 8),电芯装配上
投资日历|9月11日至9月15日下周3只新债将公布中签号码
投资日历|9月11日至9月15日下周3只新债将公布中签号码,9月11日至9月15
5550家公司公布半年报 858家业绩增幅翻倍
,证券时报网
无对比无伤害!穆里尼奥封神打脸!阿隆索毁了银河战舰_当前热点
无对比无伤害!穆里尼奥封神打脸!阿隆索毁了银河战舰,银河战舰,皇家马德里,巴塞罗那队,迭戈·阿隆索,何塞·...
华润置地(01109.HK)发布公告,该公司将于2026年10月28日派发中期股息每股0.2元 即时焦点
华润置地(01109.HK)发布公告,该公司将于2026年10月28日派发中期股息每股0.2元。
精彩看点:生意社醋酸丁酯8月30日均差为107.50元/吨 由正向扩大转为缩小
据生意社监测,醋酸丁酯8月30日均差为107.50元/吨(均差=M10-M20=7023.75-6916....