APP下载

基于YCbCr色彩空间下的人脸检测与识别

2020-08-31吴建平詹桢邓鑫

科技创新与应用 2020年25期
关键词:人脸识别

吴建平 詹桢 邓鑫

摘  要:文章基于YCbCr色彩空间理论,建立二维高斯模型将样本图片转换成肤色似然图,并对其进行腐蚀、膨胀处理,得到人脸区域;将训练好的弱分类器组成强分类器,进一步组成级联分类器,结合Adaboost算法,最终确认样本图片的人脸区域。

关键词:人脸识别;YCbCr色彩模型;Adaboost算法;人脸肤色区域

中图分类号:TP391.41 文献标志码:A         文章编号:2095-2945(2020)25-0040-03

Abstract: Based on the YCbCr color space theory, this paper establishes a two-dimensional Gaussian Model to transform the sample image into a skin color likelihood image, and then corrodes and expands it to get the face region; the trained weak classifier is composed of a strong classifier to form a cascade classifier, and combined with the Adaboost algorithm, the face region of the sample image is finally confirmed.

Keywords: face recognition; YCbCr color model; Adaboost algorithm; facial skin color region

1 需要解决的问题

本文研究的问题来源于2018年第十一届华中地区数学建模邀请赛A题:通过运用所学知识建立人脸位置判断的数学模型,判断出人脸在照片中的大致位置,并在图片中用拟设计的模型“框出”人脸的大致位置。

2 YCbCr色彩空间理论介绍

2.1 YCbCr色彩空间理论[1]

YCbCr色彩空间是ITU-RBT.601的一部分,YCbCr或Y'CbCr颜色空间通常用于胶片或数码摄影系统的连续图像处理。实际上YCbCr是YUV的一个缩放版本。YCbCr和YUV中的Y有着相同的含义。其中Y表示亮度(luma)分量(灰度值),Cb表示蓝色色度分量,Cr表示红色色度分量。

2.2 肤色检测[2]

肤色是人脸先天存在的特征,将肤色作为人脸检测的出发点是最直接的方式。在人脸图像中,肤色一般是相对集中且稳定的具有一定程度聚类性质的连通区域,同时根据研究表明,虽然人存在年龄、种族以及性别的差别,但将人脸经过灰度化处理后其差异主要表现在亮度上,因此,肤色检测是人脸检测极好的手段,但要想获得在图像空间中的肤色,就需要通过肤色检测和肤色分割来实现,进而才能进一步检测出人脸在图像中存在的区域。人脸检测实现的基本流程图如图1。

3 建立模型求解

3.1 颜色空间和肤色模型

3.2 Adaboost算法具体步骤

Adaboost是一种迭代算法[5-6],同样也是级连算法,它的基本思想是将整个训练集分成许多不同训练的弱分类器,当分类器分类正确的时候,减小分类器的权值,当分类器分类错误时,需要对分类器增加权值。当多个弱分类器能够正确分类时,将其组成强分类器,最后将强分类器串联成一个级联分类器,该训练好的级联分类器便可用于人脸检测。Adaboost算法中弱分类器的训练过程具体如下:

3.2.1 设训练样本(x1,y1),(x2,y2),…,(xn,yn),其中yi=1表示训练样本图像是人脸,也就是正样本,而yi=0表示训练样本图片为非人脸,也就是负样本。设训练样本图片中人脸正样本的个数为n1,非人脸的负样本的个数为n2。

3.2.2 在训练过程中,需要对弱分类器进行权重初始化,当第i个弱分类器對第j个样本分类出现错误时,则增大第j个样本在后续分类器中的权重。其权重初始化为:

3.2.3 设共需从原有的N个分类器中选择T个弱分类器,用t来进行当前弱分类器的技术,则t=1,2,…,T;第t轮的最佳弱分类器为:

(1)权重归一化。(2)弱分类器训练。(3)最佳弱分类器选取。(4)权重更新。

3.2.4 训练器在经过T轮训练后,很大程度上可以获得T个最佳分类器,其中,因每5个弱分类器在训练中或正确的情况不同,因而有不同的权重,所有每个弱分类器都有其对应的特征、阈值和方向指示符。最后,通过线性加权出错将弱分类器合成强分类器:

3.3 模型求解结果

借助Matlab计算工具,编写人脸检测的代码,识别结果如图2、3、4、5所示。

Matlab人脸检测部分程序:

close;

clear all;

clc;

M = [124.2125 132.9449]'  ; %肤色均值

Sigma =[75.3881  40.2587   40.2587  250.2942];%肤色方差

Img  = imread('xjpic.jpg');

figure,imshow(Img),title('原始图像');

Img2  = rgb2ycbcr(Img);%颜色空间转换

% figure,imshow(Img2(:,:,1));title('Y');

猜你喜欢

人脸识别
人脸识别的“国标”来了
AI企业云从科技全球FRVT测试中获得双冠
基于改进的2DPCA人脸识别方法
中科视拓开放商业版本人脸识别算法
人脸识别好用但不能滥用
睡梦中被刷脸盗走万元
荣耀畅玩7C:人脸识别
iPhoneX来了!
刷脸支付
刷脸(双语加油站)