国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于人臉識別的高校實(shí)驗(yàn)室門禁系統(tǒng)

2021-07-12 08:35范書鋒吳宇環(huán)譚永輝閆云熙謝慷慷
科技視界 2021年18期
關(guān)鍵詞:蜂鳴器線程人臉識別

范書鋒 吳宇環(huán) 譚永輝 閆云熙 謝慷慷

(黃河科技學(xué)院,河南 鄭州 450000)

0 引言

學(xué)校實(shí)驗(yàn)室對學(xué)生自由開放后,采用紙質(zhì)方式進(jìn)行出入信息記錄,管理工作較煩瑣,出錯率較高,因此,對學(xué)生自主進(jìn)出實(shí)驗(yàn)室采用智能化管理十分有必要[1]。且在當(dāng)今新冠肺炎疫情形勢下,本系統(tǒng)加入了口罩檢測功能,即可無人值班也能規(guī)范進(jìn)出者的一些行為。

1 系統(tǒng)硬件設(shè)計(jì)

1.1 系統(tǒng)總體設(shè)計(jì)

本系統(tǒng)包括兩大部分,分別是STC51控制端和Python核心端。STC51硬件模塊主要通過內(nèi)部接入的定時程序進(jìn)行測距命令驅(qū)動超聲波模塊進(jìn)行測距,并將STC51通過UART與上位機(jī)連接,實(shí)現(xiàn)Python與STC51的信息交互[2]。Python核心系統(tǒng)通過檢測來自單片機(jī)的信號,識別是否為驅(qū)動OpenCV的指令,當(dāng)OpenCV開啟攝像頭則立即進(jìn)行口罩檢測與人臉識別功能,并通過GUI界面顯示出來,最終系統(tǒng)根據(jù)識別結(jié)果判別是否向單片機(jī)下達(dá)電機(jī)驅(qū)動指令??傮w結(jié)構(gòu)如圖1所示。

圖1 系統(tǒng)總體設(shè)計(jì)框圖

1.2 STC51輔助系統(tǒng)

STC51輔助系統(tǒng)主要包括超聲波測距模塊、步進(jìn)機(jī)驅(qū)動模塊和蜂鳴器提示模塊。

超聲波測距采用HY-SRF05型號,此模塊可向外界發(fā)送一定頻率的聲波,且其精確測量2~450 cm傳感距離,精度可達(dá)3 mm。當(dāng)檢測到前方有遮擋物時,聲波就會被反射回來,被模塊接受后,開始計(jì)時,記錄高電平時間,由時間數(shù)據(jù)可計(jì)算出距離[3]。

步進(jìn)機(jī)驅(qū)動模塊采用28BYJ-48的型號,其是4相永磁式減速步進(jìn)電機(jī),采用的轉(zhuǎn)動方式是八拍模式,而齒輪內(nèi)部有8個定子,每8個節(jié)拍為一循環(huán),轉(zhuǎn)子一圈需要64節(jié)拍,由齒輪的減速比1∶64可得,每64節(jié)拍轉(zhuǎn)動5.625°,通過計(jì)算算出90°需要1 024節(jié)拍,在程序中設(shè)置轉(zhuǎn)動的正反方向,每個方向都轉(zhuǎn)動1 024節(jié)拍,并設(shè)置標(biāo)志位和延時[4],一旦轉(zhuǎn)動90°時就會停止轉(zhuǎn)動,一段時間后進(jìn)行反轉(zhuǎn),以此達(dá)到門禁作用[5]。

蜂鳴器提示模塊采用無源蜂鳴器,單片機(jī)加以0.5~4.5 kHz的頻率可驅(qū)動內(nèi)部蜂鳴器發(fā)出特定音頻,即只要對蜂鳴器設(shè)置一定的工作頻率,讓蜂鳴器以設(shè)定的頻率工作,就會發(fā)出特定的提示音。

1.3 Python控制系統(tǒng)

Python控制系統(tǒng)主要包括基于pySerial與單片機(jī)進(jìn)行串口通信的模塊、基于OpenCV的攝像頭觸發(fā)和人臉標(biāo)識、基于CNN的口罩檢測和人臉識別。其Python控制系統(tǒng)流程圖如圖2所示。

當(dāng)單片機(jī)測距成功后,單片機(jī)通過UART串口把數(shù)據(jù)通過pySerial告知Python,使之調(diào)用openCV打開攝像頭進(jìn)行人臉標(biāo)識,人臉標(biāo)記成功之后再通過卷積神經(jīng)網(wǎng)絡(luò)對其進(jìn)行口罩檢測和人臉識別[6],最后把識別的結(jié)果與MySQL中的數(shù)據(jù)進(jìn)行比對,然后通過PYQT界面展示出來,最后也可以把人員識別的信息記錄在數(shù)據(jù)庫,方便管理員查詢。

2 系統(tǒng)軟件設(shè)計(jì)

2.1 基于OpenCV的人臉檢測和圖像處理

為提高系統(tǒng)的可靠性,應(yīng)首先進(jìn)行圖像預(yù)處理,這里使用OpenCV中自帶的基于Haar特征的級聯(lián)分類器進(jìn)行面部檢測[7]。其庫具有級聯(lián)人臉分類器,庫中包含人臉識別模塊。僅通過加載級聯(lián)文檔,即可檢測動態(tài)或靜態(tài)圖像中的面部。文檔格式為XML,文件名為haarcascade_frontalface_default.xml。首先,根據(jù)攝像機(jī)代碼從計(jì)算機(jī)攝像機(jī)調(diào)用VideoCapture函數(shù),然后使用cap.read()方法在攝像機(jī)中讀取圖像。之后,使用captureFrame()函數(shù)從輸入圖像中檢索邊框,并檢索框架,并使用detectMultiScale()函數(shù)完成人臉識別。Python控制系統(tǒng)如圖2所示。

圖2 Python控制系統(tǒng)

2.2 口罩檢測和人臉識別

通過構(gòu)建TensorFlow+Keras+OpenCV的模型來進(jìn)行口罩檢測,此模型的數(shù)據(jù)集來源于網(wǎng)絡(luò),包括2000幅戴口罩圖片,580幅無口罩的人臉。然后將這些圖像鏈接于用TensorFlow框架構(gòu)成的CNN模型,最后通過系統(tǒng)的攝像頭來檢測人們是否佩戴口罩。首先,對上述的兩類圖像進(jìn)行是否戴口罩的分類,然后通過旋轉(zhuǎn)、拉伸等辦法改變圖像,使數(shù)據(jù)增強(qiáng);之后再將增強(qiáng)后的數(shù)據(jù)分為訓(xùn)練集和檢驗(yàn)集[8],通過CNN建立模型,再對模型進(jìn)行預(yù)訓(xùn)練和訓(xùn)練,之后導(dǎo)入檢測程序,最后把是否檢測到口罩的信息通過GUI界面顯示出來[9]。

人臉識別通過CNN實(shí)現(xiàn)。CNN由卷積層、池化層、連接層組成。通過卷積層對由OpenCV檢測后的圖像進(jìn)行特征提取,小部分的層進(jìn)行邊緣、線等低級特征提取,更多的層迭代此低級特征以提取更復(fù)雜的特征。后用池化層對卷積層訓(xùn)練的特征圖進(jìn)行二次采樣。最后,形成卷積層+合并層的復(fù)合層,應(yīng)用于模型任務(wù)。同時,將所有特征圖重新形成為1×N矢量,然后連接復(fù)合層進(jìn)行模型訓(xùn)練[10],之后導(dǎo)入識別程序可完成。

2.3 人機(jī)交互界面設(shè)計(jì)

為提高用戶體驗(yàn),本系統(tǒng)設(shè)計(jì)了一套GUI界面。其可分為識別界面和管理界面(如圖3所示)。用戶可在識別界面內(nèi)看到自己的基本信息及出入時間,也用于未戴口罩提醒及戴口罩顯示的功能。管理員可進(jìn)入管理界面,進(jìn)行人臉信息注冊、模型訓(xùn)練、刪改學(xué)生信息等操作[11]。

圖3 GUI界面流程圖

2.4 基于多線程實(shí)現(xiàn)自動識別

本系統(tǒng)采用PyQT5的QThread來實(shí)現(xiàn)自動檢測與識別,其流程圖如圖4所示。主線程顯示主界面,線程1負(fù)責(zé)與單片機(jī)進(jìn)行通信檢測是否有人到來。檢測到人到來時,線程2在識別界面上更新相機(jī)捕捉的人臉,根據(jù)余暉效應(yīng)實(shí)現(xiàn)人臉的動態(tài)顯示。延遲幾秒后,通過線程3進(jìn)行口罩檢測。檢測后,通過線程4進(jìn)行人臉識別。人臉識別成功后,通過線程5與單片機(jī)進(jìn)行通信,打開門禁。

圖4 線程流程圖

3 系統(tǒng)測試與分析

本系統(tǒng)選定在白天的室外環(huán)境下,以20名學(xué)生為對象進(jìn)行了人臉識別的測試,根據(jù)光照強(qiáng)弱及超聲波檢測距離的不同而得到不同的結(jié)果,所形成的數(shù)據(jù)見表1和表2。由表中數(shù)據(jù)可以看出,當(dāng)人員檢測距離攝像頭為20~60cm時,人臉識別成功率為97%,口罩檢測成功率為100%;經(jīng)過對系統(tǒng)測試的數(shù)據(jù)分析,發(fā)現(xiàn)在距離攝像頭50 cm進(jìn)行對象檢測的時候,誤別率和誤報(bào)率均在2%,人臉識別成功率為98%,識別時間2 s,效果最佳。

表1 口罩檢測結(jié)果

表2 人臉識別結(jié)果

4 結(jié)語

本文采用人臉識別技術(shù)對高校實(shí)驗(yàn)室進(jìn)行信息化管理,對于在系統(tǒng)注冊過的人員經(jīng)人臉識別通過后可進(jìn)入實(shí)驗(yàn)室,并記錄人員信息,同時也便于管理人員統(tǒng)計(jì)進(jìn)出者信息。此外,在新冠肺炎疫情防控的形式下,系統(tǒng)還具有檢測佩戴口罩的功能,提高了實(shí)驗(yàn)室使用的安全性。在此基礎(chǔ)上,系統(tǒng)優(yōu)化了人臉識別算法,使誤識率和誤報(bào)率進(jìn)一步減??;另外對于人員進(jìn)出情況的信息,可將其導(dǎo)出到數(shù)據(jù)庫,方便管理員實(shí)時隨地查看數(shù)據(jù)。

猜你喜歡
蜂鳴器線程人臉識別
電動自行車產(chǎn)品車速提示音檢測現(xiàn)狀和整改技術(shù)研究(2)
人臉識別 等
掌控板制作簡易鋼琴
揭開人臉識別的神秘面紗
單片機(jī)驅(qū)動蜂鳴器的程序設(shè)計(jì)
淺談linux多線程協(xié)作
豐田凱美瑞240V車間隙警告蜂鳴器異常鳴響
基于類獨(dú)立核稀疏表示的魯棒人臉識別
基于K-L變換和平均近鄰法的人臉識別
基于上下文定界的Fork/Join并行性的并發(fā)程序可達(dá)性分析*
农安县| 拉孜县| 曲阜市| 融水| 长丰县| 上栗县| 南投县| 泗阳县| 米易县| 错那县| 高雄市| 泌阳县| 合山市| 盈江县| 中西区| 介休市| 东辽县| 额济纳旗| 井冈山市| 海安县| 西青区| 舒兰市| 巴青县| 柘城县| 通榆县| 阿合奇县| 温宿县| 桂林市| 营口市| 英山县| 新闻| 肇州县| 平顶山市| 清徐县| 云浮市| 长宁县| 阳高县| 清水河县| 论坛| 峨眉山市| 武威市|