0%

视频理解综述

朴素时空融合方案

Deep Video

  • 使用大规模数据集通过CNN进行训练,划分了融合框架
    • Late只是在最后输出层进行了结合
    • Early是在channel维度就把输入揉在一起了
    • Slow是前两者方式的结合
    • 实验效果来看差别不大,比不过手工特征

649cfcdc8f260b2b55e5e958df3867f2.png

  • 提出了sports 1M 数据集
  • 尝试了多分辨率网络,在图片里面比较好用的方式,可以算是一种早期的先验注意力机制,最终效果也是不如手工特征

9c635a72b3f3b0f3cbdbf86ff2a7c5a6.png

光流方案

Two Stream

  • 之前总结过略过

Beyond Short Snippets

  • 想做长时间跨度的视频建模就要解决多帧建模的问题
    • 尝试各种pooling,效果其实都差不多,conv pooling效果稍好一些
    • 尝试了LSTM(5层)融合效果提升也比较有限

c97238f7f712751597facd388c9a5137.png

  • 网络整体结构是在双流网络上改的,但是效果提升并没有多少

6e92e8991d92001cda464f0f7d103175.png

  • 可能是这个数据集本身都是比较短的短视频,没有给LSTM表现的空间

Convolutional Two-Stream Network Fusion for Video Action Recognition

  • 详细的讲解了如何去做fusion
    • spatial fusion:指双流网络中的两个网络如何在空间上对齐融合。给了几种融合方式,1* 1 conv 融合方式效果最好
    • how to fusion:主要讨论什么时候融合的问题。通过消融实验试出来的如下图两种方式
    • temporal fusion 如何在时间维度去把他们合并起来。本文尝试了两种方式,3D pooling和先做3Dconv 再做 3D pooling

6ac97fbfae7c6a858f963c705e2fca3a.png

  • 综合起来设计出的网络是有两个分支,一个时空分支一个时间分支,用两种loss去做训练,推理的时候是两个头加权平均

882dcde289a23991fb248885238e724e.png

Temporal Segment Networks

  • 网络的想法很简单,多段视频理解,走多遍TSN,然后融合

8bce115363bd9d20f4ab2ace0f25bf00.png

  • 融合的方式也有很多
    • 如果片段相关可以做加权融合
    • 如果不相关可以用LSTM(或者transformer?)
  • 训练技巧,涨点很明显
    • 光流网络预训练因为数据集比较小,不太好训。作者把imagenet的预训练参数迁移了过来,改变第一层的参数(3->avg 变为 1 -> 复制20遍 -> 20)效果挺好
    • Partial BN:传统BN在视频领域因为数据集太小有可能会带来过拟合的问题。所以作者在训练BN的时候只训练第一层,剩下的都冻住,效果比较好
    • 数据增强:
      • corner cropping:注重边角的裁剪,其实和five crop一个意思
      • scale-jittering:改变长宽比去做裁剪,在【256,224,192,168】中随机选两个当做长和宽

a718141ec9fb0c31934da9ad52478833.png

3D卷积方案

  • 光流整体耗时比较长,还是被新的方案所取代
  • 抽光流(0.06s/frame -> 15 fps)没法应用在很多实时任务场景上
  • 但光流特征本身还是很有效,在现有模型上可以继续涨点

C3D

  • 用了更好的backbone

e39e71ba7e153c63026c65e772724ba4.png

  • 整体网络结构就是一个3D版本的VGG
  • 网络的整体效果并不突出,没有同时期其他工作效果好,但是作者把卖点放在了用网络抽取特征上

2a4b1abeb541b89e0043dd8e41796e3a.png

I3D

  • 之前总结过略过

Non Local

  • 受到transformer启发,应用self attention操作,提出了non local算子

974f2383ab3076ac6ff2438009a0e40d.png

  • 从结构上来看很像标准的自注意力模块
  • 消融实验
    • 自注意力方式:点乘最好
    • 如果只加一个non local算子的插入位置:加在前面效果好但计算贵
    • 加多少个算子:越多越好,本文是10个
    • 时空有没有必要都算自注意力:有
    • 是否对长距离视频有效:是
  • 效果超过光流I3D

ffc26da7ac52cfe2cd1bdb2f5f443b1e.png

R(2+1)D

  • 新版的Deep Video 探索2D卷积的融合方式去处理视频

80577ac4901ea789c9141aba7cfdbb3e.png

  • R(2 + 1)D就是把时空的卷积操作分成两个卷积来做(有点像深度可分离卷积?)

3a28302ffb4a862f24e5ac5f6c3df60a.png

  • 这种结构设计是可以降低模型的训练难度,最后的实验效果并没有很突出,可能是受输入数据的尺寸影响

SlowFast

  • 灵感来源于人的视觉神经系统,两种细胞一种是p细胞一种是m细胞,p细胞处理静态,m细胞处理动态
  • 所以网络设计也分成两部分:
    • 一块输入的帧率低,处理静态信息,又因为p细胞占比高,所以用大模型去处理,基本等同于I3D
    • 另一块输入的帧率高,处理时序信息,模拟m细胞,用小模型去处理(主要是channel数量少)
    • 两分支没有时序下采样
    • 两个分支还有中间层连接交互

a06e1c6c3eb09e7c582f1b7463e5eee7.png

  • 效果很好且计算负担相对小

bb4cdf245c36a71eace8a7bf81ea7eeb.png

基于Transformer

Timesformer

  • 类似于R(2 + 1)D 把时间和空间的自注意力机制分开算

72ee1f2c4a33ebdf78bbfa782b1a1fcb.png

  • 节省显存、训练时间和计算量,性能并不算很强

487cdff6c29662fdae84c5c41b5c2575.png