版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于人脸识别技术的门禁系统设计目录TOC\o"1-2"\h\u320151引言 144942人脸识别门禁系统原理 2189752.1人脸识别门禁系统的构成 21792.2人脸识别门禁系统的工作原理 2135223系统硬件设计 3263183.1人脸采集与比对模块:树莓派 392133.2核心控制模块:Arduino单片机 5308403.3电机模块 616953.4语音模块 7272183.5物联网模块 8168773.6人体感应模块 9275083.7射频读卡模块 10298383.8红外反射模块 10174454系统软件设计 11247994.1主程序流程图 11173124.2树莓派人脸识别匹配 1277424.3蓝牙传输 13155374.4天气显示 13290905系统调试 1441955.1软件调试 14286895.2实物组装与调试 15325506结束语 20250136.1总结 20317606.2不足与展望 2021145参考文献 211引言在本设计中,利用百度智能云的视觉库和以树莓派作为硬件设计基础,通过对整个系统的设计框架进行论证,并采购相应的元器件、组装硬件系统、编写对应的软件程序,最终实现了准确的人脸识别,并据以控制门禁系统的开关。具体来说,该人脸识别门禁采用树莓派采集、识别和匹配人脸,使用Arduino开发板作为主控芯片去接收树莓派发送的信号并控制舵机开关门、语音的播报和刷卡,此外还可以在屏幕上打印时间和未来三天的天气情况。调试结果表明,整个系统运行稳定,响应迅速,比较高效地实现了既定设计目标。2人脸识别门禁系统原理在本章中,对人脸识别门禁系统的设计原理进行了简要的介绍,主要包括它的构成和基本工作原理等内容,并给出了系统的整体设计原理框图。2.1人脸识别门禁系统的构成本系统主要包括用于人脸识别和匹配的树莓派3b+主机、用于接收蓝牙信号、控制舵机开关和语音模块的Arduino单片机等,并使用ESP8266模块联网获取时间和天气信息,另外还配备了一块OLED液晶屏用来显示时间和天气情况。同时,还附加了RC522IC卡感应模块,完成了刷卡门禁的实现,用于在人脸识别失败的时候作为替补手段。摄像头连接在树莓派的SCI接口上,人体感应模块用来感应人体的靠近并点亮小灯泡,增加补光效果,以提高人脸图像的采集质量。系统整体框图见图1所示。图1系统整体框图2.2人脸识别门禁系统的工作原理本设计的人脸识别门禁是基于树莓派的设计,需要在树莓派上安装好系统,并且安装好摄像头驱动、蓝牙驱动以及其他的相关安装包,然后就可以直接在上面运行程序。首先,在百度智能云平台上注册并创建人脸库,为了能够实现快速的识别目标人像,需要在智能云平台的系统库文件里存入待匹配的所有人员的照片。然后,将创建好的SDK以及相关数据下载到树莓派中。树莓派将识别到的信号通过蓝牙发送至Arduino,Arduino运用HC-05蓝牙模块对树莓派发送的信号进行接收,并对接收的数据信号进行处理,再去控制电机的转动,从而实现门的开与关,并伴随相应的提示音。此外,为了避免摄像头损坏等原因导致的人脸检测失败,还设计并完成了刷卡功能,可以使用刷卡的方式对使用者身份进行补充识别。整个系统中最核心的算法在于其中的人脸识别和匹配方法,这里我们主要利用了百度AI平台,它具有开放的人脸识别库REF_Ref9543\r\h[12],可以很方便地用来作为一个云端,存储待匹配的人脸库数据,并完成人脸匹配的功能。在具体的人脸识别环节中,采集得到的人像首先要进行预处理,对面部的很多细节特征进行采集分析。机器识别的局限性是会收到外界环境的干扰,包括光照强度,脸部遮挡等都会造成系统对人像判断识别的错误,甚至人的表情同样也会造成一定的干扰,故而在前期的预处理就显得尤为重要。所谓预处理就是对采集的人像进行人脸的矫正和图像的增强等操作,常见的预处理方法有模糊、二值化、边缘检测、灰度化等,这些方法的目的就是为了去除照片里的噪音和无关特征,去除脸部多余的像素,只匹配可识别的面部范围。预处理完成后,首先对原图边缘进行一次灰度对象图像的边缘均衡化,再进行一次灰度对象图像的平滑与锐化曝光处理,然后对灰度图像图边缘进行一次梯度二值化处理,再对其周边进行一次梯度图像边缘锐化检测,再进行尺寸归一化,最终输出图像,并将其与系统库中预先存储的图像数据进行匹配,输出结果。在具体的程序实现中,我们在程序上设置了一个定时器,令摄像头每隔1s拍摄一次图像,并检验图像中是否存在人脸,如果不存在,则继续等待;如果存在,则按照上述步骤,开展人脸目标的检测和识别工作。3系统硬件设计本系统采用树莓派来作为人脸识别的采集、识别与匹配的控制器,使用Arduino开发板作为主控芯片去接收树莓派发送的信号并控制舵机开关门、语音的播报和刷卡,此外还可以在屏幕上打印时间和未来三天的天气情况。因此,本系统的硬件主要包括树莓派3b+主机、Arduino单片机、ESP8266物联网模块、电机模块、语音模块、人体感应模块、RC522IC卡感应模块和红外反射模块等。3.1人脸采集与比对模块:树莓派树莓派是一种基于Linux操作系统的小型个人计算机电脑主机,其最初的一个底层设计就是一个非常完整的Linux版本操作系统,并且是一个开放式的硬件平台。它主要目的是为了实现一个能够让年轻人们更好的学习计算机中的编程的教育而专门设计的产品。虽然只有一张银行卡大小,但是其不仅具有一个计算机所拥有的各种基本功能,而且具有不错的硬件性能,具备了语音、视频、摄像头、蓝牙、无线等功能,并且具有低功耗的优点。其设置了许多的IO口,可以增加外设,实现更多的功能。本设计使用的是树莓派3b+,是一款比较新的产品,该产品具有1.4GHz的64位四核处理器,5GHz的WiFi,双频可到达到2.4GHz,并且有40个引脚的GPIO接口,可以很好的链接更多的外设,实现更多的功能。还有其他的一些连接口,保证了其更大的使用范围,达到更好的学习效果。摄像头采用了CSI接口可以直接插在树莓派接口上,只要在树莓派系统内打开摄像头权限就可以使用该摄像头,树莓派作为现在热门的小型电脑,它可以安装系统,制作服务器,可以链接键盘,鼠标等外设,可以直接连接WiFi,可以说性能很高,对于作为人脸识别模块的控制可以达到非常高效的结果REF_Ref10287\r\h[13]。树莓派模块的实物图见图2所示,其引脚原理图见图3所示。图2树莓派3b+实物图图3树莓派3b+引脚原理图3.2核心控制模块:Arduino单片机本系统设计采用的核心控制器件是ArduinoUNOR3开发板。这是一个同样具备开源代码的控制器,具有低功耗、功能全面的优点。板子设计的非常简洁,AVR的单片机、使用5V的直流电源、16MHz的晶振。上面有14路的IO口,拥有足够的引脚来设计本系统。此外,我们只需要给Arduino单片机供电,再利用面包板进行对电源接口的扩展。Arduino单片机模块的实物图见图4所示,其原理图见图5所示。图4Arduino开发板实物图图5Arduino开发板原理图3.3电机模块本设计采用G90舵机来模拟门禁的开门与关门。通过HC-05蓝牙模块对树莓派的蓝牙信号进行接收,树莓派会给蓝牙模块发送1、2、3这三个字符,分别表示人脸识别错误对应关门、人脸识别匹配成功对应开门、未识别人脸保持关门状态。这三种状态分别对应舵机的转向,程序对其进行一定的设定,关门状态旋转30度,开门状态旋转150度。电机模块的实物图见图6所示,其信号线连接图见图7所示。 图6G90舵机实物图图7信号线连接3.4语音模块本设计采用一个mp3模块来作为语音播放器,可以用来作为一个人机的交互的语音反馈,当人脸识别匹配成功,则语音提示“人脸识别成功,门已打开”,人脸匹配不成功,则语音提示“我不认识你”,当门打开两秒之后,门会自动关闭,语音提示“门已关闭”。对于此模块的运用,只需要将制作好的音频存储到内存卡中,重新创建一个命名为01的新文件夹,在此文件夹中存放相应的音频文件,对音频文件重命名,命名格式为001、002……可分别对应的引脚,一共有9个触发端口,单片机最多可触发31个音频,只需要在程序中进行处理,需要用到哪个音频就将对应的引脚电平拉低。上电后的模块上A1-A10引脚默认都是高电平,若要触发其中一个音频,就要在这个引脚是高电平的状态下拉低电平50ms以上,如果还需再次使用该引脚触发,就当将其再重新拉高电平。本设计的语音模块实物图见图8所示,所使用的喇叭实物图见图9所示。图8语音控制模块实物图图9喇叭实物图3.5物联网模块本设计采用ESP8266来实现互联网获取网络时间和当地的天气情况,ESP8266模块是常用于物联网模块,其具有高性价比和集成度较高的WiFi控制单元,本设计采用的是ESP8266nodemcu这个芯片,内部嵌有esp8266芯片并且设置了许多引脚方便使用。其实物图和最小系统原理图分别见图10和图11所示。图10ESP8266实物图图11ESP8266最小系统原理图3.6人体感应模块本设计采用了HC-SR501人体感应模块来识别是否有人体靠近门禁系统,当有人靠近门禁系统需要采集人脸时,该模块的输出端就会输出一个高电平,只需要将输出端连接LED灯的正接口,LED负端接地就可以完成。以此来达到当有人在人脸识别时,起到一个补光的作用,不会由于环境偏暗导致采集的图片识别不清,而且不像一般的人脸识别门禁让灯光保持常量,用此办法来达到节约用电的目的。人体感应模块实物图见图12所示,补光灯原理图见图13所示。图12人体感应模块实物图图13人体感应补光灯原理图3.7射频读卡模块本设计读卡模块采用了NXP公司的一款高频的射频读卡芯片RC522。读卡模块采用非接触性通信,具有体积小、低成本、中断模式灵活等优点,可以通过使用较少的外部设备就能够把输出的驱动级连接到天线。实物图见图14所示。图14RC522读卡模块实物图3.8红外反射模块本设计采用TCRT5000红外反射模块来进行人体探测和报警。红外传感器的红外发射二极管会一直向外发射出红外线,如果反射回来的光足够强,就可以被红外传感器的接收端的二极管自动接收,此时在该模块就会输出一个低电平。当有人穿过时,人体会遮挡反射回来的红外线,此时红外传感器的接收端的二极管接收不到反射光,模块输出高电平。根据此原理,设计在关门状态下,当人脸识别未成功且有人越杆时,模块输出高电平,就会拉响警报。警报声是通过红外模块连接的蜂鸣器发出的。实物图见图15所示。图15红外反射模块实物图4系统软件设计在本章中,对系统的软件部分的设计和流程进行简要的介绍,包括本设计的主程序流程和人脸识别匹配、蓝牙传输、天气显示等关键子程序的流程。4.1主程序流程图本设计的程序原理框图和主程序流程图见图16、图17所示。程序启动后,首先进行初始化,然后摄像头每隔1s拍一帧图像,并由树莓派模块进行人脸检测,与人脸库中的数据进行对比,并根据对比结果给出未识别人脸、匹配成功、人脸错误等三种结果信息,这些信息通过蓝牙传递给Arduino,由Arduino根据收到的数据类型,做出不同的响应,如开门、关门、语音播报、报警等。图16程序原理框图图17主程序流程图4.2树莓派人脸识别匹配本设计利用树莓派来进行对人脸的采集与识别匹配,其中,人脸识别库使用百度智能云平台进行实现,其流程图见图18所示。首先,需要在百度智能云平台上创建一个人脸库,将需要待匹配的人脸图像上传到平台上。把相应的SDK文件安装到树莓派上,再通过树莓派运行python程序,树莓派需要联网获取智能云平台的人脸库,使用这个方法可以大大降低本地数据库的负担,如果是需要存储大量的人脸库,仅需要将人脸图片上传至平台云端即可。匹配的结果由树莓派通过蓝牙发送给蓝牙接收模块,以1、2、3分别代表人脸错误、人脸匹配成功、未识别人脸等三种结果。图18树莓派人脸识别程序流程图4.3蓝牙传输本设计采用HC-05蓝牙模块作为树莓派控制信号的接收模块。树莓派本身自带蓝牙模块,只需要将其安装蓝牙的驱动,即可根据人脸对比结果分别传输不同的字符。在后续环节中,如果树莓派发送字符“1”或者“3”,Arduino接收信号并让舵机作出关门的动作;如果树莓派发送字符“2”,Arduino接收信号让舵机开门。4.4天气显示本设计利用ESP8266物联网模块进行联网获取网络时间和天气预报的获取。ESP8266物联网模块可以自动连接至WiFi并或获取天气情况。通过对模块的程序的编写,配网的时候需要注意要使用2.4G频段的WiFi,不能使用5G。其中网络获取时间和天气的地址是心知天气的数据。程序流程图见图19所示:先判断ESP8266模块是否支持AT指令,然后将模块设置为STA模式,对ESP8266模块复位,将其设置为单连接模式,连接上手机热点或者WiFi,建立TCP连接,再设置为透传模式,最后将获取到的数据以串口数据的形式发送给OLED屏,用来显示天气和时间。图19天气显示程序流程图5系统调试5.1软件调试在本设计中,先对树莓派进行了软件的调试。编写好程序代码之后,发送至树莓派系统中,将树莓派通过网线连接至电脑,就可以在电脑上运行putty软件,对树莓派中的程序进行运行和调试了。软件调试界面见图20所示。通过不断的修改和优化代码,查看人脸匹配是否成功,及系统能否准确地播报语音提醒,最终可以实现人脸的识别与门禁系统的控制。图20软件调试界面图5.2实物组装与调试本设计将所有的硬件都固定在木板上,达到一个清晰美观的效果。固定好模块后再对其进行接线,通过面包板来对引脚的扩展与连接。连接好的实物图见图21所示。图21人脸识别门禁系统实物图在使用树莓派之前,要先给树莓派安装系统和蓝牙和摄像头驱动。然后给树莓派和Arduino开发板通电,就会自动开机。进入系统后,连接好WiFi和蓝牙,就可以直接运行python程序。观察Arduino所控制的模块指示灯是否亮起,保证所有模块都处于工作状态。然后,对Arduino开发板进行调试,将HC-05蓝牙模块结果收到的信号连接到Arduino的TX和RX接口,舵机的信号线需要连接至Arduino具有控制PWM波的引脚,本设计连接至9引脚。最终,同时开启树莓派和Arduino板。通过实时拍摄人脸进行测试,查看人脸识别结果是否正确,以及舵机能否进行正确的动作。经过不断地调试之后,本设计最终完美地实现了预期的人脸识别门禁功能,包括:如果未识别到人脸,舵机处于关闭状态。如果人脸识别错误,舵机处于关门,语音会播报“我不认识你”。如果人脸识别成功,舵机会旋转90度,即打开门禁,并且语音会播报“人脸识别成功,门已打开”。延迟两秒,门禁关闭。图22给出了在测试开始前建立的云端人脸数据库(部分):图22云端已上传的人脸数据库(部分)图23给出了在实际测试过程中,实时采集到的使用者照片:图23使用者人脸数据的实时采集图24给出了比对成功后的结果,可以看到系统显示了欢迎界面,同时执行了开门操作。图24比对成功,开门图25给出了当采集的阿图像没有检测到人脸时,会保持关门的动作。图25没检测到人脸,关门图26给出了当陌生人进行人脸识别时,机器提示不认识此人,依旧保持关门的状态。图26检测到陌生人,关门图27给出当门禁处于关闭状态时,红外传感器对是否有人越杆进行监测的工作状态指示灯。图27关门状态无人跨越横杆,指示灯暗图28是当有人不进行正常人脸识别,强行跨越挡板时,红外传感器模块就会检测到有物体进入,会触发提示灯光,同时蜂鸣器提示报警。图28关门状态有人跨越横杆,指示灯亮,蜂鸣器警报图29给出了天气信息的OLED屏显示图。图29天气显示情况图6结束语6.1总结本文设计了一种基于人脸识别技术的门禁系统,实验结果显示已经从硬件上实现了所预期的功能,例如能够准确的识别人脸并做出相应的反馈和开门关门操作,能够正常显示时间和天气,能够正常使用刷卡模块,语音播报功能正确等等。在本设计的实现过程中,遇到的最大困难是网络上对人脸识别匹配的教程特别的少,能找到的只有人脸的识别,但是没有人脸的匹配,所以人脸匹配是此设计的一大难点,花了很久才逐渐入门。其它困难还有很多,首先,本设计尝试了树莓派这个对于我来说还是陌生的主板,而且需要用到python来进行编程,这些对于我来说都是比较新的知识。其次,为了使本系统的使用更加灵活,本设计没有直接使用树莓派上的IO口,而是使用了树莓派的蓝牙来进行通信,通过树莓派与Arduino连接的外设HC-05进行通信控制,这里涉及到蓝牙通信协议,也是大学四年书本上没有的内容。另外,本设计还加入了物联网模块,增加了一个显示天气和时间的功能。通过本设计的实现,我对本科阶段学习的知识有了一个系统的认识,对当前的一些前沿知识也有了一定的了解,并具备了初步的系统设计能力,受到了很好的锻炼,也得到了很大的提高。6.2不足与展望本设计主要应用了计算机人脸识别技术,就是利用计算机来分析面部图像并提取关键信息,识别匹配身份的技术。这一技术功能强大,使用广泛,但依旧存在一些弊端,例如:年纪的增长会导致人脸会发生变化,另外人的表情具有多样性,采集的图像又容易受到光线的影响,所以不同条件下采集到的面部信
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 认识人民币小学数学教案
- 高中物理必修三教案6篇
- 幼师职业生涯规划书
- 食堂年终工作总结(19篇)
- 英文在职证明模版
- DB12-T 1061-2021 律师民事诉讼文书格式
- 2024-2025学年重庆乌江新高考协作体高三上学期二调生物试题及答案
- 上海市县(2024年-2025年小学五年级语文)人教版开学考试(下学期)试卷及答案
- 五年级数学(小数乘法)计算题专项练习及答案汇编
- 荆楚理工学院《软件测试》2022-2023学年期末试卷
- 2023年11月软考中级系统集成项目管理工程师下午真题(第二批)
- 云南太阳能资源分析
- 2024智慧园区系统建设规范
- 第5课 互联网接入 教学设计 2023-2024学年浙教版(2023)初中信息技术七年级上册
- 小学语文一年级上册课件第四单元01-10 ai ei ui
- 传感器技术-武汉大学
- 戏剧鉴赏学习通超星期末考试答案章节答案2024年
- 2024年中国船级社福建福州分社招聘60人历年高频500题难、易错点模拟试题附带答案详解
- 2024上半年四川内江市东兴区部分事业单位考聘112人高频500题难、易错点模拟试题附带答案详解
- 2024年大学英语四六级考试大纲词汇
- 2024-2030年公安行业市场深度调研及发展前景与趋势预测研究报告
评论
0/150
提交评论