论文部分内容阅读
伴随着计算机科学的发展,人脸检测已经成为目前人们研究的热点方向之一。在此背景下,本论文根据人脸的肤色特征,设计出了基于肤色的人脸检测算法,能快速地对人脸进行识别和检测。首先对输入的包含人脸区域的图片进行光照补偿,弥补由于光照或阴影造成的光线分布不均匀等现象。其基本思路是:将输入图像中的所有像素值的亮度按大小的顺序从高到低进行排列,取出一定百分比的像素,并判断这些像素的数目是否大于某个阈值,将它们的亮度值作为“参考白”。其次,建立人脸肤色模型,在YCr Cb格式的图像中,人脸区域的色彩与背景区域有明显的不同,通过二值化之后,区分人脸区域和背景区域,从而建立人脸肤色的二值化模型。再次,对二值化图像进行形态学的腐蚀和膨胀处理,采用此技术的目的不仅能细化图像,还能使人脸区域的轮廓连通圆滑,接着进行中值滤波处理,进一步去除掉非人脸区域的小面积区域,得到更为符合人眼关注的人脸区域。最后,对该二值化图像进行人脸区域的轮廓提取,根据设定的“检测标准”,寻找出目标对象的轮廓所在的像素点;根据“跟踪标准”和“被检测”的像素的特征,找寻到目标对象上的其他像素点确定人脸所在的区域,通过一个单独的轮廓线进行轮廓跟踪,然后进行几何轮廓筛选,如果图像中人脸轮廓的几何面积大于某一阈值且人脸宽度和长度的几何规则满足一定的比例,可以确定是人脸区域。根据轮廓跟踪与几何规则判断,得到人脸所在区域并标记人脸的个数。基于肤色的人脸检测算法采用Microsoft Visual Studio 2008开发环境下的C语言实现,测试结果表明,本文所提出的基于肤色的人脸检测方法具有较高的检测率,无论是单个人脸的图像,还是包括至少8人以上的人脸图像,都具有70.37%的准确率,且该检测算法适应各种复杂的场景,尤其是在多个人脸的测试图像中,不受光照、被测人员的姿态变化、附属物遮挡等影响,具有很强的适用性。