摘要
针对时空特征的学习,我们提出了一个简单有效的方法,在大规模有监督视频数据集上使用深度3维卷积网络(3D ConvNets)。我们有3个发现:
- 3D ConvNets比2D ConvNets更适用于时空特征的学习;
- 对于3D ConvNet而言,在所有层使用3×3×3的小卷积核效果最好;
- 我们通过简单的线性分类器学到的特征名为C3D(Convolutional 3D),在4个不同的基准上优于现有的方法,并在其他2个基准上与目前最好的方法相当。
此外,特征是紧凑的:在UCF101数据集上得到52.8%的准确率只用了10维,并且由于ConvNets的推断快,计算效率非常高。最后,它们在概念上非常简单,易于训练和使用。
1. 引言
互联网上的多媒体正在迅速增长,每分钟都有越来越多的视频被分享。为了对抗信息爆炸,必须了解和分析这些视频,如搜索、推荐、排名等。计算机视觉领域几十年来一直致力于视频分析,并解决了诸如动作识别、异常事件检测、活动理解等不同问题。通过使用不同的具体解决方案,在这些个体问题上已经取得了相当大的进展。然而,需要一种通用视频描述符,这有助于以同样的方式解决大规模视频任务。
一个有效的视频描述符有四个属性:
- 通用性,可以表示不同类型的视频,同时具有可区分性。例如,网络视频可以是自然风光、运动、电视节目、电影、宠物、食物等;
- 描述符必须是紧凑的:由于我们需要处理数百万的视频,一个紧凑的描述符有助于处理,存储和检索任务,更具可扩展性;
- 计算高效,因为在现实世界中,每一分钟都需要处理成千上万的视频;
- 实现简单,不使用复杂的特征编码方法和分类器,一个好的描述符即使是一个简单的模型(如线性分类器)也能很好地工作。
受到深度学习在图像领域突破的启发,在过去几年里,在特征学习方面取得了快速的进步,各种预训练卷积网络(ConvNets)模型可用于提取图像特征。这些特征是网络最后几个全连接层的激活值,在迁移学习任务中表现良好。但是由于缺少运动建模(在4,5,6节的实验中),这些基于图像的深度特征并不直接适用于视频。本文我们使用深度3D ConvNet来学习时空特征。经验表明,这些学习的特征与简单的线性分类器在各种视频分析任务中效果良好。虽然3D ConvNet以前就有人提出,但据我们所知,本工作在大规模有监督训练集和现代深度学习框架的背景下利用3D ConvNet,在不同的视频分析任务中的得到最好的性能。3D ConvNet提取的特征封装了视频中与目标、场景、动作有关的信息,使得这些特征对不同的任务都有用,而不需要对每个任务都微调模型。C3D是好的描述符:通用、紧凑、简单、高效。总而言之,我们这篇论文的贡献是:
- 我们的实验表明3D卷积深度网络是好的学习器,可以对外观和运动同时建模。
- 我们的经验发现,在有限的探究框架中,所有层使用3×3×3卷积核效果最好。
- 在4个任务和4个基准上,提出的特征通过简单的线性模型可以超过或接近目前最好的方法(见表1)。这些特征紧凑、计算高效。
2. 相关工作
计算机视觉领域研究视频已有几十年。这些年来,动作识别、异常检测、视频检索、运动检测等不同问题被提出。这些工作的相当一部分是关于视频表示。Laptev和Lindeberg提出时空兴趣点(STIPs),通过扩展Harris边角检测器。SIFT和HOG也被扩展成SIFT-3D和HOG-3D从而进行动作识别。Dollar等人为行为识别提出长方体特征。Sadanand和Corso建立了行为识别的ActionBank。最近,Wang等人提出改进的密集轨迹(iDT),这是现在最好的人为设计特征。iDT描述符I是一个有趣的例子,表明时间信号的处理可以不同于空间信号。与扩展Harris边角检测器到3D不同,它从视频帧中密集采样的特征点开始,并利用光流跟踪它们。对于每个跟踪器边角,沿着轨迹提取不同的人为设计特征。尽管它的性能很好,但是这种方法计算量很大,并且在大规模数据集中变得棘手。
最近,随着强大的并行机(GPU,CPU集群)的应用,以及大量的训练数据,卷积神经网络(ConvNets)已经成为视觉识别的突破。 ConvNets也被应用于图像和视频中的人体姿态理解的问题。更有趣的是,这些深层网络用于图像特征学习。同样,Zhou等人在迁移学习任务上表现良好。深度学习也被应用于无监督设置的视频特征学习。在Le 等人的研究中,作者使用堆叠的ISA来学习视频的时空特征。虽然这种方法在动作识别方面表现出良好的效果,但是在训练上仍然是计算密集型,并且难以扩展到大规模数据集的测试。3D ConvNets被提出用于人类动作识别和医学图像分割。限制玻尔兹曼机器也使用3D卷积来学习时空特征。最近,Karpathy等在大型视频数据集上进行深度网络训练,以分类视频。 Simonyan和Zisserman使用双流网络来获得最佳的动作识别结果。
在这些方法中,3D ConvNets方法与我们最密切相关。该方法使用人体检测器和头部跟踪来在视频中分割人类受试者。分段视频卷作为3个卷积层的3D ConvNet的输入以对动作进行分类。相比之下,我们的方法将完整的视频帧作为输入,并且不依赖于任何预处理,因此容易地扩展到大型数据集。我们也与Karpathy等人有一些相似之处。以及Simonyan和Zisserman使用全帧来训练ConvNet。然而,这些方法建立在仅使用2D卷积和2D池化操作(Slow Fusion模型除外),而我们的模型执行3D卷积和3D池化在网络中的所有层中传播时间信息(进一步详细描述在第3节)。我们还显示,逐步池化空间和时间信息,建立更深层次的网络可以取得最佳效果,我们将在3.2节讨论有关体系结构搜索的更多信息。
3. 使用3D ConvNets学习特征
在本节中,我们详细介绍了3D ConvNets的基本操作,经验地分析了3D ConvNets的不同结构,并阐述了如何在的大规模数据集上进行训练学习特征。
3.1. 3D卷积和池化
我们认为3D ConvNet非常适合于时空特征学习。与2D ConvNet相比,3D ConvNet能够通过3D卷积和3D池化操作更好地建模时间信息。在3D ConvNets中,卷积和池化操作在时空上执行,而在2D ConvNets中,它们仅在空间上完成。图1示出了差异,应用于一个图像的2D卷积将输出一个图像,施加在多个图像上的2D卷积(将它们视为不同的通道)也输出一个图像。因此,2D ConvNets在每次卷积运算之后就会丢失输入信号的时间信息。只有3D卷积才能保留输入信号的时间信息,从而产生输出卷。相同的现象适用于2D和3D池化。在[36]中,虽然时间流网络采用多个帧作为输入,但是由于2D卷积,在第一卷积层之后,时间信息完全消失了。类似地,融合模型使用2D卷积,大多数网络在第一卷积层之后失去其输入的时间信号。只有[18]中的慢融合模型才能在其前3个卷积层中使用3D卷积和平均池化。我们认为这是在[18]的研究在所有网络中表现最好的关键原因。然而,它仍然在第三个卷积层之后失去所有时间信息。
图1. 2D和3D卷积运算。a)在一个图像上应用2D卷积会产生一个图像。b)在视频卷上应用2D卷积(多个帧作为多个通道)也会产生一个图像。c)在视频卷上应用3D卷积可产生另一个卷,保留输入信号的时间信息。在本节中,我们通过经验尝试找出一个良好的3D ConvNets架构。由于在大型视频数据集上训练深层网络非常耗时,我们首先尝试使用中型数据集UCF101来搜索最佳架构。我们使用较少数量的网络实验在大型数据集中来验证发现。根据2D ConvNet的研究结果,具有更深体系结构的3×3卷积内核的小感受野产生最佳效果。 因此,对于我们的架构搜索研究,我们将空间感受野确定为3×3,仅改变3D卷积核的时间深度。
符号:为了简单起见,从现在开始,我们将视频片段尺寸定义为c×l×h×w,其中c是通道数,l是帧数的长度,h和w分别是帧的高度和宽度。我们还将3D卷积和池化核大小指向d×k×k,其中d是核的时间深度,k是核的空间大小。
通用网络设置:在本节中,我们将介绍我们训练的所有网络通用的网络设置。 网络设置为将视频片段作为输入,并预测属于101个不同动作的类标签。所有视频帧都被调整为128×171。这大约是UCF101帧的一半分辨率。视频被分割成非重叠的16帧片段,然后将其用作网络的输入。输入尺寸为3×16×128×171。我们还通过在训练期间使用尺寸为3×16×112×112的随机裁剪来使用抖动。网络具有5个卷积层和5个池化层(每个卷积层紧随其后的是池化层),2个完全连接的层和softmax损耗层以预测动作标签。 对于5个卷积层,从1到5卷积层的滤波器数量分别为64,128,256,256,256。
所有卷积核大小的d是核时间深度(稍后将改变这些层的值d以搜索良好的3D结构)。所有这些卷积层都应用适当的填充(空间和时间)和步长1,因此这些卷积层从输入到输出的尺寸没有变化。所有池化层都是尺寸为2×2×2(第一层除外)、步长为1的最大值池化,这意味着与输入信号相比,输出信号的大小减小到1/8。第一个池化核大小为1×2×2,其意图是不能太早地合并时间信号,并且也能够满足16帧的片段长度(例如,在完全崩溃之前,我们可以暂时将时间信号进行最多4次2倍池化)。两个全连接层有2048个输出。我们从头开始使用30个片段的小批量训练网络,初始学习率为0.003。学习率在每4个周期之后除以10。训练在16个周期之后停止。
不同的网络架构:根据本研究的目的,我们主要关注如何通过深层网络聚合时间信息。为了寻找一个很好的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网络之间,depth-7网络具有51K以上的参数,小于每个网络17.5百万参数的0.3%。这表明网络的学习能力是可比较的,参数数量的差异不应影响我们的架构搜索结果。
3.2.探索内核时间深度
我们在UCF101训练集split-1上训练这些网络。图2显示了不同架构在UCF101测试集split-1上的精度。左图显示了具有均匀时间深度的网络的结果,右图显示了变化时间深度的网络的结果。Depth-3在均匀网络中表现最好。请注意,depth-1比其他网络明显更差,我们认为是由于缺乏运动建模。与不变化时间深度网络相比,depth-3是表现最好的,但差距较小。我们还尝试更大的感知野(例如5×5)和/或全输入分辨率(240×320),效果差不多。这表明3×3×3是3D ConvNets的最佳的选择(根据我们的实验子集),在视频分类中3D ConvNets始终优于2D ConvNets。我们还验证了3D ConvNet在大规模内部数据集(即I380K)上的性能优于2D ConvNet。
图2. 3D卷积核时间深度搜索。不同卷积核时间深度设置在UCF101测试集split-1上的精度。2D ConvNet效果最差,3×3×3卷积核的3D ConvNet在实验中表现最佳。3.3.时空特征学习
网络架构:上一节的发现表明,3×3×3卷积核的均匀设置是3D ConvNets的最佳选择。这个发现与2D ConvNets一致。使用大型数据集,可以根据机器内存限制和计算承受能力,尽可能深入地训练具有3×3×3核的3D ConvNet。使用目前的GPU内存,我们设计了3D ConvNet,具有8个卷积层、5个池化层、两个全连接层,以及一个softmax输出层。网络架构如图3所示。为了简单起见,我们从现在开始将这个网络称为C3D。所有3D卷积滤波器均为3×3×3,步长为1×1×1。为了保持早期的时间信息设置pool1核大小为1×2×2、步长1×2×2,其余所有3D池化层均为2×2×2,步长为2×2×2。每个全连接层有4096个输出单元。
图3. C3D架构。C3D网络有8个卷积层,5个最大池化层和2个全连接层,最后是softmax输出层。所有的3D卷积核都是3×3×3,在空间和时间上都有步长1。滤波器的数量表示在每个框中。3D池化层由pool1到pool5表示。所有池化核为2×2×2,除了pool1为1×2×2。每个全连接层有4096个输出单元。数据集:为了学习时空特征,我们在Sports-1M数据集上训练C3D,这是目前最大的视频分类基准。 数据集由110万个体育视频组成。 每个视频属于487个运动类别之一。 与UCF101相比,Sports-1M具有5倍的类别和100倍的视频数量。
训练:在Sports-1M训练集上进行训练。由于Sports-1M有许多长视频,我们从每个训练视频中随机提取出2秒长的五个片段。片段调整帧大小为128×171。在训练中,我们随机将输入片段裁剪成16×112×112片段,对于空间和时间抖动。 我们也以50%的概率水平翻转它们。训练由SGD完成,batch size为30。初始学习率为0.003,每150K次迭代除以2。优化在1.9M迭代(约13epochs)停止。除了从头开始训练C3D外,我们还从在I380K上预先训练的模型中对C3D网进行了微调。
Sports-1M分类结果:表2显示了C3D与DeepVideo和Convolution pooling的比较结果。我们每个片段只使用一个中心裁剪,并通过网络进行片段预测。对于视频预测,我们平均片段预测从视频中随机提取的10个片段。值得注意的是比较方法之间的一些设置差异。DeepVideo和C3D使用短片段,而Convolution pooling使用更长的片段。DeepVideo使用更多的裁剪:每个片段4个裁剪,每个视频80个裁剪,C3D分别使用1个和10个。top-5精度下,从头开始训练的C3D网络得到了84.4%的准确度,从I380K预训练模型中微调的C3D网络为85.5%。两个C3D网络都胜过DeepVideo网络。 C3D仍比Convolution pooling的方法低5.6%。然而,这种方法在120帧的长片段上使用深度图像特征的卷积池化,因此它不能直接与在更短的片段上操作的C3D和DeepVideo相比较。我们注意到,该方法在片段和视频的top-1精度中的差异很小(1.6%),因为它已经使用120帧片段作为输入。在实践中,Convolution pooling或更复杂的聚合方案可以应用于C3D特征之上,以提高性能。
表2. Sports-1M分类结果。C3D在top-5个视频级精度上优于Convolution pooling5%。我们注意到,Convolution pooling的方法使用长片段,因此其片段级精度与C3D和DeepVideo的准确性不能直接相比。C3D视频描述符:训练后,C3D可用作其他视频分析任务的特征提取器。为了提取C3D特征,视频被分割成16帧长的片段,在两个连续片段之间具有8帧重叠。这些片段被传递到C3D网络以提取fc6激活。对这些片段fc6激活进行平均以形成4096维的视频描述符,然后接着做L2标准化。在所有实验中,我们将此表示法称为C3D视频描述符/特征,除非我们明确指出差异。
C3D学习什么?我们使用反卷积方法来了解C3D内部学习。我们观察到,C3D首先关注前几帧的外观,并跟踪后续帧中的显著运动。 图4可视化两个C3D conv5b特征映射图的反卷积,最大的激活投射回图像空间。在第一个例子中,特征集中在整个人身上,然后跟踪其余帧上撑杆跳表演的运动。类似地,在第二个例子中,它首先关注眼睛,然后在化妆的同时跟踪眼睛周围发生的运动。因此,C3D与标准2D ConvNets的不同之处在于它有选择地参与运动和外观。我们在补充材料中提供更多的可视化,以更好地了解学习的特征。
图4. C3D模型可视化。有趣的是,C3D捕获了前几帧的外观,但其后仅出现在显著的运动上。4. 动作识别
数据集:我们评估UCF101数据集上的C3D特征。数据集由101个人类动作类别的13,320个视频组成。我们使用此数据集提供的三个拆分设置。
分类模型:我们提取C3D特征并将其输入到用于训练模型的多类线性SVM。我们使用3个不同网络的C3D描述符进行试验:在I380K上训练的C3D,在Sports-1M上训练的C3D,以及在I380K上训练并在Sports-1M上进行微调的C3D。在多网络设置中,我们堆叠这些网络的L2标准化C3D描述符。
基准:我们比较C3D特征与几个基准:目前最好的人为设计特征,即改进的密集轨迹(iDT),以及流行的深层图像特征,即Imagenet,使用Caffe的Imagenet预训练模型。对于iDT,我们使用iDT的每个特征通道(轨迹、HOG、HOF、MBHx和MBHy)的码本大小为5000的码字表示。我们使用L1范数分别对每个通道的直方图进行归一化,并且堆叠这些归一化直方图以形成一个视频的25K特征向量。对于Imagenet基准,类似于C3D,我们为每一帧提取Imagenet fc6特征,平均这些帧特征来制作视频描述符。对于这两个基准,也可以使用多类线性SVM进行公平比较。
结果:表3显示了与两个基准相比较的C3D的动作识别准确度和当前最佳方法。上面部分显示了两个基准的结果。中间部分显示了仅使用RGB帧作为输入的方法。而下面部分报告了使用所有可能的特征组合(例如光流,iDT)的所有当前最佳方法。
表3. UCF101的动作识别结果。C3D与基准和当前最先进的方法相比。顶部:线性SVM的简单特征; 中间:仅采用RGB帧作为输入的方法;底部:使用多个特征组合的方法。C3D微调网络在前面描述的三个C3D网络中表现最好。然而,这三个网络之间的效果差距很小(1%)。 从现在开始,除非另有说明,否则我们将微调后的网络称为C3D。C3D使用一个仅具有4,096维的网络,得到了82.3%的精度。具有3个网络的C3D将精度提高到85.2%,维度增加到12,288。C3D与iDT组合进一步将精度提高到90.4%,而与Imagenet相结合,我们观察到只有0.6%的提高。这表明C3D可以很好地捕获外观和运动信息,因此与Imagenet相结合没有任何好处,Imagenet是基于外观的深层特征。另一方面,将C3D与iDT相结合是有益的,因为它们彼此高度互补。事实上,iDT是基于光流跟踪和低级梯度直方图的人为设计特征,而C3D则捕获高级抽象/语义信息。
具有3个网络的C3D了达到85.2%,比iDT和Imagenet基线分别提高了9%和16.4%。 在只有RGB输入设置中,与基于CNN的方法相比,我们的C3D在[36]中分别优于深度网络和空间流网络为19.8%和12.6%。深层网络和[36]的空间流网络都使用AlexNet架构。在[18]中,网络由他们在Sports-1M上预训练的模型进行微调,[36]中的空间流网络由Imagenet预训练模型进行了微调。我们的C3D在网络架构和基本操作方面与这些CNN基础方法不同。此外,C3D已经在Sports-1M上进行了训练,并且在没有任何微调的情况下被使用。与基于循环神经网络(RNN)的方法相比,C3D性能分别优于长期循环卷积网络(LRCN)和LSTM复合模型14.1%和9.4%。 只有RGB输入的C3D在使用光流和RGB以及[36]中的时间流网络时仍然优于这两种基于RNN的方法。 然而,C3D需要与iDT组合以优于双流网络,另一种基于iDT的方法[31,25]以及专注于长期建模的方法[29]。 除了有希望的数字外,与其他方法相比,C3D还具有简单的优点。
C3D是紧凑的:为了评估C3D特征的紧凑性,我们使用PCA将特征投影到较低维度,并使用线性SVM报告在UCF101上投影特征的分类精度。我们对iDT ]和Imagenet特征应用相同的过程,并比较图5中的结果。在仅有10个维度的极限设置下,C3D精度为52.8%,比Imagenet和iDT的准确度高出20% 的,Imagenet和iDT的准确度约为32%。在50和100维度时,C3D得到的精度为72.6%和75.6%,比Imagenet和iDT好10-12%。最后,具有500个维度,C3D能够实现79.4%的精度,比iDT好6%,比Imagenet好11%。这表明我们的特征既紧凑又具有识别力。这对于低存储成本和快速检索至关重要的大规模检索应用非常有用。
图5. C3D与Imagenet和iDT在低尺寸下的比较。C3D,Imagenet和iDT在UCF101上使用PCA维数降低和线性SVM的精度。C3D在低尺寸下优于Imagenet和iDT 10-20%。 图6.特征嵌入。在UCF101数据集上使用t-SNE对Imagenet和C3D的特征嵌入可视化。与Imagenet相比,C3D特征在语义上可分离,表明对于视频它是更好的特征。 每个片段可视化为一个点,属于同一动作的片段具有相同的颜色。我们定性地评估了学习到的C3D特征,以通过可视化嵌入在另一个数据集上的学习特征来验证它是否是视频的一个很好的通用特征。我们从UCF101随机选择100K个片段,然后使用来自Imagenet和C3D的特征来提取这些片段的fc6特征。然后使用t-SNE将这些特征投影到二维空间。 图6显示了嵌入在UCF101上Imagenet和C3D的特征。值得注意的是,我们没有做任何微调,因为我们想验证这些特征是否显示出跨数据集的良好的泛化能力。我们定量观察到C3D优于Imagenet。
5. 动作相似性标签
数据集:ASLAN数据集由432个动作类的3,631个视频组成。任务是预测给定的一对视频对象是否属于相同或不同的动作。 我们使用数据集提供的拆分进行规定的10折交叉验证。这个问题与动作识别不同,因为任务着重于预测动作相似性而不是实际动作标签。这个任务是非常具有挑战性的,因为测试集包含“从未见过的”动作的视频。
特征:我们将视频分为重叠8帧的16帧片段。我们提取每个片段的C3D特征:prob,fc7,fc6,pool5。通过分别平均每种特征类型的片段特征,然后进行L2归一化,来计算视频特征。
分类模型:我们遵循[21]中使用的相同设置。给出一对视频,我们计算[21]中提供的12个不同的距离。具有4种特征,我们从每对视频获得48维(12×4 = 48)特征向量。由于这48个距离彼此无法比较,我们将它们独立地归一化,使得每个维度具有零平均值和单位方差。最后,训练线性SVM以根据这48维特征向量将视频对归类为相同或不同的。除了与当前的方法进行比较,我们还使用基于深度图像的特征将C3D与强基线进行比较。基准与我们的C3D设置相同,我们用Imagenet特征替换C3D特征。
结论:我们报告C3D的结果并与表4中的最佳方法进行比较。尽管目前大多数方法使用多种人为设计特征,强编码方法(VLAD,Fisher Vector)和复杂的学习模型,但我们的方法使用一种视频上的C3D特征和线性SVM的简单平均。C3D在ROC曲线(AUC)下显著优于最先进的方法,精度提升了9.6%,面积提升了11.1%。Imagenet基线表现相当好,仅比最佳方法低1.2%,但由于缺乏运动模型,比C3D差10.8%。图7绘制了C3D与当前方法和人类表现相比的ROC曲线。C3D已经显著提升,这是目前最先进的方法到人类表现(98.9%)的一半。
表4. ASLAN的动作相似性标注结果。C3D显著优于最先进的方法[45],精度提升了9.6%,ROC曲线下面积提升了11.1%。 图7.动作相似性标注结果。C3D的ROC曲线在ASLAN上评估。C3D在AUC上达到86.5%,优于目前最先进的11.1%。6. 场景和目标识别
数据集:对于动态场景识别,我们在两个基准上评估C3D:YUPENN和Maryland。 YUPENN包括14个场景类别的420个视频,Maryland有13个场景类别的130个视频。 对于对事物识别,我们测试了自然中心数据集[32]上的C3D,它包含42种类型的日常事物。 值得注意的是,该数据集是以自我为中心的,所有视频都记录在第一人称视图中,它们具有与我们在训练数据集中拥有的任何视频所完全不同的外观和运动特征。
分类模型:对于两个数据集,我们使用相同的特征提取体系和线性SVM进行分类,并遵循这些数据集的作者所述的相同的留一法估计协议。 对于事物数据集,标准评估基于帧。 但是,C3D会拍摄长度为16帧的视频片段来提取特征。 我们在所有视频中滑动16帧的窗口,以提取C3D特征。我们选择每个片段的地面真实标签作为片段最常发生的标签。 如果片段中最常见的标签发生少于8帧,我们认为它是没有事物的负片段,并在训练和测试中丢弃它。 我们使用线性SVM训练和测试C3D特征,并报告事物识别精度。 我们遵循[32]中提供的相同分割。我们还在这3个基准上对C3D与使用Imagenet特征基准线进行比较。
结果:表5报告了我们的C3D结果,并将其与当前最佳方法进行比较。在场景分类中,C3D在Maryland和YUPENN分别优于最先进的方法10%和1.9%。C3D仅使用具有简单平均片段特征的线性SVM是不值得的,而第二好的方法[9]使用不同的复杂特征编码(FV,LLC和动态池)。 Imagenet基线在Maryland与C3D表现相似,在YUPENN上比C3D低1.4%。在事物识别方面,只有线性SVM的情况下,C3D获得22.3%的精度,优于[32]10.3%,比较方法在强SIFT-RANSAC特征匹配的情况下使用RBF-内核。与Imagenet基线相比,C3D更差3.4%。这可以解释为与Imagenet使用的全尺寸分辨率(256×256)相比,C3D使用较小的输入分辨率(128×128)。由于C3D仅在Sports-1M视频上进行了训练,而没有任何微调,而Imagenet已经对1000个事物类别进行了全面训练,因此我们并不期望C3D能够很好地完成此任务。结果非常令人惊讶,并显示了通用C3D如何捕捉视频中的外观和运动信息。
表5.场景识别精度。使用简单线性SVM的C3D优于Maryland和YUPENN上的当前方法。7. 运行时间分析
我们比较C3D和iDT和时间流网络的运行时间。对于iDT,我们使用作者提供的代码。对于时间流网络,没有可用的评估公共模型。然而,该方法使用Brox的光流作为输入。我们设法使用两种不同的版本来评估Brox方法的运行时间:作者提供的CPU实现和OpenCV中提供的GPU实现。
我们报告上述三种方法的运行时间,以使用单个CPU或单个K40 Tesla GPU来提取表6中整个UCF101数据集的特征(包括I/O)。[36]报告了一对图像的计算时间(无I/O)为0.06s。在我们的试验中,Brox的GPU实现需要0.85-0.9s每个图像对,包括I/O。请注意,对于iDT这不是公平的比较,因为它只使用CPU。我们找不到此方法的任何GPU实现,并且在GPU上实现此算法的并行版本并不是微不足道的。请注意,C3D比实时快得多,处理速度为313 fps,而其他两种方法的处理速度小于4 fps。
表6. UCF101的运行时间分析。C3D比iDT快了91倍,比Brox在OpenCV中的GPU实现速度快了274倍。8.结论
在这项工作中,我们试图解决使用经过大规模视频数据集训练的3D ConvNets来学习视频的时空特征的问题。我们进行了系统的研究,以找到3D ConvNets的最佳时间核长度。我们展示了C3D可以同时对外观和运动信息进行建模,在各种视频分析任务上优于2D ConvNet特征。我们展示了具有线性分类器的C3D特征可以在不同的视频分析基准上胜过或接近现行的最佳方法。最后,提出的C3D特征是高效的、紧凑的、使用非常简单的。
网友评论