本文是对陈耀丹、王连明的基于卷积神经网络的人脸识别方法的理解。
摘要:实现了一种基于卷积神经网络的人脸识别方法,该网络由两个卷积层,两个池化层、
一个全连接层和一个 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,识别实时性好,为人脸
识别提供一种新思路。