理论教育 基于神经网络的人脸识别算法:+原则+|轨道交通智能技术导论

基于神经网络的人脸识别算法:+原则+|轨道交通智能技术导论

时间:2023-09-01 理论教育 版权反馈
【摘要】:卷积层是卷积神经网络不可或缺的组成部分。卷积操作目前被广泛应用于图像处理领域,使用卷积神经网络可以对图像中的特征信息进行有效提取,从而达到对图像进行识别的效果。

基于神经网络的人脸识别算法:+原则+|轨道交通智能技术导论

相对于传统的人脸识别技术(局部二值模式、基于Gabor和尺度不变特征等),深度卷积神经网络具有有效的自动提取特征能力。使用深度卷积神经网络进行人脸识别能有效地克服人脸姿势、表情、遮挡等严重变化的情况。

卷积神经网络是一种深度学习的神经网络模型,具有权值共享、局部连接等特性。这使得卷积神经网络有一定的平移、缩放和旋转不变性,能够广泛应用于图像分类、人脸识别等场景[52]

1.卷积神经网络构成

卷积神经网络一般是由卷积层、池化层和全连接层交叉堆叠而成的前馈神经网络,使用反向传播算法进行训练。

1)卷积层(convolutions layer)

卷积层用于学习输入数据的特征表示,组成卷积层的卷积核用于计算不同的特征图。卷积层是卷积神经网络不可或缺的组成部分。卷积层由一些大小统一的卷积核组成,每个卷积核的参数都是经过网络训练学习而来。一般我们把卷积层中的计算称为卷积计算,卷积计算主要的作用是提取输入图像中的特征信息。卷积运算提取特征的能力十分明显,并且随着卷积层数的加深,卷积层提取到的特征信息越来越抽象,特征信息越抽象表示特征信息越有区分性,越容易用来解决实际应用中的问题。

卷积运算是生活中最常见的运算,我们可以用卷积运算来模拟生活中大部分场景。例如,当我们在线收看视频时,因为网络的原因视频卡顿了一下,这种情况如果用卷积来进行描述的话,可以表示为视频流畅播放与一个表示网络卡顿的卷积核进行卷积运算出现的结果。用数学公式可以表示为

其中,X(m,n)表示视频正常播放,H(m,n)表示网络卡顿卷积核,Y(m,n)表示视频卡顿的结果。如果能通过某种方法从Y(m,n)中估计出H(m,n),就可以采取措施恢复X(m,n),解决视频卡顿的现象。

卷积操作目前被广泛应用于图像处理领域,使用卷积神经网络可以对图像中的特征信息进行有效提取,从而达到对图像进行识别的效果。

使用卷积对图像进行操作的具体公式为

其中,(M,N)表示输入图像的尺寸大小,wij表示卷积核的大小,b为卷积层中的偏置大小。为了使卷积神经网络能够学习到图像中的非线性特征信息,一般会在卷积操作的后面添加非激活函数,式(4-224)中的f(·)即为激活函数。

卷积神经网络中卷积层一般由多个卷积核组成,每一个卷积核都会与图像进行卷积运算,之后每个卷积核会对应输出一个特征图,也就是卷积核对图像提取的特征信息。随着卷积层中卷积核数量的增多,卷积层输出的特征图也随之增多,但这并不是可以认为卷积核越多,提取的特征信息就越多,两者之间没有必然联系。卷积核的增多也可能增加卷积层提取无关特征信息的数量,影响卷积神经网络对图像的识别。因此卷积核数量的设置有一定的要求,不是越多越好,这与输入图像的尺寸以及数据集的规模有很大的关系。

2)池化层(pooling layer)

池化层又称下采样层,用于降低卷积层输出的特征向量,同时改善结果通过卷积层与池化层可以获得更多的抽象特征。经过卷积层卷积后的特征信息依然十分庞大,不仅会带来计算性能的下降,也会产生过拟合的现象。于是在降低特征维度的同时又能提取到具有代表性的特征信息,还能使得处理过后的特征图谱拥有更大的感受视野,这种用部分特征代替整体特征的操作称为池化操作。

池化后的图像依然具有平移不变性。池化操作会模糊特征的具体位置,图像发生平移后,依然能产生相同的特征。池化操作可以将一个局部区域的特征进一步抽象,池化中的一个元素对应输入数据中的一个区域,池化作用可以减少参数数量和降低图像维度。

常用的池化操作有最大池化和平均池化。前者是对每一个小区域选最大值作为池化结果;后者是选取平均值作为池化结果。如图4-33所示为池化步长为2的两种池化效果示意图

图4-33 两种池化效果示意图

3)全连接层(full connected layer)

在局部感知的概念没有提出来之前,所有前馈神经网络的连接方式都是以全连接的形式进行的。全连接层可以将卷积核和池化核得到的特征信息聚集到一起。另外全连接层还可以简化参数模型,在一定程度上减少前馈神经网络的神经元数据量和训练的参数数量。为了能使用反向传播算法来训练神经网络,全连接层要求图像有固定的输入尺寸。由于卷积层是在全连接层的基础上发展而来的,所以全连接层也可以用特殊的卷积层来表示。在全连接层中可以认为,每个神经元的感受视野是整个图像,全连接层隐藏层节点数越多,模型拟合能力越强,但是也会因为参数冗余带来过拟合的情况。为了解决过拟合对训练效果的影响,一般会在全连接层之间采用正则化技术。还可以在全连接层中随机舍去一些神经元,以此来解决训练过程中出现过拟合的情况。

全连接层与卷积层的计算方式不同,没有卷积计算那么复杂,在全连接层中直接将输入数据与向量做矩阵乘法。假设全连接层的输入为x,输入维度为D,输出为y,输出维度为V,则全连接层计算可以表示为

其中,W为V*D的权值矩阵。

由于卷积层中使用了权值共享、局部连接等操作,这些操作成功降低了卷积层的参数数量和计算量,使得全连接层的参数数量是卷积层的好几倍。在卷积神经网络中卷积层主要是对输入的图像进行特征提取,而全连接层的主要功能是将卷积层提取到的特征信息进行整合。因此在构建卷积神经网络时,要想提高网络的特征提取能力主要对卷积层进行设计,要想降低参数量和计算量可以对全连接层进行设计。

4)激活函数(www.daowen.com)

为了使卷积神经网络能够模拟更加复杂的函数关系,通常会在卷积层或者全连接层后边加入激活函数,让卷积神经网络可以学习到更加复杂的函数关系。另外在卷积神经网络中加入激活函数后可以给网络添加非线性元素,使得卷积神经网络可以模拟任何非线性函数,提升卷积神经网络解决实际问题的能力。常见的激活函数有ReLU激活函数、Sigmoid激活函数和Tanh激活函数。

(1)ReLU激活函数的数学表达式为

ReLU激活函数是一种非饱和激活函数,也称为修正线性单元。与其他几种常用的激活函数相比,对于网络中的线性函数,ReLU激活函数具有更强的表达能力;对于网络中的非线性函数,ReLU激活函数可以使得模型的收敛速度保持在一个相对平稳的状态下。因此ReLU激活函数也是目前卷积神经网络使用最频繁的激活函数。

(2)Sigmoid激活函数的数学表达式为

Sigmoid激活函数是一根S形的曲线,所以Sigmoid激活函数也称为S型函数。因为Sigmoid激活函数在(0,1)之间是连续单调的,且函数的输出范围有限,因此Sigmoid激活函数常被用于二分类问题中。

(3)Tanh激活函数的数学表达式为

Tanh激活函数是一个双曲线,所以也称为双切正切函数。Tanh激活函数的优势在于当其用在特征信息相差明显的场景中时效果很好,并且会在训练过程中扩大特征效果[53]

2.基于神经网络的人脸识别步骤

1)构建深度卷积神经网络

构建的深度卷积神经网络主要包括卷积层、激活函数层、池化层、全连接层等。其中,激活函数层将简单的线性输入转换成复杂的非线性输出,以获得更好的分类效果。

2)训练过程

在训练过程中,对加载人脸的图像进行实时数据提升,利用旋转、翻转等方法从训练数据中创造新的训练数据以提升训练数据规模,提高模型的稳定性和训练效果。图4-34所示为本书作者及其学生们参与人脸识别实验所采集的样本集。

图4-34 人脸样本集例图

3)确定卷积神经网络模型

输入数据分为静态和动态两个类别:静态输入数据为人脸图像,动态输入数据为视频流中的人脸图像。人脸检测是对输入的人脸图像进行检测,避免输入无用的信息。预处理是对输入的数据进行初步的处理,以便卷积神经网络能够提取到更多的有用信息,包括了人脸对齐、人脸裁剪等操作。特征提取则利用卷积神经网络的前向传播提取图像中人脸特征,得到人脸的特征信息。

4)实现人脸识别

将训练好的最佳卷积神经网络模型应用到视频人脸检测和识别中,通过特征对比将提取到的特征信息与人脸数据管理模块中人脸信息进行匹配,获取输入图像中人脸的身份信息,最后得到正确的人脸检测与识别结果。通过判断识别正确率及时调整各步骤以实现最佳识别效果,此时得到的卷积神经网络模型即为训练好的最佳卷积神经网络模型。

图4-35 人脸注册流程图

在实用技术中,自然需要建立人脸数据库的注册管理。该管理系统如图4-35所示,如事先对本书作者人脸图像进行注册,存放于人脸训练样本库,建立对于人脸训练数据库的位置记忆矩阵Fm×n(以图4-34中的人脸数据库建立的位置记忆矩阵为F4×10),则当前被注册的样本处于(u2,v5)位置上。当实测图像进入识别过程时,会自动与(u2,v5)位置上的训练样本实施匹配(见图4-36)。

图4-36 人脸识别图例

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈