一种基于三维卷积和FasterRCNN的视频动作检测方法与流程

文档序号:15159436发布日期:2018-08-14 09:58阅读:2319来源:国知局

本发明属于图像处理技术领域,涉及一种基于三维卷积和fasterrcnn的视频动作检测方法。



背景技术:

随着互联网视频媒介的蓬勃发展,近年来视频内容检测与分析引起了工业界和学术界的广泛关注。动作识别是视频内容检测与分析的一个重要分支。在计算机视觉领域,动作识别无论是在手工特征还是深度学习特征等方面都取得了很大的进步。动作识别通常归结为一个分类问题,其中,训练阶段的每个动作实例都是从一个较长视频序列中修剪出来,学习动作模型被用于修剪视频(例如,hmdb51和ucf101)或未修剪视频(例如,thumos14和activitynet)中的动作识别。然而,现实世界中的大多数视频是不受限制的,可能包含多个具有不相关背景场景活动的动作实例。针对该问题学术界开始逐渐关注另一个具有挑战性的识别方法-时序动作检测。该方法旨在检测未修剪视频中的动作实例,包括时间边界和实例类别。该方法在监控视频分析和智能家居护理等领域具有广阔前景。

自从2012年将卷积神经网络(cnn)运用于图像分类的重大突破以来,众多研究工作围绕在设计有效的深层网络架构运用于视频中的动作检测。gaidon等人先后在2011年的ieeeconferenceoncomputervisionandpatternrecognition(cvpr)和2013年的ieeetransactionsonpatternanalysisandmachineintelligence(tpami)上发表的“actomsequencemodelsforefficientactiondetection”和“temporallocalizationofactionswithactoms”,介绍了在未修剪的视频中定位动作的问题,然而行为动作比较有限,如“喝酒吸烟”和“开门静坐”。escorcia等人于2016年在europeanconferenceoncomputervision(eccv)上发表的“daps:deepactionproposalsforactionunderstanding”,建立了基于长短期记忆(lstm)的时间动作候选框系统。yeung等人于2015年在arxivpreprint(arxiv:1507.05738)上发表的“everymomentcounts:densedetailedlabelingofactionsincomplexvideos”,为thumos视频中的每个帧引入了多标签注释的multithumos数据集,并定义了一个lstm网络来模拟多个输入和输出连接。yuan等人于2016年在ieeeconferenceoncomputervisionandpatternrecognition(cvpr)上发表的“temporalactionlocalizationwithpyramidofscoredistributionfeatures”,基于滑动窗口中心提出了一个分数分布特征的金字塔,以捕获多个分辨率的运动信息,并利用rnn提高了帧之间的一致性。sun等人于2015年在acminternationalconferenceonmultimedia(acmmm)上发表了“temporallocalizationoffine-grainedactionsinvideosbydomaintransferfromwebimages”,研究了当仅有视频级注释可用时,利用网页图像来训练lstm模型。此外,lea等人于2016年在ieeeconferenceoncomputervisionandpatternrecognition(eccv)上发表了“segmentalspatiotemporalcnnsforfine-grainedactionsegmentation”,在训练模型时使用了一维卷积来捕捉场景变化。虽然rnn和时间1d卷积可以对帧之间的时间依赖性进行建模并进行帧级预测,但它们通常位于深层convnets之上,该convnets采用单个帧作为输入,而不是直接建模原始视频中的时空特征。shou等人于2016年在europeanconferenceoncomputervision(eccv)上发表的“temporalactionlocalizationinuntrimmedvideosviamulti-stagecnns”,提出了一种基于端到端的基于段的3dcnn框架(s-cnn),该框架捕获时空信息的方式优于其他基于rnn的方法。然而,s-cnn缺乏在精细的时间分辨率下进行预测并将动作实例的精确时间边界定位的能力。同时由于当前的未修剪数据集缺乏空间标注信息,因而目前的未修剪数据集很难做到在定位动作时间边界的时候同步定位出该动作的空间边界框。



技术实现要素:

鉴于目前视频动作检测算法的局限性,本发明提供一种基于三维卷积和fasterrcnn的视频动作检测方法,以提高未修剪数据集的时序动作检测定位正确率(map),同时定位出动作的空间边界框。

为实现上述目的,本发明采用如下的技术方案:

一种基于三维卷积和fasterrcnn的视频动作检测方法,包括以下步骤:

步骤一、时空特征生成

对于输入的视频剪辑片段l,使用3dconvnet网络提取时空特征立方体;3dconvnet网络包括依次连接的卷积层1、池化层1、卷积层2、池化层2、卷积层3a、卷积层3b、池化层3、卷积层4a、卷积层4b、池化层4、卷积层5a和卷积层5b;

步骤二、全局平均池化

在卷积层5b后添加一个3×3×3的卷积核,卷积的填充和跨幅为1,卷积核数量为1024个;然后再添加一个全局平均池化层,池化核大小为1×7×7,池化的深度跨幅为1,高度和宽度的跨幅分别为7;通过全局平均池化操作在训练过程中优化权重项

步骤三、时间候选框生成

将anchor纳入时间候选框子网,子网预测关于anchor的潜在候选框和预测候选框是否包含动作的二进制标签;anchor是以(l/8)均匀分布的时间位置为中心的预定义多尺度窗口;在每个时间位置获取特征预测候选框具体为:首先在conv5b后添加3×3×3的卷积核;然后应用3dmax-pooling来缩小空间维度以产生时间唯一的特征图;每一个时间位置上512维的特征向量用来预测每个时间候选框是动作还是背景的二进制得分;

步骤四、3droi阶段

设计一个3droi池化层,从步骤一共享卷积conv5b中提取每个可变长度候选框的固定大小的卷积特征;

步骤五、分类和回归

步骤三所挑选的候选框在经过上述操作后被馈送到全连接层;所述候选框经过softmax层被分类成动作类别,视频的开始和结束时间在regression层中进行优化;

步骤六、动作定位

在生成动作类别的同时生成一个边界框,使用步骤二中得到的权重项来得到类别激活图,通过阈值方法在类别激活图基础上生成可能包含动作的空间位置边界框。

作为优选,步骤二中:

对于一个特定的时间位置,假设fk(x,y)表示卷积层conv5b在空间位置(x,y)第k个单元的激活值,那么,对于第k单元来说,在全局平均池化操作后即可得到fk=∑kfk(x,y);对于一个特定类别c的softmax的输入其中,是第k个单元的类别c的相应权重,即表示fk对于类别c的重要性;对于类别c的softmax输出

通过将fk=∑x,yfk(x,y)插入到分类得分sc中,可以得到以下公式:

假设定义mc为特定类别c的类别激活值,那么每一个空间位置(x,y)上可以得到如下公式:

从而可以得出:

sc=∑x,ymc(x,y)

其中,mc(x,y)表示在特定时间位置上的空间位置(x,y)被分类为c类的重要性。

作为优选,步骤四中:

对于roi池化层,首先需要确定输出大小,然后确定内核大小、步幅和填充值;将特征立方体表示为d×h×w,对特征立方体进行时空上的的roi池化;假设conv5b的输出为d×h×w,输出结果是d×h×w,那么首先将h×w的特征图平均分成h×w的格子,那么每个格子的大小为h/h×w/w;在每一个格子中应用最大池化方法来采样最大值,在空间维度上得到h×w的特征图;将d平均分成d份,那么每一份大小为d/d;在每一份中应用最大池化方法来采样最大值,从而得到d×h×w的特征图。

作为优选,步骤五中:

在训练网络的时候同时优化分类和回归任务,softmax损失函数用于动作类别的分类,smoothl1损失函数用于动作时间边界的回归,步骤五的损失函数如下所示:

其中,ncls和nreg分别表示训练时候批处理数量和候选框的数量,λ表示损失权衡函数,ai表示预测一个候选框是否是动作的可能性,表示其真实值,表示预测一个候选框和真实值之间的相对位移,表示一个候选框和真实值之间的坐标转换,这个坐标转换可以通过如下的公式进行计算:

其中,ci和li表示候选框的中心位置和长度,表示该候选框的真实值。

作为优选,步骤六中:

采用阈值操作作用于类别激活图,所述阈值分别取20、100和110;在生成的类别激活图的基础上,首先获取图像中动作的轮廓并细致轮廓,然后生成对应轮廓的外部矩形边界框,再对生成的边界框进行排序并合并矩形边界框。

本发明基于三维卷积和fasterrcnn的视频动作检测方法,首先引入一个新的模型,其使用三维完全卷积网络对视频流进行编码;随后在生成的特征基础上生成包含动作的候选时间区域,并生成一组候选框;最后不同剪辑的候选框经过分类检测,将视频流中动作类别、视频动作开始和结束时间预测出来;同时预测出动作的空间位置边界框。与现有方法相比,本发明所述方法在未修剪的数据集视频时序动作检测上具有优异的性能,同时可以在缺乏空间标注信息的情况下实现动作定位。

与现有技术相比,本发明具有以下优点:

1.本发明是基于端到端深度学习的视频动作检测方法。它直接对原始视频进行操作,并使用单个3d网络捕获时空信息,以基于3d卷积特征执行动作识别和检测。

2.同时我们在该发明中提出了一个新的层,该层是faster-rcnn的兴趣区域(roi层)的三维推广,它有效的解决了管道候选框可变时间和空间尺寸的问题。

3.最后引入弱监督方法,在缺乏空间标注信息的情况下预测出动作的空间位置。

4.本发明方法可直接运行在通用gpu计算设备,不需要额外的硬件设备。同时本发明可以运用于任何未修剪数据集,不需要指定的数据集。

附图说明

图1本发明方法的流程图

图2(a)、图2(b)本发明方法的实验结果:图2(a)、图2(b)分别为activitynet数据集中动作“layupdrillinbasketball”和“discdog”的时序动作检测的结果,其中,gt信息标注的是真实值,ours信息标注的是本实验的预测值;

图3本发明方法的实验结果:activitynet数据集中动作“diving”的动作定位结果。

具体实施方式

下面将结合附图和具体实施方式对本发明做进一步说明。

本发明提供一种基于三维卷积和fasterrcnn的视频动作检测方法,在特征提取部分,使用3dconvnet来提取视频动作的时空特征。为了实现高效计算和端到端训练,候选框生成和分类子网共享相同的3dconvnet特征。提取候选框子网预测可能包含动作的可变长时间段,而分类子网将这些候选框分类为特定的动作类别或背景,并进一步优化候选框边界。同时通过弱监督方法在空间维度上生成可能包含动作的的空间位置边界框。

本发明方法流程图如图1所示,包括以下六个步骤:

步骤一、时空特征生成阶段。

本发明采用3dconvnet来提取时空特征,经实验证明3dconvnet可以有效地总结从原始视频到高级语义的时空特征。

对于输入的视频剪辑片段l,使用3d卷积和3d池化来提取时空特征立方体。在3dconvnet中,卷积和池化是在时空上同时进行的。因此,我们的网络结构保留了输入视频的时间信息。如表1所示,我们的3dconvnet网络包括依次连接的卷积层1、池化层1、卷积层2、池化层2、卷积层3a、卷积层3b、池化层3、卷积层4a、卷积层4b、池化层4、卷积层5a和卷积层5b。

所述卷积层1用于输入视频片段与卷积核的卷积操作,从而可以实现提取视频的时空特征。其中输入的视频片段为512帧112×112大小的图像构成的视频流,卷积核大小为3×3×3,卷积的填充和跨幅为1,卷积核数量为64个。从而输入的视频流经过卷积操作可以得到64个512×112×112的特征图。

所述的池化层1采用最大池化方法对前一卷积层输出的特征图进行压缩,一方面使特征图变小,从而简化网络计算复杂度;另一方面进行特征压缩,从而提取主要特征。其中池化核大小为1×2×2,池化的深度跨幅为1,高度和宽度的跨幅分别为2。从而卷积层1的输出经过最大池化操作可以得到64个512×56×56的特征图。

卷积层2对池化层1输出的特征图进行卷积操作,从而继续提取视频时空特征。其中卷积核大小为3×3×3,卷积的填充和跨幅为1。由于上一层池化操作使得特征图缩小,有可能影响网络的准确度,因此我们通过增加特征图的数量来弥补,将卷积层2的卷积核数量设置为128个。从而池化层1的输出经过卷积操作可以得到128个512×56×56的特征图。

池化层2对卷积层2输出的特征图进行池化操作。池化核大小为2×2×2,池化的跨幅为2。从而卷积层2的输出经过最大池化操作可以得到128个256×28×28的特征图。

卷积层3a对池化层2输出的特征图进行卷积操作。卷积核大小为3×3×3,卷积的填充和跨幅为1,卷积核数量为256个。卷积层3b对卷积层3a的输出继续进行卷积操作,卷积核参数同卷积层3a一致。从而池化层2的输出经过两次卷积操作可以得到256个256×28×28的特征图。

池化层3对卷积层3b输出的特征图进行池化操作。池化核大小为2×2×2,池化的跨幅为2。从而卷积层3b的输出经过最大池化操作可以得到256个128×14×14的特征图。

卷积层4a对池化层3输出的特征图进行卷积操作。卷积核大小为3×3×3,卷积的填充和跨幅为1,卷积核数量为512个。卷积层4b对卷积层4a的输出继续进行卷积操作,卷积核参数同卷积层4a一致。从而池化层3的输出经过两次卷积操作可以得到512个128×14×14的特征图。

池化层4对卷积层4b输出的特征图进行池化操作。池化核大小为2×2×2,池化的跨幅为2。从而卷积层3b的输出经过最大池化操作可以得到512个64×7×7的特征图。

卷积层5a对池化层4输出的特征图进行卷积操作。卷积核大小为3×3×3,卷积的填充和跨幅为1,卷积核数量为512个。卷积层5b对卷积层4a的输出继续进行卷积操作,卷积核参数同卷积层5a一致。从而池化层4的输出经过两次卷积操作可以得到512个64×7×7的特征图。

我们使用c3d模型作为预训练模型,并在我们的实验中对activitynet数据集进行微调。

步骤二、全局平均池化阶段。

目前未修剪的数据集中对于空间位置的标注信息极少(activitynet中没有,thumos14仅部分视频数据有空间标注信息),因此我们仅能在弱监督情况下对视频动作的空间位置进行定位。受启发于networkinnetwork(nin)和googlenet中使用全局平均池化层(globalaveragepooling),在本发明中我们将使用全局平均池化层,我们发现采用全局平均池化不仅仅起到了正则化的作用,而且全局平均池化能够很好的保持显著的定位作用。

对于一个特定的时间位置,假设fk(x,y)表示卷积层conv5b在空间位置(x,y)第k个单元的激活值。那么,对于第k单元来说,在全局平均池化操作后即可得到fk=∑kfk(x,y)。因此,对于一个特定类别c的softmax的输入其中是第k个单元的类别c的相应权重。本质上来说,表示fk对于类别c的重要性。最后,对于类别c的softmax输出

通过将fk=∑x,yfk(x,y)插入到分类得分sc中,可以得到以下公式:

假设我们定义mc为特定类别c的类别激活值,那么每一个空间位置(x,y)上可以得到如下公式:

从而可以得出:

sc=∑x,ymc(x,y)

由此可以推断出mc(x,y)表示在特定时间位置上的空间位置(x,y)被分类为c类的重要性。

我们在conv5b后添加一个3×3×3的卷积核,卷积的填充和跨幅为1,卷积核数量为1024个。然后再添加一个全局平均池化层,池化核大小为1×7×7,池化的深度跨幅为1,高度和宽度的跨幅分别为7。通过以上的操作我们可以在训练过程中优化权重项

步骤三、时间候选框生成阶段。

我们利用步骤一中卷积层conv5b的输出来生成时间候选框。为了允许模型预测可变长度候选框,我们将anchor纳入时间候选框子网。本阶段子网预测关于anchor的潜在候选框和预测候选框是否包含动作的二进制标签。anchor是以(l/8)均匀分布的时间位置为中心的预定义多尺度窗口。每个时间位置指定k个固定的不同尺寸的anchor。因此最终生成的anchor的总数为(l/8)*k。

为了在每个时间位置获取特征以用来预测这些候选框,我们首先在conv5b后添加3×3×3的卷积核,以用来扩展时间候选子网的时间接收域。随后我们应用3dmax-pooling来缩小空间维度以产生时间唯一的特征图。每一个时间位置上512维的特征向量用来预测每个时间候选框是动作还是背景的二进制得分,同时它还能预测时间候选框和真实值的中心位置以及长度的相对位移值。

候选框子网输出一组具有相关分数的候选框。一些动作候选框时间域彼此高度重叠,一些动作候选框是动作的得分低。根据物体检测和动作检测的标准,我们采用贪心的的非极大值抑制(nms)策略来消除高度重叠和低置信度的候选框。随后将同一种尺度的anchor链接起来。由于同一种尺度的anchor存在不同的时间位置上,这就保证了候选框预测在时间上的不变性。

步骤四、3droi阶段。

由于步骤三生成链接的候选框可以是任意长度,然而我们需要为每个特征提取固定大小的特征,以便进一步来进行动作分类和回归。我们设计了一个3droi池化层,从步骤一共享卷积conv5b中提取每个可变长度候选框的固定大小的卷积特征。经典的最大池化层定义了确定的内核大小、步幅和填充值。相反,对于roi池化层,首先需要确定输出大小,然后确定内核大小、步幅和填充值。将特征立方体表示为d×h×w,对特征立方体进行时空上的roi池化。假设conv5b的输出为d×h×w,我们的输出结果是d×h×w,那么首先我们将h×w的特征图平均分成h×w的格子,那么每个格子的大小为h/h×w/w。在每一个格子中应用最大池化方法来采样最大值,这样在空间维度上我们将可以得到h×w的特征图。然后将d平均分成d份,那么每一份大小为d/d。在每一份中应用最大池化方法来采样最大值,从而我们将可以得到d×h×w的特征图。

步骤五、分类和回归阶段。

步骤三所挑选的候选链接框在经过上述操作后被馈送到全连接层。最后,这些候选框经过softmax层被分类成动作类别,视频的开始和结束时间在regression层中进行优化。

我们在训练网络的时候同时优化分类和回归任务。softmax损失函数用于动作类别的分类,smoothl1损失函数用于动作时间边界的回归。从而本发明的损失函数如下所示:

其中ncls和nreg分别表示训练时候批处理数量和候选框的数量,λ表示损失权衡函数,本实验经过交叉验证将其设置为1。ai表示预测一个候选框是否是动作的可能性,表示其真实值。表示预测一个候选框和真实值之间的相对位移,表示一个候选框和真实值之间的坐标转换。这个坐标转换可以通过如下的公式进行计算:

其中ci和li表示候选框的中心位置和长度,表示该候选框的真实值。

步骤六、动作定位阶段。

为了实现动作定位,本发明需要在生成动作类别的同时生成一个边界框。我们使用步骤二中得到的权重项来得到类别激活图。本发明采用一种简单的阈值操作作用于类别激活图,其中本发明的阈值分别取20、100和110。在生成的类别激活图的基础上,首先获取图像中动作的轮廓并细致轮廓,然后生成对应轮廓的外部矩形边界框,再对生成的边界框进行排序并合并矩形边界框。其中本发明中动作的轮廓取的是预测类别分数最高的前五个类别的动作轮廓。

实施例1:

本发明中,以英伟达gpu作为计算平台,采用cuda作为gpu加速器,选取caffe作为cnn框架。

s1数据准备:

本实验中使用activitynet1.3数据集。activitynet数据集仅由未修剪的视频组成,有200种不同类型的活动,其中训练集10024个视频、验证集4926个视频和测试集5044个视频。与thumos14相比,这是一个大型数据集,无论是涉及的活动类别数量还是视频数量。

步骤1.1:从http://activity-net.org/download.html下载activitynet1.3数据集至本地。

步骤1.2:根据每秒25帧图像(fps)将下载的视频转换成图像,不同子集的图像按照对应视频名称分文件夹放置。

步骤1.3:根据数据增广策略,本实验采用水平翻转策略。在生成视频训练数据阶段,采用图像间重叠0.7生成训练数据。同时本实验不仅按照视频从头到尾的方式来生成训练数据,而且还按照视频从尾到头的方式生成训练数据,从而增大数据量。

s2构建模型参数:

本实验采用learningspatiotemporalfeatureswith3dconvolutionalnetworks作者提供的在sports-1m数据集预训练的c3d模型参数(https://github.com/chuckcho/video-caffe)来初始化本实验的3dconvnet参数,之后我们在activitynet1.3数据集上进行微调。

s3模型训练:

步骤3.1:本实验的模型采用随机梯度下降算法(sgd),批处理数量(batchsize)为128,动量为0.9,权重衰减为0.0005。

步骤3.2:本实验的学习率设置如下:前10个epochs学习率为0.0001,之后的学习率降为0.00001。

步骤3.3:模型训练过程中生成的solverstate可用于模型的继续训练,caffemodel可用于接下来的模型测试。

s4模型测试:

步骤4.1:用上述模型训练生成的caffemodel来进行测试。

步骤4.2:本实验采用贪心的非极大值抑制策略对测试生成的预测结果进行处理,消除高重叠度和低分数的预测结果。非极大值抑制阈值设置为0.99999,分数的阈值设置为0.005。

s5模型评估:

步骤5.1:根据上述处理后的预测结果计算tiou(temporalintersectionoverunion)>0.5的测试集,当预测结果tiou>0.5的预测结果我们认为是预测正确的结果。

步骤5.2:接着计算tiou@0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95的正确率,从而得到模型预测结果的平均正确率map。

具体实施步骤叙述完毕,下表给出本发明在map@0.5的测试结果。本实验给出了activitynet数据集中动作“layupdrillinbasketball”和“discdog”的时序动作检测以及动作“diving”的动作定位结果,如图2(a)、图2(b)、图3所示。实验环境为:gpuk80,cuda8.0,cudnn5.1.10版本。结果为:

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1