人脸识别技术继指纹识别、虹膜识别以及声音识别等生物识别技术之后,以其独特的方便、经济及准确性而越来越受到世人的瞩目。作为人脸识别系统的重要环节—人脸检测,随着研究的深入和应用的扩大,在视频会议、图像检索、出入口控制以及智能人机交互等领域有着重要的应用前景,发展速度异常迅猛。 FPGA的制造技术不断发展,它的功能、应用和可靠性逐渐增加,在各个行业也显现出自身的优势。FPGA允许用户根据自己的需要来建立自己的模块,为用户的升级和改进留下广阔的空间。并且速度更高,密度也更大,其设计方法的灵活性降低了整个系统的开发成本,FPGA 设计成为电子自动化设计行业不可缺少的方法。 本文从人脸检测算法入手,总结基于FPGA上的嵌入式系统设计方法,使用IBM的Coreconnect挂接自定义模块技术。经过训练分类器、定点化、以及硬件加速等方法后,能够使人脸检测系统在基于Xilinx的Virtex II Pro开发板上平台上,达到实时的检测效果。本文工作和成果可以具体描述如下: 1. 算法分析:对于人脸检测算法,首先确保的是检测率的准确性程度。本文所采用的是基于Paul Viola和Michael J.Jones提出的一种基于Adaboost算法的人脸检测方法。算法中较多的是积分图的特征值计算,这便于进一步的硬件设计。同时对检测算法进行耗时分析确定运行速度的瓶颈。 2. 软硬件功能划分:这一步考虑市场可以提供的资源状况,又要考虑系统成本、开发时间等诸多因素。Xilinx公司提供的Virtex II Pro开发板,在上面有可以供利用的Power PC处理器、可扩展的存储器、I/O接口、总线及数据通道等,通过分析可以对算法进行细致的划分,实现需要加速的模块。 3. 定点化:在Adaboost算法中,需要进行大量的浮点计算。这里采用的方法是直接对数据位进行操作它提取指数和尾数,然后对尾数执行移位操作。 4. 改进检测用的级联分类器的训练,提出可以迅速提高分类能力、特征数量大大减小的一种训练方法。 5. 最后对系统的整体进行了验证。实验表明,在视频输入输出接入的同时,人脸检测能够达到17fps的检测速度,并且获得了很好的检测率以及较低的误检率。