论文部分内容阅读
人脸自动识别技术是模式识别、图像处理等学科的一个最热门研究课题之一。随着社会的发展,各方面对快速有效的自动身份验证的要求日益迫切,而人脸识别技术作为各种生物识别技术中最重要的方法之一,已经越来越多的受到重视。对于具有实时,快捷,低误识率的高性能算法以及对算法硬件加速的研究也逐渐展开。本文详细分析了智能人脸识别算法原理,发展概况和前景,包括人脸检测算法,人眼定位算法,预处理算法,PCA和ICA算法,详细分析了项目情况,系统划分,软硬件平台的资源和使用。并在ISE软件平台上,用硬件描述语言(verilog HDL)对算法部分严格按照FPGA代码风格进行了RTL硬件建模,并对C++算法进行了优化处理,通过仿真与软件算法结果进行比对,评估误差,最后在VirtexII Pro FPGA上进行了综合实现。主要研究内容如下:首先,对硬件平台xilinx的VirtexII Pro FPGA上的系统资源进行了描述和研究,对存储器sdram,RS-232串口,JTAG进行了研究和调试,对Coreconnect的OPB总线仲裁机理进行了两种算法的比较,RTL设计,仿真和综合。利用ISE和VC++软件平台,对verilog和C++算法进行同步比较测试,使每步算法对应正确的结果。对软硬件平台的合理使用使得在项目中能尽可能多的充分利用硬件资源,制板时正确选型,以及加快设计和调试进度。其次,对人脸识别算法流程中的人脸检测,人眼定位,预处理,识别算法分别进行了比较研究,选取其中各自性能最好的一种算法对其原理进行了分析讨论。人脸检测采用adaboost算法,因其速度和精度的综合性能表现优异。人眼定位采用小块合并算法,因为它具有快速,准确,弱时实的特点。预处理算法采用直方图均衡加平滑的算法,简单,高效。识别算法采用PCA加ICA算法,它能最大的弱化姿态和光照对人脸识别的影响。最后,使用Verilog HDL硬件描述语言进行算法的RTL建模,在C++算法的基础上,保证原来效果的前提下,根据FPGA硬件特点对算法进行了优化。视频输入输出是人脸识别的前提,它提供FPGA上算法需要处理的数据,预处理算法在C++算法的基础上进行了优化,最大的减少了运算量,提高了运算速度,16位计算器模块使得在算法实现时可以根据系统要求,在FPGA的ip核和自己设计的模块之间选择性能更好的一个来调用,FIFO的设计提供同步和异步时钟域的数据缓存。设计在ISE和VC++软件平台同时进行,随时对verilog和C++数据进行监测和比对。全部设计模块通过仿真,达到预定的性能要求,并在FPGA上综合实现。