智能门锁系统.doc

上传人:温桑 文档编号:49455296 上传时间:2022-10-08 格式:DOC 页数:31 大小:5.29MB
返回 下载 相关 举报
智能门锁系统.doc_第1页
第1页 / 共31页
智能门锁系统.doc_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《智能门锁系统.doc》由会员分享,可在线阅读,更多相关《智能门锁系统.doc(31页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、成绩本科毕业论文(设计)题目:智能门锁系统学生姓名 赵 泽 辉 学 号 2015117301 指导教师 张 涛 院 系 信息科学与技术学院专 业 电子信息工程 年 级 2015 教务处制二一九年六月诚信声明本人郑重声明:本人所呈交的毕业论文(设计),是在导师的指导下独立进行研究所取得的成果。毕业论文(设计)中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。除文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或在网上发表的论文。特此声明。指导教师签名: 论文作者签名: 日 期: 年 月 日 日 期: 年 月 日摘 要人们对门锁的主要要求在于开锁方式安全以及使用过程方便。

2、然而目前市面上的传统门锁和近年来新出现的智能门锁都并没有真正的满足这两点需求,仍存在很多不足之处,可以进行进一步的改进。因此,本文设计了一种使用生物特征进行解锁的智能门锁系统,以达到上述要求。系统以树莓派为主控制器,支持解锁方式的自由选择,可以通过人脸匹配和密码指纹同时匹配这两条途径来完成解锁。同时针对停电等特殊情况也具有相应的解决方法,不影响人员的出入以及财产的保护。关键词:智能门锁;树莓派;人脸识别;指纹识别;嵌入式系统AbstractThe key requirements for a door lock are the safety of the unlocking method an

3、d the convenience during use. However, both the traditional door locks and the newly emerged smart locks on the market do not really meet those two needs. There are still many drawbacks which can be improved. Therefore, this paper designs a smart lock system which uses biometric features to unlock,

4、to achieve the requirements mentioned above. The system uses a Raspberry Pi as the main controller and supports the free choice of which unlocking method to use. Face matching is one way of unlocking, while fingerprint and password matching simultaneously is the other. For power failure and other si

5、milar circumstances, the system also has corresponding solutions to make sure the access of personnel and the function of property protection are not affected. Keywords:Smart Lock; Raspberry Pi; Face Recognition; Fingerprint Recognition; Embedded System目 录1 绪论11.1 本文研究的背景和意义11.2 国内外应用现状12 系统总体设计与相关技

6、术32.1 系统总体设计32.2 系统相关技术42.2.1 OpenCV简介42.2.2 Haar特征简介42.2.3 HOG特征简介52.2.4 LBP特征简介52.2.5 UART技术简介52.2.6 CSI接口简介63 系统硬件设计63.1 系统硬件总体设计63.2 主控制器的选型63.3 键盘模块电路设计73.4 指纹模块电路设计73.5 摄像头模块电路设计83.6 蜂鸣器模块电路设计93.7 门锁模块电路设计94 系统软件设计104.1 键盘功能软件设计104.2 指纹功能软件设计114.3 人脸识别功能软件设计134.3.1 采集人脸数据134.3.2 训练识别器144.3.3 识

7、别人脸154.4 开锁功能软件设计164.5 系统主程序设计164.6 程序自启动软件设计175 系统测试175.1 系统硬件连接测试175.2 系统软件功能测试185.2.1 键盘功能软件测试185.2.2 指纹功能软件测试185.2.3 人脸识别功能软件测试195.2.4 开锁功能软件测试215.2.5 系统主程序及自启动软件测试226 总结与展望226.1 工作总结226.2 未来展望23参考文献231 绪论1.1 本文研究的背景和意义 门锁可以保障人们的财产和人身安全,是日常生活中不可或缺的一个物品。传统的门锁使用钥匙进行操作,存在丢失、被盗以及忘带等可能性。一旦发生,不仅主人无法有效

8、使用门锁,还存在被他人非法入侵的风险。即便是正常使用门锁的过程中,也具有掏钥匙和随身多携带一个物件的不便利性。随着智能家居概念的兴起,智能门锁在最近几年出现在了市场上,部分产品选择了NFC磁卡和手机蓝牙的解锁方式。但是这只是将金属的钥匙换成了另一种形式的“钥匙”,依然存在着上述不足,同时又增加了易伪造和易破解的缺点。除此之外,大部分产品允许仅凭密码完成解锁,存在较大的安全隐患。因此,开发一款不依赖实体“钥匙”、基于生物特征进行解锁的智能门锁系统很有必要。1.2 国内外应用现状国内市场中,智能门锁在酒店、公司、学校、小区等公共场所的应用很广,其中的绝大部分都是使用NFC磁卡。但是NFC磁卡的安全

9、性并不高,不法分子仅凭支持NFC功能的安卓手机和相应的读卡器,就可以入侵到磁卡的扇区中,随意进行读写操作。一些知名厂商(NXP、Broadcom)的磁卡产品,即便无法获取完整的权限,也可以较为容易地复制一张新卡出来。即使NFC磁卡的安全性不存在任何问题,也会面临无法保证持卡人就是用户的难题。而在国内的家用市场中,智能门锁的应用率极低,大部分家庭依然使用传统的机械门锁1。智能家居概念的火热,也让智能门锁产品进入了一般家庭的视野。图1.1列举了目前各大电商网站上口碑和销量不错的几款产品。可以看到,几款智能门锁均采用了指纹和密码的解锁方式,一些产品还增加了磁卡和手机蓝牙作为选项。然而它们的普遍缺点在

10、于价格过高,且选择了NFC磁卡和手机蓝牙这种相对来说更容易破解和伪造,又增加了携带负担的解锁方式。智能门锁在国外市场的应用则要比国内好很多。尽管在公共场所中应用的规模和解锁方式与国内无太大差别,但是智能门锁在日韩和欧美的家用市场中普及很广泛,尤以韩国突出。韩国的房地产开发商会直接将智能门锁安装在新房内,此外在超市中也能够很方便地购买到智能门锁2。除了应用规模的差别,图1.1 国内电商网站上的典型智能门锁国外的产品在解锁方式的选择上也与国内智能门锁不太一样。图1.2为国外电商网站上的几款典型产品。由图可以看到,国外的智能门锁往往采用单一的解锁方式,最多为两种,像国内产品那样三种或四种解锁方式并存

11、的产品几乎没有。密码和指纹依然是主流解锁方式,少部分门锁选择了蓝牙作为附加选项,且没有品牌使用NFC磁卡来解锁。图1.2 国外电商网站上的典型智能门锁 综合来看,无论是国内品牌还是国外品牌,它们多数都选择了指纹作为解锁依据,这点符合人们对于安全性的要求。但是它们普遍又允许只通过密码来进行解锁,由于密码容易被偷窥以及复杂度通常不高,因此产品在安全性方面存在一定的隐患。少部分选择了NFC磁卡和手机蓝牙完成解锁功能的产品,也违背了便携性的需要。此外,价格普遍较高也成为了阻碍智能门锁普及的另一个因素。2 系统总体设计与相关技术2.1 系统总体设计本设计将完成一个支持人脸匹配以及密码和指纹同时匹配两条解

12、锁途径的智能门锁系统,按照模块划分,可分为主控制器、键盘模块、指纹模块、摄像头模块、蜂鸣器模块以及门锁模块六部分。主控制器通过接口与各个模块相连,控制各外设,并完成数据的通信和处理。键盘模块负责完成识别方式选择以及密码输入的任务。指纹模块内部包含处理器与寄存器,可以完成录入指纹图像、提取指纹特征、比对指纹特征、存储指纹模型等操作,并能向主控制器发送每一步操作的结果。摄像头模块负责捕捉画面,同时通过灯光的方式向用户提示系统的工作状态。蜂鸣器模块负责发出提示音,向用户告知系统运行情况。门锁模块可以受到电信号的控制来完成开关的动作。系统总体框架如图2.1所示。图2.1 系统总体框架 系统的工作原理为

13、:系统上电,时钟、串口等启动完毕,程序加载完成后,用户通过键盘模块选择解锁方式。主控制器读取到键盘模块发来的数据后,判断用户所选择的解锁方式。若选择人脸匹配的解锁方式,则控制摄像头模块启动,开始拍摄。摄像头将捕捉到的每一帧图像发送回主控制器,主控制器进行相应的图像处理运算。从图像中识别出人脸且人脸属于主人时,控制门锁模块开锁,并发出提示音。若选择密码和指纹同时匹配的解锁方式,主控制器开始接收键盘模块传来的密码数据。当用户输入的密码格式正确且与预设密码相同时,主控制器向指纹模块发送控制指令,命令指纹模块进行读取指纹图像、提取指纹特征、比对指纹特征等一系列操作。当指纹特征与指纹库中的某指纹的特征相

14、同时,指纹模块向主控制器发送代表指纹正确的应答码,主控制器收到后控制门锁模块开锁,并发出提示音。在上述过程中,如果任意一步出现错误(如人脸不匹配、密码格式错误、指纹图像模糊等),蜂鸣器将发出错误提示音,系统退回到接收解锁方式的步骤;如果成功解锁,系统也将退回到接收解锁方式的步骤,准备下一次解锁。2.2 系统相关技术2.2.1 OpenCV简介本设计使用OpenCV来实现人脸识别的功能。OpenCV是计算机视觉领域一个通用的基础环境,提供多种编程语言的接口,可以在各种主流操作系统上运行3。软件库包含超过2500种优化后的算法,运行效率很高,适用于要求实时性的应用场合。这些算法中,既有计算机视觉和

15、机器学习领域的经典算法也有最新提出的高级算法,可以被用来完成人脸识别、物体识别、动作跟踪、图像拼接等众多任务。本设计即利用OpenCV官方的face模块来进行人脸识别。2.2.2 Haar特征简介 要想实现人脸识别,首先需要从摄像头拍摄到的图像中找出人脸。本设计选择Haar特征来找到人脸轮廓。Haar特征是图像处理领域中用于识别任务的一种常用特征。如果按照传统的方法使用图像中每一个像素的强度来进行特征计算,计算量会非常大。1998年,帕帕乔尔乔等人提出了一种方法,使用Haar小波集来代替传统的基于像素强度的特征集4。维奥拉和琼斯根据帕帕乔尔乔的思路,于2001年正式提出了Haar特征的概念5。

16、图2.2 Haar特征模板示例Haar特征采用矩形模板,模板分为正系数和负系数两部分,正系数部分像素总数与负系数部分像素总数的差,就是该模板的特征值。之后,将该特征值与预先学习得的阈值进行比较,以识别出不同的物体。但是仅根据单一Haar模板特征值来分类的效果很差,往往需要大量的模板来共同识别一个物体,这样才能保证一定的识别准确率。将这些大量的模板组织在一起得到一个级联分类器。本设计即调用预先训练好的人脸级联分类器来完成提取人脸轮廓的工作。Haar特征相对于其他特征的优点在于可以使用积分图来加快运算速度,因此十分适用于要求实时性的场合。2.2.3 HOG特征简介在明确了人脸轮廓后,需要提取人脸图

17、像的特征,以分辨出不同的人脸。HOG意为方向梯度直方图,常用于物体检测工作。1982年麦康奈尔第一次解释了HOG背后的原理,但是并没有使用HOG一词6。直到2005年达拉尔和特里格斯在计算机视觉与模式识别会议上展示了他们关于HOG特征的补充工作后,其才被大量使用7。由于梯度可以较为准确地反映出图像某一范围内的性质,HOG选用该范围内梯度方向出现的次数作为特征值。此外,在密集网格上计算,并且使用局部对比度归一化的方法,使得HOG特征对于光照的变化以及人脸表情的细微变化都具有很高的容忍性。2.2.4 LBP特征简介除了HOG特征以外,LBP特征也是本设计用于提取人脸特征的一个依据。LBP意为局部二

18、值模式,可以用来反映图像中某一部分的纹理,于1994年首次被提出8。它将某一矩形模板内所有像素的强度相互比较,以0和1的形式反应出比较结果,用这样的矩阵来描述该模板的纹理特征。LBP特征简单却又非常有效,同时对于光照的变化也具有鲁棒性,适用于进行实时的人脸识别9。实验表明,如果将LBP特征与HOG特征相结合,可以在一些数据集上极大地提升识别效果10。2.2.5 UART技术简介本设计中选用的指纹模块使用UART技术与主控制器进行数据交换。 UART代表着通用异步收发传输器,是一种用于异步通信的计算机硬件设备。它可以将数据在并行通信和串行通信之间相互转换,传输数据的格式与传输速度都是可以配置的1

19、1。数据传输共使用三根电线:Tx负责发送数据,Rx负责接收数据,GND负责提供参考电平,连接方法如图2.3所示。传输时,数据由设备1的Tx端口串行发出;设备2检测到Rx端口上有信号时,先将数据缓存,然后以并行方式一并读出,反之亦然。图2.3 UART连接方法2.2.6 CSI接口简介本设计中摄像头通过CSI接口与主控制器相连。CSI意为摄像头串行接口,是移动产业处理器接口联盟所设立的一个接口标准12。它定义了摄像头与处理器之间的接口,主要由应用层、协议层和物理层组成,单线传输速度可达1Gb/s。 3 系统硬件设计3.1 系统硬件总体设计本智能门锁系统以树莓派3B+为核心,外设包括4*4矩阵键盘

20、、AS608光学指纹模块、树莓派官方CSI接口摄像头、蜂鸣器、电机锁、电机锁驱动电路。系统由一个双组输出的开关电源供电,将5V输出提供给树莓派和电机锁驱动电路,将12V输出提供给电机锁。系统各部分的连接方式如图3.1所示。图3.1 系统各部分连接方式3.2 主控制器的选型主控制器作为系统的核心,在选型时必须全方位考虑。本设计最终选择了树莓派3B+作为系统的主控制器,主要出于以下几点考虑:本系统使用OpenCV来实现人脸识别功能,为了能够使用OpenCV,需要选择可以运行完整操作系统的控制器。实时人脸识别要求主控制器具有足够强大的计算能力,树莓派的最新型号3B+搭载了主频为1.2GHz的四核64

21、位CPUARM Cortex-A53,其计算能力达到了要求。本系统接入了众多外设,需要大量的接口,而树莓派3B+包含了29个GPIO接口、1个CSI接口、1组UART接口和4个电源引脚,足以满足外设的需求。树莓派体积小、重量轻。3.3 键盘模块电路设计 系统使用的键盘模块是一个4*4矩阵键盘,图3.2展示了其内部连接方式。键盘共包含8根导线,4根负责确定按键所在的列,4根负责确定按键所在的行,另一端与树莓派的GPIO引脚相连。按键按下后,与其相连的两根导线短接到了一起,树莓派通过读取高低电平的变化来确定所按下的键。图3.2 4*4矩阵键盘内部结构3.4 指纹模块电路设计本设计采用AS608光学

22、指纹模块来实现指纹识别的功能。AS608可以容纳300枚指纹,搜索时间小于0.3秒,拒真率小于1%,认假率小于0.001%,内部包含专用的DSP芯片,可以快速完成对指纹数据的处理工作。其引脚定义如表3.1所示。表3.1 AS608引脚定义序号名称说明1Vi模块电源输入端(5V)2Tx串行数据输出3Rx串行数据输入4GND信号地,内部与电源地连接5WAK触摸感应信号输出,高电平有效6Vt触摸感应电源输入端(3.3V)7U+USB D+8U-USB D-AS608使用UART接口与树莓派连接,故不使用7号和8号USB引脚,具体连接方式如图3.3。指纹模块内置触摸感应电路,当有手指置于传感器上方时,

23、5号引脚输出高电平。图3.3 指纹模块与树莓派的接线方法3.5 摄像头模块电路设计 图3.4展示了树莓派与摄像头的连接方式。由于树莓派的主板上包含一个CSI接口,故可以直接用排线将两者连接到一起。图3.4 摄像头与树莓派的连接方式3.6 蜂鸣器模块电路设计蜂鸣器模块的作用是向用户发出提示音,只有2个引脚,可直接通过GPIO接口与树莓派相连,如图3.5所示。图3.5 蜂鸣器与树莓派的连接方式3.7 门锁模块电路设计本设计所选用的电机锁包含电机电路和门磁检测电路,由12V直流电源供电,支持正极信号开锁和负极信号开锁。电机锁向外引出4个引脚,分别为电源输入端V+、电源地GND、正极信号输入端L+和负

24、极信号输入端L-。本系统选择正极信号开锁的方式(此时须将L-和GND短接),当L+输入12V的正电压时,电机电路工作,锁舌收回。这里选择使用继电器来控制L+上12V电压的有无。树莓派的GPIO输出能力有限,不足以直接控制继电器的开关。因此需要使用三极管来搭建驱动电路。门锁模块整体的电路如图3.6所示。 当需要开门时,树莓派的GPIO引脚输出高电平,三极管导通,继电器的下端与地接通,开关电源输出的5V电压加到了继电器两端使继电器动作,L+接上了12V电压,电机工作,锁舌收回。门被打开后GPIO改为输出低电平,三极管截止,继电器两端因为没有5V电压而恢复到断电时的状态,L+上的12V电压消失,开门

25、信号消失,模块等待下一次开门指令的到来。图3.6 门锁模块整体电路4 系统软件设计 在系统的硬件设计完成以后,需要根据需求来编写软件程序。本系统使用Python语言编写。4.1 键盘功能软件设计在本设计中,4*4矩阵键盘需要实现两个功能:选择解锁方式和输入密码。但是无论实现什么功能,其基础都是主控制器能够判断出究竟是哪个键被按下。可以按照以下方法来实现:首先令4根列导线所连接的GPIO引脚输出低电平,然后以软件的方式在4根行导线所连接的引脚上配置上拉电阻,再读取这4个引脚的电平状态。如果有按键被按下,该按键所对应的列导线和行导线将会短接,此时读取该行导线的状态会得到低电平的结果(其他行导线会被

26、上拉为高电平)。这样就得到了该按键所在的行数。之后令4根行导线所连接的GPIO引脚输出高电平,然后以软件的方式在4根列导线所连接的引脚上配置下拉电阻,再读取这4个引脚的电平状态。如果有按键被按下,该按键所对应的列导线和行导线将会短接,此时读取该列导线的状态会得到高电平的结果(其他列导线会被下拉为低电平)。这样就得到了该按键所在的列数。知道了行数和列数,就可以唯一确定出按键的位置,进而就可以从码表中读出该按键所代表的值。在能够确定按键所表示的值后,主控制器就可以判断出用户所选择的解锁方式或读取到用户所输入的密码了。4.2 指纹功能软件设计本系统中指纹功能分为录入指纹和识别指纹两个部分。AS608

27、内部包含录入指纹图像、提取指纹特征、比对指纹特征、存储指纹模型等功能的算法,只需要主控制器通过UART接口向其发送相应的命令包即可,AS608在执行完相应的功能以后也会回发给主控制器一个应答包,告知功能的执行结果。表4.1和4.2分别解释了命令包和应答包每一位的含义。表4.1 命令包格式字节数24121N2内容0xEF01芯片地址0x01包长度指令码参数校验和表4.2 应答包格式字节数24121N2内容0xEF01芯片地址0x07包长度确认码返回参数校验和使用树莓派向AS608发送命令包的Python程序如下:ser = serial.Serial(/dev/ttyAMA0, 57600) #

28、配置串口,波特率设置为57600AS608_GetImage = 0xEF, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x03, 0x01, 0x00, 0x05 #录入指纹图像功能对应的命令包def ByteToString(byte): #将数字转为字符串的子程序return struct.pack(B, byte)for i in range(0,12): #12字节的命令包一次发送1字节stringToWrite = ByteToString(AS608_GetImagei) #将数字转为字符串ser.write(stringToWrite)

29、 #发送字符串i += 1以上程序仅以录入指纹图像为例,根据所需要完成的功能将命令包中的指令码替换为相应内容。本设计中用到的主要功能及其对应的指令码如表4.3所示。表4.3 AS608主要功能的指令码指令功能指令码录入图像0x01提取特征0x02比对特征0x03搜索指纹0x04合并模型0x05存储模型0x06 图4.1展示了指纹功能实现流程。录入指纹时,首先用户将手指置于传感器上方,AS608开始录入指纹图像,并提取出指纹特征保存至Buffer1缓存区。然后用户抬起手指,重复此过程一次,将第二次提取出的指纹特征保存至Buffer2缓存区。最后将两个缓存区内的指纹特征进行比对,判断是否属于同一根

30、手指。若两次提取的特征相同,则将它们合并为一个模型,并将模型存储至图4.1 指纹功能实现流程命令包中制定的编号位置;反之则提示错误,结束程序。录入两次指纹图像并合并特征的目的在于减小误差,提高指纹库中指纹的准确性。识别指纹时,AS608录入置于传感器上方手指的指纹图像,提取特征并保存至Buffer1缓存区,遍历整个指纹库来搜索是否有已知指纹的特征与Buffer1中的特征相同。若存在,则识别成功;反之识别失败,提示错误信息后结束程序。4.3 人脸识别功能软件设计本设计实现人脸识别功能需要三个步骤:采集人脸数据、训练识别器和识别人脸。4.3.1 采集人脸数据无论是采集人脸数据,还是在第三步中识别人

31、脸,都需要先检测到人脸。本设计所使用的就是维奥拉和琼斯在2001年提出的Haar级联分类器。OpenCV中包含了多种预先训练好的分类器,这里直接调用文件haarcascade_frontalface_default.xml来对人脸进行检测。具体实现程序如下:faceCascade=cv2.CascadeClassifier(Cascades/haarcascade_frontalface_default.xml)faces = faceCascade.detectMultiScale( #按以下参数寻找人脸 gray, #灰度图模式 scaleFactor=1.2, #比例因子 minNeig

32、hbors=5, #邻近数 minSize=(20, 20) #人脸最小尺寸 )运行后,检测到的所有人脸会被矩形框围住,矩形框的坐标信息保存于faces内。在能够找到人脸轮廓后,便可以进行采集工作了,操作方法如图4.2所示。程序以帧为单位,首先将拍摄到的图像变成灰度图,然后应用Haar级联分类器,将检测到的人脸裁剪下来并保存,以“User.ID.张数.jpg”的方式命名,例如“User.1.28.jpg”。对于每一个用户保存30张样本照片,以供下一步进行训练。图4.2 采集人脸数据流程图4.3.2 训练识别器接下来将所有用户的照片输入到识别器进行训练。这里选用OpenCV提供的LBPH(Loc

33、al binary patterns Histogram)识别器,使用方法为:recognizer = cv2.face.LBPHFaceRecognizer_create() #新建LBPH识别器recognizer.train(faces, ids) #提取人脸照片的LBP和HOG特征并训练recognizer.write(trainer/trainer.yml) #保存训练所得的yml文件4.3.3 识别人脸图4.3展示了最后一步的实现流程。图4.3 识别人脸流程 首先新建LBPH识别器并载入包含训练信息的yml文件,然后调用Haar级联分类器从摄像头拍摄的画面中寻找人脸。最后识别器对找

34、到的人脸进行预测,提取人脸照片中的LBP和HOG特征并与yml文件中的数据比对,返回预测出的最有可能的用户ID以及不确定度。当不确定度低于某阈值时,即认定此人脸属于该用户。4.4 开锁功能软件设计在使用了电机锁驱动电路之后,只需令GPIO引脚输出高电平即可开锁。延迟一段时间后(给用户一定的开门时间),再改为输出低电平即可恢复状态,等待下次开锁指令的到来。实现程序如下:GPIO.output(MOTOR, GPIO.HIGH)time.sleep(1)GPIO.output(MOTOR, GPIO.LOW)4.5 系统主程序设计 系统主程序按照图4.4所展示的流程运行。图4.4 系统主程序流程图

35、主程序启动后,首先进行GPIO引脚和串口的初始化设置。接着用户通过键盘选择识别模式,“A”为人脸识别,“B”为密码识别加指纹识别。若用户按下的键不是“A”或“B”,则需要重新输入。若选择人脸识别,则摄像头启动开始拍摄。识别正确的话将执行开锁操作,待人员进入后清空过程中产生的变量,回到输入识别模式的步骤,等待下一次开锁任务。识别错误或一段时间内没有检测到有效人脸也将导致回到初始步骤。若选择密码识别加指纹识别,用户需通过矩阵键盘输入密码。如果输入格式错误(输入了非数字字符)或与预设密码不符,将退回到输入识别模式的步骤。如果密码正确,则开始进行指纹识别。指纹识别正确后将执行开锁操作,待人员进入后清空

36、过程中产生的变量,回到初始步骤。如果在指纹库中搜索不到与该指纹特征相同的指纹,也将退回到输入识别模式的步骤。4.6 程序自启动软件设计由于停电等意外状况的客观存在,系统必须考虑如何实现自启动的问题。树莓派运行Linux系统,目录 “/etc/profile.d/”下的脚本会在每次登入账户时自动执行。因此可以在该目录下新建sh脚本文件,来实现系统主程序的自启动。sh脚本文件内容如下:#!/bin/bashcd /home/pi/Project #进入存放主程序的文件夹sudo modprobe bcm2835-v4l2 #加载树莓派摄像头的驱动python Main.py #运行主程序5 系统测

37、试5.1 系统硬件连接测试本设计使用了众多硬件设备,因此必须仔细按照原理图进行检查。检查接线是否存在错接、漏接的情况,导线是否存在裸露的部分导致相互短接,以及电源正负极是否接反。一切检测完毕后,接通电源,观察各指示灯状态是否正常,各模块是否温度过高,有无异味。系统硬件连接如图5.1所示。图5.1 系统连接效果5.2 系统软件功能测试5.2.1 键盘功能软件测试键盘功能的软件测试主要检查树莓派能否判断出究竟是哪个键被按下,故编写测试程序,通过屏幕来显示所按下的按键对应的字符。依次按下4*4矩阵键盘的16个按键,树莓派均能正确读取。效果如图5.2所示。图5.2 键盘功能软件测试结果5.2.2 指纹

38、功能软件测试指纹功能分为录入和识别两部分。指纹录入功能的测试结果如图5.3所示。程序可以按照设定依次进行第一次录入指纹图像、提取特征、第二次录入指纹图像、提取特征、比对特征、合并模型、存储模型的步骤,且中途无报错。图5.3 指纹录入功能的测试结果图5.4和图5.5分别为指纹识别成功与失败的输出效果。AS608录入指纹图像并提取特征,然后将该特征在整个指纹库中搜索,返回搜索结果。图5.4 指纹识别成功的输出效果图5.5 指纹识别失败的输出效果5.2.3 人脸识别功能软件测试人脸识别功能包括三个步骤,对其依次进行测试。首先检查采集到的人脸数据的情况。找到程序所保存的照片并打开,发现只有人脸部分被保

39、留,拍摄到的其他部分被删去,且图片变成了灰度图,符合预计的结果。人脸数据图片如图5.6所示。图5.6 人脸数据图片接下来检查能否正确生成LBPH识别器的yml训练文件。图5.7为文件部分内容。图5.7 yml训练文件的部分内容 最后一步,判断程序能否正确识别出数据库内的人脸。图5.8和图5.9分别为人脸识别成功和失败的效果。如果识别成功,人脸上将会出现识别器预测的用户ID标签,并且识别不确定度小于阈值。本设计将该阈值设定为40,低于40即认为人脸匹配,开锁信号才能发出。不确定度越小,表明识别越有把握,等于0时为完美识别。而对于不在人脸数据库中的人脸,其不确定度将大于40。图5.8 人脸识别成功

40、的效果图5.9 人脸识别失败的效果5.2.4 开锁功能软件测试本设计中只需设置GPIO引脚的输出电平即可实现开锁功能。图5.10为门锁的初始状态,锁舌是伸出的。GPIO引脚输出高电平后,锁舌收回,如图5.11所示。关门时,GPIO引脚改为输出低电平。当电机锁中的门磁电路感应到门的位置处于关闭状态时,自动控制电机使锁舌伸出。当停电等意外情况发生时,电控开锁以及自动上锁的功能均受到影响而无法使用。这时屋内和屋外的人可以分别使用电机锁上的旋钮和钥匙完成开锁和上锁的任务,保证人员的出入和财产的保护不受影响。图5.10 门锁的初始状态(锁舌伸出)图5.11 解锁后的门锁(锁舌收回)5.2.5 系统主程序

41、及自启动软件测试在关机状态下将系统接上电源,待开机完毕后发出提示音,表明已进入主程序。进入主程序后,按下键盘上的“A”键进入人脸识别模式,成功后锁舌将收回,门锁打开。若人脸不匹配,系统将通过蜂鸣器发出提示音,需要用户重新选择识别模式。若10秒内没有检测到有效人脸,系统也将报错,并退回到初始状态。按下“B”键进入密码识别加指纹识别的模式,依次输入正确的密码和正确的指纹后,门锁将打开。若任意一个环节出现错误,系统将发出错误提示音并返回到输入识别模式的步骤。6 总结与展望6.1 工作总结目前市场上的智能门锁产品在安全性和便捷性方面仍存在或多或少的不足,本文设计了一种基于生物特征的智能门锁系统,旨在从

42、以上两方面提供给用户一个更好的门锁使用体验。本文完成的主要工作内容如下:分析了智能门锁系统的意义以及国内外市场上现有产品的优缺点并提出了改进的方法、介绍了本设计中所使用和依赖的技术、介绍了主控制器的选型过程以及给出了各硬件模块的电路连接方法、设计出了各模块和系统整体实现相应功能的软件程序、对系统进行测试并且测试结果达到了预先设想的目标。6.2 未来展望本设计仍存在可以进一步改进的地方,作为下一步研究的重点方向。首先是提高人脸识别的准确率。目前系统将不确定度小于40判定为识别成功,而某些情况下不在数据库中的人脸的不确定度最低可到50,与阈值的差距不大。此外,照片可以代替人脸来进行识别,虽然不确定

43、度高于阈值(50至70之间)而不足以解锁,但是仍属于一个安全隐患。解决方法为增加红外测距设备,判断摄像头捕捉到的人脸是立体的还是平面的。使用红外测距设备的另一个好处是,可以得到人脸在垂直于摄像头方向的参数信息,建模后将丰富人脸识别所使用的数据,提高识别准确率。其次就是可以进一步丰富系统的功能,如增加物联网功能、向用户手机汇报解锁历史等。参考文献1 彭鸿烈. 物联网时代智能锁行业将迎来爆发式增长J. 中国安防, 2017, 2017(11):43-46.2 漆琴. 探讨智能锁的民用化与发展趋势J. 中国公共安全, 2014, 2014(24):112-113.3 Adrian Kaehler,

44、Gary Bradski. Learning OpenCV 3: Computer Vision in C+ with the OpenCV LibraryM. 1. 美国: OReilly Media, 2017:1.4 Constantine Papageorgiou, Michael Oren, Tomaso Poggio. A General Framework for Object DetectionA. ICCVC, 美国: IEEE, 1998:555-562.5 Paul Viola, Michael Jones. Rapid Object Detection Using a

45、Boosted Cascade of Simple FeaturesA. CVPRC, 美国: IEEE, 2001:511-518.6 Robert McConnell. Method of and Apparatus for Pattern Recognition: 美国, US4567610AP.1982.7 Navneet Dalal, Bill Triggs. Histograms of Oriented Gradients for Human DetectionA. CVPRC, 美国: IEEE, 2005:886-893.8 Timo Ojala, Matti Pietikainen, David Harwood. Performance Evaluation of Texture Measures with Classification Based on Kullback Discrimination of DistributionsA. ICPRC, 美国: IEEE, 1994:582-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com