双流CNN通过效仿人体视觉过程,对视频信息理解,在处理视频图像中的环境空间信息的基础上,对视频帧序列中的时序信息进行理解,为了更好地对这些信息进行理解,双流卷积神经网络将异常行为分类任务分为两个不同的部分。单独的视频单帧作为表述空间信息的载体,其中包含环境、视频中的物体等空间信息,称为空间信息网络;另外,光流信息作为时序信息的载体输入到另外一个卷积神经网络中,用来理解动作的动态特征,称为时间信息网络,为了获得比较好的异常行为分类效果,我们选用卷积神经网络对获得的数据样本进行特征提取和分类,我们将得到的单帧彩色图像与单帧光流图像以及叠加后的光流图像作为网络输入,分别对图像进行分类后,再对不同模型得到的结果进行融合。双流卷积神经网络结构如下图所示:
深度学习的效果好坏,很大程度上取决于网络的结构,目前深度学习的浪潮也催生了很多应用于不同任务的优秀网络结构,随着研究的深入和网络结构的加深,不同结构得出的效果也证实,随着网络层次结构的合理加深,网络的效果也有相应的提升。原始双流CNN的时空信息结构使用的是中等规模的卷积神经网络CNN_M网络结构。其网络结构如下图所示:
CNN_M的结构设计基本上和AlexNet是同一种思路,包括5层卷积层和3层全连接层,网络的输入图像尺寸被固定在224×224。与 AlexNet相比,CNN_M包含更多的卷积滤波器。第一层卷积层的卷积核尺寸缩小为7×7,卷积步长减小为2,其他层次的参数都与 AlexNet相同。通过增加滤波器的数量,减小滤波器的尺寸和步长,CNN_M可以更好地发现和保留原始输入图像的细节信息,因此,CNN_M学习到的滤波器较之前的网络结构有更好的鲁棒性和更高的准确率。CNN_M在ILSVRC-2014物体识别任务上获得了 13.5%的top 5错误率,较之前的网络模型有大幅度的减少。
神经网络训练任务中一个较为重要的过程就是如何对各个神经元进行权重的初始化。神经元初始权重的选择将直接影响到网络的收敛速度以及训练效果,如何选择一种合适的初始化方式也成为了我们需要解决的问题。常用的初始化方法包括全0全1初始化、高斯随机初始化、标准方差初始化等,但是效果往往一般。在实际应用中,由于数据集的大小有限,迭代的次数过少,容易造成网络的过拟合或者网络不收敛,这样得到的网络效果通常很差,因此,通常不会直接训练卷积神经网络,而是使用迁移学习的方法对预训练好的网络模型在不同的数据集上进行微调,从而获得更好的效果。 如果选择目标分类任务场景相似的大规模数据集来进行预训练,由于新任务的数据量较小,容易造成过拟合。因此,选取ImageNet ILSVRC-2012物体分类数据集对网络进行预训练,然后再在动作分类数据集上进行微调。对于空间信息,直接使用RGB单帧图像进行训练和预测,预训练数据集和动作视频数据集的模式相差不多,但对于时序信息的光流特征,光流场的模式与普通RGB图像有所差异,所以对光流图像进行上一节中所述的处理,将光流矢量投影到0到255的区间内,用彩色图像的形式对光流矢量图进行表示。在之后的实验中,发现通过RGB图像预训练的模型对光流图像的训练也同样适用。
另外,由于在ImageNet上预训练了模型,需要调小模型训练初始的学习率,并根据训练的迭代次数对学习率实时进行调整,随着迭代次数的增多,减小学习率。最终得到在动作数据集上训练好的网络模型,并且可以根据具体的应用场景以及数据集模式对模型加以调整,进行迁移学习。