(长江师范学院电子信息工程学院,重庆 408100)
人体行为识别是利用计算机视觉技术处理视频内容的一个重要研究方向[1],是让机器学会“察言观色”的第一步,在安防、人机交互和视频检索等领域具有重要的研究和应用价值。近年来,越来越多的学者和机构投入到这项工作的研究当中,他们尝试使用各种方法来实现基于计算机视觉的行为识别技术,并取得了不错的效果,具体的方法和文献将在第1 章相关工作里详细分析。这些行为识别方法可大致分为两类:一是基于传统分类方法的行为识别技术;二是基于深度学习的行为识别技术。结合这两类方法的优点,当前行为识别技术主流的研究方向是使用人工提取特征结合深度学习的方法[2-3],然而由于人体行为本身的复杂性,且人体行为容易受到复杂背景、遮挡、光线等环境因素的干扰,目前的特征提取方法大多步骤繁琐,容易产生误差传递,且对动作相对缓慢或静止的行为很难有效建模,此外单一尺度的卷积神经网络不能从多角度充分描述人体行为特征,不利于最终的行为识别。
针对这些问题,本文提出了一种基于低秩行为信息(Lowrank Action Information,LAI)和多尺度卷积神经网络(Multiscale Convolutional Neural Network,MCNN)的人体行为识别方法。本文以包含人体行为的视频序列为研究对象,首先提取行为视频中的低秩行为信息(LAI),相较光流特征,LAI 不需要相邻帧之间位移要比较小和人体目标在不同帧间运动时其亮度不发生改变等假设,且能很好地捕获视频中人体行为的时空信息。然后,针对LAI的特点,设计了多尺度卷积神经网络(MCNN)以进一步提取LAI中的行为特征,最终实现了该模型下的人体行为识别,为行为识别技术提供了一种新的解决方案,进一步提高了行为识别准确率,促进了该技术的实用化进程。
基于传统分类方法的行为识别技术是将行为识别看作是一个行为分类问题,主要分为行为特征提取和行为分类两个步骤。这类方法的特点是人工从视频序列中提取人体行为特征,然后利用分类器对特征进行分类。通过多年的研究,研究者们提出了许多优秀的特征提取方法。Han 等[4]利用稀疏几何特征来提取人体轮廓及内部信息。Hoshino 等[5]采用光流法提取视频序列中的运动信息,首先计算连续帧间的光流场,然后采用非重叠的时空网格对光流场进行细分,并累计每个网格内的光流幅度作为网格的特征表示。Tripathi等[6]利用基于梯度信息的方向梯度直方图特征描述子进行人体行为识别。Wang 等[7]提出了稠密轨迹方法,其思路是利用光流场来获得视频序列中的一些轨迹,再沿着轨迹提取光流直方图(Histogram Of Flow,HOF)、方向梯度直方图(Histogram of Oriented Gradient,HOG)、运动边界直方图(Motion Boundary Histogram,MBH)和trajectory 4 种特征。在提取到行为特征后,这类方法通常将特征输入到K近邻分类器、相关向量机(Relevance Vector Machine,RVM)和支持向量机(Support Vector Machine,SVM)等分类器进行行为分类。
近年来,深度学习方法逐渐被应用到人体行为识别中,并取得了更好的效果,具有代表性的方法有:1)Simonyan 等[8]提出的双流卷积神经网络方法,该网络分为两条支路,一条支路处理RGB 图像,另一条支路处理光流图像,然后再联合训练,最后将两条支路识别结果按权重融合。2)TSN(Temporal Segment Network)[9],该方法是双流卷积神经网络的改进网络,用以解决双流卷积神经网络不能对长时间的视频进行建模的问题。Du 等[10]提出的RPAN(Recurrent Pose-Attention Network),首先用Two-Stream 的方法生成特征,然后引入姿态注意机制,最后用长短期记忆(Long Short-Term Memory,LSTM)网络完成行为识别。3)C3D(3-Dimensional Convolution)[11],利用三维卷积核对行为视频进行处理。这些模型被提出之后,又有很多学者在其基础上进行了改进并取得了较好的效果[12]。深度学习的引入在一定程度上降低了对人工提取行为特征的依赖,其识别效果特别是复杂背景下的识别效果有了不错的提升。
传统方法在基于深度学习的方法出现之前是行为识别的主要方法,也取得了不错的识别性能,但在一些复杂场景的数据库上很难取得令人满意的效果。基于深度学习的方法中多是基于卷积神经网络(CNN)发展而来。CNN在图像处理应用中取得了巨大成功,为视频处理提供了很好的参考;但相较图像处理,视频处理多了一个时间维度,存在视频帧数多、场景复杂等困难。针对这些问题,上述方法通常将传统行为特征与深度学习网络相结合进行人体行为识别,其中比较有效的方法是提取行为视频的光流信息作为深度学习网络的输入,进而实现人体行为识别。然而,在提取光流特征的过程中,当视频中人体行为相对缓慢或暂时静止时,将无法提取到运动信息;而且光流特征通常只是具有运动的那部分人体而非整个人体,因此难有人体形态的整体轮廓,这样的网络输入极大地影响了复杂场景中的行为识别效果;此外,单一尺度的卷积神经网络不能提取不同感受野下的人体行为特征,影响了人体行为的识别率。
本文通过学习视频帧间的数据分布来提取视频中人体行为的LAI。首先,将原始行为视频分割为N段,分别对每小段视频进行低秩学习得到每小段视频的LAI;然后,在时间轴上进行串联成整个行为视频的LAI。针对视频中LAI的特点,设计MCNN 模型,通过多尺度卷积核提取不同感受野下的行为信息,再结合各卷积层、池化层和全连接层进一步提取LAI中的行为特征,进而实现视频中人体行为的识别。完整的行为识别框架如图1所示。
图1 行为识别框架Fig.1 Framework of action recognition
通过深入挖掘视频帧间的数据分布,利用鲁棒主成分分析(Robust Principal Component Analysis,RPCA)方法进行非严格意义下的低秩稀疏分解,实现视频序列中的人体低秩行为信息提取。
RPCA 方法其本质是寻找高维数据在低维空间上的最佳映射。假设存在一个数据矩阵X∈Rp×q可以分解为一个低秩矩阵T与一个稀疏误差矩阵S之和。RPCA 方法可以描述为如下的最优化问题[13]:
其中:rank(∙)表示求秩运算,‖ ⋅ ‖1表示l1范数计算的是数据中各元素绝对值之和,规则化参数λ通常为:
假设视频序列的一帧图像的尺寸是h×u,帧数为q。如图2 所示,首先将每帧图像拉成一个长度为h×u的列向量,并依次堆叠成数据矩阵X∈Rp×q,其中p=h×u,q为视频的帧数。然后采用式(1)和式(2)对X进行低秩学习,从得到的低秩矩阵中抽取一个列向量进行图像还原即得到低秩信息图像。图2 以一段奔跑视频为例,其低秩学习结果如图2(b)所示,遗憾的是该结果没有成功提取出视频中的行为信息。通过研究发现问题在于式(2)的λ取值,经过反复实验,得出有效的λ值为式(3)所示:
其中K的具体取值将依据具体的数据集而定。运用式(3)学习到的结果如图2(c)所示。图3为几个自然场景中人体行为的低秩学习结果示例。
图2 视频序列低秩学习过程Fig.2 Low-rank learning process of video sequence
图3 其他低秩学习结果示例Fig.3 Examples of other low-rank learning results
为了捕获人体运动的时间信息,将各视频段的低秩学习结果在时间方向上进行堆叠,其示意图如图4 所示,以最终实现捕获视频中人体行为的时空信息,即LAI,并将此作为多尺度跨通道卷积神经网络的输入数据。
图4 低秩行为信息生成Fig.4 Generation of low-rank action information
对比图2(c)和图4(c)可以发现,图2(c)捕获了整个视频序列中的人体行为信息,并整合到了一张图像上,图像呈现了人体来回运动轨迹和运动分布信息,图4(c)由于捕获的是分段视频序列中的行为信息,其中人体行为比较集中,干扰小,因而每个低秩行为信息更加明显,同时在时间上进行堆叠后也捕获了图2(c)没有的时间信息,更适合作为后续MCNN 的输入。
针对人体行为LAI的特点设计了MCNN 模型,以提取LAI中的行为特征并完成人体行为的识别。人们在观察事物时通常会略看不重要的部分,视线移动较快,重要的部分会仔细观察,视线移动较慢。为了模拟这一现象,以获取不同感受野下的运动信息。模型对低秩行为信息采取1×1、3×3 和5×5 三个尺寸的卷积核进行特征提取,相同尺寸下采用4个不同的卷积核进行运算,以获取4个不同方向上的特征信息。经过三个尺寸卷积核运算后,尺寸为1×1 的卷积核提取的特征图尺寸最大,3×3卷积核的特征图次之,5×5卷积核的特征图最小。为了便于后续层处理,将3×3和5×5卷积核的特征图通过边缘补零至与1×1卷积核的特征图的相同尺寸。将补零后的特征图与1×1 卷积核的特征图一起经过2×2 的最大池化层以压缩特征图,然后用两个3×3的卷积核进行卷积后再通过2×2的池化层进一步提取特征,网络模型中在每个卷积层结束后均使用线性整流单元(Rectified Linear Unit,ReLU)进行激活,最后连接两个全连接层并通过sigmoid函数输出行为类别。具体网络模型结构如图5 所示,为了使图像简洁,只给出了第一帧特征图的操作示意图,同一层的其他特征图做类似操作。
将低秩行为信息与多尺度跨通道卷积神经网络模型融合,行为视频的分割段数N对整个模型的训练非常重要,将极大地影响网络模型的计算速度和识别效果。此外,在N一定的情况下,多尺度跨通道卷积神经网络模型中各层的最佳权重参数还与具体的行为数据集有关,不同的数据集,其视频帧的尺寸和数量都不一致,这些参数将针对具体的数据集在训练得到。在训练模型时,首先设定整个模型的损失函数,假设有L个带标签样本{z1,y1},{z2,y2},…,{zL,yL},此标签为oneof-c标签,其中:
对于样本zl,设网络模型的输出为ol,定义其误差为:
则网络模型的整体损失函数定义为:
设W为所有网络模型参数组成的向量,则最优的一组参数W*定义为:
在具体参数优化时,若用EL对所有参数直接求解时仍然非常复杂,因此考虑先用EL对输入的加权和求导,再用输入加权和对参数求导。
定义好网络模型的损失函数后,拟采用交替训练方法对整个模型进行训练,即在固定视频分割段数N的情况下,采用上述方式训练MCNN模型,之后再固定网络模型参数,改变分割段数N的取值,最小化模型损失函数,计算此时最佳N的取值,以此方法反复多次交替训练模型,得出特定数据集下整个模型的最优参数组合。
图5 MCNN结构Fig.5 Structure of MCNN
为了验证所提出方法的行为识别性能,在两个具有代表性的基准数据库KTH和HMDB51上进行行为识别实验。
KTH 数据库[14]是行为识别技术中流行的数据库之一。该数据库共记录了四种不同的场景下完成6 种行为,分别由25 位志愿者完成,共计599 个行为视频。HMDB51 数据库是由Kuehne 等[15]提供。该数据库共记录了51 种人体行为,每类行为又收集了不少于101 个的视频序列。该数据库中的行为视频行为类别多、行为样本数多、挑战性大。
首先,在上述两个数据库上对每个行为视频提取其LAI,之后将提取到的LAI输入到MCNN中,采用3.2节所述的交替训练方法对整个模型进行训练。在训练过程中,通过计算每个数据库上不同参数组合的识别性能,以确定最优性能下的参数组合。图6 和图7 分别展示了两个数据库上不同参数组合得出的识别性能。从图6、7 中可以看到,KTH 数据库上的最优参数组合为K=1.25,N=10;HMDB51 数据库上的最优参数组合为K=1.30,N=15。以上参数组合可为其他数据库和实际应用中的参数取值提供参考,根据反复实验可知,实际应用中由于行为数据差异,参数组合会存在一定差别,但参数的大致取值范围应为:K为[1.0,1.5],N为[5,20],可根据具体情况计算不同参数组合的识别性能,以最终确定最优的参数组合。
最后将训练好的网络模型进行测试,测试过程中采用了留一法交叉验证测试方法,确保了训练集与测试集的独立性。经过统计,所提方法在KTH 数据库上达到了97.33%的行为识别率,在HMDB51 数据库上达到了72.05%的行为识别率,图8 和图9 分别为KTH 和HMDB51 数据库上得到的混淆矩阵。图9 中,由于行为类别有51 类,用数字1 至51 分别代表51 类行为,具体行为名称分别为:brush-hair,cartwheel,catch,chew,clap,climb,climb-stairs,dive,draw-sword,dribble,drink,eat,fall-floor,fencing,flic-flac,golf,handstand,hit,hug,jump,kick-ball,kick,kiss,laugh,pick,pour,pull-up,punch,push,pushup,ride-bike,ride-horse,run,shake-hands,shoot-ball,shootbow,shoot-gun,sit,sit up,smile,smoke,somersault,stand,wingbaseball,sword-exercise,sword,talk,throw,turn,walk,wave.
图6 KTH数据库上不同参数组合的识别性能Fig.6 Recognition performance of different parameter combinations on KTH database
图7 HMDB51数据库上不同参数组合的识别性能Fig.7 Recognition performance of different parameter combinations on HMDB51 database
图8 KTH数据库上的混淆矩阵Fig.8 Confusion matrix on KTH database
图9 HMDB51数据库上的混淆矩阵Fig.9 Confusion matrix on HMDB51 database
从图8 和图9 可以看出,在KTH 数据库上“慢跑”和“快跑”之间最容易发生混淆,这主要是由于跑步的快、慢界限很难把握。HMDB51数据库较为复杂,其中行为种类多,场景复杂多样,相近行为之间容易混淆,这也是该数据库挑战性大的原因,但就总体而言,本文所提方法取得了较好的识别性能。
为了全面评价所提出方法的行为识别性能,进行了三组对比实验。第一组是首先对行为视频提取光流信息,然后将光流信息输入MCNN 计算在KTH 和HMDB51 数据库上的识别性能,并与本文方法进行对比。第二组是对比MCNN 与传统CNN 及支持向量机(SVM)的性能,将行为视频的LAI 分布输入CNN 和把LAI 直接拉成向量后输入SVM,其中CNN 为LeNet5网络,分别计算两种方法在两个数据库上的识别性能,并与本文方法的识别结果进行对比。第三组是比较其他行为识别方法与本文所提方法的识别性能。
表1展示了光流+MCNN、LAI+SVM 和LAI+CNN 与本文提出方法在两个数据库上的对比结果,结果表明本文提出的LAI+MCNN 的方法在两个数据库上均取得了更好的识别效果。表2 和表3 分别列举了本文方法与相近方法[16-27]在KTH和HMDB51 上的识别性能对比,这些相近方法均采用了人工提取特征与深度学习网络相结合的方式进行人体行为识别。从结果可以看出,本文方法在两个数据库上均取得了最优的识别性能,同时较文献[21]方法和文献[27]方法分别提高了0.67 和1.15 个百分点。上述三组对比实验验证了本文所提方法的有效性。
表1 两个数据库上不同方法组合的识别率对比 单位:%Tab.1 Recognition rate comparison of different combinations of methods on two databases unit:%
表2 KTH数据库上不同方法的识别率对比 单位:%Tab.2 Recognition rate comparison of different methods on KTH database unit:%
表3 HMDB51数据库上不同方法的识别率对比 单位:%Tab.3 Recognition rate comparison of different methods on HMDB51 database unit:%
本文充分利用行为数据间的关联性,从数据学习的角度挖掘行为视频中的人体行为信息,通过对视频帧进行分段低秩学习,并在时间轴上进行连接进而提取到行为视频的LAI,LAI 能够有效地捕获视频中的行为信息,且提取步骤简洁,避免了因繁琐步骤产生的误差传递,相较光流法,无需视频帧间的运动假设便可捕获行为信息。针对LAI 的特点,本文设计了MCNN 模型,将LAI 输入MCNN 模型,通过多尺度卷积核获取不同感受野下的行为特征,并合理设计各卷积层、池化层及全连接层进一步提炼特征,最终输出行为类别。实验结果表明本文所提方法在两个基准数据库上取得了更好的识别效果,通过设计三组对比实验,验证了本文所提方法的有效性。虽然HMDB51 数据库是自然场景的数据库,但还是不能等同于现实场景,将本文提出的方法应用于现实场景的人体行为识别中,并不断进行改进和完善以提高现实场景中的行为识别效果是需要进一步完成的工作。