





摘 要:針對疫情形勢下人工檢測溫度及口罩佩戴情況費時費力且風險高的問題,設計了一套物聯網防疫門禁系統。本設計使用OpenCV采集人臉信息,使用MLX90614溫度采集模塊采集溫度信息,將采集到的人臉和溫度信息傳入主控樹莓派中進行接收并識別,最終使用BY8301語音模塊進行語音播報提醒,將獲取到的人臉數據和體溫信息同時發送到物聯網云平臺,物聯網云平臺將長時間持續接收、顯示以及比對相關數據,并且可以在移動設備或云端同步進行查看,大大降低人力消耗及接觸風險,有效地控制人員的出入,并且可以在第一時間了解到出入人員的相關情況。
關鍵詞:樹莓派;云平臺;物聯網;OpenCV;MLX90614;門禁系統
中圖分類號:TP399 文獻標識碼:A 文章編號:2095-1302(2024)05-0-03
0 引 言
新冠疫情的爆發給全球造成了重大影響,一些人流量較大的公共場所基本都會配備相關的工作人員進行測體溫、檢查口罩佩戴、查驗行程碼等工作。這種傳統的檢測方法存在人力浪費、人工成本高、工作人員感染風險高等問題。因此,開發一套實時的、低成本的物聯網防疫門禁系統迫在眉睫。
目前國內已有許多公司和研究機構開發了針對疫情的防疫門禁系統[1],這些系統通常使用人臉識別、體溫檢測、智能語音等技術來識別和跟蹤疫情形勢下的高風險人群。例如,將攝像頭模塊切換為廣角攝像頭搭配YOLO可實現景區人流量采集檢測;將二維碼檢測切換為門禁卡識別;將OpenCV[2]人臉檢測應用于圖書館、宿舍樓、公司等場所,可以檢測是否為在編人員,將數據上傳至云端就可以填寫完成出勤表[3]等。
樹莓派相較于單片機,優點在于其與其他模塊屬于拔插式接觸,且存儲信息在SD卡中,可實現功能模塊的靈活替換,在疫情結束后可實現快速轉型。
因此,本設計將樹莓派作為控制核心模塊,具有接口豐富、功耗較低、處理速度快的優點。通過WiFi實現樹莓派與物聯網云平臺主機服務器之間的數據交互,并且只需一至兩人即可完成大范圍的管理,大大節省了人力。采用的多重驗證方式,包括口罩識別和溫度檢測等,可以確保人員信息準確性和場所的安全性。同時,該系統還具有數據可追溯性、操作簡單方便等優點,適用于各種場所的防疫工作[4]。
1 總體方案設計
如圖1所示,防疫門禁系統由五部分組成:MLX90614溫度采集模塊、攝像模塊、云端華為云平臺、BY8301語音模塊、顯示模塊。以樹莓派為主控,可以實現多個硬件設備的連接和協同工作,并提供了豐富的計算機視覺和機器學習工具庫,使得整個系統更加智能化和高效化。
將MLX90614溫度采集模塊輸出的溫度以及攝像模塊采集的人臉數據傳入樹莓派并顯示在顯示屏上,并將所需的信息例如溫度數據及人臉截圖發送到華為云平臺,華為云平臺對數據進行實時監測;而樹莓派做出判斷后會在顯示屏顯示相應信息并控制BY8301語音模塊做出相應操作,包括是否開啟門鎖。
2 硬件設計
2.1 硬件選型
根據本系統開發要求及設定,主控采用樹莓派4B進行控制操作。樹莓派采用4B 8G版本,其擁有四核64位處理器,主頻1.5 GHz,相比樹莓派3B版本,處理器性能提升了三倍以上之多;并且擁有兩個HDMI接口,支持4K分辨率的視頻輸出,也保留了40個GPIO引腳,可兼容連接其他傳感器設備。其擁有的8 GB運行內存可以更輕松地運行多個程序且不受內存限制的影響,相較于單片機來說在圖像處理方面則更具優勢。因此本項目采用樹莓派這種功能強大、體積小巧的單板計算機作為項目主控。
溫度采集模塊使用MLX90614。MLX90614具有簡單易用和高精度的優點,并且采用獨特空間補償技術以及溫度穩定相應和線性相應,能夠降低噪聲干擾,進而提高測量精度;可以測量的物體表面溫度范圍為-70~380 ℃,在工業生產控制和家居智能化等領域被廣泛應用。因此本設計選用MLX90614紅外線非接觸式溫度傳感器進行溫度測量。該模塊內置一個微控制器,可以通過I2C接口與控制器進行通信,從而實現數據的獲取和設置。最后MLX90614溫度傳感器將數據轉換為數字輸出。
語音模塊使用BY8301作為主控芯片,實現語音的錄制、保存、播放和刪除等功能,適用于各種語音提示、語音提醒和語音導航等應用場景。采用SPI總線通信協議,內置
8 MB的閃存存儲器,可存儲多達510條不同長度的語音信息。BY8301語音模塊具有結構緊湊、功能強大、易于集成和操作等優點,被廣泛應用于各種語音提示、教育玩具、智能家居、汽車電子等領域。
2.2 硬件設計
如圖2所示,物聯網防疫門禁系統將樹莓派作為控制核心模塊,外接電源模塊、體溫檢測模塊、顯示模塊、語音模塊。
首先,樹莓派會對數據進行初始化,讀取MLX90614溫度傳感器采集的溫度數據,攝像頭獲取的人臉佩戴口罩情況以及健康碼情況。當任何一個條件不符合時則進行報警并上傳云端,華為云會將數據儲存至當日行程表,并告知管理者。當三個條件都符合的時候,則開門并上傳數據至云平臺,并存儲至當日行程表[5]。
3 軟件設計
3.1 口罩識別算法設計
本設計的口罩識別算法采用基于OpenCV的Python程序算法。本算法主要采用OpenCV中提供的級聯分類器(Cascade Classifier)來訓練模型,實現對是否佩戴口罩的檢測。
首先需準備訓練集和測試集數據,包括口罩佩戴狀態下的人臉圖片和無口罩佩戴狀態下的人臉圖片,并對這些圖片進行預處理。之后使用Haar-like算法對每個訓練圖片進行特征提取,并將提取出的特征送入分類器進行訓練。訓練結束后,將得到一個可以判定口罩佩戴狀態的分類器。該算法使用cascade分類器,并且基于Haar特征級聯進行檢測[6],具有速度快、準確性高等優點。
該算法通過像素分析對每個攝像頭視頻幀內的人臉進行特征提取,并輸入到訓練好的分類器中進行判別。最后,得出的結果為人臉是否佩戴口罩的標記信息。口罩識別算法設計流程框圖如圖3所示。
3.1.1 OpenCV
OpenCV是一個基于Python編程語言的開源計算機視覺和機器學習庫,可以用于處理圖像和視頻數據,實現各種計算機視覺應用,如目標檢測、人臉識別、手勢識別等。OpenCV最初是由英特爾公司開放源代碼計劃支持開發的,它提供了一系列豐富的函數和類,可以進行圖像或視頻數據讀取、處理、分析、可視化等各種操作。OpenCV為開發者提供了快速、高效地實現各種圖像和視頻處理任務的工具,廣泛應用于數碼相機、智能手機、攝像頭、物聯網設備[7]等領域中。
在Python中導入OpenCV庫—cv2,再利用OpenCV自帶的基于Haar的級聯分類器實現人臉識別模型文件haarcascade_frontalface_default.xml,即可實現包括人臉檢測以及對裁剪的人臉進行灰度處理在內的功能[8]。
3.1.2 訓練分類器
OpenCV自帶許多識別模型文件,但并沒有針對口罩識別的模型文件,因此需要訓練一個識別口罩的分類器。分類器的核心采用CNN分類方法,對于訓練模型,首先需要找到包含佩戴口罩以及未佩戴口罩的大量圖片數據的數據集。佩戴口罩的圖片視為正樣本,未佩戴口罩的圖片視為負樣本。
對于經過灰度處理后的圖片并不能直接進行訓練,部分照片中臉和口罩占比比較小,其他部分例如肩膀、手臂、手等部位會對訓練模型產生噪音干擾。要對圖片進行預處理,先裁剪處理,并處理掉不合格的灰度圖圖片數據。
正樣本:僅包含被檢測物體的樣本,并且距離邊界盡量要小,圖片尺寸大小一致,所有照片的像素必須一致,這里采用官方推薦使用的20*20像素。負樣本:不包含被檢測物體的樣本,圖片尺寸大小無要求。圖片數據數量越多越好,盡量大于1 000,且本設計識別推薦正負樣本比例為1:3,本模型采用500正樣本、1 500負樣本作為訓練圖片數據。
利用opencv_createsamples.exe為正樣本生成樣本文件,負樣本不需要。再利用OpenCV自帶訓練級聯分類器的工具opencv_traincascade.exe進行模型訓練,訓練過程將迭代地構建和調整級聯分類器模型,以使其能夠盡可能準確地檢測出目標物體,運行最后即可得到相應的xml模型文件[9]。該模型可以被導入到應用程序中,用于實時圖像處理和目標檢測任務即對于口罩的識別。
3.2 主控制器程序
需要安裝Python環境和相關支持庫,并編寫人臉識別、溫度檢測、報警提醒和數據上傳云平臺、用戶出入記錄等數據存儲的相關程序代碼。
樹莓派主程序流程如圖4所示。首先,當人員靠近時,MLX90614溫度傳感器采集溫度數據,獲取人員體表溫度信息后,在一定范圍內進行判斷。如果人員體溫正常,則門禁控制器開啟門禁;如果人員體溫超出預設范圍,檢測到溫度超過37 ℃,則門禁不予開啟,使用語音提示模塊發出報警并通過云端告知管理者。監測的溫度數據實時呈現在顯示屏上,且系統根據MQTT協議將數據發送到華為云平臺,記錄人員的信息并生成行程表。管理人員即可在云端查看到當前數據。
人員靠近同時,攝像頭捕捉人臉信息,通過OpenCV進行人臉口罩識別,將實時影像顯示在屏幕上,然后截取人臉圖像并上傳云平臺存至行程表。若識別結果為佩戴口罩,則開啟門禁;識別結果為未佩戴口罩則會語音提示報警并通過云端告知管理者。
在疫情期間,還需人員出示健康碼,由攝像頭識別QR CODE,識別為紅碼會語音提示報警并通過云端告知管理者;識別為綠碼并且佩戴口罩,以及溫度正常方可進入[10]。
3.3 物聯網云平臺設計
華為云物聯網云平臺是華為云提供的一種面向物聯網設備和應用的云計算服務平臺。該平臺為用戶提供全面的設備接入、數據管理、運營管理等一系列物聯網服務。它具有高可靠性、高安全性和高擴展性。華為云物聯網云平臺可以支持多種接入協議,并且提供了豐富的開發工具和API接口,幫助用戶快速搭建自己的物聯網應用。華為云物聯網云平臺是一個功能齊全、安全可靠的物聯網云服務平臺,可以滿足各種物聯網應用場景需求。
如圖5所示,在物聯網防疫門禁系統中,終端設備為主控樹莓派,設備管理負責通過MQTT協議傳輸數據以及采集設備數據,物聯網應用負責對人體溫度、人臉數據的顯示、存儲等應用的管理。
4 實驗結果
當攝像頭檢測到人員靠近時,會先對其溫度進行測量,如果溫度正常,則會進行口罩的識別;如果溫度不正常,則會報警,提醒工作人員并記錄人臉信息上傳到云端。溫度正常,會對是否佩戴口罩進行檢測,如果佩戴口罩會出現如圖6(a)所示的圖像,并開啟門禁;如果未佩戴口罩則會出現如圖6(b)所示的圖像并發出警報,提醒工作人員,且將數據上傳云端。
5 結 語
針對疫情形勢下的門禁系統的設計問題,本文方法的優勢和創新在于:以Python為語言及樹莓派為主控,使用 OpenCV實現實時檢測是否佩戴口罩,MLX90614溫度采集模塊采集溫度,數據通過WiFi上傳云端并生成信息。制作了一個功能完備、價格低廉、方便操控移植的裝置。使用高精度溫度傳感器,可以對用戶體表溫度進行準確的檢測和判斷。所有用戶出入記錄等數據都保存在云端,具有良好的數據可追溯性。整個操作流程簡單明了,無需復雜的操作流程。同時,語音提示模塊也為用戶及管理人員提供了友好的操作提示。實驗證明,該門禁系統具有高安全性、高精度溫度檢測和數據可追溯性等優點,適用于大多數場所的防疫工作,此方案可行,具有實際使用價值。
參考文獻
[1]安徽省銅陵市天井湖社區.安康碼智慧門禁系統助力守好銅陵社區防疫線[J].中國建設信息化,2022,28(3):46-47.
[2]徐杰,李捍東.基于單片機與OpenCV的門禁系統[J].計算機時代,2022,40(5):63-65.
[3]王卓群,易超.新型智能防疫門禁系統的設計與應用[J].電子元器件與信息技術,2021,5(5):219-223.
[4]婁子豪,陳曉謙.基于Raspberry pi的智能宿舍門禁控制系統[J].數碼世界,2020,19(3):30.
[5]張穎興,宣揚,張俊豪,等.基于樹莓派的智能防疫門禁系統設計[J].信息技術與信息化,2022,47(5):209-212.
[6]胡北辰.基于OpenCV的人臉圖像識別系統設計與實現[J].佳木斯大學學報(自然科學版),2022,40(2):123-126.
[7]張綠云,韋肖雨,李琳.基于Python與OpenCV的人臉識別系統設計與實現[J].電腦知識與技術,2022,18(10):87-88.
[8]汪小藝,王珺,魏志強,等.基于人臉識別的圖書館智能門禁系統[J].電子產品世界,2021,28(4):65-67.
[9]詹可強,林建輝,朱天寶.基于卷積神經網絡的人臉口罩檢測系統設計與實現[J].哈爾濱師范大學自然科學學報,2022,38(5):58-63.
[10]劉軍軍.基于STM32和樹莓派的智能門禁系統[J].電子技術,2021,50(10):24-25.
作者簡介:尹文杰(2002—),男,本科,研究方向為電子技術應用。
付 彤(1992—),女,碩士,講師,研究方向為計算機視覺。
劉林一(2001—),男,本科,研究方向為電子技術應用。
樓子暢(2000—),男,本科,研究方向為電子技術應用。
談 杰(2001—),男,本科,研究方向為電子技術應用。
焦禹涵(2001—),男,本科,研究方向為電子技術應用。
收稿日期:2023-04-23 修回日期:2023-05-18
基金項目:遼寧省2022年大學生創新創業訓練計劃項目(S202213198003)