APP下载

基于肤色的人脸检测方法研究与实现

2022-07-21李映钊王昇涂其远

机器人技术与应用 2022年3期
关键词:肤色色度人脸

李映钊 王昇 涂其远

(东华理工大学信息工程学院,南昌,330013)

0 引言

人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。其实就是一个机器对输入的图像或者一段视频内容进行分析检测出人脸,可以根据检测方法得到的人脸定位出五官位置,并做人脸特征提取,最后再与人脸数据管理库进行匹配的技术。由于视频监控正在快速普及,众多的视频监控应用迫切需要一种远距离、用户非配合状态下的快速身份识别技术,以求远距离快速确认人员身份,实现智能预警。人脸识别技术无疑是最佳的选择,采用快速人脸检测技术可以从监控视频图像中实时查找人脸,并与人脸数据库进行实时比对,从而实现快速身份识别。而本文所提到的基于肤色的人脸检测技术就可以实现快速检测人脸的目的。

1 系统简介

一直以来,人脸检测及识别技术都是计算机视觉和计算机图形学领域的研究热点和难点。但其实,这项技术的本质就是一个分类管理过程:利用分类器的特性来区分截取到的图片中的人脸和非人脸。本技术是通过将不同程度大小的图片输入到训练器中,训练器会根据匹配算法来判断图像中是否存在人脸。因为一张图像的任何部位都有可能出现人脸,所以需要用一个固定大小的框来对图片进行一个全面的扫描。这种通过固定大小的框对图片进行前前后后,左左右右扫描的技术被称为滑动窗口技术。又因为图像中会存在不同大小的人脸,所以还需要对图像数据进行相应程度的放大和缩小,然后再采用前面提到的方法进行扫描。但是反复缩放和扫描会导致整个检测过程消耗大量时间。又因为一个人脸可以检测到多个候选框,所以还需要将测试结果合并到一起进行筛选,这需要用到非极大值抑制技术。

2 系统设计

肤色是人脸的基本结构特征,是最简单直观地体现。除了亮度,肤色在肤色空间中也有一定的聚类性。通过肤色检测和分割可以进一步检测出人脸区域。

本技术的设计思路正是以人脸的肤色为出发点,首先根据图片亮度参考点对其进行划分,对图片较暗的部位进行光照补偿,再根据肤色在YCbCr颜色空间中的聚类特征,利用简单高斯模型对肤色进行建模,接着对得到的肤色概率图进行形态学处理,再与输入的图形像素参数作对比,就能实现肤色分割。最后,采用一种简单的人脸面部区域筛选准则来限定面部肤色区域,以便达到对人脸的框选,从而实现人脸检测。[1]

基本流程:

1)输入图像;

2)对图片进行光线补偿;

3)选择色彩空间;

4)图像形态学处理;

5)建立肤色模型;

6)对上述处理后的图片进行肤色分割;

7)对人脸区域进行筛选;

8)最后确定人脸区域。

流程图如图1所示。

图1 人脸识别基本流程

2.1 光线补偿

图片亮点个数小于参考点的个数会导致图像整体偏暗。为对图片肤色分割,需要提高图片亮度、进行光线补偿。本文中采用了参考白算法来对图像进行光线补偿。对参考白算法作出研究的依据有两点:白色的像素存在于许多图像中,尤其是人脸图像中,除了眼球以外的部分几乎都是白色。因此,可以将具有亮度最高的像素值可以调整到255;原始图像需要进行光补偿的地方拥有明显特征,因此当光补偿扩展到整个图像数据区域时,不会影响图像的原始特征和信息,也不会从本质上影响肤色检测。

首先,按照从高到低的顺序排列图像中像素的亮度。以像素的前5%作为亮度基准,并根据该基准调整以下颜色分量。这样,非参照白色部分中的像素的RGB值将相应地增大,从而确保照明能够尽可能地减小对图像的影响。

实现过程:统计每个灰度值包含的像素数,通过循环得到排列5%的像素灰度值,并以此为参考白;计算光照补偿系数;原像素值分别乘以光照补偿系数,得到光照补偿后的像素值。[2]

常用简化RGB图像灰度值计算公式:

参考白像素的亮度平均值aveGray计算公式:

式中Grayref为参考白灰度值;GrayrefNum用为参考白像素数。

计算光线补偿系数coe公式:

效果图对比如图2所示。

图2 光线补偿效果图

具体流程如图3所示。

图3 光线补偿流程图

2.2 RGB与YCbCr的转化

在学习工作中,有时由于颜色空间的不同,图像处理的结果也会不同,因此需要对图像的颜色空间进行变换。使用YCbCr颜色空间的原因是基于人类视觉系统对色度的敏感性,而该空间中Y就代表了亮度,且其中的色度分量Cb、Cr不受亮度影响,基于这一特点就可以把Y有效的分离出来。由于视觉系统对色度的敏感度低于亮度,色度通道的采样率可以低于亮度,视觉质量不会明显降低,从而达到压缩的目的。对于人脸识别来说,色度对人脸的识别结果会产生极大的影响,因此需要将RGB空间的色彩模式转换为YCbCr[3]。YCbCr与RGB信号传输相比还有一个优点就是它只需要占用极少的频宽,而RGB则要求三个独立的信号同时传输,所需频宽较大。

RGB色彩空间转换为YCbCr色彩空间公式:

图4 色彩空间转换步骤

2.3 图像形态学处理

仅对图片光线补偿仍不足以支持对图片肤色分割的顺利进行。这时,就需要利用到图像形态学处理技术进一步提高图像亮度、清晰度。

图像的二值化处理就是将图像上的点的灰度值为0或255,也就是将整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。将图像转换为二值图像后,可以对边界进行压缩和编码,可以节省大量的内存。基本上所有的图像处理最终都会归结为二值化的过程。因为二值化能够进行简单明了的规划,对冗余信息的筛选有很大帮助,对于一个计算机来说,进行图像二值化以后,图像的处理速度会大幅度提升。

笔者期望肤色区域的均值和非肤色区域的均值差异比较大,而二者各自的方差尽可能小。根据此原理王金庭等人提出了Fisher函数作为选择阈值的标准:

图像阈值的划分如下。

1)全局阈值:先得到一整幅灰度图像,然后根据灰度图像的直方图确定一个阈值,再利用该阈值对灰度图像进行二值化。

2)局部阈值:先将图像划分成一小块一小块,然后给每一块图像选定一个阈值,最后进行二值化。

参照文献[4]的二值化图像程序实现,在本系统的设计程序中,先读取图像,再通过函数计算阈值,最后根据阈值划分黑白图,具体过程如图5所示。

图5 图像二值化程序

2.4 建立肤色模型

人脸建模的方法有很多种,每种方法都有各自的优缺点,由于肤色模型与其他几何结构模型相比相对简单、速度快,所以选择了肤色模型。

将输入图像投射到任意一种色彩空间,在某些色彩空间下,肤色具有一定的聚类型。其中YCbCr颜色空间的性能最好。YCbCr是DVD、摄像机、数字电视等消费类视频产品中,常用的色彩编码方案。YCbCr不是一种绝对色彩空间,是YUV压缩和偏移的版本。YCbCr其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。人的肉眼对视频的Y分量更敏感,因此在通过对色度分量进行子采样来减少色度分量后,肉眼将察觉不到的图像质量的变化[5]。

建模基本思路:先将基于颜色空间的RGB模型转化为YCbCr模型;然后进行阈值分割;再滤波,本实验采用性能较好的中值滤波;随后特征区域提取,利用matlab的bwlabel函数;最后对标记的特征区域利用高宽度之比和面积两个指数来进一步简化特征区域。具体过程如图6所示。

2.5 进行肤色分割

每个人的皮肤都具有独特的颜色,通过人脸皮肤可以清晰地区别出外部背景。由于皮肤的颜色在颜色空间中占据了一定的范围,所以我们只要计算出这个范围的值,就能通过过滤技术把自己的皮肤从背景中剥离出来。根据人脸特征的特定位置和形状规则,对过滤出的人脸皮肤进行分割。其中人脸的面部区域包含着眼睛的位置,这与其他部分皮肤有很大不同。将分割后的整个面部皮肤转化为二值图像,就可以从黑百图像中区分出皮肤和眼睛。方法就是计算出黑色部分的质心坐标,也就是眼睛的位置。虽然计算出的质心不仅仅有两个,还有眉毛、鼻子和嘴巴的质心。但是可以根据人脸特征的先验知识从中判断出正确的人眼质心坐标。

判断肤色:通过设定当前点的Cb、Cr值,对比判断出图片中的肤色部分,逻辑如图7所示。

判断眼睛位置:如图7所示,根据设定的数值进一步判断二值图像中哪块区域含有眼睛块,从而进一步筛选人脸部分。

图8 眼睛判断程序

2.6 人脸区域筛选

本文设计先通过肤色模型的高斯分布导出人脸肤色分布概率图,再经过图像二值化处理,与输入图像进行比对排除非人脸区域,进一步缩小区域面积,再通过划分图像像素阈值,进行做差比较,多次累计重叠面积,达到再次缩小非人脸区域的目的,最后根据人脸长宽高比例,设置限定范围,从而定位人脸,具体过程如图9所示。

图9 人脸筛选流程

其中人脸框的算法是先标记出图像的连通区域,再根据设定的人脸长宽比用函数画框定位人脸以确定人脸区域[6]。

人脸识别效果如图10所示。

图10 人脸筛选图

3 结束语

本文基于肤色是人脸最显著的特征提出了基于肤色的人脸识别技术。基于肤色的人脸检测法可以更快速地定位到图片上人脸的大致位置框口并将其分割出来,基于图像二值化和图像像素阈值可以更精确地找出人脸的具体位置,基于光照补偿和图像形体学处理可以使得人脸更加清晰,更便于进行人脸识别。本文探讨的人脸检测技术实现方法的相关研究,目的是为人脸识别技术提供一个研究方向和参考。

猜你喜欢

肤色色度人脸
有特点的人脸
Conversation in a house
人的肤色为什么不同
三国漫——人脸解锁
基于改进色度模型的非接触式心率检测与估计
景德镇早期青白瓷的器型与色度
如何提高苹果的着色度
马面部与人脸相似度惊人
长得象人脸的十种动物
肤色检测和Hu矩在安全帽识别中的应用