2D和3D卷积网络应用于视频数据比较

2021-04-16 16:55:24 浏览数 (1)

需要解决的问题和数据集

本文目的是研究使用神经网络对视频帧进行分类的方法,特别是研究将时间信息与视频帧的空间信息一起考虑的体系结构。我们旨在证明,仅将标准卷积神经网络单独应用于视频的每个帧,对于可以捕获视频帧之间的时间模式的模型而言是一种较差的方法。

我们使用的数据集是Rat Social Interaction数据集,它是包含两只老鼠的一系列视频,这些视频的所有帧都标有老鼠的行为。我们将10类问题减少到两类:交互行为和孤立行为。数据集包含约200,000帧,并且这些帧在两个类别之间几乎均等地划分,因此我们模型的基准精度应大于50%。我们使用数据集的前半部分进行训练,后半部分用于估计泛化误差。

基于改进VGG网络的标准cnn

我们的项目开始于VGG架构的修改版本,我们称之为mVGG。我们将使用这些标准的2D卷积神经网络作为起点,然后建立它们来利用时间信息。

改进后的VGG网络(mVGG)整体块结构与原VGG网络相同,我们用Max-Pooling层分隔了5个卷积层块,每个块后的feature map在两个图像维上都减小了2倍。每个block由多个2D卷积层组成,但与原始VGG网络不同的是,我们在每个卷积层之后使用dropout和批处理归一化层。每个卷积层使用尺寸为3x3、填充“相同”的核,从而保持图像的高度和宽度,并具有ReLU激活函数。我们使用了0.05的dropout,最大池层使用2x2的池大小和2x2的步长,就像原来的VGG架构一样。这些池化层选项确保在每个块之后,图像大小在每个方向上减少2倍。最后,在最后一个最大池化层之后,我们将神经元压平,并使用Softmax激活的全连接层输出两个神经元的预测输出。

每个mVGG网络的前两个块有两个2D卷积的重复加上dropout和批归一化层,最后三个块有可变的N个层。我们考虑N = 2、3、4、5的mVGG网络,分别表示为mVGG11、mVGG14、mVGG17、mVGG20,因为11、14、17、20表示每个网络的可训练层数。

使用3D卷积提取时间信息

就像卷积层可以在图像数据中提取空间模式一样,卷积也可以沿着时间维度来提取数据中的时间模式。但是,如果我们的数据中既有空间模式也有时间模式,就像我们处理视频数据一样,这两种模式可以形成更复杂的时空模式,我们想要一起分析它们可以通过使用3D卷积来实现,其中第一个卷积轴沿着时间方向,第二个和第三个轴用于视频帧的空间维度。

我们的三维卷积神经网络在我们的mVGG网络的基础上,除了二维卷积层外,用三维卷积层代替,二维Max-Pooling层用3D Max-Pooling层代替。网络的输入是视频的连续帧序列,这是一个张量的大小(128,128,128)。第一个维度是时间维度,第二个和第三个维度是空间维度。三维卷积层利用内核的大小(3,3,3),和3 d Max-Pooling层使用池化大小(1、2、2)和(1、2、2)。因此,池化并时间维度进行池化,所以每一层的输出总是保持时间维度的128点。对于我们的每个mVGG网络,我们都有一个等效的3D卷积版本,我们将其表示为mVGG11-3D、mVGG14-3D、mVGG17-3D和mVGG20-3D。

这种架构的一个问题是,与标准的mVGG网络相比,额外的卷积维度需要更多的模型参数。为了将参数数量减少到与mVGG网络相同的数量级,我们在每个块上只使用了等效mVGG网络核数量的一半。

RatSI数据集的性能

上面描述的所有模型都使用Adam优化器进行了训练,每个模型的辍学率均设置为0.05,因为发现这足够了,而且可以尽早停止以防止过度拟合。mVGG网络以128的批量大小进行训练,而mVGG-3D网络以1的批量大小进行训练,因为128帧的序列在训练时会占用大量内存。

总结

使用3D的卷积只训练了2个模型,但是从图中可以看到,准确率要比2D卷积好的多,但是使用3d卷积的问题是不能获取更长时间的依赖(这里我们只用了128帧)

另一个可以使用数据中的时间信息的体系结构是使用卷积-LSTM网络,它使用的LSTM层具有卷积内核,而不是普通的仿射转换。这些层已经被证明可以有效地捕捉时空模式,因为架构的卷积和LSTM组件在网络的每一层中绑定在一起。下一篇文章中我们将讨论这种架构。

作者:Maitreya Venkataswamy

原文地址:https://medium.com/convolutional-lstm-neural-networks-for-video-frame/2d-and-3d-convolutional-networks-applied-to-video-data-15b7ad2b861c

0 人点赞