何伟鑫,邓建球,方 轶,丛林虎,李俊达
1(海军航空大学 岸防兵学院,烟台 264001)
2(91213 部队,烟台 264001)
部队内部存在着众多保密性级别极高的场所,如弹药库,军械仓库,导弹库等,而当前这些场所众多采取门岗值守,亦或者输入密码,出示证件的方式进出,但这样的方式存在着较大的安全隐患,较易被冒充,亦或者门岗粗心大意等,致使无关人员进入保密重要保密场所.所以,设计一种安全性识别度较高的门禁系统迫在眉睫.
近年来,计算机技术迅猛发展,人工智能已经遍布于人类生活的方方面面.而计算机视觉是人工智能的重要研究方向,也是人脸识别、姿态辨析、行为检测等众多领域的奠基石.KNN 是适用于小数据集的非参数分类方法.反向传播算法利用大规模样本进行训练.样本输入进神经网络提取其特征,得到模型,从而可预测陌生数据,但收敛速率缓慢[1].LeCun 等提出LeNet-5模型[2],通过测试MNIST 数据集,获得较好性能.卷积神经网络是基于视觉神经机制设计的多层感知器[3],但训练过程易产生过拟合.2006年,深度学习概念[4]被Hinton 等提出.2012年,AlexNet 获得ImageNet 竞赛冠军[5].目前,计算机视觉技术广泛使用基于卷积神经网络的深度学习模型[6],故基于卷积神经网络设计人脸识别系统,应用于部队重要场所是一种可行的方法.
CNN 一般包括输入层、卷积层、激活层、池化层、全连接层和输出层,如图1所示.数据通过输入层输入,而后进行预处理.卷积层以及池化层提取有用信息[7].在激活层中,激活函数对运算的结果进行平滑,加入非线性运算.全连接层整合有用信息,对结果进行分类和预测.
图1 卷积神经网络示意图
CNN 的优缺点:
(1)CNN 应用了权值共享以及感受野技术,层与层之间的连接为不完全连接,极大缩小了权值数量,提高运算效率.
(2)CNN 的卷积层和池化层交互进行,高效地融合特征提取及分类过程.
(3)这种网络结构使得图像具有很强的鲁棒性[8].
但是,传统卷积神经网络在反向传播过程中采用梯度下降算法,会产生如下两个弊端:
(1)梯度下降过程,误差减小慢,造成训练收敛速度慢.
(2)可能存在梯度消失现象[9].
粒子群优化算法在当前的社会生活中被广泛的应用.其原理为:p维空间存在着规模为n的粒子群.粒子数量为种群规模,即鸟的个数.第i只鸟即粒子群中第i个粒子的速度和位置可以用vi=(vi1,vi2,···,vip)和xi=(xi1,xi2,···,xip)来表示,每个粒子都具有独自的适应度f,适应度的大小为每只鸟与食物的间距,依据粒子的适应度能够更新粒子群中每个粒子的个体极值Pb及群体极值Gb,而后利用个体极值和种群极值计算粒子速度和位置[10],计算公式为:
式中,i为种群的第i个粒子;j为第j维空间;c1,c2表示学习因子,c1表示个体部分,即本身对寻优的影响,c2表示全局部分,说明粒子受粒子群的影响;t表示第t次寻优;ε1,ε2表示平均介于[0,1]间的随机数;wg表示惯性参数即受上一次迭代过程速度的影响[11].
卷积神经网络训练过程首先进行前向传播.主要有卷积层、激活层、池化层、全连接层及输出层.
在卷积层中,对输入特征图进行计算,计算公式如下:
式中,N输入数据,为第l-1 层第k个数据,ωlk为权重,σ是激活函数,这里我们使用ReLU 函数,偏置为bl.
池化层用来缩减表示大小,提高计算速度,同时提高提取特征的鲁棒性[12].池化方式一般分为max-pool以及mean-pooling.两种池化方式示意图如图2,图3所示,其中过滤器参数f=2,s=2.
通过全连接层得到输出.输出公式为式(4).
其中,σ为每层的激活函数,需要指出的是目前用于分类最后一层一般采用Softmax 激活函数以及one-hot编码,ω为卷积核.
得到输出结果后,做误差计算.使用交叉熵损失函数公式(5):
y′为输出的预测值,y为经过独热编码输出的(0,1)值.
图2 最大池化
图3 平均池化
传统CNN 在前向传播过程中获得误差之后,对权重及偏置求得偏导,更新权重以及偏置,权重和偏置的更新过程遵循的原则为式(6)、式(7):
由式(6)及式(7)可以得知,传统卷积神经网络存在着较大缺陷,如梯度消失,收敛速度慢,容易陷入局部最优等.但神经网络算法存在对初始权值和阀值较为敏感、容易陷入局部极小值和收敛速度慢等缺点.
本文利用PSO 算法优化CNN 神经网络初始权值和阈值,能够改善神经网络性能.将神经网络卷积核系数、全连接层权重以及偏置值当做粒子,此时粒子个数即为网络中需要训练的参数数量.
在利用PSO 神经网络算法中,粒子自身最优点以及全局最优点、神经网络模型的阈值还有权重的优化结束标志均基于粒子适应度进行确定.如下两式为粒子适应度:
其中,k表示顺序为i的样本其第j个理想输出大小;yi,j表 示顺序为i的 样本其第j个实际输出;n为样本个数;m=1,2,3···,M,M为粒子数量.
PSO 误差要求作为神经网络算法阈值和权值的优化终止条件,式(10)为误差函数:
如图4所示,PSO 改进神经网络步骤为[13,14]:
1)建立网络结构.
2)初始化网络的权重以及阈值.
3)确定权重阈值以及粒子群之间的关系,初始化粒子群.
4)将数据集作为输入值,对网络进行训练,通过式(8)、式(9)得出适应度;比较适应度,通过式(1)、式(2)对粒子位置和速度进行更新.
5)计算式(10)得到粒子群误差.当误差达到要求,算法结束,获得权重以及阈值的优化结果;如不符合要求,继续步骤4),直至误差符合要求.
6)在神经网络模型中,采用优化后的权值和阈值进行样本训练,获得神经网络模型.
7)利用未知数据输入训练好的神经网络模型进行测试[13].
根据文献[15]将迭代次数以及粒子群大小分别设置为2800、30.
图4 PSO 改进神经网络图
MNIST 手写数据集由阿拉伯数字0~9 的手写体构成.图5为该手写数据集的示意图,该数据集由10 类组成.其中,训练图像有60 000 张,测试图像有10 000张.每一张手写数字图均采取尺度归一化以及数字的居中处理.每张图像均为一通道、28×28 像素的大小.
图5 手写数据集示意图
本实验所使用系统为Ubuntu16.04.计算机的配置为CPU:Intel i5-8400,GPU:GTX1060.应用谷歌公司的TensorFlow 学习框架,使用编程语言为Python.应用准确率指标为算法的性能评价标准.每个算法的实验次数均为10 次.
实验为加快训练速度,以及使得训练结果差别性更加的显著,故使用两层卷积池化后接一层全连接层的网络结构.这样减少了网络在深层中的大量训练参数.同时也能够保证网络对图像的鲁棒性.如图6所示为模型结构.
图6 网络结构图
网络各层参数如表1所示.
表1 网络各层参数
本实验中,网络结构中全连接层使用Softmax 激活函数,而其余各个卷积层均使用Relu 激活函数.代价函数使用的是交叉熵代价函数.学习率设置为0.0001.
3.3.1 仿真实验
仿真实验首先进行传统卷积神经网络的训练,接着进行改进卷积神经网络的训练.循环训练MNIST 手写数据集样本一共20 轮,每一次训练完毕以后皆记录训练数据,重复训练共10 次,图7、图8为训练过程截图,表2为两组实验每次训练完成后的准确率.
图7 传统CNN 训练过程图
图8 改进CNN 训练过程图
3.3.2 实验结果分析
从表2我们可以看出,改进CNN 网络在分类性能上要明显优于传统CNN 网络,并且在训练过程中,未出现过拟合现象.需要指出的是,目前在分类领域准确率已经可以达到非常高的水平,但是其采用的均为复杂的卷积神经网络,本实验为了更能够体现出传统CNN 与改进CNN 之间的差距以及为能够加快训练的速度,故采用两次卷积池化层后接一次全连接层的神经网络,通过该网络可以看出基于PSO 算法改进CNN的性能优于传统CNN.且本研究在引入PSO 算法,对神经网络的初始权重以及阈值进行优化,在达到设定要求以后就停止使用PSO 算法,未给网络带来大的计算负荷,且能加快网络的收敛速度,因此具有可行性.
表2 CNN 训练准确率表
通过仿真实验,我们可以看出,基于PSO 算法改进的卷积神经网络在计算机视觉领域可以使得模型具有更快的收敛时间,故将PSO 算法引入到MTCNN 以及ResNet 设计部队门禁系统,通过QT 语言设计窗体应用程序.设计流程图如图9所示.
图9 程序设计流程图
设计完毕后,随机选取样本进行测试,图10为录入人脸图,图11、图12以及图13为测试图,通过图11我们可以看到,软件能够有效的检测到人脸.当检测到人脸以后,将信息保存下来.通过软件的识别界面,摄像头捕捉到人脸以后,进行识别,而后会将得出的结果显示出来.通过图13我们可以看出,该人脸并未录入到系统里面,以及识别准确率不足50%,刷脸失败.
图10 人脸录入界面
图11 人脸识别界面
图12 人脸识别界面
通过测试,我们得出,录入的人脸均可以成功的识别,成功率均在50%以上,可成功获取武器仓库的开门指令,而未录入的人脸均无法通过认证,故将此软件部署于部队武器装备等重要场所,结合岗哨,能够有效的提升部队重要场所的安全性.
图13 人脸识别界面
本文针对目前部队武器仓库等重要场所的门禁存在的安全隐患问题,采用了PSO 算法对卷积神经网络进行了改进,提出了一种基于PSO 算法的卷积神经网络改进方案.而后利用该方案设计了设计部队门禁管理系统.仿真实验与结果分析表明,本文提出的方案相比于传统卷积神经网络具有训练准确率更高的优点,具有一定的实用性,而后基于改进卷积神经网络的部队门禁系统应用于部队武器仓库等重要场所后,将使得这些场所将具有更高的安全性以及可靠性.