Abstract
- 本研究的目的是确定现有的视频数据集是否有足够的数据来训练具有时空三维核的非常深卷积神经网络(cnns)。近年来,三维cnns在动作识别领域的性能水平有了显著的提高。然而,到目前为止,传统的研究只探索了相对较浅的三维结构。在现有的视频数据集上,我们研究了从浅到深的各种3d cnn的体系结构。根据这些实验的结果,得出以下结论可获得:(i)resnet-18训练导致ucf-101、hmdb-51和activitynet显著过拟合,但对动力学没有影响。(ii)动力学数据集有足够的数据用于深部3d cnns的训练,并且能够训练多达152个resnets层,有趣的是类似于imagenet上的2d resnets。resnext-101在动力学试验装置上达到了78.4%的平均精度。(iii)动力学预训练简单3d结构优于复杂2d结构,预训练resnext-101在ucf-101和hmdb-51上分别达到94.5%和70.2%。
- 在imagenet上训练的二维cnn的使用,在图像的各种任务中产生了显著的进展。我们相信,将深部三维cnns与动力学结合使用,将追溯2dcnns和imagenet的成功历史,并促进视频计算机视觉的发展。本研究中使用的代码和预训练模型是公开的。
Introduction
- 在使用具有大量参数的深卷积神经网络(cnns)时,大规模数据集的使用是极其重要的,近年来cnns在计算机视觉领域的应用也有了显著的扩展。ImageNet[4]包含了超过100万张图像,为成功的基于视觉的算法的创建做出了重大贡献。除了如此大规模的数据集,大量的算法,如残差学习[10],已经被用于通过增加cnn的深度来提高图像分类性能,并且使用在imagenet上训练的非常深的cnn有助于获得一般特征表示。反过来,使用这种特征表示,显著地提高了其他一些任务的性能,包括对象检测、语义分割和图像字幕。
- 迄今为止,与图像识别数据集相比,可用于动作识别的视频数据集相对较小。代表性的视频数据集,如UCF101(21)和HMB-51(17),可以用来提供具有大约10 K的真实视频,但是即使它们仍然被用作标准基准,这些数据集显然也是。小的,用于从零开始优化cnn表示。在过去的几年里,activitynet[5]这个稍大一点的视频数据集已经变得可用,它的使用使得完成一些额外的任务成为可能,比如未经修剪的动作分类和检测,但是它包含的动作实例数量仍然有限。最近,创建动力学数据集〔16〕,其目的是定位为阿德FACTO视频数据集标准,该标准大致相当于ImageNet相对于图像数据集所持有的位置。为动力学数据集收集了超过300k个视频,这意味着视频数据集的规模已经开始接近图像的规模数据集。
- 对于动作识别,具有时空三维卷积核(3d-cnns)的cnns最近比具有二维卷积核(2d-cnns)的cnns更有效[2]。从几年前[14]开始,3d cnn被用来提供一种有效的精确动作识别工具。然而,即使使用组织良好的模型[23,25]也未能克服基于二维的cnn的优点,该cnn结合了层叠流和rgb图像[20]。造成这种失败的主要原因是视频数据集的数据规模相对较小,可用于优化3d cnn中的大量参数,这些参数比2d cnn中的参数要大得多。此外,基本上3D CNNs只能被训练在视频数据集上,而2D CNNs可以在ImageNet上进行预训练。然而,最近,Carreira和Zisserman利用动力学数据集以及在ImageNet上预处理的二维核膨胀为三维核,取得了重大突破[2]。因此,我们现在有一个复杂的3D卷积的好处,可以参与的动力学数据集。
- 然而,3D机器人能追溯2D和ImageNet的成功历史吗?更具体地说,可以使用在动力学上训练的3D CNNs在动作识别和其他各种任务中产生重大进展吗?为了取得这样的进展,我们认为三维cnns的动力学应该和二维cnns的imagenet一样大,尽管之前的工作还没有对动力学的尺度进行足够的研究。为了取得这样的进展,我们认为三维cnns的动力学应该和二维cnns的imagenet一样大,尽管之前的工作还没有对动力学的尺度进行足够的研究。传统的三维cnn结构在动力学方面的训练还比较浅。如果使用动力学数据集能够在类似于IMANET可以训练152层2D CNNs(10),这个问题可以得到肯定的回答。
- 在这项研究中,我们使用动力学和其他流行的视频数据集(ucf-101、hmdb-51和activitynet)来研究从相对浅到非常深的各种3d cnn架构,以便为我们回答上述问题提供见解。在本研究中测试的3d cnn架构基于剩余网络(resnets)[10]及其扩展版本[11、12、30、31],因为它们具有简单有效的结构。因此,使用这些数据集,我们进行了一些实验,旨在从头开始训练和测试这些体系结构,并对其进行微调。这些实验的结果(详见第4节)显示动力学数据集可以将3D RESNET-152从头训练到与ImageNet上的2D ReNets完成的训练类似的水平,如图2所示。基于这些结果,我们将讨论未来在动作识别和其他视频任务方面取得进展的可能性。
- 据我们所知,这是第一个致力于从零开始训练用于动作识别的非常深的3d cnn的工作。先前的研究表明,在imagenet上训练的更深层次的2d cnn获得了更好的性能[10]。然而,由于图像数据集的数据规模与视频数据集的数据规模不同,因此在前人研究的基础上,显示出更深层次的三维cnn具有更好的性能并非易事。这项研究的结果,这表明更深的三维立体视觉是更有效的,可以预期,以促进进一步发展的计算机视觉的视频。
Related Work
- hmdb-51[17]和ucf-101[21]数据集是目前动作识别领域最成功的数据集。这些数据集在该领域的早期获得了显著的普及,并且仍然被用作流行的基准。然而,最近的一项共识表明,它们根本不足以从零开始训练深层cnn[16]。在上述数据集被引入后的几年中,产生了更大的视频数据集。其中包括activitynet[5],它包含849小时的视频,包括28000个动作实例。activitynet还提供了一些额外的任务,比如未经处理的分类和检测,但是操作实例的数量仍然在数万个左右。今年(2017年),为了创建一个成功的预训练模型,Kay等人发布了动力学数据集[16]。动力学数据集包括超过300000个剪辑视频,涵盖400个类别。为了确定它是否可以训练更深的3D CNNs,我们使用这些最新的数据集以及ucf-101和hmdb-51数据集进行了一些实验。
- 其他巨大的数据集如sports-1m[15]和youtube-8m[1]也被提出。尽管这些数据库比动力学数据库大,但它们的注释是稍微有点吵,只分配了视频级别的标签。这种噪声和不相关帧的存在有可能阻止这些模型提供良好的训练。此外,由于文件大小超过10 TB,它们的规模实在太大,无法方便地使用。由于这些问题,我们在本研究中将不再讨论这些数据集。
- 基于CNN的动作识别的一种流行方法是使用具有二维卷积核的两流CNN。在他们的研究中,Simonyan等人提出了一种分别使用rgb和叠加光流帧作为外观和运动信息的方法[20],结果表明,将这两种流结合起来能够提高动作识别的准确率。自那以后,人们提出了许多基于两流CNN的方法来提高动作识别性能。
- 与上述方法不同的是,我们关注的是具有3d卷积核的cnn,这些cnn最近开始通过使用大规模视频数据集而优于2D CNN。这些3D CNNs是直观有效的,因为这样的3D卷积可以用于直接从原始视频中提取时空特征。例如,Ji等人提出应用三维卷积提取时空信息视频中的功能,而Tran等人使用sports1m数据集训练3d cnns,他们称之为c3d[15]。自那项研究以来,c3d一直被视为3d cnn的事实标准。实验还发现,3×3×3卷积核达到了最佳的性能水平。在另一项研究中,Varol等人结果表明,扩展c3d输入的时间长度可以提高识别性能。这些作者还发现,使用光流作为3d cnn的输入比使用rgb可以获得更高的性能水平。输入,但最好的性能可以通过结合rgb和光流来实现。与此同时,凯等人。结果表明,尽管在UCF101和HMDB51数据集上训练的三维CNN结果低于二维CNN结果,但在动力学数据集上从头训练的三维CNN结果与在ImageNet上预训练的二维CNN结果具有可比性。在另一项研究中,Carreira等人提议的基于初始[22]的3D CNN,他们称之为i3d,并取得了最先进的性能[2]。最近,一些工作将resnet架构引入到3d cnns中[9,24],尽管他们只研究了相对较浅的架构。
Experimental Configuration
- 在本研究中,为了确定当前的视频数据集是否有足够的数据用于深部3d cnn的训练,我们使用ucf-101[21]、hmdb-51[17]、activitynet[5]和dynamics[16]进行了以下三个实验。我们首先研究了在每个视频数据集上从头开始训练相对浅的3d cnn。根据文献[9,16],在ucf-101、hmdb-51和activitynet上训练的三维cnn精度不高,而在动力学上训练的cnn效果较好。我们试图重现这些结果,以确定这些数据集是否有足够的数据用于deep 3d cnns。具体来说,我们使用的resnet-18是最浅的resnet架构,基于这样一个假设:如果resnet-18在数据集上训练时过度,那么该数据集太小,无法从头开始训练深层3d cnn。然后我们进行了一个单独的实验,以确定动力学数据集是否可以训练更深层次的3d cnn。本次试验的一个要点是确定数据集可以训练3D CNNs的深度。因此,我们在模型深度从18到200之间变化的同时,对3d resnets进行动力学训练。如果动力学可以训练非常深的cnn,例如resnet-152,它在imagenet上获得了resnet的最佳性能[10],我们可以确信它们有足够的数据训练3d cnn。因此,本实验的结果对今后动作识别等视频任务的研究具有重要的意义。
- 在最后的实验中,我们研究了ucf-101和hmdb-51上的动力学预训练3d cnns的微调。由于在大型数据集上进行预训练是在小型数据集上获得良好性能水平的有效方法,因此我们期望在动力学上进行预训练的深度3d resnets在相对较小的ucf-101和hmdb-51上表现良好。这个实验检验了转移视觉表征是否从一个域到另一个域的深度3d cnn有效地工作。
- 接下来,我们将解释本研究中使用的各种基于resnet的架构和3d卷积。resnet是图像分类中最成功的体系结构之一,它提供了一种快捷连接,允许信号绕过一层,并按顺序移动到下一层。由于这些连接通过网络的梯度流从后来的层到早期的层,它们可以促进非常深的网络的训练。不同于以往只研究有限的3d resnet架构的研究[9,24],我们不仅研究了更深层的体系结构,还研究了resnet的一些扩展版本。特别是,我们探索以下架构:resnet(基本和瓶颈块)[10],预激活resnet[11],wide resnet(wrn)[31]、resnext[30]和densenet[12]。
- 一个基本的resnets块由两个卷积层组成,每个卷积层之后是批处理规范化和relu。快捷方式将块的顶部连接到块中最后一个relu之前的图层。resnet-18和34采用基本块。我们使用标识连接和零填充作为基本块(在[10]中键入a)的快捷方式,以避免增加这些相对较浅的网络的参数数量。
- resnets瓶颈块由三个卷积层组成。第一和第三卷积层的核大小为1×1×1,而第二卷积层的核大小为3×3×3。此块的快捷方式与基本块的快捷方式相同。resnet-50、101、152和200采用瓶颈。我们使用身份连接,除了那些用于增加维度的连接。
- 预激活resnet类似于瓶颈resnet体系结构,但在卷积、批处理规范化和relu顺序上存在差异。在resnet中,每个卷积层之后是批处理规范化和一个relu,而预激活resnet的每一批规范化之后是relu和卷积层。快捷通道将块的顶部连接到块中最后一个卷积层之后的层。在他们的研究中,他等。表明这种预激活有助于训练中的优化,并减少过度拟合[11]。在这项研究中,预激活RESNET-200进行了评价。
- WRN体系结构与resnet(瓶颈)相同,但每个卷积层的特征映射的数量不同。WRN增加了特征映射的数量,而不是图层的数量。这样在使用gpu的并行计算中,宽架构是有效的[31]。在本研究中,我们使用2的加宽因子来评估wrn-50。
- resnext介绍了基数,它是一个不同的维度从更深和更广。与原始的瓶颈块不同,resnext块引入了组卷积,将特征映射分成小组。基数是指瓶颈块中的中间卷积层组的数目。在他们的研究中,谢等人。表明增加2d架构的基数比使用更宽或更深的架构更有效[30]。在本研究中,我们使用32的基数来评估resnext-101。
- densenet通过使用不同于resnets求和的连接,实现从早期层到后期层的连接。这种连接以前馈的方式紧密地连接每一层。densenets还采用了预激活resnets中使用的预激活。在他们的研究中,黄等人。结果表明,与resnets相比,该算法在参数较少的情况下获得了更好的精度[12]。在本研究中,我们使用32的生长率评估densenet-121和201。
- 在训练数据中,我们使用带动量的随机梯度下降来训练网络,并从视频中随机生成训练样本,以进行数据扩充。首先,我们通过均匀采样来选择视频中的时间位置,以生成训练样本。然后在选定的时间位置。如果视频短于16帧,那么我们会根据需要循环多次。接下来,我们从4个角或中心随机选择一个空间位置。除了空间位置之外,我们还选择样本的空间尺度以执行多尺度裁剪,比例从
中选择。标度1表示样品的宽度和高度与框架的短边长度相同,标度0.5表示样品的长度是短边长度的一半。样本纵横比为1,样本在位置,比例和纵横比上进行时空裁剪。 我们在空间上调整样本的大小为112×112像素。每个样本的大小为3个通道×16帧×112像素×112像素,每个样本以50%的概率水平翻转。我们还执行平均值减去,这意味着我们从每个颜色通道的样本中减去activitynet的平均值。所有生成的示例都保留与其原始视频相同的类标签。
- 在我们的训练中,我们使用交叉熵损失并反向传播它们的梯度。 训练参数包括动量的0.001和0.9的重量衰减。 当从头开始训练网络时,我们从学习率0.1开始,并在验证损失饱和后将其除以10。 在进行微调时,我们从0.001的学习率开始,并指定1e-5的权重衰减。
- 我们采用滑动窗口的方式产生输入片段(即每个视频被分割成不重叠的16帧片段),并使用训练好的网络识别视频中的动作。每个剪辑在空间上围绕比例1处的中心位置裁剪。然后,我们将每个片段输入网络,并估计片段类分数,这些分数在视频的所有片段上取平均值。得分最大的类指示已识别的类标签。
Conclusion
- 在这项研究中,我们在当前视频数据集上检查了具有时空3D卷积核的各种CNN的体系结构。 根据这些实验的结果,可以得到以下结论:
- (i)ResNet-18训练导致UCF-101,HMDB-51和ActivityNet的显着过度拟合,但不是动力学。
(ii)Kinetics数据集具有足够的数据用于深3D CNN的训练,并且能够训练多达152个ResNets层,有趣地类似于ImageNet上的2D ResNets。 - (iii)动力学预训练的简单3D体系结构优于UCF-101和HMDB-51上的复杂2D体系结构,预训练的ResNeXt-101分别在UCF-101和HMDB-51上实现了94.5%和70.2%。