原创性声明郑重声明:此篇题为《基于FPGA的人脸检测系统设计》的论文是作者在导师的指导下,于武汉大学攻读硕士学位期间,进行研究工作所取得的成果。根据作者所知,论文中除了参考文献列举的地方外,不包含其他人已经发表或撰写过的研究成果。作者签名:李昌盛王亚娟导师签名:黄启俊常胜撰写日期:二零一一年八月十四日基于FPGA的人脸检测系统设计作者:李昌盛王亚娟导师:黄启俊常胜(武汉大学物理科学与技术学院电子科技系,武汉,430072)摘要:目前由于模式识别、视频电话、智能监控、人机交互等应用的发展,使得人脸检测显得越来越有意义和挑战,近年来独立出来成为一个很受重视的研究方向。本设计选取的是一种由粗及精的方法,综合采用基于彩色图像的肤色检测方法和基于几何特征的灰度检测方法。首先基于肤色检测在一个大的摄像头范围内捕捉人脸区域,在一个最佳范围内定位人脸候选区,实现人脸的粗定位,这一模块大大缩小了后续部分的搜索范围,降低了系统的运算量。在此基础上,在肤色检测所圈定的区域中,利用先验人脸的面部几何特征,精确定位人脸区域,从而实现人脸检测的目的。对于本设计的算法部分,我们在传统肤色检测算法的基础上,加入图像预处理、色彩平衡、二值化、形态学滤波、中值滤波、边缘检测等技术进行人脸检测。本设计最终搭建了由CMOS摄像头到FPGA核心图像处理单元,再由LCM显示,这样一个完整的人脸图像处理及检测系统。在肤色检测之后,还可以将人脸区域分割出来,以供更多应用需要,比如人脸的统计、跟踪等。关键词:人脸识别;人脸检测;FPGA(现场可编程门阵列);肤色检测;图像预处理技术AFaceDetectionSystemDesignBasedonFPGAAuthor:ChangshengLi,YajuanWangSupervisors:QijunHuang,ShengChangAbstract:Atpresent,withthedevelopmentofpatternrecognition,videophones,smartsurveillance,interactiveapplications,facedetectionhasbecomeincreasinglymeaningfulandchallenging.Inrecentyearsithasbecomeahighlyregardedindependentresearchtopic.ThedesigncombinesthedetectionmethodofskincolorbasedoncolorimageandthatofgrayscalebasedongeometricfeaturesinaCoarse-to-finefashion.Firstly,themoduleofcapturingthefaceregiononthebaseofskincolordetectionmethodinalargerangeofthecameraandlocatingthecandidatefaceregionintheoptimumregionhelpstodefinethefacelocationroughly,andgreatlyreducesthesearchingscopeandarithmeticlaboroffollow-upwork.Afterthat,locatethefaceregionaccuratelybytheinformationofpriorifacialgeometricfeatureswithinthescopeofskincolordetection,inordertoachievethepurposeoffacedetection.Onthebaseoftraditionalskincolordetectionmethod,algorithmsincludingtheimagepreprocessing,colorbalance,binarymodule,morphologicalfiltering,medianfilterandedgedetectiontechnologyareaddedtoachievefacedetection.Thesystemwilleventuallybuildacompletefaceimageprocessinganddetectingsystem,includingtheCMOScamera,FPGAcoreimageprocessingunit,LCMdisplay.Aftertheskincolordetection,thefaceregioncanalsobesegmentedformoreapplications,suchasthestatisticalfeature,facetracking,andsoon.Keywords:facerecognition;facedetection;FPGA(FieldProgrammableGateArray);skincolordetection;imageprocessingtechnology0引言随着信息技术及计算机网络的发展,信息安全显示出前所未有的重要性。身份鉴定是保证信息安全的必要部分,在很多领域都需要身份鉴定来达到保护信息安全的作用。传统的身份认证技术主要是依靠证件、密码和口令的认证方式,在现代科技快速发展的今天,这些都很容易丢失、破解或伪造,严重威胁到个人或公共财产信息安全。近年来,以人脸、虹膜、视网膜、指纹、声音、基因等人的生物特征作为识别手段的生物特征识别技术渐渐发挥出了很好的作用,这类识别属于模式识别范畴,相比传统的识别方式更安全、稳定和方便[1]。其中,人脸识别因具有友好、方便、直接等优点成为一个热门研究领域。人脸检测技术是人脸识别的前提条件,也是人脸识别过程的一个很重要的环节。目的就是通过检测输入图像或视频序列中是否存在人脸,运用各种算法,标示出输入区域内人脸的数目、位置、大小等参数化的人脸信息,并将人脸区域分割出来。传统的实现人脸检测系统的方法大部分都是基于PC平台,体积大,不能满足便携的要求,更不适合露天使用;而采用通用的DSP芯片组成的系统,外围电路较复杂,设计与调试都需要较长的时间,且系统的可扩展性和移植性不好。但是随着半导体产业的不断发展,在机场安检、门禁系统、银行等需要身份识别的场合,都需要先对图像或视频序列中是否存在人脸进行识别,而在这些应用场合对人脸检测系统的硬件大小、检测率、检测速度等都有特别的要求,这就要求人脸检测系统能够在嵌入式硬件上实现,并达到实时处理的要求。因此,将人脸检测系统硬件化就成为一种迫切的需求。近年来,随着人们对系统集成度的要求不断提高,同时FPGA的性能和集成度大大提高,各FPGA厂商的视频和图像处理应用设计人员提供了全面高性能FPGA解决方案。因此,基于FPGA的并行高速处理特点以及设计、扩展的灵活性,本论文采用FPGA来实现人脸检测系统的设计。1人脸检测系统方案设计1.1人脸检测算法分析目前,根据是否使用人脸区域的色彩特征,将人脸检测的算法分为两大类:针对彩色图像的基于肤色检测的算法和针对灰度图像的基于灰度信息的算法。1.1.1针对彩色图像的基于肤色检测的方法该类方法主要是利用人脸区域的色彩信息定位人脸,此类算法速度快,在不同视角下均能检测到人脸,具备稳定性,不受尺寸、表情、人脸姿态变换的影响。但在复杂背景下的检测效果不是很理想,一般情况下误检率比较高,检测精度也有限。因此,该方法比较适合构造快速的人脸检测系统,应用广泛,并且容易实现和应用,对人脸的姿态不敏感,在背景单调的环境下检测效率高。1.1.2针对灰度图像的基于灰度信息的方法该类算法是基于模板的方法,它采用了人脸区别于其他物体的更为本质的特征。因此该算法具有较强的鲁棒性,但由于人脸区域特征的复杂性,导致该类算法计算量大、速度慢[2]。根据选用的模型的不同,可以分为基于特征的方法、基于模板的方法和基于表象的方法。其中,基于特征的方法,分为基于几何特征的方法和基于频域特征提取的方法。1)基于人脸几何特征的检测方法,它主要是对构成人脸的主要部件进行形状、大小、结构位置关系的几何描述,将这些与人脸先验的特征进行比对,进而进行人脸检测。该方法相对简单易行,受光照影响小。但在人脸几何特征本身被遮挡时,对于表情、姿势的鲁棒性较差,稳定性不好。2)基于频域分析的特征提取法,通过将人脸变换到频域,根据频率特性,提取人脸的特征区域,或者将整个人脸的频域特征量作为分类决策器的输入。常用的频域变换和特征提取方法有离散余弦变换DCT,小波变换等[3]。鉴于本设计主要目的在于探索人脸检测硬件实现的方案及其实现,选择对单一背景下的人脸正面图像进行检测,但同时又对检测速度的要求比较高,因此本文综合采用基于彩色图像的肤色检测方法和基于几何特征的灰度检测方法来对人脸区域进行实时跟踪检测。1.2基于FPGA的人脸检测方案设计本设计选取的是一种由粗及精的方法,综合采用基于彩色图像的肤色检测方法和基于几何特征的灰度检测方法。首先基于肤色检测在一个大的摄像头范围内捕捉人脸区域,在一个最佳范围内定位人脸候选区,实现人脸的粗定位,这一模块大大减小了后续部分的搜索范围,降低了系统的运算量。在此基础上,在肤色检测所圈定的区域中,利用先验人脸的几何特征,实现人脸检测的目的。对于本设计的算法部分,我们在传统肤色检测算法的基础上,加入图像预处理模块、色彩平衡模块、自适应阈值二值化模块、形态学滤波模块等实现人脸的粗定位;在此基础上,对定位出来的人脸区域进行中值滤波、边缘检测等处理。具体如图1所示。色彩平衡、图像归一化二值化转换为8bits灰度图像中值滤波Sobel边缘检测人脸粗定位、人脸中心位置LCM显示(人脸区域画矩形;在眼睛上定位,以瞳孔为中心画十字)五官定位(眼睛、嘴巴、鼻翼、下巴)图像预处理色彩空间转换(YCbCr)、建立肤色模型人脸边界确定(基于几何特征的检测)形态学滤波:开运算和闭运算(腐蚀、膨胀)肤色检测24bitsRGB彩色图像图1人脸检测算法流程图基于上述基本算法,本系统最终需要搭建CMOS摄像头、FPGA核心图像处理单元、LCM显示人脸区域这样一个完整的人脸图像处理以及检测定位系统。系统整体架构如图2所示。CMOS图像传感器CMOS数据捕获I2C配置单元数据格式转换LCM控制器SDRAM控制器LCM显示SDRAMFPGADATAFVALLVALPCLKMCLKSDATSCLKDATAADDRCTRLDATAHSVSCLK人脸检测图2人脸检测系统框架图在图2中,最左边是CMOS摄像头设备和它的控制电路,它输出主要的数字视频数据给CMOSSensorDataCapture模块,同时,它从该模块获得MCLK信号。另外,摄像头电路需要通过I2C进行配置,他们之间传递的信号主要有SDAT和SCLK。中间的FPGA模块主要完成输入设备和输出设备的配置、控制等功能,并完成从输入到输出的数据传输,是设计的核心单元。其中,主要包含CMOS摄像头电路的数据获取、图像类型转换、LCM显示设备控制器、SDRAM控制器、I2C配置控制器等模块。这里的SDRAM控制器主要是用作帧缓存和图像获取(拍照功能);LCM控制器主要是输出HS(行同步信号)、VS(场同步信号)、显示数据以及显示时钟给LCM;图像格式转换模块主要是实现数据格式到RGB格式的转换,方便后续显示及处理。本设计采用Altera公司的FPGA(EP2C35F672C6)作为核心处理芯片,全部模块功能纯硬件实现,Verilog语言编程,系统具有很好的便携性、实时性、可扩展性和移植性。2图像预处理算法及实现在本设计中,我们使用图像预处理技术来消除环境因素对人脸检测的影响,主要有快速中值滤波、形态学滤波和边缘检测。2.1快速中值滤波2.1.1快速中值滤波算法分析中值滤波是由Turkey发明的,基于统计排序理论的一种能有效抑制噪声的非线性信号处理技术[4]。其基本原理是把数字图像或