一种基于光流的动态手势识别方法*
2015-12-02陈威
陈 威
(华侨大学)
0 引言
近几年来随着计算机技术深入和广泛的应用于人的各项活动领域,人与计算机的交互活动变得日趋频繁.为了提高人机交互的效率,使其更加符合人类的思维和交流习惯,众多科研机构展开了深入的探讨和研究,多种人机交互手段孕育而生.这些手段主要通过语音,人脸,手势,肢体动作等进行识别.其中手势在人们日常生活中是最常使用,且具有广泛的认可的一种交流形式.基于计算机图形图像的手势识别研究近些年来受到了科研人员的较多的关注.其可分为基于数据手套的手势识别和基于计算机视觉的手势识别[1].其中基于数据手套的识别需要用户穿戴上相关的设备,给用户体验带来了较大的不便性.相反,基于计算机视觉的手势识别的便捷性得到了较广泛的认可,受到了众多的研究者和用户的青睐.
基于计算机视觉的手势识别是一个综合性议题.其目标是让计算机系统能建立以人类通识手势语义为基础的一系列的人机交互.手势可以是静态或者动态,手势的识别研究涵盖了诸如语言学,运动分析,运动建模,机器学习和模式识别[2].通常基于计算机视觉的手势识别过程分为三个步骤.首先通过一系列图像处理或计算机视觉方法,初步分割目标区域[3];采用跟踪算法,提高复杂背景下系统的鲁棒性.其次,将图像中检测到的疑似目标进行抽象,获得一系列关键特征信息,并建立对应的特征模型库.最后,利用模式识别或机器学习的分类方法来完成对手势语义的检测.
动态手势识别目标是由一组相邻的连续视频帧组成.该文主要采用肤色检测和差分运动信息检测相结合的方法对同一系列相邻帧图像中的人手目标进行区域分割,提取运动手势的光流变化特征建模,计算待判目标与动态手势模版的相似度,最终实现手势识别.
1 人手检测及分割
基于图像信息的手部的检测多采用模式匹配[3],或利用手的几何特征[4]、肤色模型等;并且注重细部的人手检测根据建模的不同,采用不同的检测方法.该文选择的贝叶斯分类算法具有实时性较高的特点,与目标差分运动检测方法相结合在手势区域分割方面具有较好的效果.
1.1 贝叶斯肤色检测
由于人的肤色的特殊性,肤色模型常被用于人手、人脸等检测中.图像颜色可以用不同的颜色空间来表示,而每种颜色空间都有其特点[5].该文在肤色检测中采用YUV颜色空间,YUV中的Y分量对应图像中的亮度信息,而在计算机肤色检测中常常将亮度信息忽略不计,这样可以达到降低计算复杂度的效果.仅用U、V分量作为贝叶斯分类器的输入,图像可表示为自由变量二维元组I(x,y)=<u,v>.于是由贝叶斯公式可以得到一组肤色颜色的后验概率[6],即式(1):
P(s)表示样本集图像中目标为肤色的先验概率,P(I(x,y))表示各种颜色在样本集中的先验概率,P(I(x,y)|s)表示肤色颜色出现的概率.利用训练数据计算P(s|I(x,y)),可以寻找合适阈值T,大于T的判为肤色区域.
1.2 差分运动分析
在实验中摄像机采用固定位置,并且假设相邻时间片内目标光线和背景恒定不变.那么在相邻时刻内获取的图像帧之间作相减运算可以得到运动的目标图元[7],见式(2).从差分运算中获得的是一个二值图像,且非零值表示的是运动目标所在区域[8].
这里ε=ωμ,ω为权重指数,μ是整幅图像的平均亮度,在该系统中可以根据环境的亮度对ω进行适当的手动调整.
1.3 分割目标区域
图1 分割目标
为了降低可能存在的环境和光影变化等因素对实验的影响,该文尝试将上述目标分割算法的输出结果相结合也就是基于肤色的差分方法.由于图像中仍残留噪音,所以在用该二值图像做蒙板提取目标之前,采用先对一幅图像进行腐蚀运算,然后再进行膨胀运算的基于数学形态学的预处理方法.去除大量的噪声干扰的同时保留了目标的特征信息.图1中的目标(d)为原图(a)经过蒙版分割和滤除噪音得到的目标图像.
2 光流场及手势识别
计算机在图像中检测运动目标都基本上都需要进行图像预处理、特征提取,然后计算特征所在位置在相邻时间片段里的运动变化[9].该文采用基于光流场的方法是主要针对连续灰度图像中角点的表观运动[10-11].光流场是由图像中像点在相邻时间的运动速度矢量组成的一个二维矢量场[11].研究光流场的可以从序列图像中分析计算出目标图元运动信息.另外要进行特定手势识别就必须在这些特定的运动信息的基础上对特定的手势动作进行建模[10].该文设定光照恒定为前提,采用光流法来检测人的动态手势特征,采用DTW(Dynamic Time Warping,动态时间归整)算法进行动态手势匹配.
2.1 高斯金字塔光流算法
对整个手势动作视频进行等时间间隔的采样.光流计算的基本算法是采用时空梯度函数计算出相邻帧图像每个像素点的运动速度矢量[11-12].如果用 p(x,y)来表示图像中的像点,I(p(x,y),t)是像点p在时刻 t的灰度值,像点p(x,y)在t+ Δt时刻移动新位置 p(x+ Δx,y+Δy)时,新灰度值为I(p(x+Δx,y+Δy),t+Δt).假定图像灰度值前后相等,令 u=Δx/Δt,v=Δy/Δt为该点光流矢量沿x和y方向的两个分量,Ix、Iy、It分别为像素点的灰度值沿 x、y、t三个方向的偏导数,于是得到了基本光流约束方程[11]Ixu+Iyv+It=0.根据约束方程可以知道对输入的图像序列要满足两个限制:(1)相邻两帧图像灰度值是相等的;(2)相邻两帧图像之间的像点运动小于一个像素距离[11].而以往的实验表明用传统的光流算法很难得到精确的运动物体的光流场.构造金字塔式多分辨率结构是目前光流计算发展的主要趋势.该文采用的高斯金字塔由一组图像序列构成,序列中下级图像通过低通滤波输出新一级图像[13].用 Si表示第 i层图像,S0为连续两帧原始图像,Si的每一像素都是由Si-1层图像透过式(3)得到.其中,窗口函数t(m,n)的阶数设为5×5,根据以下约束条件:
(1)可分离性:t(m,n)=t(m)×t(n),m∈[-2,2],n ∈[-2,2];
(2)归一化:∑(-2,2)t(m,n);
(3)对称性:t(m)=t(-m);
(4)奇偶项等贡献性:t(-2)+t(2)+t(0)=t(-1)+t(1).
于是得出:t(0)=2/5,t(1)=t(-1)=1/4,t(2)=t(-2)=1/20,从而得到窗口函数:
分析层间的运算公式(3)看出,呈现金字塔构造,第i层图像大小为第(i-1)层的1/4.以此逐层计算金字塔顶层两帧图像的像点运动距离,如果满足约束条件(2),便可根据基本光流公式计算出其标准的光流场.具体的算法1如下[12-13]:
算法1.高斯金字塔光流计算
2.2 手势光流特征及判别
光流矢量常用一个四维的向量P(x,y,u,v)表示,P的空间位置由x和y决定,P在两个垂直方向上的分量由u和v决定[6,10].如果一帧光流场中有M×N个光流矢量,那么一段手势的视频片段中多帧图像间的光流场数量往往是海量的数据,应对这种高维的原始特征必须进行降维.光流矢量分量(u,v)可以由极坐标的形式(r,θ)来表示,目标运动中发现方向θ具有较好的辨析能力,而r的影响甚微,可以忽略.这样就将光流场原本四维向量P(x,y,u,v)转化为便于处理的三维向量 P'(x,y,θ).
该文尝试引入直方图的方法对上述三维向量P'再进行分析.该直方图描述了图像中具有θ运动方向的矢量个数,其中横坐标轴代表像点运动方向矢量的级数,纵坐标轴代表像点在该运动方向上出现的概率[14],图2中(c)和(d)示意了相邻帧的像点运动的光流场及像点运动方向直方图.从图中发现用一个一维数组m[k](k为θ的量化级数)可以表示三维向量P'的统计信息.
图2 生成方向直方图
对人的特定的手势行为按时间顺序进行分解可以得到了一组按顺序排列的动作帧模板.尝试将式(5)直方图相交法公式[14]用于待判手势样本与先验模板间的比较,相似度可以作为手势的检测的判据.首先建立一个由运动方向直方图组成的公共手势模版库T和一个已标识手势语义的由时序索引号序列S组成的的索引序列库.光流方向直方图特征矢量序列生成为算法2:
算法2.光流方向直方图特征矢量序列的生成
在视频光流特征序列数组Q与模版序列库中的序列数组S比较中发现,由于动作频率、幅度、采样间隔等问题,两者的索引序列长度很难同步.为此,该文文尝试引入基于动态规划技术的DTW算法.
2.3 动态时间归整算法(DTW)
引入DTW算法的目的是为比对序列寻找一个最佳的时间同步规整函数,也就是它可以使输入的待匹配手势索引序列Q的在时间顺序上与手势索引序列库[15]中的S序列同步;同时DTW算法通过在局部自动寻找一条最优路径,保证在这条路径上的所有匹配点对之间的加权距离也最优[16].
假设序列Q(1:Lq)=(q1,…,qLq)以及序列S(1:Ls)=(s1,…,sLs).设时间规整函数为:C={c(1),c(2),…,c(N)},N 表示匹配序列路径长度,假设第n个匹配点对是由S的第i(n)个特征矢量和Q的第j(n)个特征矢量构成,那么可以表示成c(n)=(i(n),j(n)).另外规整函数应满足以下条件:
(1)边界条件,c(1)=(1,1),c(N)=(Lq,Ls);
(2)单调性,规整函数必须保证匹配的路径不违背索引序列的时间顺序[15],即i(n)和j(n)都单调递增;
(3)步长限制,规整函数不允许跳过任何一个匹配点,即步长限定在{(1,0),(0,1),(1,1)}.
令局部匹配点间距离为d(si(n),qj(n)).从(l,l)点出发搜索,反复利用式(6)递推[14],直到(Ls,Lq)点得到最优路径.
将待识别索引序列Q与由公共模版手势生成的索引序列库中的所有模版序列逐一进行DTW匹配,计算其失真度D=min∑d(si(n),qj(n)),如果最小失真度大于给定阈值,则输出识别不成功;反之输出此时模版对应的手势语义,即算法识别的结果.
3 实验结果与分析
该文按逆时针方向将成像平面上360°进行20等分,于是对光流场三维向量的方向特征θ进行量化,得到θ∈[0,20].这样三维的光流向量(x,y,θ)转化为一个一维数组 mi[21]表示.实验中选择了4个具有代表性的手势(向左、向右、向上、向下运动),按照如下算法3[15]建立了公共模版库和索引序列库:
算法3.公共模版库及索引序列库的生成
将新模版和索引序列数组添加到库中
实验所用测试视频图像均为320×240像素,采样频率为30帧每秒,样本都是经过事先规范的动作,由5个人分别单独完成上述4种特定手势动作,每种手势10次,截取固定1 s的视频片段,这样每种手势都有50个训练样本,总共200个手势训练视频.
图3 相邻手势视频帧的光流场及其基于公共模版库的相似度
图3示意了4种手势相邻帧生成光流场以及其与公共模版库进行比对.匹配输出的手势索引序列在DTW算法下寻找最优的索引序列模版,并输出其语义.该文为每种手势创建20个测试样本,共计80个样本.测试集的平均检测率达到了 88.7%,见表 1.
表1 手势识别率
4 总结
该文采用光流法对图像进行处理,依靠人手在连续帧中的相对运动求得了图像中每个像素所对应物体的运动信息,不需要在图像序列中建立特征之间的对应关系,不仅降低了系统对图像预处理的依赖性[16],而且降低了动态手势识别的算法复杂度.实验样本中规范了手势动作,避免了不规则动作的干扰,但系统的鲁棒性受到影响.该文采用多种信息对手势区域进行分割和预处理,对手势光流提取起到了辅助作用.引入基于光流场的DTW算法,建立目标手势与模版库的匹配关系,实验取得了较好的效果.
[1] 李瑞峰,曹雏清,王丽.基于深度图像和表观特征的手势识别[J].华中科技大学学报:自然科学版,2011,39(11):88-91.
[2] 孙丽娟,张立材,郭彩龙.基于视觉的手势识别技术[J].计算机技术与发展,2008,10(2):214-216.
[3] Antonis A A,Manolis I A L.Binocular Hand Tracking and Reconstruction Based on 2D Shape Matching,In:International Conference on Pattern Recognition,2006.207-210.
[4] 林水强,吴亚东,陈永辉.基于几何特征的手势识别方法[J].计算机工程与设计,2014,35(2):636-640.
[5] 范保玲,王民,董颖娣.基于肤色检测技术的手势分割[J].计算机技术与发展,2008,18(3):105-108.
[6] 郭训力,俞扬.一种基于肤色和深度的第一人称人手识别方法[J].计算机工程与应用,2014,50(12):133-137.
[7] 曹丹华,邹伟,吴裕斌.基于背景图像差分的运动人体检测[J].光电工程,2007,34(6):107-111.
[8] 李春华,李宁,吴立潮.序列图像运动目标的新型快速检测方法[J].小型微型计算机系统,2014,35(8):1916-1921.
[9] 卜凡亮,王蓉,金华,李丽华.基于光流的运动目标检测与跟踪[J].中国人民公安大学学报:自然科学版,2009,15(2):58-60.
[10] Horn B,Schunch B.Determining optical flow[J].Artificial Intelligence,1981,17(4):185-203.
[11]邹洪.实时动态手势识别关键技术研究[D].华南理工大学,2011.
[12]危水根,陈震,黎明.基于梯度光流场计算方法的一种改进[J].计算机工程,2006,32(1):198-200.
[13] Battiti R,Amaldi E,Koch C.Computing Optical flow across multiple scales:Anadaptive coarse-to-fine strategy [J].International Journal of Computer Vision,2004,6(2):133-145.
[14]杨杰,杨静宜.基于颜色直方图的石材图像检索[J].武汉理工大学学报:信息与管理工程版,2009,31(2):173-176.
[15]刘贤梅,赵丹,郝爱民.基于优化的DTW算法的人体运动数据检索[J].模式识别与人工智能,2012,25(2):352-359.
[16]刘晓平,夏新宇,陆劲挺.基于DTW方法及Hermite插值的运动序列长度归一化[J].系统仿真学报,2013,26(7):1598-1602.