人脸识别程序的设计与实现 C++
摘要
人脸识别因其在安全验证系统、信用卡验证、医学、档案管理、视频会议、人机交互、系统公安(罪犯识别等)等方面的巨大应用前景而越来越成为当前模式识别和人工智能领域的一个研究热点。
本文提出了基于24位彩色图像对人脸进行识别的方法,介绍的主要内容是图像处理,它在整个软件中占有极其重要的地位,图像处理的好坏直接影响着定位和识别的准确率。本软件主要用到的图像处理技术是:光线补偿、高斯平滑和二值化。在识别前,先对图像进行补光处理,再通过肤色获得可能的脸部区域,最后根据人脸固有眼睛的对称性来确定是否就是人脸,同时采用高斯平滑来消除图像的噪声,再进行二值化,二值化主要采用局域取阈值方法,接下来就进行定位、提取特征值和识别等操作。经过测试,图像预处理模块对图像的处理达到了较好的效果,提高了定位和识别的正确率。(所有权: 毕业设计网 )
【关键字】:人脸识别;光线补偿;高斯平滑;对比度增强
Abstract [资料来源:http://doc163.com]
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.
[资料来源:http://www.doc163.com]
【key word】: Face recognition; light compensating; gauss smooth;contrast enhancing
[资料来源:http://www.doc163.com]
人脸识别是机器视觉和模式识别领域最富有挑战性的课题之一,同时也具有较为广泛的应用意义。人脸识别技术是一个非常活跃的研究领域,它覆盖了数字图像处理、模式识别、计算机视觉、神经网络、心理学、生理学、数学等诸多学科的内容。如今,虽然在这方面的研究已取得了一些可喜的成果,但是FRT在实用应用中仍面临着很严峻的问题,因为人脸五官的分布是非常相似的,而且人脸本身又是一个柔性物体,表情、姿态或发型、化妆的千变万化都给正确识别带来了相当大的麻烦。如何能正确识别大量的人并满足实时性要求是迫切需要解决的问题。
2、面部关键特征定位及人脸2D形状检测技术
在人脸检测的基础上,面部关键特征检测试图检测人脸上的主要的面部特征点的位置和眼睛和嘴巴等主要器官的形状信息。灰度积分投影曲线分析、模板匹配、可变形模板、Hough变换、Snake算子、基于Gabor小波变换的弹性图匹配技术、主动性状模型和主动外观模型是常用的方法。
可变形模板的主要思想是根据待检测人脸特征的先验的形状信息,定义一个参数描述的形状模型,该模型的参数反映了对应特征形状的可变部分,如位置、大小、角度等,它们最终通过模型与图像的边缘、峰、谷和灰度分布特性的动态地交互适应来得以修正。由于模板变形利用了特征区域的全局信息,因此可以较好地检测出相应的特征形状。由于可变形模板要采用优化算法在参数空间内进行能量函数极小化,因此算法的主要缺点在于两点:一、对参数初值的依赖程度高,很容易陷入局部最小;二、计算时间长。针对这两方面的问题,我们采用了一种由粗到细的检测算法:首先利用人脸器官构造的先验知识、面部图像灰度分布的峰谷和频率特性粗略检测出眼睛、鼻子、嘴、下巴的大致区域和一些关键的特征点;然后在此基础上,给出了较好的模板的初始参数,从而可以大幅提高算法的速度和精度。
[资料来源:https://www.doc163.com]
眼睛是面部最重要的特征,它们的精确定位是识别的关键。基于区域增长的眼睛定位技术,该技术在人脸检测的基础上,充分利用了眼睛是面部区域内脸部中心的左上方和右上方的灰度谷区这一特性,可以精确快速的定位两个眼睛瞳孔中心位置。该算法采用了基于区域增长的搜索策略,在人脸定位算法给出的大致人脸框架中,估计鼻子的初始位置,然后定义两个初始搜索矩形,分别向左右两眼所处的大致位置生长。该算法根据人眼灰度明显低于面部灰度的特点,利用搜索矩形找到眼部的边缘,最后定位到瞳孔的中心。实验表明,本算法对于人脸大小、姿态和光照的变化,都有较强的适应能力,但在眼部阴影较重的情况下,会出现定位不准。佩戴黑框眼镜,也会影响本算法的定位结果。
[来源:http://Doc163.com]
3、面部感知系统的重要内容
基于视觉通道信息的面部感知系统,包括人脸检测和跟踪、面部特征定位、面部识别、人脸归类(年龄、种族、性别等的判别)、表情识别、唇读等分系统,如图1-1所式,可以看出,继人脸检测和跟追之后,面部特征定位通常是面部感知的一个必备环节,是后续工作的基础,具有重要的意义。尽管人脸识别不能说是其他面部感知模块的必备功能,但是, 可以肯定的是,利用已知的身份信息,结合特定人的先验知识,可以提高表情分析、唇读和语音识别、手势识别乃至手写体识别的可靠性。而计算机对使用者身份确认的最直接的应用就是基于特定使用者的环境设置:如使用者的个性化工作环境,信息的共享和隐私保护等等。
下面介绍系统中的各模块的功能及算法:
图像获取模块
该模块主要是从摄像头拍照后进行获取图片,也可以从图片库中获取,获取后的图片可以在软件的界面中显示出来以便进行识别。
[资料来源:Doc163.com]
人脸区域获取
[资料来源:http://doc163.com]
该系统中图像里人脸区域的获取,主要是根据肤色来进行获取,通过肤色非线形分段色彩变换来实现。这一非线性分段色彩变换得到的肤色模型属于色彩空间中的聚类模型,这一类肤色模型的建立首先要选取一种合适的色彩空间。 [资料来源:https://www.doc163.com]
图像预处理模块
图像预处理就是对获取得来的图像进行适当的处理,使它具有的特征能够在图像中明显的表现出来。该模块中的子模块有如下5个,下面对它们进行概述:
•光线补偿[3]
因为系统得到的图片可能会存在光线不平衡的情况,这会影响我们对特征的提取,同时系统中要用到YcrCB色彩空间,所以有必要对图像进行光线补偿。尽可能将它的特征在图像中表现出来。YcrCB是一种色彩空间,它用于视频系统中,在该色彩空间中,Y分量表示像素的亮度,Cr表示红色分量,Cb表示蓝色分量,通常把Cr和Cb称为色度。YcrCB色彩空间是以演播室质量标准为目标的CC601编码方案中采用的彩色表示模型。
[来源:http://Doc163.com]
•灰度变化[4]
图像灰度化的过程就是把彩色图像转换为黑白色图像的过程,它也是为了将图像的信息更加具体、简单的表现出来,但是,这样做也将会丢失图像信息。因此,尽可能在转化的过程中用简单的方式表现图像复杂的信息。 [版权所有:http://DOC163.com]
•高斯平滑处理[5]
高斯平滑将对图像进行平滑处理,在图像采集过程中,由于各种因素的影响,图像往往会出现一些不规则的噪声,入图像在传输、存储等都有可能产生数据的丢失。从而影响图像的质量。处理噪声的过程称为平滑。平滑可以降低图像的视觉噪声,同时出去图像中的高频部分后,那些本来不明显的低频成分更容易识别。平滑可以通过卷积来实现。经过卷积平滑后的水平投影后,二值化提供了较好的图像效果。 [资料来源:www.doc163.com]
•对比度增强[6]
对比度增强,就是对图像的进一步处理,将对比度再一次拉开。它针对原始图像的每一个像素直接对其灰度进行处理的,其处理过程主要是通过增强函数对像素的灰度级进行运算并将运算结果作为该像素的新灰度值来实现的。通过改变选用的增强函数的解析表达式就可以得到不同的处理效果。
•二值化[7]
二值化的目的是将采集获得的多层次灰度图像处理成二值图像,以便于分析理解和识别并减少计算量。二值化就是通过一些算法,通过一个阈值改变图像中的像素颜色,令整幅图像画面内仅有黑白二值,该图像一般由黑色区域和白色区域组成,可以用一个比特表示一个像素,“1”表示黑色,“0”表示白色,当然也可以倒过来表示,这种图像称之为二值图像。这便有利于我们对特征的提取。该设计中采用组内方差和组外方差来实现二值化。
[资料来源:http://doc163.com]
•直方图均衡[8]
直方图均衡化的目的是使一输入图像转换为在每一灰度级上都有相同的象素点数,它的处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,它的研究思路是:通过直方图变换式来进行直方图的均衡处理,直方图变换式是
但是直方图均衡化存在着两个缺点:
1)变换后图像的灰度级减少,某些细节消失;
2)某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。 [来源:http://Doc163.com]
人脸定位模块
[资料来源:https://www.doc163.com]
人脸定位是将典型的脸部特征(如眼睛,鼻尖,嘴唇等等)标记出来,在本系统中,定位的特征是眼睛,鼻尖和嘴巴三个。由于眼睛具有对称性,因此可以很快就能标记出来,而鼻子是在眼睛下面,且嘴巴在鼻子下面,所以只要眼睛标记好,鼻子和嘴巴也能相应的标记出来。 [来源:http://Doc163.com]
特征提取模块 [资料来源:http://doc163.com]
特征提取按以下4个步骤进行:
(1)、提取两只眼睛的距离
(2)、眼睛的倾角度
(3)、眼睛、嘴巴的重心
(4)、用一个矩形标出每一个特征
在特征提取完之后将会得到相应的特征值以便存入后台数据库。
[资料来源:http://doc163.com]
识别模块
该模块通过与库存中的特征向量进行比较,找出与特征最相近的参数,再对该参数进一步分析。如果分析在我们所确认的范围内,我们就认为该人就是我们所要找的。然后从库存中提取出该人相关的信息,并显示出来。如果库存中没有,则给出提示是否对存库作为样本。(所有权: 毕业设计网 )
[资料来源:http://doc163.com]
目 录
第一章 绪论
第一节 课题背景
一 课题的来源------------------------------------------------------------------------------1
二 人脸识别技术的研究意义------------------------------------------------------------1
第二节 人脸识别技术的国内外发展概况---------------------------------------------------3
一 国外发展概况---------------------- --------------------------------------------------2
二 国内发展概况---------------------------------------------------------------------------4
第二章 系统的需求分析和方案选择---------------------------------------------------------5
第一节 可行性分析------------------------------------------------------------------------------5
[资料来源:http://Doc163.com]
一 技术可行性分析------------------------------------------------------------------------5
二 操作可行性分析------------------------------------------------------------------------5
第二节 需求分析---------------------------------------------------------------------------------6
一 应用程序的功能需求分析------------------------------------------------------------6
二 开发环境的需求分析------------------------------------------------------------------7
三 运行环境的需求分析------------------------------------------------------------------7
第三节 预处理方案选择------------------------------------------------------------------------7
一 设计方案原则的选择------------------------------------------------------------------7
二 图像文件格式选择---------------------------------------------------------------------8 [资料来源:http://Doc163.com]
三 开发工具选择---------------------------------------------------------------------------8
四 算法选择分析---------------------------------------------------------------------------8
第三章 系统的概要设计------------------------------------------------------------------------9
第一节 各模块功能简介------------------------------------------------------------------------9
第四章 系统详细设计-------------------------------------------------------------------------14
第一节 系统整体设计简述-------------------------------------------------------------------14
第二节 图像处理详细设计-------------------------------------------------------------------14
一 位图详细设计-------------------------------------------------------------------------14 [资料来源:https://www.doc163.com]
(所有权: 毕业设计网 )
二 图像点处理详细设计----------------------------------------------------------------15
(二) 光线补偿算法和代码实现----------------------------------------------------------16
(三) 图像灰度化算法和代码实现-------------------------------------------------------18
(四) 高斯平滑算法和代码实现----------------------------------------------------------20
(五) 灰度均衡算法和代码实现----------------------------------------------------------23
(六) 图像对比度增强算法和代码实现-------------------------------------------------25
第三节 编程时的问题解决-------------------------------------------------------------------26
第五章 结构设计-------------------------------------------------------------------------------28
第六章 测试-------------------------------------------------------------------------------------35 [资料来源:https://www.doc163.com]
第一节 测试方案选择的原则----------------------------------------------------------------35
第二节 测试方案-------------------------------------------------------------------------------36
结束语----------------------------------------------------------------------------------------------------------37
致 谢
参考文献 (所有权: 毕业设计网 )
参 考 文 献 [来源:http://www.doc163.com]
[1] 山世光.面部特征检测与识别的研究与实现.哈尔滨:哈尔滨工业大学,1999年7月
[2] 蒋遂平.人脸识别技术及应用简介.北京:中国计算机世界出版社,2003年12月
[3] 徐慧.visual c++ 数字图像实用工程案例精选.北京:人民邮电出版社, 2004年3月
[4] 徐慧.visual c++ 数字图像模式识别技术及工程实践.北京:人民邮电出版社,2004年3月
[5] 胡迎春等.人脸图像特征点眼睛的定位与提取.柳州:广西工学院学报,2003年3月
[6] 周长发.精通visual c++图像处理编程.北京:电子工业出版社,2004年10月
[7] 张宏林. visual c++ 数字图像模式识别技术及工程实践. 北京:人民邮电出版社,2003年4月
[8] 何斌等. visual c++ 数字图像处理. 北京:人民邮电出版社,2001年4月
[9] 黄维通,姚瑞霞.VC++6.0程序设计教程. 北京:机械工业出版社,2003年4月
[10] 马安鹏.VC++ 6.0程序设计导学 .北京:清华大学出版社,2003年6月
[11] 张威等.VC++程序设计技巧与实例.北京:中国铁道出版社,2003年3月
[12] 黄维通 姚瑞霞著.visual c++程序设计教程. 北京:机械工业出版社, 2004年1月
[资料来源:https://www.doc163.com]