摘 要:本文基于对数字图像处理问题的研究,建立了图像预处理模型与图像相似度计算模型,同时从轮廓检测与提取和特征识别方面对模型进行了修正。第一,在图像预处理模型中,本文采用Niblack二值化算法对人脸斑点、肤色和皱纹等一些皮肤细节部分进行滤波处理,通过设置阈值来除去皮肤细节等问题,实现对图像特征区域的粗略提取。第二,在边缘检测模型中,本文采用的是高斯滤波和拉普拉斯边缘检测算法相结合的方法,使用高斯—拉普拉斯算子对图像实行边缘检测,通过检测得到进而获取人脸的轮廓。第三,在图像相似度计算中,本文建立了基于SVD奇异矩阵分解的PCA主成分分析模型,实现对图像特征向量的提取,然后采用巴氏距离算法计算人脸轮廓图像相似度。
关键词:Niblack二值化算法;边缘检测;主成分分析;巴氏距离算法
在计算机和多媒体技术高速发展的当今世界,关于人脸识别的问题从来都是很具有研究性的课题。对于一个人从小到大的过程, 如果没有整容的经历, 那么这个人年轻时和年长时的面部总会保留很大的相似性,本文据此特点进行研究分析。
1 图像预处理
Niblack二值化算法可以去除图像中的人脸斑点和皱纹等的干扰,从而能够比较粗略地提取出人脸的特征区域。
该算法的基本原理就是:对于图像中每一个像素点,在它的邻域内,计算出相应的阈值,然后二值化处理。将中心点以及其领域r×r范围内二值化后的结果为b(x,y),g(x,y)为中心点的灰度值,算法过程如下:
(1)首先计算中心坐标r×r范围内均值灰度m(x,y)与标准方差s(x,y),然后根据方差和均值灰度计算出中心点的阈值,如下式
T(x,y)=m(x,y)+k·s(x,y)
(1)
(2)根据均值灰度、标准方差和上式计算的阈值,将中心点二值化可得:
(2)
接下来把下一个点作为中心点,重复上述步骤,并绘出灰点直方图。幼年期和青年期人脸图像原始灰度图、灰点直方图、Niblack二值化和二值化对比如图1、图2。
图1
图2
2 边缘检测与轮廓提取
本文采用将高斯滤波和拉普拉斯边缘检测算法相结合的方法,用高斯—拉普拉斯算子对图像实行边缘检测,实现人脸的轮廓的获取,具体过程如下。
图像的边缘处灰度值函数的拉普拉斯计算为:
▽2f=div(▽
(注:div为散度)
(3)
在图像边缘处,如果f(x,y)的拉普拉斯运算产生零点,即可判断为图像的边缘。在经过边缘检测之后,将提取的轮廓用于下一步相似度求解。
3 相似度求解
在统计中,巴氏距离算法不仅可以测量相似度,还与衡量两个物品之间的重叠量的巴氏系数息息相关。
巴氏距离的定义如下:
DB(p,q)=-ln(BC(p,q)
(4)
其中,BC是巴氏系数,通过巴氏系数可反映出p和q间的巴氏距离,巴氏距离越接近于1,两幅图像的相似度越高。
通过MATLAB得出灰度直方图对比结果如图3所示,可以发现两张图片的灰度直方图分布基本一致。
图3 幼年期与青年期灰度直方图和相似度计算
据此,进一步对两张轮廓照片进行量化,并进行定量求解相似度,重新使用MATLAB求解得结果:HistDist=0.9519。
4 结语
人脸通常是一张图像的重要信息,对于一个人从小到大的过程,如果没有整容的经历,那么这个人年轻时和年长时的面部总会保留很大的相似性,本文所述方法正是利用这一特点实现了基于年龄变化的人脸识别。