• 图纸下载
  • 专业文献
  • 行业资料
  • 教育专区
  • 应用文书
  • 生活休闲
  • 杂文文章
  • 范文大全
  • 作文大全
  • 达达文库
  • 文档下载
  • 音乐视听
  • 创业致富
  • 体裁范文
  • 当前位置: 达达文档网 > 应用文书 > 正文

    基于代价敏感性AdaBoost的皮肤分类器

    时间:2021-01-14 08:01:24 来源:达达文档网 本文已影响 达达文档网手机站

    赵健成 赵逢禹

    摘 要:为解决不同光照条件下皮肤难以检测的问题,提出一种基于代价敏感性CS-AdaBoost算法的皮肤分类器。通过对皮肤像素提取6个基于亮度值的像素特征,并循环选取特征,使用基于CS-AdaBoost算法程序训练最佳弱分类器,通过对所有最佳弱分类器的加权线性组合得到最终的皮肤分类器。由于在算法程序中引入了代价因子θ,使分类结果偏向总错分代价较小,即提高了皮肤样本的分类正确率。使用SDD皮肤数据库评估该皮肤分类器性能,结果表明,该皮肤分类器分类正确率达到了85%,比传统皮肤分类方法提高了5%。

    关键词:皮肤分类器;CS-AdaBoost;亮度特征

    DOI:10. 11907/rjdk. 191580

    中图分类号:TP301   文献标识码:A                文章编号:1672-7800(2020)003-0031-04

    A Skin Classifier Based on Cost_Sensitive AdaBoost

    ZHAO Jian-cheng,ZHAO Feng-yu

    (School of Optical-Electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China)

    Abstract:In order to solve the problem of difficult skin detection under different illumination conditions, a skin classifier based on cost-sensitive CS-AdaBoost algorithm is proposed. The skin classifier extracts six pixel features based on luminance values for skin pixels, and cyclically selects features using the CS-AdaBoost algorithm program to train the best weak classifier, and finally passes the weighted linear combination of all the best weak classifiers to get the final skin classifier. Since the cost factor θ is introduced in the algorithm program, the classification result of the proposed skin classifier tends to be less costly, that is, the classification accuracy rate of the skin sample is improved. Finally, the SDD skin database was used to evaluate the performance of the proposed skin classifier. The experimental results show that the classification accuracy rate of the proposed skin classifier is 85%, which is 5% higher than the traditional skin classification method.

    Key Words:skin classifier; CS-AdaBoost; brightness value features

    0 引言

    肤色检测[1]是在图像中选取对应人体皮肤像素的过程,是人脸检测[2-3]、识别、跟踪和视频处理的关键。肤色检测是人脸或手势等身份、情感和行为识别系统的重要组成部分,在安全防范、反恐和医疗保健等领域,以及与人有关的各种机器视觉系统中得到了越来越多的应用,具有巨大的市场潜力。

    肤色检测方面研究成果较多。在文献[4]中,Luh使用皮肤检测器将皮肤像素与其它部分分离,然后将分离得到的肤色区域作为人脸检测算法的目标对象。尽管皮肤检测器在正常情况下效率较高,但如果图像中包含类似皮肤的非皮肤像素,则会将这些区域误识别为肤色区域。文献[5]中作者提出了一种复杂光照下的肤色检测技术,针对Hsu R L肤色检测算法在高亮度区间漏检率高的情况,提出一种新的非线性变换彩色空间YCbCr对人脸肤色进行分割。实验表明在人脸出现高光时,新提出的非线性彩色空间变换算法定位准确,漏检率和误检率低;Insung Hwang等[6]基于亮度值提出了一种新的皮肤检测算法,在他们的算法中,通过眼睛检测器和椭圆边界检测面部,从面部区域获得颜色分量相对于亮度值的联合高斯分布,然后利用从面部区域获得的统计数据,将图像中的每个像素分类为皮肤或者非皮肤。

    Freund & Schapire[7]引入AdaBoost,提出基于训练与学习的方法提高皮肤检测与识别精度。将弱分类器有效集成到强分类器中,用于改进任何给定学习算法的分类性能。其性能优异,广泛应用于肤色识别。然而该方法的缺点是训练时间过长而且执行效果依赖于弱分类器选择。针对训练时间过长问题,文献[8]采取动态权重修剪,在处理大型数据集时大大提高了训练速度。在每次迭代中,算法丢弃大多数重量轻的样本,只保留重量大的样本进行训练。这样在训练期间,只有一小部分样本用于训练弱分类器,速度大大提高,缺点是肤色区域的精確率不是很理想。

    目前AdaBoost算法以训练样本分类正确率为目标,其基于所有样本被错误分类的代价相等。但是现实生活中很多分类问题都属于代价敏感分类,仅仅考虑分类错误率是不够的。比如将有病误诊为无病,其代价一般会比将无病误诊为有病大得多,前者会导致失去生命,后者只增加成本,皮肤检测亦是如此。作为人脸检测、识别、跟踪和视频处理的关键,皮肤样本的精确率尤为重要,将非皮肤错误分类为皮肤的代价要远远大于将皮肤错误分类为非皮肤的代价。

    本文主要研究在不同光照和复杂背景条件下的皮肤检测。为了能更好地提高皮肤样本的精确率,采用了一种改进的AdaBoost算法,称为基于代价敏感性AdaBoost(Cost-Sensitive AdaBoost)[9]算法。该算法在AdaBoost算法中引入代价因子[θ],在样本权重调整时,对于代价高的误分类样本大幅提高其权重,将整个算法的分类结果偏向错分代价较小的類,同时加快训练过程的收敛速度。本文通过对皮肤像素提取6个基于亮度信息的特征,并基于该算法训练弱分类器,最终输出皮肤强分类器。

    1 Cost-Sensitive AdaBoost

    CS-AdaBoost针对训练数据集上不同类别样本错分后造成的损失问题,在AdaBoost算法基础上进行了改进。AdaBoost算法简单描述如下:

    算法1:AdaBoost

    输入:训练数据集S={([xi,yi])},i=1,…,N,[yi]∈{+1,-1}代表皮肤区域与非皮肤区域。

    输出:最终的强分类器H(x)。

    处理过程:

    (1)给定样本空间S={([xi,yi])},i=1,…,N,并初始化样本权重。

    (2)对于t=1,2,…,T(这里的t代表一个特征):①用弱学习算法训练样本数据集,得到弱分类器[ht];②计算弱分类器的分类误差率;③计算该弱分类器的权重系数[αt];④根据该弱分类器的分类误差率更新样本权值分布,对于分类正确时样本权重值取值较小,分类错误时取值较大,这样下一轮训练集样本中权重值较大的样本会得到更多的重视;⑤循环选择下一个特征,并用更新后的训练集样本进行训练,得到下一个弱分类器。

    (3)利用加权平均法构建弱分类器的线性组合,得到最终的强分类器[H(x)]。

    为使算法由关注错误率最小转而关注分类代价最小,CS-AdaBoost算法在对样本权重值更新时对AdaBoost进行了改进。由于AdaBoost算法在抽取训练集样本时,样本权重与被抽中的概率成正比,所以在CS-AdaBoost中引入一个代价参数[θ],将皮肤以及非皮肤这两类样本分别给予不同的权值,并在每一轮训练后根据不同类别样本造成的损失大小动态更新样本权值分布,从而组成代价敏感的强分类器。

    本文主要有两种类别的错误分类:①将非皮肤区域错误分类为皮肤区域;②将皮肤区域错误分类为非皮肤区域。由于本文主要考虑的是皮肤样本的高精确率,因此对于第②种错误分类给予较大的权重值,对第①种则给予较小的值,这样在后续的弱分类器训练中,第②种错误分类情况的训练样本会得到更多的重视,从而在最后输出的强分类器中皮肤样本的精确率最高。

    2 基于CS-AdaBoost算法的皮肤分类器

    为有效检测出输入图像中的皮肤区域,采用20×20的矩形窗口对图像进行扫描,以此作为一个训练样本。由于在CS-AdaBoost学习过程中,为训练每个弱分类器,训练集样本被重复使用多次,因此对输入图像进行肤色粗分割预处理采样,去除不包含任何肤色区域的样本,从而减少训练集样本数量,提高弱分类器训练速度。

    实际上,皮肤像素不同的特征体现在其区域中的亮度平均值上,亮度强度能有效识别皮肤像素 [10]。因此,亮度值是一个非常重要的肤色特征,被作为本文实验特征提取的一个重要依据。

    训练皮肤分类器过程如图1所示。首先对输入图像进行预处理,然后提取6个基于亮度的像素特征,根据这些特征分别训练弱分类器,最后输出最终的皮肤分类器。

    2.1 图像训练集采样

    对输入图像转化到YCbCr 颜色空间[11]。YCbCr 颜色空间是一种有效的肤色表示空间[12],其中Y表示亮度,颜色的色度信息由分量Cr和Cb表示,Cr是红色分量R与亮度Y的差值,Cb是蓝色分量B与亮度Y的差值。人的肤色在外观上的差异主要由亮度引起,实验表明肤色在YCbCr颜色空间的CbCr平面上分布在一个近似椭圆的区域范围内。肤色图像的CbCr分布如图2所示。

    首先将每幅输入图像分割成若干个20×20大小的矩形区域,作为初始训练集样本,然后将这些样本分别转换到YCbCr颜色空间,对样本中的每个像素按式(1)进行计算,判断是否属于皮肤区域。

    色度在阈值范围的像素取值为1(肤色区域),不在阈值范围内的取值为0(非肤色区域),由此得到该20×20矩形区域的二值图像。若该区域的像素取值全为0,则去除该样本,最终得到经过筛选后的训练集样本。

    2.2 分类器训练

    皮肤检测分类器基于多个弱分类器构建而成,每个弱分类器都是基于一个简单的特征构建。在本文实验中选择6个基于亮度的像素特征[13],每个样本是一个20×20的矩形区域,通过计算该区域内所有像素的亮度信息得到像素特征。

    将该区域所有像素划分为3个亮度值频带,分别是[0,85]、(85,170]以及[170,255],计算得到每个频带像素的亮度平均值,将其作为该样本的第1、第2和第3特征;然后计算每个频带像素的亮度平均方差,将其作为该样本的第4、第5和第6个特征。

    算法2:SKIN-CS-AdaBoost

    输入:训练数据集S={([xi,yi])},i=1,…,N,[yi]∈{+1,-1},代表皮肤区域与非皮肤区域

    輸出:最终的强分类器H(x)

    处理过程:

    给定一个代价参数[θ],[θ]值的大小为自定义。

    计算出每个训练样本的样本代价[?i]:

    根据样本代价[?i]初始化训练集样本权重:

    给定t=1,…,T(T为弱分类器数量):

    (1)通过训练集样本权重[Wt]和训练集S训练弱分类器[ht]。

    (2)计算弱分类器的分类错误率[εt]:

    (3)计算得到该弱分类器的权重系数[αt]:

    (4)更新下一轮训练集样本权重[Wt+1]:

    其中[Zt]是归一化因子,它是所有样本的权重之和:

    (5)输出最终的强分类器[H(x)]:

    [H(x)=sign(t=1Tαtht(x))]   (8)

    在SKIN-CS-AdaBoost学习算法中,首先引入代价参数[θ],根据式(2)计算得到每个训练样本的样本代价[θi],再根据式(3)对每个训练样本初始化权重。这里选择代价参数[θ]>1,因为在训练集样本权重更新过程中, 对于区分是否为皮肤样本这样的二分类,弱分类器[ht]的输出值取值为{-1,1},[yi]的取值为{-1,1},对于正确的分类[yiht(xi)]>0,对于错误的分类[yiht(xi)]<0。为使皮肤样本在后续弱学习器中得到更多重视,选择[θ]>1,在式(3)中使皮肤样本的[θi]大于非皮肤样本的[θi]。在式(6)中更新下一轮训练集样本权重[Wt+1],错误分类的皮肤样本权重将比错误分类的非皮肤样本权重增加很多,并且正确分类的非皮肤样本权重将比正确分类的皮肤样本权重减少很多,从而大大提高皮肤样本分类精确率。

    SKIN-CS-AdaBoost循环选取皮肤6个分类特征训练弱分类器。首先选择第1个特征,通过训练集样本及其权重得到第1个弱分类器,然后根据式(4)计算该弱分类器的分类错误率,再根据式(5)计算得到权重系数,最后根据式(6)更新训练集样本权重值,选择第2个特征,进行下一轮训练,循环6次。

    循环完毕后得到6个弱分类器,根据式(8)加权组合得到最终的皮肤分类器。

    3 实验结果

    为验证本文提出的基于CS-AdaBoost的皮肤分类器性能,构造一个实证实验。实验数据集通过使用SDD皮肤数据库评估所提出的皮肤分类器性能。在文献[10]中发现SSD是一个非常广泛的数据库,适用于皮肤分类器评估,其中包含超过20 000个彩色图像,涵盖了世界各地不同条件下捕获的各种照片。

    本文把SKIN-CS-AdaBoost分类器和其它一些流行方法的最终结果进行视觉比较。在图3中,第1行显示原始图像,第2、3行是文献[14]中介绍的方法(CMYK1和CMYK2), 第4行是基于传统AdaBoost[15]的方法,最后一行是本文方法。

    从图3可以明显看出,第2列的原始图像中,左上方背景及右下方衣服包含类似皮肤的区域,对于这种情况,其它方法在将非皮肤像素与皮肤像素分离时面临困难,如CMYK1及CMYK2方法将部分背景分类为皮肤像素,在第3幅图像中,CMYK1和CMYK2将奶茶接受为皮肤区域。本文分类器针对这种情况进行了改进,可以观察到本文提出的方法比传统AdaBoost的检测方法精确率更高。

    在SDD数据库[16]上测试的结果如表1所示。其中,TP、FN、TN、FP和C代表真阳性、假阴性、真阴性、假阳性和总体正确性。可以看到,基于CS-AdaBoost的皮肤分类器具有更高的精确率。

    4 结语

    本文提出了一种基于代价敏感的AdaBoost皮肤分类器,该分类器对不同的错误分类提供不同的代价,动态更新样本权值分布,使分类器更加关注于肤色区域的精确率。测试集结果证明了该分类器的有效性。但在精确率提高的同时漏检率也有相应提高。因此,在使用时要根据不同的目的选择一个合适的代价系数。另外,由于最终的强分类器是以20×20的矩形区域进行扫描分类的,导致对平移的微小变化不敏感,因此通常在扫描图像中的某些皮肤区域周围进行多次检测,在后续研究中可考虑加入一些后处理方法加以改进。

    参考文献:

    [1]陈锻生,刘政凯. 肤色检测技术综述[J]. 计算机学报,2006,29(2):194-207.

    [2]祝秀萍,吴学毅,刘文峰.人脸识别综述与展望[J]. 计算机与信息技术,2008(4):53-56.

    [3]沈翔,朱建鸿. 基于肤色与改进Adaboost算法的人脸检[J]. 传感器与微系统,2019,26(11):143-145.

    [4]LUH  G. Face detection using combination of skin color pixel detection and Viola Jones face detector[C]. International Conference on Machine Learning and Cybernetics (ICMLC),2014:364-370.

    [5]GANESH B,SOLANKE,SONAL GORE. GPU accelerated computing for human skin colour detection using YCBCR colour model[C].  2017 International Conference on Computing, Communication, Control and Automation (ICCUBEA), 2017:1-6.

    [6]HWANGI,LEE  S H,MIN B,et al. Luminance adapted skin color modeling for the robust detection of skin areas[C]. 20th IEEE International Conference on Image Processing (ICIP),2013:2622-2625.

    [7]SCHAPIRE R,FREUND Y,BARTLEN P,et al. Boosting the margin:
    a new explanation for the effectiveness of voting methods[J]. The Annals of Statistics, 1998,110(26):1651-1686.

    [8]JIA H X,ZHANG Y J. Fast adaboost training algorithm by dynamic weight trimming[J]. Chinese Journal of Computers,2009(1):511-518.

    [9]ZHAI X Y,WANG X D,JIANG Y, et al. Multi-class cost sensitive adaboost algorithm based on cost sensitive exponential loss function[C].  2017 29th Chinese Control And Decision Conference (CCDC), 2017:6161-6166.

    [10]MARIáN BENIAK, JARMILA PAVLOVI?OVá. Luminance component in skin color detection[C]. 2011 18th International Conference on Systems, Signals and Image Processing, 2011:1-4.

    [11]邱迪.  基于HSV与YCrCb颜色空间进行肤色检测的研究[J].  电脑编程技巧与维护,2012(10):74-75.

    [12]SUKMAWATI N, ENDAH, HELMIE A,et al. Skin detection based on local representation of YCbCr color moment[C]. 2017 1st International Conference on Informatics and Computational Sciences (ICICoS), 2017:65-70

    [13]陶霖密,彭振云,徐光祐. 人体的肤色特征[J]. 软件学报,2001(7):1032-1041.

    [14]SAWICKI D J,MIZIOLEK W. Human colour skin detection in CMYK colour space[J]. Journal of Image Processing, IET, 2015(9):751-757.

    [15]李明瑞,傅明,曹敦. 基于膚色检测的 AdaBoost人脸检测算法改进[J]. 计算机工程,2012(19):147-150.

    [16]MOHAMMAD REZA MAHMOODI,SAYED MASOUD SAYEDI, FARIBA KARIMI,et al. SDD:
    a skin detection dataset for training and assessment of human skin classifiers[C]. 2015 2nd International Conference on Knowledge-Based Engineering and Innovation (KBEI), 2015:71-77.

    (责任编辑:杜能钢)

    收稿日期:2019-04-21

    基金项目:国家自然科学基金青年项目(61402288)

    作者简介:赵健成(1993-),男,上海理工大学光电信息与计算机工程学院硕士研究生,研究方向为图像处理、机器学习;赵逢禹(1963-),男,博士,上海理工大学光电信息与计算机工程学院教授、硕士生导师,研究方向为机器学习、多媒体技术。

    相关热词搜索: 敏感性 代价 皮肤

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网