关于融合的CNN构架的思考

  1. 为什么要采用这样的网络?
    众所周知的CNN网络对于图像的空间域的处理具有很好的效果,在单张图像的分类分割目标检测等问题上表现出了很好的效果。很多人或许有和我之前一样的疑问,既然单张图像上做的效果已经达到state-of-art的效果,为什么还要联系时间域上的信息呢?直接将视频序列拆分成单帧图像进行处理不就可以了麽?
    其实理解时间域的优势并不在于如何提高算法的效果,而是在于充分利用已有视频的信息,在有限的视频训练数据集上达到更好的效果。简单来说,我们当前的任务是对于某一段视频序列中出现的行人进行分割。如果采用单帧图像进行分割操作,需要绞尽脑汁充分开发CNN各方面的性能,以保证仅仅通过行人的 appearance 的角度就可以达到准确的分割。往往这样的单帧图像的训练方法需要(假设)2000张具有人为标注的训练集图像。然而如果在考虑单张图像 appearance 的角度进一步融合行人的 motion 信息,如运动的规律性一致性等等,可能仅仅需要 1000 张具有人为标注的训练集图像。所以并不是说单帧图像仅仅考虑 appearance 信息不能完成视频序列的分割,我们采用 sptio-temporal 的构架方法能够在 limited 的有标记的数据集上,充分开发CNN的性能,达到 state-of-art 的分割效果。

  2. 时间域CNN网络构架

    上面的这样的经典构架是采用两条路径分别处理时空域信息,在空间域采用单帧图像进行输入得到分类/分割结果,在时间域采用多帧光流场输入,从而综合大范围内的时间域信息得到分类/分割输出。最后采用融合方法将其两者的输出融合得到综合时空域信息的结果。
    对于空间域网络来说很容易理解,上图采用的是从ImageNet预训练得到的VGG-M-2048网络。而时间域的输入方式的选择则是很讲究的~~

    • 最简单的时间域输入:直接将相邻帧stack成一摞。但这样的输入隐式地要求网络仅仅在第一层就要学会时空域运动依赖的特征,然而这是很难达到的。有研究表明,这种方式训练得到的网络其实和单帧输入的网络,效果相差无几。 –> 因此这种方式并不能充分地利用空间信息。
    • 最容易想到的时间域输入:端对端的训练方式,直接从3D卷积中学习得到时间域信息. –> 需要大量的数据。
    • 最高效的时间域输入:多帧光流场输入。现在比较被推荐的光流场输入是:stack多个相邻帧的光流场(每个光流场包含水平方向光流和垂直方向光流)。这样的输入方式显式地表述相邻帧之间的运动信息,使得识别更加容易。
  3. 对于时间域网络的再思考
    确实之前有很多时空域的手工设置的特征,如HOF、MBH等。这些特征都是从光流场计算得到的,因此直观的理解是都可以从我们设计的时间域的光流场网络中拓展得到。所以从整体角度来说,这样的光流场输入的时间域计算网络,能够显式地利用光流的一致性和强度连续性,得到除了形态信息之外更加充分地信息,进一步在同样数据集的情况下提高分类、分割准确性

你可能感兴趣的:(cnn)