基于OpenCV的人脸口罩检测门禁系统

2024-09-14 00:00:00郭灼豪罗奕彬戴飞鹏占桂启洪远泉
物联网技术 2024年3期
关键词:STM32单片机树莓派门禁系统

摘 要:设计一种基于OpenCV的人脸口罩规范佩戴检测门禁系统及设备。该系统包括输入部分、控制部分和响应部分。控制部分基于OpenCV AdaBoost级联分类器,以树莓派作为主控制核心,分析用户口罩佩戴及其体温情况;响应部分是通过STM32单片机对系统机械闸门进行控制。当用户体温正常,佩戴口罩且佩戴规范时,系统通过驱动模块控制机械闸门模块打开门闸,允许用户进出;当用户体温过高,未戴佩带口罩或口罩佩戴不规范时,则通过驱动模块控制机械闸门模块关闭门闸,限制用户出行。同时设备中的语音播报系统会对未佩戴或不规范佩戴口罩的用户进行提醒,体温过高的用户则会触发设备的报警功能。

关键词:口罩规范佩戴检测;OpenCV AdaBoost;门禁系统;树莓派;STM32单片机;机械闸门

中图分类号:TP399 文献标识码:A 文章编号:2095-1302(2024)03-00-04

0 引 言

佩戴口罩对于公众防范呼吸道病毒感染的风险和维持人体基本健康具有重要意义。然而,很多人由于防范意识不够,在公共场合并没有正确佩戴口罩甚至不佩戴口罩,给安全防范带来很大的隐患。因此,对在疫情防范的公共区域不正确佩戴口罩或不佩戴口罩的人群,进行自动识别判断,并发出预警提醒,也尤为重要。而普通口罩佩戴检测算法需要考虑光线、样本采集以及外界噪声干扰等问题,且用户佩戴不同型号或者种类的口罩也会影响识别的准确率,所以需要进一步提升口罩佩戴检测算法以及对公共场所摆放的口罩佩戴检测一体机进行改良。市面上主流的口罩佩戴检测系统有:CNN与Transformer混合模型[1]、AlexNet、ResNet-50及Inception V3模型[2]、YOLOx[3]、SSD[4]算法以及口罩区域修复算法[5]等。市面上主流的门禁系统有:李萌昕等[6]提出的基于人脸识别的山东大学门禁系统、汪左成等[7]提出的健康宝人脸识别测温一体机、张颖兴[8]提出的树莓派的智能防疫门禁系统等。现有的算法以及门禁系统主要是以提高运算速度、运行准确率以及增设更多防疫功能为核心目标所设计的。虽然在硬件功能和算法识别精度上有很大的提升,但对于不同的环境下或者佩戴口罩程度不同的用户却很难进行精准识别,且不能做到对用户口罩佩戴是否规范进行检测。为快速精确判断用户口罩佩戴是否规范且体温是否正常,本文系统通过调用树莓派对用户口罩佩戴情况以及体温状况进行检测分析,判断出入人员是否满足放行的标准;利用STM32单片机对系统机械闸门以及语音播报进行控制,从而做出相应的响应反馈。

1 系统总体设计

系统整体可分为三部分:输入部分、控制部分以及响应部分。输入部分包括Camera V2摄像头和红外测温传感器;控制部分包括软件控制以及硬件控制,软件控制基于OpenCV AdaBoost级联分类器,硬件控制则包括树莓派以及STM32单片机;响应部分包括语音播报模块、金属探测模块、机械闸门模块以及7寸显示器。系统通过输入部分进行图像获取,控制部分用于接收输入部分的信号,处理并输出控制信号至响应部分,从而对机械闸门模块以及语音播报模块进行控制。系统总体设计和实物分别如图1和图2所示。

2 硬件及外观设计

2.1 硬件选型与设计

(1)控制模块

系统的控制模块由两部分组成:以树莓派为程序分析的控制核心,该控制核心不仅可以运行相应的操作系统,还能根据设计者的需求完成相对应IO引脚的控制,从而支持更上层的应用开发,具有更广阔的应用空间。以STM32为硬件控制的驱动核心(如图3所示),该驱动核心能实时控制金属探测模块、体温检测模块以及机械闸门模块,对未佩戴口罩或口罩佩戴不规范的人员进行限行;若用户体温过高,则会触发系统的语音报警功能。

(2)图像获取模块

图像获取模块采用Camera V2。该摄像头拥有500 W像素,固定在显示屏的上方进行稳定拍摄,可根据人物站位从不同角度获取图像,且体积较小,成本低。

(3)语音播报模块

语音播报模块采用JQ8900-16P芯片。本系统的语音播报功能主要是由STM32开发板控制中心读取数值后传输到语音模块,由数据发送端发送语音地址,功能多、音质好、应用范围广、性能稳定,弥补了以往各类语音芯片应用领域狭小的缺陷,该芯片具有多种控制模式和不同指令,使语音播放多样化。

(4)红外测温传感模块

红外测温传感采用GY-906红外测温传感器。GY-906由内部状态机控制物体温度和环境温度的测量和计算,并对温度进行处理,将结果通过PWM或SMBus模式输出。该模块的优点在于:可进行非接触式测温,并能够准确地测量人体温度,且成本低、体积小、易于集成、易控制等。

(5)金属探测模块

金属探测模块采用简易金属探测。当金属靠近探测器时,蜂鸣器则会发声。该模块的优点在于:模块小,能在更低的系统成本下,保持和实现更高的分辨率以及灵活性;并且可通过STM32进行供电,再将测量后数据传输到STM32,从而能更快得到相应反馈。

(6)机械闸门模块

机械闸门模块采用MG90S。该机械闸门模块可将指令信号变换为输出轴的角度并保持住,即便是负载发生了变化,它也能够自动调节。其具有转舵效率高、速度快、稳定性好、灵敏度高等特点。

2.2 系统外观设计

设备的外观设计主要分为摄像头检测模块以及机箱主体模块,如图4所示。

摄像头检测模块:该模块的信息采集部分包括摄像头1和可旋转电机2,其特征在于:所选用的摄像头采用了人脸追踪系统[9-10],当树莓派检测目标人脸位置有偏移时,则会带动电机阀门2,调整摄像头1捕捉的位置,直到人脸位置位于识别中心,且将捕捉到的人脸以及系统的分析结果显示到显示屏3中。屏幕下的支架4可根据用户的需求进行调节。

机箱主体模块:该模块内部放置设备的核心控制模块、核心驱动模块、语音播报模块以及其他所需要的传感器。体温监测系统6中设置有体温传感器,其特征在于:可对用户进行实时体温监测,并将收集到的体温数据传输到核心控制模块中。挡板5可对未佩戴口罩、口罩佩戴不规范或体温过高用户的出入进行限制,再通过语音播报6对用户进行规范佩戴口罩的提醒,若用户体温过高则会发出警报。

3 软件设计

3.1 视频检测模块设计

本系统采用OpenCV Adaboost级联分类器算法对未佩戴口罩或口罩佩戴不规范的用户进行识别分析。

将口罩规范检测分解为以下步骤:(1)先调用人脸AdaBoost级联分类器,对用户的人脸位置进行锁定。将人脸识别出的矩形向量分为三个部分:口罩检测部分(FaceROI)、鼻子检测部分(NoseROI)以及嘴巴检测部分(MouthROI)。FaceROI的识别位置为face矩形向量的整个框架内,NoseROI的识别位置为face矩形向量的2/3处,MouthROI的识别位置为face矩形向量的1/3处。然后将FaceROI在视频显示中抠出,对其背景进行GaussianBlur处理,从而排除外界因素的干扰,提高识别准确度;(2)调用口罩佩戴识别AdaBoost级联分类器,在上一步GaussianBlur处理的基础上进行口罩佩戴识别,将识别范围锁定在FaceROI中。当用户佩戴口罩且佩戴规范时,视频中显示“Your have worn mask”;若用户未佩戴口罩,则显示“You have not worn mask”。(3)调用Mouth AdaBoost级联分类器以及Nose AdaBoost级联分类器进行口罩佩戴规范检测,其识别范围在MouthROI和NoseROI中,当用户口罩佩戴不规范(露出嘴巴或者鼻子)时,视频上显示“Your mouth(nose)is exposed,please worn mask regularly”。算法设计的流程如图5所示。

3.2 Eigen face人脸识别模块设计

关于Eigen face人脸识别的原理及其设计方法如下:准备好所需要的人脸数据库,对数据库中的人脸进行训练,计算出数据库中人像的“平均脸”,如图6所示。

计算出其协方差矩阵,从而算出人像的特征值以及特征矩阵,也就是“特征脸”,如图7所示。

最后通过PCA降维所形成的子空间模型便是我们所需要的识别库了,当有图像输入时,系统会与识别库进行对照,若满足特征则完成识别。

3.3 系统软件总设计

当系统完成环境配置以及代码烧录后,便可开始工作。首先系统对各功能模块进行初始化,然后开启口罩人脸检测以及体温监测,对用户是否佩戴口罩、是否规范佩戴口罩以及体温是否超过阈值进行判断。若用户规范佩戴口罩,则打开机械闸门允许用户进出;若用户未佩戴口罩、口罩佩戴不规范或体温过高,则会落下机械闸门并开启语音播报。系统运行流程如图8所示。

4 实验与结果分析

4.1 口罩佩戴及其规范性检测实验

为了验证系统的口罩佩戴及其规范性检测功能,本文对1名同学进行口罩佩戴及其规范性检测实验。分别对其规范佩戴口罩、佩戴口罩不规范(露出鼻子)、佩戴口罩不规范(露出嘴巴)以及不佩戴口罩四种情况进行检测。

口罩佩戴及其规范性检测实验结果如图9所示。系统能正确识别用户是否佩戴口罩以及佩戴口罩是否规范;当用户未佩戴口罩或未规范佩戴口罩时,系统会对该用户进行规范佩戴口罩提醒。

4.2 人脸识别检测实验

为了验证系统的人脸识别功能,本文对3名同学进行面部样本录入,再分别对这3名同学进行20次随机人脸检测。测试结果见表1所列。

该测试利用Eigen face算子计算人像“特征脸”,从而识别用户面部信息。从测试结果可知,该算子误检率维持在30%以内,其识别准确率主要取决于样本特征值与特征向量的大小,可以通过增加数据样本数量以及提高样本优质程度来提高准确度。

4.3 口罩佩戴检测驱动舵机实验

为了检测系统人脸口罩佩戴检测算法驱动舵机阀门的功能,本文对10名学生进行测试,其中5名学生规范佩戴口罩,3名学生未佩戴口罩,1名学生口罩佩戴不规范(露出鼻子),1名学生口罩佩戴不规范(露出嘴巴)。结果见表2所列。由表2可知,当用户规范佩戴口罩时,舵机闸门将会打开,允许用户进出;若用户未佩戴口罩或口罩佩戴不规范时,则会限制用户进出。

5 结 语

本系统基于OpenCV AdaBoost级联分类器算法设计人脸口罩规范佩戴检测门禁系统,以树莓派作为控制核心、STM32作为驱动核心,通过摄像头对用户面部信息进行采集,分析出用户口罩佩戴情况,实现对用户口罩佩戴及其规范性的检测,提高了公共场所人流量较大时的安全性。接下来的工作就是提高系统检测的鲁棒性以及设备的多功能性,使其能在生活中发挥重要作用。

参考文献

[1]姜绍忠,姚克明,陈磊,等.基于CNN与Transformer混合模型的口罩人脸识别方法[J].传感器与微系统,2023,42(1):144-148.

[2] ESI N B N. 基于AlexNet、ResNet-50及Inception V3模型的戴口罩人脸识别[D].绵阳:西南科技大学,2021.

[3]孙永豪. 基于改进YOLOx的口罩佩戴检测系统设计与实现[D].合肥:安徽建筑大学,2022.

[4]牛嘉兴,高利鹏,张露,等.基于SSD算法的戴口罩人脸识别方法研究[J].计算机仿真,2022,39(8):204-207.

[5]李悦,钱亚冠,关晓惠,等.面向人脸识别的口罩区域修复算法[J].电信科学,2021,37(8):66-76.

[6]李萌昕.基于人脸识别的山东大学门禁系统建设与实现[J].深圳大学学报(理工版),2020,37(S1):92-94.

[7]汪左成.航天科工二院203所健康宝人脸识别测温一体机研制成功[J].中国军转民,2022,23(13):69.

[8]张颖兴,宣扬,张俊豪,等.基于树莓派的智能防疫门禁系统设计[J].信息技术与信息化,2022,47(5):209-212.

[9]车佳祺,许晓荣,梁颢铭.一种轻量级人脸追踪与识别系统设计方案[J].电子设计工程,2022,30(14):58-63.

[10]林俊强,唐艳凤,郑焕坡,等.基于物联网云平台的智能门禁系统设计[J].物联网技术,2022,12(1):95-98.

作者简介:郭灼豪(1994—),男,博士,研究方向为图像处理与机器学习方面。

罗奕彬(2002—),男,本科,研究方向为图像处理与嵌入式设计方面。

猜你喜欢
STM32单片机树莓派门禁系统
基于多种生物特征识别的RFID门禁系统设计
基于单片机的安全门禁系统研究设计
电子制作(2019年11期)2019-07-04 00:34:32
解析社区蓝牙门禁系统
基于STM32芯片的移动机器人的避障研究
基于单片机的灌装生产线成品率计算装置设计
基于STM32的两轮自平衡遥控小车设计
科技视界(2016年26期)2016-12-17 08:35:54
基于STM32单片机的智能手环设计与实现
智能安全防盗探测小车
科教导刊(2016年27期)2016-11-15 22:32:51
一种基于树莓派的门禁系统快速构建方法
基于单片机的小区门禁系统设计