摘" 要:随着计算机技术的快速发展,人脸检测已经应用到各个领域,但是依然存在在低光照和有遮挡等复杂背景下人脸检测率低的问题,针对这一问题,文章提出了一种基于概率加权的AdaBoost与YCrCb颜色空间算法相结合的人脸检测方法。文章使用Haar-like矩形特征作为人脸特征的提取算法,将概率加权的AdaBoost算法与改进的YCrCb颜色空间算法相结合提高人脸检测的检测率。实验证明,在不同光照下、不同角度以及面部遮挡下的情况下,文章提出的算法可以在提高检测率的同时,大幅度地降低计算的复杂度。
关键词:人脸检测;矩形特征;概率加权的AdaBoost;检测率
中图分类号:TP391.4 文献标识码:A 文章编号:2096-4706(2025)03-0079-06
Face Detection System Based on Probability-weighted AdaBoost and YCrCb Color Space Algorithm
MA Wenting, JIANG Nannan
(Harbin Huade University, Harbin" 150025, China)
Abstract: With the rapid development of computer technology, face detection has been applied to various fields, but there are still problems of low face detection rate in complex backgrounds such as low light and occlusion. Aiming at the problem, this paper proposes a face detection method based on probability-weighted AdaBoost and YCrCb color space algorithm. Haar-like rectangular features are used as the extraction algorithm for face features in this paper, and the probability-weighted AdaBoost algorithm is combined with the improved YCrCb color space algorithm to improve the detection rate of face detection. Experiments show that the algorithm proposed in this paper can greatly reduce the complexity of the calculation while improving the detection rate under the conditions with different light, different angles and face occlusion.
Keywords: face detection; rectangular feature; probability-weighted AdaBoost; detection rate
0" 引" 言
人脸检测是计算机视觉领域的一个活跃的研究领域,人脸检测技术已经广泛应用于移动支付、门禁、安检等场景,给大众生活带来了便利的同时也引发了新的安全问题[1]。在复杂环境中光照条件不稳定,如强光、弱光、背光等,都可能导致人脸图像特征不明显[2-3]。从而影响检测效果;人群、建筑物、树木等遮挡物,以及光影变化、动态物体等干扰因素,会直接影响人脸检测的准确性[4-5]。检测率的高误报可能影响用户体验,引发安全隐患,提高人脸检测的准确度已经是得到高度重视。目前,已经发表了许多人脸检测算法。
Majumder等人提出了应用Haar级联分类器的进行人脸识别的技术,通过使用来自全正面面部照片,从而提高人脸识别的检测度[6]。针对人脸不同的面部表情,为了精准识别,提出了一种利用深度学习技术进行多模态面部表情识别的新方法,利用灰度共现矩阵(GLCM)从面部中提取显著特征,利用多类人工神经网络(MCANN)和Adaboost对人脸数据进行数据集训练和特征分类,区分数据库中的每一个独特人脸[7]。同时,采用AdaBoost算法进行人脸检测的研究利用Haar-like模型来表征人脸器官,在仿真软件中通过“积分图”转换来寻求Haarlike特征数值的快速计算。利用AdaBoost算法训练出一些具备人脸特性的弱分类器,通过设置不同权重的方式,把性能最佳的弱分类器群打造成为强分类器[8]。以上方法可以在一定程度上提高人脸检测技术的检测率,但在复杂的背景下,依旧面临着误报率增加的挑战。
本文提出了将计算机视觉库OpenCV的人脸检测和YCrCb(YUV)颜色空间算法相结合进行人脸检测,利用概率加权AdaBoost算法进行人脸特征提取的Haar分类器训练,通过提取检测人脸的特征与训练分类器中的数据进行比较,提高人脸识别的检测率。
1" YCrCb颜色空间算法
1.1" YCrCb颜色空间算法
YCrCb主要用于优化彩色视频信号的传输,压缩视频与图像。与RGB视频信号传输相比,其最大的优点在于YCrCb不需要三个独立的视频信号同时传输,减少了频宽的占用。其中“Y ”表示明亮度,也就是灰阶值;而“U ”和“V ”表示的则是色度,作用是描述影像色彩及饱和度,用于指定像素的颜色。“Y ”将RGB信号的特定部分叠加到一起,透过RGB输入信号来建立。“U ”与“V ”则定义了颜色的色调和饱和度,分别用Cr与Cb来表示。Cr反映了RGB输入信号红色部分与其亮度值之间的差异。而Cb反映的是RGB输入信号蓝色部分与其亮度值之间的差异[9]。
大部分图像是基于RGB空间,在RGB空间里亮度对人脸肤色影响特别大,使肤色点难以从非肤色点中分离出来,其为肤色区域的标定带来了难题。因此,RGB空间不适用于人脸检测。若将RGB空间转化为YCrCb空间,可以忽略Y(亮度)的影响,空间受亮度影响越小,肤色会类聚越高。如果将三维的空间转化为二维的CrCb,肤色点则会形成一定形状。
1.2" YCrCb颜色空间算法的改进
传统的YCrCb算法,在光照强度Y为[70,200]时,Cr值和Cb的值随着光照强度Y变化很小,聚类性较强,表现出很强的稳定性。然而,当光强度Y大于200时,Cr的值逐渐变小并且趋近于零。该现象的产生是由于YCrCb颜色空间固有的性质决定的,Y增大且趋向于255时,即图像趋近于白色,此时像素点的RGB值为0xffffff,即R、G、B趋向于255,即R与Y的值、B与Y的值越接近,而Cr值和Cb值则为红色分量、蓝色分量与亮度的差值,因此,Cr值与Cb值也同样趋近于0。如式(1)所示:
(1)
为了考察强光下,光照强度Y的变化与Cr、Cb的值的变化[10],通过采集若干幅光照强度大于200的人脸样本图片,选取每幅样本的固定位置的像素点,然后取其像素的RGB值,将其转化为YCrCb颜色空间的Cr、Cb的值,然后绘制Cr、Cb的值随光照强度Y变化的函数图像。根据函数图像拟合出Cr、Cb的值与光照强度Y的函数表达式。当光照强度大于200时,YCrCb颜色空间的计算式(2)如下所示:
2" AdaBoost算法及其改进
2.1" AdaBoost算法中的弱学习和强学习算法
AdaBoost算法中弱学习算法以及强学习算法,具体指的是分类器。在学习之后辨识准确率仅仅比随机的推测学习略高,或者辨识的准确率大于50%,可以认为是弱学习算法;能在多项式的运算中完成,并且学习之后精确率变得很高,则可以认为是强学习算法。
在任务的构造过程中,构造强学习算法是非常困难的。Valiant发表了弱PAC学习算法论文,Kearns发表了强PAC学习算法概念,这两种算法在算法机制上具有等价的关系,两位研究学者证明了多个弱的学习分类器如果能够叠加起来那就能转化为强学习分类器。其算法的原理图如图1所示。
2.2" AdaBoost算法中的Haar特征
AdaBoost算法的设计,采用的是图片的输入的矩形特征,也叫Harr特征。因而,对AdaBoost辨识训练算法速度影响的因子,主要有两方面是特征的提取和特征值的计算。面部的大部分特征是可以采用矩形特征简单的描绘,如图2所示。
通过图2表现的这几个矩形特征,人脸的一些特征被表示出来。比如右边一幅表示鼻梁两侧相对于鼻梁的颜色就比较深,中间一幅人脸图像表示脸颊区域的颜色相对于眼睛区域的颜色就比较浅。由此可见,相对于单运用像素点,使用矩形特征具有很大的优越性,而且人脸的比对速度变得更快。
2.3" 概率加权的AdaBoost算法
和Viola-Jones方法一样,本文使用了正样本(裁剪脸部)和负样本(无脸部的随机图像)构成的训练数据,并使用类Haar特征来构建弱分类器,在Adaboost算法中,权重被归一化使得总的加权误差和为1。正如Viola-Jones方法,弱分类器被选作为“最好的弱分类器”,其总加权误差小于0.5。
假设给定模式xi,每个最好的弱分类器ℎj提供ℎj(xi) ∈ {1,0},最终选择的最好的弱分类器H的最终决策是H(xi),则最好的弱分类器的加权和如下:
(3)
其中h1,h2,…,hm表示m个最好的弱分类器,α1,α2,…,αm表示每个分类决策的权重,hj对分类的取值为1(yes)或者0(no),其结果是分类器非线性决策(符号函数)的线性组合。
在原始的Adaboost方法中,两个最好的弱分类器具有相同的误差,无论正或负样本分类的概率有多大,都会被赋予相同的权重。本文引入一个新的加权系统,最好的弱分类器的选择(“是”或“否”)的权重作为最好的弱分类器在分类正样本和负样本的能力。通过给予最好的弱分类器更多的权重来降低误报率。
假如输入数据分类效果比随机数据效果好,则认为其弱分类是最好的弱分类器。假定给定一个最好的弱分类器的输出中为假阳性与假阴性的概率计算如式(4)所示:
(4)
其中,ETotal表示总误差,EFP表示假阳性误差,EFN表示假阴性误差,PFP表示假阳性错误概率,PFN表示假阴性错误概率。用计算的概率来建立一个考虑误差和概率来加权每个分类器选择的新的加权算法。实际上,具有相同误差但具有不同分类概率的两个分类器将有不同的权重,因为在为分类器分配权重时考虑了概率。则权重则可以为:
(5)
其中,εt表示一个分类器在t阶段的总误差。新alpha被称为“alpha的概率”,计算式如下:
(6)
本文提出的alpha与假阳性误差概率成反比,当给定的分类器具有较高的假阳性错误差时,其权重会降低;反之亦然。最好的弱分类器产生高PFP,就会给它一个相对较小的权重,从而产生一个强大的分类器,减少误报的数量。当分类器产生PFN增加时,式(6)中乘法符号项的分子值减小,降低了提出的alpha的权重。alpha的概率在更新权重是允许从错误分类的图像再次更新。根据式(6)提出的alpha将总是大于原始的alpha。因此,本文所提出的方法可以使错分样本的权重相对较高,提高最好的弱分类器的准确性。其算法步骤如下:
步骤1:输入数据。训练样本为(x1,y1),(x2,y2),…,(xn,yn),令y ∈ {1,0}分别用来标记正样本和负样本。
步骤2:初始化权重。,其中m,l分别表示正样本与负样本数量。
步骤3:训练T轮。具体如下:
1)规范第t阶段的权重w:
(7)
2)根据加权误差选择最好的弱分类器ℎt():
(8)
(9)
3)计算正样本i的假阳性误差,i=1,…,P:
(10)
4)计算负样本i的假阴性误差,i=1,…,N:
(11)
5)计算弱分类器分类概率:
(12)
6)计算alpha:
(13)
7)更新权重:
(14)
步骤4:输出的强分类器H(x):
(15)
其中,表示概率权重,ℎt()表示第t阶段的弱分类器。
3" 基于概率加权AdaBoost与YCrCb颜色空间算法
3.1" 训练样本提取
本文采用YCrCb颜色空间算法对检测样本进行预处理,其目的是为了提高检测速度及其基于概率加权的AdaBoost算法的误检率。
本算法采用的检测样本为Wider Face数据集,在trains训练集中共有158 989张图片,39 496个人脸用于验证集,这些人脸在尺度、姿态、光照、表情、遮挡方面都有很大的变化范围。首先对人脸面部的一些特性进行提取,并将其存储起来。本文使用的是开源计算机视觉库OpenCV分类器[11],目前OpenCV仅支持三种特征的训练检测,分别为HAAR、LBP、HOG。进行数据训练操作前,在数据集中选择部分人脸图片作为训练集,根据正样本与负样本进行处理,图例如图3所示。
正样本图片是由训练集的170张人脸图片组成,将正样本的图片进行大小归一化处理,处理成30×30的灰度图像样本进行保存。并将jpg替换为jpg 1 0 0 30 30,图片包含了一个正样本目标,矩形区域为0 0 30 30,这里由于我们的正样本只有一个目标,而且已经大小归一化为30×30的图像,获取供训练的vec文件,如图4所示。
负样本由网上随机的200张非人脸图片形成一个集合。将负样本进行归一化处理,并将其灰度化保存,灰度化的目的是提高运算效率,由于原始图片的信息量过大,而灰度的信息足够满足识别的需要,如果灰度化的信息量过大,可以采用二值化。
3.2" 训练算法
本文采用的是Haar分类器,Haar分类器比较常用的矩形特征如图5所示。
将预处理的样本图像进行处理,换而言之,提取灰度的Haar-like特征,利用积分图的概念是特征探测探测器在图像不同尺度下的特征计算都十分迅速,表征图像可以选用矩形特征。正常规格30×30的检测器中的矩形特征数量已经超过211 111个,恰当的矩形特征可以通过特定算法来进行筛选,将分类器合并成强分类器是这个算法的核心。此后,本文采用基于概率加权的AdaBoost算法对样本进行训练,获得对应的特征以及提取位置,其目的是减少检测时间。
3.3" 级联分类器
级联(cascade)的级数是由样本数量有一定关联的,适当的级数可以降低虚警率,提高检出率。级联结构应该在建立一个分类器时被注意,人脸图像中的人脸可以用来进行快速估计较可能出现的区域,进而能对其进行重点的关注。前期做的是使用cvHaarDetectObject()函数,利用Haar特征,其中包括边缘特征、线特征以及中心环绕特征,样例被级联boosted分类器进行训练。
如图6所示,通过前面正负样本的准备,利用OpenCV中opencv-traincascade,exe进行训练,通过执行命令为:opencv_haartraining.exe -vec pos.vec -bg neg\neg.txt -h 30 -w 30 -mem 800 -npos 170 -nneg 200 -mode all -data xml进行训练。
4" 实验测试与分析
为了测试基于概率加权的AdaBoost算法的人脸识别的可行性与有效性。首先,对单个人脸和多个人脸进行个体识别。单个人脸与多个人脸检测的辨识结果和辨识时间分别如图7所示。
在不同关照下、不同角度以及面部遮挡下等复杂情况中,同时进行多个人脸的检测,检测结果如图8所示。
基于概率加权的AdaBoost算法的人脸识别可以准确地检测到人脸,为了进一步测试本文提出算法的有效性,在Wider Face数据库与ORL数据集进行对本文提出的算法进行测试。ORL数据集由英国剑桥大学ATamp;T实验室创建,包含40人共400张面部图像,部分志愿者的图像囊括了姿态、表情和面部饰物的变化,其中训练样本为234张。Wider Face数据库随机抽取400张具有不同光照与表情的彩色人脸图片作为测试样本,检测结果如表1所示。
本文提出的基于概率加权的AdaBoost算法与YCrCb颜色空间算法相结合的人脸识别的方法不仅可以较为精准的识别图片样本中的人脸,且相比于传统的AdoBoost算法具有较高地检测率。本文算法的检测率高达98.41%,比传统的AdoBoost算法的检测率高出将近6%,检测时间仅为传统算法的1/8。通过对检测结果的分析,本文提出的算法可以在提高检测率的同时,降低计算的复杂度。
5" 结" 论
本文提出了基于概率加权的AdaBoost与YCrCb颜色空间算法人脸检测系统设计与实现,使用Haar矩形特征算法进行人脸特征的提取,通过概率加权的AdaBoost算法对人脸图像样本进行训练,将弱的分类器组合成更强的分类器,之后将训练的数据存入XML文件中,然后将待检测的样本提取特征后与训练的数据进行比对,之后比较计算直方图值的大小。本文提出的基于概率加权的AdaBoost与YCrCb颜色空间算法的人脸识别方法更加有效地提高了人脸识别的检测率。
当然,人脸识别的准确率和训练样本的多少和质量有密切的联系,通过增加正负样本的数量可以提高检测的准确率。在某些特殊场合进入的人员,可以专门的对其人员的图像进行采集和训练,这样对特殊人群的训练也能提高人脸识别的准确率。
参考文献:
[1] 王春东,李泉,付浩然,等.具有对抗鲁棒性的人脸活体检测方法 [J].计算机科学,2024,51(S1):987-993.
[2] 杨晨皓.基于复杂卷积神经网络的混合场景人脸识别研究与实现 [J].电子世界,2022(2):157-158+161.
[3] 杨彦青,宋星.不同光照强度变化下融合深度学习的人脸识别技术研究 [J].自动化与仪器仪表,2023(4):49-52+57.
[4] 张拓.基于多路径融合的人脸识别算法研究 [J].智能计算机与应用,2024,14(7):64-70.
[5] 孙金龙,吴振宁,肖仲喆,等.关于人脸识别算法对不同照明技术的鲁棒性研究 [J].电子器件,2022,45(5):1123-1128.
[6] SHAMRAT F M J M,MAJUMDER A,ANTU P R,et al. Human Face Recognition Applying Haar Cascade Classifier [C]//Pervasive Computing and Social Networking.Singapore:Springer,2022:143-157.
[7] YAN P,CHEN C. A Helmet Wearing Detection Algorithm Based on Face Localization [C]//2022 International Conference on Big Data, Information and Computer Network (BDICN).Sanya:IEEE,2022:88-92.
[8] 杨衍宇,魏为民,张运琴.一种改进的双流Faster R-CNN图像篡改识别模型 [J].计算机应用与软件,2023,40(12):189-194.
[9] 肖俊杰.基于YOLOv3和YCrCb的人脸口罩检测与规范佩戴识别 [J].软件,2020,41(7):164-169.
[10] 杨磊.基于AdaBoost的人脸检测算法 [J].山西大同大学学报:自然科学版,2023,39(3):12-17.
[11] 何祥芝,涂海宁,刘建胜.基于OpenCV的人脸黑头识别算法 [J].南昌大学学报:工科版,2024,46(1):111-116.
作者简介:马文亭(1993—),女,汉族,黑龙江哈尔滨人,讲师,硕士,研究方向:计算机应用、网络安全;姜楠楠(1989—),女,汉族,黑龙江哈尔滨人,副教授,硕士,研究方向:计算机应用。