基于光流和深度运动图的行为识别算法

2020-07-21 10:56季雄武张永辉
关键词:光流深度特征

季雄武,张永辉,张 健

(海南大学 信息与通信工程学院,海南 海口 570228)

近年来,国内外对视频类的行为识别算法研究如火如荼.虽然,目前对静止图像识别的研究取得了很大的成功,但是对视频类的行为识别仍然是一个具有挑战性的课题.

在行为识别领域,同计算机视觉在各领域的发展一样,集中将卷积神经网络应用于行为识别中.早期的研究人员主要尝试融合光流与RGB视频帧,来提高行为识别准确率.虽然RGB视频具有丰富的细节信息,但缺乏深度信息,对沿着视线方向的动作缺乏识别能力,并且外部的光照和遮挡等因素对其识别能力干扰很大.如文献[1]在2014年首次提出了创造性的双流网络,通过从RGB视频序列提取时空信息进行识别;文献[2]将长短期记忆网络(LSTM)加入到原始双通道模型中,用来加强时域信息的联系;文献[3]使用在ImageNet上进行预训练的ResNet101来搭建双流卷积神经网络,从中提取空间和时间特征,然后微调来进行单帧活动预测.

随着深度相机出现,如Kinect设备,不仅能够提供RGB视频序列,还可以提供深度视频序列.由于深度信息更容易获取,文献[4]从深度图中采样点获得一带3D点以编码空间信息,并采用可扩展的图形模型来编码时间信息;文献[5]将连续深度图的差异堆叠为深度运动图(DMM),然后使用HOG从DMM中提取相关特征,但对沿着视线方向动作的区分度依然较差.文献[6]提出了基于CNN和LSTM的模型LRCN,该模型通过CNN提取空间信息,再通过一个LSTM网络提取时间信息,最后通过Softmax输出结果,但LRCN模型收敛慢,训练难度大.文献[7]提出了一种新的特征描述符,称为深度修改方向梯度直方图(D-mHOG),用于提取深度动作序列的局部形状和时间信息,该算法有效地提高了对沿着视线方向动作的识别能力.文献[8]是基于RGB-D的动作识别算法,将深度图序列表示为三对结构化动态图像(DIs),是一种简单有效的视频表示算法.这些文献都采用了深度视频序列包含的深度信息,虽然深度信息,对光照不敏感,但是单一的深度信息缺少细节的描述.基于上述研究背景,笔者采用当前主流的卷积神经网络,融合RGB视频序列获取的彩色信息(RGB视频帧)和光流信息,并且从同步的深度视频序列获取深度信息,提供深度特征,以增强特征互补性.因此,提出一种基于光流和深度运动图的人体行为识别算法,并结合现有方法的优势和不足进行了优化和扩展.

本文算法基于ResNet101的3个彼此独立的识别流(空间流、时间流和深度流)网络,并将3个识别流网络输出的空间特征、时间特征和深度特征构造成特征矩阵,通过LSTMs进行特征融合,最后将特征送入具有全连接的Softmax层中进行分类,如图1所示.

图1 本文算法流程图

1 数据处理

1.1 空间流网络数据预处理大量文献表明使用RGB图像作为空间流输入,可以获得相当好的性能.本文算法识别模型是在公开的数据集UTD-MHAD[9]上进,其空间流网络对视频中采样得到的静态RGB帧图像进特征提取.由于UTD-MHAD数据集里的RGB视频时长都不超过4 s,每个视频帧不超过70帧.在没有指定情况下,使用全采样方式对该数据集的RGB视频进行采样,并对每个RGB视频序列的前3帧和后3帧进行删除.在视频开始和结束时,受试者大多处于静止状态,只有很小的肢体运动,这对其运动特性没有影响[10].因此,为了去除无运动条件,对初始和结束帧进行了去除.

1.2 时间流网络数据预处理运动中光流信息对于行为识别至关重要,光流是一种简单实用的表达图像序列运动信息的方式,被广泛用于提取行为运动特征.为了给网络框架提供光流信息,对光流算法有不同的选择.虽然大部分的工作都使用了Brox[11]或TV-L1[12]2种光流算法,但是每种不同的光流算法仍然存在一些差异.文献[3]对这2种光流算法性能进行了实验比较,实验结果表明其TV-L1的性能更胜一筹.因此,在没有指定的情况下,使用TV-L1光流算法从RGB视频序列中提取光流信息.TV-L1光流算法的具体目标函数如式(1)所示

(1)

如图2所示,使用该算法计算水平和垂直2个方向的光流,并将TV-L1光流的水平和垂直分量进行了调整,其光流数值小于0值的都设置为0,大于255的值都设置为255.为了能够作为时域网络通道的输入,需要对其进行线性变换,最终将2个方向的光流保存为2张灰度图像.为了有效提取视频的运动信息,采用10个连续帧的水平和垂直光流堆叠形成20个密集光流图像,并将其作为时间流网络的输入.

a 连续两帧RGB图像b 水平与垂直方向的光流图像图2 连续两帧的RGB图像及其对应的光流图像

图3 前视图f、侧视图s和顶视图t的提取框架

该3个投影图中的像素值分别用x,y,z表示,其中z表示深度坐标系中的深度值,则(x,y,z)表示深度坐标系中的一个点.与文献[5]不同的是,在处理每帧投影映射,其计算的运动能量没有设置阈值,只是计算2帧相邻映射之间的绝对差值.对于N帧深度视频序列,利用式(2)叠加其整个序列的运动能量得到深度运动图DMMv,

(2)

1.4 LSTMs特征融合LSTMs网络结构是通过多个LSTM记忆单元构成的.LSTM是长短期记忆网络,也属于时间循环神经网络,对预测和处理时间序列中相对较长延迟和间隔的重要事件具有明显优势[14].LSTM单元具有3个输入,分别为当前时刻的输入值xi,上一时刻LSTM单元的单元状态ct-1和上一时刻LSTM单元的输出值ht-1.LSTM单元的输出有2个,分别为当前时刻输出ht和当前时刻状态ct.LSTM单元含有3个控件门,遗忘门ft确定哪些特征信息从ct-1中遗弃;输入门it确定当前时刻状态ct中将输入哪些新的特征信息;输出门ot确定保留ct-1的哪些特征信息到ht中.具体运算如式(3)~(7)所示

ft=σf(Wf·[xt,ht-1,ct-1]+bf),

(3)

it=σi(Wi·[xt,ht-1,ct-1+bi]),

(4)

ot=σo(Wo·[xt,ht-1,ct-1+bo]),

(5)

ct=σc(Wc·[xt,ht-1]+bi)+ftct-1,

(6)

ht=otσhct.

(7)

图4 特征矩阵被分为多个时间片段作为LSTMs网络的输入

由于对长序列历史信息进行控制和记忆是LSTMs网络的特大优势.如图4所示,将特征矩阵按时间维度分为多个时间片段,再将其按顺序输入LSTMs网络层,并根据其时间轴上的关联特性将特征矩阵实现融合.特征矩阵是由3个识别流网络输出的空间特征、时间特征和深度特征构造成的,并以X表示该特征矩阵,如式(8)

(8)

其中,xt表示为从一个视频的第t帧中提取的3种特征信息组合的特征向量,与自然图像不同的是,每个xt中的元素之间几乎没有空间依赖关系,但在不同的xt之间具有时间相关性,N为一个视频中采样帧数.

2 实验结果与分析

2.1 实验参数设置本文网络模型是在PyTorch1.1学习框架环境下实现.由于考虑网络收敛效果,采用交叉熵损失函数作为3个网络通道训练时的优化目标函数,其优化算法选用随机梯度下降法,并且动量值设定0.9.使用预训练的ResNet101网络模型,其空间流网络模型的训练无需重新学习,只需要对预训练网络模型参数进行微调.因此使用较小的初始学习率,其学习率设定0.000 5,更有利于网络训练.深度流网络和时间网络的输入不是RGB图像,与预训练网络模型的输入存在一定差异,为了加快网络速收敛,其深度流网络与时间流网络初始学习速率一样设置为0.01.3个网络通道采用了自动调整学习速率方法,随着网络迭代次数增加,其学习率随之减小.另外,在基于UTD-MHAD数据集上,空间、时间和深度网络的Batch-size分别设置为25、32和32.实验中将3个识别流构造的特征矩阵,按时间维度划分为32个时间片段,并且使用的LSTM单元数为32个,其时间片段上的特征值分别输入到对应的LSTM单元中进行迭代更新32次.防止LSTMs网络产生过拟合的现象,其dropout设置为0.5,再将LSTMs的输出特征送入具有全连接的Softmax层进行分类.遵循THUMOS13机制[15]对网络模型进行训练,整个网络进行500次迭代,为了有效地检验学习模型的性能,在每迭代一次的同时对测试集进行验证.

2.2 UTD-MHAD数据集的结果分析使用UTD-MHAD数据集[9],该数据集包含深度信息、骨架、RGB视频序列和惯性数据,含有27种不同动作,每个动作分别由8个人执行4次,其中3个已损坏的序列被移除后,总共有861个行为序列.对沿着视线方向的动作识别采用了基于ResNet101的三通道网络模型,融合了RGB,光流和深度运动图3种特征信息,在挑战性较强的数据集UTD-MHAD上取得94.86%的准确率,如表1所示.

表1 在UTD-MHAD数据集上本文算法与现有算法对比结果

从表1中可以看出,本文算法与同样基于UTD-MHAD数据集的识别方法进行比较,比文献[8]中识别方法准确率提升了3.7个百分点,相比于其他文献的6种算法法提高了5.82%~ 20.91%,说明融合时空深三通道的特征信息能够获得较好的识别效果.

图5 UTD-MHAD数据集上的混淆矩阵

从图5可以看出,本文算法在许多动作下获得更高的识别精度,但对于“右手绘制x”,“右手绘制圆圈(顺时针)”和“右手绘制圆圈(逆时针)”等动作识别准确率相对偏低,由于这类动作的较高相似度造成近0.2的误识别率.

2.3 MSRDailyActivity3D数据集的结果分析为了进一步检验算法的性能,笔者也在MSR Daily Activity 3D数据集[19]上进行了实验.MSR Daily Activity 3D数据集包含RGB视频、深度信息和骨骼关节位置数据,共含有16类动作,每类行为分别由10个人执行,每位执行者进行2次活动,一次是站立方式,一次是坐姿方式,总共960个文件.该数据集中的绝大多数动作都涉及人与物的互动,并且在行为识别区分度上主要突出其捕获形状和动作顺序的重要性,如“坐起来”和“坐下来”.在MSR Daily Activity 3D数据集上测试时,只需要基于MSR Daily Activity 3D数据集对本文网络模型参数进行微调,因此使用较小的初始学习率,其3个网络通道的学习率都设定为0.000 5,并采用了自动调整学习速率方法,随着网络迭代次数增加,其学习率随之减小.

表2 在MSR Daily Action 3D数据集上本文算法与现有算法对比结果

图6 MSR Daily Activity 3D数据集上的混淆矩阵

如表2所示,本文算法在该数据集上准确率为97.69%,与同样基于MSR Daily Activity 3D数据集的现有的识别方法进行比较,相比于文献[7]的方法提高了4.56%,相比于其他文献的6种算法提高了6.39%~14.39%.

从图6可以看出,本文算法对该数据集上绝大多数非常相似的动作具有较好的区分度.

3 结束语

实现了一种基于光流和深度运动图的人体行为识别算法,用于沿着视线方向动作和三维动作的识别.该算法不仅保留了时空信息,还增加了深度信息,利用DMM计算获取深度动作序列的深度运动图,并利用LSTMs网络的长期记忆的特点对空间特征、时间特征和深度特征构造成特征矩阵进行融合,以进行最终行为识别.此外,本文算法已经在UTD-MHAD数据集和MSR Daily Activity 3D数据集上进行了评估,获得较高的识别精度,并对相似动作也具有一定的分辨能力.下一步工作重心是将相关的光流算法集成到本文算法的网络框架上,并探讨高效计算时间和高识别精度相结合的实时测量方法,用于实时人体动作识别系统.

猜你喜欢
光流深度特征
利用掩膜和单应矩阵提高LK光流追踪效果
基于改进Cycle-GAN的光流无监督估计方法
四增四减 深度推进
深度思考之不等式
离散型随机变量的分布列与数字特征
一种多尺度光流预测与融合的实时视频插帧方法
基于自适应纹理复杂度的仿生视觉导航方法研究
抓特征解方程组
不忠诚的四个特征
简约教学 深度学习