APP下载

基于Jetson Nano 和OpenCV 的智能门锁系统实现

2022-05-11杨国平

智能计算机与应用 2022年2期
关键词:门锁阈值人脸

周 宇, 杨国平, 刘 淼

(上海工程技术大学 机械与汽车工程学院, 上海 201620)

0 引 言

智慧城市建设不断的推进,智能化产品的安全性和便捷性的研究越来越受重视,訾斌设计了一种新型指纹门锁,通过限位挡块实现门把手的换向开门;袁进等针对指纹智能门锁识别慢,识别能力弱等问题,提出了基于现场可编程门阵列(FPGA)的指纹识别优化方法。 随着深度学习的兴起,人脸识别等技术也逐渐应用到智能家居,赵若禺、宋家松等人利用人脸识别技术作为门禁系统的身份验证依据,开发了一套智能门禁管理系统,通过下位机完成人脸信息的采集,通过上位机完成人脸识别;刘廷泰、王斌等人同样利用人脸识别技术远程控制门锁的开关。 人脸识别技术的相关应用更是数不胜数,于洋针对人脸识别技术如何赋能医疗产业进行了研究;周光权对人脸识别犯罪的关键问题展开了综述;修扬、曹天杰等人研究了移动端使用人脸识别技术的安全性。 基于人脸识别智能门锁识别存在速度慢,识别率低等问题,本文构建基于Jetson Nano 和OpenCV 的智能门锁系统,设计一种新的智能门锁来解决上述问题。

1 系统开发环境

本文所构建的基于Jetson Nano 和OpenCV 的智能门锁系统包括硬件和软件两部分。

硬件包括:Jetson Nano、摄像头、数字门锁等。Jetson Nano 是NVIDIA 的小型人工智能计算机,提供了用于连接各种外接设备的接口、SD 卡插槽,用于与外接设备接口的40 针扩展接头、用于有线网络连接的千兆以太网端口,用于监视器输出的HDMI端口等。 开发系统所需要的主要硬件见表1。

表1 系统硬件表Tab.1 System hardware table

系统基于Linux 操作系统,利用python 语言完成。 在Jetson Nano 上下载并安装Jetpack 映像文件,连接外接设备并启动Jetson Nano,根据引导创建用户名、密码,最终登陆成功就完成了启动。

2 功能实现

2.1 系统特点与结构

本文所提出的智能门锁系统特点如下:

(1)使用通用CSI 相机捕获真实的人脸并收集深度学习模型的训练数据;

(2) Jetson Nano 是 配 备4 个GPU(Graphic Processing Unit)的小型人工智能计算机,用于在独立的智能门系统中快速训练图像数据;

(3)使用OpenCV 库进行实时图像处理;

(4)使用Harr Cascade 算法进行面部检测,该算法优点是检测速度快,准确率高;

(5)面部识别使用OpenCV 库中的LBPH(Local Binary Patterns Histograms)算法,该算法能够快速处理特征;

(6) Jetson Nano 和数字门锁的连接依赖于Jetson Nano 中的GPIO 端口。

CSI 摄像机通过移动行业处理器接口MIPI(Mobile Industry Processor Interface)连接到配备了深度学习库的Jetson Nano 嵌入式系统,通过GPIO(General Purpose Input Output)接口连接,最终识别到人脸特征,系统整体结构如图1 所示。

图1 系统整体结构Fig.1 Overall structure of system

2.2 功能开发

模型的开发分为训练和预测两步。

(1)通过相机收集图像进行训练,使用基于管道的多媒体框架GStreamer 连接到Jetson Nano 的CSI 摄像机捕获视频,该框架能够实现各种媒体功能,如:音频和视频播放、流式传输和编辑,但在使用之前需要完成设置,包括获取视频的分辨率、显示分辨率、帧速率和视频输出模式;Haar 级联分类器是OpenCV 提供的一种基于深度学习的对象检测算法,用于对摄像机图像中的面部进行分类,将Haar级联分类器应用于所捕获图像的一个图像帧,对面部图像进行分类和存储,重复该过程用以收集目标面部的图像来进行训练。

(2)预测,通过读取训练数据来训练人脸识别模型,这些训练数据为真实的人脸图像。 人脸识别模型使用OpenCV 的LBPH(Local Binary Patterns Histograms)算法,从训练的人脸图像中提取特征,同时也可以通过该算法提取到一张不在训练数据库中的人脸图像特征,并计算该人脸特征和在库中的特征相似度,通过将新面部图像的特征与训练面部图像的特征进行比较并测量可信度来进行面部识别。

需要识别的人脸图像输入模型可以得到置信度,将预测的置信度与阈值进行比较,如果阈值高于参考值,则打开门锁,如果阈值小于参考值,则关闭门锁。 使用Jetson Nano 的智能门控制程序的流程如图2 所示。

图2 智能门锁控制流程图Fig.2 Flow chart of controlling smart door

Jetson Nano 通过GPIO 接口控制数字门锁,从摄像机图像中读取实时捕获的图像,检测并分析人脸,通过分析结果来控制门的打开和关闭。 Jetson Nano 的GPIO 接口和门锁通过D 型闩锁连接,通过D 闩锁通过电子方式连接或断开门锁开关的两端来打开和关闭门。 基于Jetson Nano 的智能门锁实物如图3 所示。

图3 Jetson Nano 控制门锁Fig.3 Door lock controlling with Jetson Nano

3 智能门锁系统实验

收集目标面部的100 张图像进行训练,以用于解锁门锁。 首先,从摄像机图像中读取一帧并将其转换为黑白图像,通过将Har Cascade 面部分类器检测出方形的面部区域;从框中切出的脸部的大小与被检测区域的大小一样,裁剪的脸部区域被规格化大小为200 × 200,转换为黑白图像并保存。 重复此过程100 次,收集到100 个训练目标图像。 面部图像进行训练和收集样本的过程,如图4 所示。

图4 面部图像训练和收集的样本过程Fig.4 Face images collection and training process

门锁的开关由人脸识别模型的分析结果控制,人为设定阈值,系统从相机图像中检测出一张新脸,并使用经过训练的AI 模型进行预测。 计算预测结果的置信度,即将预测图像的结果与所有注册过的人脸模型进行匹配,分别求出相似度,取最大的相似度为置信度,并将其与人为设置的阈值进行比较,本文中阈值设置为80%,如果置信度大于80%,则会通过Jetson Nano 的GPIO 接口输出锁释放信号,将门锁解锁,由于具有一定时间延迟,使门锁在一定时间内保持解锁状态。

选一位已经注册好人脸数据的人物进行了两次测试,将面部数据输入到模型中,计算置信度87%和89%,可以打开门锁。 如图5 所示。

图5 解锁门锁Fig.5 Unlocking the door

另外一组实验采用了两种方法,一种是前面的面部数据用贴图的方式遮盖住,输入模型并计算置信度;另外一种是一个未注册人脸数据的人物,将其面部数据输入模型并计算置信度,结果分别为73%和74%,小于设定的阀值80%,门锁并未打开,如图6 所示。

图6 锁门锁Fig.6 Locking the door

4 结束语

本文针对人脸识别智能门锁识别速度慢,识别效率低等问题,构建了基于Jetson Nano 和OpenCV的智能门锁系统,将人脸识别功能成功嵌入到普通智能门锁上,通过设置阈值,计算置信度的方法来控制门锁的开关,本系统具有以下特点:

(1)使用100 张真人照片作为深度学习模型训练数据,更加贴近真实环境;

(2)使用已经经过验证且表现优异的深度学习模型进行人脸识别;

(3)通过电脑端连接现有的数字门锁进行控制。

使用基于特征的面部检测算法和面部识别算法对系统进行了实验,本文所提出的基于Jetson Nano和OpenCV 的智能门锁系统能够有效提高识别的快速性、可靠性及准确性,具有一定的参考及实用价值。

猜你喜欢

门锁阈值人脸
非平稳声信号下的小波变换去噪方法研究
非均匀光照下文本图像分割算法研究
玻璃窗上的人脸
咔嚓咔嚓,门锁别玩
旋转门锁
智力考场:有趣的图片测试
利用迭代软阈值方法抑制恒时演化类核磁共振实验中的采样截断伪峰
理由
“领家系”可爱脸VS“高冷系”美人脸
和各色骗术斗智,是个技术活