迁移学习模型下的小样本人脸识别算法

2019-07-22 08:27黄振文谢凯
长江大学学报(自科版) 2019年7期
关键词:识别率人脸人脸识别

黄振文,谢凯

(长江大学电子信息学院,湖北 荆州 434023)

文畅

(长江大学计算机科学学院,湖北 荆州 434023)

盛冠群,文方青

(长江大学电子信息学院,湖北 荆州 434023)

人脸识别[1]是计机利用人脸图像进行分析处理和比较的一种“智能技术”[2]。近些年随着硬件设备的快速发展,深度学习[3]的算法不断被完善,相对于传统的人脸识别算法,卷积神经网络的算法在人脸识别中也取得了极大的突破。卷积神经网络[4]与传统算法最大的不同在于它是通过从图像的低层到高层逐步提取能代表人脸图像的高级语义的结构化特征,当数据量足够大时,人脸识别效果比较理想。但是当人脸数据量不足时人脸识别的效果并不是很好。仅用小样本人脸数据集去训练卷积神经网络CNN(Convolutional Neural Network)时,由于网络所学习的参数数据不足使得CNN不能较好的收敛,导致人脸识别率不高[5]。

迁移学习是指将某个领域上学习的知识应用到不同的但相关的领域中[6],是利用大样本解决小样本问题的关键技术。在迁移过程中,不可避免源数据集和目标数据集之间的差异,导致人脸识别率低。20世纪90年代,受限玻尔兹曼机[7]被Hinton和Sejnowski提出来,其最大的优点是拥有强大的无监督学习能力,能够从极大似然的角度快速学习输入人脸的高阶抽象特征。因此,笔者想通过利用受限玻尔兹曼机RBM(Restricted Boltzmann Machine)来解决人脸数据集间的差异性,并且将训练好的卷积层与降采样层迁移过来,用RBM代替CNN中的全连接层,从而构成一个全新的网络模型——TL-CNN-RBM模型。

1 TL-CNN-RBM模型算法流程

图1 TL-CNN-RBM模型流程图

利用小样本人脸数据去训练CNN模型时,由于人脸的数据量较小且人脸数据集之间存在差异,导致直接提取的人脸特征识别率很低。为提高小样本人脸识别性能,笔者提出迁移预训练的改进CNN模型。在此基础上,为了提高特征识别力,用RBM替换CNN网络的全连接层,该层不仅全连接卷积后的所有人脸特征图,还可以从特征图中进一步学习小样本人脸特有的高阶人脸特征,从而提取更多的人脸特征,提高识别率。其算法流程如图1所示。

1.1 大样本人脸数据集预训练卷积神经网络

通过使用2个卷积层(C1、C2)和2个子采样层(S1、S2)以及2个全连接层(F1、F2)的CNN网络模型来处理100×100分辨率的人脸图像。

输入层的人脸图像大小为 100 × 100,与 20 个大小为 5 × 5 的卷积核进行卷积得到卷积层C1,从而得到20个人脸图像的特征图,每一个特征图图像的分辨率为(100-5+1) × (100-5+1) =96×96。

从卷积层C1得到大小为2×2的子采样层S1,对 C1 层中尺寸为96 ×96 的特征图进行二次采样得到(96÷ 2) × (96 ÷ 2) =48×48大小的图像。其中,S1 层包含20个人脸特征图。

将S1层中48×48大小的图像与50个5×5卷积核进行卷积,得到卷积层C2。其所得到特征图的大小为50个(48-5 +1) × (48-5 + 1) = 44×44的人脸特征图。

对 C2 层使用2×2的子区域来进行采样获得S2层,每层包含50个人脸图像,每个图像的大小为(44 ÷2) × (44 ÷2) =22×22。最后通过全连接层F1链接得到一个24200维的的特征图,将特征图展开成一列之后通过全连接层F2来实现人脸分类。

网络结构如图2所示。

图2 大样本人脸识别的CNN网络结构

1.1.1 通过前向传导学习网络参数,获得从输入层到输出层网络的激活函数值

输入特征在每层中的神经元公式计算如下:

T(l+1)=W(l+1)x(l)+b(l+1)

(1)

x(l+1)=d(T(l+1))

(2)

式中:W(l+1)是各个网络层系数组成的矩阵;x(l)和x(l+1)分别是第l层和l+1层的向量输出;b(l+1)是偏差向量,由第(l+1)层的偏差组成;d(·)为激活函数。

1.1.2 BP算法反向传播调整人脸识别网络的相关参数

对于含N个人脸的样本集x={(x(1),y(1)),…,(x(N),y(N))},网络输出层误差函数定义为:

(3)

式中:M表示M类人脸;on表示输入人脸样本集x对应的实际输出。

(4)

(5)

式中:ρ为学习率;Eτ为当前批次训练人脸样本数目为τ的误差。

使用BP算法[8]可以使网络的相关参数更新的更快,减少时间复杂度,使网络层的误差函数更小。

1.2 卷积人脸模型迁移与改进

将预训练好的CNN模型迁移到小样本人脸数据集上,在此基础上,利用RBM层和新的SoftMax层去替代预训练的CNN网络的全连接层,卷积层和子采样层保留不变。在子采样层S2之后输出50个22×22的二维特征图,将50个特征图合并输入RBM层,R3层含50×484个显性节点和3000个隐藏节点,R4层含1000个隐藏节点,将最后得到的1000维向量输入SoftMax层中计算,找到概率最大所对应的人脸。卷积人脸模型迁移与改进的新网络如图3所示。

图3 卷积人脸模型迁移与改进的新网络

1.3 小样本人脸数据重新训练卷积神经网络

1.3.1 小样本人脸重训练RBM层

RBM网络由若干个可视节点和隐藏节点所组成,对于∀,i、j,vi,hj∈{0,1},vi、hj分别表示可视节点和隐藏节点,其中0和1分别代表节点是否被激活。在RBM中,可视节点与隐藏节点的联合能量定如下:

(6)

式中:θ=(wij,ai,bj);wij表示权重;ai、bj和n、m分别表示vi、hj的偏置值和节点个数。

联合概率分布Pθ(v,h)为:

(7)

在RBM模型中,当参数已经确定时,第j个隐藏节点的激活概率为:

(8)

第i个可视节点的激活概率可表示为:

(9)

各参数的迭代公式可表示为:

(10)

(11)

(12)

1.3.2 小样本人脸模型中新网络的自适应

在实际试验中,由于方差损失函数[9]的权重更新过慢,使网络不能很快的达到收敛。笔者采用交叉熵代价函数[10]来替代函数的更新,当误差小时,网络参数更新变慢。当误差过大时网络参数更新加快;交叉熵代价函数定义为:

(13)

式中:N表示人脸训练样本容量;y(i)表示第i组数据对应的人脸类别标记。

在整个神经网络中,权重w和偏置b由式(14)和(15)决定:

(14)

(15)

然后利用式(4)和式(5)调整网络各层的参数。

2 试验结果与分析

2.1 试验界面及评价指标

图4 人脸识别软件操作界面

图4为采用TL-CNN-RBM模型算法所开发的一款人脸识别应用程序界面截图。

该试验采用了实验室自建的人脸数据库小样本与中国人脸图像数据库CAS-PEAL。在CAS-PEAL库中,包括1040人的30900幅人脸图像。将CAS-PEAL数据库中的图像作为大样本数据的预训练集,用实验室自建的人脸数据库作为小样本的人脸数据集来重新训练卷积神经网络模型,其人脸库包含40人不同性别、不同年龄的中国人,选取人均30幅的人脸片段作为部分人脸库数据。

2.2 TL-CNN网络模型算法与其他算法对比

表1 几种不同方法的识别率

针对笔者所提出的TL-CNN网络模型,用CAS-PEAL人脸数据库进行预训练、验证和测试,并与经常使用于人脸识别的主要算法PCA[11]、PCA+LBP[12]、BP等进行对比。试验采用CAS-PEAL中的740人的每人10张人脸图像作为试验的训练集,为了测试笔者训练的模型,采用余下的全部数据集(300人),并且随机选用每人10张不同的图片,最终采用比率接近为7∶3(验证集∶测试集)来测试。几种不同方法的识别率如表1所示。

由表1可以看出,TL-CNN模型的人脸识别率明显高于其他传统识别模型,PCA、LBP算法所提取的人脸特征并不是由训练自动获取,识别率没有TL-CNN的识别率高;BP反馈算法利用了Sigmoid激活函数[13],当输入非常大或非常小的时候神经元的梯度接近于0,不易更新权值而且在实际的人脸图片训练中函数不容易收敛,导致在试验中的识别率最低;传统的人脸识别模型算法只能提取人脸信号中有限的特征,而且可能提取的特征并不是人脸关键点的特征,因此其鲁棒性很差,无法建立一个很好的人脸模型。试验结果表明,TL-CNN算法能够更加精确提取关键点信息,保证了提取人脸特征的质量,进而能有效提高人脸识别率。

2.3 迁移模型后的小样本人脸识别算法对比试验

迁移学习放宽了机器学习的基本假设,通过将某个领域或任务上学习到的知识或模型应用到不同但相关的领域中,其在人脸识别中具有很好的运用,将大数据人脸数据“迁移”到小样本人脸数据领域,可以解决小样本人脸数据稀缺等问题。

笔者提出的小样本人脸识别算法,先将CAS-PEAL人脸数据库作为预训练集来训练CNN网络,预训练的样本容量集约为30900。小样本数据集采用实验室自采集的人脸数据,包含40人的1200张(人均30张)人脸图片。迁移模型后再从自建的人脸库中选取30人,其中男女各15人,每人20张图片组成一个数据。在训练的过程中选取每人14张图片做训练集,余下的图片做测试集。按以下4种方案做对比试验。

方案1:用上述小目标人脸数据集分别去训练和测试常用于人脸识别的PCA、PCA-LBP、BP模型算法。

方案2:仅用小目标人脸数据去训练传统的CNN网络模型算法。

方案3:用大样本人脸数据CAS-PEAL预训练传统CNN网络;然后将训练好的模型迁移到目标集中,用小样本人脸数据进行训练和测试。

方案4:用大样本人脸数据预训练CNN网络,然后迁移模型到小样本集中,并且将全连接层替换为RBM,再用小样本人脸数据进行重训练和测试。

4种方案下6种算法识别率如图5所示。试验结果表明,4种方案在相同的小样本人脸数据训练样本容量下,CNN网络模型由于训练样本参数严重不足,导致识别率较低,而经过迁移学习改进后,使用RBM和SoftMax替换CNN全连接层既可以全连接所有特征图获得丰富的不变性特征,还能充分无监督参数训练,获得目标集本身的高阶统计特征,提高了小数据集上CNN模型图像分类的准确率。其中,TL-CNN-RBM模型在这几种对比方案中的识别率最高。

2.4 试验迭代次数对TL-CNN-RBM模型的影响

采用上述30900张人脸图像训练TL-CNN-RBM网络,比较在相同的训练集下网络训练迭代次数对小样本人脸识别率的影响,结果如图6所示。由图6可知,随着试验迭代次数的逐渐增多,该模型的人脸识别率也呈现上升趋势;当迭代次数达到一定状态,网络达到收敛,人脸识别率逐渐趋于平稳。

2.5 不同训练样本容量下TL-CNN-RBM的识别性能对比

将训练好的模型迁移到小样本目标集中, 测试TL-CNN-RBM网络模型在不同训练样本容量下的试验性能。在自建的40位人脸库中随机抽取30位人脸作为小样本人脸数据集的训练集,平均每人分别使用5、10、15、20个人脸样本图,余下10人的人脸图作为测试样本(人均10个人脸图),试验结果如图7所示。

图5 4种方案6种算法识别率比较构

图6 迭代次数对TL-CNN-RBM模型识别率的影响 图7 TL-CNN-RBM在不同训练样本容量的性能对比

试验结果表明,随着测试样本容量的逐渐增加,TL-CNN-RBM模型算法的误识率与拒识率都呈现下降趋势,识别率呈现上升的趋势,最后趋向于平稳。

3 结语

提出了一种迁移模型下的小样本人脸识别方法,用大样本参数预训练CNN网络模型,在迁移预训练模型时将全连接成改为RBM。RBM不仅全连接卷积后的所有特征图,而且还能进一步提取人脸图像的高阶抽象特征,消除了数据集之间的差异性,提高了人脸识别率。在此基础上,还通过BP算法调整网络参数,使新的网络模型更适用于小样本人脸目标集,进一步提高人脸识别率,解决了小样本人脸识别率低的问题。与传统的CNN模型相比,TL-CNN-RBM模型提高了人脸识别率。

猜你喜欢
识别率人脸人脸识别
人脸识别 等
有特点的人脸
一起学画人脸
揭开人脸识别的神秘面纱
人脸识别技术的基本原理与应用
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
听力正常青年人的低通滤波言语测试研究*
三国漫——人脸解锁
提升高速公路MTC二次抓拍车牌识别率方案研究
人脸识别在高校安全防范中的应用