摘 要:設計一種基于OpenCV的人臉口罩規(guī)范佩戴檢測門禁系統(tǒng)及設備。該系統(tǒng)包括輸入部分、控制部分和響應部分。控制部分基于OpenCV AdaBoost級聯(lián)分類器,以樹莓派作為主控制核心,分析用戶口罩佩戴及其體溫情況;響應部分是通過STM32單片機對系統(tǒng)機械閘門進行控制。當用戶體溫正常,佩戴口罩且佩戴規(guī)范時,系統(tǒng)通過驅(qū)動模塊控制機械閘門模塊打開門閘,允許用戶進出;當用戶體溫過高,未戴佩帶口罩或口罩佩戴不規(guī)范時,則通過驅(qū)動模塊控制機械閘門模塊關(guān)閉門閘,限制用戶出行。同時設備中的語音播報系統(tǒng)會對未佩戴或不規(guī)范佩戴口罩的用戶進行提醒,體溫過高的用戶則會觸發(fā)設備的報警功能。
關(guān)鍵詞:口罩規(guī)范佩戴檢測;OpenCV AdaBoost;門禁系統(tǒng);樹莓派;STM32單片機;機械閘門
中圖分類號:TP399 文獻標識碼:A 文章編號:2095-1302(2024)03-00-04
0 引 言
佩戴口罩對于公眾防范呼吸道病毒感染的風險和維持人體基本健康具有重要意義。然而,很多人由于防范意識不夠,在公共場合并沒有正確佩戴口罩甚至不佩戴口罩,給安全防范帶來很大的隱患。因此,對在疫情防范的公共區(qū)域不正確佩戴口罩或不佩戴口罩的人群,進行自動識別判斷,并發(fā)出預警提醒,也尤為重要。而普通口罩佩戴檢測算法需要考慮光線、樣本采集以及外界噪聲干擾等問題,且用戶佩戴不同型號或者種類的口罩也會影響識別的準確率,所以需要進一步提升口罩佩戴檢測算法以及對公共場所擺放的口罩佩戴檢測一體機進行改良。市面上主流的口罩佩戴檢測系統(tǒng)有:CNN與Transformer混合模型[1]、AlexNet、ResNet-50及Inception V3模型[2]、YOLOx[3]、SSD[4]算法以及口罩區(qū)域修復算法[5]等。市面上主流的門禁系統(tǒng)有:李萌昕等[6]提出的基于人臉識別的山東大學門禁系統(tǒng)、汪左成等[7]提出的健康寶人臉識別測溫一體機、張穎興[8]提出的樹莓派的智能防疫門禁系統(tǒng)等?,F(xiàn)有的算法以及門禁系統(tǒng)主要是以提高運算速度、運行準確率以及增設更多防疫功能為核心目標所設計的。雖然在硬件功能和算法識別精度上有很大的提升,但對于不同的環(huán)境下或者佩戴口罩程度不同的用戶卻很難進行精準識別,且不能做到對用戶口罩佩戴是否規(guī)范進行檢測。為快速精確判斷用戶口罩佩戴是否規(guī)范且體溫是否正常,本文系統(tǒng)通過調(diào)用樹莓派對用戶口罩佩戴情況以及體溫狀況進行檢測分析,判斷出入人員是否滿足放行的標準;利用STM32單片機對系統(tǒng)機械閘門以及語音播報進行控制,從而做出相應的響應反饋。
1 系統(tǒng)總體設計
系統(tǒng)整體可分為三部分:輸入部分、控制部分以及響應部分。輸入部分包括Camera V2攝像頭和紅外測溫傳感器;控制部分包括軟件控制以及硬件控制,軟件控制基于OpenCV AdaBoost級聯(lián)分類器,硬件控制則包括樹莓派以及STM32單片機;響應部分包括語音播報模塊、金屬探測模塊、機械閘門模塊以及7寸顯示器。系統(tǒng)通過輸入部分進行圖像獲取,控制部分用于接收輸入部分的信號,處理并輸出控制信號至響應部分,從而對機械閘門模塊以及語音播報模塊進行控制。系統(tǒng)總體設計和實物分別如圖1和圖2所示。
2 硬件及外觀設計
2.1 硬件選型與設計
(1)控制模塊
系統(tǒng)的控制模塊由兩部分組成:以樹莓派為程序分析的控制核心,該控制核心不僅可以運行相應的操作系統(tǒng),還能根據(jù)設計者的需求完成相對應IO引腳的控制,從而支持更上層的應用開發(fā),具有更廣闊的應用空間。以STM32為硬件控制的驅(qū)動核心(如圖3所示),該驅(qū)動核心能實時控制金屬探測模塊、體溫檢測模塊以及機械閘門模塊,對未佩戴口罩或口罩佩戴不規(guī)范的人員進行限行;若用戶體溫過高,則會觸發(fā)系統(tǒng)的語音報警功能。
(2)圖像獲取模塊
圖像獲取模塊采用Camera V2。該攝像頭擁有500 W像素,固定在顯示屏的上方進行穩(wěn)定拍攝,可根據(jù)人物站位從不同角度獲取圖像,且體積較小,成本低。
(3)語音播報模塊
語音播報模塊采用JQ8900-16P芯片。本系統(tǒng)的語音播報功能主要是由STM32開發(fā)板控制中心讀取數(shù)值后傳輸?shù)秸Z音模塊,由數(shù)據(jù)發(fā)送端發(fā)送語音地址,功能多、音質(zhì)好、應用范圍廣、性能穩(wěn)定,彌補了以往各類語音芯片應用領(lǐng)域狹小的缺陷,該芯片具有多種控制模式和不同指令,使語音播放多樣化。
(4)紅外測溫傳感模塊
紅外測溫傳感采用GY-906紅外測溫傳感器。GY-906由內(nèi)部狀態(tài)機控制物體溫度和環(huán)境溫度的測量和計算,并對溫度進行處理,將結(jié)果通過PWM或SMBus模式輸出。該模塊的優(yōu)點在于:可進行非接觸式測溫,并能夠準確地測量人體溫度,且成本低、體積小、易于集成、易控制等。
(5)金屬探測模塊
金屬探測模塊采用簡易金屬探測。當金屬靠近探測器時,蜂鳴器則會發(fā)聲。該模塊的優(yōu)點在于:模塊小,能在更低的系統(tǒng)成本下,保持和實現(xiàn)更高的分辨率以及靈活性;并且可通過STM32進行供電,再將測量后數(shù)據(jù)傳輸?shù)絊TM32,從而能更快得到相應反饋。
(6)機械閘門模塊
機械閘門模塊采用MG90S。該機械閘門模塊可將指令信號變換為輸出軸的角度并保持住,即便是負載發(fā)生了變化,它也能夠自動調(diào)節(jié)。其具有轉(zhuǎn)舵效率高、速度快、穩(wěn)定性好、靈敏度高等特點。
2.2 系統(tǒng)外觀設計
設備的外觀設計主要分為攝像頭檢測模塊以及機箱主體模塊,如圖4所示。
攝像頭檢測模塊:該模塊的信息采集部分包括攝像頭1和可旋轉(zhuǎn)電機2,其特征在于:所選用的攝像頭采用了人臉追蹤系統(tǒng)[9-10],當樹莓派檢測目標人臉位置有偏移時,則會帶動電機閥門2,調(diào)整攝像頭1捕捉的位置,直到人臉位置位于識別中心,且將捕捉到的人臉以及系統(tǒng)的分析結(jié)果顯示到顯示屏3中。屏幕下的支架4可根據(jù)用戶的需求進行調(diào)節(jié)。
機箱主體模塊:該模塊內(nèi)部放置設備的核心控制模塊、核心驅(qū)動模塊、語音播報模塊以及其他所需要的傳感器。體溫監(jiān)測系統(tǒng)6中設置有體溫傳感器,其特征在于:可對用戶進行實時體溫監(jiān)測,并將收集到的體溫數(shù)據(jù)傳輸?shù)胶诵目刂颇K中。擋板5可對未佩戴口罩、口罩佩戴不規(guī)范或體溫過高用戶的出入進行限制,再通過語音播報6對用戶進行規(guī)范佩戴口罩的提醒,若用戶體溫過高則會發(fā)出警報。
3 軟件設計
3.1 視頻檢測模塊設計
本系統(tǒng)采用OpenCV Adaboost級聯(lián)分類器算法對未佩戴口罩或口罩佩戴不規(guī)范的用戶進行識別分析。
將口罩規(guī)范檢測分解為以下步驟:(1)先調(diào)用人臉AdaBoost級聯(lián)分類器,對用戶的人臉位置進行鎖定。將人臉識別出的矩形向量分為三個部分:口罩檢測部分(FaceROI)、鼻子檢測部分(NoseROI)以及嘴巴檢測部分(MouthROI)。FaceROI的識別位置為face矩形向量的整個框架內(nèi),NoseROI的識別位置為face矩形向量的2/3處,MouthROI的識別位置為face矩形向量的1/3處。然后將FaceROI在視頻顯示中摳出,對其背景進行GaussianBlur處理,從而排除外界因素的干擾,提高識別準確度;(2)調(diào)用口罩佩戴識別AdaBoost級聯(lián)分類器,在上一步GaussianBlur處理的基礎上進行口罩佩戴識別,將識別范圍鎖定在FaceROI中。當用戶佩戴口罩且佩戴規(guī)范時,視頻中顯示“Your have worn mask”;若用戶未佩戴口罩,則顯示“You have not worn mask”。(3)調(diào)用Mouth AdaBoost級聯(lián)分類器以及Nose AdaBoost級聯(lián)分類器進行口罩佩戴規(guī)范檢測,其識別范圍在MouthROI和NoseROI中,當用戶口罩佩戴不規(guī)范(露出嘴巴或者鼻子)時,視頻上顯示“Your mouth(nose)is exposed,please worn mask regularly”。算法設計的流程如圖5所示。
3.2 Eigen face人臉識別模塊設計
關(guān)于Eigen face人臉識別的原理及其設計方法如下:準備好所需要的人臉數(shù)據(jù)庫,對數(shù)據(jù)庫中的人臉進行訓練,計算出數(shù)據(jù)庫中人像的“平均臉”,如圖6所示。
計算出其協(xié)方差矩陣,從而算出人像的特征值以及特征矩陣,也就是“特征臉”,如圖7所示。
最后通過PCA降維所形成的子空間模型便是我們所需要的識別庫了,當有圖像輸入時,系統(tǒng)會與識別庫進行對照,若滿足特征則完成識別。
3.3 系統(tǒng)軟件總設計
當系統(tǒng)完成環(huán)境配置以及代碼燒錄后,便可開始工作。首先系統(tǒng)對各功能模塊進行初始化,然后開啟口罩人臉檢測以及體溫監(jiān)測,對用戶是否佩戴口罩、是否規(guī)范佩戴口罩以及體溫是否超過閾值進行判斷。若用戶規(guī)范佩戴口罩,則打開機械閘門允許用戶進出;若用戶未佩戴口罩、口罩佩戴不規(guī)范或體溫過高,則會落下機械閘門并開啟語音播報。系統(tǒng)運行流程如圖8所示。
4 實驗與結(jié)果分析
4.1 口罩佩戴及其規(guī)范性檢測實驗
為了驗證系統(tǒng)的口罩佩戴及其規(guī)范性檢測功能,本文對1名同學進行口罩佩戴及其規(guī)范性檢測實驗。分別對其規(guī)范佩戴口罩、佩戴口罩不規(guī)范(露出鼻子)、佩戴口罩不規(guī)范(露出嘴巴)以及不佩戴口罩四種情況進行檢測。
口罩佩戴及其規(guī)范性檢測實驗結(jié)果如圖9所示。系統(tǒng)能正確識別用戶是否佩戴口罩以及佩戴口罩是否規(guī)范;當用戶未佩戴口罩或未規(guī)范佩戴口罩時,系統(tǒng)會對該用戶進行規(guī)范佩戴口罩提醒。
4.2 人臉識別檢測實驗
為了驗證系統(tǒng)的人臉識別功能,本文對3名同學進行面部樣本錄入,再分別對這3名同學進行20次隨機人臉檢測。測試結(jié)果見表1所列。
該測試利用Eigen face算子計算人像“特征臉”,從而識別用戶面部信息。從測試結(jié)果可知,該算子誤檢率維持在30%以內(nèi),其識別準確率主要取決于樣本特征值與特征向量的大小,可以通過增加數(shù)據(jù)樣本數(shù)量以及提高樣本優(yōu)質(zhì)程度來提高準確度。
4.3 口罩佩戴檢測驅(qū)動舵機實驗
為了檢測系統(tǒng)人臉口罩佩戴檢測算法驅(qū)動舵機閥門的功能,本文對10名學生進行測試,其中5名學生規(guī)范佩戴口罩,3名學生未佩戴口罩,1名學生口罩佩戴不規(guī)范(露出鼻子),1名學生口罩佩戴不規(guī)范(露出嘴巴)。結(jié)果見表2所列。由表2可知,當用戶規(guī)范佩戴口罩時,舵機閘門將會打開,允許用戶進出;若用戶未佩戴口罩或口罩佩戴不規(guī)范時,則會限制用戶進出。
5 結(jié) 語
本系統(tǒng)基于OpenCV AdaBoost級聯(lián)分類器算法設計人臉口罩規(guī)范佩戴檢測門禁系統(tǒng),以樹莓派作為控制核心、STM32作為驅(qū)動核心,通過攝像頭對用戶面部信息進行采集,分析出用戶口罩佩戴情況,實現(xiàn)對用戶口罩佩戴及其規(guī)范性的檢測,提高了公共場所人流量較大時的安全性。接下來的工作就是提高系統(tǒng)檢測的魯棒性以及設備的多功能性,使其能在生活中發(fā)揮重要作用。
參考文獻
[1]姜紹忠,姚克明,陳磊,等.基于CNN與Transformer混合模型的口罩人臉識別方法[J].傳感器與微系統(tǒng),2023,42(1):144-148.
[2] ESI N B N. 基于AlexNet、ResNet-50及Inception V3模型的戴口罩人臉識別[D].綿陽:西南科技大學,2021.
[3]孫永豪. 基于改進YOLOx的口罩佩戴檢測系統(tǒng)設計與實現(xiàn)[D].合肥:安徽建筑大學,2022.
[4]牛嘉興,高利鵬,張露,等.基于SSD算法的戴口罩人臉識別方法研究[J].計算機仿真,2022,39(8):204-207.
[5]李悅,錢亞冠,關(guān)曉惠,等.面向人臉識別的口罩區(qū)域修復算法[J].電信科學,2021,37(8):66-76.
[6]李萌昕.基于人臉識別的山東大學門禁系統(tǒng)建設與實現(xiàn)[J].深圳大學學報(理工版),2020,37(S1):92-94.
[7]汪左成.航天科工二院203所健康寶人臉識別測溫一體機研制成功[J].中國軍轉(zhuǎn)民,2022,23(13):69.
[8]張穎興,宣揚,張俊豪,等.基于樹莓派的智能防疫門禁系統(tǒng)設計[J].信息技術(shù)與信息化,2022,47(5):209-212.
[9]車佳祺,許曉榮,梁顥銘.一種輕量級人臉追蹤與識別系統(tǒng)設計方案[J].電子設計工程,2022,30(14):58-63.
[10]林俊強,唐艷鳳,鄭煥坡,等.基于物聯(lián)網(wǎng)云平臺的智能門禁系統(tǒng)設計[J].物聯(lián)網(wǎng)技術(shù),2022,12(1):95-98.
作者簡介:郭灼豪(1994—),男,博士,研究方向為圖像處理與機器學習方面。
羅奕彬(2002—),男,本科,研究方向為圖像處理與嵌入式設計方面。