人脸图像检测算法研究与实现结题报告Word格式文档下载.docx

上传人:b****4 文档编号:14291747 上传时间:2022-10-21 格式:DOCX 页数:17 大小:1.01MB
下载 相关 举报
人脸图像检测算法研究与实现结题报告Word格式文档下载.docx_第1页
第1页 / 共17页
人脸图像检测算法研究与实现结题报告Word格式文档下载.docx_第2页
第2页 / 共17页
人脸图像检测算法研究与实现结题报告Word格式文档下载.docx_第3页
第3页 / 共17页
人脸图像检测算法研究与实现结题报告Word格式文档下载.docx_第4页
第4页 / 共17页
人脸图像检测算法研究与实现结题报告Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

人脸图像检测算法研究与实现结题报告Word格式文档下载.docx

《人脸图像检测算法研究与实现结题报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《人脸图像检测算法研究与实现结题报告Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

人脸图像检测算法研究与实现结题报告Word格式文档下载.docx

Wecombinetheskincolorsegmentationandwindowscantogether.WeexperimentontheCaltechpicturedatabaseandsomeotherpictures.Wefindsomeproblemsanddiscussprobableimprovement.

Keywords:

facedetection,skincolorsegmentation,convolutionalneuralnetwork

1.人脸检测概述

1.1人脸检测简介

人脸检测是指在被检测的图像中确定所有人脸的位置、大小的过程[1]。

人脸检测的研究起源于对人脸识别的研究。

人脸识别通过人眼睛,鼻子,嘴巴等特征识别不同的人。

而人脸检测便是人脸识别的第一步。

之后,人脸检测逐渐演变成一个独立的研究方向。

目前,人脸检测在视觉监控、身份认证等方面有着广泛的应用。

1.2常用人脸检测方法

1.2.1基于人脸模式特征提取的方法

人脸图像包含众多特征,其中最常见的有肤色特征,轮廓特征,五官特征等等。

基于特征提取的方法试图提取某种或多种特征以进行人脸检测。

我们之后将提到的基于YCrCb颜色空间的方法[2]就是利用了肤色特征。

1.2.2基于统计模型的方法

这种方法将检测人脸问题转化为检测人脸或非人脸的分类问题。

然后通过大量带标签的人脸与非人脸样本进行有监督学习,以构造分类器。

这种方法将问题简化为一个二分类问题,并利用模板特征进行分类。

在实际应用中,这种方法被广泛地应用。

常见的特征模板有Haar-like特征[3],LBP特征[4]等。

1.2.3基于人工神经网络的方法

人工神经网络将模式的统计特性隐含在网络的结构和参数中。

近年来,随着深度学习成为一个热门研究方向,基于人工神经网络的方法也被更多地研究和应用。

本文中,我们也将详细研究一种基于卷积神经网络的人脸检测算法。

1.3本文的研究概述

在本文中,我们主要研究并实现了两种算法。

其中基于YCrCb颜色空间的肤色分割用于预处理,基于卷积神经网络的算法则用于窗口检测。

我们将两种方法结合起来成为了一套人脸检测算法,如图所示。

图1

我们使用Matlab实现了算法并在人脸数据库和实际图像中进行了实验。

我们将检测结果与另一种方法(基于Adaboost算法的人脸检测算法)进行了比较和分析,提出了一些问题和改进的方法。

2.基于YCrCb颜色空间的肤色区域分割

肤色是人脸的一个明显特征,在人脸检测算法中,我们也可以利用肤色进行检测。

然而,由于环境复杂,照片质量层次不齐,光照情况不确定等因素影响,要准确地使用肤色来完成人脸检测相当困难。

因此,在我们的实践中,利用肤色完成一个肤色区域的选择和分割,为之后使用其他算法检测做预处理。

2.1YCrCb颜色空间

在肤色检测中,传统的RGB颜色空间由于上文中提到的种种原因,很难准确地将肤色区域与其他区域分割。

而YCrCb颜色空间在肤色分割上则有不错的效果。

YCrCb颜色空间中,Y表示亮度,Cr表示红色信号与信号亮度值的差异,Cb表示蓝色信号与信号亮度值的差异。

在这里,我们主要使用Cr和Cb作为区别肤色区域与其他颜色区域的工具。

2.2确定阈值

我们使用了50张各种肤色,亮度,质量的人脸肤色区域作为训练样本。

对所有样本区域计算平均值,得到了最终阈值:

2.3肤色区域分割

利用训练得到的阈值,我们可以对一张图片进行肤色区域分割。

以下图为例

图2原始图像

●将输入图片由RGB模式转化为YCrCb模式

●遍历整张图片,将在阈值范围内的点标记为白色,反之标记为黑色。

图3肤色分割后二值化图像

●框出白色区域,并记录这些区域作为之后检测的待检测区域。

图4肤色区域

3.基于卷积神经网络的人脸检测算法

在这一张章中,我们将介绍一种使用卷积神经网络的人脸检测算法。

在这种算法中,我们使用卷积神经网络提取人脸特征,利用BP算法进行训练,我们可以不断调整网络权重,优化训练结果。

3.1神经网络

3.1.1人工神经网络

人工神经网络[5](ArtificialNeuralNetwork,ANN)试图模拟人脑的神经网络结构。

简单来说,它是由神经元和神经元之间的连接构成的网络。

如图,是一个最简单的神经网络。

图5神经元

它包含3个输入x=(x1,x2,x3),一个神经元,一个输出hw,b(x)。

我们可以通过调整连接的权重w=(w1,w2,w3)和神经元的偏置b来获得我们希望得到的输出。

该神经网络的输出为

其中f(z)为激励函数。

在神经网络中,我们往往在神经元的输出加入激励函数以使输出改变线性的特性。

我们选用的是常用的激励函数Sigmoid函数,其表达式为

神经网络可能由多层,大量神经元复杂连接构成。

如图为一个三层神经网络,它由输入层,中间层和输出层构成。

我们可以对网络中的每一个连接训练权重,对每一个神经元训练偏置量以使网络满足我们的要求。

图6多层神经网络

3.1.2卷积神经网络

卷积神经网络(ConvolutionalNeuralNetwork,CNN)是多层神经网络的一种。

它利用卷积运算的卷积核作为神经网络的权重。

卷积神经网络的一个特点是它是局部连接的,也就是说每个神经元只和上一层的部分神经元连接。

卷积网络的另一个特点是权值共享,也就是说每个神经元与上一层的连接的权重是相同的。

这两个特点极大降低了连接的维度,同时确保了位置不变性。

为了提取更多特征,我们可以在每一层使用多个卷积核进行特征提取。

每一个卷积核对输入图像卷积可以得到一个特征图。

在卷积神经网络中,有两种层:

卷积层和下采样层。

它们分别起到特征提取和特征集合的作用。

在卷积层中,我们利用卷积运算提取特征。

卷积核便是我们要训练的权重,我们将卷积核放置于不同位置,便能得到不同的连接。

如图所示为一个简单的卷积层。

我们的卷积核为3*3,输入为5*5,输出为3*3。

图7卷积核与卷积

下采样层通过在特征图中采样达到集合特征的目的。

它的基本思想是整合多个输入节点得到一个输出。

常用的采样方法有最大采样(max-pooling)和平均采样(average-pooling)。

分别使用提取范围内最大值和计算范围平均值的方法进行采样。

在我们的实现中使用了平均采样。

3.2卷积神经网络结构

在这一节中,我们将介绍我们所使用的卷积神经网络的整体结构。

整个网络输入24*24大小的灰度图,输出为2*1的向量,当判断为人脸时输出(1,0),非人脸时输出(0,1)。

参考LeNet-5网络[6],我们的整个网络的结构如下图。

图8卷积神经网络结构

卷积层接下采样层接卷积层接下采样层接卷积层接全连接输出。

全连接层中将32个节点与输出层的2个节点全连接得到输出。

3.3训练卷积神经网络

卷积神经网络的训练即确定卷积核以及神经元偏置的过程。

我们使用反向传播(BP)算法进行训练。

3.3.1BP算法

BP算法是训练神经网络的一种常用算法。

其基本思想为误差的反向传播。

输入信号正向传播达到输出层。

从输出层计算出误差后,误差从输出层反向传播,每一层根据误差调节权重。

调节权重采用的是梯度降低方法。

下面我们依据[7],推导出调节权重的公式。

我们首先定义几个值。

第l层的输入,也就是第l-1层的输出为

其中f(z)为激励函数,w为权重,b为偏置。

对于第n个样本,输出层误差为

其中c为输出层节点个数,对于我们的人脸检测问题,c=2。

t表示目标值,y表示输出值。

我们定义反向传播的误差δ为

输出层的误差为

其他层的误差递推式为

这里的·

运算符为元素分别相乘运算符。

我们要使用误差δ求出每一次迭代中E对w与b的偏导然后乘上学习率α就能得到e与b的改变量,即

●卷积层

误差为

其中l为层数,j表示第j个特征图。

up(x)为上采样,它将x复制到对应的下采样区域内。

偏置的偏导为

卷积核的偏导为

其中表示在第l-1层中被卷积的元素。

●下采样层

系数的偏导为

其中,为下采样的值。

以上为通过BP算法调整权重的方法。

4.3.2训练步骤

我们选择了8500个人脸样本以及大量非人脸样本。

部分人脸样本如图。

图9部分人脸训练样本

训练分成6轮,每一轮使用8500个人脸样本。

非人脸样本则由两部分组成:

一半由上一轮的非人脸样本中随机选择;

另一半则是新加入的上一轮会误检的非人脸样本。

对于每一轮的训练,会将样本随机分成50个一组。

每次将一组放入网络正向计算输出,然后反向传播修正权重。

所有样本全部用完后,再次将样本分组反复进行训练。

共迭代50次。

第一轮训练前,所有权重被初始化为略大于0的随机数。

每一轮训练会在上一轮训练的网络权重基础上继续训练。

另外,我们采用的学习率α=1。

3.4检测人脸

有了以上算法作为模块,我们可以拼接出一个完整的人脸检测算法了。

算法的输入是一张任意大小包含任意人脸数量的彩色图片,输出是框出的人脸区域。

3.4.1图像预处理

读取图片后,我们首先对过大的图片缩小一定比例。

根据观察分析,人脸区域在图片中所占区域不会过小(最小约为30*30)。

同时,缩小图片对检测速度有很大的提升。

我们将得到的彩色图片输入到肤色分割以获得待检区域。

同时对图像进行灰度化,为之后的检测做准备。

3.4.2肤色分割

我们利用前面章节中提到的YCrCb颜色空间将肤色区域分割出来。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1