
2014年秋天,如果你是一个搞计算机视觉的研究者,你手里最好的动作识别工具其实不是神经网络。
而是一套叫做密集轨迹的手工特征算法。
这件事说起来有点尴尬。前一年,AlexNet 已经在图像分类上把所有人都打服了,深度学习的旗号插遍了整个视觉圈。可是一到视频动作识别这个任务上,神经网络就像突然失忆了一样,怎么调都调不过那些靠人工设计特征的老办法。
密集轨迹方法*:一种不依赖神经网络的手工设计算法,通过跟踪视频里密集分布的点的运动轨迹,再统计轨迹周围的图像纹理和运动信息来判断动作类别。
这套方法在标准数据集 UCF-101 上能做到88%左右的准确率,而当时最好的深度学习方法只能停留在65%左右。二十多个百分点的差距,这是什么概念。意味着每识别5个动作,深度学习模型就要比手工方法多认错1个还多。放在今天,这种差距足以让一个团队直接把项目方向砍掉重做。
问题出在哪?这才是真正值得琢磨的地方。
视频比图片难在哪
图片分类,神经网络只需要认出"这是一只猫",信息全部挤在一张静止的画面里。
视频不一样。一个动作,比如说"挥手",它的关键信息根本不在某一帧画面里,而是藏在帧与帧之间的变化里。你截取挥手视频里的任何一帧单独拿出来看,那可能就是一只举着的手,跟"挥手"这个动作本身没有必然联系。
这就好比你想通过看一本书里随便撕下来的一页,去判断整本书讲的是恋爱故事还是谍战故事。单看这一页,也许能猜到一些线索,但真正决定故事类型的,是这一页和前后页之间的关系,是情节怎么推进的。如果你只盯着单页的文字内容分析,而完全不管页与页之间的连贯性,你注定抓不住整本书真正的主线。
早期的深度学习方法处理视频的思路,大体上就是把视频当成一堆图片,一张一张扔进卷积神经网络里去识别,然后把结果做个平均。这种做法直接忽略了帧与帧之间那条最关键的运动线索。相当于只顾着看单页内容,完全没有理会情节推进,难怪打不过靠轨迹跟踪、专门捕捉运动模式的密集轨迹方法。
2014年,两位来自牛津大学的研究者Karen Simonyan和Andrew Zisserman发表了一篇论文,题目叫《用于视频动作识别的双流卷积网络》。
双流卷积网络*:一种同时处理两类不同信息的神经网络架构,一条支路专门处理静态画面,另一条支路专门处理运动信息,最后把两条支路的判断结果结合起来。
这两位研究者当时所在的实验室,正是后来诞生VGGNet的那个组。几个月之后,同一个团队又发表了VGGNet论文,这两篇论文几乎是同期完成的工作。这个细节挺有意思,说明他们那段时间正在同时琢磨"网络结构怎么设计才够深、够有效"这个大问题,视频识别和图像分类,两条战线一起打。
把运动信息单独拎出来,交给专门的网络处理
Simonyan和Zisserman的核心思路说起来并不复杂:既然一个网络很难同时学会"这是什么"和"它在怎么动",那就干脆分成两个网络,一个专心学"是什么",另一个专心学"怎么动"。
空间流*:双流网络里负责处理单张静止画面的那一支,输入是视频中的某一帧图像,用来识别画面里的物体、场景、人物姿态等静态信息。
空间流本质上跟做图片分类没什么区别,输入一张RGB图片,输出这张图片属于哪个动作类别的概率。它能学到"这个场景里有游泳池"、"这个人的姿势像是在打网球"这类信息,但它天生学不到"这个人手臂正在挥动"这种跨越时间的动态信息。
真正的巧思在另一条支路上。
时间流*:双流网络里负责处理运动信息的那一支,输入不是原始图像,而是光流场,专门捕捉画面中像素随时间移动的方向和速度。
光流*:描述图像中每一个像素点从上一帧到下一帧移动了多远、往哪个方向移动的一种数学表示,本质上是一张记录了运动方向和速度的图。
这里要停下来想一想,为什么不直接把连续几帧原始图像堆叠起来扔给网络,让它自己学习运动信息,非要绕一圈先算出光流?
答案藏在一个矛盾里。原始像素值里混杂了太多和动作本身无关的干扰信息,比如说光照变化、背景纹理、颜色差异,这些东西对判断"这是不是挥手"其实没什么帮助,反而会分散网络的注意力。光流场则不同,它把这些无关信息统统剥离掉,只留下纯粹的运动方向和速度,相当于把"动作"这件事从画面里蒸馏了出来。
这就像你想学一段舞蹈动作,与其反复看录像里舞者穿的衣服颜色、背景的灯光布置,你更应该直接看一份骨骼运动轨迹图,上面只标出了关节移动的方向和幅度。如果不这样做,学习者的注意力就会被无关的视觉细节稀释掉,真正该学的动作规律反而学不扎实。论文里的实验也证实了这一点,如果只用空间流,不用光流,准确率会从88%左右掉到72.6%,足足少了15个百分点以上。这说明运动信息在动作识别里占的权重,远比很多人直觉里想的更重。
两条支路各自训练好之后,网络把它们各自输出的分类概率做一个加权平均,得到最终判断。
这个设计还带来一个额外的好处,值得单独说一说。
由于ImageNet那种大规模图片数据集里没有光流数据,也没办法直接拿来训练时间流,Simonyan和Zisserman做了一件很聪明的事:他们让时间流网络先在一个叫做UCF-101的相对较小的视频数据集上直接训练,同时把空间流的网络结构拿ImageNet上预训练好的参数来初始化,然后再针对视频任务微调。这样一来,两条支路各自用最适合自己的数据来源打底,谁也不用勉强谁。
光流到底长什么样,网络又学到了什么
论文里给出了第一层卷积核可视化的图。看这张图,你会发现里面大多是带有明确方向性的滤波器,横的、竖的、斜的都有,条纹分明。
这不是随便学出来的巧合。这恰恰说明网络自己发现了,光流场里最有价值的信息就是运动的方向,所以它自发地把第一层的"感受器"调成了各种方向的探测器,专门去捕捉不同方向上的运动模式。这跟人眼视觉皮层里也存在方向选择性神经元的发现,隐隐有一种呼应,虽然这是两套完全不同的系统,但殊途同归地找到了类似的解决方案。
最终的实验结果摆在那里:双流网络在UCF-101上达到了88.0%的准确率,在另一个数据集HMDB-51上达到了59.4%,这两个数字第一次让深度学习方法在动作识别任务上追平甚至反超了手工特征方法。
这是深度学习在视频动作识别领域第一次真正打赢手工特征。放在2014年这个时间点,这句话的分量不比AlexNet在图像分类上掀起的震动小,只是视频识别这个子领域相对小众,热度没有那么高,但对于长期困在这个瓶颈里的研究者来说,这是一次实打实的破局。
下面这张表格整理了论文里几个关键的对比数据。
| 方法 | UCF-101准确率 | HMDB-51准确率 |
|---|---|---|
| 单独空间流 | 72.6% | 40.5% |
| 单独时间流 | 81.0% | 54.6% |
| **双流融合** | **88.0%** | **59.4%** |
| 密集轨迹(手工特征) | 87.9% | 57.2% |
这张表里最耐人寻味的一行,其实是时间流单独的表现,81.0%,比空间流的72.6%高出了8个多百分点。这说明在动作识别这件事上,运动信息本身承载的判别力,比静态画面更强。这也从数据层面印证了前面那个思路:分开处理运动和静态信息,是对的方向。
后来的人怎么接着做
这套双流的思路,后来被一大批研究者继承和改造。
三年后,2017年,Carreira和Zisserman(同一个Zisserman)团队发表的I3D论文,把双流网络里的二维卷积换成了三维卷积,让网络能够直接从连续多帧原始画面里学习时空特征,不再需要单独计算光流这一步,同时借助更大规模的Kinetics数据集做预训练,把准确率进一步推高到接近98%(在UCF-101上)。
再往后,2018年前后,还有一批工作试图彻底摆脱光流计算这个步骤,因为光流本身的计算成本不低,会拖慢整个系统的推理速度。比如说一些基于运动向量或者端到端学习运动表示的方法,试图让网络自己从原始视频里学出类似光流的信息,省掉预处理这一步。
这些后续工作,不管具体技术路径怎么变,骨子里都绕不开双流网络最早提出的那个核心洞察:视频里的静态信息和动态信息,值得分开对待,或者至少要有专门的机制去捕捉运动本身。
写在后面
读这篇论文的时候,最触动我的其实不是双流网络这个架构设计本身,而是那15个百分点的差距,也就是去掉光流之后准确率的暴跌。这个数字让我意识到一件事:很多时候我们以为神经网络足够强大,能自己从原始数据里学出一切,但事实是,如果关键信息被淹没在大量无关噪声里,网络未必能自己把它捞出来。有时候人为地做一次"信息蒸馏",把最该关注的东西剥离出来单独喂给网络,效果反而好得多。这跟后来"特征工程该不该死"这个争论隐隐有点关系,答案似乎是,不是特征工程完全没用了,而是它换了个位置继续发挥作用。
另一个让我意外的细节是,第一层卷积核学出来的方向性滤波器,这种东西不是人工设计进去的,是网络自己从数据里"悟"出来的。这种自发涌现的结构和生物视觉系统的某些机制存在相似性,虽然完全是两套独立的系统各自演化出来的结果,但这种巧合总让人觉得,某些信息处理的底层逻辑,可能是跨越了生物和硅基的某种"最优解"。
这篇论文没有解决的问题,其实也很明显,光流计算本身的成本,以及它是不是真的是捕捉运动信息的最佳方式,这两件事后来花了业内好几年时间才逐渐找到更好的答案。如果你是刚入门这个领域的人,不妨想一想,如果连光流这一步都能被网络自己学出来,那人类专家几十年积累的那些手工特征设计经验,到底还剩下多少不可替代的价值?
Q&A
Q1:双流卷积网络是什么?
A:双流卷积网络是2014年由Karen Simonyan和Andrew Zisserman提出的视频动作识别方法,用两条独立的神经网络支路分别处理静态画面和运动光流信息,再把两者的判断结果融合,最终在准确率上首次超越了手工设计的密集轨迹方法。
Q2:双流网络为什么要用光流而不是直接堆叠原始视频帧?
A:因为原始像素里混杂了光照、背景纹理等和动作无关的干扰信息,会分散网络注意力,而光流场剥离了这些干扰,只保留运动方向和速度,让网络能更专注地学习动作本身的规律。
Q3:双流网络之后有哪些重要的改进工作?
A:2017年Carreira和Zisserman团队提出的I3D论文用三维卷积替代双流结构,不再依赖单独计算光流,结合大规模Kinetics数据集预训练,把UCF-101上的准确率推高到接近98%。
好文章,需要你的鼓励
论文提出动态民主同意框架,融合伯奈斯公关理论与系统动力学反馈模型,分析政治支持率如何受滚雪球增长、选民饱和、感知延迟和制度信任侵蚀四种机制影响,揭示宣传投放为何会失效甚至反噬。
阿里巴巴团队推出E-Commerce Bench基准,让18个顶尖AI模型经营虚拟网店一年,揭示AI在长周期自主商业决策、供应商谈判防骗、现金流管理及经验学习方面存在巨大能力差异与隐藏短板。
本文解读ReFlowSET框架,它通过系统评测多款图像压缩器选出最适合雷达与光学图像的编解码器,并从零训练轻量生成模型完成雷达图到光学图的翻译,在多个数据集上取得领先的感知与分布质量表现。
阿里团队提出DICS方法,通过评估图片、问题、答案三者的内在一致性给训练数据打分,结合自适应采样策略筛选高质量子集。仅用25%的LLaVA-1.5-665K数据训练即超越全量数据效果,并在600万样本规模验证下用不到四分之一数据逼近官方InternVL3-8B性能。