基于AdaBoost+膚色模型的多人臉檢測考勤系統
正反樣本vec文件生成后需要通過_Opencv提供的opencv_haartraining可執行程序進行樣本訓練。訓練完成后將生成一個xml文件,即通過AdaBoost算法生成的用于人臉檢測的分類器文件。此處主要利用了AdaBoost的OpenCV實現。
本文引用地址:http://www.104case.com/article/277706.htm使用生成的分類器進行人臉檢測時主要使用了OpenCV提供的兩個方法:
(1)load()方法,其主要功能為載入生成的分類器。
(2)detectMultiScale()方法。此方法通過使用之前載入的分類器,在輸入的圖像中查找人臉區域并返回人臉區域的位置。
在AdaBoost初步確定人臉區域后,采用膚色模型校驗。膚色檢測需要設置膚色范圍,通過將圖像中的像素點與“標準膚色”相比較,從而區分圖像中的膚色區域與非膚色區域。
在設置“標準膚色”范圍時,實驗中采用了三種廣泛使用的顏色空間:RGB色彩空間、HSV色彩空間、YCbCr色彩空間。
實驗中,共設置兩個RGB標準膚色模型[10]。RGB膚色模型一的閾值范圍應滿足:G>40、B>20 、R>G、R>B、MAX(R,GB)-MIN(R,G,B)>15。RGB膚色模型二的閾值范圍應滿足:R>220、|R-G|<15、R>G、R>B。
采用(1)(2)(3)(4):
(1)
(2)
(3)
(4)
將RGB顏色轉換為HSV顏色[11],然后設置HSV標準膚色閾值范圍[12]應滿足:0
采用公式(5):
(5)
將RGB顏色轉換為YCbCr顏色[12],然后設置YCbCr標準膚色閾值范圍[13]為:
通過與標準膚色數據對比,圖像某區域像素同時符合三種標準膚色閾值范圍時即認為是膚色區域。結合AdaBoost檢測結果綜合判定人臉區域。最后通過rectangle方法在圖像上使用矩形框標注人臉位置。
使用時,首先由教師通過手機拍攝課堂照像(如圖1所示)并登錄系統上傳考勤圖像。后臺服務器監測到有圖像上傳即對圖像進行人臉檢測,并對不同人臉逐一標注序號。被考勤人員分別登錄系統,選擇圖像與自身相對應的序號。當系統發生漏檢時,系統還向用戶提供手工框選接口,以修正系統對人臉的漏檢。系統會實時將每次考勤結果存入數據庫系統,同時生成考勤圖像、考勤表等方便考勤查看。系統流程圖如圖2所示。
4 實驗結果
為驗證該考勤系統的實際效果,作者將該考勤系統應用于課堂的學生點名中。實驗發現,僅在AdaBoost算法檢測下,會出現較為嚴重的誤檢現象。在加入了膚色校驗之后,誤檢率明顯下降。結合兩種方法后,基于AdaBoost算法結合膚色模型進行人臉檢測具有很好的可用性以及魯棒性,可顯著降低誤檢率。
基于人臉檢測結果,通過學生分別登錄選擇注冊,獲得了實際上課學生的考勤結果。
5 結束語
本文基于AdaBoost算法和膚色模型校驗,結合用戶選擇注冊,實現了多人場景下的考勤。實驗證明,該方法具有良好的可用性及魯棒性,目前,考勤系統已經作為課堂考勤工具正在使用,能夠獲得準確的學生到課結果。然而,該系統還存在較多問題,當存在如遮擋、側臉、低頭等姿態時,檢測精度下降,尚不魯棒。系統可使用人臉識別方法取代人工注冊,減少用戶操作。在人臉檢測過程中,通過將采集到的人臉入庫,供后續人臉識別使用。由于傳統人臉識別方法如:PCA、LBP等,在多人大尺度場景中識別率較低,尚不滿足統計需求,因此探索多人場景下高精度人臉識別算法將是未來研究工作的重點。
參考文獻:
[1]Majumder A, Behera L, Subramanian VK. Automatic and Robust Detection of Facial Features in Frontal Face Images: Computer Modelling and Simulation (UKSim), 2011 UkSim 13th International Conference[C]. Cambridge: IEEE, 2011:331-336
[2]Verma A, Raj S A, Midya A, et al. Face detection using skin color modeling and geometric feature //International Conference on Informatics, Electronics and Vision[C]. Dhaka: IEEE, 2014:1-6
[3]Ban Y, Kim S, Kim S, et al. Face detection based on skin color likelihood[J]. Pattern Recognition, 2014, 47(4):1573–1585
[4]Ghimire D, Lee J. A Robust Face Detection Method Based on Skin Color and Edges[J]. Journal of Information Processing Systems, 2013, 9(1):141-156
[5]Mohamood N, Hashim N M Z, Aziz K A A. Sliding Window for Radial Basis Function Neural Network Face Detection[J]. International Journal of Science & Engineering Applications, 2014, 3(4):94-97
[6]Quraishi M I, Das G, Das A, et al. A novel approach for face detection using artificial neural network// International Conference on Intelligent Systems and Signal Processing[C]. Gujarat: IEEE, 2013:179 - 184
[7]Viola P, Jones MJ. Robust Real-Time Face Detection[J]. International Journal of Computer Vision, 2004, 7(2):137-154
[8]Li R, Li C. Adaboost Face Detection Based on Improved Covariance Feature[J]. Journal of Computers, 2014, 9(5): 1077-1082
[9]Freund Y, Schapire R E. 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
[10]Kovac J, Peer P, Solina F. Human skin color clustering for face detection: The IEEE Region 8 EUROCON 2003: Computer as a Tool[C]. Ljubljana: IEEE, 2003: 144-148
[11]Prema C, Manimegalai D. Survey on skin tone detection using color spaces[J]. International Journal of Applied Information Systems, 2012, 2(2): 18-26
[12]Sobottka K, Pitas I. A novel method for automatic face segmentation, facial feature extraction and tracking[J]. Signal Processing: Image Communication, 1998, 12(3):263-281
[13]Kukharev G, Nowosielski A. Visitor Identification–elaborating Real Time Face Recognition System[J]. Winter School on Computer Graphics (WSCG), 2004, 2:157-164
c++相關文章:c++教程
評論