论文部分内容阅读
人脸检测技术经过30多年的发展,在算法上已经取得了许多成果。伴随着算法的进步和人脸检测应用范围的扩大,面向各种应用的人脸检测系统架构也随之出现。然而纵观这些系统架构,它们几乎都是一体化、专用化、核心处理单元高性能和高价格化,这无疑限制了人脸检测技术和相应产品的发展。模块化作为一种有效的系统设计思想,已经成功的让PC机进入了几乎全球的每一个家庭,并正在推动着机器人设计领域进入一场新的革命。人脸检测作为机器人视觉系统的一个重要组成部分,其模块化的设计不仅有助于机器人模块化设计的发展,而且能够推动人脸检测系统架构摆脱上述缺点,并获得新的发展。鉴于以上原因,本文从模块化设计角度出发,设计了一个具备模块化特点的人脸检测系统,并将整个系统分为两个模块:第一个模块——模块化人脸检测辅助装置和第二个模块——目标系统,并围绕这两个模块做了以下工作:(1)选择USB总线作为模块化设计的标准接口,让所设计的两个模块可以通过USB接口组合实现人脸检测。并选择USB接口芯片Cy7c68013A实现USB通信协议。(2)根据整个系统分为两个模块,并且第一个模块的核心处理单元为FPGA,而第二个模块的核心处理单元为通用CPU,提出采用分层的、由粗到精、由局部到整体的多种算法融合的人脸检测方法。先在FPGA中实现容易并行操作和计算公式相对简单的第一层人脸检测算法——基于肤色和人眼灰度变化的人脸检测,用来快速确定输入图像中是否有人脸和人脸的位置。然后基于第一层算法的检测结果,在通用CPU中实现计算公式相对复杂,检测精确度更好的第二层人脸检测算法——基于主成分分析(PCA)和支持向量机(SVM)的人脸检测,以进一步确定第一层算法的检测结果。(3)依据USB协议对功能设备和主设备的划分,结合FPGA在数字接口设计和并行处理能力上的优势,将以FPGA为核心处理单元的第一个模块视作USB功能设备,在FPGA上实现CMOS数字图像采集、SDRAM图像帧缓存、与USB接口芯片的通信和(2)中所述的第一层人脸检测,从而使得第一个模块成为一个具备USB即插即用特点的人脸检测辅助装置。此外,考虑开发周期,在通用PC上实现了第二模块,并以它作为USB主设备,完成了Cy7c68013A的通用驱动程序的配置和应用程序的开发。其中应用程序主要是读取第一个模块通过USB接口芯片上传的图像数据、人脸确认信号和人脸坐标信号,并根据人脸确认信号判断是否进一步执行(2)中所述第二层人脸检测。(4)测试了整个人脸检测系统。结果表明,该系统能够实时的检测到人脸。因此该系统是一个具备了模块化通用性、灵活性和鲁棒性的人脸检测系统。