Learning Spatiotemporal Features with 3D Convolutional Networks

1. Introduction

      互联网上的多媒体正在快速增长,导致每分钟共享越来越多的视频。为了打击信息爆炸,必须理解和分析这些视频,用于搜索,推荐,排名等各种用途。计算机视觉界一直在进行数十年的视频分析,解决了动作识别[26],异常事件检测[2]和活动理解[23]等不同的问题。通过采用不同的具体解决方案,在这些独立问题上取得了相当大的进展。然而,仍然需要一种通用视频描述符,有助于以均匀的方式解决大规模视频任务。

       有效的视频描述符有四个属性:(i)它需要是通用的,因此它可以很好地代表不同类型的视频,同时具有辨别性。 例如,互联网视频可以是景观,自然场景,体育,电视节目,电影,宠物,食物等; (ii)描述符需要是 紧凑 的:因为我们正在使用数百万个视频,一个紧凑的描述符可以帮助处理,存储和检索任务更加可扩展; (iii)它需要是能 高效的计算 ,因为 在现实系统中每分钟需要处理 数千个视频;和(iv)它必须 很容易实现 。而不是使用复杂的 特征编码方法和分类器,即使使用简单的模型(例如线性分类器),一个良好的描述符也应该很好地工作。

       受过去几年深度学习在图像领域的突破的启发,即在特征学习中的迅速发展[24],各种预训练的卷积网络模型(ConvNet)[16]可用于提取图像特征。这些特征是网络最后几个全连接层的激活,这些特征在迁移学习任务中表现良好[47,48]。然而,由于缺乏运动建模,这种基于图像的深层特征并不直接适用于视频(如第4,5,6节中的实验所示)。在本文中,我们提出使用深度3D ConvNet来学习时空特征。我们经验性地表明,使用简单线性分类器和这些学习到的特征可以在各种视频分析任务上产生良好的性能。虽然3D ConvNets在之前被提出[15,18],但据我们所知,本文在大规模监督训练数据集和现代深层架构的背景下,利用3D ConvNets,以在不同类型的视频分析任务上实现最佳性能。这些3D ConvNets的特征将与视频中的对象,场景和动作相关的信息封装起来,使其对各种任务有用,而无需为每个任务微调模型。C3D具有一个良好的描述符应具有的属性:它是通用的,紧凑的,简单的和高效的。总而言之,我们在本文中的贡献是:
•我们实验性表明,3D卷积深度网络是同时对外观和运动进行建模的良好的特征学习机
•我们经验的发现,所有层的3×3×3卷积核在有限的探索架构中最有效(不懂)
•使用简单线性模型和所提出的特征,4个不同任务和6个不同基准上优于或接近的目前最佳方法(见表1)。它们也是紧凑和高效的计算。

Learning Spatiotemporal Features with 3D Convolutional Networks_第1张图片

2. Related Work

       视频已被计算机视觉界研究了几十年。多年来,已经提出了诸如动作识别[26],异常检测[2],视频检索[1],事件和动作检测[30,17]等诸多问题。这些工作的相当一部分是关于视频表示。Laptev和Lindeberg [26]通过将Harris corner detector扩展到3D,来提出 spatio-temporal interest points (STIPs)。SIFT和HOG也被扩展为SIFT-3D [34]和HOG3D [19],用于动作识别。Dollar 提出了Cuboids特征进行行为识别[5]。Sadanand和Corso建立了ActionBank来进行行为识别[33]。最近,王等人提出改进的 Dense Trajectories (iDT)[44],是目前最先进的hand-crafted 特征。iDT描述符是一个有趣的例子,显示时间信号的处理可以与空间信号的处理不同。而不是将Harris corner detector扩展到3D,它从视频帧中的密集采样特征点开始,并使用光流来跟踪它们。对于每个跟踪器角,不同的hand-crafted 特征都是沿着这个轨迹提取出来的。尽管它的性能很好,但是这种方法在计算上是密集型的,并且在大规模数据集中变得棘手。
       随着近来可用的强大的并行机器(GPU,CPU集群),以及大量的训练数据,卷积神经网络(ConvNets)[28]
已经回顾了视觉识别的突破[10,24]。 ConvNets也被应用于图像[12]和视频[13]中人体姿态估计的问题。更有趣的是,这些深层网络用于图像特征学习[7]。同样,并且在迁移学习任务上表现良好。在无监督的设置中,深度学习也被应用于视频特征学习[27]。在Le [27],作者使用堆叠的ISA来学习视频的时空特征。虽然这种方法在动作识别方面表现出良好的效果,但是在训练上仍然是计算密集型的,并且难以扩展到大规模数据集的测试。 3D ConvNets被提出用于人类动作识别[15]和医学图像分割[14,42]。3D卷积也用于限制玻尔兹曼机,来学习时空特征[40]。最近,Karpathy等[18]在大型视频数据集上训练深度网络进行视频分类。Simonyan和Zisserman [36]使用two-stream
网络来实现行动识别的最佳结果。

       在这些方法中,[15]中的3D ConvNets方法与我们的方法最密切相关。 该方法使用人体检测器和头部跟踪来分割视频中的人类subject。分段视频卷被用作3D ConvNet 3-卷积层的输入,以对动作进行分类。相比之下,我们的方法将完整的视频帧作为输入,并且不依赖于任何预处理,因此容易扩展到大型数据集。我们也与Karpathy等人[18]和Simonyan和Zisserman [36]有一些相似之处,关于使用完整的视频帧来训练ConvNet。然而,这些方法建立在仅使用2D卷积和2D池化操作之上([18]中的Slow Fusion模型除外),而我们的模型执行3D卷积和3D池化,在网络的所有层之间传播时间信息(在第3部分进一步详述)。我们还显示,逐渐池化空间和时间信息,建立更深层次的网络,可以取得最佳效果,我们将在3.2节讨论有关体系结构搜索的更多信息。

3.LearningFeatureswith3DConvNets 

       在本节中,我们详细介绍3D ConvNets的基本操作,分析了3D ConvNets的不同体系结构,并详细阐述了如何在大规模数据集上训练它们,进行特征学习。

3.1.  3D convolution and pooling 

       我们认为,3D ConvNet非常适合于时空特征学习。与2D ConvNet相比,3D ConvNet能够通过3D卷积和3D池化操作更好地建模时间信息。在3D ConvNets中,卷积和池化操作在时空上执行,而在2D ConvNets中,它们仅在空间上完成。

Learning Spatiotemporal Features with 3D Convolutional Networks_第2张图片

图1解释了差异,应用于图像的2D卷积将输出一个图像,应用在多个图像上的2D卷积(将它们视为不同的通道[36])也输出一个图像。因此,2D ConvNets在每次卷积运算之后,就会丢失输入信号的时间信息。只有3D卷积才能保留输入信号的时间信息,从而产生输出量。相同的现象适用于2D和3D池化。在[36]中,虽然时间流网络采用多个帧作为输入,但是由于2D卷积,在第一个卷积层之后,时间信息被完全折叠。类似地,[18]中的融合模型使用2D卷积,大部分网络在第一个卷积层之后,失去其输入的时间信号。只有[18]中的slow fusion模型在其前3个卷积层中使用3D卷积和平均池化。我们认为,这是在[18]研究的所有网络中这个网络表现最好的关键原因。然而,它仍然在第三个卷积层之后失去所有时间信息。

       在本节中,我们经验性地尝试发现3D ConvNets的良好架构。由于在大型视频数据集上训练深层网络非常耗时,我们首先尝试使用中型数据集UCF101来搜索最佳架构。我们使用较少数量的网络实验在大型数据集上验证发现。
根据2D ConvNet [37]的研究结果,具有小的感受野的3×3卷积核的更深体系结构产生最佳效果。因此,对于我们的架构搜索研究,我们固定空间感受野为3×3,并且仅改变3D卷积核的时间深度。(不懂)

Notations:

      为了简单起见,从现在开始,我们使用尺寸为c×l×h×w的视频剪辑,其中c是通道数,l是帧数的长度,h和w分别是帧的高度和宽度。我们还将3D卷积和池化核大小指定为d×k×k,其中d是核的时间深度,k是核的空间大小。

Common network settings:

       在本节中,我们将介绍我们训练所有网络的通用的网络设置。网络设置为将视频剪辑作为输入,并预测属于101个不同动作的类别标签。所有视频帧的大小调整为128×171。这大约是UCF101帧的一半分辨率。视频被分割成非重叠的16帧剪辑,然后将其用作网络的输入。输入尺寸为3×16×128×171。我们在训练期间还通过使用大小为3×16×112×112的输入剪辑的随机裁剪,使用抖动。网络具有5个卷积层和5个池化层(每个卷积层紧随其后的是池化层),2个完全连接层和s​​oftmax损失层来预测动作标签。5个卷积层的滤波器数量从1到5分别64,128,256,256,256。

所有卷积核都具有d的大小,其中d是核的时间深度(稍后将改变这些层的d值以搜索良好的3D体系结构)。所有这些卷积层都应用适当的padding(空间和时间)和步长为1,因此从输入到这些卷积层的输出,尺寸没有变化。所有池化层都是最大池化,其尺寸为2×2×2(第一层除外),步长为1,这意味着与输入信号相比,输出信号的大小减小了8倍。第一个池化层的核大小为1×2×2,其意图是不能太早地合并时间信号,并且也能够满足16帧的剪辑长度(例如,在时间信号完全折叠之前,我们可以暂时以系数2进行池化,最多4次)。两个完全连接层有2048个输出。我们使用30个剪辑的mini-batch从头开始训练网络,初始学习率为0.003。学习率在每4次迭代周期之后除以10。训练在16个迭代周期之后停止。

Varying network architectures:

     为了本研究的目的,我们主要关心如何通过深层网络聚合时间信息。为了寻找一个好的3D ConvNet架构,我们只改变卷积层的核的时间深度di,同时保持所有其他常见设置如上所述。我们尝试两种类型的架构:1)均匀时间深度:所有卷积层具有相同的核时间深度;2)变化的时间深度:核的时间深度在层之间变化。对于均匀设置,我们实验了具有d等于1,3,5和7的核时间深度的4个网络。我们将这些网络命名为depth-d,其中d是其均匀的时间深度。请注意,depth-1网络相当于在单独的帧上应用2D卷积。对于不同的时间深度设置,我们分别实验了两个网络:具有时间深度增加:3-3-5-5-7和减少:7-5-5-3-3,从第一到第五个卷积层。我们注意到,所有这些网络在最后一个池化层具有相同的输出信号大小,因此它们对于完全连接层具有相同数量的参数。由于不同的核时间深度,它们的参数数量在卷积层上是不同的。与完全连接层中的数百万个参数相比,这些差异是相当微小的。 例如,上述时间深度差为2的网络中只有17K个参数,彼此之间较少或较多。参数数量的最大差异在于depth-1网络和depth-7网络之间,深度-7网络具有51K以上的参数,小于每个网络17.5百万个参数的0.3%。这表明网络的学习能力是可比的,参数数量的差异不应影响我们的架构搜索结果。



你可能感兴趣的:(视频目标检测)