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