2. 长沙学院 数学与计算机系, 长沙 410022
通过特征选择的方法解决皮肤检测过程中颜色空间的选取问题,针对现有基于互信息的特征选择方法的不足,提出了改进方法:1)使用互信息缩小特征选择范围,然后选择使分类效果最佳的特征子集;2)尝试多种可能的特征子集初始化方案,然后选择其中最优的方案.实验结果和对比分析表明,使用改进后的特征选择方法得到的混合颜色空间,其皮肤检测效果优于传统颜色空间和已有混合颜色空间.
2. Department of Mathematics and Computer Science, Changsha University, Changsha 410022, China
To solve the problem of selecting appropriate color space for skin detection, a feature-selection-based method is exploited and two improvements on traditional method are proposed:Firstly, mutual information is used to narrow the feature selection range, then feature subset which produces the best classification accuracy will be selected; Secondly, a variety of possible feature subset initialization schemes are tested, and then choose feature set that reveal the best result. Experimental results and comparative analysis show that the hybrid color spaces obtained by the improved feature selection method have better skin detection performance than traditional color spaces and existing hybrid color spaces.
皮肤检测在很多图像处理相关的应用中扮演着重要的角色,例如在人脸检测、人脸跟踪、手势识别、图像检索和各种人机交互过程中,皮肤检测都是重要的预处理步骤.近年来,随着机器学习技术的兴起,基于像素的皮肤检测方法开始大量涌现.这些方法的主要特点在于,在特定的颜色空间中,对皮肤、非皮肤两类像素进行分类.
尽管在这个领域已有很多研究,但是如何选择合适的皮肤检测颜色空间,仍然是一个有待讨论的问题.在已有的研究中,一些传统的颜色空间例如RGB、nRGB、CIEXYZ、YCbCr、YUV、HSV、TSL、CIELAB、YPbPr已经被应用于皮肤检测.每种颜色空间都有其优、缺点,为了结合多种颜色空间的优点,一些研究者提出混合颜色空间的概念,并将混合颜色空间应用于皮肤检测.混合颜色空间由几个来自不同颜色空间的颜色分量所组成,可以有效利用原颜色空间的某些优良特性,从而达到提高皮肤像素分类表现的效果.
笔者引入机器学习中常用的特征选择方法,从特征选择的角度来解决肤色检测最佳颜色空间的选取问题.笔者提出了一种改进的基于互信息的特征选择方法,然后在该特征选择方法的基础上,实现适合皮肤检测的混合颜色空间的选取.为了验证这种方法的有效性,使用像素级别的皮肤检测方法,将特征选择算法得出的混合颜色空间与已有的皮肤检测颜色空间进行对比.
实验结果和对比分析表明,按照笔者提出的方法得到的混合颜色空间,其皮肤检测效果优于传统颜色空间和已有混合颜色空间.
1 相关工作尽管少部分研究者认为,颜色空间的转换对于皮肤检测没有影响[1],但是在实际应用情况下,大多数的研究者都认为颜色空间的转换对于皮肤检测具有重要意义.
用于皮肤检测的颜色空间大致可以分为以下3类[2]:
1) 传统的颜色空间;
2) 专用于皮肤检测的颜色空间;
3) 混合颜色空间.
大部分的研究采用传统的颜色空间,因为其具有实现简洁性. Bergasa等[3]采用nRGB颜色空间进行皮肤检测. Gonzalez等[4]使用CIEXYZ颜色空间进行皮肤检测. Khan等[5]采用HSV颜色空间进行皮肤检测. YCbCr是另一个常用的传统颜色空间,被Subban等[6]用来改善皮肤检测准确度.
虽然基于传统颜色空间的皮肤检测已经取得了丰硕的成果,但是因为传统的颜色空间并不是专门为皮肤检测所设计的,所以总是存在一些不足.例如,光照的变化敏感,导致在复杂光照条件下皮肤检测的效果变差;皮肤像素在颜色空间中的分布比较分散,从而造成与非皮肤像素的可分性变差等.为了解决这一问题,有的研究者为皮肤检测设计了专门的颜色空间. De dios等[7]提出YCgCr颜色空间来提升面部皮肤检测算法的精确度. Terrillon等[8]提出的TSL颜色空间是另一个专用于皮肤检测的颜色空间.
专门为皮肤检测设计一个颜色空间可能会给皮肤检测带来诸多好处,但是设计新的颜色空间需要考虑很多问题,存在理论和实现上的困难.这促使研究者们开始考虑混合颜色空间.混合颜色空间是在现有的传统颜色空间和专用于皮肤检测的颜色空间基础上选取一组分辨能力强的颜色分量,组成一个混合的特征空间,然后在该空间中实现皮肤检测. Liu等[9]基于RGB和YIQ两种颜色空间,提出用混合颜色空间RIQ来提高对于人脸皮肤的检测精确度. Shih等[10]结合YIQ和YCbCr颜色空间,提出混合颜色空间YQCr,表明YQCr在皮肤检测方面比其他组合表现更好.此外,Mahdi等[2]使用遗传算法和PCA技术,提出了混合颜色空间SKN.相关实验表明,基于SKN的皮肤检测效果优于已有颜色空间.尽管已经有很多研究者在用于皮肤检测的混合颜色空间方面做了大量工作,但是这些混合颜色空间要么是直接结合2个颜色空间所形成[9-10],要么是通过启发式的搜索来获得[2],都没有从特征选择的角度来解决这一问题.
2 理论基础选择适用于皮肤检测的颜色空间,其本质是一个特征选择问题.需要强调的是,特征选择不同于PCA等特征提取方法.特征选择是指,对于一组给定的特征集,不通过任何变换,从已有的特征集中选取一个紧凑的特征子集,要求该特征子集在尽量减少冗余和干扰特征的同时能完整描述输入数据,同时还要提供良好的泛化能力.特征选择技术提供了一个观察数据内在联系的有效手段,在实际应用中可以在减少计算量的同时提升机器学习算法的预测精度.
2.1 特征选择方法简介有监督的特征选择方法按照其对特征子集优劣的评价方式大致可以分为Filter、Wrapper和Embedded 3种. Filter方法一般通过数据的内在特性来评价特征子集的好坏. Wrapper方法则通过分类器在特征子集上的分类准确度来评价其优劣. Embedded方法则是以上2种方法的结合,主要做法是将特征选择作为训练过程的一部分,以减少Wrapper方法中训练分类器所消耗的时间.
在已提出的Filter方法中,有多种方法用来评价单个特征或者特征子集,其中包括不一致率、相关系数、类别可分性、互信息等.值得注意的是,在不同的评价方法中,基于信息理论的评价方法得到了更加全面的研究,主要原因是因为信息熵可以很好地衡量特征所携带的信息.在基于信息理论的特征选择方法中,互信息是其中一个研究热点,因为互信息有着2个优良特性:1)互信息可以衡量随机变量之间的任何关系,包括线性关系和非线性关系;2)互信息在特征空间中具有空间转换不变性.
2.2 互信息理论互信息起源于信息理论,可以用来衡量2个随机变量X和Y之间共享的信息量,其定义如下:
$ I\left( X;Y \right)=\sum\limits_{y\in Y}{\sum\limits_{x\in X}{p\left( x, y \right)\text{log}\frac{p\left( x, y \right)}{p\left( x \right)p\left( y \right)}}} $ | (1) |
其中:p(x, y)表示随机变量X和Y的联合概率密度函数,p(x)和p(y)则分别表示X和Y的概率密度函数.根据贝叶斯公式和对数函数的性质,可以将互信息I(X; Y)用信息熵改写成:
$ I\left( X;Y \right)=H\left( X \right)+H\left( Y \right)-H\left( X, Y \right) $ | (2) |
由熵的性质可知,互信息总是非负的,而且当X和Y彼此强相关的时候,I(X; Y)会比较大,而当X和Y相互独立时,I(X; Y)=0.类似地,条件互信息表示随机变量Z已知时,X和Y之间的共享的信息量,其定义为
$ \begin{align} &I\left( X;Y|Z \right)=\sum\limits_{z\in Z}{\sum\limits_{y\in Y}{\sum\limits_{x\in X}{p\left( x, y, z \right)\frac{p\left( x, y|z \right)}{p\left( x|z \right)p\left( y|z \right)}=}}} \\ &\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ H\left( Y|Z \right)-H\left( Y|X, Z \right) \\ \end{align} $ | (3) |
最后,互信息的链式法则[11]为
$ \begin{align} &\ \ \ \ \ \ \ \ I(\{{{X}_{1}}, {{X}_{2}}, \ldots, {{X}_{n}}\};Y)= \\ &\sum\limits_{i=1}^{n}{I({{X}_{i}};Y|\{{{X}_{i-1}}, {{X}_{i-2}}, \ldots, {{X}_{1}}\})} \\ \end{align} $ | (4) |
在开始讨论基于互信息的特征选择方法之前,为了叙述的方便,先定义一些相关的记法.
3.1 问题描述记训练数据集Γ=D(F, C),F={f1, f2, …, fm}为m个特征组成的特征集,C={c1, c2, …, ck}为含有k个类标签的类别集合,样本集D={o1, o2, …, on}包含n个样本.样本ok∈D表示为ok=(vk1, vk2, …, vkm),其中vki表示样本ok在特征fi上的取值.
记S⊆F为已选取的特征子集,F′=F\S为候选的特征子集.特征选择的目的在于选择一个含有较少特征的S,使得训练数据在S上的类别分布和在F上尽量一致.当用互信息作为评价特征子集的手段时,特征选择就可以描述为选择最小的特征集S,使得I(S; C)足够接近I(F; C).
结合选取最优皮肤检测颜色空间的目标,若把每个颜色分量作为F中的特征,那么最终得到的最佳特征子集S就构成最佳的混合颜色空间.不过此时,评价特征子集的方法应该是训练数据在S上的分类表现.要得到分类效果最好的S,最简单的办法是穷举所有可能的S,然后选取分类效果最佳的S.但是这种方式的缺点在于,可能的特征子集共有2|F|个,当F所包含的特征较多时,整个搜索过程的计算量将以指数方式增加,这对于有限的计算资源来说是不可接受的.
3.2 基于互信息的特征选择方法及其改进基于互信息的特征选择方法可分为两类:第1类是单个特征的选择方法,即按照I(f; C)大小对所有特征进行排序,然后选取前k个具有最大互信息的特征作为最佳的特征子集.该缺点在于把所有的特征当作相互独立的,而实际情况下,特征之间很可能存在相互关联的情况,这样会导致得到的特征子集中存在冗余的信息.第2类是特征子集的选取方法,以前向搜索算法为例,该算法首先选择I(f; C)最大的特征,而之后每一步选择的特征f则要使得I(f; C|S)最大.这表明,待选特征f应该包含尽量多的分类信息,而且这些分类信息并未出现在已选的特征子集S中,即减少信息的冗余.因为条件互信息I(f; C|S)不便于直接估计,而根据式(4)可以得到
$ I\left( f;C|S \right)=I\left( \left\{ f, S \right\};C \right)-I\left( S;C \right) $ | (5) |
在每次选择新的特征f时,已选特征子集S和类标签C都是已知的,那么,最终特征子集的选取就等价为
$ f=\underset{i}{\mathop{\text{max}}}\, I(\{{{f}_{i}}, S\};C) $ | (6) |
这种特征选择方法首先由Zheng等[12]提出,实验结果表明该方法可以有效选择出相关的特征,并减少冗余特征.但是这种方法本质上还是一种Filter方法,在选取最佳特征子集的过程中,并未考虑实际的分类效果,所以最终将选取的特征子集用来进行分类任务时,其分类效果可能并不是最佳的.为了解决这一问题,可以在以下几个方面做出改进.
1) 在基于互信息的特征选择过程中,选择一个特征f时,除了要保证互信息的最大化,同时也要考虑该特征对分类器分类精度的提升,然后综合考虑两者最终选择的特征.
2) 对于如何选择特征子集的首要特征,大部分已有的基于互信息的特征选择算法都是简单地选择I(f; C)最大的特征,这种简单的处理方式忽略了潜在的其他可能性,从而可能导致特征选择算法陷入局部最优解.扩大初始化特征的选择范围,可以改善这一状况.
综合以上两点,提出一种改进的基于互信息的特征选择方法:首先使用互信息排序方法快速产生待选择的特征,以此来缩小Wrapper方法的搜索范围,然后使用Wrapper方法来选择分类效果最佳的特征子集.基于这种方式的特征选择,与Wrapper方式相比较,大大减少了需要训练的分类器个数,因此减少了特征选择算法达到收敛所需的时间.该算法用伪代码表示如下.
算法1 改进的基于互信息的特征选择算法.
输入:数据集Γ=D(F, C),分类器Φ,整数K, M(1≤K, M≤|F|)
输出:特征子集S
1 for f∈F do
2 calculate I(f; C) on D;
3 if I(f; C)==0 then F=F\{f};
4 end for
5 A←getSubset(F, K); /*将特征集F中I(f; C)最大的K个特征放入集合A中*/
6 for fi∈A do
7 S={fi}; U=F\{fi};
8 repeat
9 for fu∈U do
10 calculate I({S, fu}; C) on D;
11 end for
12 B←getSubset(U, M); /*将特征集I({S, fu}; C)中I({S, fu}; C)最大的M个特征放入集合B中*/
13
14 S=S∪{fr}; U=U\{fr};
15 until enough feature is selected
16 record S and its classification score
17 end for
18 return S which has the highest score
该算法首先计算特征集F中每个特征f与类标签C之间的互信息.计算过程中,如果出现I(f; C)=0的情况,则表明该特征没有给出任何与分类有关的信息,那么就从特征集F中删除该特征.计算出每个特征与类标签之间的互信息之后,对I(f; C)进行排序,选取前K(1≤K≤|F|)个最大互信息对应的特征,记为A={fi1, fi2, …, fiK},然后每次用A中的一个特征来初始化S,这种做法与只选择I(f; C)最大的特征相比,扩大了整个特征选择算法的搜索范围,更有可能搜索到最优的特征子集.
初始化S={fi}之后,要从候选特征集U中选择特征加入S.首先,对fu∈U,计算将其加入S之后特征子集{S, fu}与类标签C之间的互信息I({S, fu}; C),然后选择M(1≤M≤|U|)个最大互信息对应的特征,记为B={ft1, ft2, …, ftM}.对ft∈B,考虑分类器在特征子集{S, ft}上的分类效果,选择分类效果最好的ft加入S.重复以上步骤,直到满足终止条件,就完成了S={fi}条件下的特征选择.
最后,对于A中K个特征,分别用来初始化S,总共进行K次特征选择,最终选择的是这K个特征子集中分类效果最好的特征子集.
4 实验与结果 4.1 数据集实验基于3个公共数据集:Db-skin数据集、HGR数据集[13]、SFA数据集[14].由于每个数据集中图片的采集条件、图片的质量和相应标记的准确度都不相同,所以本文中的实验分别在3个数据集上单独进行.
数据集的详细介绍见表 1.
本次实验选择了15个不同的颜色空间:RGB, nRGB, XYZ, YCbCr, YUV, YIQ, i1i2i3, YES, HSV, HLS, TSY, LAB, LUV, YPbPr, YCgCr.对以上每种3维的颜色空间,从RGB转换过来的训练数据集都可以看成一个3列的矩阵,每行代表一个像素值,每列表示一个颜色特征.将这15个颜色空间中的数据横向拼接,并且去掉其中重复或等价的列,就形成了[n×38]维的样本矩阵,其中n表示总的像素数,38表示颜色特征集的维数,其中包括的颜色空间分量为:RRGB、GRGB、BRGB、RnRGB、GnRGB、BnRGB、XXYZ、YXYZ、ZXYZ、CbYCbCr、CrYCbCr、UYUV、VYUV、IYIQ、QYIQ、i1i1i2i3、i2i1i2i3、i3i1i2i3、YYES、EYES、SYES、HHSV、SHSV、VHSV、LHLS、SHLS、TTSY、STSY、LLAB、ALAB、BLAB、ULUV、VLUV、PbYPbPr、PrYPbPr、YYCgCr、CgYCgCr、CrYCgCr.相应地,对应数据的类标签也拼接成了[n×1]的列向量,并用“1”表示皮肤像素,“0”表示非皮肤像素.样本矩阵和类标签向量就构成特征选择算法的数据输入.此外,为了解决不同特征取值范围不同的问题,样本矩阵的每一列都进行了归一化处理.
4.3 互信息的计算由于经常需要计算互信息I({S, fu}; C),所以有必要寻找一种快速计算互信息的方式.根据互信息的公式,可得
$ I(\{S, {{f}_{u}}\};C)=H\left( C \right)+H(S{{f}_{u}})-H(CS{{f}_{u}}) $ | (7) |
对于给定的带标签数据集,样本的标签分布就是确定的,因此式(7)中H(C)就是唯一确定的,所以可以存储其值以减少计算量.对于剩下的两项联合熵,需要估计对应高维随机向量的联合分布,而由于本次实验中采用的颜色特征数据均是经过离散化和归一化处理的,所以对应离散随机变量的概率质量函数可以通过计算直方图的方式来获得.此外,通过使用哈希表存储不同实例出现的频率,也可以减小联合熵的计算复杂度.
4.4 皮肤检测分类器的选择从算法1的描述可知,除了准备实验所需数据,还需要给算法1提供两类参数:分类器和参数K、M.该分类器的主要目的是为了验证皮肤、非皮肤像素数据在某特征子集上的分类效果,然后据此选择对应最佳分类效果的特征.
在机器学习领域,分类器的分类效果存在多种衡量标准,其中最常用的标准就是分类器的错误率和精度,而本次实验所采用的数据集中,两类样本的分布并不均衡,所以得到的分类精度往往是虚高的.为了准确衡量不同特征集对皮肤、非皮肤像素的区分能力,采用F1度量作为分类效果的评价标准.而且为了保证得出的F1分数的稳定性,采用10折交叉验证方法,最终取的F1分数为10次结果的平均值.
在选择合适分类器的问题上,基于DB-Skin数据集,通过实验比较了Naïve Bayes、SVM、Random Forest这3种分类器使用单颜色分量作为特征时的F1,同时还给出对应颜色分量与类标签C之间的互信息I(f; C),结果见图 1.
由图 1数据,可以观察得出两点结论.
1) 按照单个特征分类结果的F1得分来看,Random Forest分类器的得分整体高于SVM和Naïve Bayes分类器.这说明Random Forest分类器相对来说更适用于当前场景.
2) 按照单个特征分类F1得分和对应特征与类标签之间的互信息的相关性来看,Random Forest分类器的分类结果是与互信息相关性最强的.这意味着,在用互信息指导特征选择的过程中,互信息较大的特征更可能对应于使Random Forest分类器分类结果较好的特征,这表明Random Forest分类器与基于互信息的特征选择方法更匹配.
综合以上分析结果,最终选择Random Forest作为本次实验中的分类器.
4.5 参数K, M的选择在提出的特征选择算法中,最耗时的操作是计算分类器Φ在特征子集上的F1得分.假设用10折交叉验证计算一个F1得分平均耗时T0,则对于给定的K、M,最坏情况下整个特征选择算法达到收敛需要耗时KMT0L,其中L表示特征子集的平均长度.选择合适的K、M,可以在特征选择算法搜索的范围和搜索消耗的时间之间折中.
为了快速估计较为合理的K、M取值范围,将问题简化为K=M,并且基于DB-Skin数据集,对取值在区间[1, 15]内的K、M分别实施算法1所述的特征选择过程,最终以Random Forest分类器在对应特征子集上的分类得分为依据作图 2.由图 2可知,当K=M=9时,特征选择算法的分类结果已经相对足够好,此后再继续增大K、M的值,分类结果并不会有太大变化,反而会延长算法的收敛时间.在此基础上经过微调最终确定取K=8, M=10.
结合所提出的特征选择算法和上文提到的相关参数,在3个数据集上分别进行测试,得到的结果见表 2.其中,实验结果1是取K=8, M=10时分别在3个数据集上得到的结果.实验结果2是在取K=M=1时得到的结果.
根据表 2的数据,可以得出3个结论.
1) 从3个数据集上的分类表现来看,DB-Skin数据集上的分类效果最差,SFA数据集次之,HGA数据集上分类效果最好.这可能是因为DB-Skin数据集中图片分辨率较低,而且图片背景和光照条件均比较复杂,从而导致皮肤像素和非皮肤像素之间的颜色更难分辨,而HGR和SFA数据集均是在室内采集的手势或面部照片,图片中干扰皮肤检测的因素相对较少,所以分类结果较为准确.
2) 比较传统颜色空间、文献[2, 9, 10]中已提出的混合颜色空间和实验结果1的数据,可以发现按照本文提出的特征选择方法,在3种数据集上分别得到的混合颜色空间,其分类表现均优于已有的传统颜色空间和已有的混合颜色空间.这说明对于给定数据集,笔者提出的特征选择算法可以稳定地找到最佳特征子集,这表明该特征选择算法具有较好的鲁棒性.
3) 比较实验结果1和实验结果2的数据,可以发现,若每次选择特征加入S时,都选择使互信息最大的特征,最终得到的特征子集其分类效果并不是最好的.因此在算法中引入分类器来评价特征子集和通过调节K、M来扩大特征选择算法搜索范围的做法,确实提高了基于互信息的特征选择算法的表现.
5 结束语通过分析基于互信息特征选择方法中存在的问题,提出了一种改进的特征选择算法.用这种方法来选择适用于皮肤检测的混合颜色空间,并在3个公共数据集上进行了实验,实验结果证明了该方法的鲁棒性和有效性.
[1] | Albiol A, Torres L, Delp E J, et al. Optimum color spaces for skin detection[C]//IEEE International Conference on Image Processing. NJ: IEEE, 2001: 122-124. |
[2] | Oghaz M M, Maarof M A, Zainal A, et al. A hybrid color space for skin detection using genetic algorithm heuristic search and principal component analysis technique[J]. Plos One, 2015, 10(8): e0134828. doi: 10.1371/journal.pone.0134828 |
[3] | Bergasa L M, Mazo M, Gardel A, et al. Unsupervised and adaptive Gaussian skin-color model[J]. Image & Vision Computing, 2000, 18(12): 987–1003. |
[4] | Chaves-González J M, Vega-Rodríguez M A, Gómez-Pulido J A, et al. Detecting skin in face recognition systems:a color spaces study[J]. Digital Signal Processing, 2010, 20(3): 806–823. doi: 10.1016/j.dsp.2009.10.008 |
[5] | Khan R, Hanbury A, Ttinger J, et al. Color based skin classification[J]. Pattern Recognition Letters, 2012, 33(2): 157–163. doi: 10.1016/j.patrec.2011.09.032 |
[6] | Subban R, Mishra R. Combining color spaces for human skin detection in color images using skin cluster classifier[C]//International Conference on Advances in Recent Technologies in Electrical and Electronics. Bangalore: [s. n. ], 2013: 68-73. |
[7] | De Dios J J, Garcia N. Fast face segmentation in component color space[C]//IEEE International Conference on Image Processing. NJ: IEEE, 2004: 191-194. |
[8] | Terrillon J C, Fukamachi H, Akamatsu S, et al. Comparative performance of different skin chrominance models and chrominance spaces for the automatic detection of human faces in color images[C]//IEEE International Conference on Automatic Face and Gesture Recognition. NJ: IEEE, 2000: 54-63. |
[9] | Liu Z, Liu C. A hybrid color and frequency features method for face recognition[J]. IEEE Transactions on Image Processing, 2008, 17(10): 1975–1980. doi: 10.1109/TIP.2008.2002837 |
[10] | Shih P, Liu C, IEEE. Improving the face recognition grand challenge baseline performance using color configurations across color spaces[C]//2006 IEEE International Conference on Image Processing. NJ: IEEE, 2006: 1001-1008. |
[11] | Cover T M, Thomas J A. Elements of information theory[M]. Beijing: Tsinghua University Press, 2005: 13-30. |
[12] | Zheng Y, Kwoh C K. A feature subset selection method based on high-dimensional mutual information[J]. Entropy, 2011, 13(4): 860–901. doi: 10.3390/e13040860 |
[13] | Kawulok M, Kawulok J, Nalepa J. Spatial-based skin detection using discriminative skin-presence features[J]. Pattern Recognition Letters, 2014, 41: 3–13. doi: 10.1016/j.patrec.2013.08.028 |
[14] | Casati Jpb, Moraes Dr, Rodrigues E. SFA: A human skin image database based on FERET and AR facial images[C]//IX workshop de Visao Computational. Rio de Janeiro: [s. n. ], 2013. |