基于多尺度3D卷积神经网络的行为识别方法

2021-12-21 11:18高陈强
关键词:池化卷积神经网络

胡 凯,陈 旭,朱 俊,高陈强

(重庆邮电大学 通信与信息工程学院,重庆 400065)

0 引 言

行为识别是指从一段未知的视频中自动分析正在发生的感兴趣行为,是计算机视觉研究领域的一项极其重要且困难的研究任务。其研究成果可以广泛应用于智能监控系统、海量视频检索、机器人视觉、非法视频检测等领域[1]。到目前为止,研究人员已经提出了各种行为识别方法,取得了较大的进步,然而,该技术离实际应用还有一段距离。主要原因是行为识别面临诸多挑战:①视频视角变化、相机移动和背景干扰;②行为定义复杂、视频复杂多样;③数据规模大、硬件资源有限。

早期行为识别算法大多运用描述子对不同图像的纹理信息、视觉形态和多个连续图像之间的运动信息等设计手工特征,然后利用这些人工设计特征区分不同的行为。常用的描述子有时空兴趣点特征(spatial-temporal interest point, STIP)[2]、方向梯度直方图(histogram of oriented gradient, HOG)[3]和运动边界直方图(motion boundary histogram, MBH)[4]等,其中,H.Wang等[5]提出改进的密集轨迹(improved dense trajectories, iDT)是这类算法中最优秀的算法。iDT从视频帧的密集采样特征点开始,用光流跟踪,对每个跟踪器沿着轨迹提取不同的手工制作特征。尽管该方法具有良好的性能,但它的计算非常耗时,并且在大规模数据集上变得难以处理。

近年来,卷积神经网络(convolutional neural network, CNN)[6]因其良好的容错能力、并行处理能力和特征表达学习能力被广泛应用于图像处理[7]、人脸识别[8]和人体姿态估计[9]等任务中,且取得了巨大成功。与计算机视觉的其他领域一样,行为识别最近的工作主要是通过应用卷积神经网络来完成这项任务。最初,G.Gkioxari等[10]假设视频中的行为发生时,每帧图像都能够代表正在发生的行为,以2D CNN提取视频单帧的特征用于分类。而后,A.Karpathy等[11]使用2D CNN对视频的每帧图像提取特征,然后进行特征编码形成最终的特征用于行为分类,此方法取得了一定的效果。特别指出的是,K.Simonyan等[12]提出的双通道卷积神经网络结构在一定程度上促进了卷积神经网络在行为识别领域的发展。该方法中,一个通道用光流算法[13]来计算视频中单帧图像周围的光流图来模拟时序信息,另一个通道用来提取三原色(red green blue,RGB)的特征信息,然后将2个通道的特征融合之后进行行为分类。

然而包含行为的视频是一个时空3D空间,基于2D卷积的神经网络输出结果只包含空间信息,缺少时间信息。相比而言,3D卷积神经网络的卷积和池化操作都是在时空上进行的,它能更好地对时间信息进行建模。2D卷积与3D卷积的区别如图1。其中,H,W分别表示图片的长和宽;k代表卷积核的大小;L表示帧长度。

图1 2D卷积与3D卷积Fig.1 Difference of 3D convolution and 2D convolution

D.Tran等[14]提出一种基于3D卷积的神经网络架构C3D。该方法与上文其他深度学习方法相比,引入3D卷积和3D池化操作来对输入视频的时间和空间信息同时建模,不仅省去了大量繁琐的预处理操作,而且是端到端模型,在行为识别领域取得了实质性的进展。由于C3D在本质上更加适合行为识别这种包含时空信息的任务,因此,该方法一提出就引起了广泛关注。但是,C3D同其他用于图像分类的卷积神经网络类似,例如VGG-Net[15]和ResNet[16]等。这类网络每一层只是从上一层的特征图中学习更高层次的特征,没有考虑之前更低层次的特征图。简而言之,每一层的特征在整个网络中大多只使用一次。这种方式造成了特征图重用率低,进而导致网络的学习效率不高。虽然一些研究表明,深层次的网络拥有更好的特征提取能力,但是提升网络而忽略特征图的使用率反而会造成模型退化。本文针对上述问题借鉴现有成熟的2D网络,如特征金字塔网络(feature pyramid network, FPN)[17]和单激发多目标检测算法[18]等特征金字塔结构,在分类时不仅使用高层的语义信息而且融合浅层的特征信息,以此提高模型的性能。

本文提出了一种基于C3D的多尺度3D卷积神经网络(Multiscale-C3D)的行为识别方法。该方法在原C3D的基础上融合C3D的浅层特征信息实现端到端的行为识别。同时,该方法以现有的深度学习理论为基础,利用迁移学习[19]的思想,将C3D和Multiscale-C3D相同的参数迁移到Multiscale-C3D,以降低模型的训练时间。实验结果表明,本文所提出的方法相较于现有的行为识别方法具有更高的识别精度。

1 多尺度3D卷积神经网络行为识别方法

为了使用网络中浅层特征信息进行行为识别,本文提出Multiscale-C3D网络结构如图2。图2中所述的池化层均为最大池化层,除了备注说明的池化操作以外,卷积层下方的数字表示通道数。较C3D网络只用最后一层的特征图作为分类信息相比,本文增加了2个通道提取浅层特征图的信息用于分类,这样做既能提高特征图的使用率,也能将浅层特征信息应用于分类。除此之外,最后用于分类的特征既包括浅层特征信息,也包含高层的语义信息,能够提高模型的鲁棒性。具体操作如下:在卷积层3a之后增加一个1×1的卷积层,1×1卷积层的卷积核个数远远小于其输入特征图的通道数,以降低输出特征图的通道数,进而使最后所接的全连接层的参数量大大减少;1×1的卷积层之后接的平均池化层,因为在卷积层3a之后,在时间维度上的卷积操作还很少,时间维度信息还很丰富,如果使用最大池化会遗漏很多信息;卷积层4a之后的操作与卷积层3a之后的相同,只是池化操作选择的是最大池化。对于最后得到的特征直接连接(concatenation)起来组成全连接层8,然后线性变换为分类类别数目,作为softmax层的输入。

1.1 3D卷积和3D池化操作

从图1可以看出2D卷积和3D卷积的区别,3D卷积能够有效地建模视频时间和空间的信息。3D卷积的运算公式为

u(m-1)l(w-i,h-j,t-k)+bmn)

(1)

(1)式中:ymn(w,h,t)表示第m层第n个特征块经过神经元运算后(w,h,t)位置的输出;vmn(i,j,k)表示第m层第n个特征块在位置(i,j,k)的权重;bmn表示第m层第n个特征块的偏置。

在卷积过程中,使用多个不同的3D卷积核,以固定步长平移,对图像序列进行卷积运算,获得多样的特征。

池化操作同3D卷积一样,都从空间域扩展到了时空域。池化是一种聚合的操作,它能够概要统计特征,降低模型的参数量,加快模型训练。3D池化公式为

(2)

(2)式中:W,H,T分别表示视频块中宽、高、时间维度;ymnl表示(m,n,l)位置的输出。对于池化层,输出卷积核的个数是不变的,特征图的大小根据池化层池化核大小变化。例如,如果池化层的核的某个维度大小为2,则对于维度成倍减小。(2)式使用的是最大池化,本文还使用了平均池化来处理时间维度上较长的特殊情况。

1.2 C3D网络架构

表1为C3D的网络架构配置参数,其输入的尺寸为16×112×112,分别表示时间、长和宽3个维度。C3D共有8个卷积层,5个最大池化层和2个全连接层,接着是softmax的输出层。所有的3D卷积核在空间和时间维度上的大小均为3×3×3,步长为1。3D池化层除了pool1的池化核大小为1×2×2以外,所有池化层的核大小都是2×2×2。全连接层具有4 096个输出单元。从表1中可以看出,有的卷积层既有卷积层a又有卷积层b,这样使用相同的卷积层串联能在降低参数的同时增加卷积层的感受视野。

表1 C3D网络结构

1.3 多尺度3D卷积神经网络

如上所述,如果仅仅考虑加深网络来提高学习能力,会忽略了特征图的使用率,且效果提升不明显。FPN网络结构采用特征金字塔的方法提高特征图的重用率,从而进一步提高网络的鲁棒性和学习效率,在目标检测任务上取得了巨大的成功[17]。

检测任务同分类任务相比,其整体框架类似。即分类任务使用深度卷积神经网络提取特征用于分类,而检测任务用深度神经网络提取特征用于检测,所以可以将检测任务中优秀的模型应用到分类任务中。

本文受C3D和FPN等神经网络的启发,提出一种基于C3D的多尺度3D卷积神经网络,该方法不仅使用高层的语义信息而且融合浅层的特征信息进行分类。本文方法包含训练阶段和测试阶段,具体算法如图3。具体流程如下:在训练阶段,本文采用交叉验证法,按文献[20]中将UCF101中80%的数据用作训练集和验证集,训练集和验证集的比例按4∶1随机分配,并对训练集和验证集预处理,加载C3D网络已训练好的模型到Multiscale-C3D与C3D相同的部分,设置好学习率和训练轮数之后开始迭代。将训练集的数据及标注信息送入Multiscale-C3D网络,经过前向传播,并利用交叉熵损失函数和随机梯度下降法不断更新模型的参数,直到迭代到设置轮数;用验证集为模型训练提供监督信息,具体流程与图3中测试阶段一致,每轮都加载正在训练的模型,对验证集的数据进行测试,如果测试结果是最优,则保存最优模型。在测试阶段,对测试数据预处理后,输入到最优的模型中,经过前向传播,得到最终的分类结果。

图3 本文方法流程框图Fig.3 Diagram of the proposed method

2 实验结果与分析

2.1 数据集

本文采用网上公开的数据集UCF101[21]。该数据集共有13 320个Youtube用户上传的视频,包含101个动作类别,每个动作类别用于训练的视频大约有100个。这个数据集相比其他公共数据集更复杂,因为它包含了视频中动作的各个方面,例如各种类型的活动、相机运动、杂乱的背景和视角变化。除此之外,该数据集还提供了大量的训练ConvNet/LSTM网络的样本,因此被大家广泛使用。本文按照文献[20]中的方法,将数据集80%的视频作为训练集,20%的视频作为测试集,且使用分类精度作为评估指标。由于UCF101数据集中用于训练网络的数据量还是相对较少,因此,本文采取随机裁剪、翻转等方式扩充数据集。为了更好地训练模型,本文采用以下预处理。

1)每个视频统一按照每5帧采用1帧,并且将图像大小改为171×128像素,当图像尺度小于修改尺度时,使用双线性插值上采样。

2)输入时对图像进行随机裁剪,裁剪成112×112像素大小。对用于训练的图像进行归一化处理,归一化后的图像为

(3)

(3)式中:m表示1)中处理后图像像素;μ表示原始图像像素的均值;σ表示原始图像像素的标准差。

2.2 实验设置

本文采用pytorch[22]开源深度学习库,使用NVIDIA Tesla P100显卡进行加速。

训练时,本文加载预训练好的C3D模型到Multiscale-C3D的原C3D的卷积层,其他层采用随机初始化的方法进行初始化。本文使用SGD[23]优化算法训练模型,初始化学习率为0.000 01,使用余弦退火学习率衰减策略[24],并且采用L2正则化(衰减因子为0.000 3)以降低过拟合风险。

测试时,输入一个视频片段(16帧)到训练好的网络中,通过前向传播输出101个动作类别的概率分数,选取最高的概率分数作为预测结果。

2.3 实验结果

本文实验采用平均分类精度来定量评价不同方法的分类效果。平均分类精度指各类别精度之和除以总类别数。

因为本文方法涉及不同特征层的融合,所以本文首先比较当同时选用全连接层4a和全连接层7时,使用3种不同的融合策略对平均分类精度的影响,选用最优的融合策略。3种融合策略分别是相连融合、相加融合和最大融合。

下述公式中,f表示映射函数,x表示特征向量,y表示融合之后特征向量,R表示向量空间。

相连融合表示为ycat=fcat(xa,xb),在特征通道d相同空间位置i处,将2个特征图堆叠起来。其中

(4)

相加融合表示为ysum=fsum(xa,xb),计算特征通道d相同空间位置i处2个特征映射的总和。其中

(5)

且1≤i≤L, 1≤d≤D;xa,xb,y∈RL×D。

最大融合表示为ymax=fmax(xa,xb),取2个特征图对应位置的最大值。其中

(6)

特征向量xa,xb与 (5) 式中一样。

全连接层4a与全连接层7采用不同融合策略在UCF101上的平均精度如表2。

表2 全连接层4a与全连接层7采用不同融合策略在UCF101上的平均精度Tab.2 Mean classification accuracy on UCF101 of different fusion strategy of the fully connected layer 4a and the fully connected layer 7

从表2可以看出,当使用相连融合时,本文方法在UCF101上的平均分类精度最好,明显优于相加融合和最大融合。但是文献[12,20]中使用相加融合的效果最佳,究其原因可能是可见光图像与光流图像具有互补性,使用相加融合时能保证在可见光通道信息的前提下,更多地融合其他通道的特征信息。但是在本文中仅使用可见光用于行为识别,而且特征来自不同的特征层,需要更多地保留各层特征之间的相对独立,所以本文方法使用相连融合最优。表3给出了不同特征层与全连接层7特征使用相连融合对平均分类精度的影响。

表3 不同浅层特征与高层特征融合之后在UCF101上的平均精度Tab.3 Mean classification accuracy on UCF101 of different underlying feature fusion with higher-level feature

一直保留全连接层7是为了确保每次用于分类的特征都含有高层的语义信息,因为行为识别更注重的是高层的语义信息分类,浅层的特征只是用于辅助。从表3中可以看出,当仅使用一个从浅层特征图提取出的特征与全连接层7的特征融合时,本文发现随着卷积层的加深,浅层特征对平均分类精度的提升越小。这是因为浅层的特征包含更多的纹理特征,能够结合高层的语言信息提高之前区分度不高的行为。如图4,跳水与悬崖跳水,类别之间的差异很小,都是跳水,更多的区别却在于背景不同,使用特征金字塔的方法能够更好地挖掘这些背景信息,提高行为识别的精度。浅层特征信息能够辅助高层的语义信息进行分类。最终本文选用全连接层3a、全连接层4a和全连接层7之间的特征相互融合,作为最后的分类特征。

表4给出了近年来不同方法在UCF101的平均精度和测试一个4 s视频所用时间。

表4 不同方法在UCF101上的平均精度和测试一个4 s视频的时间Tab.4 Mean classification accuracy on UCF101 and test a video time of about 4 s of different approaches

文献[5,12,20]都需计算光流,而计算一个4 s视频的光流就需耗时6 s,所以测试时间大于6 s。表4中文献[5]为传统方法,文献[12,14]均为深度学习方法。从表4可以看出,本文方法的性能不但明显好于传统的基于人工设计特征的行为识别方法,而且也好于当前基于深度学习的方法。相较于文献[12,20]这类方法,本文方法没有繁琐的预处理操作,如计算光流等操作,时间开销更小且模型性能更好。与文献[14]相比,本文设计的方法,使用特征金字塔的结构在稍微损失测试时间的情况下提升了模型的鲁棒性和性能。

3 结束语

本文受目前流行的深度学习模型的启发,提出一种基于Multiscale-C3D的行为识别方法。该方法受到目标检测算法特征金字塔的启发,本文首次将特征金字塔方法应用于3D卷积神经网络,在原C3D的基础上使用相连融合来融合C3D的浅层特征信息实现端到端的行为识别。同时该方法以现有的深度学习理论为基础,利用迁移学习的思想,将C3D和Multiscale-C3D相同的参数迁移到Multiscale-C3D,以降低模型的训练时间。实验结果表明,本文所提出的方法好于现有的方法。

猜你喜欢
池化卷积神经网络
基于Sobel算子的池化算法设计
基于高斯函数的池化算法
卷积神经网络中的自适应加权池化
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于卷积神经网络和池化算法的表情识别研究
基于傅里叶域卷积表示的目标跟踪算法
基于神经网络的拉矫机控制模型建立