三维时空域卷积的思考 —— 从暴力3D卷积到优雅3D卷积

  1. 起因
    之前有看过 Standford 最早的一篇关于处理视频序列的文章 A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar, and F. F. Li. Large-scale video classification with convolutional neural networks. In CVPR, 2014. 2, 5, 8。
    这篇文章的思想很朴素也很直接暴力(这类方法取名“暴力3D卷积”),直接拓展传统的图像空间域的2D卷积网络到时空域也就是所谓的3D卷积网络(虽然其中也有一些很花哨的early fusion、late fusion和slow fusion方法),但是其本质上就是首先将不同帧的图像stack之后放入网络中学习得到时空域特征。有意思的是,Karpathy在文章中也表明这种方式并不是很高效的方法,效果其实和直接对于单独的帧进行处理相差无几。所以这样的直接暴力的3D网络并不能高效地利用并学习时空域特征,因此如果要得到有效的时空域特征,往往需要大量大量的视频数据。—— 这个数据量的问题即使在 Sport 1M 数据下也是不够的。直观来说,暴力3D卷积训练的数据量比传统2D卷积多出一个数量级
    那么引出一个问题 —— 如何进行高效的时空域卷积?(这类方法我们戏称为优雅3D卷积

  2. 如何优雅地3D时空域卷积?
    其实这样的卷积方式并不能完全等价于最普通的3D卷积,这种方式仅仅是通过 低复杂度 的卷积核去模拟 高复杂度 的暴力3D卷积核。这种近似方式能够估计的卷积核能够满足克罗内克积的性质,即:这里写图片描述。多嘴一句,这样的等价是有效的并不会对于3D核的表达性能造成很大损失。
    在理解克罗内克积的基础上,我们可以将暴力3D卷积核转化为分解的2D空间域卷积核和1D时间域卷积核,即:
    三维时空域卷积的思考 —— 从暴力3D卷积到优雅3D卷积_第1张图片

  3. 网络构架 —— 级联的空间卷积层+时间卷积层
    三维时空域卷积的思考 —— 从暴力3D卷积到优雅3D卷积_第2张图片
    这里有两种输入video clips,分别是差值图和图像帧。然后通过4组空间卷积层 Spatial Conv Layer,这些层的操作都是图像域的2D卷积操作。SCLs针对单帧图像进行操作提取视觉特征。后续的操作有两条路径:

    • 差值图(并不是相邻帧之间的关系)得到的特征后面经过Transformation & Permuation 操作,再进行时间域的multi-scale卷积操作。具体来说,就是对每个像素位置的所有feature channel的时间维度进行卷积操作,通过不同时间域的卷积核来捕获不同速度的运动物体的运动特征。
    • 图像帧得到的特征通过平行于上述操作的SCL层,进一步提高视觉特征的捕获精细程度,在 appearance feature 的方面得到更好的结果。
      最后再将这两条路径得到的特征融合在一起得到对应于输入 video clip {差值图、图像帧}的结果。
  4. video clips 的形成 —— 可以认为是 data argument 的一种
    自然来说,不太可能直接输入完整的一帧图像(?),因此我们采用时间上等间隔采样的,空间上等位置采样的策略,得到不同的视频片段。这样的操作是为了解决 misalignment 的问题。
    三维时空域卷积的思考 —— 从暴力3D卷积到优雅3D卷积_第3张图片
    通过同样的方式采集得到这里写图片描述。注意的一点:这里写图片描述 能够捕获 short-term 和 long-term 时间域的特征,而 这里写图片描述 主要捕获视觉特征,因此才会有第三节所讨论的两种不同的路径,处理不同的时间 - 空间特征。

  5. 总结
    在现在来看,这样的优雅3D卷积整体框架实际上很类似于 two-stream 的框架:都是采用不同的路径处理不同的时间域 - 空间域特征。只不过相比之下,处理时间域特征的路径的输入是差值图像,而不是广泛采用的光流场。不过这样的方式能够引入 long-term 时间域信息,而不限制于光流场的逐帧的 short-term 信息。
    不过~ hiahiahia,这个算法的效果其实并不能达到 state-of-art,姑且作为优雅3D卷积的小文章看看也是不错的。

你可能感兴趣的:(机器学习,深度学习)