一种基于LVQ神经网络模型的人脸检测方法

2021-07-14 01:30艳,祁
液晶与显示 2021年7期
关键词:肤色人脸神经元

王 艳,祁 萌

(成都工业学院 电子工程学院,四川 成都 610031)

1 引 言

人脸检测是指在一幅给定的图像中,采用一定的方法找出所有人脸的位置、大小和姿态[1-2]。随着电子商务和现代成像技术的快速发展,自动人脸检测技术已经广泛应用到除人脸识别外的其他应用领域,如面部表情分析、性别/年龄识别、图像视频搜索、人机交互系统、3D显示等应用领域。虽然人类可以非常容易地完成人脸检测、面部表情识别等,但是基于人脸图像分析的自动人脸检测技术却是一项复杂且及具挑战性的问题。自上世纪60年代人脸识别研究开始以来,人脸检测技术已发展了很长一段时间,但是现有的检测技术仍然面临很多问题,具体原因在于:(1)成像环境复杂;(2)人脸表情、姿态的多变性;(3)人脸遮挡等。

目前,国内外针对人脸检测的研究很多,常见的人脸检测方法有特征分析法[3-7]、模板匹配法[8-10]、SVM模型[11]、AdaBoost算法[12]、深度学习[13]等。基于知识规则的特征分析法主要包括3种:人脸形状轮廓、纹理以及肤色,其中肤色特征是人脸的显著性特征之一,且实际应用中采集图像多为彩色图像,因此基于肤色特征的人脸检测应用更为广泛。

机器学习作为一种特别适合涉及智慧问题的技术,近年来被引入目标检测、图像识别领域。神经网络作为机器学习的一个模型,已经被广泛地使用[14-19]。近年来,随着人工智能的快速发展,学习矢量量化(Learning Vector Quantization,LVQ)神经网络[20-23]逐渐受到广大学者的青睐。LVQ神经网络结构简单,只通过内部单一的相互作用就可以完成十分复杂的分类处理,也很容易将设计域中的各种繁杂分散的设计条件收敛到结论上来。而且它不需要对输入向量进行归一化、正交化处理,简单易行。因此,本文设计出一种肤色特征和LVQ神经网络相结合的人脸检测算法。首先分析人脸肤色特征,设定可以定位肤色区域的阈值条件,然后以该约束条件作为收敛条件,构建LVQ神经网络模型。然后选取100幅图像作为神经网络的训练样本,20幅图像作为测试样本。经过训练,得到了有效的权值。利用训练后的神经网将人脸从背景中分割出来,定位出人脸部分,最后,对分割后的图像进行形态学处理。

2 人脸肤色特征提取

肤色特征是面部的基本特征,不依赖于人的面部表情、姿态等,且具有稳定性,能够区分于大多数背景物体的颜色,因此提取图像的肤色特征作为人脸检测的方法具有简单直观的优点。利用肤色信息进行人脸检测的方法是根据肤色在某个色彩空间的肤色分布来检测人脸的,检测的准确率与颜色空间的选择密切相关。图1为肤色在不同颜色空间在的分布轨迹。从图1可以看出,颜色空间不同,肤色的分布特性不同。

图1 肤色在不同颜色空间分布图Fig.1 Distribution of skin color in different color spaces

在选择色彩空间时,需要考虑肤色在某个色彩空间的聚类特性,且不受光照条件的影响。基于肤色的人脸检测方法是通过确定每个颜色分量的阈值来分割出人脸部分的,所以在选择颜色空间时,需要考虑肤色在该空间的聚类特性。图2为肤色在RGB、YCbCr以及HSV颜色空间中各颜色分量的分布情况。由图2可知,RGB彩色空间中R、G、B分量关联性太强且很难将肤色聚类,因而不适合用来作为人脸肤色特征。HSV颜色空间中,各颜色分类紧凑型不好。YCbCr空间模型的Cb、Cr分量相互独立,肤色在该空间具有良好的聚类特性,且受亮度变化影响较少,因此本文选择将Cb、Cr分量作为人脸肤色特征进行人脸检测。

虽然YCbCr色彩空间具有良好的聚类特性,但肤色分布区间较大,会受到非肤色区域的干扰,且该色彩空间并非对所有彩色图像都适合,因而考虑融合多种颜色空间,提取相应的颜色分量作为人脸肤色特征。

(a)肤色在RGB空间中的分布情况(a)Distribution of skin in RGB

HSI色彩空间模型是从人的视觉系统出发,直接使用颜色三要素色调、饱和度和亮度来描述颜色。亮度是指人眼感觉光的明暗程度。色调和饱和度统称色度,用来表示颜色的类别和深浅程度。由于人眼对亮度的敏感程度远强于对颜色浓淡的敏感程度,HSI色彩空间更符合人的视觉特性。另外,HSI空间中亮度和色度具有可分离性,更适合于图像处理和机器视觉中的算法处理。肤色在HSI空间中的颜色聚类情况如图3所示。H分量和S分量相互分离,且明显分布在特定区域内,具有良好的聚类特性。

图3 肤色在HSI空间的聚类特性Fig.3 Clustering characteristics of skin in HSI space

综上分析,选定Cb、Cr、H、S作为描述人脸信息的特征,将人脸区域从背景区域分离出来。

3 基于LVQ神经网络的人脸检测算法

基于LVQ神经网络的人脸检测算法如图4所示,具体实现步骤为:

图4 基于LVQ神经网络的人脸检测算法Fig.4 Face detection algorithm based on LVQ neural network

(1)通过摄像系统采集人脸图像;

(2)将图像转换到YCbCr及HSI颜色空间,提取Cb、Cr、H、S颜色分量;

(3)以90≤Cb≤130,130≤Cr≤170,0.05

(4)创建LVQ网络,将训练集数据送到网络对网络进行训练,直到迭代中止;

(5)网络训练收敛后,对测试集数据进行预测,即对测试集的数据进行测试;

(6)根据三庭五眼规则最终定位出人脸区域。

3.1 LVQ神经网络模型

LVQ神经网络是从Kohonen算法演变而来的一种输入前向神经网络,属于有监督学习方法。LVQ神经网络由输入层、竞争层和输出层3层神经元组成。输入层与竞争层采用全连接的方式,竞争层与输出层采用部分连接的方式,竞争层神经元个数总是大于输出层神经元个数,每个竞争层神经元只与一个输出层神经元相连接。通过网络训练,输入层和竞争层之间的权值会发生改变并逐渐聚类。竞争层的神经元通过竞争,胜者的神经元被激活为1,而其他神经元为0,与激活神经元相连接的输出层神经元状态也调整为1,而与未激活神经元相连接的输出神经元状态为0,从而给当前样本进行分类。

基于肤色信息特征的人脸检测方法是基于图像像素分类的一种检测方法,根据肤色信息在各颜色空间中的聚类特性发现,采用LVQ神经网络对像素进行分类是非常适用的。根据前述分析,选用Cb、Cr、H、S用来描述人脸特征,作为LVQ神经网络的输入,输出则分为2类,人脸像素和非人脸像素。

3.2 LVQ神经网络训练

图5为用于人脸检测的LVQ神经网络模型。LVQ神经网络通过自主学习来完成对输入向量的分类,在完成模型构建后,需要对模型进行不断训练。具体实现步骤如下:

图5 基于LVQ神经网络的人脸检测模型Fig.5 Face detection model based on LVQ neural network

(1)训练集/测试集产生

选取100幅图像作为训练图像,20幅图像作为测试图像,分别构造训练集和测试集。图像大小为250×250像素,每张图像按类存储为1个62 500的行向量,这样训练集有100×62 500个样本,测试集有20×62 500个样本。

(2)创建LVQ网络

利用newlvq()函数创建LVQ神经网络,输入向量为Xi=[CbCrHS],i=1,2,3,…,400 000;竞争层神经元的个数设为20,学习速率为0.01。由于训练集是随机产生的,所以参数PC值需要计算,计算方式为人脸像素占整个图像像素的比例。

(3)训练LVQ网络

(a)将输入向量X=[CbCrHS]T送到输入层,计算竞争层神经元与输入向量的距离;

(b)与输入向量距离最小的神经元为获胜神经元;

(c)根据分类结果是否准确,调整获胜神经元的权值;

(d)训练次数达到设定值,返回步骤(a)进行新的样本训练,直到训练结束。

4 实验与分析

4.1 实验效果

基于本文提出的算法,搭建实验平台进行性能测试。采用Intel Core i5,3 GHz CPU,3G内存计算机,配合Win7、Matlab作为实验平台。图像数据采用LFW人脸数据。LFW人脸数据集是目前做人脸检测与识别常用的数据集,图像均来自于真实场景,共有5 749人的13 233张人脸图像,图像大小为250×250。

实验过程为:随机从图像数据集中选取100幅图片作为训练样本,20幅图像作为测试样本。将图像转换到YCbCr和HSI颜色空间,提取图像的Cb、Cr、H、S颜色分量,分别构造100×4大小的训练数据集和20×4的测试数据集,用作LVQ神经网络的输入,输出为0和1,分别表示非人脸像素和人脸像素。LVQ神经网络模型迭代次数为150次,误差为0.001。

训练完成后得到了有效的权值,利用训练后的LVQ网络对人脸进行检测,实验结果如图6所示。图6(a)为待进行人脸检测的原始图像,经过LVQ神经网络模型分类后,可以有效地将肤色区域和非肤色区域区分开,如图6(b)所示。由于分类方法采用的是基于肤色信息进行分类,经过LVQ网络模型分类后的图像仍然存在非人脸区域,因此需要运用辅助方法进行精确人脸定位。观察图6(b)人脸区域发现,人眼部分非常明显地区分于其他部位,因此可以考虑用三庭五眼法精确定位出人脸区域,得到如图6(c)的实验效果。

图6 LVQ模型人脸检测结果Fig.6 Results of face detect based on LVQ

4.2 对比实验

为进一步验证本文算法的适用性,选取了LFW、丹麦艺术大学人脸库(AFW)和加州理工大学人脸库(Faces)数据集进行性能测试,并将本方法与文献[6]和文献[7]分别在上述3个数据集上进行了测试,测试结果如表1所示。

从表1可以看出,本文算法在LFW、AFW和Faces3个数据集的正检率分别为76.82%,84.42%,100%,误检率分别为17.34%,12.34%,0,漏检率分别为21.55%,15.63%,0。实验结果表明,本文算法在Faces数据集上的正检率最高,误检率和漏检率最低,检测效果均优于AFW数据集和LFW数据集。这是因为:Faces数据集中的人脸图像全部为单人脸图像;AFW数据集既有单人图像,又有多人图像,且图像背景较为简单;LFW数据集则是一个无约束的数据集,人脸数多且存在多人重叠、遮挡、受光照环境、人脸朝向及拍摄距离等复杂背景的影响。本文算法在检测人脸时,主要依据的是颜色特征和三庭五眼法将人脸区域识别出来,若被检测图片中存在人脸遮挡、小尺度人脸的情况,由于利用肤色特征分割出来的人脸区域难以满足三庭五眼的比例,则会导致检测结果与实际情况出现偏差。

表1 性能对比测试结果Tab.1 Comparison result ofperformance test (%)

与文献[6]和文献[7]中相比,本文算法在三个数据集上的测试效果均表现出了较好的优越性,正检率提高了至少7%,漏检率降低了10%以上,误检率降低了近2倍。在Face测试集上的效果尤其好,正检率达到了100%,误检率和漏检率为0。实验结果表明:本文提出的基于LVQ神经网络的人脸检测模型具有一定的优越性。

考虑到纹理以及边缘均是可以作为将人脸区分于背景区域的特征,本文分别提取了纹理特征、边缘特征以及纹理特征、边缘特征相结合,作为LVQ神经网络的输入,用于人脸检测的性能测试,实验结果如表2所示。从表2可以看出,相较于肤色特征而言,利用纹理特征以及边缘特征进行人脸检测在性能上并没有实质意义上的提高。人脸的表情具有复杂多变的特点,同一个人会有不同的表情变化,从而引起面部轮廓特征和纹理特征发生变化,很难用统一的标准来精确进行人脸分割。而肤色特征不依赖于人的面部表情、姿态等,具有稳定性和良好的聚类性,便于神经网络训练和分类。综上所述,本文所提出的采用肤色作为特征,利用LVQ神经网络对人脸进行检测的方法具有良好的鲁棒性。

表2 多特征对比测试结果Tab.2 Comparison test result of multi-feature (%)

5 结 论

人脸检测技术作为人与计算机、机器人等各种交互系统的前置技术,广泛应用于图像搜索、智能监控、公安侦查等各个领域中。基于人脸肤色特征的稳定性和可靠性,利用LVQ神经网络模型稳定的分类识别能力,本文构造了一种结合肤色特征的LVQ神经网络模型用于人脸检测。经过实验测试表明,本文的方法能够在一定程度上提高人脸检测的性能,与其他算法在相同数据集上进行了对比测试,显示了良好的优越性。

但是人脸检测是一项复杂的系统工程,本文算法没有考虑重叠人脸、多尺度人脸以及遮挡人脸等复杂应用场景,因而存在漏检率和误检测率较高的问题。寻找具有特征不变性和尺度不变性的多特征融合的人脸检测方法以提高检测的实时性和准确性是下一步的研究方向。

猜你喜欢
肤色人脸神经元
有特点的人脸
一起学画人脸
Conversation in a house
人的肤色为什么不同
为什么人有不同的肤色?
三国漫——人脸解锁
跃动的神经元——波兰Brain Embassy联合办公
基于二次型单神经元PID的MPPT控制
ERK1/2介导姜黄素抑制STS诱导神经元毒性损伤的作用
毫米波导引头预定回路改进单神经元控制