陈 奎,邢雪妍,田欣沅,王吉豪,王 顺
(1.徐州工程学院 信电工程学院,江苏 徐州 221018;2.江苏省智慧工业控制技术重点建设实验室,江苏 徐州 221111;3.长春财经学院 信息工程学院,吉林 长春 130122)
目前声纹、指纹、人脸等生物识别技术迅猛发展,广泛应用于网购、银行、公安、电子护照等.基于人脸识别的门禁系统在很多中高端智能楼宇和智能库房中的应用越来越多.人脸识别方便灵活、卫生健康、适用性强,只要配合完善的人员管理和门锁控制,就可实现安全的刷脸进门.卷积神经网络(convolutional neural networks,CNN)是近年发展起来,并引起广泛重视的一种高效的图像识别方法.参照CNN深层神经网络框架[1-3],文中利用Matlab设计与实现了一种10层CNN人脸识别模型并通过脚本节点导入到基于LabVIEW的门禁的控制与管理系统.实验实测表明:人脸识别模型的准确率适用,模型的泛化效果良好,LabVIEW门禁系统工作可靠,远程控制正常.
图1 门禁系统组成
面向智能楼宇和智慧仓储的实际需求,文中所提人脸识别门禁系统具有嵌入式图像采集、图像远程传输、图像预处理、CNN人脸识别、门禁管理数据库以及门禁权限管理等功能[4].CNN人脸识别模型由Matlab通过离线训练、交叉验证生成,其余功能由LabVIEW VI实现.
门禁系统组成如图1所示,主要包括三个部分,即基于STM32与OV2640的嵌入式图像采集与门锁控制装置,基于RS232与TCP协议的图像与数据传输控制,基于LabVIEW VI和ACCESS数据库的门禁信号操作与管理系统.
锁具采用磁力锁,通过继电器控制开关,通过门磁输入监控锁具状态.利用LabVIEW的WEB发布实现门禁系统的远程登录和监控.
门禁系统设计基本流程如图2所示.软件系统包括:基于Matlab的 CNN人脸识别模型的设计、离线训练和验证、LabVIEW门禁在线的控制与管理系统.CNN包括卷积层、池化层、全连接层与softmax输出层[5-8].门禁管理LabVIEW系统包括TCP连接管理、图像获取与传输、图像预处理和人脸图像识别、数据库检索和记录、锁具操作码下行传输等.
图2 门禁系统设计基本流程
目前,有许多CNN架构的变体,但其基本结构非常相似.CNN基本体系结构通常由三种网络层构成,分别是卷积层、降采样层(又称池化层)和全连接层.如图3所示,采用10层CNN模型LeNet-5架构设计,输入层输入RGB三通道的32×32像素的图片.首个卷积层用5×5卷积核得到和卷积核数量相同大小为28×28的特征图,然后将这些特征图按一定的方式组合起来作为卷积层的输出,经过2次卷积和采样,获得5×5特征图作为全连接层的输入.2个全连接层后采用softmax全连接,得到激活值,即卷积神经网络提取到的图片特征.
图3 学习模型设计
1) 卷积层
CNN的基本卷积滤波器是底层局部图像块(patch)的一个广义的线性模型(GLM).不同的卷积核提取的图像有不同的特征,如颜色分布、纹理特征、边界特征等.
CNN卷积运算实现权值共享和稀疏权重,模拟出细胞简单的局部感受野.稀疏权重使得核的大小远小于输入的大小,有效地减少网络的运算量.
2)池化层
池化函数使用某一位置的相邻输出的总体统计特征代替网络在该位置的输出,有效地减少了输入参加运算的神经单元,池化数学表达式为:
3) 激活函数选择
激活函数使得各连网络之间的连接关系变为非线性.
LabVIEW门禁系统程序框图如图4所示.
图4 LabVIEW门禁系统程序框图
1) TCP连接管理
门禁系统包括多个嵌入式系统管理多个磁力锁.每个嵌入式设备与LabVIEW门禁管理系统构成星型网络,独立通过TCP协议申请与系统连接.
系统采用典型的LabVIEW队列结构来管理前端多个嵌入式系统的TCP连接,包括TCP连接进队循环和出队处理循环.
2) 图像与锁控数据传输
针对每一个出队的TCP连接,通过应用层会话接收OV2640图像数据并截取有效部分,接收和发送门锁状态数据和操作数据.
3) 人脸识别脚本节点
将训练和验证后CNN模型的predict函数使用Matlab Script节点引入LabVIEW中.Script节点的输入为预处理后的图像数据,输出为识别后的人员的标号.
4) 数据库设计与检索
图5 部分人脸图像
为管理和记录用户信息、门锁信息和门操作记录信息,系统采用ACCESS数据库设计Man、Door和Record 3个数据表.门锁操作时,根据人脸识别结果检索Man表与Door表,进行合法性判断和权限对比,同时在Record表中记录门操作的详细信息,包括时间、门号、人员、门动作等信息.
数据库连接使用DSN数据源名称,直接使用SQL语句字符串实现查询、插入等数据库操作.
实测过程中,人脸图像数据集中包含有15人,每人100幅脸部图像,共计1 500幅.OV7670的图像的原始分辨率为320×240, 使用Matlab中的imresize函数可将其调整为100×100,如图5所示.
数据集按7∶3的比例划分为训练集和测试集.训练采用随机梯度下降SGD(stochastic gradient descent)方式迭代10次,基础学习率为0.001.训练集的正确率为0.987 8,测试集的正确率为0.988 5,从而表明泛化效果较好.
实测采取真人实测,将OV2640摄像头安装在门上,10个人共进行112次开门实验.识别结果是出错6次、未识别10次、识别成功96次.
基于LeNet-5架构设计10层CNN用来实现人脸识别并使用LabVIEW构建了一个完整的门禁智能管理系统.系统具有多点图像采集与传输、人脸识别和门锁控制、数据库门锁操作管理等实用功能.研究结果表明整体结构合理,工作正常,具有一定的借鉴作用和实用性.