发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于特征选择的皮肤检测混合颜色空间的选取方法和系统,其目的在于,解决现有皮肤检测方法中存在的皮肤检测准确率低的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于特征选择的皮肤检测混合颜色空间的选取方法,包括以下步骤:
(1)获取皮肤检测数据集,其包括图片及其对应的标记信息,对该皮肤检测数据集中的所有图片进行颜色空间转换,对转换后的所有图片和对应的标记信息进行向量化处理,以得到样本矩阵和标记矩阵,并对样本矩阵中每一列的值进行归一化处理;
(2)计算归一化处理后的样本矩阵中的每一列和标记矩阵之间的互信息,将互信息结果按照从大到小的顺序进行排列;
(3)从步骤(2)中得到的排列结果中选择K个最大的互信息,对应的颜色分量作为待选集合IFS={fi,f2,…,fK},其中f表示互信息对应的颜色分量,K的取值范围是大于0,且小于等于h;
(4)设置计数器i=1;
(5)判断计数器i是否等于K+1,若等于,则转入步骤(10),然后过程结束,否则设置h个颜色分量组成的集合为U={Ui,U2,…,Uh},并转入步骤(6),其中U中的元素表示样本矩阵对应列的颜色分量;
(6)初始化颜色特征集合S为空,并将待选集合IFS中的第i个颜色分量fi加入该颜色特征集合S中,并从集合U中删除该颜色分量fi;
(7)对集合U中当前的所有元素,计算其每一个元素Um与颜色特征集合S构成的颜色特征集合{S,Um}与标记矩阵C之间的互信息I({S,Um};C),并对得到的所有互信息按照从大到小的顺序进行排列,选取其中最大的M个互信息对应的颜色分量,记为集合TFS={ft1,ft2,…,ftM},其中M取值范围是大于0,小于U中当前的所有元素的个数;
(8)对于集合TFS中的每一个元素ftp,计算分类器在颜色特征集合{S,ftp}上的分类效果,从而得到M个不同的分类结果,并选择M个分类结果中分类准确率最高的一个元素对应的颜色特征ftg,将其加入颜色特征集合S中,并从集合U中删除该颜色分量ftg;
(9)判断颜色特征集合S中当前的所有元素数量是小于还是等于阈值,如果小于则返回步骤(7),如果等于,则将此时的颜色特征集合S和其分类准确率记录在集合L中,设置i=i+1,并返回步骤(5);
(10)从集合L所包含的的K个颜色特征集合中,选择分类准确率最高的颜色特征集合,该颜色特征集合最终构成最佳的皮肤检测混合颜色空间。
优选地,步骤(1)具体为,首先通过颜色空间转换将RGB颜色空间的皮肤检测数据集中的所有n个像素转换为多个颜色空间,对于每一种颜色空间,转换的结果是得到一个n行3列的矩阵,从而所有颜色空间构成n*H的矩阵,然后,去除掉H列中颜色分量重复的列,从而得到n*h的样本矩阵,同时,n个像素中,如果某个像素对应的标记信息是黑,则将该像素向量化处理后标记矩阵中该像素对应的值设置为0,否则设置为1,从而得到n*1的标记矩阵C,最后,对得到的该样本矩阵的每一列的值进行归一化处理,其中H和h均为自然数。
优选地,分类器是随机森林分类器、SVM分类器、或者贝叶斯分类器。
优选地,阈值的取值范围是1到h。
按照本发明的另一方面,提供了一种基于特征选择的皮肤检测混合颜色空间的选取方法,包括:
第一模块,用于获取皮肤检测数据集,其包括图片及其对应的标记信息,对该皮肤检测数据集中的所有图片进行颜色空间转换,对转换后的所有图片和对应的标记信息进行向量化处理,以得到样本矩阵和标记矩阵,并对样本矩阵中每一列的值进行归一化处理;
第二模块,用于计算归一化处理后的样本矩阵中的每一列和标记矩阵之间的互信息,将互信息结果按照从大到小的顺序进行排列;
第三模块,用于从第二模块中得到的排列结果中选择K个最大的互信息,对应的颜色分量作为待选集合IFS={fi,f2,…,fK},其中f表示互信息对应的颜色分量,K的取值范围是大于0,且小于等于h;
第四模块,用于设置计数器i=1;
第五模块,用于判断计数器i是否等于K+1,若等于,则转入第十模块,然后过程结束,否则设置h个颜色分量组成的集合为U={Ui,U2,…,Uh},并转入第六模块,其中U中的元素表示样本矩阵对应列的颜色分量;
第六模块,用于初始化颜色特征集合S为空,并将待选集合IFS中的第i个颜色分量fi加入该颜色特征集合S中,并从集合U中删除该颜色分量fi;
第七模块,用于对集合U中当前的所有元素,计算其每一个元素Um与颜色特征集合S构成的颜色特征集合{S,Um}与标记矩阵C之间的互信息I({S,Um};C),并对得到的所有互信息按照从大到小的顺序进行排列,选取其中最大的M个互信息对应的颜色分量,记为集合TFS={ft1,ft2,…,ftM},其中M取值范围是大于0,小于U中当前的所有元素的个数;
第八模块,用于对于集合TFS中的每一个元素ftp,计算分类器在颜色特征集合{S,ftp}上的分类效果,从而得到M个不同的分类结果,并选择M个分类结果中分类准确率最高的一个元素对应的颜色特征ftg,将其加入颜色特征集合S中,并从集合U中删除该颜色分量ftg;
第九模块,用于判断颜色特征集合S中当前的所有元素数量是小于还是等于阈值,如果小于则返回第七模块,如果等于,则将此时的颜色特征集合S和其分类准确率记录在集合L中,设置i=i+1,并返回第五模块;
第十模块,用于从集合L所包含的的K个颜色特征集合中,选择分类准确率最高的颜色特征集合,该颜色特征集合最终构成最佳的皮肤检测混合颜色空间。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明的皮肤检测准确率较高:由于本发明使用互信息缩小特征选择范围,然后通过分类器选择使分类效果最佳的特征,并采用多种可能的颜色特征集合初始化方案,然后选择其中最优的结果,从而能够保证高的皮肤检测率。
(2)本发明通过引入分类器来评价颜色特征集合和通过调节K,M来扩大特征选择算法搜索范围的做法,提高了基于互信息的特征选择算法的表现。
(3)本发明提出的方法可以稳定地找到最佳颜色特征集合,这表明该特征选择算法具有较好的鲁棒性。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的基本思路在于,提出一种改进的基于互信息的特征选择方法:首先使用互信息排序方法快速产生待选择的特征,以此来缩小包装器(Wrapper)方法的搜索范围,然后使用包装器方法来选择分类效果最佳的特征子集.基于这种方式的特征选择,与包装器方式相比较,大大减少了需要训练的分类器个数,因此减少了特征选择算法达到收敛所需的时间。
如图1所示,本发明基于特征选择的皮肤检测混合颜色空间的选取方法包括以下步骤:
(1)获取皮肤检测数据集,其包括图片及其对应的标记信息,对该皮肤检测数据集中的所有图片进行颜色空间转换,对转换后的所有图片和对应的标记信息进行向量化处理,以得到样本矩阵和标记矩阵,并对样本矩阵中每一列的值进行归一化处理;
本步骤具体为,首先通过颜色空间转换将RGB颜色空间的皮肤检测数据集中的所有像素(其数量为n)转换为nRGB、XYZ、YCbCr、YUV、YIQ、i1i2i3、YES、HSV、HLS、TSY、LAB、LUV、YPbPr、YCgCr一共14种颜色空间(应该理解这仅仅是出于示例的目的,也可以转换为其它数量和类型的颜色空间),对于每一种颜色空间,转换的结果是得到一个n行3列的矩阵,从而所有15种颜色空间构成n*45的矩阵,然后,去除掉45列中颜色分量重复的列(例如YES和XYZ中Y颜色分量就是重复的),从而得到n*38的样本矩阵,同时,n个像素中,如果某个像素对应的标记信息是黑,则将该像素向量化处理后标记矩阵中该像素对应的值设置为0,否则设置为1,从而得到n*1的标记矩阵C;最后,对得到的该样本矩阵的每一列的值进行归一化处理。
(2)计算归一化处理后的样本矩阵中的每一列和标记矩阵之间的互信息,将互信息结果按照从大到小的顺序进行排列;
(3)从步骤(2)中得到的排列结果中选择K个最大的互信息(其中K的取值范围是大于0,且小于等于38,优选值为8),对应的颜色分量作为待选集合IFS={fi,f2,…,fK},其中f表示互信息对应的颜色分量;
(4)设置计数器i=1;
(5)判断计数器i是否等于K+1,若等于,则转入步骤(10),然后过程结束,否则设置38个颜色分量组成的集合为U={Ui,U2,…,U38},并转入步骤(6),其中U中的元素表示对应列的颜色分量,
(6)初始化颜色特征集合S为空,并将待选集合IFS中的第i个颜色分量fi加入该颜色特征集合S中,并从集合U中删除该颜色分量fi;
(7)对集合U中当前的所有元素,计算将每一个元素Um加入颜色特征集合S之后颜色特征集合{S,Um}与标记矩阵C之间的互信息I({S,Um};C),并对得到的所有互信息按照从大到小的顺序进行排列,选取其中最大的M个(其中M取值范围是大于0,小于U中当前的所有元素的个数)互信息对应的颜色分量,记为集合TFS={ft1,ft2,…,ftM};
(8)对于集合TFS中的每一个元素ftp,计算随机森林(Random forest)分类器在颜色特征集合{S,ftp}上的分类效果,从而得到M个不同的分类结果,并选择M个分类结果中分类准确率最高的一个元素对应的颜色特征ftg,将其加入颜色特征集合S中,并从集合U中删除该颜色分量ftg;;
应该理解的是,本发明并不局限于上述分类器,也可以使用本领域公知的其他分类器,例如支持向量机(Support vector machine,简称SVM)以及贝叶斯分类器。
(9)判断颜色特征集合S中当前的所有元素数量是小于还是等于阈值,如果小于则返回步骤(7),如果等于,则将此时的颜色特征集合S和其分类准确率记录在集合L中,设置i=i+1,并返回步骤(5);
在本发明中,该阈值被设置为3,其取值范围是1到38。
(10)从集合L所包含的的K个颜色特征集合中,选择分类准确率最高的颜色特征集合,该颜色特征集合最终构成最佳的皮肤检测混合颜色空间。
实验结果
结合提出的特征选择算法和上文提到的相关参数,我们在3个数据集上分别进行测试,得到的结果见表1。其中,实验结果1是取K=8,M=10时分别在3个数据集上得到的结果。实验结果2是在取K=M=1时得到的结果。
表1
根据上表1的数据,我们可以得出以下结论:
(1)从3个数据集上的分类表现来看,DB-Skin数据集上的分类效果最差,SFA数据集次之,HGA数据集上分类效果最好。这可能是因为DB-Skin数据集中图片分辨率较低,而且图片背景和光照条件均比较复杂,从而导致皮肤像素和非皮肤像素之间的颜色更难分辨,而HGA和SFA数据集均是在室内采集的手势或面部照片,图片中干扰皮肤检测的因素相对较少,所以分类结果较为准确;
(2)比较传统颜色空间、文献中已提出的混合颜色空间和实验结果1的数据,可以发现按照我们提出的特征选择方法,在3种数据集上分别得到的混合颜色空间,其分类表现均优于已有的传统颜色空间和已有的混合颜色空间。这说明,对于给定数据集,我们提出的特征选择算法可以稳定地找到最佳颜色特征集合,这表明该特征选择算法具有较好的鲁棒性;
(3)比较实验结果1和实验结果2的数据,可以发现,若每次选择特征加入S时,都选择使互信息最大的特征,最终得到的颜色特征集合,其分类效果并不是最好的。因此我们在算法中引入分类器来评价颜色特征集合和通过调节K,M来扩大特征选择算法搜索范围的做法,确实提高了基于互信息的特征选择算法的表现。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。