基于边缘检测与最小二乘支持向量机的人脸图像识别
2010-03-24宋召青李志成
宋召青,郑 苏,李志成
(海军航空工程学院 a.控制工程系;b.研究生管理大队,山东 烟台 264001)
0 引言
人脸识别[1](Face Recognition)是指基于已知的人脸样本库,利用图像处理和模式识别技术从静态或动态场景中,识别或验证一个或多个人脸。随着高性能计算机的发展,人脸模式识别方法有了较大的突破,目前已提出了多种机器全自动识别系统。一个典型的人脸识别系统主要由人脸图像输入、人脸图像预处理、人脸图像特征提取、人脸图像特征匹配这4个部分组成。
图像边缘是人脸图像的基本特征之一,它是图像局部特征不连续(或突变)的结果,例如灰度的突变或者纹理的突变等。边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重要基础。图像边缘包含丰富的图像分类信息,它不仅在分析人脸图像时大幅度减少了要处理的信息量,而且还保护了人脸的边界结构。
边缘检测是所有基于边界的图像分割方法的第一步[2],它是利用在图像特性上的差异来实现的,这种差异包括灰度、颜色或者纹理[3]。两个具有不同灰度值的相邻区域之间总存在灰度边缘。灰度边缘是灰度值不连续的结果,这种不连续常可利用求一阶和二阶导数来检测。
在人脸识别方法中,比较经典的是Turk 与Penland 提出的特征脸法[4]和Belhumeur 等提出的Fisher 脸法[5]。支持向量机(SVM)是在统计学习理论基础上发展起来的机器学习方法,它基于结构风险最小化原则,是一种泛化能力很强的分类器,在许多应用中的表现优于传统学习机器,因而被引入到人脸识别领域中来。1997年,Osuna 等提出了基于支持向量机(SVM)的人脸识别[6],在人脸的识别过程中取得了较好的效果。学者对基于支持向量机的人脸识别展开了广泛和深入的研究,涌现出许多有效的改进算法。有基于遗传算法和支持向量机的自动人脸识别[7]、基于核主元分析和支持向量机的人脸识别[8-9]、基于非线性特征提取和SVM的人脸识别[10]等。
本文研究人脸图像的边缘检测方法以及基于最小二乘支持向量机的图像分类识别。首先,对人脸图像进行边缘检测预处理;然后,提取图像的不变矩特征;最后,采用最小二乘支持向量机的分类算法对图像进行分类识别。
1 人脸识别系统
人脸识别通常包括两个部分:人脸的检测定位和人脸特征识别。一个自动人脸识别系统首先要通过人脸检测子系统检测出图像中人脸的位置,提取出人脸,然后再通过识别子系统对检测出的人脸进行识别。人脸识别系统识别人脸的流程如图1所示。
图1 人脸识别系统流程图
2 正交梯度算子
梯度对应一阶导数,梯度算子是一阶导数算子。常用的基于一阶导数的边缘检测算子[11]有Roberts算子、Prewitt算子、Sobel算子等。算子运算时采取类似卷积的方式,将模板在图像上移动并在每个位置计算对应中心像素的梯度值,对一幅灰度图求梯度所得的结果是一幅梯度图。
2.1 Robert算子
Robert算子是一种利用局部差分算子寻找边缘的算子,两个卷积核分别为:
以1为范数计算梯度:
Robert算子检测边缘如图2所示:
图2 Robert算子边缘检测
2.2 Prewitt算子
Prewitt算子的两个卷积核分别为:
以∞为范数计算梯度:
Prewitt算子检测边缘如图3所示:
图3 Prewitt算子边缘检测
2.3 Sobel算子
Sobel算子是边缘检测器中最常用的算子之一,Sobel算子检测边缘如图4所示:
两个卷积核分别为:
与Prewitt算子一样,以∞为范数计算梯度。
图4 Sobel算子边缘检测
3 二阶导数算子
常用的二阶导数的边缘检测算子[2]有拉普拉斯算子、坎尼算子、高斯—拉普拉斯算子等。用二阶导数算子检测阶梯状边缘需将算子与图像卷积并确定过零点。
3.1 拉普拉斯算子
拉普拉斯算子是一种常用的二阶导数算子。一阶导数的局部最大值对应着二阶导数的零交点,拉普拉斯算子就是通过去除一阶导数中的非局部最大值,也就是通过寻找图像梯度的二阶导数的零交叉点,就能检测出更精确的边缘。它是一种不依赖于边缘方向的二阶微分算子,是标量而不是矢量,而且具有旋转不变即各向同性的性质。对一个连续函数 f (x,y),它在位置(x,y)的拉普拉斯值定义为:
表示为卷积模板:
拉普拉斯算子很少用于检测边缘,而主要用于已知边缘后确定该像素在图像的暗区或明区一边。
3.2 坎尼算子
Canny算子[12]方法的实质是用一个准高斯函数作平滑运算,然后以带方向的一阶微分算子定位导数最大值,它可用高斯函数的梯度来近似,以此来寻找图像梯度的局部极大值。
Canny算子的算法步骤:
1)用高斯滤波器平滑图像;
2)计算滤波后图像梯度的幅值和方向;
3)对梯度幅值应用非极大值抑制,其过程为找出图像梯度中的局部极大值点,把其他非局部极大值点置零以得到细化的边缘;
4)用双阈值算法检测和连接边缘,使用两个阈值 T1和 T2(T1> T2)。T1用来找到每条线段,认为所有灰度大于 T1的像素都肯定是边缘像素;T2用来在这些线段的两个方向上延伸寻找边缘的断裂处并连接这些边缘,即对于灰度大于 T2的像素,看它们是否与大于 T1的像素结合在一起(邻接),如果相邻则也认为是边缘像素。这个方法可减弱噪声对最终边缘图像的影响。
尽管坎尼算子计算边缘幅度的一阶导数,但它本质上是一种基于二阶导数的算子。
3.3 高斯—拉普拉斯算子
先用高斯函数对图像进行滤波,再对滤波后的图像进行拉普拉斯运算,算得的值等于0的点是边界点。Gauss-Laplacian算子检测边缘如图5所示:
图5 Gauss-Laplacian算子边缘检测
图6给出了几种一阶和二阶导数算子的边缘检测效果,由结果可以看出,后3种算子检测出的边缘更加明显,灵敏度更高。Prewitt算子与Sobel算子的检测结果比较接近,Gauss-Laplacian算子检测出的边缘更加细化,其中白色代表真正的边缘。
图6 几种一阶和二阶导数算子的对比
4 不变矩特征提取
特征提取是生物特征识别的一个关键问题,由于在实际问题中常常不容易找到那些最重要的特征,或者受条件限制不能对它们进行测量,这就使特征选择和提取的任务复杂化而成为构造模式识别系统最困难的任务之一。所谓特征提取在广义上就是指一种变换,原始特征的数量可能很大,或者说样本是处于一个高维空间中,通过这种变换的方法可以用低维空间向量来表示样本。
不变矩[13]就是一种通过提取具有平移、旋转和比例不变性的图像特征,从而进行识别的方法。Hu提出了矩不变量的概念,其中阶数小于3的7个不变矩成为以后应用的基础。
对于二维连续图像,令 f (x,y)为图像函数,则其(p + q)阶矩为:
mpq不具有平移不变性,(p + q)阶中心矩为:
对于离散数字图像,用求和代替积分,mpq和µpq变为:
中心矩仅仅具有平移不变性。为得到具有伸缩不变性的矩,定义归一化中心矩为:
由归一化的二阶和三阶中心矩得到以下7个对平移、旋转和尺度变换不变的矩:
以上7个不变矩不仅对连续函数图像发生平移、旋转和放大缩小时都是不变的,而且对离散的图像也具有良好的保守性。本文通过提取图像的7个不变矩,得到人脸图像的特征向量。
5 最小二乘支持向量机
最小二乘支持向量机(Least Square Support Vector Machine,LS-SVM)本质上是一种SVM 变形算法,它创造性地把标准SVM的线性不等式约束转化成了等式约束,从而使得SVM的训练等价于一组线性方程组的求解[14]。类似于传统SVM,LS-SVM 通过构造最优分类超平面实现分类。
给定一个训练样本集
xi是第i个输入样本,yi是第i个样本的类标,构造最优分类超平面为:
式中:ai∈ R,K (xi,x)为核函数;sgn为符号函数。
LS-SVM 在优化目标中选取误差iξ的平方项作为允许错分的松弛变量,并把标准SVM的不等式约束转化成了一组等式约束,相当于求解下面的最小值问题:
6 实验
人脸图像预处理及特征提取的过程包括:
1)图像尺寸归一化为92×112 像素大小,以减少图像矩阵的维数,简化计算。
2)图像滤波增强。在此分别采用邻域平均、高斯平滑和中值滤波,并对最后识别结果做出比较。
3)人脸边缘检测。提取图像主要的分类信息,在分析图像时大幅度减少了要处理的信息量,而且保护了目标的边界结构。
预处理阶段分别采用Robert算子、Prewitt算子、Sobel算子和Gauss-Laplacian算子对人脸图像进行边缘检测。
4)图像二值化[15]。将具有多个灰度级的多值图像转换成灰度值仅为0、1的二值图像,突出了图像特征,便于进行特征提取。
5)特征提取。提取Hu 矩的7个不变量,组成图像的7 维特征向量,不变矩具有平移、旋转和比例不变性,提取不变矩特征,减少了计算量。
人脸识别实验中采用自建的组合人脸库,20个人,每人4 张,共80 张图片,含有背景和轻微的表情变化。每人取2 张共40 张图片作为实验的训练集,取另外2 张共40 张图片作为实验的测试集。识别阶段用LS-SVM 训练人脸样本,采用一对多算法,核函数采用径向基核函数:参数设置为实现了人脸图像的分类。
结果如表1所示,并把采用不同算子的边缘检测的实验结果作比较。可见,采用Sobel算子和Gauss-Laplacian算子检测边缘,最终的人脸识别率较高,识别效果较好。
表1 不同边缘检测算子下的识别率
7 结束语
本文采用图像边缘检测与支持向量机方法,研究了人脸的图像识别,建立了一个完整的人脸识别系统,分为预处理、特征提取、分类识别3个主要阶段,对经过预处理的人脸图像,提取7个不变矩的图像特征,通过实验实现了人脸识别。
从实验结果看,图像预处理方法对识别效果的影响较大。采用不同的边缘检测方法,图像的分割效果不尽相同,并直接体现在最终的识别率上。采用基于一阶导数的Sobel算子和基于二阶导数的Gauss-Laplacian算子检测人脸边缘,效果较好,识别率也较高。
应当看到,人脸识别需要充分考虑到几何归一化、噪声源、背景饰物的变化以及提取特征的通用性,人工的干预和先验知识在所难免,如何提高人脸识别系统的智能化水平,应当作为今后继续研究的重点。
[1]周德龙.人脸识别技术研究[D].西安:西北工业大学,2001:5-8.
[2]章毓晋.图像工程:图像处理[M].2 版.北京:清华大学出版社,2006:81-85.
[3]卢春雨,张长水,闻芳,等.基于区域特征的快速人脸检测法[J].清华大学学报:自然科学版,1999,39(1):101-105.
[4]TURK M,PENLAND A.Face recognition using eigenfaces[C]//IEEE Compute.Soc.Conf.On CVPR.1991:586-591.
[5]BELHUMEUR V,HESPANHA J,KRIEGMAN D.Eigenfaces VS fisherfaces:recognition using class specific linear projection[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1997,19(7):711-720.
[6]OSUNA E,FREUND R,GIROSI F.Training support vector machines:an application to face detection[C]//Proceedings of Computer Vision and Pattern Recognition.1997:130-136.
[7]田雪,纪玉波,杨旭.基于支持向量机的自动人脸识别[J].计算机工程,2005,31(5):191-193.
[8]何国辉,甘俊英.基于核主元分析和支持向量机的人脸识别[J].计算机工程与设计,2005,26(5):1190-1193.
[9]王辉.基于核主成分分析特征提取及支持向量机的人脸识别应用研究[D].合肥:合肥工业大学,2006:3-15.
[10]孙大瑞,吴乐南.基于非线性特征提取和SVM的人脸识别算法[J].电子与信息学报,2004,26(2):307-311.
[11]KENNETH R CASTLEMAN.数字图像处理[M].朱志刚,石定机,译.北京:电子工业出版社,2003:389-390.
[12]连静,王珂.图像边缘特征提取算法研究及应用[D].长春:吉林大学,2008:24-27.
[13]RAFAEL C GONZALEZ.数字图像处理:MATLAB版[M].阮秋琦,译.北京:电子工业出版社,2005:353-356.
[14]SUYKENS J A K,VANDEWALLE J.Least squares support vector machine classifiers[J].Neural Processing Letters,1999,9:293-300.
[15]赵全友,潘保昌,郑胜林,等.基于LoG算子的边缘零交叉二值化方法[J].微型机与应用,2005(8):46-49.