论文部分内容阅读
人脸检测是基于图像处理的人机交互技术的重要研究内容之一,它是人脸识别的第一步,指在输入图像中确定所有存在的人脸的位置、大小、姿势的过程。人脸检测作为人脸识别系统的重要环节,开始作为独立的研究内容发展起来,日益成为国内外学者的研究热点。本文设计了一个基于FPGA的人脸检测系统,采用Altera公司的DE2开发板作为硬件平台,配合以VGA (Video Graphic Array,显示绘图阵列)显示器对人脸图像进行显示。当图像中有人脸存在时,本系统将定位人脸,在DE2板开发板上由LCD显示检测图像为人脸图像,由数码管显示人脸的位置坐标和检测时间。本文从PC平台的软件实现入手,根据经典Adaboost算法的原理,分别实现了Adaboost算法的训练过程和检测过程。采用Haar-like特征表示人脸特征,为了提高检测速度,采用积分图计算特征值。鉴于Adaboost算法的训练过程时间过长,研究中对特征数量进行了优化。通过Adaboost学习算法利用MIT数据库中的800幅人脸图像和800幅非人脸图像进行训练,获得一个由30个弱分类器组成的强分类器。分别用MIT数据库中的500幅人脸图像和500幅非人脸图像对分类器效果进行测试,测试结果表明对人脸图像的检测率为96.4%,检测时间为0.038秒/幅,对非人脸图像的检测率为76.6%,检测时间为0.037秒/幅。接着,本文将软件实现移植到DE2开发板的基于Nios Ⅱ的嵌入式平台。在硬件方面,通过QuartusⅡ软件,利用SOPC Builder搭建硬件系统。为解决SDRAM控制器和VGA控制器之间的时序问题,利用SRAM作为缓存,并且用Verilog HDL语言编写det2_time2模块来统计检测时间。软件方面,在Nios Ⅱ IDE环境下采用C语言对特征提取和检测过程进行编程并调试。对大小为200×200像素的图像进行检测,最短检测时间为0.06s。本文采用自主开发的训练和检测程序,实验结果表明整个算法具有较强的可移植性,并且能较为准确地检测人脸。