江泓政,湯軍,黃建,向鐸,楊玥,王志鋮
?。ㄩL江大學 地球科學學院,湖北 武漢 430100)
摘要:傳統的課堂點名方法效率低下,浪費大量時間。提出基于人臉識別的課堂點名系統,大大提高了課堂點名的效率。本系統提供圖像和攝像識別點名,可一次識別多個人臉,同時該系統也對系統難以識別的學生提供手動簽到。系統運用OpenCV人臉識別開源庫做算法部分,用Qt、C++實現界面交互。
關鍵詞:人臉識別;OpenCV;點名系統
0引言
人臉識別技術是利用計算機基于人的臉部特征進行人臉圖像分析,并從中提取出所蘊涵的有效身份特征信息用以識別人的身份的技術[1]。本系統結合校園的需求,將人臉識別運用于課堂點名中。
1系統設計背景
在高校的教學和學生工作管理過程中,課堂點名是一項重要的內容。而傳統的點名方式效率太低,教師工作量大,花費時間多,并且傳統點名記錄的數據不易利用。隨著科技的進步,人臉識別走進了日常生活中,學校開始出現人臉考勤機,但考勤機點名依舊是單個識別,效率依舊不高。本系統運用人臉識別技術,開發可一次識別多人臉的課堂點名系統,大大提高了點名的效率。
2系統設計中的關鍵技術
2.1基于AdaBoost的人臉檢測
AdaBoost算法是通過訓練大量圖像得到弱分類器,將這些弱分類器根據一定的原則組合起來,形成強分類器,再將多個強分類器進行級聯,形成一個多層分類器,如果圖像中的某個區域能夠通過這個多層分類器,就判定這個區域是人臉[2]。在2001年,VIOLA和JONES M J對AdaBoost進一步修改,運用積分圖減小計算量,快速計算出Haarlike特征數值[3]。VIOLA P的算法在人臉檢測中取得了突破性的進展,被廣泛運用于人臉識別中。本系統采用VIOLA P的算法實現人臉檢測部分。
2.2基于EigenFace的人臉識別
EigenFace(特征臉)方法是基于主成分分析(Principal Component Analysis,PAC)的一種人臉識別技術,該方法識別率高,識別速度快。特征臉方法將包含人臉的圖像區域看作一種隨機向量,采用K-L變換(Karhunen Loeve expansion)獲得其正交基底。由于對應較大特征值的基底具有與人臉相似的形狀,故稱之為特征臉“EigenFace”[4]。本系統能實時檢測人臉并對比識別,考慮到性能,選用EigenFace方法作為識別算法。EigenFace的人臉識別包括兩個部分:訓練部分和識別部分。訓練部分就是把人臉圖像的特征提取出來存放到訓練的樣本文件中。在對人臉進行識別時,首先對輸入的待檢測人臉進行特征分析,然后與樣本中的人臉進行匹配。如果得到的相似度大于某個預設閾值,則認為該人臉與樣本中人臉匹配,確定為“合法”用戶;反之,如果得到的相似度小于該閾值,則認為該人臉為“非法”用戶[5]。人臉識別流程圖如圖1所示。
3系統需求分析與設計
3.1系統的需求分析
對點名系統的業務流程進行分析,并且調研課堂老師的意見,規劃出了系統的功能需求。該系統主要分為兩大功能模塊,一是圖像處理算法模塊,二是點名系統管理模塊。其中圖像處理算法模塊包括了人臉預處理、人臉檢測、人臉識別、人臉采集模塊;點名系統管理模塊包括信息錄入、信息查詢、信息管理模塊。
3.2系統設計
系統設計包括了系統框架設計、主要功能模塊設計和數據庫設計。
3.3系統框架設計
圖像處理算法模塊用于學生的人臉采集,將采集后的人臉進行預處理,并將處理后的人臉進行訓練得到樣本文件,其中記錄了學生的人臉特征,在識別時系統載入樣本文件對學生進行人臉識別。點名系統管理模塊主要負責人員的信息、點名信息的查詢和管理。系統框架圖如圖2所示。
3.4主要功能模塊設計
3.4.1人臉采集模塊
人臉采集模塊用于樣本文件和人臉識別過程中人臉的提取,在檢測出人臉區域后將區域中的人臉經過人臉預處理后保存為圖片,供訓練時使用。此模塊設計了兩種采集模式:一是圖像人臉采集,在學生的照片中提取人臉;二是攝像人臉采集,學生在攝像頭前,由算法提取視頻幀中人臉。采取這兩種方法為人臉采集提供了方便,學生可將自己拍的照片提供給管理員進行人臉采集。采集后的人臉會保存在以學號命名的文件夾中。部分人臉采集圖如圖3所示。
3.4.2人臉識別模塊
人臉識別時程序先載入訓練好的樣本文件,將人臉與訓練文件匹配,當置信度大于一定閾值時返回與人臉匹配的學號。人臉識別模塊同樣也設計了兩種模式,一是圖像人臉識別,二是攝像人臉識別。這樣設計的目的是為識別提供多樣化。在算法上本系統采用了OpenCV中的局部二值模式(Local Binary Patterns,LBP)算法[6]。
3.4.3點名模塊
在點名過程中一般方法是將識別過程中返回的學號與數據庫進行匹配,獲得學生數據。但此方法效率較低,在識別過程中需要頻繁地訪問數據庫,降低了點名的速度。本系統運用哈希表,在點名時預先將學生的學號和姓名載入哈希表中,在識別過程中只需訪問哈希表,大大提高了點名的效率和速度。
3.5數據庫設計
數據庫設計的主要表有管理員表、學生信息表、課程信息表、學生選課表、任課教師信息表、班級考勤表、學生考勤表、學生缺勤記錄表。E-R模型圖如圖4所示?! ?/p>
4系統實現
4.1系統運行和開發環境
系統采用Qt5.5為開發平臺,數據庫采用了MySQL5.5,在人臉識別模塊調用了OpenCV函數庫,系統開發環境為Windows 7 64位操作系統。
4.2系統界面
系統包括了人臉檢測、人臉點名、人數統計、人臉采集、信息查詢等功能。系統界面如圖5所示。
4.3點名模塊
當人臉識別完成后,會顯示簽到的學生和未簽到的學生,供教師確認,發現未識別的學生可點擊刪除按鈕,學生會自動從未簽到加入簽到列表,再確認課程班級無誤后,點擊提交便完成點名。點名界面圖如圖6所示?!?/p>
5結論
基于人臉識別的課堂點名系統運用OpenCV和Qt、C++編程技術實現,界面友好,操作簡單,點名快捷,大大提高了課堂點名的效率,也使得人臉識別技術有了更加廣泛的應用,對推動學校和新技術的發展有積極的意義。
參考文獻
?。?] 文成玉,金欣,董良,等.基于人臉識別的應用程序登錄助手設計鄢[J].微型機與應用,2014,33(12):9699.
?。?] 王竹君. 基于人臉檢測的移動點名系統研究與實現[D].昆明:云南大學,2014.
?。?] VIOLA P, JONES M J. Robust realtime face detection[J]. International Journal of Computer Vision,2004,57(2):137154.
?。?] 齊禮成. 基于人臉識別考勤系統的設計與實現[D].西安:西安電子科技大學,2012.
[5] 何榮. 基于OpenCV的人臉識別系統設計[D].廣州:華南理工大學,2013.
?。?] 張慧娟. 基于人臉識別的考勤系統的設計與實現[D].武漢:華中科技大學,2011.