paper题目:Learning Spatiotemporal Features with 3D Convolutional Networks
paper是FAIR发表在ICCV 2015的工作
paper链接:链接
我们提出了一种简单而有效的时空特征学习方法,该方法使用在大规模监督视频数据集上训练的深度 3 维卷积网络 (3D ConvNets)。我们的发现有三个方面:1)与 2D ConvNets 相比,3D ConvNets 更适合时空特征学习; 2)在所有层中具有小型 3 × 3 × 3 3 \times 3 \times 3 3×3×3卷积核的同构架构是 3D ConvNets 性能最好的架构之一; 3)我们学习到的特征,即 C3D(卷积 3D),带有一个简单的线性分类器,在 4 个不同的基准上优于最先进的方法,并且在其他 2 个基准上与当前的最佳方法相当。此外,这些特征很紧凑:在只有 10 维的 UCF101 数据集上实现了 52.8% 的准确率,并且由于 ConvNets 的快速推理,计算效率也非常高。最后,它们在概念上非常简单,易于训练和使用。
Internet上的多媒体正在迅速增长,每分钟共享越来越多的视频。为了应对信息爆炸,必须理解和分析这些视频以用于搜索、推荐、排名等各种目的。计算机视觉社区几十年来一直致力于视频分析,并解决了不同的问题,如动作识别、异常事件检测和活动理解。通过采用不同的具体解决方案,在这些个别问题上取得了相当大的进展。然而,对有助于以同质方式解决大规模视频任务的通用视频描述符的需求仍然在增长。
有效的视频描述符有四个属性:(i)它需要是通用的,以便它可以很好地表示不同类型的视频,同时具有判别性。例如,网络视频可以是风景、自然场景、运动、电视剧、电影、宠物、美食等; (ii) 描述符需要紧凑:当我们处理数百万个视频时,紧凑的描述符有助于处理、存储和检索更具可扩展性的任务; (iii) 计算需要高效,因为在现实世界的系统中,预计每分钟都会处理数千个视频; (iv) 它必须易于实施。与其使用复杂的特征编码方法和分类器,不如使用一个简单的模型(例如线性分类器),一个好的描述符应该可以很好地工作。
受图像领域深度学习突破的启发,过去几年在特征学习方面取得了快速进展,各种预训练卷积网络 (ConvNet) 模型可用于提取图像特征。这些特征是网络最后几个全连接层的激活,它们在迁移学习任务中表现良好。然而,由于缺乏运动建模,这种基于图像的深度特征并不直接适用于视频(如我们在第 4、5、6 节中的实验所示)。在本文中,我们建议使用深度 3D ConvNet 来学习时空特征。我们凭经验表明,这些具有简单线性分类器的学习特征可以在各种视频分析任务上产生良好的性能。尽管 3D ConvNets 是在之前提出的,但据我们所知,这项工作是在大规模监督训练数据集和现代深度架构的背景下利用 3D ConvNets 在不同类型的视频分析任务上实现最佳性能。这些 3D ConvNet 的特征封装了与视频中的目标、场景和动作相关的信息,使其可用于各种任务,而无需为每个任务微调模型。 C3D 具有一个好的描述符应具备的属性:通用、紧凑、简单和高效。总而言之,我们在本文中的贡献是:
我们通过实验证明 3D 卷积深度网络是很好的特征学习器,可以同时对外观和运动进行建模。
我们凭经验发现,所有层的 3 × 3 × 3 3 \times 3 \times 3 3×3×3卷积核在有限的一组探索架构中工作得最好。
所提出的具有简单线性模型的特征在 4 个不同的任务和 6 个不同的基准上优于或接近当前的最佳方法(见表 1)。它们也很紧凑,计算效率很高。
表 1. C3D 与最佳公布结果的比较。除了 Sports-1M 和 UCF101 之外,C3D 在一系列基准测试中的表现都优于所有以前报告的最佳方法。在 UCF101 上,我们报告了两组方法的准确性。第一组方法仅使用 RGB 帧输入,而第二组方法(括号中)使用所有可能的特征(例如光流、改进的密集轨迹)。
几十年来,计算机视觉社区一直在研究视频。多年来,人们提出了各种问题,如动作识别、异常检测、视频检索、事件和动作检测等等。这些工作中有相当一部分是关于视频表示的。 Laptev 和 Lindeberg [26] 通过将 Harris 角点检测器扩展到 3D 提出了时空兴趣点 (STIP)。 SIFT 和 HOG 也被扩展到 SIFT-3D和HOG3D以进行动作识别。Dollar等人提出了用于行为识别的 Cuboids 特征 [5]。 Sadanand 和 Corso 为动作识别构建了 ActionBank。最近,Wang等人提出了改进的密集轨迹(iDT)[44],这是目前最先进的手工特征。 iDT 描述符是一个有趣的例子,它表明时间信号的处理方式与空间信号的处理方式不同。它没有将 Harris 角点检测器扩展到 3D,而是从视频帧中的密集采样特征点开始,并使用光流来跟踪它们。对于每个跟踪器角,沿轨迹提取不同的手工特征。尽管具有良好的性能,但这种方法计算量很大,并且在大规模数据集上变得难以处理。
随着最近强大的并行机器(GPU、CPU 集群)的出现,以及大量的训练数据,卷积神经网络(ConvNets)卷土重来,在视觉识别方面取得了突破。 ConvNets也被应用于图像和视频中的人体姿态估计问题。更有趣的是,这些深度网络用于图像特征学习。同样,Zhou等人在迁移学习任务上表现出色。深度学习也被应用于无监督环境中的视频特征学习。在Le等人[27]使用堆叠 ISA 来学习视频的时空特征。尽管这种方法在动作识别方面显示出良好的效果,但它在训练时仍然是计算密集型的,并且难以扩大规模以在大型数据集上进行测试。 3D ConvNets 被提出用于人类动作识别和医学图像分割。 3D 卷积还与受限玻尔兹曼机一起使用来学习时空特征。最近,Karpathy 等人[18]在大型视频数据集上训练深度网络进行视频分类。 Simonyan 和 Zisserman 使用双流网络在动作识别方面取得了最佳效果。
在这些方法中,[15]中的3D ConvNets方法与我们关系最为密切。该方法使用人体检测器和头部跟踪来分割视频中的人类主体。被分割的视频volume被用作3个卷积层的3D ConvNet的输入,对动作进行分类。相比之下,我们的方法将完整的视频帧作为输入,不依赖任何预处理,因此很容易扩展到大型数据集。我们与Karpathy等人[18]和Simonyan和Zisserman[36]在使用全帧训练ConvNet方面也有一些相似之处。然而,这些方法都是建立在只使用二维卷积和二维池化操作的基础上(除了[18]中的慢速融合模型),而我们的模型是执行三维卷积和三维池化,将时间信息传播到网络中的所有层(在第3节中进一步详述)。我们还表明,逐步汇集空间和时间信息并建立更深的网络可以达到最佳效果,我们在第3.2节中对架构搜索进行了更多的讨论。
在本节中,我们将详细解释 3D ConvNets 的基本操作,实证分析 3D ConvNets 的不同架构,并详细说明如何在大规模数据集上训练它们以进行特征学习。
我们相信 3D ConvNet 非常适合时空特征学习。与 2D ConvNet 相比,由于 3D 卷积和 3D 池化操作,3D ConvNet 能够更好地对时间信息进行建模。在 3D ConvNets 中,卷积和池化操作在时空上执行,而在 2D ConvNets 中,它们仅在空间上执行。图1说明了这一区别,应用于一幅图像的二维卷积会输出一幅图像,应用于多幅图像的二维卷积(将它们视为不同的通道)也会产生一幅图像。因此,2D ConvNets 在每次卷积操作之后都会丢失输入信号的时间信息。只有 3D 卷积保留了输入信号的时间信息,从而产生输出体积。相同的现象适用于 2D 和 3D 轮询。在[36]中,虽然时间流网络需要多帧作为输入,但由于是2D卷积,在第一个卷积层之后,时间信息被完全折叠。类似地,[18] 中的融合模型使用 2D 卷积,大多数网络在第一个卷积层之后丢失了输入的时间信号。只有 [18] 中的慢融合模型在其前 3 个卷积层中使用 3D 卷积和平均池化。我们相信这是它在 [18] 中研究的所有网络中表现最好的关键原因。但是,在第三个卷积层之后,它仍然会丢失所有的时间信息。
图 1. 2D 和 3D 卷积操作。 a) 在图像上应用 2D 卷积会产生图像。 b) 对视频体积(多帧作为多通道)应用 2D 卷积也会产生图像。 c) 在一个视频体积上应用 3D 卷积会产生另一个体积,保留输入信号的时间信息。
在本节中,我们凭经验尝试为 3D ConvNets 确定一个好的架构。由于在大规模视频数据集上训练深度网络非常耗时,我们首先尝试使用中等规模数据集 UCF101 来寻找最佳架构。我们通过较少的网络实验验证了大规模数据集的发现。根据 2D ConvNet中的发现,具有更深架构的 3 × 3 3 \times 3 3×3卷积核的小感受野会产生最佳结果。因此,对于我们的架构搜索研究,我们将空间感受野固定为 3 × 3 3 \times 3 3×3,并且仅改变 3D 卷积核的时间深度。
符号:为简单起见,从现在开始,我们引用大小为 c × l × h × w c \times l \times h \times w c×l×h×w的视频剪辑,其中 c c c是通道数, l l l是帧数的长度, h h h和 w w w分别是帧的高度和宽度.我们还将 3D 卷积和池化内核大小记为 d × k × k d \times k \times k d×k×k,其中 d d d是内核时间深度, k k k是内核空间大小。
通用网络设置:在本节中,我们描述了我们训练的所有网络通用的网络设置。设置网络以将视频剪辑作为输入并预测属于 101 个不同动作的类别标签。所有视频帧都调整为 128 × 171 128 \times 171 128×171。这大约是 UCF101 帧分辨率的一半。视频被分成不重叠的 16 帧剪辑,然后用作网络的输入。输入尺寸为 3 × 16 × 128 × 171 3 \times 16 \times 128 \times 171 3×16×128×171。我们还在训练期间通过使用大小为 3 × 16 × 112 × 112 3 \times 16 \times 112 \times 112 3×16×112×112的输入剪辑的随机裁剪来使用抖动。该网络有 5 个卷积层和 5 个池化层(每个卷积层后面紧跟着一个池化层)、2 个全连接层和一个用于预测动作标签的 softmax 损失层。从 1 到 5 的 5 个卷积层的过滤器数量分别为 64、128、256、256、256。所有卷积核的大小为 d,其中 d 是内核时间深度(我们稍后将改变这些层的值 d 以搜索良好的 3D 架构)。所有这些卷积层都应用了适当的填充(空间和时间)和步长 1,因此从这些卷积层的输入到输出的大小没有变化。所有池化层都是最大池化,内核大小为 2 × 2 × 2 2 \times 2 \times 2 2×2×2(第一层除外),步长为 1,这意味着与输入信号相比,输出信号的大小减少了 8 倍。第一个池化层的内核大小为 1 × 2 × 2 1 \times 2 \times 2 1×2×2,目的是为了不过早合并时间信号,同时满足16帧的剪辑长度(例如,在完全折叠时间信号之前,我们最多可以以2的系数进行时间池化4次)。两个全连接层有 2048 个输出。我们使用 30 个片段的小批量从头开始训练网络,初始学习率为 0.003。每 4 个 epoch 后,学习率除以 10。训练在 16 个 epoch 后停止。
不同的网络架构:出于本研究的目的,我们主要对如何通过深度网络聚合时间信息感兴趣。为了寻找一个好的 3D ConvNet 架构,我们只改变卷积层的内核时间深度 d i d_{i} di,同时保持所有其他常见的设置如上所述。我们尝试了两种类型的架构:1)相同的时间深度:所有卷积层具有相同的内核时间深度; 2) 不同的时间深度:内核时间深度在各层之间发生变化。对于均匀设置,我们使用 4 个网络进行实验,其内核时间深度 d d d分别等于 1、3、5 和 7。我们将这些网络命名为 depth-d,其中 d d d是它们的均匀时间深度。请注意,depth-1 net 等效于在单独的帧上应用 2D 卷积。对于不同的时间深度设置,我们实验了两个网络,时间深度分别从第一个卷积层到第五个卷积层增加:3-3-5-5-7 和减少:7-5-5-3-3。我们注意到所有这些网络在最后一个池化层具有相同大小的输出信号,因此它们对于全连接层具有相同数量的参数。由于不同的内核时间深度,它们的参数数量仅在卷积层有所不同。与全连接层中的数百万个参数相比,这些差异非常微小。例如,上述任意两个时间深度差为 2 的网络,彼此之间只有 17K 个或多或少的参数。参数数量的最大差异是在 depth-1 网络和 depth-7 网络之间,其中 depth-7 网络的参数多 51K,不到每个网络 1750 万个参数总数的 0.3%。这表明网络的学习能力具有可比性,并且参数数量的差异不应影响我们架构搜索的结果。
我们在 UCF101 的 train split 1 上训练这些网络。图 2 显示了 UCF101 测试split 1 上不同架构的剪辑精度。左图显示了具有均匀时间深度的网络的结果,右图显示了改变内核时间深度的网络的结果。 Depth3 在相同设置网络中表现最好。请注意,depth-1 比其他网络差得多,我们认为这是由于缺乏运动建模。与不同的时间深度网络相比,depth-3 表现最好,但差距更小。我们还尝试了更大的空间感受野(例如 5 × 5 5 \times 5 5×5)和/或全输入分辨率( 240 × 320 240 \times 320 240×320帧输入),并且仍然观察到类似的行为。这表明 3 × 3 × 3 3 \times 3 \times 3 3×3×3是 3D ConvNets 的最佳内核选择(根据我们的实验子集),并且 3D ConvNets 在视频分类方面始终优于 2D ConvNets。我们还验证了 3D ConvNet 在大规模内部数据集(即 I380K)上的性能始终优于 2D ConvNet。
图 2. 3D 卷积核时间深度搜索。不同内核时间深度设置的 UCF101 测试 split-1 上的动作识别剪辑准确度。在实验网络中,2D ConvNet 表现最差, 3 × 3 × 3 3 \times 3 \times 3 3×3×3内核的 3D ConvNet 表现最好。
网络架构:我们在上一节中的发现表明,卷积核为 3 × 3 × 3 3 \times 3 \times 3 3×3×3的相同设置是 3D ConvNets 的最佳选择。这一发现也与 2D ConvNets中的类似发现一致。使用大规模数据集,可以在机器内存限制和计算负担能力的情况下尽可能深地训练具有 3 × 3 × 3 3 \times 3 \times 3 3×3×3内核的 3D ConvNet。使用当前的 GPU 内存,我们将 3D ConvNet 设计为具有 8 个卷积层、5 个池化层、两个全连接层和一个 softmax 输出层。网络架构如图 3 所示。为简单起见,我们从现在开始将此称为网络 C3D。所有 3D 卷积过滤器都是 3 × 3 × 3 3 \times 3 \times 3 3×3×3,步长为 1 × 1 × 1 1 \times 1 \times 1 1×1×1。所有 3D 池化层都是 2 × 2 × 2 2 \times 2 \times 2 2×2×2,步长为 2 × 2 × 2 2 \times 2 \times 2 2×2×2,除了 pool1 的内核大小为 1 × 2 × 2 1 \times 2 \times 2 1×2×2和步幅为 1 × 2 × 2 1 \times 2 \times 2 1×2×2,目的是保留早期阶段的时间信息。每个全连接层有 4096 个输出单元。
图 3. C3D 架构。 C3D 网络有 8 个卷积层、5 个最大池化层和 2 个全连接层,然后是一个 softmax 输出层。所有 3D 卷积核都是 3 × 3 × 3 3 \times 3 \times 3 3×3×3,在空间和时间维度上的步长为 1。每个框中都标明了过滤器的数量。 3D 池化层从 pool1 到 pool5 表示。所有池化内核都是 2 × 2 × 2 2 \times 2 \times 2 2×2×2,除了 pool1 是 1 × 2 × 2 1 \times 2 \times 2 1×2×2。每个全连接层有 4096 个输出单元。
数据集。为了学习时空特征,我们在 Sports-1M 数据集 [18] 上训练 C3D,这是目前最大的视频分类基准。该数据集包含 110 万个体育视频。每个视频都属于 487 个运动类别之一。与UCF101相比,Sports1M的类别数是5倍,视频数是100倍。
训练:训练是在 Sports-1M train split上进行的。由于 Sports-1M 有很多长视频,我们从每个训练视频中随机提取 5 个 2 秒长的剪辑。剪辑的大小被调整为 128 × 171 128 \times 171 128×171的帧大小。在训练时,我们将输入剪辑随机裁剪为 16 × 112 × 112 16 \times 112 \times 112 16×112×112的裁剪,以进行空间和时间抖动。我们还以 50% 的概率水平翻转它们。训练由 SGD 完成,小批量大小为 30 个示例。初始学习率为 0.003,每 150K 次迭代除以 2。优化在 1.9M 次迭代(大约 13 个 epoch)处停止。除了从头开始训练的 C3D 网络之外,我们还尝试使用在 I380K 上预训练的模型微调的 C3D 网络。
Sports-1M 分类结果:表 2 展示了我们的 C3D 网络与 DeepVideo [18] 和卷积池化相比的结果。我们每个剪辑只使用一个中心裁剪,并将其通过网络进行剪辑预测。对于视频预测,我们对从视频中随机提取的 10 个剪辑进行平均剪辑预测。值得注意的是比较方法之间的一些设置差异。 DeepVideo 和 C3D 使用短片段,而卷积池化使用更长的片段。 DeepVideo 使用更多裁剪:每个剪辑 4 个裁剪和每个视频 80 个裁剪,而 C3D 分别使用 1 个和 10 个裁剪。从头开始训练的 C3D 网络产生 84.4% 的准确率,从 I380K 预训练模型微调的网络产生 85.5% 的视频 top5 准确率。两种 C3D 网络都优于 DeepVideo 的网络。 C3D 仍然比 [29] 的方法低 5.6%。然而,这种方法在 120 帧的长剪辑上使用深度图像特征的卷积池化,因此它不能直接与在更短的剪辑上运行的 C3D 和 DeepVideo 相提并论。我们注意到,这种方法的剪辑和视频的 top-1 精度差异很小(1.6%),因为它已经使用 120 帧剪辑作为输入。在实践中,卷积池化或更复杂的聚合方案 [29] 可以应用在 C3D 特征之上,以提高视频命中性能。
表 2 Sports-1M 分类结果C3D 在 top-5 视频级准确度上优于 [18] 5%。 (*)我们注意到 [29] 的方法使用长剪辑,因此其剪辑级精度无法直接与 C3D 和 DeepVideo 相比。
C3D 视频描述符:经过训练,C3D 可以用作其他视频分析任务的特征提取器。为了提取 C3D 特征,视频被分成 16 帧长的剪辑,两个连续剪辑之间有 8 帧重叠。这些剪辑被传递到 C3D 网络以提取 fc6 激活。这些剪辑 fc6 激活被平均以形成 4096 维视频描述符,然后是 L2 归一化。在所有实验中,我们将此表示称为 C3D 视频描述符/特征,除非我们明确指定差异。
C3D 学到了什么?我们使用 [46] 中解释的反卷积方法来了解 C3D 在内部学习什么。我们观察到 C3D 从关注前几帧的外观开始并跟踪后续帧中的显着运动。图 4 可视化了两个 C3D conv5b 特征图的反卷积,其中最高激活投影回图像空间。在第一个示例中,该功能专注于整个人,然后在其余帧上跟踪撑杆跳表演的运动。同样在第二个示例中,它首先关注眼睛,然后在化妆时跟踪眼睛周围发生的运动。因此,C3D 与标准 2D ConvNet 的不同之处在于它选择性地关注运动和外观。我们在补充材料中提供了更多可视化,以便更好地了解学习的特征。
图 4. C3D 模型的可视化,使用 [46] 中的方法。有趣的是,C3D 捕捉前几帧的外观,但之后只关注显著运动。最好在彩色屏幕上观看。
图 9. C3D conv2a 特征图的反卷积。每个组都是一个 C3D conv2a 学习的特征图。前两行:学习过滤器检测移动边缘和斑点。最后一行:学习过滤器检测镜头变化、边缘方向变化和颜色变化。最好在彩色屏幕中观看。
图 10. C3D conv3b 特征图的反卷积。每个组都是一个 C3D conv3b 学习的特征图。上图:特征图检测移动的角点和移动的纹理。中:特征图检测运动的身体部位。下:特征图检测物体轨迹和圆形物体。最好在彩色屏幕中观看。
图 11. C3D conv5b 学习特征图的反卷积,该特征图检测圆形物体的移动运动。在倒数第二个剪辑中,它检测到移动的头部,而在最后一个剪辑中,它检测到移动的卷发器。最好在彩色屏幕中观看。
图 12. C3D conv5b 学习特征图的反卷积,用于检测类似自行车的运动。请注意,最后两个剪辑没有骑自行车,但它们的运动模式类似于骑自行车运动。最好在彩色屏幕中观看。
图 14. C3D conv5b 学习特征图的反卷积,可检测类似平衡木的运动。在最后一个剪辑中,它检测到与平衡木具有相似运动模式的锤击。最好在彩色屏幕中观看。
[5] P . Dollar, V . Rabaud, G. Cottrell, and S. Belongie. Behavior recognition via sparse spatio-temporal features. In Proc. ICCV VS-PETS, 2005. 2
[15] S. Ji, W. Xu, M. Yang, and K. Y u. 3d convolutional neural networks for human action recognition. IEEE TPAMI, 35(1):221–231, 2013. 1, 2
[18] A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar, and L. Fei-Fei. Large-scale video classification with convolutional neural networks. In CVPR, 2014. 1, 2, 3, 4, 5, 6
[26] I. Laptev and T. Lindeberg. Space-time interest points. In ICCV, 2003. 1, 2
[27] Q. V . Le, W. Y . Zou, S. Y . Yeung, and A. Y . Ng. Learning hierarchical invariant spatio-temporal features for action recognition with independent subspace analysis. In CVPR, 2011. 2
[29] J. Ng, M. Hausknecht, S. Vijayanarasimhan, O. Vinyals, R. Monga, and G. Toderici. Beyond short snippets: Deep networks for video classification. In CVPR, 2015. 2, 4, 5, 6, 7
[36] K. Simonyan and A. Zisserman. Two-stream convolutional networks for action recognition in videos. In NIPS, 2014. 2, 6, 7, 8
[44] H. Wang and C. Schmid. Action recognition with improved trajectories. In ICCV, 2013. 2, 5, 7, 8
[46] M. Zeiler and R. Fergus. Visualizing and understanding convolutional networks. In ECCV, 2014. 5, 6