强宇佶 申双琴
(桂林理工大学 信息科学与工程学院嵌入式系统与智能计算实验室,广西 桂林541004)
近年来,人们物质水平提高,同时对家居安全的要求不断提高,安防设备和智能家居逐渐进入我们的视线。传统的卡片和密码式的门禁系统因其易丢失、功能单一且安全性低等缺点,逐步被各种生物识别技术取而代之。其中人脸识别因其具有非接触式、不易被仿造、识别率较高的优势,将其引入到门禁系统,具有广泛的应用价值和市场前景。本文将嵌入式与人脸识别技术相结合,设计了一种基于STM32 的人脸识别门禁系统。
本系统主要以STM32 系列单片机作为微控制器,以串口触摸屏为人机交互窗口,用户通过矩阵键盘键入进行模式选择,通过LCD 屏幕获取操作信息,选择人脸识别模式时可以通过人脸识别进行开门操作,选择密码模式可以通过矩阵键盘输入密码进行开门操作,同时对开门的数据进行记录,也可以通过串口助手将开门记录发送到上位机,在上位机上查看所有用户何时何种方法开门。此外,添加了访客模式、管理员模式,用户选择访客模式可以模拟门铃,提醒主人开门,选择管理员模式,正确输入管理员密码可以查看所有用户与密码等,让系统变得更加实用。系统的硬件部分包括人脸识别模块、模拟门禁模块及按键与显示模块。软件部分包括对人脸进行追踪与检测,在录入人脸后对采集到的人脸数据进行特征的分析与训练,识别时对检测到的人脸进行辨识,同时因为树莓派的操作系统是基于Debian 的Linux 系统即“R aspbian 操作系统”,因其本身具有的局限性,获取的图像帧数较低,所以使用跳帧计算提高帧数。实现人脸识别、密码开锁、报警系统、查看开锁记录、增加指定用户等功能,总体系统框图如图1 所示。
系统选用了高效的STM32F103C8T6,STM32 使用了以ARM Cortex 为内核的高性能微处理器,其工作频率高,内置存储器,有多种省电工作模式,可以保证低功耗应用的运行,适用于多种应用场合,并且性价比高。因为其IO 口数量少,所以选用了IIC 接口的2004LCD 屏幕,仅使用两个IO 口就可以完成对屏幕的控制。对人脸识别功能的实现,选择了卡片电脑,Raspberry Pi 即树莓派,树莓派搭载的是博通的BCM2835 处理器,可以直接运行Linux 操作系统。采用OpenCV 来进行对人脸进行追踪以及识别,因为树莓派提供了各种接口,包括GPIO、IIC 等接口,可以直接传输数据并进控制,因此采用在树莓派上对OpenCV 进行环境搭建。摄像头选择了CSI 接口的摄像头。为了存储与记录开锁数据,即开锁用户、方式,开锁时间数据,需要使用时钟模块,选择Tiny RTC 时钟。输入密码,使用一个矩阵键盘就可完成。模拟门禁模块,使用了MH-FMD 无源蜂鸣器、JQC-3FF 继电器与LED 灯,在开锁时发出提示音与亮起灯光,以此来模拟门禁的开关。
图1 人脸识别门禁总体系统框图
人脸识别模块由树莓派3 代与树莓派摄像头组成,通过USB 口进行通电。树莓派作为现在最流行的卡片电脑,相对于单片机,可以装系统,做服务器,通过鼠标键盘进行控制,可以直接连接WiFi,同时也具备单片机的基本所有功能;相对于电脑,体积小,可随身携带,拥有IO 口,可进行模块编程[1]。在树莓派上可以轻松完成对Raspbian 系统以及OpenCV 开发环境的搭建,因此将树莓派用作人脸识别模块,更加的高效,并且性能要更高[2]。
通过MH-FMD 蜂鸣器、JQC-3FF 继电器与LED 灯模拟门禁模块。MH-FMD 蜂鸣器正常工作电压为3.3V~5V,正常通电后,从I/O 引脚接收到来自STM32 的低电平信号后,蜂鸣器发出声音[3]。用JQC-3FF 继电器与LED 灯模拟成功开锁后,绿灯常亮保持10 秒,模拟保持开门状态10 秒。MH-FMD 蜂鸣器电路原理图如图2 所示。
图2 MH-FMD 蜂鸣器电路原理图
系统整体通过矩阵键盘控制,在LCD 显示屏上显示操作信息与实时时间。STM32F103C8T6 的IO 口数量少,因此选用了IIC 接口的2004LCD 显示屏,该显示屏只需使用两个IO 口就可以完成对屏幕的控制[4]。输入密码以及选择模式的操作则通过使用一个矩阵键盘来实现。并且使用Tiny RTC 时钟,该时钟自带电源,可以实现显示实时时间以及记录开门时间[5]。4*4 矩阵键盘原理图如图3 示。输入密码不按下确定键,系统不会进行打断,除非密码输入超出长度限制或按下退出键。
实验场地选择在室内,将摄像头呈四十五度放置在水平桌面上进行测试。选择人脸识别模式,发现用户在经过人脸录入并训练后,在距离摄像头大约45cm 范围内,可以正确进行人脸识别功能。选择密码模式,用户输入正确即可开门,反之则无法开门,密码模式运行正常。选择管理员模式,用户正确输入管理员密码后,可以正常完成查看所有用户密码、新增用户密码,发送开门记录至上位机的操作,管理员模式运行正常。模拟门禁在开锁成功或失败时,都能正常运行相应功能。根据此次实验调试的各项数据显示,该人脸识别门禁系统设计在各种模式下均无明显异常,基本实现功能要求。
本文将人脸识别门禁与各种实用功能进行结合,在对软硬件进行多次测试与完善后,成功地设计并实现了具有一定实用价值的智能家居人脸识别门禁系统,该系统在完成对用户的人脸训练后,可以通过人脸识别进行开门操作,当用户不便使用人脸识别模式时,可以通过矩阵键盘选择密码开锁模式,输入正确密码后即可完成开锁,同时设置模拟门铃以及管理员模式,正确输入管理员密码可以查看密码,添加密码以及发送开门记录至上位机,可以通过上位机查询所有开门记录,系统功能齐全,基本上能够满足家庭需求,可实践性强。
图3 4*4 矩阵键盘原理图
通过Raspbian 系统命令进行人脸录入操作,用户正对摄像头,由树莓派摄像头通过Haar 特征检测采集并录入人脸,摄像头会拍摄100 张照片,对拍摄到的人脸图像进行特征提取与特性选择,进行训练。完成这些过程后,用户就可通过Lbp 算法进行人脸辨别。开锁成功主控板发送低电平信号至继电器,LED亮起绿灯保持十秒,模拟保持开门状态十秒,开锁失败则由蜂鸣器发出警报。所有操作都通过按键控制,A、B、C、D 键分别表示人脸识别开锁、密码开锁、访客模式、管理员模式,在显示屏上显示由RTC 时钟控制的实时时间与操作提示。矩阵键盘模块按下按键发布信号量,并且在密码输入部分,选择使用完全等待,