APP下载

多目标优化的静态手语识别算法研究

2019-02-25赵一丹肖秦琨

计算机技术与发展 2019年2期
关键词:特征选择特征向量手势

赵一丹,肖秦琨,郭 鹏

(西安工业大学 电子信息工程学院,陕西 西安 710021)

1 概 述

随着人工智能技术的发展,以机器为核心的计算模式正朝着以人为中心的计算模式转变,自然且符合人类习惯的人机交互(HCI)方式逐渐成为目前研究的热点。可以预知的是下一代的人机交互平台应该是以手势为主,语音为辅,而裸手操作则是最自然的人机交互方式。另外,手语作为一种表达的工具在手语使用者与他人的交流之间产生着重大影响。对手势识别的研究不仅可用于有效、自然的人机交互,对聋哑人或听力受损人群与健全人之间的沟通也有重要的作用。

手势识别、步态识别、动作识别等众多行为分析技术已经逐步应用在社会生活当中。一个完整的手势识别系统包括手势数据的采集、手势分割、手势特征提取、手势特征表达以及手势识别分类[1-2]。在手势分类问题中关键在于如何提取一组好的手势特征并使用有效的分类器进行识别分类。Guo等[3]提出了一种改进的Zernike矩,26个英文字母静态手势识别的精度和计算成本。他们认为大多数对静态手势识别的研究中,为了提高识别的准确率,大都着眼于对手势特征的提取以及分类的过程,很少有研究考虑降低识别过程中的计算成本。Wu等[4]针对原始超限学习机在手势识别应用中欠缺良好的泛化性能和鲁棒性等问题,运用主成分分析(PCA)算法提取手势图像的主要特征,通过分层超限学习机的稀疏自动编码和分层训练,获得原始输入的多层稀疏表达,使自动编码后的输出近似原始输入,最大限度地减少重构误差,提高特征分类的精度。实验的识别精度达到95.19%。Pu等[5]针对Kinect深度信息下静态手势识别鲁棒性差及识别率低的问题,提出构造一种新的Hu不变矩,采用尺度归一法消除尺度变化对Hu矩的影响,对六种静态手势进行识别的准确率达到98.9%。Chaudhary等[6]比较了人工神经网络、模糊逻辑和遗传算法在基于计算机视觉的手势识别中的不同应用,成功地将进化算法应用于手势识别,但尚未用于特征选择和优化手势分类器。Hasan等[7]提出了一种利用多层感知器和复数矩对6种不同的手势进行分类的手势识别系统,识别率为86.38%。Aowal等[8]测试了判别性Zernike矩(DZMs)提取图像特征用于识别,并将其与标准Zernike矩、主成分分析和傅立叶描述子(FD)进行比较。

虽然特征集对于任何分类任务都非常重要,但在实时的识别系统中计算成本对于提高实时系统的效率同样重要。例如,尽管Zernike矩成功地用于不同的图像识别问题,但仍具有缺点:与其他常用图像描述符相比,CPU时间更长。在现有研究中,Gabor滤波器所表示的特征描述符的计算速度最快。另外,神经网络的拓扑结构还会影响识别精度和速度。较大的神经网络会更好地识别某种模式,但它会带来更大的训练和分类成本。遗传算法已成功应用于神经网络的性能改进。Leung等[9]提出了一种在其链路中具有开关的神经网络,使用遗传算法来调整其结构和参数。隐藏节点的数量是手动选择的,从一个小的数字开始并增加,直到达到很好的识别率。遗传调整的结果是一个较小的、部分连接的网络,从而减少了计算、硬件和内存成本。文中提出的遗传算法同时优化了隐含神经元的数量和神经网络中输入的配置。

鉴于选择最佳特征集合来表示手势的重要性以及实时执行此任务的最佳分类器的计算成本,提出比较了几种常用特征,即Zernike和伪Zernike矩、傅里叶描述符、Hu特征和Gabor特征。基于识别准确度和计算成本将这些图像描述符的识别结果彼此进行比较。鉴于特征选择是一个多目标问题,提出使用多目标进化算法(NSGA-II)来选择特征的最佳组合并优化神经网络的性能。人工神经网络和遗传算法已经在分类问题中应用,文中将两者结合起来,对测试不同特征描述符在准确性和识别速度方面进行比较。

1 手势分割及特征提取

1.1 手势分割

在识别分类系统中,图像分割是为后续的特征提取和识别做准备,图像分割的好坏直接影响分类结果。文中主要是对Kinect 2.0体感外设获取的深度信息的手形分割,深度信息可以有效去除场景中光照、背景的干扰。首先规定手部位于图像最前端,即整幅图像中深度值最小的部分。其次确定深度阈值,将小于阈值的部分分割,从而得到手形部分。此方法主要用于深度图像,并且对背景和光照的限制极少,提高了实验的可行性和实用性。深度图像中,前景目标的深度值与背景各部分深度值不同,故可以利用阈值分割算法提取前景信息。整个手势分割算法流程如图1所示。

(a)手势分割流程

(b)手势分割结果

1.2 手势特征提取

文中对手势特征的提取主要采用以下手势特征描述符:Hu矩、Zernike矩、伪Zernike矩、傅里叶描述符和Gabor特征。同时,在进行手语识别时,将以上不同的手势特征描述符组合起来,对其分类结果的准确性进行对比。

1.2.1 Hu矩

几何矩是由M.K.Hu在1962年提出的,并证明了7个不变矩对图像的平移、旋转、镜像和尺度变换具有不变性[10],是最早建立的图像描述符之一。几何矩的七个分量定义为:

I1=η20+η02

I3=(η30-3η12)2+(3η21-η03)2

I4=(η30+η12)2+(η21+η03)2

I5=(η30-3η12)(η30+η12)[(η30+η12)2-

3(η21+η03)2]+(3η21-η03)(η21+

η03)[3(η30+η12)2-(η21+η03)2]

I6=(η20-η02)[(η30+η12)2-(η21+η03)]+4η11(η30+η21)(η21+η03)

I7=(3η21-η03)(η30+η12)[(η30+η12)2-

3(η21+η03)2]-(η30-3η12)(η21+

η03)[3(η30+η12)2-(η21+η03)2]

(1)

1.2.2 Zernike矩

Zernike多项式是于1934年由Frits Zernike提出[11]。Zernike提出了一组正交多项式{Vnm(x,y)},图像的Zernike矩是该图像在正交多项式上的投影,而这组多项式在单位圆内{x2+y2≤1}是正交的。多项式的形式是:

Vnm(x,y)=Vnm(ρ,ϑ)=Rnm(ρ)exp(jmϑ)

(2)

其中,n为正整数或零,m为正或负整数,必须满足n-|m|=even,|m|≤n;ρ为圆点到(x,y)像素点长度的矢量;ϑ为矢量ρ和轴x的夹角;Rnm(ρ)为径向多项式。

重复率为m的n阶Zernike矩定义为:

(3)

对于一幅数字图像,积分用求和代替,即

(4)

为了计算一幅给定图像的Zernike矩,必须将图像的中心移到坐标圆点,将图像像素点映射到单位圆内。Zernike矩具有旋转不变性,可以将|Anm|作为目标的不变性特征。

1.2.3 伪Zernike矩

伪Zernike矩的缺点在于计算径向多项式时的计算量较大。文中使用Chong等[12]提出的一种改进的快速计算径向多项式Rnm(ρ)的方法。在N×N图像上计算标准PZMs的计算复杂度为O(N2n3),文中使用Chong等[12]提出的P阶递归方法的计算复杂度为O(N2n2)。为了进一步提高计算效率,当m=0时计算PZM。因此,在该过程中,复数项ejmθ是恒定的并且等于1。图2显示了通过计算包含2 425个图像的一组像素为灰度图像的10阶Zernike矩和伪Zernike矩CPU所花费的平均时间,可以观察出计算伪Zernike矩比Zernike矩要快得多,因此得到了广泛应用。

图2 10阶Zernike矩和伪Zernike矩的计算时间

1.2.4 傅里叶描述符

傅里叶特征是手语识别中应用最广的一种描述子,它是对手部形状轮廓特征进行提取和描述的一种算法。要得到一个目标图像的傅里叶描述符,首先要描绘出该目标图像的边缘,然后从图像边缘的一点开始,遍历图像边缘,将边缘每一点的坐标x(t)和y(t)记录下来。使用轮廓函数的两种不同表示法:复数坐标和质心距离函数[13]。

在第一个表示中,轮廓的每个坐标都转换为复函数。

z(t)=[x(t)-xc]+i[y(t)-yc]

(5)

其中,(xc,yc)是轮廓的质心坐标。

通过这一转换使z(t)具有平移不变性,然后对z(t)进行傅里叶转换。

第二种方法基于下面定义的质心距离函数。与z(t)一样,质心距离函数也使得具有平移不变性。

(6)

将上述轮廓函数进行离散傅里叶变换(DFT):

(7)

其中,N是轮廓点的数量;s(t)是轮廓函数,即r(t)或z(t)。通常un表示傅里叶描述符。

当s(t)是一个复函数z(t)时,第一个分量u0是直流分量,因为它只依赖于形状的位置,所以不被使用。特征向量f则包含N-2个描述符[13]。

(8)

对于基于质心距离r(t)的傅里叶描述符,式6仅使用实数,使得傅里叶变换产生N/2个不同的值。因此,特征向量大小被限制为N/2,如下所定义:

(9)

1.2.5 Gabor特征

在图像处理中,Gabor函数是一个用于边缘提取的线性滤波器[14]。Gabor滤波器的频率和方向表达同人类视觉系统类似。Gabor特征被广泛应用于通过将图像与滤波核函数进行卷积来识别纹理特征[15]。一个二维Gabor滤波器是一个由正弦平面波调制的高斯核函数。二维Gabor滤波器由下式给出:

(10)

其中,σ为高斯包络的标准偏差;θ为Gabor函数并行条纹的方向(0-360度);λ为波长;γ为空间纵横比;φ为相位偏移;w为滤波窗口的大小。

该滤波器沿着θ的方向执行低通滤波,并执行与其θ正交的带通滤波。因此,通过选择上述参数,可以增强图像的视觉属性,例如空间频率和方向。

一个特征矢量的构造如下:首先对仅包含手型的图像应用Gabor滤波器,然后将得到的图像重新缩放到8×8,并且特征向量由相应的64个整数组成。得到的64个整数是Gabor滤波器的特征向量。

2 多目标优化算法

2.1 多目标优化

当一个最优决策是两个或多个相互冲突的目标之间权衡时,就会出现多目标问题。特征选择本质上是一个多目标问题,任何给定的解决方案都可以根据所选择的特征的复杂性和准确性进行相应的评估。其最终的目标是最小化特征向量的复杂性,并最大化特征向量的准确性[16]。在特征选择的问题上提出了一种解决方案,如果符合以下标准,则称解决方案A支配解决方案B。

·A特征向量的复杂性比B低,或者A特征向量的准确性比B高。

·B特征向量的复杂性和准确性都比A差。

如图3所示,考虑三种不同的解决方案:S1、S2和S3。假设对所有目标而言,任意两个解S1和S2,S1均优于S2,则称S1支配S2,若S1的解没有被其他所支配,则把S1称为非支配解(不受支配解),也称Pareto解。这些非支配解的集合即所谓的Pareto front。所有坐落在Pareto front中的解皆不受Pareto front之外的解(以及Pareto front曲线以内的其他解)所支配,因此这些非支配解较其他解而言拥有最少的目标冲突,可为决策者提供一个较佳的选择空间。在这种情况下,多目标优化设计用于搜索一组最接近Pareto front的解决方案。

图3 多目标特征选择问题

2.2 优化算法

多目标进化算法NSGA-II(非归类排序遗传算法)是Deb等[17]提出的,近年来广泛用于各种多目标优化问题。文中将这一方法应用于静态手势识别。基于NSGA-II的多目标优化算法(算法1)的主要步骤如下:

Step1:从获取的手语数据集中提取特征,并随机将数据集划分为训练集和测试集;

Step2:初始化大小为N的遗传群体P0,t=0且当t小于最大迭代次数时,通过交叉和变异从Pt获得大小为N的种群Qt;通过合并Pt和Qt产生组合种群Rt=Pt∪Qt;

Step3:Rt中的每个染色体生成编码输入MLP;使用交叉验证评估训练集;

Step4:对Rt进行非支配排序,并通过拥挤和精英保留策略选出N个个体,组成新一代种群Pt+1;

Step5:评估Pt在测试子集上的最终Pareto front;返回Pareto front的解,以及训练和测试分类的准确性。

算法NSGA-II通过应用遗传算子交叉和变异获得新的种群Qt。对于种群Pt的每个染色体,以概率pc进行均匀交叉。在均匀交叉中,每个新染色体都是来自Pt的两个随机选择的染色体(父代)的组合。如果不应用此运算符,则将染色体从Pt复制到Qt,然后以每个比特的概率pM应用位翻转突变。

为了避免优化过程中的偏差,将特征数据库分为训练集(80%)和测试集(20%),如算法1所述。在优化循环的过程中,每个染色体代表一种可能的解决方案。通过训练集上的5倍交叉验证来评估此解决方案的准确性。其中,交叉验证是在优化算法的内部循环中执行的,以评估单个染色体的性能。在优化循环之后,最终的Pareto front在测试子集上进行测试。这被称为特征选择的方法,Kohavi等[18]对此进行了更加详细的讨论。

在NSGA-II中,每个特征的表示与其他二进制特征选择中使用的相同,其中1个特征以二进制字符串编码,“1”表示选择了特征,否则为“0”。

初始化二元染色体最常见的方法是基本上为每一位掷出一枚硬币。在特征选择的情况下,每个位代表一个特定的特征,因此通过翻转一枚硬币,每个特征被选择的可能性为50%。这种初始化技术对创建平均具有一半可用特征的染色体群体的结果不太理想。换句话说,像“000010000”这样具有很少特征的序列或者具有大多数可用特征(如“111101111”)的序列将不会出现在初始群体中,从而限制了算法的搜索能力。为了创建一个关于所选特征数量均匀分布的总体,执行统一的初始化,二元色体群的统一随机初始化(算法2)主要步骤如下:

Step1:设n是染色体中的比特数,m是每个染色体的最小特征数;

Step2:初始化,将每一个染色体Ci初始化为n位,每一位为“0”的二进制字符串(创建了没有选定特征的干净染色体);

Step3:r=max(m,i),用1到n之间的随机数字创建一个列表r;

Step4:对每一个列表中的每个数字,将Ci的相应位设置为“1”(结果只使用r个特征);

Step5:结束。

图4给出了两种初始化方法的比较,其中左图为每个位翻转硬币初始化的200个染色体的群体的特征数的频率计数,右图为算法2中使用的统一初始化的频率计数。每种初始化方法应用于200个染色体的群体,编码169个特征。

图4 两种初始化方法的比较

3 静态手语分类

采用可配置的三层感知器网络对有限元特征矢量进行分类。图5所示为1个输入、隐含层和n个输出的神经网络。该网络有两个参数,可针对特定问题进行优化:

一组开关,将特征矢量fk与输入层ik连接起来。开关的排列定义了输入层中活动神经元的数量,即实际用于训练和分类的特征组合。

隐藏层中的神经元数量(n),该参数用于配置网络内的连接数量。

图5 具有可变输入和隐藏层大小的MLP

由于每个输出神经元对应于一个类,输出层的大小取决于类(m)的个数。对网络的下列参数进行了调整:

最大迭代次数:设置为300,范围介于100~400。

允许误差:设置为10-5,范围介于10-6~10-4。

梯度正常步长:设置为0.002,范围介于0.001~0.1。

反向传播动量值:设置为0.01,范围介于0.05~0.1。

为了评估上述特征向量的辨别能力,将在实验中采用MLP分类器测试每个特征向量以及不同特征向量的组合。对于每一组实验考虑具有50,100,200,300,400和500个神经元的隐藏层进行测试。通过分析实验结果验证该方法的有效性。并统计不同描述符的分类精度和CPU所花费的时间。实验设计有几种策略涉及多目标特征选择和结果呈现。为了确保识别系统的准确性,最终的识别结果在多次实验中取平均值。所采集手语数据集中的80%为样本数据集,20%为测试数据集。

4 结束语

提出了一种基于深度信息的静态手势识别的方法。提出一种优化方案通用评估数据库中几种特征提取方法对手势的识别率和CPU时间的手势识别算法,其中包含了手势大小、光照和旋转变化等因素的影响。从识别精度和速度两方面,综合比较了如Hu矩、Zernike矩、伪Zernike矩、傅里叶描述符和Gabor特征等几种常见的图像特征描述符。手势识别采用多层感知器,具有结构灵活、识别速度快的特点。为了提高识别精度和减少计算量,特征向量和神经网络均通过基于NSGA-II的多目标进化算法进行调整。在对手语识别的进一步探究中,对提出方法的有效性进行了验证。基于深度图像的方法也更容易推广应用到其他计算机视觉技术领域,具有一定的通用性。

猜你喜欢

特征选择特征向量手势
克罗内克积的特征向量
高中数学特征值和特征向量解题策略
挑战!神秘手势
三个高阶微分方程的解法研究
胜利的手势
基于智能优化算法选择特征的网络入侵检测
故障诊断中的数据建模与特征选择
reliefF算法在数据发布隐私保护中的应用研究
一种多特征融合的中文微博评价对象提取方法
认手势说数字