APP下载

一种基于FPGA的实时人脸检测系统设计

2014-04-16肖柏清XIAOBoqing宋学瑞SONGXuerui

价值工程 2014年13期
关键词:肤色色度像素点

肖柏清 XIAO Bo-qing;宋学瑞 SONG Xue-rui

(中南大学,长沙 410083)

(Central South University,Changsha 410083,China)

一种基于FPGA的实时人脸检测系统设计

肖柏清 XIAO Bo-qing;宋学瑞 SONG Xue-rui

(中南大学,长沙 410083)

(Central South University,Changsha 410083,China)

针对Rein Lien Hsu提出的加入亮度补偿后的椭圆肤色模型在亮度较高和较低的区域容易误判的问题,提出了根据亮度值来分段选择椭圆长短半轴参数值的改进方法,MATLAB实验仿真表明改进后的算法比原始椭圆模型算法具有更高的适用性和准确性,搭建的FPGA系统能够满足人脸的实时检测需求。

人脸;肤色;YCbCr;椭圆模型;FPGA

0 引言

在实际的应用系统中,为了实现快速的人脸定位识别跟踪等处理,需要在一副含有人脸的视频图像中尽可能地准确、快速地找到人脸所在区域,交给后续模块进行处理。为了提高人脸检测的速度,人们常常利用肤色的颜色统计特征来对视频图像进行分割,将可能含有人脸的区域快速地从背景中分离出来,再利用人脸的几何分布特征等信息来准确地找到人脸所在位置[1-3]。

随着技术的进步,FPGA在价格不断下降的同时,性能得到显著地提高,用FPGA做实时图像处理,由于可编程逻辑的大容量、灵活性,强大的并行处理能力,速度可以比一般的数字信号处理芯片快,可以实现SOPC(片上可编程系统),越来越多的研究人员开始致力于利用FPGA来做视频图像开发。

1 人脸分割算法介绍

1.1 YCbCr颜色空间

为了研究的方便,常采用亮度和色度分开的YCbCr颜色空间来建立肤色的色彩模型。图像的YCbCr值可以通过对RGB做如下运算得到,即:

其中Y表示像素的亮度信息,Cb、Cr值分别表示像素的蓝色色差值和红色色差值[3]。

1.2 肤色的YCbCr色彩模型

在YCbCr空间中,人们通过研究发现,肤色分布具有其内在的统计规律,并据此提出了三种重要的肤色分布模型。

1.2.1 简单阈值模型

研究发现,在YCbCr色彩空间中,肤色像素点的色度分量值分布相对比较集中,大部分取值满足:108<Cb<123,135<Cr<156[4]。

1.2.2 高斯模型

研究还发现,肤色的色度值Cb、Cr近似满足二维高斯分布,可以用肤色似然度表征它属于肤色点的概率,计算

P值越大说明像素点属于肤色区域的可能性就越大,其值越小,表示属于肤色区域的可能性就越小。

1.2.3 椭圆模型

Rein Lien Hsu通过对大量样本的统计分析得出,在YCb'Cr'空间中,加入亮度补偿后肤色色度信息值Cb'和Cr'经平移和旋转变换后((2)式)大都落在(1)式表达式所在的椭圆内[5]。

式中Cb'和Cr'值是指加入亮度补偿后原像素点的色度分量Cb和Cr的修正值,其中ecx=1.60,ecy=2.41,a=25.39,b=14.03,θ=2.53(弧度)。

前两种分割算法都认为色度值Cb和Cr相对于亮度值是独立的,没有考虑亮度变化对色度值的影响。Rein Lien Hsu提出的基于YCb'Cr'空间的椭圆模型综合了亮度对色度的影响,更能反映实际情况,分割效果要好一些,实现起来也比较简单方便。

1.3 椭圆肤色模型的改进

椭圆模型虽然降低了亮度分布对色度值的影响,但本文通过实验发现,该算法仍然具有一定的局限性。它会把亮度较低(Y<80)的非肤色区域误判为肤色,而对亮度较高(Y>230)的肤色区域会误判为非肤色区域。分析其原因,是转换后肤色在YCb'Cr'空间呈现的是不规则的椭圆分布,在亮度较低的区域分布呈倒圆锥体,而在亮度较高的区域成长短半轴都扩大的椭圆柱体。为了解决这个问题,本文提出对椭圆模型中的长短半轴参数a、b的取值做如下改进:①对于亮度Y低于80的像素点进行判断时,将肤色聚类时的椭圆的长短轴同时缩小为原来的;②对于亮度在80~230之间的像素点取值不变;③对于亮度大于230的像素点进行判断时,将肤色聚类时的椭圆的长短轴同时扩大为原来的1.1倍。

1.4 Matlab实验仿真与结果分析

图1为输入的原始彩色人脸图像;图2、图3分别为Rein Lien Hsu提出的基于YCb'Cr'空间的椭圆模型和本文提出的改进后的椭圆模型进行分割得到的图像。对比两幅二值化图像,从中可以清楚地看出,在额头和两侧颧骨及耳尖等部分亮度相对较高的区域固定参数椭圆模型将肤色区域误判为非肤色区域(表现为黑色),但经本文提出的改进后,误判区域较原始椭圆模型明显减少。

图1

图2

图3

2 人脸检测系统的FPGA设计

2.1 系统整体设计

本系统主要实现对模拟标清视频图像进行快速人脸检测,将检测到的人脸区域进行马赛克处理后通过显示器同步显示。

系统的整体设计框图如图4所示。

ADV7181用于A/D转换和串并转换,将模拟视频图像变为符合ITU-R BT.656标准的8位数字信号送入FPGA进行处理。SDRAM用于存储采集到的帧图像数据,ADV7123用于将前面FPGA处理后的数字图像信息转换为模拟电信号后送至显示器进行显示。

图4 系统整体设计框图

2.2 FPGA内部模块设计

整个系统设计的核心在于FPGA内部算法模块的设计,它需要完成包括信号预处理、存储器SDRAM缓冲控制、颜色空间转换、二值化分割、人脸筛选定位、马赛克处理和VGA控制等功能,整个处理的流程模块图如图5所示。

图5 FPGA内部流程模块图

3 实验结果及分析

连接好FPGA实验开发板,将以上模块下载到FPGA芯片中,如图6所示。当开发板电源开关打开时,由摄像机采集到的人脸图像信息被送入FPGA芯片中进行上述各模块处理后输出至外部PC显示器进行动态显示,可以清楚地看出屏幕中人脸区域被准确地打上了马赛克。

图6 FPGA实验结果

[1]陈雅彬,张立毅,黄仕明.基于肤色分割和椭圆匹配的人脸检测方法[J].山西太原,2007.

[2]董立新.基于先验知识的人捡检测算法研究[D].大连理工大学,2010.

[3]田博.彩色背景下的人脸检测究[J].成都理工大学学报,2008,23(1):23-25.

[4]Rein-Lien Hsu,Abdel-Mottaleb M,Jain A K.Face detection in color images[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2002.

[5]孙莹涛,李玉山.人脸检测系统的SOPC设计[J].西安电子科技大学电路CAD研究所,2006.

The Design of a Real-time Face Detection System Based on FPGA

In order to solve the problem of miscalculation in the high and low brightness areas generated by the elliptical skin model which is proposed by Rein Lien Hsu,this paper proposed a improved method by choosing the value of long and short elliptical half shaft according to the brightness value.MATLAB Simulation experiments show that this improved algorithm has higher applicability and accuracy than the original ellipse model algorithm,also the designed system based on FPGA could meet the need of real-time face detection.

face;skin colour;YCbCr;ellipse mode;FPGA

肖柏清(1986-),男,湖南岳阳人,硕士研究生,研究方向为电子设计自动化;宋学瑞(1960-),男,湖南长沙人,教授,研究方向为网络通信。

TP311.1

A

1006-4311(2014)13-0201-02

猜你喜欢

肤色色度像素点
Conversation in a house
为什么人有不同的肤色?
基于5×5邻域像素点相关性的划痕修复算法
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
基于改进色度模型的非接触式心率检测与估计
景德镇早期青白瓷的器型与色度
如何提高苹果的着色度
肤色检测和Hu矩在安全帽识别中的应用
在线色度分析仪的设计应用