3D局部特征耦合回归森林的图像动作识别算法

2018-07-19 13:01谢全卿
计算机工程与设计 2018年7期
关键词:挥臂识别率轮廓

占 俊,谢全卿

(1.景德镇学院 计算机工程系,江西 景德镇 333000;2.南京航空航天大学 电子信息工程学院,江苏 南京 210016)

0 引 言

在当前的视频中,大部分都是以人的活动为主体,例如智能家居、人机交互中,安全监控等方面[1]。因此,对人体动作识别研究意义重大。一般通过对视频序列进行分析,提取动作特征,构建视频对象与动作间的映射联系,通过分类学习对视觉特征与动作类别的关系[2,3]。周风余等[4]提出了一种时序深度置信网络的在线动作识别方案。该方法通过根据动作序列先后帧的上下文相互关系,较好解决了深度置信模型中对动态动作特征识别难题。该方法较好地提高了识别率,并且无需人们事先对图像序列处理,可从动作过程中任何时间进行识别,能够在一定程度上完成在线识别功能。然而,在复杂环境中,对于光照变化、模糊运动等识别效果还有待进一步提高。Davis等[5]设计一种基于运动能量图的动作识别。根据马氏距离来计算模板之间的距离。利用观察图像特征与训练图像特征之间的距离,通过很K-近邻分类对动作特征学习。该方法计算简单,但是在选择时间间隔时较难,当间隔小,模板数较大,样本与训练间的差异较较小时,动作识别率较高。反之,识别率较低,一般用于简单或者静态动作识别。吴珍珍等[6]提出了一种骨架模型和格拉斯曼流形的3D动作识别算法。该方法利用ARMA对每个变化的动作特征表示,提取时空动态运作特征。通过矩阵得到的空间为流形的点。再利用控制切线对类别表示,得到局部切丛,并利用SVM进行分类学习。该方法的辨别率较高,对延迟方面测试也取得了较好表现,但是该方法计算复杂,对噪声较为敏感深度图像提供更丰富的几何信息,促进人体与背景的分离和相似的消除,因此,本文设计了深度图像的动作识别方案。首先,提出了基于深度图特征,称为3D局部特征,通过扩展2D形状上下文形成3D空间,表征人体轮廓和关节之间的位置线索,3D局部特征能在3D空间中有效捕捉轮廓点的相对位置信息。其优点是对身体尺寸具有不变性,能有效捕获不同高度的人体。其次,提出了一个数据相关的图像结构与回归森林组合学习方案。具体地说,根据训练数据到达回归森林的叶节点,该模型可以了解各关节的分布和相邻关节之间的空间约束,不同于一般的图形结构,本文模型根据特定的测试图像进行相对分布。与当前流行方法比较,提出的方案可显着提高动作的正确率。最后在常用的数据集完成测试。

1 3D局部特征

形状匹配已被应用到动作识别中,其能有效在对数坐标中通过直方图对人体轮廓的局部信息编码[7]。但是,形状匹配存在2个问题:运动检测得到的人体轮廓通常是含噪声的,由于服装纹理的模糊性,很难提取准确内边缘。由于缺乏深度信息,从2D轮廓恢复3D动作是病态的。为了解决以上2个问题,本文从深度图像中提取有用特征,其不仅提供人体三维信息,也有利于提取内边缘。因此,从深度图像提取的人体轮廓的有规律的空间点,计算特征直方图,形成了新的3D局部特征。因此,本文特征构建包括2部分:轮廓提取和直方图分级。

对于一幅深度图像I,假设人体的前景是已知的。需要从深度图像中提取外边缘和内边缘,为了降低深度传感器对噪声的影响,首先利用高斯滤波器平滑提取的身体形状。

对深度di在像素pi处的高斯滤波可定义为[8]

(1)

在深度图像的人体轮廓是边缘点上的一个点集,为了提取轮廓点,背景像素的深度值设置为无穷大,因此,轮廓点的集合S可采用局部深度极值函数得到,表示为

(2)

式中:td为深度阈值,本实验中设置td=4cm。

在S中存在成千上万个点,导致了对形状过于密集描述,同时也花费了大量的计算时间。因此,对S下采样为一个含有500个点的子集合S′。

为了捕捉3D信息,将S′中的每个点变换为3D空间,并计算3D特征直方图。对于S′中的每个点pi,计算其3D空间 {r,θ,γ} 值,r为半径;θ为方位角;γ为天顶角。空间参数的具体表示如图1所示。

图1 3D空间参数表示

然后,将空间点投射到3D直方图hi中,hi由360个成分组成,其中包括5个半径r,12个方位角θ,6个天顶角γ,第k个成分的hi(k)计算如下

(3)

式中:Ci=∑k,j≠1vij(k) 为归一化常数,vij(k)为在hi中第k个成分与点pj的权重映射,vij(k)定义如下

(4)

式中:r(k)、θ(k)、γ(k)表示第k次的中值。在3×3邻域内,将vij(k)以中心分为2类,可看作是一种量化直方图平滑作用,可以减少异常值对深度轮廓的影响。因此,所有的形状和动作可通过N直方图进行编码表示,定义为ζ。

本文的3D局部特征是一种鲁棒性较强的人体动作描述,包含了大量的动作信息,因为一个人的3D形状中,身体关节的位置可以很容易地识别。

2 本文动作识别算法

对于当前的形状特征到人体动作识别的学习映射,容易受到模糊形状影响或者是专为某些特定的动作检测,这使得其不适合关节检测,最近,回归森林被证明是一个有效的动作识别[9],其可以处理高维特征向量且计算复杂度低,因此,可利用随机森林的优势学习动作估计的回归系数。然而,在以往的工作中,人体关节的分布是独立的,事实上,连接关节之间具有很强的依赖关系,例如给定肘部的位置与附近形状的一些信息,手的位置将被强烈约束[10,11]。

在3D局部特征空间到人体动作的学习映射中,在回归森林中嵌入了图结构。学习两种基于训练样本的弱回归的叶节点:一个是关于关节的独立估计量xi,另一个是对一个关节的空间约束估计(xi,xj)。通过Gaussian密度方程对节点xi与(xi,xj)分布估计,因此,该方法可以提供关节的位置的结构化输出,如图2所示。

图2 3D局部特征结构化输出

2.1 图形模型

假设身体关节之间的依赖关系可以由一个预定义的图表示,表示为G=(V,E), 其中,V与E表示图像G中的节点与边缘。节点i=1,2,…,V对应人体处于xi的关节,边缘(i,j)∈E。 图模型可以分为两个图:一个说明了人体上部结构,另一部分用于下部[12]。设人体动作结构X={x1,x2,…,xj}, 其轮廓最大化后验分布估计为

p(X|ζ)∝p(ζ|X)p(X)

(5)

式中:p(ζ|X) 表示概率,可变形为∏i∈Vφ(xi)。p(X)为前位动作结构,表示为Πi,j∈Eφ(xi,xj)。 因此,人体动作的后部可表示为

(6)

2.2 回归森林学习

对于一个回归森林,定义为T={T1,…,Tt}, 其中含有t个回归树,每个树通过一系列学习的分裂函数计算。令S={pi} 表示从训练图像中收集的一组采样点,在树的根节点上,训练数据S可通过分裂函数f分裂成两个子集,左子集SL和右子集SR。分裂函数f通过对点p的第k个特征hp(k)与阈值τ比较,定义如下[13]

(7)

在每个节点,有一组候选的分裂函数随机设置的参数{k,τ},选择函数f*是寻求熵最小的过程,定义为

(8)

式中:H(Sm)表示为

(9)

式中:p(xj|pi)表示处于关节xj的pi权重,定义为

(10)

在树被构造后,在每个叶子节点l上,定义φ(xi,xj)、φ(xi)的回归系数表达式,为了使分布密集,引入Gaussian密度函数[14]。通过学习并存储相应的参数集,得到两种位移中心Vi(l),Vij(l)。

(11)

(12)

其中,wk(i)l,wk(ij)l分别为中心Δk(i)l, Δk(ij)l的关节位移与结构位移。

对于给定的深度图像,其含轮廓采样N个点{s1,s2,…,sN}, 每一点s都会到达森林里每一棵树的叶子节点l,通过评估分裂节点的二进制分裂函数来计算xi的权重

(13)

(14)

(15)

因此,在图形模型中,人体动作的最佳外形可通过以下表示

(16)

由于三维空间中位置变量是连续的,使搜索的最佳解决方案具有较大难度,因此,本文利用迭代方法给出了输出动作的近似解方案。具体来说,通过一个均值漂移算法寻找空间的一个或两个候选为每个关节的初始动作,然后利用梯度下降算法计算最终结果

(17)

本文算法结构表示如图3所示。

图3 本文算法流程

3 实验与分析

为了对识别方法的可行性分析,在MSR-3D与Weizmann动作数据集中进行测验。Weizmann数据集由含有Bend,Jack,Jump,P-jump,Run,Side,Skip,Walk,Wave1,Wave2的10种动作类别组成。MSR-3D[15]主要由上挥臂,平挥臂,捶打挥臂,抓,打拳,上抛,画X,画勾,画圆,拍手10个类别组成。实验采用的数据集与方法见表1。

表1 实验数据集与方法

实验环境为:Intel Core I5,3.50 GHz的64位CPU,8 GB运行内存,Win8操作系统。为了显示算法的优先进性,将当前常用的3种动作识别方法作对比:时序深度置信网络的在线人体动作识别[4],基于运动能量图与运动历史图动作识别[5],骨架模型和格拉斯曼流形的3D人体动作识别[6]。为了便于记录,将3种对照算法标记为A、B、C算法。设深度阈值td=4 cm,hi=0.07,K=8,阈值τ=0.03。在实验中,对图像序列提取轮廓点,将臀部当作原点,图4为Weizmann数据中Walk、Jack、Run这3种动作的提取结果。图4中第1行为视频帧图像中3种动作类型,第2行为对应的3种人体动作轮廓显示,第3行为提取的关节点与边缘。

图4 Weizmann数据集中动作的提取结果

为了对不同动作中的评价,分别在MSR-3D、Weizmann中进行测试,得到2种混淆矩阵,见表2与表3所示。表中第i行第j为第i行识别为第j种动作的概率,相同行累加等于1。表2为MSR-3D数据库中不同动作的混淆矩阵。依据2中得出,“向上挥臂”与“水平挥臂”的正确率相对不高,“向上挥臂”易被当作“水平挥臂”与“捶打挥臂”类别,“水平挥臂”易被当作“向上挥臂”类别。另外“打拳”类别的正确率也较低,易被作为“鼓掌”类别,因为这几种动作轨迹相似度较高,在判断时易被误识别。“鼓掌”、“画勾号”的识别率相对较高,达0.96与0.94。

表3为Weizmann测试集中各个动作的混淆矩阵。依据3中看出,“Run”和“Side”的正确率较低,“Run”易被作为“Side”与“Jump”,“Side”易被作为“Jump”。这几种动作特征相似度高,而“Jump”与“Wavel”的正确率最高,其中,“Jump”、“Wave1”的识别率高达1。

图5为在MSR-3D和Weizmann中通过不同方法测量的平均识别率(average recognition rate,ARR)。依图5中得出,相同情况下,本文方法的ARR最高。具有一定的优势,并且在Weizmann中的识别效性能高于MSR-3D。表4为在Weizmann中对不同类别获得的识别率。从表4中得出,在Weizmann的10种动作识别效果上,本文算法均取得了相对优良的成绩。其中,在“Jump”、“Wave1”、“Walk”类型上正确率达到95%以上。而A、B、C算法在不同的类别的识别效果与本文算法具有一定的差距,本文算法正确率相对较高。主要是本文通过Gaussian 滤波器从深度图像中提取的人体轮廓的空间点,降低了噪声影响。然后计算特征直方图,形成了3D局部特征。利用关节点与边缘形成人体的图形模型,并得到了图像的结构约束和空间约束,通过回归森林法进行分类学习,完成人体动作识别与理解,提高了正确率与鲁棒性。

表2 MSR-3D数据集的混淆矩阵

表3 Weizmann数据集的混淆矩阵

依据实验结果与实验数据可得知,在MSR-3D和Weizmann中,Weizmann的精度优于MSR-3D。主要是Weizmann中环境简单,动作区分度较大。与对照算法比较,提出方案识别率更优,能够较好完成对各种动作类型识别与理解。主要是因为本文算法通过Gaussian滤波器从深度图像中提取的人体轮廓的空间点,降低了噪声影响。然后计算特征直方图,形成了3D局部特征,通过3D局部特征包含了大量的动作信息,能够有效对人体动作描述,在人体的3D形状中,身体关节的位置可以很容易地识别。利用关节点与边缘形成人体的图形模型,并得到了图像的结构约束和空间约束,通过回归森林法进行分类学习,完成人体动作识别与理解,提高了算法识别率与鲁棒性。而A、B、C算法的识别率相对不高,鲁棒性不强。主要是对照算法中对动作特征提取不全面、准确,对于复杂场景、模糊运动、光照变化等干扰时,无法有效提取动作信息,特征提取鲁棒性不强,因此,影响了识别率。

图5 MSR-3D与Weizmann识别率测试

BendJackJumpP-jumpRunSideSkipWalkWave1Wave2A方法80.2479.7784.1580.3284.4579.2586.2185.8480.5983.44B方法85.3384.1283.4084.7585.7984.5389.6887.5890.6386.72C方法91.5689.4487.8586.1489.9687.9590.1492.3391.4188.93本文方法94.1593.1397.6392.6688.6391.3294.2195.4298.6394.21

4 结束语

在本文中,设计了关于深度图像的动作识别方案,首先,利用深度图特征,通过扩展2D形状上下文形成3D空间,表征人体轮廓和关节之间的位置线索,3D局部特征能在3D空间中有效捕捉轮廓点的相对位置信息。其优点是对身体尺寸具有不变性,能有效捕获不同高度的人体。其次,提出了一个数据相关的图像结构与回归森林组合学习方案。具体地说,根据训练数据到达回归森林的叶节点,该模型可以了解各关节的分布和相邻关节之间的空间约束,不同于一般的图形结构,本文模型根据特定的测试图像进行相对分布。结果表明,通过本文方法可以提高人体动作估计的准确性,对人类动作具有优良的判别能力。实验结果也表明一些研究问题,特别是如何结合颜色和深度信息,以提供更准确地估计关节之间的依赖关系,这将是今后的研究方面。

猜你喜欢
挥臂识别率轮廓
OPENCV轮廓识别研究与实践
基于类图像处理与向量化的大数据脚本攻击智能检测
基于实时轮廓误差估算的数控系统轮廓控制
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
扪心自度
提升高速公路MTC二次抓拍车牌识别率方案研究
高速公路主动发光轮廓标应用方案设计探讨
游镜泊湖
高速公路机电日常维护中车牌识别率分析系统的应用
天天挥挥臂有奇效