脸识别系统进行模块划分,并介绍各模块的功能,重点介绍图像预处理模块,对其内的子模块的功能和算法进行详细讲述,主要介绍光线补偿、图像灰度化、高斯平滑、均衡直方图、图像对比度增强,图像预处理模块在整个系统中起着极其关键的作用,图像处理的好坏直接影响着后面的定位和识别工作。
第二章 系统的需求分析与方案选择
人脸识别系统现在应用于许多领域中,但是人脸识别技术也是一项近年来兴起的,且不大为人所知的新技术。在我国以及其他国家都有大量的学者正在研究之中,不断的更新人脸识别技术,以便系统的识别准确率达到新的高度。
第一节 可行性分析
在开发该人脸识别软件之前,我们查询了前人所写过的诸多论文以及源程序,在开发之时,结合了资料中的算法并揉进了自己的一些思想,使程序可以对人脸图片进行简易识别。
一 技术可行性
图像的处理方法很多,我们可以根据需要,有选择地使用各种方法。
在确定脸部区域上,通常使用的方法有肤色提取。肤色提取,则对脸部区域的获取则比较准确,成功率达到95%以上,并且速度快,减少很多工作。
图像的亮度变化,由于图像的亮度在不同环境的当中,必然受到不同光线的影响,图像就变得太暗或太亮,我们就要对它的亮度进行调整,主要采取的措施是对图像进行光线补偿。
高斯平滑:在图像的采集过程中,由于各种因素的影响,图像中往往会出现一些不规则的随机噪声,如数据在传输、存储时发生的数据丢失和损坏等,这些都会影响图像的质量,因此需要将图片进行平滑操作以此来消除噪声。
灰度变换:进行灰度处理,我们要保证图像信息尽可能少的丢失。同样在进行灰度变换前,我们也要对图像的信息进行统计,找出一个比较合理的灰度值,才能进行灰度变换。
灰度均衡:灰度变换后,就要进行灰度均衡,可以根据灰度分布来进行灰度均衡。
对比度增强:将所要处理的区域和周围图像区域进一步拉开他们的对比度,使它们更加明显,主要通过像素的聚集来实现。
二 操作可行性
该人脸识别软件需要如下的运行环境:CPU:500M及以上;内存:64 M及以上。安装有Windows 98、Windows Me、Windows 2000、Windows NT等操作系统中的其中一种。另还装有摄像头可进行随机拍照和识别。因此,从操作可行性来看,只要系统用户的硬件软件设备满足以上条件,即可用该人脸识别软件进行人脸的识别。
第二节 需求分析
一 应用程序的功能需求分析
该软件最主要的功能就是要能识别出人脸,首先该系统需要对通过摄像头拍照而获取到的原始的人脸图片进行一系列处理才可进行下一步的工作,该处理过程也称图像预处理。预处理这个模块在整个人脸识别系统的开发过程中占有很重要的地位,只有预处理模块做的好,才可能很好的完成后面的人脸定位和特征提取这两大关键模块。因此本设计中所要完成的主要功能如下所述:
图像获取功能:
该模块主要是从摄像头拍照后进行获取图片,也可以从图片库中获取,获取后的图片可以在软件的界面中显示出来以便进行识别。
图像预处理功能:
该模块主要包括图像光线补偿、图像变成灰色、高斯平滑、均衡直方图、实现图像对比度增强、二值化变换等。
人脸定位功能:
该模块主要是将处理后的人脸图片进行定位,将眼睛、鼻子、嘴巴标记出来,以便进行特征提取。
特征提取功能:
该模块是在定位后的人脸图片中将眼睛、鼻子、嘴巴的特征值提取出来。
识别功能:
该模块是将从图片中提取的特征值和后台数据库中的值进行比较来完成识别功能。
二 开发环境需求分析
1、硬件环境
(1)硬件配置原则
具有可靠性,可用性和安全性,具有完善的技术支持。能够满足个人学习和设计需要。
(2)运行本软件所需的硬件资源
CPU: 800M及以上;内存: 128M及以上
2、软件环境
(1)系统软件配置原则
能够满足该软件的可靠性,可用性和安全性的要求
(2)系统软件配置方案
① 配置有持续工作能力、高稳定性、高度可集成的开放式标准的操作系统,如Windows2000,Windows NT,UNIX,Linux等。
② 配备符合ANSI/ISO标准的高级程序设计语言处理软件。如:Visual C++ 6.0。
③ 熟悉C++高级程序设计语言。
3、 运行环境需求分析
(1)、硬件环境
CPU:500M及以上;内存:64 M及以上。
(2)、软件环境
可以运行在微软公司近年来所出的各种操作系统。如Windows 98、Windows Me、Windows 2000、Windows NT等。
第三节 预处理方案选择
一 设计方案原则的选择
本应用程序的设计方案原则如下:
1、采用较为先进的技术力量,保证应用程序在技术上具备一定的优势。
2、采用成熟的技术,保证应用程序的安全性和可靠性。
3、应用程序便于扩展和维护,易于技术的更新。
4、应用程序充分利用现有的资源,尽量减少不必要的再投资。
5、编写的代码必须严谨易读,代码的解释必须清楚明白,为应用程序的再开发提供应尽的责任。
二 图像文件格式选择
在设计的过程中,为了定位和特征提取的方便,我们采用的是24位位图。
三 开发工具选择
本次设计所用的开发工具是Microsoft Visual C++ 6.0。 Visual C++ 6.0是Microsoft公司推出的一种可视化编程工具。它支持多平台和交叉平台的开发,将各种编程工具如编辑器、连接器、调试器等巧妙的结合在一起,构成一个完美的可视化开发环境。用户无需通过繁杂的编程操作,即可完成Windows下应用程序的编辑、编译、测试和细化等工作。
四 算法选择分析
本文主要研究的对象是图像预处理模块,该模块分为光线补偿、图像灰度化、高斯平滑、图像对比度增强、均衡直方图,每个小模块的实现都有许多相应的算法。下面将本系统采用的算法进行介绍:
·光线补偿 :由于光线原因,所照的图像可能会存在光线不平衡的情况而造成色彩偏差,为了抵消这种整个图像中存在的色彩偏差,本系统采用的解决方法是:将整个图像中的所有像素的亮度从高到低进行排列,取前5%的像素,然后线性放大,使这些像素的平均亮度达到255。实际上就是调整图片像素的RGB值。
·图像灰度化:图像灰度化是将图像变成灰色,本系统中采用以下步骤来实现图像的灰度化:彩色转换成灰度、灰度比例变换、灰度线性变换、灰度线性截断、灰度取反。
·高斯平滑:在图像的采集过程中,由于各种因素的影响,图像中往往会出现一些不规则的随机噪声,如数据在传输、存储时发生的数据丢失和损坏等,这些都会影响图像的质量,因此需要将图片进行平滑操作以此来消除噪声。但是如果平滑不当,就会使图像本身的细节如边界轮廓、线条等变的模糊不清,为了既平滑掉噪声有尽量保持图像细节,本系统采用高斯平滑。
·均衡直方图:使用该模块的目的是通过点运算使输入转换为在每一灰度级上都有相同的像素点数的输出图像。它的实现主要是利用灰度均衡的转换式
DB = f (DA)= H(u)du 。(式1)
·图像对比度增强:为了将图像的特征一步一步显现出来,需要进行图像的对比度增强,它主要通过对图像的灰度值进行统计,对于小于Low则认为是有关的信息,则将它作为黑色处理,对于处于High以上的则认为是一些无关的信息,将它们去掉,而处于两者之间的,则进行对比度增强,将他们在总的灰度值里面的比例作为新的像素信息保存起来。
第三章 系统的概要设计
本章主要介绍系
上一篇:
西班牙文酷第三课动词
下一篇:
超市进销存管理系统的开发