盧鏗棟,周玲,蔡沛潛,陳曉星,羅中良
(惠州學院電子信息與電氣工程學院,惠州 516007)
學校教師為了有效管理學生上課情況,點名考勤是最常見和傳統的方式,其占用時間長,又容易出現幫忙應到或者代課的現象存在。隨著計算機、通信技術和移動設備應用的普及,出現了各種新的考勤方式,如指紋機考勤,以生物特征指紋作為對象識別依據加快點名考勤,但手指上有灰塵或者有汗液存在或天氣較冷季節和地方,指紋識別存在一定的困難;微信考勤也是一種新的考勤方式,它是讓學生微信連接特定網絡作為到勤依據;虹膜識別考勤,其特點有可依靠性強、識別準確率高的情況。但是在驗證的過程中要求被識別者摘下眼鏡,存在一定的不方便性。而人臉識別技術具有考勤方便、速度快以及生物特征唯一等特點[1],是大學考勤是較理想的方式。本文針對此需求設計了基于人臉識別的上課點名考勤系統,系統采用樹莓派作為系統開發平臺,并由充電寶移動電源供電解決其移動應用便利性。設計的系統通過OpenCV人臉識別算法設計和Python語言編程實現,完成人臉采集和識別并與微信相關聯,實現將考勤數據在微信上傳輸給上課教師,同時將缺課學生名單數量加以統計并顯示,讓教師一目了然,極大地提升點名效率。
根據大學校園點名考勤的經驗,系統設計的功能主要包括:①樹莓派連接好Wi-Fi后,教師通過啟動程序生成微信二維碼并進行登錄,學生到攝像頭面前進行人臉識別,當識別度大于預設的閾值表示識別成功并發出“嘀嘀嘀”提示音;②點名結束后按下鍵盤按鍵“Esc”結束錄制,到勤學生的名單會以Excel的形式發送到當堂教師的微信,文檔里面包括到勤學生的姓名字母縮寫與學號,以及出勤時間,進而對學生遲到、缺勤人數進行統計;③與微信平臺中的文件傳輸助手相連,無需關注公眾號或下載App,方便使用。
該系統主要由樹莓派3B+模塊、攝像組模塊、有源蜂鳴器模塊及電源、按鍵等外部設備組成,系統總體設計如圖1所示。

圖1 系統總體設框圖
LBP(Local Binary Pattern,局部二值模式)算子在3×3圖形領域中,將周圍的像素點的灰度值分別與中心像素點的灰度值進行比較,當周圍的某一像素點灰度值比中心像素點的灰度值大,便將該點的像素點記為1,反之為0。因此中心像素點的LBP算子[2]可以由圖2所示算出。

圖2
其中,LBP的公式可以定義為以下公式(1):

其中,(XC,YC)為3×3領域的中心像素,iC是中心像素的灰度值,而iP則是周圍像素點的灰度值。P為領域內整個采樣點的數量,p為領域內的第p個像素。s(x)是一個符號函數[3],定義為公式(2):

因基本的LBP算子在圖像大小發生變化的情況下會發生編碼錯誤。因此本項目使用了可變半徑的圓形LBP算子來實現人臉識別。以圓形圖像代替原先的3×3方形圖形領域[4]。因此圓形圖像上可以捕獲多個采樣點,如圖3所示。
采樣點的坐標可以通過式(3)和式(4)計算。


其中,(xc,yc)為中心像素點,P為采樣點的數量,R為圓形圖像的半徑[5]。其中P的采樣點位置為(xp,yp),p∈P。

圖3
人臉檢測是目標檢測的一部分,主要涉及兩個方面:①對檢測人臉進行概率統計,從而理解待檢測人臉的某些特征,創造人臉檢測模型。②再使用已經創造的人臉模型匹配輸入圖像,如果匹配,則將匹配的區域輸出,否則什么也不做。使用OpenCV檢測人臉,OpenCV使用對象檢測中的Haar功能的級聯列表[6]。OpenCV中有一個文件夾數據/haarcascades。該文件夾包含OpenCV這些文件可用于檢測相機獲取的圖像中的靜止圖像,視頻和臉部[7]。筆者的人臉圖像檢測與捕獲如圖4(a)所示。然后使用OpenCV進行圖像預處理,在從相機獲得幀(圖像)之后,將圖像從RGB模式轉換為灰度圖像,并且執行灰度直方圖均衡操作,因為OpenCV中的面部檢測需要灰色空間[8]。
OpenCV有三種人臉識別的方法,它們分別基于三種不同的算法:Eigenfaces、Fisherfaces和 Local Binary Pattern Histogram(LBPH)。所有的方法都有類似的過程,即使用了分好類的訓練數據集(人臉數據集[9],每個人都有很多樣本,這里我們設置為每個人200張)來進行“訓練”,對圖像或視頻中檢測到的人臉進行分析,訓練過后將產生后綴名為yml的訓練文件。

圖4 人臉檢測捕獲與預處理
通過攝像頭捕捉一個新人臉,如果這個人的面孔之前被捕捉和訓練過,識別器將會返回其預測的id和索引,并顯示其id和匹配正確的概率(概率=100-置信度指數)。同時在識別功能的基礎上,我們還引入連接微信的功能,引入itchat接口,使微信可與程序連接起來;同時,當人臉匹配正確的概率大于閾值時,會將匹配成功人的id與對應的名字寫入文本,并將文本形式由.txt轉化為.excel,同時引入蜂鳴器鳴叫功能,每當識別成功就發出“嘀嘀嘀”響聲。引入k=cv2.waitKey(10)函數,使程序能夠在鍵盤按下“Exc”鍵時就能退出識別,并將寫入之前寫入帶有姓名字母縮寫與學號的文本發送到相關聯的微信。

圖5 人臉識別與匹配考勤結果圖
根據上述原理,系統總體軟件設計流程圖如圖6所示。

圖6 系統總體軟件流程圖
本文設計的基于人臉識別的考勤設備,自動生成考勤文本發送到對應的微信賬號上,使得考勤信息一目了然,讓教師精確掌握遲到、缺課的學生名單、數量。同時采用人臉識別技術這一生物特征識別技術,通過比較不同人臉圖像LBP編碼直方圖達到人臉識別的目的,識別結果不受光照、縮放、旋轉和平移的影響[10],保證了識別的精準率,極大地降低了學生找代課的可行性,提高教育質量。所設計的設備經過測試,具備很高的識別精準度,具備一定的應用價值。