




摘要:課堂學習是學生獲取知識、培養能力、提高素質的主要渠道,系統科學的課堂考勤是保證各項教學計劃有效落實和順利執行的重要條件。文章基于face_recognition庫,使用Python編程語言設計并實現了一款基于人臉識別的課堂考勤管理系統。系統前端界面采用PyQt進行設計,后端系統數據采用MySQL數據庫進行管理。系統通過調用人臉識別技術可自動對學生進行課堂考勤,還可根據需要生成出勤統計報表供教師參考。經反復測試,系統各項功能運行穩定且交互人性化,可有效提高課堂考勤的效率和準確率。
關鍵詞:課堂考勤;face_recognition;Python;PyQt
中圖分類號:TP391.41 文獻標志碼:A
0 引言
隨著信息技術的不斷發展,教育領域也逐漸迎來了數字化、智能化的深刻變革。課堂考勤作為課堂教學管理的重要環節,是教師對學生進行過程性學習評價的重要參考依據。傳統的考勤方式主要通過教師課堂點名、系統簽到碼等方式實現,然而,這些方式不僅效率低下,并且容易出現學生代簽、考勤數據不準確等問題[1]。因此,如何利用現代科技手段提升課堂考勤效率成了當前亟待解決的問題之一。隨著計算機視覺技術的不斷發展和日漸成熟,將最新人臉識別技術應用于課堂考勤管理系統中,不但可以有效應對傳統考勤方式效率和準確率方面的不足,而且還可以為智慧教室的建設提供一定的技術支持。
1 人臉識別技術基礎
人臉識別亦稱面部識別,是一種基于人臉面部關鍵特征進行身份辨識的最新生物特征識別技術,鑒于其具有非侵擾、非接觸、可擴展等方面的優勢,目前已被廣泛應用于簽到考勤[2-3]、門禁管理[4]、刷臉支付[5]、安檢安防[6]等領域。該技術的一般流程主要包括人臉檢測與定位、人臉預處理(包括人臉對齊、尺寸變換、歸一化等)、特征提取、特征匹配、識別結果輸出等步驟,具體如圖1所示。其中,人臉檢測與定位是人臉識別的基礎工作,特征提取往往基于傳統特征提取方法或最新卷積神經網絡模型進行實現[7];而特征匹配則是指將識別階段提取到的面部特征與前期基于特征提取構建的人臉特征數據庫中的面部特征進行相似度匹配,當相似度高于設定閾值時則匹配成功,否則匹配失敗。
2 face_recognition庫
face_recognition是一款基于深度學習技術開發的免費開源庫[8],它在Labeled Faces in the Wild這一基準人臉庫中的離線識別率高達99.38%。該庫構建在Dlib(人臉關鍵點檢測庫)之上,為使用者提供了簡單易用的接口以完成圖像加載、人臉檢測與定位、人臉關鍵特征點提取、面部特征提取、人臉特征匹配、人臉相似度計算等人臉識別相關任務,如表1所示。須要注意的是,face_encodings返回的面部特征是由圖像中的人臉生成的面部特征向量(每張人臉均生成128維面部特征向量)組合而成的編碼列表,同時這些面部特征是后續人臉匹配的重要依據。
3 課堂考勤管理系統設計與實現
該系統基于C/S架構,通過采用PyCharm開發工具和Python編程語言進行開發實現。其中,系統前端界面采用PyQt5框架搭配Qt Designer工具進行設計,系統后端數據庫采用MySQL進行系統數據的管理與維護。
根據系統前期需求分析,課堂考勤管理系統主要包括管理員、學生、簽到記錄等實體,實體主要屬性及實體間關系詳情如圖2所示。其中,系統管理員擁有該系統的最高權限,可以對其基本信息、學生用戶和課堂簽到記錄等進行信息管理。
對學生進行考勤前,系統需要依托人臉信息錄入功能和學生信息管理功能建立并完善學生信息及學生人臉特征庫。其中,人臉錄入功能支持上傳圖像和攝像頭實時采集圖像2種方式進行學生人臉頭像的錄入。在人臉圖像錄入過程中,系統通過調用face_locations函數對圖像中的所有人臉區域進行定位,并自動調用人臉分割算法將最大人臉區域圖像裁剪出來作為該學生的人臉頭像,如圖3所示。學生人臉對應的其他基本信息填寫完畢后,在對學生信息保存過程中,系統通過調用face_encodings函數將得到的面部編碼特征及該學生的其他信息一同存入系統數據庫。
系統核心功能為基于人臉識別的系統自動考勤,如圖4所示。鑒于face_recognition庫接口支持單人臉和多人臉識別,該系統在自動考勤功能設計與實現時可支持單人臉考勤和多人臉同時考勤2種方式。系統自動考勤時,系統通過調用face_locations函數對攝像頭實時采集到的人臉圖像進行人臉檢測和定位。當檢測到人臉時,系統首先自動使用矩形框標定出人臉區域;接著調用face_encodings函數對人臉區域圖像進行面部特征編碼;然后調用compare_faces函數對提取出的人臉特征和已建立的人臉特征庫進行相似度匹配以辨識出人臉圖像的歸屬;最后將識別到人臉的詳細信息在簽到結果面板上進行展示,同時生成相應的簽到記錄進行存儲。
為防止通過攝像頭刷臉考勤失敗,系統也支持管理員在簽到記錄管理模塊中以人工方式進行手動簽到。手動簽到時,管理員可通過查詢學號或姓名方式找到相應的待簽到學生,并將該學生的簽到狀態設置為已簽到。同時,系統為該學生自動生成一條簽到記錄。課程結束后,系統管理員可利用考勤統計功能對簽到記錄進行課程考勤統計分析,并將統計出來的結果以圖表形式進行存儲以便于后續任課教師、教務管理人員根據需要進行查看。
經對系統的反復測試,結果表明系統各項功能運行穩定,教室環境下基于人臉識別的課堂考勤準確率可達99%以上。另外,系統識別一張人臉圖像平均用時約為0.1s,完全可滿足自動考勤對該系統的實時性要求。
4 結語
為簡化考勤流程,提高考勤效率和準確性,文章基于人臉識別這一生物特征身份認證技術,采用Python編程語言和PyQt庫實現了一款穩定可靠的課堂考勤系統。該系統可以通過攝像頭采集并結合人臉檢測算法獲取學生的面部圖像,并通過人臉識別算法將其與數據庫中的學生信息進行比對,進而實現了精準的學生自動考勤。除了用于課堂考勤外,系統還可擴展用于考試簽到、活動打卡等其他實際場景應用中,這對于智慧教室建設和人工智能技術應用推廣等方面具有較高的實踐價值。
參考文獻
[1]李新春,魏武,賈寶山,等.基于藍牙和校園WLAN的課堂考勤系統設計[J].傳感器與微系統,2022(5):87-90.
[2]方書雅,劉守印.基于學生人體檢測的無感知課堂考勤方法[J].計算機應用,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]李萌昕.基于人臉識別的山東大學門禁系統建設與實現[J].深圳大學學報(理工版),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庫的人臉識別課堂簽到系統[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