基于Matlab的人脸识别课程设计

摘要

人脸识别因其在安全验证系统、信用卡验证、医学、档案管理、视频会议、人机交互、系统公安(罪犯识别等) 等方面的巨大应用前景而越来越成为当前模式识别和人工智能领域的一个研究热点。

本文提出了基于24位彩色图像对人脸进行识别的方法,介绍的主要内容是图像处理,它在整个软件中占有极其重要的地位,图像处理的好坏直接影响着定位和识别的准确率。本软件主要用到的图像处理技术是:光线补偿、高斯平滑和二值化。在识别前,先对图像进行补光处理,再通过肤色获得可能的脸部区域,最后根据人脸固有眼睛的对称性来确定是否就是人脸,同时采用高斯平滑来消除图像的噪声,再进行二值化,二值化主要采用局域取阈值方法,接下来就进行定位、提取特征值和识别等操作。经过测试,图像预处理模块对图像的处理达到了较好的效果,提高了定位和识别的正确率。

【关键字】:人脸识别;光线补偿;高斯平滑;对比度增强

Abstract

Face recognition is a complex and difficult problem that is important for

surveillance and security, telecommunications, digital libraries , video meeting, and human-computer intelligent interactions.

The paper introduced the method of face recognition that based on the 24 bit multicolor image, Main content that the paper introduced is the picture treatment, It occupies the extremely important position in the whole software, the quality of picture process directly influenced the accuracy rate of localization and discerning. The picture process technology that the software mainly used included : light compensating 、gauss smooth and twain value method. before discerning, we compensated the light for image, then we could obtain the possible face area through the complexion, finally, the system could depend on the symmetry of eyes to make sure whether it is the face of people, at the same time, the system could eliminate noises through the method that named gauss smoothness, then we used twain value method to deal with picture,the method got the threshold value in face area . After dealing with picture , the following operations are localization 、draw characteristic value 、discerning and so on . After testing, we made true that the picture pretreatment modal has get the better effect in the process of dealing with picture, and improve the exactness rate of localization and discerning.

【key word】: Face recognition; light compensating; gauss smooth;contrast enhancing

目录

一、

1.

2.

3. 绪论 . ................................................................................................................................. 1 背景 . ................................................................................................................................. 1 人脸识别技术研究的意义 . ............................................................................................. 1 发展史 . ............................................................................................................................. 2

1) 国外的发展 . ............................................................................................................. 2

2) 国内的发展 . ............................................................................................................. 2

二、 系统的需求分析和方案选择 . ......................................................................................... 3

1. 可行性分析 . ..................................................................................................................... 3

1) 技术可行性 . ............................................................................................................. 3

2) 操作可行性 . ............................................................................................................. 4

2. 需求分析 . ......................................................................................................................... 4

3. 预处理法案选择 . ............................................................................................................. 5

1) 设计方案的原则选择 . ............................................................................................. 5

2) 图像文件格式选择 . ................................................................................................. 5

3) 开发工具选择 . ......................................................................................................... 5

4) 算法选择分析 . ......................................................................................................... 5

三、 系统概要设计 . ................................................................................................................. 6

四、 系统详细设计 . ................................................................................................................. 9

1. 系统整体设计流程图 . ..................................................................................................... 9

2. 图像处理详细设计 . ......................................................................................................... 9

3. 编程时的问题解决 . ....................................................................................................... 19

五、 测试 . ............................................................................................................................... 20

1. 测试方案的选择原则 . ................................................................................................... 20

2. 测试方案 . ....................................................................................................................... 21

结束语 ............................................................................................................................................. 1

参考文献.......................................................................................................................................... 2

一、 绪论

1. 背景

随着安全入口控制和金融贸易方面应用需要的快速增长,生物统计识别技术得到了新的重视。目前,微电子和视觉系统方面取得的新进展,使该领域中高性能自动识别技术的实现代价降低到了可以接受的程度。而人脸识别是所有的生物识别方法中应用最广泛的技术之一,人脸识别技术是一项近年来兴起的,但不大为人所知的新技术。人们更多的是在电影中看到这种技术的神奇应用:警察将偷拍到的嫌疑犯的脸部照片,输入到电脑中,与警方数据库中的资料进行比对,并找出该嫌犯的详细资料和犯罪记录。这并非虚构的情节。在国外,人脸识别技术早已被大量使用在国家重要部门以及军警等安防部门。在国内,对于人脸识别技术的研究始于上世纪90年代,目前主要应用在公安、金融、网络安全、物业管理以及考勤等领域。

2. 人脸识别技术研究的意义

富有挑战性的课题

面部关键特征定位及人脸2D 形状检测技术

面部感知系统的重要内容

3. 发展史

1) 国外的发展

见诸文献的机器自动人脸识别研究开始于1966年PRI 的Bledsoe 的工作,1990年日本研制的人像识别机,可在1秒钟内中从3500人中识别到你要找的人。1993年,美国国防部高级研究项目署 (Advanced Research Projects Agency)和美国陆军研究实验室(Army Research Laboratory)成立了Feret(Face Recognition Technology) 项目组,建立了feret 人脸数据库,用于评价人脸识别算法的性能。

美国陆军实验室也是利用vc++开发,通过软件实现的,并且FAR 为49%。在美国的进行的公开测试中,FAR ,为53%。美国国防部高级研究项目署,利用半自动和全自动算法。这种算法需要人工或自动指出图像中人的两眼的中心坐标,然后进行识别。在机场开展的测试中,系统发出的错误警报太多,国外的一些高校(卡内基梅隆大学(Carnegie Mellon University )为首,麻省理工大学(Massachusetts Institute of Technology )等,英国的雷丁大学(University of Reading ))和公司(Visionics 公司Facelt 人脸识别系统、Viiage 的FaceFINDER 身份验证系统、Lau Tech 公司Hunter 系统、德国的BioID 系统等)的工程研究工作也主要放在公安、刑事方面,在考试验证系统的实现方面深入研究并不多。

2) 国内的发展

人脸识别系统现在在大多数领域中起到举足轻重的作用,尤其是用在机关单位的安全和考勤、网络安全、银行、海关边检、物业管理、军队安全、智能身份证、智能门禁、司机驾照验证、计算机登录系统。我国在这方面也取得了较好的成就,国家863项目“面像检测与识别核心技术”通过成果鉴定并初步应用,就标志着我国在人脸识别这一当今热点科研领域掌握了一定的核心技术。北京科瑞奇技术开发股份有限公司在2002年开发了一种人脸鉴别系统,对人脸图像进行处理,消除了照相机的影响,再对图像进行特征提取和识别。这对于人脸鉴别特别有价值,因为人脸鉴别通常使用正面照,要鉴别的人脸图像是不同时期拍摄的,使用的照相机不一样。系统可以接受时间间隔较长的照片,并能达到较高的识别率,在计算机中库藏2300人的正面照片,每人一张照片,使用相距1--7年、差别比较大的

照片去查询,首选率可以达到50%,前20张输出照片中包含有与输入照片为同一人的照片的概率可达70% 。 2005年1月18日,由清华大学电子系人脸识别课题组负责人苏光大教授主持承担的国家" 十五" 攻关项目《人脸识别系统》通过了由公安部主持的专家鉴定。鉴定委员会认为,该项技术处于国内领先水平和国际先进水平。

二、 系统的需求分析和方案选择

在开发该人脸识别软件之前,我们查询了前人所写过的诸多论文以及源程序,在开发之时,结合了资料中的算法并揉进了自己的一些思想,使程序可以对人脸图片进行简易识别。

1. 可行性分析

1) 技术可行性

图像的处理方法很多,我们可以根据需要,有选择地使用各种方法。 在确定脸部区域上,通常使用的方法有肤色提取。肤色提取,则对脸部区域的获取则比较准确,成功率达到95%以上,并且速度快,减少很多工作。

图像的亮度变化,由于图像的亮度在不同环境的当中,必然受到不同光线的影响,图像就变得太暗或太亮,我们就要对它的亮度进行调整,主要采取的措施是对图像进行光线补偿。

高斯平滑:在图像的采集过程中, 由于各种因素的影响, 图像中往往会出现一些不规则的随机噪声, 如数据在传输、存储时发生的数据丢失和损坏等, 这些都会影响图像的质量,因此需要将图片进行平滑操作以此来消除噪声。

灰度变换:进行灰度处理,我们要保证图像信息尽可能少的丢失。同样在进行灰度变换前,我们也要对图像的信息进行统计,找出一个比较合理的灰度值,才能进行灰度变换。

灰度均衡:灰度变换后,就要进行灰度均衡,可以根据灰度分布来进行灰度均衡。

对比度增强:将所要处理的区域和周围图像区域进一步拉开他们的对比

度,使它们更加明显,主要通过像素的聚集来实现。

2) 操作可行性

该人脸识别软件需要如下的运行环境:CPU :500M 及以上;内存:64 M及以上。安装有Windows 98、Windows Me、Windows 2000、Windows NT 等操作系统中的其中一种。另还装有摄像头可进行随机拍照和识别。因此,从操作可行性来看,只要系统用户的硬件软件设备满足以上条件,即可用该人脸识别软件进行人脸的识别。

2. 需求分析

✧ 应用程序的功能需求分析

该软件最主要的功能就是要能识别出人脸,首先该系统需要对通过摄像头拍照而获取到的原始的人脸图片进行一系列处理才可进行下一步的工作,该处理过程也称图像预处理。预处理这个模块在整个人脸识别系统的开发过程中占有很重要的地位,只有预处理模块做的好,才可能很好的完成后面的人脸定位和特征提取这两大关键模块。因此本设计中所要完成的主要功能如下所述:

◆ 图像获取功能:该模块主要是从摄像头拍照后进行获取图片,也可以从图片库中获取,获取后的图片可以在软件的界面中显示出来以便进行识别。

◆ 图像预处理功能:该模块主要包括图像光线补偿、图像变成灰色、高斯平滑、均衡直方图、实现图像对比度增强、二值化变换等。

◆ 人脸定位功能:该模块主要是将处理后的人脸图片进行定位,将眼睛、鼻子、嘴巴标记出来,以便进行特征提取。

◆ 特征提取功能:该模块是在定位后的人脸图片中将眼睛、鼻子、嘴巴的特征值提取出来。

◆ 识别功能:该模块是将从图片中提取的特征值和后台数据库中的值进行比较来完成识别功能。

3. 预处理法案选择

1) 设计方案的原则选择

本应用程序的设计方案原则如下:

采用较为先进的技术力量,保证应用程序在技术上具备一定的优势。

采用成熟的技术,保证应用程序的安全性和可靠性。

应用程序便于扩展和维护,易于技术的更新。

应用程序充分利用现有的资源,尽量减少不必要的再投资。

编写的代码必须严谨易读,代码的解释必须清楚明白,为应用程序的再开发

提供应尽的责任。

2) 图像文件格式选择

在设计的过程中,为了定位和特征提取的方便,我们采用的是24位位图。

3) 开发工具选择

Matlab2012b

4) 算法选择分析

本文主要研究的对象是图像预处理模块,该模块分为光线补偿、图像灰度化、高斯平滑、图像对比度增强、均衡直方图,每个小模块的实现都有许多相应的算法。下面将本系统采用的算法进行介绍:

·光线补偿 :由于光线原因,所照的图像可能会存在光线不平衡的情况而造成色彩偏差,为了抵消这种整个图像中存在的色彩偏差,本系统采用的解决方法是:将整个图像中的所有像素的亮度从高到低进行排列,取前5%的像素,然后线性放大,使这些像素的平均亮度达到255。实际上就是调整图片像素的RGB 值。

·图像灰度化:图像灰度化是将图像变成灰色,本系统中采用以下步骤来实现图像的灰度化:彩色转换成灰度、灰度比例变换、灰度线性变换、灰

度线性截断、灰度取反。

·高斯平滑:在图像的采集过程中, 由于各种因素的影响, 图像中往往会出现一些不规则的随机噪声, 如数据在传输、存储时发生的数据丢失和损坏等, 这些都会影响图像的质量,因此需要将图片进行平滑操作以此来消除噪声。但是如果平滑不当,就会使图像本身的细节如边界轮廓、线条等变的模糊不清,为了既平滑掉噪声有尽量保持图像细节,本系统采用高斯平滑。 ·均衡直方图:使用该模块的目的是通过点运算使输入转换为在每一灰度级上都有相同的像素点数的输出图像。它的实现主要是利用灰度均衡的转换式

D B = f (D A )= H (u )du 。(式1)

·图像对比度增强:为了将图像的特征一步一步显现出来,需要进行图像的对比度增强,它主要通过对图像的灰度值进行统计,对于小于Low 则认为是有关的信息,则将它作为黑色处理,对于处于High 以上的则认为是一些无关的信息,将它们去掉,而处于两者之间的,则进行对比度增强,将他们在总的灰度值里面的比例作为新的像素信息保存起来。

三、 系统概要设计

❆ 各模块功能概述

以上是该系统的总体结构设计图以及图像预处理模块的层次图。下面介绍系统中的各模块的功能及算法:

图像获取模块

该模块主要是从摄像头拍照后进行获取图片,也可以从图片库中获取,获取后的图片可以在软件的界面中显示出来以便进行识别。

该系统中图像里人脸区域的获取,主要是根据肤色来进行获取,通过肤色非线形分段色彩变换来实现。这一非线性分段色彩变换得到的肤色模型属于色彩空间中的聚类模型,这一类肤色模型的建立首先要选取一种合适的色彩空间。

人脸区域获取

图像预处理就是对获取得来的图像进行适当的处理,使它具有的特征能够在图像中明显的表现出来。该模块中的子模块有如下5个,下面对它们进行概述: 图像预处理模块

·光线补偿[3]

因为系统得到的图片可能会存在光线不平衡的情况,这会影响我们对特征的提取,同时系统中要用到YcrCB 色彩空间,所以有必要对图像进行光线补偿。尽可能将它的特征在图像中表现出来。YcrCB 是一种色彩空间,它用于视频系统中,在该色彩空间中,Y 分量表示像素的亮度,Cr 表示红色分量,Cb 表示蓝色分量,通常把Cr 和Cb 称为色度。YcrCB 色彩空间是以演播室质量标准为目标的CC601编码方案中采用的彩色表示模型。

·灰度变化[4]

图像灰度化的过程就是把彩色图像转换为黑白色图像的过程,它也是为了将图像的信息更加具体、简单的表现出来,但是,这样做也将会丢失图像信息。因此,尽可能在转化的过程中用简单的方式表现图像复杂的信息。

·高斯平滑处理[5]

高斯平滑将对图像进行平滑处理,在图像采集过程中,由于各种因素的影响,图像往往会出现一些不规则的噪声,入图像在传输、存储等都有可能产生数据的丢失。从而影响图像的质量。处理噪声的过程称为平滑。平滑可以降低图像的视觉噪声,同时出去图像中的高频部分后,那些本来不明显的低频成分更容易识别。平滑可以通过卷积来实现。经过卷积平滑后的水平投影后,二值化提供了较好的图像效果。

·对比度增强[6]

对比度增强,就是对图像的进一步处理,将对比度再一次拉开。它针对原始图像的每一个像素直接对其灰度进行处理的,其处理过程主要是通过增强函数对像素的灰度级进行运算并将运算结果作为该像素的新灰度值来实现的。通过改变选用的增强函数的解析表达式就可以得到不同的处理效果。

·二值化[7]

二值化的目的是将采集获得的多层次灰度图像处理成二值图像,以便于分析理解和识别并减少计算量。二值化就是通过一些算法,通过一个阈值改变图像中的像素颜色,令整幅图像画面内仅有黑白二值,该图像一般由黑色区域和白色区域组成,可以用一个比特表示一个像素,“1”表示黑色,“0”表示白色,当然也可以倒过来表示,这种图像称之为二值图像。这便有利于我们对特征的提取。该设计中采用组内方差和组外方差来实现二值化。

·直方图均衡[8]

直方图均衡化的目的是使一输入图像转换为在每一灰度级上都有相同的象素点数,它的处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,它的研究思路是:通过直

-1⎡H f (D )⎤A ⎦方图变换式来进行直方图的均衡处理,直方图变换式是 H B (D )=' ⎣-1f ⎡⎣f (D )⎤⎦

✧ 但是直方图均衡化存在着两个缺点:

变换后图像的灰度级减少,某些细节消失;

某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。

人脸定位是将典型的脸部特征(如眼睛,鼻尖,嘴唇等等)标记出来,在本系统中,定位的特征是眼睛,鼻尖和嘴巴三个。由于眼睛具有对称性,因此可以很快就能标记出来,而鼻子是在眼睛下面,且嘴巴在鼻子下面,所以只要眼睛标记好,鼻子和嘴巴也能相应的标记出来。

特征提取按以下4个步骤进行:

✧ 提取两只眼睛的距离

✧ 眼睛的倾角度

✧ 眼睛、嘴巴的重心

✧ 用一个矩形标出每一个特征

在特征提取完之后将会得到相应的特征值以便存入后台数据库。

人脸定位模块 特征提取模块

该模块通过与库存中的特征向量进行比较,找出与特征最相近的参数,再对该参数进一步分析。如果分析在我们所确认的范围内,我们就认为该人就是我们所要找的。然后从库存中提取出该人相关的信息,并显示出来。如果库存中没有,则给出提示是否对存库作为样本。 识别模块

四、 系统详细设计

1. 系统整体设计流程图

2. 图像处理详细设计

图像点运算是一种既简单又重要的技术,它能让用户改变图像数据占据的灰度范围,一幅输入图像经过点运算后将产生一幅新的输出图像,由输入像素点的灰度值决定相应的输出像素点的灰度值,点运算与局部运算的差别在于:后者每个输出像素的灰度值由对应输入像素的一个领域内几个像素的灰度值决定。所以,点运算不可以改变图像内的空间关系。

点运算可以按照预定的方式改变一幅图的灰度直方图。除了灰度级的改变是根据某种特定的灰度变换函数进行之外,点运算可以看作是“从像素到像素”的

复制操作。如果输入图像为A (x ,y ),输出图像为B (x ,y ),则点运算可表示为:

B(x ,y ) = f[A(x ,y )] (式2)

其中函数f (D )被称为灰度变换(Gray Scale Transformation ,GST )函数,它描述了输入灰度值和输出灰度值之间的转换关系,一旦灰度变换函数确定,该点运算就完全被确定下来了。

点运算有时又称为对比度增强、对比度拉伸或灰度变换,它是图像数字化软件和图像显示软件的重要组成部分。下面将对本设计解决各图像点处理模块运用进行到的理论和编程实现进行详细讲述。

(1)

(1)算法思想:

光线补偿的想法的提出主要是考虑到肤色等色彩信息经常受到光源颜色、图像采集设备的色彩偏差等因素的影响,而在整体上偏离本质色彩而向某一方向移动,即我们通常所说的色彩偏冷、偏暖、照片偏黄、便蓝等等。这种现象在艺术照片中更为常见。所以Anil K.Jain等提出,为了抵消这种整个图像中存在着的色彩偏差,我们将整个图像中所有像素亮度(是经过了非线形r-校正后的亮度)从高到低进行排列,取前5%的像素,如果这些像素的数目足够多(例如,大于100),我们就将它们的亮度作为“参考白”(Reference White),也即将它们的色彩的R 、G 、B 分量值都调整为255。整幅图像的其他像素点的色彩值也都按这一调整尺度进行交换。

(2) 具体实现光线补偿功能:

明白了光线补偿这功能的算法及思想,就可以编码实现其功能了,实现过程如下:

①、 编辑菜单IDR _MAINFRAM,先在其中添加一菜单项,将其命名为“预处理”,并在其属性栏中将其设为“弹出”菜单,点击预处理该菜单项将会弹出一个新的子菜单,此时把该子菜单命名为“光线补偿”,并把其ID 设为ID_READY_LIGHTINGCONPENSATE,对应文件FaceDetectVie w .Cpp 中的函数ReadyLightingconpensate()

hDIBTemp = gDib.CopyHandle(hDIB);

gDib.LightingCompensate(hDIB);

GlobalUnlock(hDIB);

Invalidate();

光线补偿 实现,并在voidCFaceDetectView::OnReadyLightingconpensate()中添加如下代码:

光线补偿功能实质上是用上段代码中的LightingCompensate ()函数来进行实现。函数LightingCompensate ()是类DIB 的一个成员函数。其核心代码如下所述:

② 光线补偿的效果图如下所示 :

} //红色分量 colorb = *(lpData+lOffset+2); colorb *=co; if(colorb >255) colorb = 255; *(lpData+lOffset+2) = colorb; //绿色分量 colorb = *(lpData+lOffset+1); colorb *=co; if(colorb >255) colorb = 255; *(lpData+lOffset+1) = colorb; //得到蓝色分量 *(lpData+lOffset) = colorb; //下面的循环对图像进行光线补偿 for(i =0;iPixelOffset(i,j,wBytesPerLine);

图 4-1 原图

图4-2 光线补偿效果图

(2) 2、 图像灰度化

(1)算法思想

① 彩色转换成灰度

将彩色图像转化为灰阶图像常采用如下的经验式:

gray =0.39×R +0.50×G +0.11×B (式3)

其中,gray 为灰度值,R 、G 、B 分别为红色、绿色和蓝色分量值。

② 灰度比例变换

灰度比例变换是把原像素的灰度乘以一个缩放因子,并最后截至[0,255]。 ③ 灰度线性变换

当图像由于成像时曝光不足或曝光过度,会产生对比度不足的弊病,从而使图像中的细节分辨不清。将图像灰度进行线性扩展,常能显著地改善图像的外观。灰度线性变换的计算式为:

g = d -c )(f -a ) +c , f ∈[a , b ] b -a

(式4)

f ,其他

式中,f 是原像素的灰度,g 为变换后的灰度。该变换把属于[a,b]的灰度级变换至灰度区间[c,d],而没有在[a,b]区间的原像素灰度将保持不变。这里a ,b ,c ,d ,f ,g 均为[0,255]之间的整数值。可见,a 被映射为c ,b 被映射为d 。 ④ 灰度线性截断

灰度线性截断的思想是:如果原像素的灰度小于a ,则该像素的灰度等于c ;如果原像素的灰度大于b ,则该像素的灰度等于d 。

(2)具体实现灰度化功能

在明白了灰度化的原理之后,就可进行编码来实现该功能。

① 编辑菜单IDR _MAINFRAM,先在其中添加一菜单项,将其命名为”图像灰度化”, 并将其ID 号设为ID_READY_SCALE, 对应文件FaceDetectVie w .Cpp 中的函数ReadyLightingconpensate()实现.

② 现该模块的核心代码如下:

获取蓝色分量

ColorB=*(lpData + lOffset);

获取绿色分量

ColorG=*(lpData + lOffset+1); 获取红色分量 ColorR=*(lpData + lOffset+2); 计算灰度值 gray = (ColorG*50+ColorR*39+ColorB*11)/100; 显示灰度图像 *(lpData + lOffset)=gray ; *(lpData + lOffset+1)=gray ; *(lpData + lOffset+2)=gray ;

其中lpData 是图片数据区,lOffset 是图片像素的偏移,gray 是图像的灰度值

③ 图像灰度化效果图:

图 4-3 图像灰度化效果图

(3) 3、高斯平滑

(1) 算法思想

在介绍高斯平滑前,先介绍模板操作。模板操作是数字图像处理中经常用到的一种运算方法,图像的平滑、锐化以及细化、边缘检测都要用到模板操作

通常的处理是:将中心点周围八个点的像素值乘于各自矩阵相应的系数后相加得到一个值, 然后将这个值乘上中心点的系数, 中心点的像素值赋为得到的最后值。一般来说, 不同的噪声有各自针对性的卷积算法。本文使用的卷积算法是高斯卷积核, 亦即上面卷积核的LP3。高斯卷积是通过采样2维高斯函数得到的。高斯平滑算法的优点是平滑后图像的失真少, 算法更具备通用性, 能去除不同的噪声干扰。需要注意的是:在平滑处理时, 图像边界点无法处理, 因此循环范围应设定在图像边界内。

(2) 具体实现高斯平滑功能

知道高斯平滑原理之后,可进行编码将其实现:

① 编辑菜单IDR _MAINFRAM,在菜单“预处理”中添加一子菜单项,命名为“高斯平滑”并将其ID 设为ID_READY_Template。

② 在类CFaceDetectView 中添加“高斯平滑”菜单项的事件处理程序,其代码如下:

//进行模板操作

Template(tem ,3,3, xishu);

Invalidate(TRUE);

其中t em 是模板参数,xishu 是模板系数;Template ()函数是实现高斯平滑的主要函数,其核心代码是:

for(m=i-((tem_h-1)/2);m

{

for(n=j-((tem_w-1)/2);n

系数进行相乘并线形叠加

} 注: 将以点(i ,j )为中心,与模板大小相同的范围内的象素与模板对用位置的 sum+=Gray[m][n]* tem[(m-i+((tem_h-1)/2))*tem_w+n-j+((tem_w-1)/2)]; 将结果乘上总的模板系数 计算绝对值 sum = fabs(sum); 如果小于0,强制赋值为0 sum=(int)sum*xishu;

if(sum

sum=0;

③ 高斯平滑效果图:见下图 4-4 如果大于255,强制赋值为255 sum=255; if(sum>255) HeightTemplate[i][j] = sum ;

图4-4 高斯平滑效果图

(4) 灰度均衡

(1)算法思想

灰度均衡也称直方图均衡,目的是通过点运算使输入转换为在每一灰度级上都有相同的像素点数的输出图像(即输出的直方图是平的)。这对于在进行图像比较或分割之前将图像转化为一级的格式是十分有效的。

按照图像的概率密度函数(PDF ,归一化带单位面积的直方图)的定义: P (x ) = 0 * H(x )(式5)

其中H (x )为直方图,A0为图像的面积,设转换前图像的概率密度函数为 Pr (r ),转换后图像的概率密度函数为Ps (S ),转换函数为s = f(r ),由概率论知识,我们可以得到:

Ps (S ) = Pr (r )*dr (式6)

这样,如果想使转换后图像的概率密度函数为1(即直方图是平的)则必须满足: Pr (r )=dr (式4-5)

等式两边积分,得:

S = f(r )= ∫r 0P 2(u )du =0∫r 0H (u )du (式7)

该转换式被称为图像的累积分布函数

上面的式是被归一化后推导的对于没有归一化的情况,只要求以最大的灰度值(DMax ,对于灰度图就是255)即可,灰度均衡的转换式为:

D B = f (D A )= H (u )du (式1)

对于离散图像转换式为:

DB = f (DA )= DA Hi ∑i =0 (式8)

式中Hi 为第i 级灰度的像素个数。

(2)编程实现

在灰度均衡操作同样不需要改变DIB 的调色板和文件夹,只要把指向DIB 像素起始位置的指针和DIB 高度、宽度信息传递给子函数就可以完成灰度均衡变换工作,其核心代码如下:

*(lpData + lOffset)=state ; //显示灰度均衡

*(lpData + lOffset+1)=state ;

*(lpData + lOffset+2)=state ;

(3)效果图

图 4-5 灰度均衡效果图

(5) 图像对比度增强

(1) 算法思想:

在对图像均衡直方图处理以后,便可对图像进行对比度增强,进一步拉

基于MATLAB 的人脸识别课程设计

开对比度。它通过对图像的灰度值进行统计,对于比最小设定值小的则认为是有关的信息,则将它作为黑色处理,比最大设定值大的则认为是一些无关的信息,将它们去掉,而处于两者之间的,则进行对比度增强,将他们在总的灰度值里面的比例作为新的像素信息保存起来。

这个工作的主要目的是将图像的特征一步一步显现出来。

(2) 编码实现:

① 编辑菜单IDR _MAINFRAM,在菜单“预处理”中添加一子菜单项,命名

为“实现图像对比度增强”,并将其ID 设为ID_READY_ContrastEnhance。 ② 类CFaceDetectView 中添加“实现图像对比度增强”菜单项的事件处理

程序,其代码如下;

lOffset = gDib.PixelOffset(i, j, gwBytesPerLine);

获取图像灰度增强函数

int state=IncreaseContrast(ZFT[k][k1], 100);

显示灰度增强后的图像

*(lpData + lOffset)=state ;

*(lpData + lOffset+1)=state ;

*(lpData + lOffset+2)=state ;

其中IncreaseContras ()函数是实现图像对比度增强的关键函数,该根据参数n 来调节对比度,n 越大,对比越强烈,其核心是:

如果数据很小,设置为0

if(pByte

③ 效果图 return 0; 获得中间数据,并进行对比增强处理 else if ((Low

18

摘要

人脸识别因其在安全验证系统、信用卡验证、医学、档案管理、视频会议、人机交互、系统公安(罪犯识别等) 等方面的巨大应用前景而越来越成为当前模式识别和人工智能领域的一个研究热点。

本文提出了基于24位彩色图像对人脸进行识别的方法,介绍的主要内容是图像处理,它在整个软件中占有极其重要的地位,图像处理的好坏直接影响着定位和识别的准确率。本软件主要用到的图像处理技术是:光线补偿、高斯平滑和二值化。在识别前,先对图像进行补光处理,再通过肤色获得可能的脸部区域,最后根据人脸固有眼睛的对称性来确定是否就是人脸,同时采用高斯平滑来消除图像的噪声,再进行二值化,二值化主要采用局域取阈值方法,接下来就进行定位、提取特征值和识别等操作。经过测试,图像预处理模块对图像的处理达到了较好的效果,提高了定位和识别的正确率。

【关键字】:人脸识别;光线补偿;高斯平滑;对比度增强

Abstract

Face recognition is a complex and difficult problem that is important for

surveillance and security, telecommunications, digital libraries , video meeting, and human-computer intelligent interactions.

The paper introduced the method of face recognition that based on the 24 bit multicolor image, Main content that the paper introduced is the picture treatment, It occupies the extremely important position in the whole software, the quality of picture process directly influenced the accuracy rate of localization and discerning. The picture process technology that the software mainly used included : light compensating 、gauss smooth and twain value method. before discerning, we compensated the light for image, then we could obtain the possible face area through the complexion, finally, the system could depend on the symmetry of eyes to make sure whether it is the face of people, at the same time, the system could eliminate noises through the method that named gauss smoothness, then we used twain value method to deal with picture,the method got the threshold value in face area . After dealing with picture , the following operations are localization 、draw characteristic value 、discerning and so on . After testing, we made true that the picture pretreatment modal has get the better effect in the process of dealing with picture, and improve the exactness rate of localization and discerning.

【key word】: Face recognition; light compensating; gauss smooth;contrast enhancing

目录

一、

1.

2.

3. 绪论 . ................................................................................................................................. 1 背景 . ................................................................................................................................. 1 人脸识别技术研究的意义 . ............................................................................................. 1 发展史 . ............................................................................................................................. 2

1) 国外的发展 . ............................................................................................................. 2

2) 国内的发展 . ............................................................................................................. 2

二、 系统的需求分析和方案选择 . ......................................................................................... 3

1. 可行性分析 . ..................................................................................................................... 3

1) 技术可行性 . ............................................................................................................. 3

2) 操作可行性 . ............................................................................................................. 4

2. 需求分析 . ......................................................................................................................... 4

3. 预处理法案选择 . ............................................................................................................. 5

1) 设计方案的原则选择 . ............................................................................................. 5

2) 图像文件格式选择 . ................................................................................................. 5

3) 开发工具选择 . ......................................................................................................... 5

4) 算法选择分析 . ......................................................................................................... 5

三、 系统概要设计 . ................................................................................................................. 6

四、 系统详细设计 . ................................................................................................................. 9

1. 系统整体设计流程图 . ..................................................................................................... 9

2. 图像处理详细设计 . ......................................................................................................... 9

3. 编程时的问题解决 . ....................................................................................................... 19

五、 测试 . ............................................................................................................................... 20

1. 测试方案的选择原则 . ................................................................................................... 20

2. 测试方案 . ....................................................................................................................... 21

结束语 ............................................................................................................................................. 1

参考文献.......................................................................................................................................... 2

一、 绪论

1. 背景

随着安全入口控制和金融贸易方面应用需要的快速增长,生物统计识别技术得到了新的重视。目前,微电子和视觉系统方面取得的新进展,使该领域中高性能自动识别技术的实现代价降低到了可以接受的程度。而人脸识别是所有的生物识别方法中应用最广泛的技术之一,人脸识别技术是一项近年来兴起的,但不大为人所知的新技术。人们更多的是在电影中看到这种技术的神奇应用:警察将偷拍到的嫌疑犯的脸部照片,输入到电脑中,与警方数据库中的资料进行比对,并找出该嫌犯的详细资料和犯罪记录。这并非虚构的情节。在国外,人脸识别技术早已被大量使用在国家重要部门以及军警等安防部门。在国内,对于人脸识别技术的研究始于上世纪90年代,目前主要应用在公安、金融、网络安全、物业管理以及考勤等领域。

2. 人脸识别技术研究的意义

富有挑战性的课题

面部关键特征定位及人脸2D 形状检测技术

面部感知系统的重要内容

3. 发展史

1) 国外的发展

见诸文献的机器自动人脸识别研究开始于1966年PRI 的Bledsoe 的工作,1990年日本研制的人像识别机,可在1秒钟内中从3500人中识别到你要找的人。1993年,美国国防部高级研究项目署 (Advanced Research Projects Agency)和美国陆军研究实验室(Army Research Laboratory)成立了Feret(Face Recognition Technology) 项目组,建立了feret 人脸数据库,用于评价人脸识别算法的性能。

美国陆军实验室也是利用vc++开发,通过软件实现的,并且FAR 为49%。在美国的进行的公开测试中,FAR ,为53%。美国国防部高级研究项目署,利用半自动和全自动算法。这种算法需要人工或自动指出图像中人的两眼的中心坐标,然后进行识别。在机场开展的测试中,系统发出的错误警报太多,国外的一些高校(卡内基梅隆大学(Carnegie Mellon University )为首,麻省理工大学(Massachusetts Institute of Technology )等,英国的雷丁大学(University of Reading ))和公司(Visionics 公司Facelt 人脸识别系统、Viiage 的FaceFINDER 身份验证系统、Lau Tech 公司Hunter 系统、德国的BioID 系统等)的工程研究工作也主要放在公安、刑事方面,在考试验证系统的实现方面深入研究并不多。

2) 国内的发展

人脸识别系统现在在大多数领域中起到举足轻重的作用,尤其是用在机关单位的安全和考勤、网络安全、银行、海关边检、物业管理、军队安全、智能身份证、智能门禁、司机驾照验证、计算机登录系统。我国在这方面也取得了较好的成就,国家863项目“面像检测与识别核心技术”通过成果鉴定并初步应用,就标志着我国在人脸识别这一当今热点科研领域掌握了一定的核心技术。北京科瑞奇技术开发股份有限公司在2002年开发了一种人脸鉴别系统,对人脸图像进行处理,消除了照相机的影响,再对图像进行特征提取和识别。这对于人脸鉴别特别有价值,因为人脸鉴别通常使用正面照,要鉴别的人脸图像是不同时期拍摄的,使用的照相机不一样。系统可以接受时间间隔较长的照片,并能达到较高的识别率,在计算机中库藏2300人的正面照片,每人一张照片,使用相距1--7年、差别比较大的

照片去查询,首选率可以达到50%,前20张输出照片中包含有与输入照片为同一人的照片的概率可达70% 。 2005年1月18日,由清华大学电子系人脸识别课题组负责人苏光大教授主持承担的国家" 十五" 攻关项目《人脸识别系统》通过了由公安部主持的专家鉴定。鉴定委员会认为,该项技术处于国内领先水平和国际先进水平。

二、 系统的需求分析和方案选择

在开发该人脸识别软件之前,我们查询了前人所写过的诸多论文以及源程序,在开发之时,结合了资料中的算法并揉进了自己的一些思想,使程序可以对人脸图片进行简易识别。

1. 可行性分析

1) 技术可行性

图像的处理方法很多,我们可以根据需要,有选择地使用各种方法。 在确定脸部区域上,通常使用的方法有肤色提取。肤色提取,则对脸部区域的获取则比较准确,成功率达到95%以上,并且速度快,减少很多工作。

图像的亮度变化,由于图像的亮度在不同环境的当中,必然受到不同光线的影响,图像就变得太暗或太亮,我们就要对它的亮度进行调整,主要采取的措施是对图像进行光线补偿。

高斯平滑:在图像的采集过程中, 由于各种因素的影响, 图像中往往会出现一些不规则的随机噪声, 如数据在传输、存储时发生的数据丢失和损坏等, 这些都会影响图像的质量,因此需要将图片进行平滑操作以此来消除噪声。

灰度变换:进行灰度处理,我们要保证图像信息尽可能少的丢失。同样在进行灰度变换前,我们也要对图像的信息进行统计,找出一个比较合理的灰度值,才能进行灰度变换。

灰度均衡:灰度变换后,就要进行灰度均衡,可以根据灰度分布来进行灰度均衡。

对比度增强:将所要处理的区域和周围图像区域进一步拉开他们的对比

度,使它们更加明显,主要通过像素的聚集来实现。

2) 操作可行性

该人脸识别软件需要如下的运行环境:CPU :500M 及以上;内存:64 M及以上。安装有Windows 98、Windows Me、Windows 2000、Windows NT 等操作系统中的其中一种。另还装有摄像头可进行随机拍照和识别。因此,从操作可行性来看,只要系统用户的硬件软件设备满足以上条件,即可用该人脸识别软件进行人脸的识别。

2. 需求分析

✧ 应用程序的功能需求分析

该软件最主要的功能就是要能识别出人脸,首先该系统需要对通过摄像头拍照而获取到的原始的人脸图片进行一系列处理才可进行下一步的工作,该处理过程也称图像预处理。预处理这个模块在整个人脸识别系统的开发过程中占有很重要的地位,只有预处理模块做的好,才可能很好的完成后面的人脸定位和特征提取这两大关键模块。因此本设计中所要完成的主要功能如下所述:

◆ 图像获取功能:该模块主要是从摄像头拍照后进行获取图片,也可以从图片库中获取,获取后的图片可以在软件的界面中显示出来以便进行识别。

◆ 图像预处理功能:该模块主要包括图像光线补偿、图像变成灰色、高斯平滑、均衡直方图、实现图像对比度增强、二值化变换等。

◆ 人脸定位功能:该模块主要是将处理后的人脸图片进行定位,将眼睛、鼻子、嘴巴标记出来,以便进行特征提取。

◆ 特征提取功能:该模块是在定位后的人脸图片中将眼睛、鼻子、嘴巴的特征值提取出来。

◆ 识别功能:该模块是将从图片中提取的特征值和后台数据库中的值进行比较来完成识别功能。

3. 预处理法案选择

1) 设计方案的原则选择

本应用程序的设计方案原则如下:

采用较为先进的技术力量,保证应用程序在技术上具备一定的优势。

采用成熟的技术,保证应用程序的安全性和可靠性。

应用程序便于扩展和维护,易于技术的更新。

应用程序充分利用现有的资源,尽量减少不必要的再投资。

编写的代码必须严谨易读,代码的解释必须清楚明白,为应用程序的再开发

提供应尽的责任。

2) 图像文件格式选择

在设计的过程中,为了定位和特征提取的方便,我们采用的是24位位图。

3) 开发工具选择

Matlab2012b

4) 算法选择分析

本文主要研究的对象是图像预处理模块,该模块分为光线补偿、图像灰度化、高斯平滑、图像对比度增强、均衡直方图,每个小模块的实现都有许多相应的算法。下面将本系统采用的算法进行介绍:

·光线补偿 :由于光线原因,所照的图像可能会存在光线不平衡的情况而造成色彩偏差,为了抵消这种整个图像中存在的色彩偏差,本系统采用的解决方法是:将整个图像中的所有像素的亮度从高到低进行排列,取前5%的像素,然后线性放大,使这些像素的平均亮度达到255。实际上就是调整图片像素的RGB 值。

·图像灰度化:图像灰度化是将图像变成灰色,本系统中采用以下步骤来实现图像的灰度化:彩色转换成灰度、灰度比例变换、灰度线性变换、灰

度线性截断、灰度取反。

·高斯平滑:在图像的采集过程中, 由于各种因素的影响, 图像中往往会出现一些不规则的随机噪声, 如数据在传输、存储时发生的数据丢失和损坏等, 这些都会影响图像的质量,因此需要将图片进行平滑操作以此来消除噪声。但是如果平滑不当,就会使图像本身的细节如边界轮廓、线条等变的模糊不清,为了既平滑掉噪声有尽量保持图像细节,本系统采用高斯平滑。 ·均衡直方图:使用该模块的目的是通过点运算使输入转换为在每一灰度级上都有相同的像素点数的输出图像。它的实现主要是利用灰度均衡的转换式

D B = f (D A )= H (u )du 。(式1)

·图像对比度增强:为了将图像的特征一步一步显现出来,需要进行图像的对比度增强,它主要通过对图像的灰度值进行统计,对于小于Low 则认为是有关的信息,则将它作为黑色处理,对于处于High 以上的则认为是一些无关的信息,将它们去掉,而处于两者之间的,则进行对比度增强,将他们在总的灰度值里面的比例作为新的像素信息保存起来。

三、 系统概要设计

❆ 各模块功能概述

以上是该系统的总体结构设计图以及图像预处理模块的层次图。下面介绍系统中的各模块的功能及算法:

图像获取模块

该模块主要是从摄像头拍照后进行获取图片,也可以从图片库中获取,获取后的图片可以在软件的界面中显示出来以便进行识别。

该系统中图像里人脸区域的获取,主要是根据肤色来进行获取,通过肤色非线形分段色彩变换来实现。这一非线性分段色彩变换得到的肤色模型属于色彩空间中的聚类模型,这一类肤色模型的建立首先要选取一种合适的色彩空间。

人脸区域获取

图像预处理就是对获取得来的图像进行适当的处理,使它具有的特征能够在图像中明显的表现出来。该模块中的子模块有如下5个,下面对它们进行概述: 图像预处理模块

·光线补偿[3]

因为系统得到的图片可能会存在光线不平衡的情况,这会影响我们对特征的提取,同时系统中要用到YcrCB 色彩空间,所以有必要对图像进行光线补偿。尽可能将它的特征在图像中表现出来。YcrCB 是一种色彩空间,它用于视频系统中,在该色彩空间中,Y 分量表示像素的亮度,Cr 表示红色分量,Cb 表示蓝色分量,通常把Cr 和Cb 称为色度。YcrCB 色彩空间是以演播室质量标准为目标的CC601编码方案中采用的彩色表示模型。

·灰度变化[4]

图像灰度化的过程就是把彩色图像转换为黑白色图像的过程,它也是为了将图像的信息更加具体、简单的表现出来,但是,这样做也将会丢失图像信息。因此,尽可能在转化的过程中用简单的方式表现图像复杂的信息。

·高斯平滑处理[5]

高斯平滑将对图像进行平滑处理,在图像采集过程中,由于各种因素的影响,图像往往会出现一些不规则的噪声,入图像在传输、存储等都有可能产生数据的丢失。从而影响图像的质量。处理噪声的过程称为平滑。平滑可以降低图像的视觉噪声,同时出去图像中的高频部分后,那些本来不明显的低频成分更容易识别。平滑可以通过卷积来实现。经过卷积平滑后的水平投影后,二值化提供了较好的图像效果。

·对比度增强[6]

对比度增强,就是对图像的进一步处理,将对比度再一次拉开。它针对原始图像的每一个像素直接对其灰度进行处理的,其处理过程主要是通过增强函数对像素的灰度级进行运算并将运算结果作为该像素的新灰度值来实现的。通过改变选用的增强函数的解析表达式就可以得到不同的处理效果。

·二值化[7]

二值化的目的是将采集获得的多层次灰度图像处理成二值图像,以便于分析理解和识别并减少计算量。二值化就是通过一些算法,通过一个阈值改变图像中的像素颜色,令整幅图像画面内仅有黑白二值,该图像一般由黑色区域和白色区域组成,可以用一个比特表示一个像素,“1”表示黑色,“0”表示白色,当然也可以倒过来表示,这种图像称之为二值图像。这便有利于我们对特征的提取。该设计中采用组内方差和组外方差来实现二值化。

·直方图均衡[8]

直方图均衡化的目的是使一输入图像转换为在每一灰度级上都有相同的象素点数,它的处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,它的研究思路是:通过直

-1⎡H f (D )⎤A ⎦方图变换式来进行直方图的均衡处理,直方图变换式是 H B (D )=' ⎣-1f ⎡⎣f (D )⎤⎦

✧ 但是直方图均衡化存在着两个缺点:

变换后图像的灰度级减少,某些细节消失;

某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。

人脸定位是将典型的脸部特征(如眼睛,鼻尖,嘴唇等等)标记出来,在本系统中,定位的特征是眼睛,鼻尖和嘴巴三个。由于眼睛具有对称性,因此可以很快就能标记出来,而鼻子是在眼睛下面,且嘴巴在鼻子下面,所以只要眼睛标记好,鼻子和嘴巴也能相应的标记出来。

特征提取按以下4个步骤进行:

✧ 提取两只眼睛的距离

✧ 眼睛的倾角度

✧ 眼睛、嘴巴的重心

✧ 用一个矩形标出每一个特征

在特征提取完之后将会得到相应的特征值以便存入后台数据库。

人脸定位模块 特征提取模块

该模块通过与库存中的特征向量进行比较,找出与特征最相近的参数,再对该参数进一步分析。如果分析在我们所确认的范围内,我们就认为该人就是我们所要找的。然后从库存中提取出该人相关的信息,并显示出来。如果库存中没有,则给出提示是否对存库作为样本。 识别模块

四、 系统详细设计

1. 系统整体设计流程图

2. 图像处理详细设计

图像点运算是一种既简单又重要的技术,它能让用户改变图像数据占据的灰度范围,一幅输入图像经过点运算后将产生一幅新的输出图像,由输入像素点的灰度值决定相应的输出像素点的灰度值,点运算与局部运算的差别在于:后者每个输出像素的灰度值由对应输入像素的一个领域内几个像素的灰度值决定。所以,点运算不可以改变图像内的空间关系。

点运算可以按照预定的方式改变一幅图的灰度直方图。除了灰度级的改变是根据某种特定的灰度变换函数进行之外,点运算可以看作是“从像素到像素”的

复制操作。如果输入图像为A (x ,y ),输出图像为B (x ,y ),则点运算可表示为:

B(x ,y ) = f[A(x ,y )] (式2)

其中函数f (D )被称为灰度变换(Gray Scale Transformation ,GST )函数,它描述了输入灰度值和输出灰度值之间的转换关系,一旦灰度变换函数确定,该点运算就完全被确定下来了。

点运算有时又称为对比度增强、对比度拉伸或灰度变换,它是图像数字化软件和图像显示软件的重要组成部分。下面将对本设计解决各图像点处理模块运用进行到的理论和编程实现进行详细讲述。

(1)

(1)算法思想:

光线补偿的想法的提出主要是考虑到肤色等色彩信息经常受到光源颜色、图像采集设备的色彩偏差等因素的影响,而在整体上偏离本质色彩而向某一方向移动,即我们通常所说的色彩偏冷、偏暖、照片偏黄、便蓝等等。这种现象在艺术照片中更为常见。所以Anil K.Jain等提出,为了抵消这种整个图像中存在着的色彩偏差,我们将整个图像中所有像素亮度(是经过了非线形r-校正后的亮度)从高到低进行排列,取前5%的像素,如果这些像素的数目足够多(例如,大于100),我们就将它们的亮度作为“参考白”(Reference White),也即将它们的色彩的R 、G 、B 分量值都调整为255。整幅图像的其他像素点的色彩值也都按这一调整尺度进行交换。

(2) 具体实现光线补偿功能:

明白了光线补偿这功能的算法及思想,就可以编码实现其功能了,实现过程如下:

①、 编辑菜单IDR _MAINFRAM,先在其中添加一菜单项,将其命名为“预处理”,并在其属性栏中将其设为“弹出”菜单,点击预处理该菜单项将会弹出一个新的子菜单,此时把该子菜单命名为“光线补偿”,并把其ID 设为ID_READY_LIGHTINGCONPENSATE,对应文件FaceDetectVie w .Cpp 中的函数ReadyLightingconpensate()

hDIBTemp = gDib.CopyHandle(hDIB);

gDib.LightingCompensate(hDIB);

GlobalUnlock(hDIB);

Invalidate();

光线补偿 实现,并在voidCFaceDetectView::OnReadyLightingconpensate()中添加如下代码:

光线补偿功能实质上是用上段代码中的LightingCompensate ()函数来进行实现。函数LightingCompensate ()是类DIB 的一个成员函数。其核心代码如下所述:

② 光线补偿的效果图如下所示 :

} //红色分量 colorb = *(lpData+lOffset+2); colorb *=co; if(colorb >255) colorb = 255; *(lpData+lOffset+2) = colorb; //绿色分量 colorb = *(lpData+lOffset+1); colorb *=co; if(colorb >255) colorb = 255; *(lpData+lOffset+1) = colorb; //得到蓝色分量 *(lpData+lOffset) = colorb; //下面的循环对图像进行光线补偿 for(i =0;iPixelOffset(i,j,wBytesPerLine);

图 4-1 原图

图4-2 光线补偿效果图

(2) 2、 图像灰度化

(1)算法思想

① 彩色转换成灰度

将彩色图像转化为灰阶图像常采用如下的经验式:

gray =0.39×R +0.50×G +0.11×B (式3)

其中,gray 为灰度值,R 、G 、B 分别为红色、绿色和蓝色分量值。

② 灰度比例变换

灰度比例变换是把原像素的灰度乘以一个缩放因子,并最后截至[0,255]。 ③ 灰度线性变换

当图像由于成像时曝光不足或曝光过度,会产生对比度不足的弊病,从而使图像中的细节分辨不清。将图像灰度进行线性扩展,常能显著地改善图像的外观。灰度线性变换的计算式为:

g = d -c )(f -a ) +c , f ∈[a , b ] b -a

(式4)

f ,其他

式中,f 是原像素的灰度,g 为变换后的灰度。该变换把属于[a,b]的灰度级变换至灰度区间[c,d],而没有在[a,b]区间的原像素灰度将保持不变。这里a ,b ,c ,d ,f ,g 均为[0,255]之间的整数值。可见,a 被映射为c ,b 被映射为d 。 ④ 灰度线性截断

灰度线性截断的思想是:如果原像素的灰度小于a ,则该像素的灰度等于c ;如果原像素的灰度大于b ,则该像素的灰度等于d 。

(2)具体实现灰度化功能

在明白了灰度化的原理之后,就可进行编码来实现该功能。

① 编辑菜单IDR _MAINFRAM,先在其中添加一菜单项,将其命名为”图像灰度化”, 并将其ID 号设为ID_READY_SCALE, 对应文件FaceDetectVie w .Cpp 中的函数ReadyLightingconpensate()实现.

② 现该模块的核心代码如下:

获取蓝色分量

ColorB=*(lpData + lOffset);

获取绿色分量

ColorG=*(lpData + lOffset+1); 获取红色分量 ColorR=*(lpData + lOffset+2); 计算灰度值 gray = (ColorG*50+ColorR*39+ColorB*11)/100; 显示灰度图像 *(lpData + lOffset)=gray ; *(lpData + lOffset+1)=gray ; *(lpData + lOffset+2)=gray ;

其中lpData 是图片数据区,lOffset 是图片像素的偏移,gray 是图像的灰度值

③ 图像灰度化效果图:

图 4-3 图像灰度化效果图

(3) 3、高斯平滑

(1) 算法思想

在介绍高斯平滑前,先介绍模板操作。模板操作是数字图像处理中经常用到的一种运算方法,图像的平滑、锐化以及细化、边缘检测都要用到模板操作

通常的处理是:将中心点周围八个点的像素值乘于各自矩阵相应的系数后相加得到一个值, 然后将这个值乘上中心点的系数, 中心点的像素值赋为得到的最后值。一般来说, 不同的噪声有各自针对性的卷积算法。本文使用的卷积算法是高斯卷积核, 亦即上面卷积核的LP3。高斯卷积是通过采样2维高斯函数得到的。高斯平滑算法的优点是平滑后图像的失真少, 算法更具备通用性, 能去除不同的噪声干扰。需要注意的是:在平滑处理时, 图像边界点无法处理, 因此循环范围应设定在图像边界内。

(2) 具体实现高斯平滑功能

知道高斯平滑原理之后,可进行编码将其实现:

① 编辑菜单IDR _MAINFRAM,在菜单“预处理”中添加一子菜单项,命名为“高斯平滑”并将其ID 设为ID_READY_Template。

② 在类CFaceDetectView 中添加“高斯平滑”菜单项的事件处理程序,其代码如下:

//进行模板操作

Template(tem ,3,3, xishu);

Invalidate(TRUE);

其中t em 是模板参数,xishu 是模板系数;Template ()函数是实现高斯平滑的主要函数,其核心代码是:

for(m=i-((tem_h-1)/2);m

{

for(n=j-((tem_w-1)/2);n

系数进行相乘并线形叠加

} 注: 将以点(i ,j )为中心,与模板大小相同的范围内的象素与模板对用位置的 sum+=Gray[m][n]* tem[(m-i+((tem_h-1)/2))*tem_w+n-j+((tem_w-1)/2)]; 将结果乘上总的模板系数 计算绝对值 sum = fabs(sum); 如果小于0,强制赋值为0 sum=(int)sum*xishu;

if(sum

sum=0;

③ 高斯平滑效果图:见下图 4-4 如果大于255,强制赋值为255 sum=255; if(sum>255) HeightTemplate[i][j] = sum ;

图4-4 高斯平滑效果图

(4) 灰度均衡

(1)算法思想

灰度均衡也称直方图均衡,目的是通过点运算使输入转换为在每一灰度级上都有相同的像素点数的输出图像(即输出的直方图是平的)。这对于在进行图像比较或分割之前将图像转化为一级的格式是十分有效的。

按照图像的概率密度函数(PDF ,归一化带单位面积的直方图)的定义: P (x ) = 0 * H(x )(式5)

其中H (x )为直方图,A0为图像的面积,设转换前图像的概率密度函数为 Pr (r ),转换后图像的概率密度函数为Ps (S ),转换函数为s = f(r ),由概率论知识,我们可以得到:

Ps (S ) = Pr (r )*dr (式6)

这样,如果想使转换后图像的概率密度函数为1(即直方图是平的)则必须满足: Pr (r )=dr (式4-5)

等式两边积分,得:

S = f(r )= ∫r 0P 2(u )du =0∫r 0H (u )du (式7)

该转换式被称为图像的累积分布函数

上面的式是被归一化后推导的对于没有归一化的情况,只要求以最大的灰度值(DMax ,对于灰度图就是255)即可,灰度均衡的转换式为:

D B = f (D A )= H (u )du (式1)

对于离散图像转换式为:

DB = f (DA )= DA Hi ∑i =0 (式8)

式中Hi 为第i 级灰度的像素个数。

(2)编程实现

在灰度均衡操作同样不需要改变DIB 的调色板和文件夹,只要把指向DIB 像素起始位置的指针和DIB 高度、宽度信息传递给子函数就可以完成灰度均衡变换工作,其核心代码如下:

*(lpData + lOffset)=state ; //显示灰度均衡

*(lpData + lOffset+1)=state ;

*(lpData + lOffset+2)=state ;

(3)效果图

图 4-5 灰度均衡效果图

(5) 图像对比度增强

(1) 算法思想:

在对图像均衡直方图处理以后,便可对图像进行对比度增强,进一步拉

基于MATLAB 的人脸识别课程设计

开对比度。它通过对图像的灰度值进行统计,对于比最小设定值小的则认为是有关的信息,则将它作为黑色处理,比最大设定值大的则认为是一些无关的信息,将它们去掉,而处于两者之间的,则进行对比度增强,将他们在总的灰度值里面的比例作为新的像素信息保存起来。

这个工作的主要目的是将图像的特征一步一步显现出来。

(2) 编码实现:

① 编辑菜单IDR _MAINFRAM,在菜单“预处理”中添加一子菜单项,命名

为“实现图像对比度增强”,并将其ID 设为ID_READY_ContrastEnhance。 ② 类CFaceDetectView 中添加“实现图像对比度增强”菜单项的事件处理

程序,其代码如下;

lOffset = gDib.PixelOffset(i, j, gwBytesPerLine);

获取图像灰度增强函数

int state=IncreaseContrast(ZFT[k][k1], 100);

显示灰度增强后的图像

*(lpData + lOffset)=state ;

*(lpData + lOffset+1)=state ;

*(lpData + lOffset+2)=state ;

其中IncreaseContras ()函数是实现图像对比度增强的关键函数,该根据参数n 来调节对比度,n 越大,对比越强烈,其核心是:

如果数据很小,设置为0

if(pByte

③ 效果图 return 0; 获得中间数据,并进行对比增强处理 else if ((Low

18


相关文章

  • 基于matlab的人脸识别技术
  • 基于matlab的人脸识别技术 论文 摘要:随着计算机技术的飞速发展,人脸识别技术逐渐发展壮大起来,并应用到众多领域. 人脸识别是指在人脸检测的基础上针对输入的人脸图像,通过特征提取与特征匹配,找出与人脸库中匹配的人脸图像,从而达到识别效果 ...查看


  • 二维人脸识别实验报告
  • 实 验 报 告 课程名称 人工智能 实验名称 班 级 学 号 姓 名 成 绩 指导教师 实验日期 一.实验目的 (1)通过本次人脸识别实验,进一步加深图像处理和基本算法的掌握,能利用已有的算法和程序去找出和识别人脸. (2)通过本次人脸识别 ...查看


  • 中山大学研究生简历
  • 中山大学研究生简历 [姓名]黄可坤[出生年月]79.10[籍贯]广东省梅州市 [民族]汉[学历]硕士[专业]应用数学[研究方向]计算机图像处理 [本科专业]应用数学 (副修计算机软件) [家庭住址]广东省梅州市梅江区 [联系地址]广州市中山 ...查看


  • 广东海洋大学本科生毕业论文(设计)一览表
  • 广东海洋大学本科生毕业论文(设计)一览表 学院 :信息学院 专业:电子信息工程专业 班级:1031-1036 本班第 页共9页 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 学 ...查看


  • matlab学习入门及资料
  • matlab学习入门及资料 2009-09-06 21:23 matlab博大精深,说到底我也只不过是个初学者,只是学的时间比新手长了一点,现在写几句给新手,希望能给你们有点帮助 1 学Matlab并不难,难的是学会怎么用. 2不要试图掌握 ...查看


  • 电子信息类毕业设计课题
  • 电子信息类毕业设计课题 [电子通讯] 出租车计价系统 [过程控制] 基于单片机实现单回路智能调节.. [电子通讯] 脉冲数字频率计 [机床仪表] 仪表机床数控系统的设计(论文.. 磁流体发电论文 [电子通讯] 基于VC++6.0的PC 机与 ...查看


  • 毕业设计论文_人脸识别系统
  • 摘要 人脸识别因其在安全验证系统.信用卡验证.医学.档案管理.视频会议.人机 交互.系统公安(罪犯识别等)等方面的巨大应用前景而越来越成为当前模式识别和人工智能领域的一个研究热点. 本文提出了基于24位彩色图像对人脸进行识别的方法,介绍的主 ...查看


  • 基于PCA的人脸识别研究报告
  • 项目名称:基于PCA 的人脸识别算法研究 摘 要 随着人类社会的进步,以及科技水平的提高,一些传统的身份认证的方法逐渐暴 露出各种问题,因此人们需要采用一种更加可靠安全的身份认证方法.毫无疑问人体 的生物特征的独一无二的,特别是其不容易丢失 ...查看


  • 车牌检测识别实验报告
  • <数字图像处理>课程设计报告 学院 专业 电子信息科学与技术 班级 XXXXXXXXXXXX 学生姓名学号 车牌检测识别 关键词:车牌定位,字符分割,字符识别 绪论: 随着我国的公路交通事业发展迅速,人工管理方式已经不能满着实际 ...查看


热门内容