找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于FPGA的人脸检测系统设计

[复制链接]
admin 发表于 2013-3-23 01:50:39 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘  要: 选取一种由粗及精的方法,综合采用基于彩色图像的肤色检测方法和基于几何特征的灰度检测方法,在传统肤色检测算法的基础上,加入图像预处理、色彩平衡、二值化、形态学滤波、中值滤波、边缘检测等技术进行人脸检测。搭建了由CMOS摄像头到FPGA核心图像处理单元,再到LCM显示这样一个完整的人脸图像处理及检测系统。
关键词: 人脸识别;人脸检测;FPGA;肤色检测;图像预处理技术
       近年来,以人脸、虹膜、视网膜、指纹、声音、基因等生物特征作为识别手段的生物特征识别技术渐渐发挥出了很好的作用。这类识别属于模式识别范畴,相比传统的识别方式更安全、稳定和方便[1]。其中,人脸识别因具有友好、方便、直接等优点而成为一个热门研究领域。
     鉴于FPGA的并行高速处理特点以及设计、扩展的灵活性,本论文采用FPGA来实现人脸检测系统的设计。
1 人脸检测系统方案设计
     目前,根据是否使用人脸区域的色彩特征,将人脸检测算法分为两大类:针对彩色图像的基于肤色检测的算法和针对灰度图像的基于灰度信息的算法。
     本文综合采用基于彩色图像的肤色检测方法和基于几何特征的灰度检测方法对人脸区域进行实时跟踪检测。
1.1 基于FPGA的人脸检测方案设计
     本设计选取的是一种由粗及精的方法,综合采用基于彩色图像的肤色检测方法和基于几何特征的灰度检测方法。首先基于肤色检测在一个大的摄像头范围内捕捉人脸区域,在一个最佳范围内定位人脸候选区,实现人脸的粗定位,这一模块大大减小了后续部分的搜索范围,降低了系统的运算量。在此基础上,在肤色检测所圈定的区域中,利用先验人脸的几何特征,实现人脸检测的目的。
     本设计的算法部分在传统肤色检测算法的基础上加入图像预处理模块、色彩平衡模块、自适应阈值二值化模块、形态学滤波模块等实现人脸的粗定位;在此基础上,对定位出来的人脸区域进行中值滤波、边缘检测等处理,如图1所示。
     基于上述基本算法,本系统最终需要搭建CMOS摄像头、FPGA核心图像处理单元、LCM显示人脸区域这样一个完整的人脸图像处理以及检测定位系统。系统整体架构如图2所示。
     图2中左部分是CMOS摄像头设备及其控制电路,它输出主要的数字视频数据给CMOS Sensor Data Capture模块,同时从该模块获得MCLK信号。另外,摄像头电路需要通过I2C进行配置,它们之间传递的信号主要有SDAT和SCLK。
    20121107051616787303081.gif
       中间的FPGA模块主要完成输入设备和输出设备的配置、控制等功能,并完成从输入到输出的数据传输,是设计的核心单元。其中,主要包含CMOS摄像头电路的数据获取、图像类型转换、LCM显示设备控制器、SDRAM控制器、I2C配置控制器等模块。SDRAM控制器主要是用作帧缓存和图像获取(拍照功能);LCM控制器主要是输出HS(行同步信号)、VS(场同步信号)、显示数据以及显示时钟给LCM;图像格式转换模块主要是实现数据格式到RGB格式的转换,以方便后续显示及处理。
     本设计采用Altera公司的FPGA(EP2C35F672C6)作为核心处理芯片,全部模块功能通过纯硬件实现。采用Verilog语言编程,系统具有很好的便携性、实时性、可扩展性和移植性。
2 图像预处理算法及实现
     在本设计中,使用图像预处理技术来消除环境因素对人脸检测的影响,主要有快速中值滤波、形态学滤波和边缘检测。
2.1 快速中值滤波
     中值滤波是一种基于统计排序理论的、能有效抑制噪声的非线性信号处理技术[2]。其基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点。
     在本设计中,选用快速中值滤波[3]来进行图像预处理,在快速实现滤波输出的同时节省了比较逻辑单元的个数,减少了资源占用率。
2.2 形态学滤波
     形态学滤波器被广泛地应用于图像处理和目标识别领域。它的基本思想是[4]利用具有一定形态的结构元素作为“探针”,在图像中不断移动来度量图像的结构信息,考察图像各部分之间的相互关系,进而提取图像的结构特征。
     本文所述形态学滤波的目的是检测大小为256×256像素的8位灰度图像中的弱小目标。在本文中,主要实现了腐蚀、膨胀、开运算和闭运算,并在此基础上通过级联开运算和闭运算对图像进行预处理。
     经过形态学滤波后,二值化后的图像变得“黑白分明”,更符合实际的二值结果,去除了噪声点或背景区域的干扰。
2.3 边缘检测
     图像边缘检测可以简化图像处理,广泛应用于图像分割、图像识别、纹理分析等领域。在数学上可以利用其亮度变化曲线的一阶、二阶导数来描述两种不同的边缘[5]。
     本文采用Sobel边缘检测算子做硬件实现,并且用于实时人脸检测系统。Sobel边缘检测算子是综合图像每一个像素点的上下左右亮度加权和,接近模板中心的权值较大[6]。
     从图3和图4可知,Sobel算子x方向和y方向的滤波分别突出了图像的横向和纵向的边缘,灰度连续的部分削弱。经过Sobel边缘检测之后,lena图像的边缘信息被提取了出来,检测效果比较理想。
    20121107051616849803082.gif
   3 人脸检测系统设计与实现
3.1 图像采集和显示系统设计

     本系统中,通过摄像头采集图像做人脸检测。同时,视频检测的结果需要通过显示系统显示结果,因此需要视频采集电路和显示电路[7]。
3.2 二值化及系统实现
3.2.1 人脸矩形位置确定

     本设计中,利用了人脸的几何形状特征来精确地定位人脸区域。这里的人脸区域是指包含了人脸主要特征部位(如眼睛、鼻子、嘴巴)的一个矩形区域。
     图5给出了人脸几何形状的模型图。根据人们的先验知识,可以假设人脸长度约是宽度的1倍到1.5倍,即:iFaceHeight<1.5iFaceWidth。
    20121107051616912303083.gif
       以上图作为模型,并且根据人们的先验经验,可以找出二值化后人脸区域的左右边缘、上下边缘以及人脸中心位置点,这样就可以在人脸面部区域画一个矩形框,进而确定人脸的上、下、左、右边缘的位置。
3.2.2 系统测试结果分析
     图6和图7是一个摄像头采集到图像,经过肤色检测二值化后加入形态学滤波,去除周围环境类肤色区域影响的结果图,人脸的肤色区域检测效果较好。
    20121107051616959173084.gif
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-24 03:07 , Processed in 0.059541 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表