学术堂首页 | 文献求助论文范文 | 论文题目 | 参考文献 | 开题报告 | 论文格式 | 摘要提纲 | 论文致谢 | 论文查重 | 论文答辩 | 论文发表 | 期刊杂志 | 论文写作 | 论文PPT
学术堂专业论文学习平台您当前的位置:学术堂 > 计算机论文 > 软件工程论文

基于Linux的疫情期间宿舍门禁系统的设计与实现

来源:电子设计工程 作者:雷文礼;包佳伟;张鑫;
发布于:2023-02-21 共4273字

  摘要:近年来,由于深度学习以及嵌入式技术的快速发展,人脸识别技术得到了极大的提高以及广泛的应用。不管是国内还是国外,多个高校、研究所以及大型公司都投入了大量人力物力进行研究,人脸识别方式也层出不穷。该文以基于Linux操作系统下的树莓派4B为硬件,以Opencv、face_recognition库为核心,采用级联分类器以及C++开源库Dlib中的深度学习模型设计了疫情期间宿舍门禁系统,运用Python语言和命令行对人脸进行动态检测并识别身份。测试结果表明,该系统具有较高的识别率,可以满足疫情期间学生宿舍门禁的要求。

  关键词:Linux;深度学习;人脸识别;树莓派;

  Abstract:In recent years,due to the rapid development of deep learning and embedded technology,face recognition technology has been greatly improved and widely used.Both at home and abroad,various universities and research institutes as well as large companies have invested a lot of manpower and material resources in research,and face recognition methods have emerged in an endless flow.Based on the Raspberry Pi 4B under the Linux operating system as the hardware,taking Opencv and face_recognition library as the core,using cascade classifier and deep learning model in C++ open source library Dlib,a set of dormitory access control system during epidemicperiod is designed which using Python language and command line to dynamically detect and identify faces. The test results show that the system has high recognition rate and can meet the requirements of student dormitory access control during epidemicperiod.

  Keyword:Linux; deep learning; face recognition; Raspberry Pi;

  随着经济的高速发展,人们的生活水平在不断提高,高校人口的数量也在不断增长,与此同时,疫情防控情况下,校内治安问题也屡见不鲜。人脸作为每个个体独一无二的生物特征,可以作为安全系统的身份鉴别依据[1,2]。该文基于Linux和Opencv库设计了疫情期间宿舍门禁系统,通过采集学生的头像图片,设计检测系统对来往通过的人群进行人脸检测。人脸检测数据匹配成功,则予以通过,若匹配失败,则发出警报提示,通道不予开启,从而保障学生的人身财产安全[3]。

  1 系统硬件设计

  1.1 树莓派

  树莓派(Raspberry Pi)最初是为发展中国家并不富裕家庭的学生提供的替代品,意在让他们以低廉的价格进行计算机编程环境的开发学习[4]。而随着产品的迭代,其功能也越来越强大,现已得到广泛应用,如智能机器人、网络视频监控系统、智能电视机顶盒、游戏机、家庭影院、网络收音机等。对于实验工具来说,可以作为台式电脑的主机,搭建Web服务器,构建个人网站,与多种外设传感器相连接进行开发等[5]。该文搭载了全新的树莓派4B作为硬件,其性能相比上一代有了巨大提升。特别在无线通信方面,搭配了2.4 GHz和5.0 GHz IEEE 802.11ac的无线网卡以及BLE千兆以太网,大大提升了传输速度,解决了网上传输数据的问题[6],其硬件参数如表1所示。

表1 树莓派硬件配置
树莓派硬件配置

  1.2 摄像头模块

  出于成本的考虑,加上树莓派硬件4B的USB接口充足,可以使用UVC免驱的高清USB摄像头[7]来满足系统的需要。系统采用摄像头的部分参数如表2所示。

  1.3 存储模块

  采用外接SD卡进行系统、程序和数据的储存。SD卡具有存储容量大、安全保密性强、功耗低、数据传输速度快、体积小等特点,是系统硬件不可或缺的一部分[8]。

表2 摄像头部分参数
摄像头部分参数

  1.4 供电模块

  考虑到系统供电的便利性,电源模块采用USB-C接口供电,电压为5 V,电流为2.5 A,输出功率为15 W。为了避免功率不足可能会导致的各种各样的问题,如死机、操作页面忽明忽暗、USB设备不工作等,因此需使用稳定的电源适配器[9,10,11]。

  2 系统软件设计

  该文所用到的软件系统采用基于Linux系统开发的Raspbian Buster系统。Raspbian Buster默认安装了Python的IDE开发环境,UI表现方面也比较简洁,为系统进行后续编程开发提供了便利。

  2.1 环境搭建

  1)下载Raspbian Buster系统镜像文件至计算机文件夹内,用Win32Disklmager软件将系统镜像文件烧录至内存卡,完成系统镜像文件的写入[12]。

  2)为了便于进行远程登录操作,还需要设置好系统网络与远程桌面连接。首先,在镜像烧录到内存卡后,在卡中新建一个名为SSH的空TXT格式文件,再去掉.TXT后缀变成一个空文件(SSH是一种网络协议,用于计算机之间的加密登录,目前已成为Linux系统的标准配置),这样系统在启动时,便会自动打开SSH功能;然后,在卡内新建名为wpa_supplicant.conf的TXT文件,将要连接的网络热点的名称与密码的特殊协议文档写入此文件内,写入完成后同样去掉.TXT后缀,如图1所示,ssid是热点名称,psk是热点密码。配置完成后,当系统启动时便可以自动连接文件写入的热点[13,14]。

自动获取无线热点协议
图1 自动获取无线热点协议

  3)将计算机端与硬件接入同一个网络,通过Advanced IP Scanner获取硬件IP地址,并在PUTTY上写入,然后登录系统,输入初始名称及密码便能进入终端进行操作了。若要进行远程登录操作,打开VNC远程桌面软件后输入系统硬件的IP地址后便可进入图形界面,此时连接的计算机就相当于系统硬件的远程显示屏以及外接的键盘鼠标了。

  2.2 算法设计

  该文应用程序采用Python进行开发。人脸的图像在未处理前常常形态各异,在图像中的位置也不尽相同。因此需要事先对图像进行处理,提高人脸识别的准确率[15,16]。

  1)首先将要检测的人脸图片灰度化。色彩对于找到人脸位置并无明显作用,灰度化能够有效降低光照、阴影的影响,增大识别准确率,减少工作量;

  2)通过图像标准化裁剪进行尺度归一化处理来避免特征提取阶段得到不同的结果,提高准确率。设在X轴方向上的缩放比例为Cx,Y轴方向上的为Cy,则图像的变化矩阵如式(1)所示:

公式1

  经过以上处理后,图像可能会被放大,同时像素值也会增多。因此可以通过插值的方式来增加像素,使大小不同的人脸图像经过处理后得到统一。将矩形图像上的四个顶点分别设为(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2),则在此图像中,记任意一点为(x,y),其灰度值f(x,y)的计算公式如(2)所示:

公式2

  3)用方向梯度直方图(HOG)提取人脸信息,它通过计算局部图像特征的梯度并统计其方向梯度直方图来描述图像的特征,是一种非常有效的图像特征描述子,广泛应用于各种识别场景中。提取图像中的特征数据过程如下:首先,计算经过灰度化处理后,图像中各像素的梯度;然后,将图像划分为一个个小的细胞单元,划分完成后统计每个单元的方向梯度直方图来形成特征描述子;最后,通过将这些特征描述子串联起来就可以得到所要进行处理的图像HOG特征了。

  4)将提取的特征数据与数据库中的相匹配,设计阈值,超过此阈值便可认为人脸匹配。系统采用了Dlib库,它可以找到人脸特征点并定位,之后进行图像的几何变换,将图像中的特征点与模型中的相对齐。再经过dlib_face_recognition_resnet_model_v1.dat模型处理后得到128维向量以此来判断是否是同一张人脸。库中的Haar特征如图2所示,它是一种黑白矩阵在图像的某一区域中灰度级数之差,有三种类型,运算结果反映了图像某个局部的灰度变化。库中所用到的模型是一个具有29个转换层的Res Net网络。Res Net网络结构如图3所示。

Haar特征
图2 Haar特征

Res Net网络结构
图3 Res Net网络结构

  2.3 系统具体实现过程

  完成上述镜像的烧录和系统的设置后,系统初始环境内已经配置好了Python2.7和Python3.7环境。该文在Python3.7版本下安装Opencv4.0.0版本和常用的图像工具包,并配置CMake编译环境,同时在系统上安装好需要的face_recognition库,这样就完成了实现人脸识别过程的所有准备工作了。整个系统的工作流程如图4所示。

  2.4 主要代码分析

代码1

代码2

人脸识别过程
图4 人脸识别过程

  3 系统测试

  该文在完成了系统硬件和软件平台的搭建以及程序的编写后,在实验室环境下进行了测试,测试中选择了四组样本数据。首先,将要进行人脸识别的对象的jpg格式照片存储进系统内,然后放在系统上运行,系统初始化程序结束后,进入该文设计的人脸识别程序,测试结果如图5所示,数据测试结果如表3所示。测试结果显示,该系统可实现对人脸的识别,确认人员身份信息,满足系统设计的门禁人脸识别的要求。

测试结果
图5 测试结果

表3 数据测试结果
数据测试结果

  4 结论

  该文基于树莓派硬件系统设计了一套人脸识别系统,并提供了详细的实现过程。该系统的识别正确率高,硬件成本低,可操作性高,保障了疫情期间宿舍学生生命财产的安全问题,大大提高了公众场合的安全性,并为后续人脸识别系统的开发和应用提供了一定的参考。

  参考文献

  [1]刘慧颖,孙玉国基于残差网络的非限定条件人脸识别研究[J]软件,2019,40(11):143-147.

  [2]杜翠凤,温云龙,李建中.基于深度卷积对抗神经网络的多状态自适应人脸识别方法[J].移动通信.2019,43(9):75-78,85.

  [3]张枫,田联房,杜启亮甚于残差网络与中心损失的人脸识别[J].计算机工程与设计,2019,40(6):1689-1695.

  [4]李凯,王灵晓,崔丽娟.位平面分解的人脸识别集成方法研究[J].烟台大学学报(自然科学与工程版),2009,22(4):.286-290.

  [5]曾贤灏,李向伟基于自正则化非负编码和自适应距离度学习的视频人脸识别[J]计算机应用与软件,2015.32(12)118-122,149.

  [6]龚勋,周炀.面向低质量数据的3D人脸识别[J].电子科技大学学报.2021.50(1):43-51.

  [7] Chen W,Chen J C,Zou F H,et al.Vector and line quantization for billion-scale similarity search on GPUs[J]. Future Generation Computer Systems,2019(99).295-307.

  [8] Zhang K P,Zhang Z,LiZ F,et al.Joint face detection and alignment using multitask cascaded convolutional networks[J].IEEE Signal Processing Letters,2016(10):1499-1503.

  [9]贾媛媛三维点云与RGB的融合与语义分割方法研究[D].北京:北京交通大学,2019.

  [10]李章燕基于局部特征的三维人脸识别算法的研究[D]哈尔滨:哈尔滨I业大学,2018.

  [11]赵洋.许军基于Mobile Net V2与树莓派的人脸识别系统[J].计算机系统应用,2021(8):67-72.

  [12]赵青,元辉基于分层特征化网络的三维人脸识别[J].计算机应用.2020(9):2514-2518.

  [13]戚福豪孙小舒.陈稳,等.人脸识别签到手机APP设计的研究[J]电子元器件与信息技术2021(5):193-194.196.

  [14]赵江炜张强邓时颖.5G时代固定和移动人脸识别在警务视频融合应用中的探索[J].警察技术,2021(3):46-49.

  [15]龙光利基于Zig Bee的无线温湿度监控系统的设计[J]现代电子技术,2018(12):36-39.

  [16]杨红英,姚毅,宿广福基于Zig Bee-WSN白酒发酵过程温度监测系统的设计[J]自动化与仪表2016(2):33-36.

作者单位:延安大学陕西省能源大数据智能处理省市共建重点实验室
原文出处:雷文礼,包佳伟,张鑫等.基于Linux的疫情期间宿舍门禁系统的设计与实现[J].电子设计工程,2023,31(04):11-15.
相关标签:
  • 报警平台
  • 网络监察
  • 备案信息
  • 举报中心
  • 传播文明
  • 诚信网站