论文理解 基于卷积神经网络的人脸识别方法

首先给大家推荐一下我老师大神的人工智能教学网站。教学不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵黄段子!点这里可以跳转到网站

本文是对陈耀丹、王连明的基于卷积神经网络的人脸识别方法的理解。
摘要:实现了一种基于卷积神经网络的人脸识别方法,该网络由两个卷积层,两个池化层、一个全连接层和一个softmax回归层组成,它能自动提取人脸特征并进行分类,网络通过批量梯度下降法训练特征提取器和分类器,各隐层应用“dropout”方法解决了过拟合问题,应用于ORL和AR人脸数据库的人脸识别率分别达到99.50%和99.62%,识别单张人脸的时间均小于0.05s,并且对光照差异、面部表情变化、有无遮挡物等干扰具有鲁棒性

目前人脸识别算法大致可分为两类:
(1)基于表象的方法。基本的思想是将二维的人脸输入转换到另一个空间,然后用统计方法分析人脸模式,例如eigenface、fisherface和SVM等方法。
(2)基于特征(feature-based)的方法,一般是提取局部或者全局特征,然后送入一个分类器进行人脸识别,例如基于集合特征的识别和HMM等方法。

卷积神经网络是一个受生物视觉启发、以最简化预处理操作为目的的多层感知器的变形,本质是一个前向反馈神经网络,卷积神经网络与多层感知器的最大区别是网络前几层由卷积层和池化层交替级联组成,模拟视觉皮层中用于高层次特征提取的简单细胞和复杂细胞交替级联结构。

卷积层的神经元对前一层输入的一部分区域(称为局部感受野,区域之间有重叠)有响应,提取输入的更高层次特征;池化层的神经元对前一层输入的一部分区域(区域之间无重叠)求平均值或最大值,抵抗输入的轻微形变或者位移。卷积神经网络的后几层一般是若干个全连接层和一个分类器构成的输出层。

卷积神经网络用于人脸识别是一种基于特征的方法,区别于传统的人工特征提取和针对特征的高性能分类器设计,它的优点是通过逐层卷积降维进行特征提取,然后经过多层非线性映射,使网络可以从未经特殊处理的训练样本中,自动学习形成适应该识别任务的特征提取器和分类器,该方法降低了对训练样本的要求,而且网络的层数越多,学习到的特征更具有全局性。

LeNet-5是LeCun提出的一个具有高识别率的用于手写数字的卷积神经网络,本文借鉴LeNet-5的模型结构,提出6层卷积神经网络用于ORL人脸库和AR人脸库的人脸识别,网络前4层由卷积层和池化层交替级联用于特征提取随后接入一个全连接层,最后一层采用非线性分类能力强的Softmax分类器,该6层卷积神经网络采用sigmoid激活函数和固定的学习速率。

这里写图片描述


本文提出的6层卷积神经网络由2个卷积层、2个池化层、1个全连接层和1个Softmax回归层组成。卷积层和池化层由多个特征图(即二维平面)组成,每个特征图由多个神经元组成,每一层的特征图作为下一层的输入,卷积层的特征图可能与前一层的若干特征图建立关系。

关于卷积层:
卷积层通过局部连接和权值共享的方法,模拟具有局部感受野的简单细胞,提取一些初级视觉特征的过程。局部连接指卷积层上的每一个神经元与前一层特征图中固定区域的神经元建立连接;权值共享指同一特征图中的神经元用一组相同的连接强度与前一层局部连接,可以减少网络训练参数,上述一组相同的连接强度即为一个特征提取器,在运算的过程中变现为一个卷积核,卷积核数值先随机初始化,最后由网络训练确定。

人脸比数字识别更加复杂,卷积层为了更充分提取人脸特征进行了以下改进:(1)增加2个卷积层的特征提取器——卷积核的数量;(2)卷积层2的特征图与池化层1的全部特征图均建立关系。

卷积层每个神经元的输入来自于前一层特征图中固定区域的神经元,区域的大小由卷积核大小决定,卷几层1的m张特征图由1张输入图片跟m个可学习的卷积核卷积,加上偏置后,通过激活函数作用得到卷积层2的n张特征图,由池化层1的m张特征图分别跟n*m个卷积核卷积,每m个卷积结果结合,再加上偏置,通过激活函数作用得到。

关于池化层
池化层模拟复杂细胞是将初级的视觉特征筛选并结合成更高级、抽象的视觉特征的过程,在网络中通过采样实现,经过池化层的采样后,输出特征图的数量不变,但是特征图的尺寸会变小,有减小计算复杂度、抵抗微小位移变化的作用。
本文提出的池化层采用做大值采样,采样大小为2*2,即把输入的特征图分割成不重叠的2*2大小的矩形,对每个矩形取最大值,所以输出特征图的长和宽均是输入特征图的一半,本文定义池化层中的神经元不具备学习功能。

关于全连接层
为了增强网络的非线性能力,同时限制网络规模的大小,网络在4个特征提取层提取特征后,接入一个全连接层,该层的每一个神经元与前一层的所有神经元互相连接,同层神经元之间不连接。

这里写图片描述

关于Softmax回归层
LeNet-5最后一层是RBF分类器,采用由ASCII码表中的数字作为模板算出的纠错码或者以等概率的方式任选-1和1作为RBF的权值,每个RBF输入单元计算输入特征和参数向量之间的欧式距离,但是人脸特征比数字特征更复杂,而且人脸类别多又没有统一的模板,所以网络的最后一层采用非线性分类能力强的Softmax回归作为分类器。

这里写图片描述

网络训练
1.数据预处理
ORL人脸库由40人的400张图片组成,即每人10张图片,人脸有表情、微小姿态等变化.取AR人脸库的一个子集,由男、女各50人组成的2600张图片,即每人的图片为26张,人脸有表情、遮挡、光照等变化。
对两个数据库同做以下处理,随机抽取库中90%的人脸作为训练集,剩下的10%的人脸作为测试集,然后标准化2个集合中的人脸。

“min-max”标准化灰度值,即对图片中每个像素点的灰度值标准化为[0,1]。用x和x’分别表示当前和标准化后的灰度值,min和max分别表示图片的最小和最大的灰度值,标准化公式为:
x’=(x-min)/(max-min)

这里写图片描述

网络训练算法
由于2个人脸库训练样本较多,本文采用的是在实践中收敛速度较快的批量随机梯度下降法.对于
ORL人脸库的卷积神经网络的训练,批处理块大小为40,动量为0.9,学习速率恒为0.12;对于AR人脸库的卷积神经网络的训练,批处理块大小为65,动量为0.9,学习速率恒为0.15.每次迭代会遍历训练
集的所有批处理块,遍历完一个批处理块更新一次网络参数.更新公式为

本文用于ORL人脸库的某个卷积神经网络包含104.210*10^4个待训练参数;用于AR人脸库的某个卷积神经网络包含150.266*10^4个待训练参数。针对参数远大于训练样本数量可能导致的过拟合问题,Hinton提出了“dropout”,即在网络训练时以一定的概率p(0<=p<=1)将输入层或者隐层的神经元输出置为0,被置为0的神经元不再参与网络的前向传播和误差反向传播,而在测试时,将该输入层或者隐层的神经元输出乘以p作为该层的输出。由于每输入一张图片网络中神经元被随机置为0,所以就要求隐层神经元必须提取图片中最本质的特征,因此可以用“dropout”类解决过拟合问题。

实验结果
本文采用Windows XP下的matlab 2010a作为实验环境,计算机CPU为3.3GHz的Intel i3-3220,内存为4GB,2个卷积层中卷积核的大小为5*5,2个采样层采用最大池化,采样大小为2*2,激活函数采用sigmoid函数。
网络权值采用高斯初始化,网络阈值初始化为0,网络的代价函数为J(θ)。
卷积层、全连接层和Softmax回归层均采用“dropout”方法,概率p分别为0.5,0.2和0.5 。
6层卷积神经网络模型可以简单描述为“a-b-c”,a表示卷积层1有a个卷积核,经过该层得到a张特征图,再经过池化层1采样得到缩小的a张特征图;b表示卷积层2有b*a个卷积核,经过该层得到b张特征图,再经过池化层2采样得到缩小的b张特征图;c表示全连接层的神经元个数,输出层神经元个数是人脸库的模式类个数。本文采用分别改变全连接层神经元个数c和2个卷积层的特征图数量a和b,找到最适合2人脸库的网络模型。

改变全连接层神经元个数对网路的影响
ORL人脸库的6层神经网路用20-40-300,20-40-500,20-40-800,20-40-1100,20-40-1500模型测试,AR人脸库的6层卷积神经网络用20-40-800,20-40-1000,20-40-1500,20-40-2000模型测试。

结果
对于ORL人脸库,最佳的卷积神经网络模型为20-40-1500;对于AR人脸库,最佳的卷积神经网络模型为20-40-2000.增加全连接层神经元个数可以加快网络的训练速度,在一定程度内能提高正确识别率。

改变2个卷积层特征图数量对网络的影响
ORL人脸库的6层卷积神经网络用10-15-1500,15-15-1500,15-25-1500,20-30-1500,20-40-1500模型测试。AR人脸数据库的6层神经网络用15-25-2000,15-30-2000,20-30-2000,20-40-2000模型测试。

结果:对于ORL人脸库,最佳的卷积神经网络模型为20-40-1500;对于AR人脸库,最佳的卷积神经网路模型为20-40-2000,适当增加卷积层特征图数量可以提高正确识别率。

比较:
20-40-1500的卷积神经网络模型对ORL人脸库群补样本的识别率是99.50%,20-40-2000的卷积神经网络模型对AR人脸库全部样本的识别率为99.62%。本文提出的网络在2个人脸库上的识别率较好,并且网络抵抗光照差异、面部表情变化、有无遮挡物等的干扰的能力较强。
本次实验采用Matlab2010a作为实验环境,在CPU为3.3GHz的Intel i3-3220,内存为4GB的计算机上,ORL个AR人脸库的单张人脸识别时间均小于0.05s,识别实时性好,为人脸识别提供一种新思路。

点这里可以跳转到人工智能网站

发表评论