李元偉,伏 波
(廣東輕工職業技術學院,廣東 廣州510000)
目前,中國大多數高校在日常出勤工作中仍主要采用人工考勤。盡管這些考勤可以起到一定的作用,但由于老師并不認識每個學生,學生可能是冒名頂替者,這對高校學風的培養和形成非常不利。因此,設計一款針對高校學生管理的課堂考勤系統很有必要,本文基于人臉識別技術研究高校學生管理的課堂考勤系統,結合人臉圖像采集、人臉預處理、人臉識別3大類模塊,選擇了一套高效便捷的算法來實現課堂考勤系統。
本文研究的考勤系統采用多種技術手段實現智能考勤,只有在指定的教室范圍內,學生才能在手機端進行考勤簽到,下課后,需要在系統進行簽退,才是正常出勤。該系統準確記錄學生上課和下課的時間,并將SMS或微信消息發送給沒有請假但沒有來上課的學生。系統利用人臉識別功能自動完成學生簽到、簽退的考勤功能。
該系統中主要的用戶有:教師、學生和系統管理員。當學生首次登錄系統時,系統將調用設備的攝像頭以收集學生的面部圖像信息作為學生的面部數據庫。登錄系統后,學生可以根據課程查看每個課程的出勤情況。教師登錄系統后可以查看到自己所帶每門課程中學生整體的考勤情況及學生個人的考勤情況。在考勤管理界面可以選擇自己所帶課程的考勤統計分析情況。系統管理員具有特殊的權限,可以增加課程,選擇上課老師、上課地點、上課時間等。
把用戶分為系統管理員、學生、教學人員3大類。下面將從系統管理員的角度,闡述系統功能。人臉考勤系統用例圖如圖1所示。

圖1 人臉考勤系統用例圖
2.1.1 學生
學生的主要功能是登錄系統并檢查每門課程的出勤率。登錄系統后,學生可以查看其所有課程的考勤信息,并且可以在個人信息頁面上查看個人信息。在每節課開始之前,將提醒學生在指定區域打開面部識別以參與識別,僅當通過面部識別并且位置在指定教室區域內時,系統才能算作正常出勤。
2.1.2 教學人員
教師的主要功能是查看課程的相關信息,查看每個課程的出勤記錄,查看學生個人課程的出勤記錄,并將學生添加到課程中。老師登錄系統后,可以看到自己所有課程的信息,并將學生添加到課程中,根據信息檢查課程的出勤率,在考勤管理界面中統計課程的出勤率和每個學生的出勤時間、缺勤天數和請假天數,并可以在教師的個人信息頁面上查看個人信息并更改密碼。
基于我們的需求,人臉識別的課堂考勤系統需要實現如下功能:①登錄功能。提供給學生、教師以及管理員登錄服務,登錄系統后使用系統相關的功能。②修改密碼。為所有的用戶提供修改密碼的功能。③查看個人信息。提供個人詳細信息查看的功能。④課程信息管理。為系統管理員提供管理課程信息的功能,以及供教師查看自己的課程信息、為課程添加學生和查看該課程的學生信息。⑤添加課程學生信息。為教師提供添加課程學生信息的功能。⑥人臉圖像釆集。主要是提供釆集學生人臉圖像信息的功能。⑦考勤管理。主要是為了方便教師查看所帶課程的考勤情況、具體有班級每天的出勤率統計、課程的出勤率統計、查詢某個學生的出勤率。⑧人臉考勤。學生能夠通過手機程序打開人臉識別功能,在指定時間和指定范圍進行考勤打卡。
面部識別技術是快速、簡單、非侵入性的,不需要對方積極的合作。人臉識別的整體流程如圖2所示,其中的關鍵流程是人臉檢測與識別的算法。

圖2 人臉識別流程圖
面部檢測和定位:檢測圖像中是否有面部,將其從背景中分割出來,并獲得面部或某些器官在圖像上的位置。
特征提取:提取特征點并構建特征向量;從多個樣本圖像的空間序列訓練模型,其參數為特征值;模板匹配方法以相關系數為特征;大多數神經網絡方法直接使用歸一化,輸入變換后的灰度圖像,網絡輸出為識別結果,沒有特殊的特征提取過程。
識別:將要識別的圖像或特征與面部數據庫中的特征匹配,然后將給定的面部圖像與數據庫中的特定面部圖像及其名稱相關聯。
特征臉算法是人臉識別中的特征臉識別算法。特征臉方法基本上是將臉部識別推向實際可用的第一種方法。特征臉算法的識別過程是將待檢測面部與特征面部映射,將待檢測面部的空間中的位置與特征面部進行比較,并輸出待檢測面部的匹配度。Eigenface算法的具體步驟如下。
步驟一:獲取包含M張人臉圖像的集合S,每張圖像可以轉換成一個N維的向量,然后把這M個向量放到一個集合S里,公式為:S={T1,T2,T3,…,TM}。
步驟二:得到臉部向量集S后,計算平均圖像Ψ。平均圖像的計算方法為:。集S的向量被遍歷,累加和平均。Ψ實際上是一個N維向量。
步驟三:計算每張圖像和平均圖像的差值Φ,就是用S集合里的每個元素減去步驟二中的平均值。具體公式為:Φi=Ti-Ψ。
步驟四:找到實際用于描述Φ分布的M個正交單位矢量uk(步驟三中的差異)。uk指的是第k個(k=1,2,3,…,M)向量,計算公式為:

式(1)中,當γk特征值取最小的值時,uk基本就確定了。這M個向量是相互正交而且是單位長度的,所以uk還要滿足以下公式:

式(2)使得uk滿足單位正交向量的條件。計算式(2)中的uk其實就是計算下面公式的特征向量:

步驟五:識別人臉。上面幾個步驟是為了對人臉進行降維以便找到表征人臉的合適向量的。首先我們獲取一張新的人臉,可以用特征臉對其進行標示,識別人臉。公式為:

式(4)中,k=1,2,…,M,對于第k個特征臉uk,式(4)可以計算新人臉對應每個特征臉的權重,M個權重可以構成一個代表新人臉的向量,公式為:

那如何對人臉進行識別,公式為:

式(5)(6)中:φ為待區分的人臉;φk為訓練集中的某人臉,兩者均由特征人臉的權重表示。
式(6)是找到兩者之間的歐幾里得距離。如果距離小于閾值,則表示訓練集中的區分臉和第k個臉是同一個人;如果所有通過的訓練集都大于閾值,則可以將它們分為兩種情況,即新的人臉或者不是人臉。閾值設置不是固定的,這取決于訓練集的信息。在此之前,必須準確找到人臉,即找到可以準確區分人臉的分類器。在這里,可以使用訓練好的分類器,分類精度較高。通過Eigenface提取高質量的人臉圖像,建立特征人臉模型,然后將訓練好的SVM分類器用于模型分類和識別,最后根據識別結果進行使用。多幀投票算法確定人臉身份信息并完成整個識別過程。人臉識別考勤算法流程如圖3所示。

圖3 人臉識別考勤系統算法流程圖
本文研究的考勤系統人臉采集模塊采用基于python語言和Opencv庫的技術架構,主要根據設定值截取并保存動態視頻中相應的人臉圖片數量。它可以檢測到遲到、早退、代課和缺勤的發生,準確記錄學生在課堂上的有效時間,并用SMS或微信發送給沒有請假但上課時沒有來的學生。將這種方法應用到高校的人臉識別考勤系統中,可以快速、全面、自動地記錄學生的出勤情況,有效降低教師的工作量,保證學生出勤人數的準確性。