李元偉,伏 波
(廣東輕工職業(yè)技術(shù)學(xué)院,廣東 廣州510000)
目前,中國(guó)大多數(shù)高校在日常出勤工作中仍主要采用人工考勤。盡管這些考勤可以起到一定的作用,但由于老師并不認(rèn)識(shí)每個(gè)學(xué)生,學(xué)生可能是冒名頂替者,這對(duì)高校學(xué)風(fēng)的培養(yǎng)和形成非常不利。因此,設(shè)計(jì)一款針對(duì)高校學(xué)生管理的課堂考勤系統(tǒng)很有必要,本文基于人臉識(shí)別技術(shù)研究高校學(xué)生管理的課堂考勤系統(tǒng),結(jié)合人臉圖像采集、人臉預(yù)處理、人臉識(shí)別3大類模塊,選擇了一套高效便捷的算法來(lái)實(shí)現(xiàn)課堂考勤系統(tǒng)。
本文研究的考勤系統(tǒng)采用多種技術(shù)手段實(shí)現(xiàn)智能考勤,只有在指定的教室范圍內(nèi),學(xué)生才能在手機(jī)端進(jìn)行考勤簽到,下課后,需要在系統(tǒng)進(jìn)行簽退,才是正常出勤。該系統(tǒng)準(zhǔn)確記錄學(xué)生上課和下課的時(shí)間,并將SMS或微信消息發(fā)送給沒(méi)有請(qǐng)假但沒(méi)有來(lái)上課的學(xué)生。系統(tǒng)利用人臉識(shí)別功能自動(dòng)完成學(xué)生簽到、簽退的考勤功能。
該系統(tǒng)中主要的用戶有:教師、學(xué)生和系統(tǒng)管理員。當(dāng)學(xué)生首次登錄系統(tǒng)時(shí),系統(tǒng)將調(diào)用設(shè)備的攝像頭以收集學(xué)生的面部圖像信息作為學(xué)生的面部數(shù)據(jù)庫(kù)。登錄系統(tǒng)后,學(xué)生可以根據(jù)課程查看每個(gè)課程的出勤情況。教師登錄系統(tǒng)后可以查看到自己所帶每門(mén)課程中學(xué)生整體的考勤情況及學(xué)生個(gè)人的考勤情況。在考勤管理界面可以選擇自己所帶課程的考勤統(tǒng)計(jì)分析情況。系統(tǒng)管理員具有特殊的權(quán)限,可以增加課程,選擇上課老師、上課地點(diǎn)、上課時(shí)間等。
把用戶分為系統(tǒng)管理員、學(xué)生、教學(xué)人員3大類。下面將從系統(tǒng)管理員的角度,闡述系統(tǒng)功能。人臉考勤系統(tǒng)用例圖如圖1所示。
圖1 人臉考勤系統(tǒng)用例圖
2.1.1 學(xué)生
學(xué)生的主要功能是登錄系統(tǒng)并檢查每門(mén)課程的出勤率。登錄系統(tǒng)后,學(xué)生可以查看其所有課程的考勤信息,并且可以在個(gè)人信息頁(yè)面上查看個(gè)人信息。在每節(jié)課開(kāi)始之前,將提醒學(xué)生在指定區(qū)域打開(kāi)面部識(shí)別以參與識(shí)別,僅當(dāng)通過(guò)面部識(shí)別并且位置在指定教室區(qū)域內(nèi)時(shí),系統(tǒng)才能算作正常出勤。
2.1.2 教學(xué)人員
教師的主要功能是查看課程的相關(guān)信息,查看每個(gè)課程的出勤記錄,查看學(xué)生個(gè)人課程的出勤記錄,并將學(xué)生添加到課程中。老師登錄系統(tǒng)后,可以看到自己所有課程的信息,并將學(xué)生添加到課程中,根據(jù)信息檢查課程的出勤率,在考勤管理界面中統(tǒng)計(jì)課程的出勤率和每個(gè)學(xué)生的出勤時(shí)間、缺勤天數(shù)和請(qǐng)假天數(shù),并可以在教師的個(gè)人信息頁(yè)面上查看個(gè)人信息并更改密碼。
基于我們的需求,人臉識(shí)別的課堂考勤系統(tǒng)需要實(shí)現(xiàn)如下功能:①登錄功能。提供給學(xué)生、教師以及管理員登錄服務(wù),登錄系統(tǒng)后使用系統(tǒng)相關(guān)的功能。②修改密碼。為所有的用戶提供修改密碼的功能。③查看個(gè)人信息。提供個(gè)人詳細(xì)信息查看的功能。④課程信息管理。為系統(tǒng)管理員提供管理課程信息的功能,以及供教師查看自己的課程信息、為課程添加學(xué)生和查看該課程的學(xué)生信息。⑤添加課程學(xué)生信息。為教師提供添加課程學(xué)生信息的功能。⑥人臉圖像釆集。主要是提供釆集學(xué)生人臉圖像信息的功能。⑦考勤管理。主要是為了方便教師查看所帶課程的考勤情況、具體有班級(jí)每天的出勤率統(tǒng)計(jì)、課程的出勤率統(tǒng)計(jì)、查詢某個(gè)學(xué)生的出勤率。⑧人臉考勤。學(xué)生能夠通過(guò)手機(jī)程序打開(kāi)人臉識(shí)別功能,在指定時(shí)間和指定范圍進(jìn)行考勤打卡。
面部識(shí)別技術(shù)是快速、簡(jiǎn)單、非侵入性的,不需要對(duì)方積極的合作。人臉識(shí)別的整體流程如圖2所示,其中的關(guān)鍵流程是人臉檢測(cè)與識(shí)別的算法。
圖2 人臉識(shí)別流程圖
面部檢測(cè)和定位:檢測(cè)圖像中是否有面部,將其從背景中分割出來(lái),并獲得面部或某些器官在圖像上的位置。
特征提?。禾崛√卣鼽c(diǎn)并構(gòu)建特征向量;從多個(gè)樣本圖像的空間序列訓(xùn)練模型,其參數(shù)為特征值;模板匹配方法以相關(guān)系數(shù)為特征;大多數(shù)神經(jīng)網(wǎng)絡(luò)方法直接使用歸一化,輸入變換后的灰度圖像,網(wǎng)絡(luò)輸出為識(shí)別結(jié)果,沒(méi)有特殊的特征提取過(guò)程。
識(shí)別:將要識(shí)別的圖像或特征與面部數(shù)據(jù)庫(kù)中的特征匹配,然后將給定的面部圖像與數(shù)據(jù)庫(kù)中的特定面部圖像及其名稱相關(guān)聯(lián)。
特征臉?biāo)惴ㄊ侨四樧R(shí)別中的特征臉識(shí)別算法。特征臉?lè)椒ɑ旧鲜菍⒛槻孔R(shí)別推向?qū)嶋H可用的第一種方法。特征臉?biāo)惴ǖ淖R(shí)別過(guò)程是將待檢測(cè)面部與特征面部映射,將待檢測(cè)面部的空間中的位置與特征面部進(jìn)行比較,并輸出待檢測(cè)面部的匹配度。Eigenface算法的具體步驟如下。
步驟一:獲取包含M張人臉圖像的集合S,每張圖像可以轉(zhuǎn)換成一個(gè)N維的向量,然后把這M個(gè)向量放到一個(gè)集合S里,公式為:S={T1,T2,T3,…,TM}。
步驟二:得到臉部向量集S后,計(jì)算平均圖像Ψ。平均圖像的計(jì)算方法為:。集S的向量被遍歷,累加和平均。Ψ實(shí)際上是一個(gè)N維向量。
步驟三:計(jì)算每張圖像和平均圖像的差值Φ,就是用S集合里的每個(gè)元素減去步驟二中的平均值。具體公式為:Φi=Ti-Ψ。
步驟四:找到實(shí)際用于描述Φ分布的M個(gè)正交單位矢量uk(步驟三中的差異)。uk指的是第k個(gè)(k=1,2,3,…,M)向量,計(jì)算公式為:
式(1)中,當(dāng)γk特征值取最小的值時(shí),uk基本就確定了。這M個(gè)向量是相互正交而且是單位長(zhǎng)度的,所以u(píng)k還要滿足以下公式:
式(2)使得uk滿足單位正交向量的條件。計(jì)算式(2)中的uk其實(shí)就是計(jì)算下面公式的特征向量:
步驟五:識(shí)別人臉。上面幾個(gè)步驟是為了對(duì)人臉進(jìn)行降維以便找到表征人臉的合適向量的。首先我們獲取一張新的人臉,可以用特征臉對(duì)其進(jìn)行標(biāo)示,識(shí)別人臉。公式為:
式(4)中,k=1,2,…,M,對(duì)于第k個(gè)特征臉uk,式(4)可以計(jì)算新人臉對(duì)應(yīng)每個(gè)特征臉的權(quán)重,M個(gè)權(quán)重可以構(gòu)成一個(gè)代表新人臉的向量,公式為:
那如何對(duì)人臉進(jìn)行識(shí)別,公式為:
式(5)(6)中:φ為待區(qū)分的人臉;φk為訓(xùn)練集中的某人臉,兩者均由特征人臉的權(quán)重表示。
式(6)是找到兩者之間的歐幾里得距離。如果距離小于閾值,則表示訓(xùn)練集中的區(qū)分臉和第k個(gè)臉是同一個(gè)人;如果所有通過(guò)的訓(xùn)練集都大于閾值,則可以將它們分為兩種情況,即新的人臉或者不是人臉。閾值設(shè)置不是固定的,這取決于訓(xùn)練集的信息。在此之前,必須準(zhǔn)確找到人臉,即找到可以準(zhǔn)確區(qū)分人臉的分類器。在這里,可以使用訓(xùn)練好的分類器,分類精度較高。通過(guò)Eigenface提取高質(zhì)量的人臉圖像,建立特征人臉模型,然后將訓(xùn)練好的SVM分類器用于模型分類和識(shí)別,最后根據(jù)識(shí)別結(jié)果進(jìn)行使用。多幀投票算法確定人臉身份信息并完成整個(gè)識(shí)別過(guò)程。人臉識(shí)別考勤算法流程如圖3所示。
圖3 人臉識(shí)別考勤系統(tǒng)算法流程圖
本文研究的考勤系統(tǒng)人臉采集模塊采用基于python語(yǔ)言和Opencv庫(kù)的技術(shù)架構(gòu),主要根據(jù)設(shè)定值截取并保存動(dòng)態(tài)視頻中相應(yīng)的人臉圖片數(shù)量。它可以檢測(cè)到遲到、早退、代課和缺勤的發(fā)生,準(zhǔn)確記錄學(xué)生在課堂上的有效時(shí)間,并用SMS或微信發(fā)送給沒(méi)有請(qǐng)假但上課時(shí)沒(méi)有來(lái)的學(xué)生。將這種方法應(yīng)用到高校的人臉識(shí)別考勤系統(tǒng)中,可以快速、全面、自動(dòng)地記錄學(xué)生的出勤情況,有效降低教師的工作量,保證學(xué)生出勤人數(shù)的準(zhǔn)確性。