【论文学习】3D Convolutional Neural Networks for Human Action Recognition

3D Convolutional Neural Networks for Human Action Recognition

原文链接

摘要

我们考虑的是在不受控制的环境下全自动动作识别。大多数现存的工作依赖于其专业知识从输入中构建复杂的人工特征。而且环境通常假定为可控的。卷积神经网络是一种深度模型,它可以直接作用在原始输入上,因此其特征构建是自动的。然而,这种模型目前仅限制于处理2D模型。在这篇文章中,我们提出一种新的3DCNN来处理动作识别。这个模型通过3D卷积同时提取了时间和空间上的维度,从而捕捉了编码在多个连续帧之间的动作信息。这个模型从输入帧之间生成多通道信息,并且最终的特征信息是由所有通道的信息结合而成的。我们利用这个模型在实际环境中是识别人体动作,并且它在不依赖于手工特征的基础上实现了较好的性能。

1、介绍

在真实环境下识别人体动作在各种各样的领域下获得了应用,包括智能视频监控、消费者属性、购物行为分析。然而,由于杂乱的背景、遮挡、观测点的变化等,准确的动作识别是一项较高的任务。因此,大多数已存的方法是对于任何环境下拍摄的视频有一个确定的假设(例如,小范围和观测点变化)。然而这种假设很少在实际环境中出现。此外,大多数这些方法遵循一个模式识别的传统模式,包含两步,第一步是从原始视频帧中计算复杂的手工特征,第二步是依赖于这些获得的特征学习分类。在真实世界的情景下,很难知道对于目前这个任务,哪个特征是重要的,而特征的选择与这个问题高度相关。特别是对于人体动作识别,不同的动作类别可能会因为其外表和运动模式,出现戏剧性的差异。

深度学习模型是机器学习的一个类别,它可以通过从低级别特征中建立高级别特征,从而学习到层级特征,因此特征的构建是一个自动的过程。这种学习机器可以通过任何一个监督或者非监督方法进行训练,并且在视觉目标识别、自然语言处理、自动分类任务上,这个结果系统展示出竞争性的性能。卷积神经网络是一种深度模型,可训练的滤波器和与之相邻的pooling操作,交替地应用在原始输入图像上,产生一个越来越复杂的层级特征。已经证明,当使用合适的正则化训练时,CNN在视觉目标识别任务中,不依赖于手工特征,可以实现极好的性能。此外,CNN已经被证实,对于输入的特征变化相对来说不太敏感。

在自动特征构建上,作为一个有吸引力的深度模型,CNN主要应用于2D图像上。在这篇文章中,我们将CNN用于视频中的人体动作识别。在这个方向上的一个简单的方法就是,直接将视频帧作为静止图像,在独立的帧层级上用CNN进行动作识别。事实上,这种方法已经应用于胚胎发育的视频分析中。然而,这种方法并不能考虑编码在连续多帧之间的运动信息。为了有效的在视频分析中结合运动信息,我们提出,将3D卷积应用在CNN的卷积层中,因此可以捕捉时间和空间维度上有辨识的特征。我们展示出,通过在输入的同一位置上,采用多个不同的卷积操作,可以提取多种类别的特征。依赖于3D卷积,不同的3DCNN架构可以用来设计分析视频数据。我们提出一种3DCNN架构,从相邻视频帧之间产生多通道信息,并且分别在每一个通道上执行卷积和下采样操作。最终的特征表示是通过多通道信息的结合获得的。CNN模型一个额外的优点是,由于其前向反馈的特性,识别阶段特别有效率。

我们在TREC Video Retrieval Evaluation (TRECVID)数据集上验证3DCNN模型。这个数据包含了在伦敦机场记录的有监督视频数据。我们构建了一个多模块事件检测系统,其中包括3DCNN作为一个模块,并且参与了监督事件检测的TRECVID 2009验证的三个任务。我们的系统在这个三个任务上都取得了最好的性能。为了对3DCNN模型提供独立的验证,我们在这篇文章中,在TRECVID 2008 development数据集上记录其性能。我们也提出了在KTH数据集上的结果作为发表,表示这个数据也是可用的。我们的实验展示出,在TRECVID数据集上,3DCNN模型比其他基线处理方法要做得好,并且在KTH数据上,没有依赖于手工特征,也实现了较好的性能,这些表明,和在TRECVID数据集上获得的一样,3DCNN模型在真实世界环境时更有效的。这个实验也提出了,对于大多数任务,3DCNN模型比基于帧的2DCNN明显做得更好。我们也观察了3DCNN和其他方法性能上的差异,当正训练样本的数量比较小时,这个差异更大。

2、3D卷积神经网络

在2DCNN中,在卷积层上,2D卷积操作是在上一层特征图的局部邻域中抽取特征。然后应用一个添加的偏置值,将结果传给一个sigmoid函数。正式上,在位置(x,y),在第i层,第j个特征图上,其单位值表示为这里写图片描述,并且由以下公式给定。

这里写图片描述

其中,tanh是一个双曲正切函数,bij是对于这个特征图的一个偏置值,m是一个i-1层特征图连接到当前特征图的集合的坐标,w(pqijm)是连接第m个特征图,在核位置(p,q)出的权值,Pi和Qi是核的高度和宽度。在下采样层,在前一层的特征图上,通过局部邻域的池化,减少特征图的分辨率,从而增加输入扭曲的不变性。一个CNN架构可以这样构建,通过一种交替的方式,堆叠多层卷积操作和下采样操作。CNN的参数,例如偏置值bij,核权重w(pqijm),通常采用监督或非监督的方法来训练。

2.1 3D卷积

在2DCNN中,卷积操作只是从空间维度上将其应用在2D特征图上计算特征。当处理视频分析问题时,需要捕捉编码在连续帧之间的动作信息。为了这个目的,我们提出,在CNN的卷积操作阶段,执行3D卷积操作来同时从时间和空间维度上捕捉特征。3D卷积操作是这样实现的:通过同时堆叠多个连续帧形成的立方体与一个3D核进行卷积。通过这个构建,卷积层上的特征图连接到了前一层的多个连续帧,从而捕捉动作信息。形式上,在第i层、第j个特征图的(x,y,z)位置上,值由以下公式给定:

这里写图片描述

其中,Ri表示3D核在时间维度上的大小,w(pqrijm)是连接到在前一层中,第m个特征图的核的第(p,q,r)的值。2D和3D卷积操作的对比可以见图1。

这里写图片描述

图1: 2D(a)和3D(b)卷积操作的对比。在b中,卷积核在时间维度上的大小是3。连接设置是颜色编码,因此共享权重是相同颜色。在3D卷积操作中,同样的3D核应用于输入视频中重叠的3D立方体中,来提取动作特征。

注意,一个3D卷积核只能从帧立方体中提取一个特征,因此核权重可以重复地应用于整个立方体。CNN的总体设计原理是,通过从相同的低层特征图集合中生成多种类型的特征,增加特征图的数量。类似于2D卷积操作的情况,可以通过这样来实现,在前一层的相同位置,与不同的核,采用多个3D卷积操作(图2)。

这里写图片描述

图2: 从连续帧中提取多个特征。多个3D卷积可以应用于连续帧中提取多个特征。在图1中,连接集合是以颜色编码的,因此共享权重是相同的颜色。注意,所有连接的6个集合没有共享权重,结果导致右边两个不同的特征图。

2.2 一个3DDNN架构

基于前面描述的3D卷积操作,可以设计不同的CNN架构。在下文中,我们描述一个3DCNN架构,用来处理TRECVID数据集上的人体动作识别。如图3展示的架构中,我们将以当前帧为中心的、大小为60x40的7帧图像作为3DCNN的输入。我们第一次采用一个硬连线核的集合,从输入帧中产生多个通道的信息。结果是在第二层中,有33个特征图,有5个不同的通道,包括灰度、横坐标梯度x、纵坐标梯度y、光流x、光流y。灰度通道包含了7个输入帧的灰度值。在梯度x和梯度y通道,是通过沿着水平方向和垂直方向,分别计算7个帧得到的。光流x和光流y通道,是光流场分别通过沿着水平方向和垂直方向,从相邻输入帧之间计算得到的。硬线层用来编码我们已知的特征上的内容,并且与随机初始化相比,这种形式与可以带来更好的性能。

这里写图片描述

图3: 关于人体动作识别的3DCNN架构。这个架构包含了1个硬线层、3个卷积层、2个下采样层、1个全连接层。详细描述在文本中给出。

接着,我们将3D卷积操作分别用在5个通道上。卷积核大小为7x7x3,7x7是空间维度,3是时间维度。为了提高特征图的数量,两个不同的卷积集用在每个位置上。这导致2个特征图在C2层上,会各自产生23个特征图。这个层包含了1480个训练参数。在最后的下采样层S3,我们采用2X2大小的滑动窗口应用于C2层的每一个特征图上。这导致了相同的特征图数量,但减少了空间上的分辨率。训练参数在这一层上是92个。下一个卷积层是C4,通过卷积核大小为7x7x6,分别在两个特征图的5个通道上做3D卷积操作。为了提高特征图的数量,我们在每一个位置分别采用3个不同的卷积核操作,这导致了C4层上6个不同特征图集合,每一个集合都包含13个特征图。这一层包含了3810个训练参数。下一层是S5,在C4层的每个特征图上。采用3x3的窗口进行下采样,这将导致相同的特征图数量,但其分辨率下降。这一层的训练参数是156。现在阶段,时间维度的大小相对来说较小(灰度、梯度x、梯度y共3个,光流x、光流y共2个),因此在这一层,我们只将卷积作用在空间维度上。卷积核的大小为7x4,因此输出特征图的大小减为1x1,其中的每一个都连接了S5层的所有的78个特征图,这将有289536个训练参数。

通过多层的卷积、下采样操作,7帧输入图像转换为捕捉了输入帧中的动作信息的128D特征向量。输出层包含了与动作数量相同单元数,每一个单元都连接了C6层的128个神经元。在这个设计中,本质上我们在128D特征向量上线性分类来进行动作识别。对于一个3个类别的动作识别问题,在输出层的训练参数有384个。在这个3DCNN模型上总的训练参数有295458个,所有这些参数都随机初始化,并且使用在线误差后向传播算法进行训练。我们设计并且验证了其他3DCNN架构,并且在不同阶段结合了多通道的信息,我们的结果表示出,这个架构给出了最好的性能。

3、相关工作

CNN关于视觉识别,是属于生物学上启发的一个模型,其他变形也在这个家族中有所发展。受到视觉皮层组织的启发,一个简单的模型,称为HMAX,发展为视觉目标识别。在HMAX模型中,通过模板匹配和最大池化的交替应用,越来越复杂的特征层级被构建出来。特别地,在S1层,一个静止的输入图像,被一系列Gabor滤波器从多个方向和和缩放上首次分析。C1层,通过池化S1层maps的局部邻域,增加对输入扭曲的不变性。S2层,用一系列模板(在训练阶段随机的由C1的maps生成)比较C1层maps,来获得该层的maps。最终C2层上的特征表示是,在每个S2maps上,执行全局最大池化得到的。

经典的HMAX模型用来分析2D图像的。在(Jhuang et al., 2007)这个模型中,被延伸来识别视频数据中的动作。特别的,在HMAX模型中,S1层的Gabor滤波器被一些梯度和时空模块来替代,来捕捉动作信息。此外,(Mutch & Lowe, 2008)提出的对HMAX的一些修改,也并入到这个模型中。CNN和基于HMAX模型的一个主要差别是,CNN是一个完全可训练的系统,所有的参数都是基于训练数据可调整的,但是HMAX的所有模块包含了手工的连接和参数。

在文本和手写识别中,时滞的神经网络已经可以抽取时间特征。在(Kim et al.,2007)中,一个改进的CNN架构可以从视频数据中提取特征。此外除了识别任务,CNN也可用于3D图像修复问题上。

4、实验

我们在TRECVID 2008数据集和KTH数据集上验证了3DCNN对于人体动作识别的实验。

4.1 TRECVID数据上的动作识别

TRECVID 2008开发数据集包含了从伦敦Gatwick机场,从5个不同的摄像头,采集的49小时的视频,规格为720×57,25 fps。摄像头4拍摄的视频因为几乎没有事件发生在这个场景中而排除在外。在这个实验中,我们关注于3个动作类别(CellToEar, ObjectPut, and Pointing)。每个动作都采用一对多的方式分类,动作中产生的大量负样本不属于这3个类别。这个数据集收集了五天(20071101, 20071106, 20071107, 20071108, and 20071112)的数据,我们实验中统计的数据汇总在表1中。这个实验中使用的3DCNN模型在文章第二部分和图3中都有描述,训练迭代的次数是以单独的验证数据集调整的。

表1: 从TRECVID 2008 development数据集上抽取的每个类别样本的数量。展示了每个日期下样本中每个类别的的总体样本数目。

这里写图片描述

由于是在真实世界环境中记录的视频,并且每帧图像包含了多个人物,我们采用了人体检测器和检测驱动的跟踪器来定位人的头部。一些人体检测和跟踪的样本展示在图4中。基于检测和跟踪的结果,每个人都有一个边界框来执行动作的计算。3DCNN模型所需要的多帧图像的获取,是在当前帧以及相邻的前后帧,相同的位置下的边界框中提取得到的,这会得到一个包含动作的立方体。在我们的实验中,这个立方体的时间维度设置为7,已经证实(Schindler & Van Gool, 2008),5-7帧能够实现一个,与从整个视频序列中获得类似的性能。帧提取的步长为2步。假定当前帧是数字0,我们从数字为-6,-4,-2,0,2,4,6的帧中相同的位置提取边界盒。每一帧的边界盒都被缩放为60x40像素。

这里写图片描述

图4: 从左到右分别是摄像头1、2、3、5获得的人体检测和跟踪结果。

为了验证3DCNN模型的有效性,我们给出了基于帧的2DCNN模型的结果。此外,我们将3DCNN与另外两个基本方法相比较,其中采用了最先进的计算复杂手工特征的Bag-of-Words(BoW)模式。对于在3DCNN模型是使用的每个图像立方体,基于密集局部不变特征,我们构建了一个BoW特征。然后对每一个动作类别学习到了一对多的线性支持向量机。而且,我们从原始灰度图像或者动作边缘的历史图像(MEHI)中抽取了密集SIFT特征描述算子。原始灰度图像上的局部特征保存了外观信息,而MEHI图考虑的是形状和动作模式。在3DCNN模型中,从同一个立方体的7x7和16x16的局部图像块上,每隔6个像素计算SIFT描述算子。接着使用512Word的轻量化编码本来建立BoW特征。为了利用空间布局的信息,我们采用了与空间金字塔匹配(SPM)类似的方法,来划分成2x2、3x4大小的候选区,并且连接到他们的BoW特征。整个特征向量的维度是512x(2x2+3x4)=8192。我们将这种基于灰度图的方法称为SPM(cube、gray),依赖于MEHI的则成为SPM(cube、MEHI)。将一天的数据作为一个fold,我们给出了5-fold的交叉验证结果。我们使用的性能指标是精度、recall、在多个误判率(FPR)值下的ROC曲线(AUC)的面积。四种方法的性能总结在表2中。我们可以在表2中观察到,3DCNN模型的性能要比基于帧的2DCNN模型的性能要好,比模型SPM(cube、gray)和SPM(cube、MEHI)在动作类别CELLTOEAR和OBJECTPUT上性能也要好。对于动作类别pointing,3DCNN模型比其他三个性能上稍微差一点。从表1中我们可以看到,动作类别pointing的正样本数量相对来说要比其他两个类别明显大的多。因此,我们可以得出结论,当正样本的数量较小的时候,3DCNN模型的性能更高一点。总的来说,从表2中可以看出,3DCNN模型比其他三种模型平均性能要好。

表2: 在多误判率(FPR)下四种方法的性能。性能是就精度、recall和AUC测量的。为了便于展示,我们将AUC分数乘以1000。每种情况下的最高值被标亮。

这里写图片描述

4.2 KTH数据上的动作识别

我们在KTH数据上验证了3DCNN模型,包含了25个主体的6个动作类别。遵循HMAX中的设置,我们使用了9帧立方体作为输入,并且提取出前景。为了减少内存需求,在我们的实验中,输入帧的分辨率减少为80x60。我们使用与图3中类似的3DCNN架构,考虑到80x60x9的输入,每一层的特征图的数量、核的大小都要调整。尤其是,三个卷积层使用的核大小分别为9x7,7x7,6x4,两个下采样层的核大小为3x3。通过这个设置,80x60x9的输入被转换为128D的特征向量。最后一层包含了与6个类别相对应的6个神经元。

像在(Jhuang et al., 2007)中,我们使用随机选择的16个主体的数据训练,其他9个作为测试。表3中,展示了5个随机试验中的平均识别性能。相比于HMAX墨香的91.7%的识别率,3DCNN总的识别率是90.2%。注意,HMAX模型使用了从原始图像中提取的人工特征,并且是4倍的分辨率。

表3:在KTH数据集上的百分比的动作识别准确度。从上到下提出的方法依次是:3DCNN、和(Sch¨uldt et al., 2004), (Doll´ar et al., 2005), (Niebles et al., 2008), (Jhuang et al.,2007), and (Schindler & Van Gool, 2008)提出的方法。破折号表示这个类别的结果不可用。

这里写图片描述

5、结论和讨论

在这篇文章中,我们提出3DCNN模型处理动作识别。这个模型通过3D卷积操作,从空间和时间维度上构建了特征。这个深度架构从邻近输入帧中生成了多通道信息,并且在每一个通道上都分别执行卷积和下采样操作。最终的特征表示是由所有通道上的信息结合计算的。我们在TRECVI和KTH数据集上验证了3DCNN模型。结果表明,3DCNN模型在TRECVID数据集上的性能比其他方法都要好,在KTH数据集上也展示出了有竞争力的性能,这些证实了其在真实世界环境中的优越性能。

在这项工作中,我们考虑了3DCNN模型处理动作识别。也有其他深度架构,例如,深度信度网络,其在目标识别任务上的性能也很有前景。对于动作识别来说,扩展这种模型会很有趣。在这项工作中,使用监督算法训练3DCNN模型,并且需要大量的样本标记。先前的研究表示出,使用非监督方法提前训练,很大程度上减少了标记样本的数量。未来我们将探索3DCNN的非监督训练。

  • 7
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 卷积神经网络 (Convolutional Neural Networks, CNN) 是一种常用于文本分类的深度学习模型。它通过卷积和池化层来提取文本中的特征,并使用全连接层来进行分类。 CNN 的一个优点是能够处理变长的输入,并且不需要对文本进行预处理。 ### 回答2: 卷积神经网络是一种深度学习方法,用于对文本进行分类。在训练过程中,这种网络可以自动学习输入数据的特征表示。卷积神经网络中的卷积层可以识别输入中的局部模式,这些局部模式组合起来形成更高级别的特征,最终帮助分类器确定类别。对于文本分类问题,卷积神经网络的输入是文本的词嵌入向量,可以从先验知识中自动学习特征。 在一些文本分类任务中,卷积神经网络已经取得了很好的表现。文本分类任务通常被分为两种类型:二元分类和多分类。二元分类任务是指将数据分为两类,例如垃圾邮件和非垃圾邮件。多类分类任务是指将数据分为多类,例如新闻分类。在这两种任务中,卷积神经网络都能够进行有效的分类。 对于二元分类任务,卷积神经网络可以使用一个输出节点,并使用 sigmoid 激活函数将输入映射到 0 到 1 之间的概率。对于多分类任务,卷积神经网络可以使用多个输出节点,每个节点对应一个类别,并使用 softmax 激活函数将输入映射到 0 到 1 之间,并且所有输出节点的和为 1。 要训练卷积神经网络进行文本分类,需要对模型进行三个主要的训练步骤。首先,需要构建词嵌入矩阵,该矩阵将文本中的每个词都映射到一个向量。然后,需要将文本数据转换为卷积神经网络所需的格式。最后,需要对模型进行训练,并根据测试数据进行评估。 总之,卷积神经网络已经被证明是一种强大的工具,可以用于文本分类等任务。在处理文本数据时,卷积神经网络可以自动学习输入数据的特征表示,并使用这些特征来确定文本的类别。 ### 回答3: 卷积神经网络(CNN)是一种深度学习模型,它在图像识别、计算机视觉和自然语言处理中表现出色。最近几年,CNN 在句子分类中也获得了很大的成功。 CNN 句子分类模型的输入是一个序列,输出是类别标签。与传统的 RNN 模型不同之处在于,CNN 可以使每个神经元只能捕获一个固定大小的区域的特征,从而加快模型的训练和降低了模型的复杂度。 CNN 句子分类模型的基本架构包括词嵌入层、卷积层、池化层和全连接层。词嵌入层将输入的文本转化为向量表示。卷积层通过滑动窗口对输入的序列进行卷积操作,提取出局部特征。池化层在每个滑动窗口上提取出一个最大值或平均值,进一步降低维度。最后,全连接层将提取出的特征传递到输出层进行分类。 CNN 句子分类模型的优点在于它可以处理不定长的文本序列,并在仅有少量特征的情况下表现出色。但是,CNN 模型的缺点在于不善于处理长期依赖关系,例如情感分析中的Irony识别。为了解决这个问题,可以引入 RNN 或 Transformer 等模型。 总的来说,CNN 模型为句子分类问题提供了一个简单有效的解决方案。在实践中,需要根据具体的任务选择合适的模型结构和参数设置,才能取得最佳效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值