摘要:課堂學(xué)習(xí)是學(xué)生獲取知識、培養(yǎng)能力、提高素質(zhì)的主要渠道,系統(tǒng)科學(xué)的課堂考勤是保證各項(xiàng)教學(xué)計(jì)劃有效落實(shí)和順利執(zhí)行的重要條件。文章基于face_recognition庫,使用Python編程語言設(shè)計(jì)并實(shí)現(xiàn)了一款基于人臉識別的課堂考勤管理系統(tǒng)。系統(tǒng)前端界面采用PyQt進(jìn)行設(shè)計(jì),后端系統(tǒng)數(shù)據(jù)采用MySQL數(shù)據(jù)庫進(jìn)行管理。系統(tǒng)通過調(diào)用人臉識別技術(shù)可自動(dòng)對學(xué)生進(jìn)行課堂考勤,還可根據(jù)需要生成出勤統(tǒng)計(jì)報(bào)表供教師參考。經(jīng)反復(fù)測試,系統(tǒng)各項(xiàng)功能運(yùn)行穩(wěn)定且交互人性化,可有效提高課堂考勤的效率和準(zhǔn)確率。
關(guān)鍵詞:課堂考勤;face_recognition;Python;PyQt
中圖分類號:TP391.41 文獻(xiàn)標(biāo)志碼:A
0 引言
隨著信息技術(shù)的不斷發(fā)展,教育領(lǐng)域也逐漸迎來了數(shù)字化、智能化的深刻變革。課堂考勤作為課堂教學(xué)管理的重要環(huán)節(jié),是教師對學(xué)生進(jìn)行過程性學(xué)習(xí)評價(jià)的重要參考依據(jù)。傳統(tǒng)的考勤方式主要通過教師課堂點(diǎn)名、系統(tǒng)簽到碼等方式實(shí)現(xiàn),然而,這些方式不僅效率低下,并且容易出現(xiàn)學(xué)生代簽、考勤數(shù)據(jù)不準(zhǔn)確等問題[1]。因此,如何利用現(xiàn)代科技手段提升課堂考勤效率成了當(dāng)前亟待解決的問題之一。隨著計(jì)算機(jī)視覺技術(shù)的不斷發(fā)展和日漸成熟,將最新人臉識別技術(shù)應(yīng)用于課堂考勤管理系統(tǒng)中,不但可以有效應(yīng)對傳統(tǒng)考勤方式效率和準(zhǔn)確率方面的不足,而且還可以為智慧教室的建設(shè)提供一定的技術(shù)支持。
1 人臉識別技術(shù)基礎(chǔ)
人臉識別亦稱面部識別,是一種基于人臉面部關(guān)鍵特征進(jìn)行身份辨識的最新生物特征識別技術(shù),鑒于其具有非侵?jǐn)_、非接觸、可擴(kuò)展等方面的優(yōu)勢,目前已被廣泛應(yīng)用于簽到考勤[2-3]、門禁管理[4]、刷臉支付[5]、安檢安防[6]等領(lǐng)域。該技術(shù)的一般流程主要包括人臉檢測與定位、人臉預(yù)處理(包括人臉對齊、尺寸變換、歸一化等)、特征提取、特征匹配、識別結(jié)果輸出等步驟,具體如圖1所示。其中,人臉檢測與定位是人臉識別的基礎(chǔ)工作,特征提取往往基于傳統(tǒng)特征提取方法或最新卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行實(shí)現(xiàn)[7];而特征匹配則是指將識別階段提取到的面部特征與前期基于特征提取構(gòu)建的人臉特征數(shù)據(jù)庫中的面部特征進(jìn)行相似度匹配,當(dāng)相似度高于設(shè)定閾值時(shí)則匹配成功,否則匹配失敗。
2 face_recognition庫
face_recognition是一款基于深度學(xué)習(xí)技術(shù)開發(fā)的免費(fèi)開源庫[8],它在Labeled Faces in the Wild這一基準(zhǔn)人臉庫中的離線識別率高達(dá)99.38%。該庫構(gòu)建在Dlib(人臉關(guān)鍵點(diǎn)檢測庫)之上,為使用者提供了簡單易用的接口以完成圖像加載、人臉檢測與定位、人臉關(guān)鍵特征點(diǎn)提取、面部特征提取、人臉特征匹配、人臉相似度計(jì)算等人臉識別相關(guān)任務(wù),如表1所示。須要注意的是,face_encodings返回的面部特征是由圖像中的人臉生成的面部特征向量(每張人臉均生成128維面部特征向量)組合而成的編碼列表,同時(shí)這些面部特征是后續(xù)人臉匹配的重要依據(jù)。
3 課堂考勤管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
該系統(tǒng)基于C/S架構(gòu),通過采用PyCharm開發(fā)工具和Python編程語言進(jìn)行開發(fā)實(shí)現(xiàn)。其中,系統(tǒng)前端界面采用PyQt5框架搭配Qt Designer工具進(jìn)行設(shè)計(jì),系統(tǒng)后端數(shù)據(jù)庫采用MySQL進(jìn)行系統(tǒng)數(shù)據(jù)的管理與維護(hù)。
根據(jù)系統(tǒng)前期需求分析,課堂考勤管理系統(tǒng)主要包括管理員、學(xué)生、簽到記錄等實(shí)體,實(shí)體主要屬性及實(shí)體間關(guān)系詳情如圖2所示。其中,系統(tǒng)管理員擁有該系統(tǒng)的最高權(quán)限,可以對其基本信息、學(xué)生用戶和課堂簽到記錄等進(jìn)行信息管理。
對學(xué)生進(jìn)行考勤前,系統(tǒng)需要依托人臉信息錄入功能和學(xué)生信息管理功能建立并完善學(xué)生信息及學(xué)生人臉特征庫。其中,人臉錄入功能支持上傳圖像和攝像頭實(shí)時(shí)采集圖像2種方式進(jìn)行學(xué)生人臉頭像的錄入。在人臉圖像錄入過程中,系統(tǒng)通過調(diào)用face_locations函數(shù)對圖像中的所有人臉區(qū)域進(jìn)行定位,并自動(dòng)調(diào)用人臉分割算法將最大人臉區(qū)域圖像裁剪出來作為該學(xué)生的人臉頭像,如圖3所示。學(xué)生人臉對應(yīng)的其他基本信息填寫完畢后,在對學(xué)生信息保存過程中,系統(tǒng)通過調(diào)用face_encodings函數(shù)將得到的面部編碼特征及該學(xué)生的其他信息一同存入系統(tǒng)數(shù)據(jù)庫。
系統(tǒng)核心功能為基于人臉識別的系統(tǒng)自動(dòng)考勤,如圖4所示。鑒于face_recognition庫接口支持單人臉和多人臉識別,該系統(tǒng)在自動(dòng)考勤功能設(shè)計(jì)與實(shí)現(xiàn)時(shí)可支持單人臉考勤和多人臉同時(shí)考勤2種方式。系統(tǒng)自動(dòng)考勤時(shí),系統(tǒng)通過調(diào)用face_locations函數(shù)對攝像頭實(shí)時(shí)采集到的人臉圖像進(jìn)行人臉檢測和定位。當(dāng)檢測到人臉時(shí),系統(tǒng)首先自動(dòng)使用矩形框標(biāo)定出人臉區(qū)域;接著調(diào)用face_encodings函數(shù)對人臉區(qū)域圖像進(jìn)行面部特征編碼;然后調(diào)用compare_faces函數(shù)對提取出的人臉特征和已建立的人臉特征庫進(jìn)行相似度匹配以辨識出人臉圖像的歸屬;最后將識別到人臉的詳細(xì)信息在簽到結(jié)果面板上進(jìn)行展示,同時(shí)生成相應(yīng)的簽到記錄進(jìn)行存儲。
為防止通過攝像頭刷臉考勤失敗,系統(tǒng)也支持管理員在簽到記錄管理模塊中以人工方式進(jìn)行手動(dòng)簽到。手動(dòng)簽到時(shí),管理員可通過查詢學(xué)號或姓名方式找到相應(yīng)的待簽到學(xué)生,并將該學(xué)生的簽到狀態(tài)設(shè)置為已簽到。同時(shí),系統(tǒng)為該學(xué)生自動(dòng)生成一條簽到記錄。課程結(jié)束后,系統(tǒng)管理員可利用考勤統(tǒng)計(jì)功能對簽到記錄進(jìn)行課程考勤統(tǒng)計(jì)分析,并將統(tǒng)計(jì)出來的結(jié)果以圖表形式進(jìn)行存儲以便于后續(xù)任課教師、教務(wù)管理人員根據(jù)需要進(jìn)行查看。
經(jīng)對系統(tǒng)的反復(fù)測試,結(jié)果表明系統(tǒng)各項(xiàng)功能運(yùn)行穩(wěn)定,教室環(huán)境下基于人臉識別的課堂考勤準(zhǔn)確率可達(dá)99%以上。另外,系統(tǒng)識別一張人臉圖像平均用時(shí)約為0.1s,完全可滿足自動(dòng)考勤對該系統(tǒng)的實(shí)時(shí)性要求。
4 結(jié)語
為簡化考勤流程,提高考勤效率和準(zhǔn)確性,文章基于人臉識別這一生物特征身份認(rèn)證技術(shù),采用Python編程語言和PyQt庫實(shí)現(xiàn)了一款穩(wěn)定可靠的課堂考勤系統(tǒng)。該系統(tǒng)可以通過攝像頭采集并結(jié)合人臉檢測算法獲取學(xué)生的面部圖像,并通過人臉識別算法將其與數(shù)據(jù)庫中的學(xué)生信息進(jìn)行比對,進(jìn)而實(shí)現(xiàn)了精準(zhǔn)的學(xué)生自動(dòng)考勤。除了用于課堂考勤外,系統(tǒng)還可擴(kuò)展用于考試簽到、活動(dòng)打卡等其他實(shí)際場景應(yīng)用中,這對于智慧教室建設(shè)和人工智能技術(shù)應(yīng)用推廣等方面具有較高的實(shí)踐價(jià)值。
參考文獻(xiàn)
[1]李新春,魏武,賈寶山,等.基于藍(lán)牙和校園WLAN的課堂考勤系統(tǒng)設(shè)計(jì)[J].傳感器與微系統(tǒng),2022(5):87-90.
[2]方書雅,劉守印.基于學(xué)生人體檢測的無感知課堂考勤方法[J].計(jì)算機(jī)應(yīng)用,2020(9):2519-2524.
[3]SHUKLA A K,SHUKLA A,SINGH R.Automatic attendance system based on CNN-LSTM and face recognition[J].International Journal of Information Technology,2024(3):1293-1301.
[4]李萌昕.基于人臉識別的山東大學(xué)門禁系統(tǒng)建設(shè)與實(shí)現(xiàn)[J].深圳大學(xué)學(xué)報(bào)(理工版),2020(增刊1):92-94.
[5]ANDREJEVIC M,SELWYN N.Facial recognition technology in schools:critical questions and concerns[J].Learning, Media and Technology,2020(2):115-128.
[6]LIU T,YANG B,GENG Y,et al.Research on face recognition and privacy in China:based on social cognition and cultural psychology[J].Frontiers in Psychology,2021(12):809736.
[7]BUDIMAN A,YAPUTERA R A,ACHMAD S,et al.Student attendance with face recognition (LBPH or CNN):systematic literature review[J].Procedia Computer Science,2023,216:31-38.
[8]高艷,徐麗麗.基于face_recognition庫的人臉識別課堂簽到系統(tǒng)[J].現(xiàn)代計(jì)算機(jī),2021(11):157-160.
Design and implementation of class attendance management system based on face recognition
Abstract: Classroom learning is the main channel for students to acquire knowledge, cultivate ability and improve quality, and systematic and scientific classroom attendance is an important condition to ensure the effective implementation and smooth execution of various teaching plans. Based on the face_recognition library, this paper designs and implements a class attendance management system based on face recognition using Python programming language. The front-end interface of the system is designed using PyQt, and the back-end data is managed using MySQL database. The system can automatically take classroom attendance for students by using face recognition technology, and can also generate attendance statistics for teachers according to their needs. After repeated tests, the system functions are stable and user-friendly, which can effectively improve the efficiency and accuracy of classroom attendance.
Key words: class attendance; face_recognition; Python; PyQt