基于局部特征词袋模型人体动作识别关键帧选取方法
2019-03-23柳似霖
柳似霖,王 颖,吴 峰
(1.北京化工大学,北京100029;2.中国科学院 微电子研究所&中国科学院大学,北京100094;3.国家知识产权局专利局 专利审查协作天津中心,天津 300304)
引言
人体动作识别目前被广泛用于视频监控、人机交互、虚拟现实等。提取视频图像的动作特征,并基于所提取的特征进行动作识别,近年来成为计算机视觉的一个研究热点。由于视频图像中人体动作是渐变的,帧与帧之间存在信息冗余,采用全部视频图像进行人体动作识别计算量大,效率低。选取准确表征人体动作特征关键帧,去除冗余数据,对于提高动作识别的准确率和实时性非常重要。
用于关键帧选取的图像特征有颜色直方图、光流、纹理等,Zhuang[1]Sheena[2]等人利用颜色直方图等局部特征聚类实现关键帧选取,但颜色直方图对人体动作视频的背景及视角变化比较敏感,且对运动描述能力降低。利用光流特征聚类可选取动作识别的关键帧,虽然光流特征能表达目标的全局性运动[3],但忽略了局部运动信息,选取的关键帧不能准确描述动作变化。图像时空特征克服了光流特征和直方图特征在时间和空间上的局限性,时空兴趣点作为一种局部时空特征对视角变化及人体自遮挡等具有很好的鲁棒性,且不需要进行背景减除等图像预处理,适用于动作视频图像中连续复杂动作识别[4-6]。利用视频图像中提取的时空兴趣点集合[7,8]可以采用编码或者词袋模型法[9,10]进行人体动作识别。采用词袋模型表征时空兴趣点[8],忽略不同时空兴趣点的位置关系,把提取到的时空兴趣点利用聚类映射为视觉词汇。将时空特征表征为文本中的词汇,时空兴趣点的每个聚类中心对应一个视觉词汇,所有视觉词汇的集合建立视觉词典[11],利用不同词汇出现的频率可实现动作识别,降低了用于动作识别的特征维数[12]。
由于原始动作视频图像特征信息冗余,需进行关键帧选取。聚类法选取关键帧需事先设定聚类中心数目,每个聚类中心即为选取的关键帧,聚类中心个数为选取的关键帧数。文献[13]采用K均值聚类算法选取关键帧,但在动作不确定时K值难以估计,很难确定聚类中心数目。与聚类法不同,群智能优化算法不需要事先确定聚类中心数目,具有更强的适应性。粒子群算法作为一种群智能优化算法通过粒子在解空间追随最优粒子,避免所优化的对象在有限的区域陷入局部最优,在某个区域上找到最优值实现全局优化[14]。
因此,针对目前关键帧选取方法中聚类法关键帧数目需人为确定、全局特征计算量大且对背景及光照敏感以及动作识别准确率低等不足,本文基于时空兴趣点特征利用词袋模型构建视觉词典,基于离散粒子群优化算法选取最有效表征人体运动或姿势的关键帧,以提高动作识别的准确率及实时性。
1 离散粒子群算法关键帧选取原理
传统粒子群算法假设有一群随机运动的粒子,以粒子对解空间中最优粒子的追随进行解空间的搜索。粒子群通过多次迭代修正寻优过程逼近最优解,其流程简单,易于实现。
1.1 连续粒子群算法
(1)
式中:r1和r2为0~1之间的随机数,ω为速度更新惯性因子。相应的其位置更新由公式(2)得到:
(2)
粒子群算法利用粒子的个体极值和粒子群的全局极值修正寻优,单个粒子寻优保持粒子在搜索方向的多样性,避免陷于局部最优;全局极值从整体把握寻优方向,加速寻找最优解。
1.2 离散粒子群动作视频关键帧选取原理
采用粒子群算法选取人体动作视频图像关键帧,其对应的帧图像为离散空间。通过将连续粒子群算法扩展到二进制空间实现动作视频关键帧的选取。对于任一人体动作视频,其对应随机粒子Xi为二进制向量,长度为原始视频帧数l。若Xi中某元素值为1则表示该元素对应的帧为关键帧,否则为0。速度向量Vi长度和Xi相同,Vi中的每个元素为在[0-1]区间的随机数,表征随机粒子Xi中对应元素为1的概率。
关键帧选取的离散粒子群的速度更新公式为
(3)
式中:速度更新惯性因子ω值取1。在关键帧选取计算过程中,速度向量Vi中有些元素值可能大于1,为使速度向量中每一个位置元素的数值满足在[0-1]区间,引入标准sigmoid函数修正速度向量:
(4)
和连续粒子群优化方法不同,离散粒子群算法确定关键帧的粒子位置更新如(5)式:
(5)
1.3 最优适应度计算
基于词袋模型统计序列图像中每个词汇出现的概率分布向量描述人体动作。以原始动作视频的词汇概率分布向量和选取的关键帧的词汇概率分布向量的余弦距离作为优化函数,用于估计原始视频动作特征和选取的关键帧动作特征的相似性,评价选取粒子的最优适应度。
(6)
2 基于离散粒子群的关键帧选取流程
基于离散粒子群的关键帧选取流程如图1所示。采用3D Harris算法提取每个视频图像中的时空兴趣点,并用HOG3D描述器进行特征描述,对时空兴趣点特征采用聚类方法建立视觉词典。统计原始视频图像中每个视觉词汇出现的概率,建立视觉词汇概率分布向量。采用离散粒子群算法进行关键帧选取,每个粒子的大小等于原始视频帧数。
按照图1步骤进行关键帧选取,迭代结束时,全局最优解对应的粒子Xb中所有值为1对应的视频帧数即为所选取的关键帧。以长度10帧的连续人体动作视频为例,若最终求解的全局最优粒子Xb=(1,1,0,0,0,1,0,1,0,0),则表示第1,2,6,8帧图像为选取的关键帧。
3 动作视频关键帧选取及动作识别结果
本文对KTH和Weizmann数据库中的动作视频进行关键帧选取。KTH数据库包含行走、慢跑、跑步、拳击、鼓掌、挥手6个常见动作。每种动作包含25个人4个不同场景共100个动作视频,每个视频的帧数为300~1 000不等。Weizmann数据库包括9个人向前跳、向上跳、跑步、推举、弯腰、双手挥、单脚跳、横向动、单手挥、走路等10个动作90个视频,每个动作视频帧数为30~150不等。采用3D Harris算子提取时空兴趣点,利用时空兴趣点建立大小为650的视觉词典,详见文献[15]。采用离散粒子群算法进行关键帧选取,初始粒子数目为50,每个粒子长度为每个视频帧数,关键帧选取迭代次数为100。以如图2(a)的连续20帧的跑步视频片段为例,利用本文提出的离散粒子群关键帧选取算法选取的关键帧如图2(b)所示。对2个视频数据库的所有视频进行关键帧选取,并分别利用关键帧选取前后的视频建立视觉
图1 关键帧选择算法流程图Fig.1 Flow chart of key frames selection algorithm
词典,采用SVM算法[16]进行动作识别,关键帧选取及动作识别结果如表1所示。表1给出了2个数据库关键帧选取前后人体动作视频的平均帧数及每个视频的平均特征点数,选取的关键帧数分别为原视频数的64.5%和61.4%,利用关键帧和用所有视频的动作识别准确率相同。
图2 KTH数据库人体动作原始视频及关键帧选取结果Fig.2 Original video and selected key frames for KTH database
针对KTH数据库,表2给出了分别采用聚类法和离散粒子群算法选取关键帧进行动作识别的结果。聚类法随着选取关键帧数增加,动作识别的准确率增加。
表1 原始动作视频与关键帧选取后的动作视频对比Table 1 Recognition comparison between selected key frames and original videos
表2 聚类法和离散粒子群法选取关键帧的动作识别结果Table 2 Selected key frames by discrete particle swarm method and clustering method
图3给出了计算出的行走、慢跑、跑步、拳击、鼓掌、挥手等6个动作的识别准确率。可知聚类法选取关键帧的每个动作的识别准确率随帧数增大而增大。总体上离散粒子群方法选取的关键帧进行识别的6个动作识别准确率较聚类法高,且每个动作的误识别率低。当聚类法选取的关键帧数和离散粒子群法选取的关键帧相同时,识别准确率低于离散粒子群法。
图3 KTH数据库6个动作识别准确率Fig. 3 Recognition accuracy of 6 motion in KTH database
4 结论
本文利用视频图像提取的时空兴趣点建立视觉词典,引入了夹角余弦距离作为最优适应度评价关键帧选取前后的动作特征相似度,采用离散粒子群算法进行关键帧选取。和聚类法随着选取的关键帧数不同导致的动作识别准确率不同相比,用离散粒子群算法提取的关键帧进行识别保证了和原始视频相同的动作识别准确率。实验结果表明,本文提出的离散粒子群关键帧选取算法,有效去除了原始视频的人体动作特征冗余信息,保证了识别准确率的稳定性和准确性。