基于肤色分割和AdaBoost算法的人脸检测*

2020-06-18 09:08锋胡志勇肖伟明钟卫为
计算机与数字工程 2020年4期
关键词:色度直方图分类器

邓 锋胡志勇肖伟明钟卫为

(1.武汉邮电科学研究院 武汉 430074)(2.武汉虹信技术服务有限责任公司 武汉 430074)

1 引言

经过多年的发展,人脸识别技术已经广泛地应用于人们的日常生活当中,例如乘坐高铁时刷脸进站、在店买东西直接刷脸付款等。而且相对于众多生物识别技术而言,人脸识别技术可以最大可能地做到在不影响人们的情况下就完成了数据采集[1~2],所以其可以被人们广泛接受,这对如何快速准确地从复杂环境中提取出人脸提出了较高的要求。

当前的人脸检测技术可以分为三类:基于几何特征的人脸检测方法、基于肤色模型的方法、基于统计理论的方法[3~4]。基于几何特征的人脸检测方法就是利用人脸的器官在现实生活中表现出来的几何特征来进行人脸检测,其中的代表有:基于先验知识的人脸检测方法[5]、Leung[6]等提出任意图匹配的方法、层次模板匹配的方法[7]。基于肤色模型的方法则是利用人的肤色在色度空间表现出来的聚合性来检测人脸。基于统计理论的方法则是在对大量样本统计的基础上来检测人脸的方法,它主要包含子空间方法、支持向量机方法、神经网络方法以及Boost方法。

在众多检测方法当中,Boost方法具有深厚的理论和实践的基础,Adaboost则是其中较为成功的代表之一[8],但是其计算量相较于其他算法一般比较大,所以对其的进一步研究具有一定的现实意义。本文中提出了一种肤色分割预处理的方法,将疑似人脸区域从背景图片中取出来,减少Adaboost算法需要处理的数据量,来达到提速的目的。

2 肤色分割

作为一种重要的人体特征,通过肤色来将人和背景图片分割开来一直是一个经典课题。经过研究表明,在生物和物理上,肤色分布具有一致性[9]。对于不同的人种,从双色差或者色调饱和度上来看,肤色的变化差异并不大,但是从亮度上来看,肤色的差异就比较明显。因此,我们可以利用肤色在色度方面表现的一致性将肤色从周边的环境中抠出来,便于进行肤色分割。

2.1 色度空间的转换和肤色分割

由于肤色的差异更多在于亮度而不在于色度,所以可以选择合适的色度空间建立合适的肤色模型,剔除亮度对于肤色分割的影响。颜色空间有许多种,例如:归一化的RGB、CIE-XYZ、CIE-Yxy、CMYK、CMY、HSL、HSV、YUV、YCbCr等。由于YCbCr[10]既具有将亮度和色度分离出来的优点,又具有计算简单的特点,因此在本文中,将对图片进行YCbCr颜色空间的色度空间转换,其公式如下:

其中,Y为亮度,Cb为蓝色色度,Cr为红色色度。

完成色度空间的转换后,我们接下来的工作就是根据色度的分布将落在肤色色度范围内的点找出了,这里可以建立一个肤色模型。一般情况下,肤色模型可以分为三种:1)统计直方图模型;2)高斯模型;3)混合高斯模型。考虑到统计直方图模型的建立需要大量的肤色数据、混合高斯模型计算过于复杂,在本文中选取依据高斯模型来进行肤色分割。在YCbCr色度空间中,高斯模型认为人的肤色的分布是呈现正态分布的,其概率密度为

2.2 对肤色区域的预处理

由于上一步分割出来的肤色区域会有一些不连贯性,为了得到更好的效果,我们需要对肤色区域做一些预处理。具体步骤如下:

1)对肤色连通区域进行标记,几位Pi(i=0,…,N);

2)估算每个连通区域大小,并取平均值B;

3)由公式r= Bπ计算出圆形结构半径。

3 LBP特征

3.1 提取LBP特征

LBP[11~13](Local Binary Pattern)是 一 种 局 部 二值模式的算子,它最早由T.Ojala,M.Pietikainen和D.harwood于1994年提出来,用于纹理特征的提取。如今,它广泛应用于纹理分类领域和人脸识别领域,早已成为这两个领域重要的特征提取方式之一。其具有旋转不变性和灰度不变性等特点,当它应用于人脸检测时,可以有效避免光照等因素的影响。提取LBP特征可以分为以下几个步骤:

1)首先对于一张图片,我们需要将它划分为一个一个的小方块,通常取16*16的小区域;

2)区域划分完成后,是对每个区域的操作,对位于其中的每个像素点求出它的LBP值。首先,将目标像素相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样就可以得到一个二进制数,这个二进制数数就是我们要得到的LBP值;

3)虽然得到每个像素的LBP值,但是却不好直接用它来描述图片的特征,需要对它进行下一步的处理。一般我们会采用统计学的方式,计算出每个小区域的直方图,然后对该直方图进行归一化处理;

4)最后将每个统计直方图整合成为一个特征向量,这就是我们需要的整幅图的LBP纹理特征向量。

3.2 基于LBP建立弱分类器

为了使用AdaBoot算法训练出最终的强分类器,需要根据LBP纹理特征向量建立一些弱分类器。对于每一个弱分类器g(x′,f,θ,p),其可以由一个LBP特征f,判定阈值θ和指示不等式方向的p组成,其公式如下:

其中x′表示待检测的图片,f(x′)是对待检测图片进行LBP特征提取后所得到的统计直方图经过相似度函数判断后的相似度,当相似度满足我们要求是取值为1,否则为0。

4 AdaBoot人脸检测分类器

AdaBoot[14~15](Adaptive Boosting)是一种迭代算法。该算法的核心思想是针对同一个训练集训练不同的分类器,一般我们称这些分类器为弱分类器,然后将这些弱分类器按照不同的权重整合到一起,这样就构成了最终的强分类器。弱分类器的构成我们可以采取多种方法,由于我们提取的是图片的LBP特征,所以我们采用基于LBP特征构建的弱分类器,这里AdaBoot算法就相当于一个弱分类器加工厂,通过有限次数的迭代,最终得到一个在检测率和误检率都表现不错的最终强分类器。算法具体的过程如下:

1)选取一组训练样本(x1,y1),…,(xn,yn)用于分类器的训练,其中当样本不是人脸时yn=0,否则yn=1,N则为样本数目;

2)为每个样本授予权值,第一次我们设每一个样本的权值为1 N;

3)进行迭代,通过弱分类器对样本集来进行比对。对于每个弱分类器,分别计算出其在样本集中的分类误差率,其中hj(xi)表示第j个弱分类器判断样本i是否正确,ωi表示第i个样本的权值)。取其中误差率最小的弱分类器为基本分类器G1(x),其在最终分类器中的系数为

4)为每个样本从新授予权值(目的是加大弱分类器Gj(x)识别错误的样本的权值,降低识别正确样本权值),公式如下:

其中ωm+1,i表示第i个样本在第m+1次迭代中的权值,;

5)不断重复步骤3)、4),直到达到指定迭代次数T,或者检测准确率、误差率达到设计要求;

6)将每次迭代选出的基本分类器整合起来,得到最终的强分类器:

5 实验结果和分析

本论文最终在1000张图片上检测算法的准确性(812张包含人脸(200张含多人脸),188非人脸图片),并将它与肤色检测方法和基于LBP的Adaboost方法做了比较。检测结果统计如表1。

表1 人脸集检测结果比较

从实验结果来看,基于肤色的检测方法无论是检测单张人脸还是检测多张人脸,都具有最高的检测率和最短的检测时间,但是由于其较高的误检率一直影响着它在实际中的应用。对于Adaboost算法而言,其在检测率方面的表现也非常令人满意,而且相较于肤色方法它的误检个数明显减少了,但是其检测速度方面表现稍差。本文提出的检测方法,结合两种算法的优势,最终在实验中表现出较高的检测率,最关键的是相对于肤色检测其误检率也降低了不少。同时,就检测时间而言,其相比与Adaboost算法有了明显的缩短,表明该方法在正面人脸检测中取得了较好的效果,是一种有效的人脸检测方法。

6 结语

本文提出了一种基于LBP算子的Adaboost算法之上改进的算法,通过肤色分割预处理,将疑似人脸区域提取出来(并未破坏人脸的特征信息),可以有效减少LBP算子的扫描区域,使整个算法更加关注于自己需要判断的数据,从而提高了处理的效率。实验结果表明:该算法可以准确快速地检测出人脸。

猜你喜欢
色度直方图分类器
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
学贯中西(6):阐述ML分类器的工作流程
唐古特大黄有效成分与色度相关性分析
基于朴素Bayes组合的简易集成分类器①
用直方图控制画面影调
基于AdaBoost算法的在线连续极限学习机集成算法
例析频率分布直方图
中考频数分布直方图题型展示
谈“理想声音的概念”在演唱中的应用
两种校准光谱辐射亮度计色度参数方法的比较研究