视频是一个时序性的图像,所以在模型中既需要捕捉时间相关性,也需要捕捉空间上的特征。时间相关性可以用LSTM这样的类RNN模型来捕捉,而空间相关性则需要CNN网络。更早一点的ConvLSTM单元就是这种思想。深度学习能够处理各种各样的问题,前提是根据问题本身需要设计相关的网络结构, MCNet和vid2vid是17年和18年比较优秀的视频序列处理算法,本文主要分析vid2vid网络与MCNet相比更加优秀的设计,同时尝试解读设计背后的思考和理由。
首先讲一下2017年 ICLR的论文MCNet:Decomposing Motion and Content for Natural Video Sequence
顾名思义,MCNet考虑动态motion信息和空间content信息,使用不同的网络结构将两种特征分开捕捉,试图更好地获取视频时间线和空间线特征,再将二者合并,用于下游任务(视频预测)。视频预测是一个生成任务,下图是MCNet的Generator。
上图左是一个简单的Motion Content Generator,上图右是一个含有Encoder各层不同尺度的残差Generator。整个Generator包含5种结构:
- Motion Encoder:公式
。Motion Encoder包含两个部分,分别是CNN特征提取网络和ConvLSTM层。其中CNN特征提取层是三层卷积网络,且每帧都共享参数;每个ConvLSTM单元则包含一次卷积和一层LSTM。CNN特征提取层的输入是x(t)-x(t-1),它是当前帧图像和上一帧图像的像素值差;ConvLSTM 单元则还需要输入上帧输出的隐藏状态向量d(t-1)和c(t-1),类比于LSTM,d相当于LSTM里的h,是上帧的ConvLSTM单元输出的特征向量,c(t-1)是上帧单元输出的记忆单元(类似于LST