本帖最后由 賈延安 于 2009-9-22 12:13 編輯 趙雪竹 王秀 朱學(xué)峰 華南理工大學(xué)自動化科學(xué)與工程學(xué)院 2009-09-08 來源:電子產(chǎn)品世界 引言 眨眼是一種睜閉眼睛的生理活動,眨眼的速度會受疲勞程度、情感壓力、行為種類、睡覺數(shù)量、眼睛受傷程度、疾病等因素影響[1~2]。眨眼識別是駕駛員疲勞檢測的基礎(chǔ),本文采用 Adaboost算法[3][4][5]訓(xùn)練和檢測眼睛睜閉狀態(tài),把睜眼和閉眼圖片分類出來。 Adaboost算法 Adaboost是一種自適應(yīng) boosting算法,它的原理就是將一些簡單的弱分類器 (矩形特征 )通過特定的訓(xùn)練需求 (一般為檢測率和誤檢率的要求)組合成為一個強分類器,在訓(xùn)練和檢測時每一個強分類器對待檢測的矩形特征進行判決,將這些強分類器級聯(lián)起來就可以生成一個準(zhǔn)確的、快速的分類器。它的特點就是檢測速度快,因為每一個強分類器都可以否決待檢測的矩形特征,所以前面的強分類器就可以把大部分錯誤的特征給排除掉。 下面介紹Adaboost算法對強分類器的訓(xùn)練。本文正樣本為包含各種姿態(tài)人眼的圖片(睜眼、閉眼、帶眼鏡),負(fù)樣本為不包含眼睛的任意圖片。設(shè)輸入的n個訓(xùn)練樣本為:{(x1,y1),(x2,y2),......(xn,yn)},其中xi是輸入的訓(xùn)練樣本,yi∈{0,1}分別表示正樣本和負(fù)樣本,其中正樣本數(shù)為 l,負(fù)樣本數(shù)m。n=l+m,具體步驟如下: (1) 初始化每個樣本的權(quán)重w1,i∈D(i); (2)對每個t=1,..., T(T為弱分類器的個數(shù)) ①把權(quán)重歸一化為一個概率分布 ![]() ②對每個特征f,訓(xùn)練一個弱分類器hj計算對應(yīng)所有特征的弱分類器的加權(quán)錯誤率 ![]() ③選取最佳的弱分類器ht(擁有最小錯誤率):et ④按照這個最佳弱分類器,調(diào)整權(quán)重 ![]() 其中ei=0表示被正確地分類,ei=1 表示被錯誤地分類 ![]() (3)最后的強分類器為: ![]() 基于Adaboost算法的眨眼識別 要保證視頻流中圖像處理的實時性就必須采用特定的算法。Adaboost算法由于它特殊的算法模式,可以進行快速的目標(biāo)檢測,因此我們的人眼狀態(tài)檢測的定位,系統(tǒng)就選擇了 Adaboost算法。基于Adaboost的眨眼識別系統(tǒng)主要包含兩個模塊:訓(xùn)練和檢測。其中訓(xùn)練過程起著決定性的作用。 訓(xùn)練 樣本的選擇至關(guān)重要,包括兩個方面,首先是樣本源,本文采用BioID-EyeDatabase和AR人臉庫(來源于網(wǎng)絡(luò))[6],樣本庫提供了人臉圖片和人眼坐標(biāo),根據(jù)人眼坐標(biāo)用Matlab編程來提取人眼。正樣本從截取出的人眼圖片中選取閉眼圖片,負(fù)樣本為剩下的睜眼圖片。樣本的訓(xùn)練過程就是按第2部分算法所闡述的方法選擇弱分類器, 形成強分類器, 再由強分類器級聯(lián)成為一個有效的分類器。在訓(xùn)練時給出檢測率和誤檢率的要求,如檢測率為0.99,誤檢率為0.3,若一共有n個強分類器,則最終的檢測率為0.99n,最終的誤檢率為0.3n。 檢測 檢測就是根據(jù)訓(xùn)練所得到的分類器特征一般存儲為.xml文件對輸入圖片進行檢測。分類器是一個有若干個強分類器組成的級聯(lián)分類器,檢測結(jié)果是一系列的目標(biāo)矩形,也就是圖像中目標(biāo)所在的位置。 實驗結(jié)果分析 本文采用三種不同的負(fù)樣本選擇方法,進行了三次對比實驗。 實驗一:正樣本582張閉眼圖片,歸一化為24×24,負(fù)樣本1285張睜眼圖片,正負(fù)樣本如圖1、圖2所示,實驗結(jié)果如圖3所示。 ![]() 從實驗結(jié)果可以看出睜眼圖片中把眉毛誤檢為閉眼圖片,原因是負(fù)樣本數(shù)量和種類少,導(dǎo)致誤檢率高。 ![]() 本文提出了一種新的負(fù)樣本選擇方法,這樣給我們擴展訓(xùn)練樣本量提供了很大的幫助,就是在Opencv[7]中修改程序,利用已經(jīng)訓(xùn)練好的分類器,來檢測大量視頻圖片,把誤檢的圖片保存下來加入到負(fù)樣本中來作為下次訓(xùn)練的新的負(fù)樣本,并繼續(xù)訓(xùn)練,然后利用下次訓(xùn)練好的新的分類器來繼續(xù)添加負(fù)樣本。負(fù)樣本截取軟件界面如圖4所示。 ![]() 實驗二:正樣本582張閉眼圖片,與實驗一相同,負(fù)樣本2300張,其中除了實驗一中的負(fù)樣本,還包括從負(fù)樣本截取軟件中收集到的誤檢圖片。添加的負(fù)樣本如圖5所示。 ![]() 實驗結(jié)果如圖6所示。 ![]() 從實驗結(jié)果可以看出睜眼圖片中把兩內(nèi)眼角以外一定范圍誤檢為閉眼,說明負(fù)樣本的種類還是沒有達(dá)到要求。所以繼續(xù)利用負(fù)樣本截取軟件收集誤檢到的圖片作為負(fù)樣本。 實驗三:正樣本582張閉眼圖片,與實驗一相同,負(fù)樣本為2965張,其中除了實驗二中的負(fù)樣本,還包括從負(fù)樣本截取軟件中收集到的誤檢圖片。添加的負(fù)樣本如圖7所示。 ![]() 實驗結(jié)果如圖8所示。 ![]() 從實驗結(jié)果中可以看出利用最終的負(fù)樣本訓(xùn)練生成的分類器能有效的區(qū)分出睜眼和閉眼狀態(tài),誤檢率大大降低,說明這樣的負(fù)樣本選擇方法行之有效。 三個實驗結(jié)果誤檢率比較如表1所示。誤檢率為錯誤檢測的圖片數(shù)除以圖片總數(shù)。 ![]() 結(jié)語 本文通過實驗,提出了一種新的負(fù)樣本選擇方法,這樣給我們擴展訓(xùn)練樣本量提供了很大的幫助,即應(yīng)用一個負(fù)樣本截取軟件,通過載入先前訓(xùn)練好的分類器,不斷的收集誤檢的部分來添加進負(fù)樣本中,作為下次訓(xùn)練的新的負(fù)樣本,訓(xùn)練新的分類器。不斷循環(huán)重復(fù)這個步驟,直到達(dá)到能產(chǎn)生有滿意效果的分類器。從三個實驗結(jié)果看出誤檢率逐漸減少,證明了方法的有效性。在以后的實驗中繼續(xù)采用層層迭代的方式,不斷利用訓(xùn)練好的新的分類器來增加負(fù)樣本,直到訓(xùn)練出更加精確的分類器,為后續(xù)判斷汽車駕駛員疲勞檢測做鋪墊。 參考文獻(xiàn): [1] Karson C, Spontaneou eye-blink rates and dopaminergic systems[J].Brain, vol. 106, pp.643-653, 1983 [2] Tsubota K, Tear Dynamics and Dry Eye[J]. Progress inRetinal and EyeResearch, vol.17, no.4,pp565-596, 1998 [3] Viola P, Jones M. Rapid object detection using a Boosted cascade of simple features[C]. Proc. of IEEE Conf. on CVPR 2001. 511- 518 [4] Yong Ma, Xiaoqing Ding, Zhenger Wang, Ning Wang. Robust precise eye location under probabilistic framework[C]. Proceedings of the sixth IEEE International Conference on Automatic Face and Gesture [5] 趙江,徐魯安. 基于 AdaBoost算法的目標(biāo)檢測 [J]. 計算機工程,2004(2) [6] Martinez A.M. and Benavente R. The AR Face Database[R]. CVC Technical Report #24, June 1998 [7] Gao W, Cao B, Shan S G, Zhou D L, Zhang X H, Zhao D B. The CAS-PEAL large-scale Chinese face database and evaluation protocols[R]. Technical report No.JDLTR04 F R001, Joint Research & Development Laboratory, CAS, 2004 [8]Gang Pan,Lin Sun,Zhaohui Wu,Shihong Lao.Eyelink-based Anti-spoofing in Face Recognition from a Generic Webcamera[R].The 11th IEEE International Conference on Computer Vision(ICCV’07),Rio de Janeiro,Brazil,October 14-20,2007 |