任安虎 劉 貝
(西安工業(yè)大學(xué)電信工程學(xué)院 西安 720021)
?
基于Adaboost的人臉識別眨眼檢測*
任安虎劉貝
(西安工業(yè)大學(xué)電信工程學(xué)院西安720021)
摘要傳統(tǒng)的二維人臉識別方法不能識別來訪者是真實的人還是人的圖片,通過檢測眨眼可以完成對來訪者的活體驗證,為人臉識別提供一道安全的屏障?;贏daboost算法訓(xùn)練出睜眼和閉眼分類器,在檢測到來訪者人臉的基礎(chǔ)上,根據(jù)先驗經(jīng)驗對人眼區(qū)域進行預(yù)估,在預(yù)估區(qū)域中使用睜眼和閉眼分類器進行檢測。實驗結(jié)果表明,該眨眼檢測方法能夠?qū)崟r地對視頻圖像中的人眼狀態(tài)進行有效檢測,為下一步人臉的正確識別打下了良好基礎(chǔ)。
關(guān)鍵詞Adaboost算法; 人臉檢測; 人臉識別; 分類器; 眨眼檢測
Eye Blinking Detecting in Face Recognition Based on Adaboost
REN AnhuLIU Bei
(Institute of Electronic Information Engineering, Xi’an Technology University, Xi’an720021)
AbstractThe traditional two-dimensional face recognition method can not identify the visitor is real person or its pictures. It provides a safty barrier for the face recognition by detecting eye blinking which verifies the visitor alive. A practical eye blinking detecting method is proposed by estimating eye area on the face and training classifier based on Adaboost algorithm to detect eye area. Experimental results show that it has a performance of high detection precision and fast as real-time on video images, which lays a good foundation for the face recognition.
Key WordsAdaboost algorithm, face detection, face recognition, classifier, eye blinking detecting
Class NumberTP393.03
1引言
生物特征識別技術(shù)辨識的是人身的固有特征,不需要身外的其他標(biāo)識物,而人臉識別作為生物特征識別中的重要的手段,顯示出重要的學(xué)術(shù)價值[1]。人臉識別技術(shù)的安全可靠性較高,可以應(yīng)用于多種場合,如檔案管理、刑事偵查、人機交互、門禁監(jiān)控、POS交易等[2]。
人臉識別是將靜態(tài)圖像或視頻圖像中檢測出的人臉圖像與數(shù)據(jù)庫中的人臉圖像進行對比,從中找出與之匹配的人臉的過程,以達(dá)到身份識別與鑒定的目的,它是同屬于生物特征識別領(lǐng)域和人工智能領(lǐng)域的一個課題[3]。實驗表明,二維人臉識別算法不能判斷來訪者是真實的人還是人的照片。通過攝像頭實時檢測來訪者眼睛的狀態(tài),利用連續(xù)5s檢測來訪者是否眨眼來判斷活性。基于Adaboost算法[4~5]訓(xùn)練出睜眼和閉眼分類器,在檢測到來訪者人臉的基礎(chǔ)上,根據(jù)先驗經(jīng)驗對人眼區(qū)域進行預(yù)估,在預(yù)估區(qū)域中使用睜眼和閉眼分類器進行檢測。在實際實驗中,該眨眼檢測方法有很強的實時性和較好的準(zhǔn)確性。
2OpenCV實現(xiàn)人臉檢測
OpenCV是intel開源發(fā)行的跨平臺計算機視覺庫[6],可以運行在Linux、Windows和Mac OS操作系統(tǒng)上,包含多個C/C++函數(shù)的跨平臺的中、高層API,具備強大的圖像和矩陣運算能力,可以大大減少開發(fā)者的編程工作量,有效提高開發(fā)效率和程序運行的可靠性。OpenCV庫中已經(jīng)生成有人臉分類器“haarcascade_frontalface_alt2.xml”,通過使用哈爾級聯(lián)臉部檢測器可以很好地檢測圖像中的正面人臉。圖1中的矩形框是視頻中標(biāo)識出的人臉區(qū)域。
圖1 標(biāo)識出的人臉區(qū)域
人臉檢測的關(guān)鍵代碼如下:
CvHaarClassifierCascade* cascade=haarcascade_frontalface_alt2.xml;
double scale = 2.0;
IplImage* gray = cvCreateImage( cvSize(img->width,img->height), 8, 1 );
IplImage* small_img = cvCreateImage( cvSize( cvRound (img->width/scale),
cvRound (img->height/scale)), 8, 1 );
cvCvtColor( img, gray, CV_BGR2GRAY );//把彩色圖像img轉(zhuǎn)化為灰度圖像gray
cvResize( gray, small_img, CV_INTER_LINEAR ); //采用線性插值的方法調(diào)整gray圖像和 small_img相匹配
CvSeq* faces = cvHaarDetectObjects( small_img, cascade, storage, 1.2, 2, 0, cvSize(30, 30) );
//對small_img進行檢索,返回的矩形框序列存放在faces
for( i = 0; i < (faces ? faces->total : 0); i++ )
{ CvRect* r = (CvRect*)cvGetSeqElem( faces, i );
//獲取每一個尋找到的物體的矩形框,一共找到faces->total個
CvPoint rectP1, rectP2;
rectP1.x = cvRound(r->x * scale);
rectP1.y = cvRound(r->y * scale);
rectP2.x = cvRound((r->x + r->width) * scale);
rectP2.y = cvRound((r->y + r->height) * scale);
cvRectangle(img, rectP1, rectP2, colors[i%8],1 , 8, 0);
//在img圖像內(nèi)繪制一個以P1、P2為對角線端點線條顏色為colors[i%8]的的矩形 //3 是線的粗細(xì),負(fù)數(shù)時表示填充,8線類型,0表示小數(shù)點位數(shù)}
3基于Adaboost的眨眼檢測
3.1Adaboost算法與Haar型特征
Adaboost檢測算法是一種迭代算法,其核心思想是針對同一個訓(xùn)練集訓(xùn)練不同的分類能力一般的分類器(弱分類器),然后把這些弱分類器迭加起來,構(gòu)成一個更強的最終分類器(強分類器[7])。以檢測睜眼為例,Adaboost睜眼檢測器結(jié)構(gòu)如圖2所示。
圖2 睜眼檢測器結(jié)構(gòu)圖
Adaboost具體算法如下:
1) 給定n個訓(xùn)練樣本圖像(x1,y1),(x2,y2),…,(xi,yi),…,(xn,yn)的訓(xùn)練集,xi是第i個樣本圖像,yi是類別標(biāo)識:yi=0或1分別代表負(fù)樣本(非睜眼)和正樣本(睜眼);
圖3 Haar型特征
3.2選取訓(xùn)練樣本和訓(xùn)練分類器
訓(xùn)練目標(biāo)分類器需要構(gòu)造的正樣本和負(fù)樣本圖像集,正負(fù)樣本的選取對訓(xùn)練分類器的準(zhǔn)確度有著決定性的作用[9]。選取的樣本是從AR、ORL、BIOID等圖像庫[10]中切割的圖像,樣本如圖4所示,圖(a)為睜眼分類器所選取的正負(fù)樣本,圖(b)為閉眼分類器所選取的樣本,所有的正樣本的圖像大小歸一化為24×24,負(fù)樣本的圖像大小可以不歸一化,只要比正樣本的24×24大即可。
圖4 正負(fù)樣本示例
得到正負(fù)樣本集之后,Adaboost算法的大部分時間消耗在對目標(biāo)分類器的訓(xùn)練上。在Dos環(huán)境下,用OpenCV中的“opencv_creatsmaples.exe”和“opencv_haartrainning.exe”可以將正負(fù)樣本訓(xùn)練出目標(biāo)分類器,訓(xùn)練好的分類器能夠達(dá)到很好的實時性和準(zhǔn)確度,圖5為在Dos環(huán)境下訓(xùn)練目標(biāo)分類器的中間過程。選取訓(xùn)練睜眼分類器的正樣本1309張,負(fù)樣本2162張;閉眼分類器的正樣本912張,負(fù)樣本1911張。
圖5 Dos環(huán)境下訓(xùn)練分類器
3.3優(yōu)化眨眼檢測
眨眼檢測在人臉區(qū)域中進行,一張包含人臉的圖像中,除了眼睛區(qū)域,其他背景信息都可以歸入負(fù)樣本集中[11]。在人臉區(qū)域內(nèi),根據(jù)先驗知識,對人眼位置進行區(qū)域預(yù)估,在預(yù)估區(qū)域內(nèi)進行人眼狀態(tài)的檢測,能大大減少非眼睛區(qū)域?qū)z測結(jié)果的影響,降低誤檢率,提高檢測的準(zhǔn)確率,同時減少檢測所耗費的時間。
人臉是一個近似橢圓的幾何圖形,臉部的各個器官分布規(guī)則,所以在進行眨眼檢測前可以先對人臉區(qū)域進行特定的分割,劃出人眼候選區(qū)域,然后利用分類器再對候選區(qū)域進行檢測。劃分以眉毛以下、鼻孔以上臉部區(qū)域作為人眼候選區(qū)域,從幾何上來看,人眼區(qū)域為:H/2 圖6 人眼候選區(qū)域 4實驗與結(jié)果分析 實驗通過攝像頭實時拍攝的視頻檢測人臉信息和驗證眨眼識別的有效性。視頻圖像分辨率均為640×480,幀率25幀/s,持續(xù)監(jiān)測時間200s,總幀數(shù)5000幀,其中每幀圖像中均包含人臉。檢測結(jié)果如圖7所示,其中第一行圖像是單獨使用睜、閉眼分類器進行檢測,可以看出在復(fù)雜背景下,睜、閉眼分類器的檢測結(jié)果誤檢比較多,這是因為正負(fù)樣本選取數(shù)量較少;第二行圖像使用的是優(yōu)化的眨眼檢測方法進行檢測,從圖7中可以看出,優(yōu)化后的檢測效果誤檢率大大降低,并且有很好的準(zhǔn)確度。 圖7 兩種檢測方法的效果 兩種方法的檢測時間如表1所示,從表中可以看出優(yōu)化后的眨眼檢測方法比單獨使用睜閉眼分類器檢測有更快的檢測速度,優(yōu)化后的眨眼檢測方法的平均檢測速度達(dá)到25幀/s,在實際應(yīng)用中滿足攝像頭實時檢測的目的,而基本不會漏檢幀數(shù)。 表1 兩種方法檢測耗時 為了分析優(yōu)化后檢測眨眼方法的性能,本文對多幀圖像的檢測結(jié)果進行統(tǒng)計,結(jié)果如表2所示。通過檢測來訪者的眨眼情況來判斷接受人臉識別的是平面人臉的圖像還是活生生的人,這種方法可以避免自己的人臉信息被不法分子利用,有利于個人的財產(chǎn)安全和社會安定。 表2 優(yōu)化方法的檢測結(jié)果 5結(jié)語 基于Adaboost算法的人臉識別眨眼檢測是一種較為實用的檢測方法。通過訓(xùn)練睜眼以及閉眼兩種目標(biāo)分類器,實現(xiàn)了來訪者眼睛狀態(tài)的檢測,并且通過檢測人臉對人眼區(qū)域進行區(qū)域預(yù)估,縮小了睜、閉眼分類器的搜索范圍,不僅降低了誤檢率同時還提高了檢測速度。經(jīng)過實驗驗證該方法具有較高的準(zhǔn)確性,同時在實驗設(shè)備中平均處理速度可達(dá)到25幀/s,滿足了實時檢測的要求,同時也為下一步的人臉識別打下了良好的基礎(chǔ)。 參 考 文 獻(xiàn) [1] 梁路宏,艾海舟,徐光佑,等.人臉檢測研究綜述[J].計算機學(xué)報,2002,25(5):449-458. LIANG Luhong, AI Haizhou, XU Guangyou, et al. A Survey of Human Face Detection[J]. Chinese Journal of Computers,2002,25(5):449-458. [2] 何東風(fēng),凌捷.人臉識別技術(shù)綜述[J].微機發(fā)展,2003,13(12):75-78. HE Dongfeng, LING Jie. Face Recognition: A Survey[J]. Computer Technology and Development,2003,13(12):75-78. [3] ZHAO W, CHELLAPPA R, PUILLIPSPJ, et al. Face recognition: a literature survey[J]. ACM Computing Surveys,2003,35(4):399-458. [4] Ma Yong, Ding Xiaoqing, Wang Zhenger, et al. Robust precise eye location under probabilistic framework[C]//Seoul, Republic of Korea:[s.n.],2004:339-344. [5] 趙江,徐魯安.基于AdaBoost算法的目標(biāo)檢測[J].計算機工程,2004,30(2):78-83. ZHAO Jiang, XU Lu’an. Object Detection Based on AdaBoost Algorithm[J]. Computer Engineering,2004,30(2):78-83. [6] Mathew Price. Using the Intel OpenCV Library[M]. Ebisaw a: pupils and nostrils,2004. [7] Yoav Freund, Robert E Schapire. A decision-theoretic generalization of on-line learning and an application to boosting[J]. Journal of Computer and System Sciences,1997,55(1):119-139. [8] Viola P, Jones M Robust. Real-time object detection[J]. International Journal of Computer Vision,2004,54(2):137-154. [9] 趙雪竹,王秀,朱學(xué)峰.基于Adaboost算法的人眼檢測中樣本選擇研究[J].計算機技術(shù)與發(fā)展,2010,20(2):133-137. ZHAO Xuezhu, WANG Xiu, ZHU Xuefeng. Research of Samples Selection in Eye Detecion Based on Adaboost Algorithm[J]. Computer Technology and Development,2010,20(2):133-137. [10] Martinez A M, Benavente R. The AR Face Database[R]. Barcelona, Spain:[s.n.],1998:1-4. [11] 王奕直,周凌霄,孔萬增.基于Adaboost算法的疲勞駕駛?cè)搜蹤z測[J].杭州電子科技大學(xué)學(xué)報,2013,9(4):35-38. WANG Yizhi, ZHOU Lingxiao, KONG Wanzeng. Eye Blinking Detecting in Driving Fatigue Based on Adaboost[J]. Journal of Hangzhou Dianzi University,2013,9(4):35-38. 中圖分類號TP393.03 DOI:10.3969/j.issn.1672-9722.2016.03.030 作者簡介:任安虎,男,碩士,副教授,研究方向:通信與信息處理。劉貝,男,碩士研究生,研究方向:嵌入式系統(tǒng)與圖像處理。 基金項目:西安工業(yè)大學(xué)校長基金(編號:XAGDXJJ1214)資助。 收稿日期:2015年9月8日,修回日期:2015年10月20日