NIPS 2014 | Two-Stream Convolutional Networks for Action Recognition in Videos 阅读笔记

Two-Stream Convolutional Networks for Action Recognition in Videos

Author Unit: Visual Geometry Group, University of Oxford

Authors: Karen Simonyan Andrew Zisserman

Conference: NIPS 2014

Paper address: https://proceedings.neurips.cc/paper/2014/hash/00ec53c4682d36f5c4359f4ae7bd7ba1-Abstract.html

以下是根据李沐团队发的视频(https://www.bilibili.com/video/BV1mq4y1x7RU?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=9a9f9a00848a88972d0fcfd341e9e738)做的笔记。

💡 为什么做的分类任务但是标题里确实动作识别?因为跟人的动作相关的视频更常见,所以从实际意义或者数据集收集上来说,在视频里做动作识别是更有研究价值的。

动机:作者发现卷积网络更擅长于学到图像的局部信息,而学不到帧与帧之间的运动信息,于是作者提出双流网络,一个是空间流卷积网络(单帧图像输入,为了学到空间信息),一个是时空流卷积网络(以多帧光流图片为输入,为了学到运动信息,相当于直接把运动特征给了卷积网络),从而显式的让模型学到运动信息。

💡 光流optical flow:可以有效的描述物体之间运动的特征表示,通过提取光流,可以把背景以及人的穿着等都忽略,从而完全专注于动作本身。可以看光流可视化的图片,物体运动幅度越大,颜色越亮。

之所以用光流图片,也是因为当时做的比较好的 hand-crafted 特征是根据光流轨迹做的。

Abstract

贡献有三方面,一是提出了双流网络;二是证明了在多帧密集光流上训练的 ConvNet 能够在训练数据有限的情况下实现非常好的性能;三是做了多任务的训练,就是同时在两个数据集上做训练,然后都提升了精度。

1 Introduction

Additionally, video provides natural data augmentation (jittering) for single image (video frame) classification.

💡 因为视频中的物体会经历各种各样的形变,位移或者光流的改变,比生硬的进行数据增强会好很多。

late fusion 指的是在网络最后的 logits 这个层面上做合并,early fusion 指的是在网络中间层的输出上做合并。

双流的方式有两个好处:一是可以利用从 ImageNet 上预训练好的模型来做空间流的初始化;二是时间流只用光流信息来做训练,也会更容易些。

1.1 Related work

论文 [14] 发现把多帧图像一股脑塞到网络里和单帧单帧输入的效果基本上是一样的,就算使用巨大的数据集 Sports-1M 也是如此。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q1HJiHgz-1655284293975)(Two-Stream%20Convolutional%20Networks%20for%20Action%20Recog%20280f23fb2c3944fa9481703ab5aabd63/Untitled.png)]

2 Two-stream architecture for video recognition

整体框架就如图1所示。作者考虑了两种融合方法:一是直接平均,二是在把 stacked L2-normalised softmax scores 作为特征训练一个多类线性 SVM [6]。

Spatial stream ConvNet 空间流的这个网络虽然很朴实,但也很重要,因为视频中本身物体的 appearance(形状,大小,颜色等) 就很重要,可能识别出来视频中有一个篮球就知道大概率是在打篮球。

3 Optical flow ConvNets

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OmZGwBR2-1655284293975)(Two-Stream%20Convolutional%20Networks%20for%20Action%20Recog%20280f23fb2c3944fa9481703ab5aabd63/Untitled%201.png)]

光流是由两个前后帧进行计算得来的,如果一个视频有 L 帧,那就能得到 L-1 个光流图,假设输入是两个 H×W×3,那得到的光流图就是 H×W×2,这里的2是指水平方向的光流和竖直方向上的光流,如图2(d)、(e)。

3.1 ConvNet input configurations

那怎么去利用这个光流信息呢,如图3,作者提出了两种方式:一是在一个相同的位置直接叠加光流图;二是从光流图得知运动后的位置信息后,延续轨迹来叠加光流图。虽然明显第二种方式更合理,但效果却不如前者。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g6cfhxzL-1655284293976)(Two-Stream%20Convolutional%20Networks%20for%20Action%20Recog%20280f23fb2c3944fa9481703ab5aabd63/Untitled%202.png)]

Bi-directional optical flow. 使用了双向光流的技巧,在前半段的视频帧里使用前向光流计算(帧 i 到帧 i+1),而后半段视频帧里使用后向光流计算(帧 i+1 到帧 i),保持了维度上的一致。

时间流网络整体结构与空间流保持一致,就是输入的维度不一样了,空间流是 H×W×3,时间流是 H×W×2L(光流图叠加后的维度)。

5 Implementation details

值得注意的点:

Testing. 在做测试的时候,作者都是在一段视频序列中等间隔取固定长度的帧(在这里用的25),例如一段视频里有100帧,就每隔4帧取一次,取到25帧。然后对这25帧做了10crop(四角和中心取crop,然后翻转一下图片再四角和中心取crop,获得10crop),获得了250view,将这250view输入到空间流网络中(时间流类似),然后取平均。

Optical flow. 作者使用了一种技巧将 dense 的光流预测转化成了 sparse 的光流,并用 JPEG 的压缩方式进行了压缩,大大节省了存储空间。

6 Evaluation

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CDBk7nLf-1655284293976)(Two-Stream%20Convolutional%20Networks%20for%20Action%20Recog%20280f23fb2c3944fa9481703ab5aabd63/Untitled%203.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eJSDGTKU-1655284293976)(Two-Stream%20Convolutional%20Networks%20for%20Action%20Recog%20280f23fb2c3944fa9481703ab5aabd63/Untitled%204.png)]

单独使用时间流网络就能达到比较好的效果,可见运动信息对于视频理解多么重要!

7 Conclusions and directions for improvement

做了一下总结和未来工作。其中就提到了作者不明白为什么基于轨迹的光流融合不会更好,而这点就被一篇15年的cvpr解决了。

💡 这篇文章带来的贡献不只是添加了一个时间流网络这么简单,主要是给大家一个启示:当一个神经网络解决不了某些问题时,也许通过魔改网络就是得不到很好的提升,这时通过添加一个模态的输入帮助神经网络学习说不定是一个很好的方式,所以双流网络也可以当作多模态学习的先例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值