APP下载

基于Haar特征提取算法的安全门铃研究和设计

2022-01-17江李悦洪志雍石利民周敏冯琳

电子元器件与信息技术 2021年9期
关键词:欧氏门铃树莓

江李悦,洪志雍,石利民,周敏,冯琳

(福州大学至诚学院计算机工程系,福建 福州 350002)

0 引言

目前市面上已经有智能门铃是通过APP绑定手机或者是通过视频对讲等方式应用的。这种方式的问题在于,许多小家庭会出现老人和孩子等弱势群体独自在家的情况,这些群体并不是能够很方便地操作APP和监控视频。本论文旨在专门为这个群体提供简单方便的实行方案,只需要进入安全门铃摄像头的范围内,就会自动被门铃捕获并进行人脸识别,无需任何其他操作,再根据结果响应不同的提示音。

通过人脸识别,家长可以设置可信赖人员的人脸库,当孩子独自在家时,陌生人按门铃,只会产生普通的电子门铃音乐,并不会让人生疑或者产生尴尬。如果是可信赖家人则产生人工提示音提示家人开门。

对于陌生来访者,则可以采集图片,发送到app上,方便家庭主人添加信任名单。

1 技术方案

本项目利用树莓派开发板、外置摄像头、喇叭实现了基于人脸识别的电子门铃。在人脸识别部分采用OpenCV的人脸检测+Dlib的人脸相似度对比技术,针对来访者进行人脸检测和人脸对比,从而实现人脸识别。在与用户的交互中,后端采用Python+Flask+NGINX的框架进行开发,前端的交互界面使用Webstorm进行Web端开发,以及使用Eclipse编写app。

图1 总体技术方案

1.1 OpenCV

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

1.2 树莓派

本项目选择基于ARM11的树莓派(Raspberry Pi)开发板,内置GPU支持108OP高清视频硬解码、丰富的接口(包含以太网、USB、HDMI接口),基于Linx操作系统、支持Python语言开发环境[1]。基于以上原因,树莓派开发板被广泛应用于教育、工控、机器人、物联国、智能家居等领域[2]。

2 设计思路与具体步骤

2.1 本项目设计分为两大部分

2.1.1 人脸识别、人脸对比和语音播报

使用OpenCV的人脸检测技术获取摄像头拍摄的来访者照片,然后使用Dlib的人脸相似度对比技术与已存的安全名单进行对比,识别来访者是熟人还是陌生人,并根据识别结果进行语音播报。其中OpenCV的人脸检测主要通过Haar特征提取算法实现,Dlib的人脸相似度则是通过欧式距离相似度算法实现。

Haar-like矩形特征是用于物体检测的数字图像特征。这类矩形特征模板由两个或多个全等的黑白矩形相邻组合而成,而矩形特征值是白色矩形的灰度值的和减去黑色矩形的灰度值的和[3]脸部的特征能够由矩形特征简单地描绘。

在获得矩形特征后,要计算矩形特征的值。积分图被定义为坐标A(x,y)的积分图是其左上角的所有像素之和,这样对每个像素进行少量的计算得到的“积分图”可以在相同的时间里计算尺度大小不同的矩形特征值,因此大大提高计算速度[4]。

对于图像内一个点A(x,y),定义其积分图ii(x,y)为:

其中i(x′,y′)为点(x′,y′)处的像素值。

坐标A(x,y)的积分图定义为其左上角矩阵所有像素之和[5]。

由此可知,要计算两个区域像素值之差(即计算矩形模板的特征值),只需要用特征区域端点的积分图来进行简单加减运行就可以了。用积分图的方法可以快速计算矩形特征的特征值[6]。

欧氏距离相似度算法:欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式[7]。

两个n维向量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的欧氏距离:

2.1.2 app和Web端

通过app和web端实现主人随时添加和删除安全名单里的人员,实现对安全门铃的远程监控,获取来访者照片。

2.2 具体步骤

2.2.1 通过opencv进行人脸检测,具体过程如下:

(1)通过opencv调用摄像头获取来访者的照片;(2)调用opencv库,使用训练好的人脸识别模型对照片进行切割,获取来访者人脸部分的图片;

(3)将切割好的图片进行保存,以待后续使用。

2.2.2 通过dlib进行人脸相似度对比

(1)对安全名单内的人脸图片使用检测器画出人脸的68个特征点

(2)计算每张图片的特征

(3)将opencv获取的来访者图片也使用检测器获取68个特征点

(4)通过安全名单的人脸的特征点和来访者人脸的特征点计算欧氏距离来获取安全名单和来访者的相似度

(5)当安全名单中的人脸和来访者的相似度达到一定程度时,既视为来访者为安全名单内的人

2.2.3 app和Web端。

通过手机app软件实现人脸数据的录入、来访者的登记以及铃声信息。通过Web端实现远程数据的管理。

3 实验结果与分析

本项目所使用的人脸数据集来自ibug 300-W数据集(https://ibug.doc.ic.ac.uk/resources/facial-point-annota tions/),人脸识别模型是在该数据集上训练的[8]。

本项目最终的评价指标是识别速度和准确度。项目在测试过程中,准确度非常高,基本没有出现识别错误的情况,但是识别的速度还有待提高,目前的识别速度可能需要3-6秒图2,造成这个问题主要有以下几种方面:1. 训练的模型不够好,不是非常的优秀2. 在进行人脸识别时候的参数没有设置好3. 树莓派性能较弱,运算速度不够快。

图2 最终测试结果(部分)

4 结论

随着时代的发展,现在人们越来越注重安全,对于家里安全的保护越来越受到重视。在这种情况下,安全门铃作为保护家里的第一道防线将会越来越被大众所认可。目前门铃的推广还有很大的局限性,而且有些使用上也不太方便,需要人为操作,而我所设计的门铃不需要人为操作,方便老人和小孩等不方便自己操作的人使用,这样更加智能安全的门铃肯定会受到更多人的欢迎。

猜你喜欢

欧氏门铃树莓
本刊2022年第62卷第2期勘误表
基于树莓派的骑行智能头盔设计
锤子门铃
门铃前的守候
基于树莓派的远程家居控制系统的设计
响应面法优化红树莓酒发酵工艺
欧氏看涨期权定价问题的一种有效七点差分GMRES方法
基于多维欧氏空间相似度的激光点云分割方法
欧盟:速冻树莓比鲜食树莓市场更好
门铃“丁冬”