法律状态公告日
法律状态信息
法律状态
2018-10-30
授权
授权
2015-05-06
实质审查的生效 IPC(主分类):G06K9/00 申请日:20150114
实质审查的生效
2015-04-08
公开
公开
技术领域
本发明属于模式识别领域中关于人脸检测的技术,尤其涉及一种利用计算机技术、 数字图像处理技术、模式识别技术等实现人脸检测的方法,具体是一种基于肤色和 Adaboost算法的人脸检测方法。
背景技术
1、人脸识别技术
人脸识别技术特指利用分析比较人脸视觉特征信息进行身份鉴别的计算机技术。人 脸检测是自动人脸识别系统中的一个关键环节,早期的人脸识别研究主要针对具有较强 约束条件的人脸图像(如无背景的图像),往往假设人脸位置一直不变或者容易获得, 因此人脸检测问题并未受到重视。随着电子商务等应用的发展,人脸识别成为最有潜力 的生物身份验证手段,这种应用背景要求自动人脸识别系统能够对一般图像具有一定的 识别能力,由此所面临的一系列问题使得人脸检测开始作为一个独立的课题受到研究者 的重视。今天,人脸检测的应用背景已经远远超出了人脸识别系统的范畴,在基于内容 的检索、数字视频处理、视频检测等方面有着重要的应用价值。人脸检测的方法主要分 为三类:基于几何特征的方法,基于肤色特征的方法和基于统计特征的方法。基于几何 特征的方法主要利用对人脸的先验知识对人脸进行检测,这种方法的检测率较低。基于 肤色特征的方法本身检测性能不佳,误检率较大,一般与其他方法结合使用。基于统计 特征的方法利用统计特征,不依赖于人的先验知识,采用实例学习,统计意义上更为可 靠,但需要非常多的训练特征,训练时间长。基于统计特征的方法是目前最常用的方法, 其中最具代表性的得是基于Boosting算法的人脸检测方法。
2、Adaboost人脸检测算法
Adaboost算法是一种高效的学习算法,通过对大量样本集的学习,选择出其最有代 表性的特征,并将其转化为相应的分类器。利用Adaboost算法训练强分类器实际上是 一个利用迭代方式进行训练的过程,即训练得到一个弱分类器后,调整训练样本的权重 后继续训练,如此迭代下去,得到一组不同分类器效果的弱分类器,最后将其线性组合 成强分类器。然后利用该强分类器进行图像中人脸检测的应用。该算法进行人脸检测的 总体框架流程如下:
21)给定包含n个训练样本的训练样本集:{(x1,y1),(x2,y2),...,(xn,yn)},xi表示 图像,yi表示是否为人脸样本,其中,yi=0,1分别代表非人脸样本和人脸样本。
22)初始化权值:对于yi=0,1分别初始化权值m和l分别代表非人 脸个数和人脸个数。
23)对于T轮训练,For t=1,2,…,T:
◆初始化权值:
◆根据最小权重错误εt选择最优弱分类器函数 h表示弱分类器,并且有f代表特征,p代表正负极性,θ代表阈值;
◆确定第t轮的弱分类器为ht(x)=h(x,ft,pt,θt);
◆更新权重:若样本xi分类正确,用分类标志ei=0 表示;否则,ei=1,表示分类错误。
24)得到最终的强分类器:
由于基于肤色特征的人脸检测的方法本身检测性能不佳,误检率较大,一般与其 他方法结合使用。但至今仍未见有与Adaboost算法相结合的人脸检测算法,充分利用 二者的结合应用,这也成为本专业领域的研究方向。
发明内容
发明目的:为了克服现有技术中存在的不足,本发明提供一种基于肤色和Adaboost 算法的人脸检测方法,兼顾检测率和检测效率,利用图片颜色空间的非线性转换确保肤 色区域被精确提取出来,减少Adaboost级联分类器搜索的图片范围,提高检测效率, 并减少误检率;利用重新训练的级数减少的Adaboost级联分类器对提取的肤色区域进 行检测,减少训练时间。
技术方案:为实现上述目的,本发明的技术方案如下:
一种基于肤色和Adaboost算法的人脸检测方法,包括如下步骤:
1)对输入的视频或图像进行预处理,包括直方图均衡化和滤波去噪;
2)将彩色图像的RGB空间经非线性分段转换为YCb’Cr’空间,对所述彩色图像的 每一个像素进行分析计算,若像素处于YCb’Cr’空间的肤色聚类区域范围内,则判断为 肤色像素点,否则判断为非肤色像素点;
3)将所述彩色图像进行图像二值化处理,再进行形态学处理,实现肤色区域分割, 得到分割好的若干肤色区域;
4)利用Adaboost算法训练级联分类器;
5)用训练好的级联分类器对所述若干肤色区域进行人脸检测,并输出结果。
进一步的,在本发明中,在所述步骤1)中,采用中值滤波的方法对图像进行滤波 去噪。中值滤波是一种非线性滤波方法,在一定条件下可以克服线型滤波器带来的处理 图像细节模糊的问题。直方图均衡化是一种利用灰度变换自动调节图像对比度质量的方 法,基本思想是通过灰度级的概率密度函数求出灰度变换函数,它是一种以累计分布函 数变换法为基础的直方图修正法。
进一步的,在本发明中,所述步骤2)中,将彩色图像的RGB空间经非线性分段 变换为YCb’Cr’空间的具体方法包括以下步骤:
21)将RGB空间转换为YCbCr空间,表达式为:
这是一种线性变换,肤色区域在YCbCr中的聚类呈两头尖的纺锤形状,在Y值处 于较大和较小的部分,肤色区域的聚类随之减少,因此简单的将YCbCr空间投影到CbCr 平面来寻找肤色区域是不可行的,必须进行非线性分段色彩空间转换。
22)将YCbCr空间转换为YCb’Cr’空间,所述YCb’Cr’空间的肤色聚类区域的表达 式为:
式中x和y的表达式为
其中,cx=109.38,cy=152.02,θ=2.53°,ecx=1.6,ecy=2.41,a=25.39,b=14.03。
在YCb’Cr’空间中,Cb’和Cr’可以认为和亮度无关,使用图像颜色空间的非线性分 段色彩转换方法,以克服线性转换带来的不精确的问题。
进一步的,在本发明中,所述步骤4)中,在Adaboost算法中,设定级联分类器的 总误检率Ftarget,取值范围为0.05<Ftarget≤1。标准的Adaboost算法中的级联分类器的 总误检率Ftarget一般为0.05,本发明中将级联分类器的总误检率Ftarget设置比标准的 Adaboost算法中的级联分类器的总误检率Ftarget大,可以减少训练级联分类器的级数, 减少训练的时间,提高检测速度。
进一步的,在本发明中,所述步骤3)中,将所述彩色图像进行图像二值化处理的 方法是将肤色像素点的RGB值均设为255,非肤色像素点的RGB均设为0,得到二值 化图像。也就是将整个图像呈现出明显的黑白效果,即将256个亮度等级的灰度图像通 过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像,有利于在对 图像做进一步处理时,图像的集合性质只与像素值为0或255的点的位置有关,不再涉 及像素的多级值,使处理变得简单,而且数据的处理和压缩量小。在数字图像处理中, 二值化图像占有非常重要的地位。
进一步的,在本发明中,所述步骤3)中,将所述经图像二值化处理后彩色图像再 进行形态学处理的方法包括膨胀、腐蚀、开运算与闭运算操作。利用形态学处理对提取 出的肤色像素进行分割分块处理,去除孤立无意义的像素,平滑较大的肤色区域。
有益效果:本发明提供的基于肤色和Adaboost算法的人脸检测方法,利用颜色空 间的非线性分段转换,弥补传统的线性转换带来的不精确性,确保肤色像素最大化的被 提取出来,提高肤色提取的精确度;同时对提取出的肤色像素进行形态学处理,去除孤 立的无意义的元素,平滑大的肤色区域;重新训练Adaboost级联分类器,增大级联分 类器的最大可接受误检率,减少级联的级数,减少训练的时间和检测时间,提高检测速 度;利用训练好的级联分类器对分割出的肤色区域进行人脸检测,输出结果,既保证检 测率又保证效率。
附图说明
图1为本发明的流程图;
图2为本发明Adaboost算法训练的级联分类器的流程图;
图3为肤色区域(阴影部分)在YCbCr空间的分布图;
图4为肤色像素在CbCr平面的投影图;
图5为肤色区域(阴影部分)在YCb’Cr’空间的分布图;
图6为肤色像素在Cb‘Cr’平面的投影图。
具体实施方式
下面结合实施例和附图对本发明作更进一步的说明。
如附图1所示,一种基于肤色和Adaboost算法的人脸检测方法,包括如下步骤:
1)检测过程开始后,对输入的检测对象即视频或图像进行图像预处理,包括直方 图均衡化和滤波去噪;
2)将彩色图像的RGB空间经非线性分段转换为YCb’Cr’空间,即图像颜色空间转 换,并对彩色图像的每一个像素进行分析计算,处于YCb’Cr’空间的肤色聚类区域范围 内,则判为肤色像素点,否则为非肤色像素点;
3)将彩色图像进行图像二值化处理,再进行形态学处理包括膨胀、腐蚀、开运算 与闭运算操作等方法,实现肤色区域分割,得到分割好的若干肤色区域;
4)利用Adaboost算法训练级联分类器;
5)用训练好的级联分类器对处于彩色图像的若干肤色区域进行人脸检测,并输出 检测出人脸的结果,检测过程结束。
步骤1)中,采用中值滤波的方法对图像进行滤波去噪。
步骤2)中,将彩色图像的RGB空间经非线性分段变换为YCb’Cr’空间的具体方法 包括以下步骤:
21)将RGB空间转换为YCbCr空间,表达式为:
22)将YCbCr空间转换为YCb’Cr’空间,YCb’Cr’空间的肤色聚类区域为一个椭圆 区域,表达式为:
式中x和y的表达式为
由YCb’Cr’空间中肤色聚类区域计算可得:其中,cx=109.38,cy=152.02,θ=2.53°, ecx=1.6,ecy=2.41,a=25.39,b=14.03。
对视频或图像的每一个像素进行分析计算后,如果它处于YCb’Cr’空间的肤色聚类 区域的椭圆范围内,则判为肤色像素点,否则为非肤色像素点。
步骤3)中,将彩色图像进行图像二值化处理的方法是将肤色像素点的RGB值均设 为255,非肤色像素点的RGB均设为0,得到二值化图像。
步骤4)中,如图2所示,采用Adaboost算法流程如下:
41)设定每一级级联分类器的最大可接受误检率f和最小可接受检测率d;设定级 联分类器的总误检率Ftarget,并且总误检率Ftarget的范围为0.05<Ftarget≤1,设定P为正 样本集合,N为负样本集合;对第i级级联分类器而言,前i级的级联分类器的误检率 用Fi表示,前i级的级联分类器的检测率用Di表示,并设定F0=1.0,D0=1.0;第i级的 级联分类器的特征数为ni;
42)设定初始级数i=0;
43)判断Fi>Ftarget是否成立,如果成立,进行44),否则结束流程;
44)令i=i+1且ni=0,将Fi-1赋值给Fi,进行45);
45)判断Fi>f×Fi-1是否成立,若成立,则进行46),否则跳至47);
46)令ni=ni+1;然后对样本集合P、N用Adaboost算法训练一个含有ni个特征的 级联分类器;在一个人脸检测库图像集上计算出当前级联强分类器的Fi和Di;降低当 前级联强分类器的阈值直到当前级联强分类器的检测率Di≥d×Di-1;之后回到45)循 环;
47)清空负样本集合N,进行48);
48)判断Fi>Ftarget是否成立,若成立,则利用当前级联分类器寻找无法正确识别的 负样本,并将该负样本放到负样本集合N中,之后回到43)循环;若Fi>Ftarget不成立, 则结束流程。
如附图1所示,对输入图像,首先进行图像预处理,包括滤波去噪、直方图均衡化, 减少光照强度对图像质量的影响;然后,将图像颜色空间经非线性变换到YCb’Cr’颜色 空间;再将确定为肤色的像素进行二值化处理;由于二值化图像中存在许多不连续的肤 色像素,不利于肤色区域的分割,对二值化图像进行形态学处理,平滑肤色区域;最后 利用重新训练的级联分类器对分割出的肤色区域进行人脸检测。级联分类器的训练算法 可概括为:人脸集为正样本集合,非人脸为负样本集合,二者共同组成了样本积分图, 并分别被赋予一个矩形特征值,形成了一个弱分类器集,通过增大级联分类器的总误检 率Ftarget,可以减少级联分类器的级数,减少训练时间,提高检测速度,以形成强分类 器集,并由此组成级联分类器。
实施例1
如附图1所示,一种基于肤色和Adaboost算法的人脸检测方法,包括如下步骤:
1)对输入的检测对象即视频或图像进行预处理,包括直方图均衡化和滤波去噪等;
直方图均衡化是一种利用灰度变换自动调节图像对比度质量的方法,基本思想是通 过灰度级的概率密度函数求出灰度变换函数,它是一种以累计分布函数变换法为基础的 直方图修正法。变换函数T(r)与原图像概率密度函数pr(r)之间的关系为:
以上是以连续随机变量为基础的,应用于数字图像处理中的离散形式为:
其中:L表示灰度级数,pr(rj)表示取第j级灰度值的概率,ni为在图像中出现第i 级灰度的次数,N为图像中的像素数量
采用中值滤波对图像进行滤波去噪,中值滤波是一种非线性滤波方法,在一定条件 下可以克服线型滤波器带来的处理图像细节模糊的问题。中值滤波的基本思想是把局部 区域的像素按灰度等级进行排序,取该邻域中灰度的中央值(中值)作为当前像素的灰 度值。以二维图像为例,设原始图像为f(x,y),含有噪声的图像为g(x,y),Sxy代表以 当前点(x,y)为中心的子窗口的尺寸,f(x,y)是f(x,y)在点(x,y)处的估计值,则有
2)将彩色图像的RGB空间经非线性分段转换为YCb’Cr’空间,对彩色图像的每一 个像素进行分析计算,处于YCb’Cr’空间的肤色聚类区域范围内,则判为肤色像素点, 否则为非肤色像素点;
如附图3所示,肤色像素区域在YCbCr空间中呈一个两头尖的纺锤状,在Y较大 和较小的部分,肤色区域随之减少。因此简单的将YCbCr空间投影到CbCr平面来寻找 肤色区域是不可行的。
其中,将彩色图像的RGB空间经非线性分段变换为YCb’Cr’空间的具体方法包括 以下步骤:
21)将RGB空间转换为YCbCr空间,表达式为:
将肤色区域的中轴线分别用和来表示,故可以得到和的表 达式为:
式中:Kl和Kh为常数,即非线性分段函数的阈值,Kl=125,Kh=188;Ymin和Ymax也为常数,可以通过实验数据得到,Ymin=16,Ymax=235。
同样将肤色区域的宽度分别用和表示,其表达式为:
通过实验数据可以得到各个参数的数值:WCb=46.97,WLCb=23,WHCb=14, WCr=46.97,WLCr=23,WHCr=14。
根据上面得出的结果,可以推导非线性分段色彩空间表达式:
22)经过变换后,色彩空间就从YCbCr空间转换为YCb’Cr’空间,在YCb’Cr’空间 中,Cb’和Cr’可以认为和亮度无关,在空间投影后,可以看到肤色像素基本汇集到一个 椭圆区域内,此即YCb’Cr’空间的肤色聚类区域,这个椭圆形的数学表达式为:
式中x和y的表达式为
由YCb’Cr’空间中肤色聚类区域计算可得:其中,cx=109.38,cy=152.02,θ=2.53°, ecx=1.6,ecy=2.41,a=25.39,b=14.03。
如附图4所示,肤色像素经线性变换在CbCr平面上的投影。
如附图5所示,将肤色区域进行非线性变换,在YCb’Cr’空间呈柱状,将YCb’Cr’ 空间投影到Cb’Cr’平面可提高肤色像素的准确度。
如附图6所示,肤色像素经非线性变换在Cb’Cr’平面上的投影。
对所需检测的视频或图像的每一个像素进行分析计算后,如果它处于YCb’Cr’空间 的肤色聚类区域的椭圆范围内,则判为肤色像素点,否则为非肤色像素点。
3)将彩色图像进行图像二值化处理及形态学处理;
将彩色图像进行图像二值化处理的方法是将肤色像素点的RGB值均设为255,非 肤色像素点的RGB均设为0,得到二值化图像。二值化后的图像再进行形态学处理包 括膨胀、腐蚀、开运算与闭运算操作等方法,实现肤色区域分割,得到分割好的若干肤 色区域;
膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。通 过膨胀可以填充图像中的小孔及在图像边缘处的凹陷部分。结构元素B对图像A的膨 胀。记作
腐蚀是一种消除边界点,使边界向内部收缩的过程。利用腐蚀操作可以消除小且无 意义的物体。集合A被结构元素B腐蚀,记作
结构元素B对A的开运算,记作AοB,定义为即首先采用结构 元素对A做腐蚀运算,然后再做膨胀运算,使用相同的结构元素。通过图像的开运算, 可以去除图像中细小物体,平滑较大物体边沿又不明显改变其面积的作用。
闭运算,记作A·B,定义为即首先用结构元素B对A做膨胀 运算,然后再做腐蚀运算,使用相同的结构元素。通过图像闭运算,可以填充物体内细 小空间、连接临近物体、在不明显改变物体面积的情况下平滑其边界的作用。
4)采用Adaboost算法重新训练级联分类器;算法流程如下:
41)设定每一级级联分类器的最大可接受误检率f和最小可接受检测率d;设定级 联分类器的总误检率Ftarget,并且总误检率Ftarget的范围为0.05<Ftarget≤1,设定P为正 样本集合,N为负样本集合;对第i级级联分类器而言,前i级的级联分类器的误检率 用Fi表示,前i级的级联分类器的检测率用Di表示,并设定F0=1.0,D0=1.0;第i级的 级联分类器的特征数为ni;
42)设定初始级数i=0;
43)判断Fi>Ftarget是否成立,如果成立,进行44),否则结束流程;
44)令i=i+1且ni=0,将Fi-1赋值给Fi,进行45);
45)判断Fi>f×Fi-1是否成立,若成立,则进行46),否则跳至47);
46)令ni=ni+1;然后对样本集合P、N用Adaboost算法训练一个含有ni个特征的 级联分类器;在一个人脸检测库图像集上计算出当前级联强分类器的Fi和Di;降低当 前级联强分类器的阈值直到当前级联强分类器的检测率Di≥d×Di-1;之后回到45)循 环;
47)清空负样本集合N,进行48);
48)判断Fi>Ftarget是否成立,若成立,则利用当前级联分类器寻找无法正确识别的 负样本,并将该负样本放到负样本集合N中,之后回到43)循环;若Fi>Ftarget不成立, 则结束流程。
在以往的基于(开源)发行的跨平台计算机视觉库OpenCV中训练得到的分类器为 22级级联结构,而本发明中通过提高Adaboost算法中的级联分类器的总误检率,可以 减少级联分类器的级数,减少训练时间,提高检测速度。
5)用训练好的级联强分类器对若干肤色区域进行人脸检测,并输出结果。
检测过程结束。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员 来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也 应视为本发明的保护范围。
机译: 基于改进的真实ADABOOST算法的新型多视图人脸检测方法
机译: 基于改进的真实Adaboost算法的多视角人脸检测新方法
机译: 基于肤色和图案匹配的人脸检测方法