摘 要:基于canny邊緣檢測與積分圖相結(jié)合的方法,進行眨眼檢測。通過canny邊緣檢測,計算出人眼區(qū)域的邊緣,然后對具有噪聲的干擾的邊緣進行分析,判定是否屬于眨眼,進行檢測之前,分別計算眼睛區(qū)域在當(dāng)前的光照條件下眨眼和睜眼的積分圖,并計算判定為眨眼的閾值。積分圖的核心思想是針對一塊圖像區(qū)域,計算像素值的和。其具體實現(xiàn)要先計算出人臉在圖像中的區(qū)域和人眼在人臉圖像中的區(qū)域,使用了ASM(Active Shape Model)算法作為人眼區(qū)域的檢測方法。這種眨眼檢測算法取得98.9%的準(zhǔn)確率,錯檢的部分主要為睜眼檢測為眨眼,基本沒有漏檢,并且能夠達到視頻的實時計算。
關(guān)鍵詞:canny;邊緣檢測;眨眼檢測;積分圖
中圖分類號:TP391.41
眼睛作為人臉器官的重要組成部分,其生理活動為很多領(lǐng)域提供了參考的依據(jù),如駕駛員疲勞駕駛檢測、人機接口等方向。眨眼的頻率和每次眨眼的時間受個人情感、眼睛疲勞程度、疾病等因素影響。在正常的身體條件下,使用眨眼分析對駕駛員駕駛的疲勞檢測可以作為重要的方法。本文提出了一種基于canny邊緣檢測與積分圖相結(jié)合的方法,進行眨眼檢測,取得了良好的效果。
1 本文算法
基于光照、計算速度的要求,本文的人臉眨眼檢測算法,邊緣檢測經(jīng)過驗證使用canny算法比其他方法如拉普拉斯變換方法能得到更好的效果。
本文的主要思想:
(1)通過canny邊緣檢測,計算出人眼區(qū)域的邊緣,然后對具有噪聲的干擾的邊緣進行分析,判定是否屬于眨眼,一般情況下,眨眼能夠正確檢測,但是會有多檢,不會有誤檢。
(2)進行檢測之前,分別計算眼睛區(qū)域在當(dāng)前的光照條件下眨眼和睜眼的積分圖,并計算判定為眨眼的閾值。對canny檢測的眨眼,計算人臉區(qū)域的積分圖,如果滿足閾值條件,則判定為眨眼。
1.1 canny邊緣檢測
JohnCanny于1986年提出Canny算子,它與Marr(LoG)邊緣檢測方法類似,也屬于是先平滑后求導(dǎo)數(shù)的方法,其主要思想如下:
(1)用高斯濾波器平滑圖象,邊緣檢測的算法主要是基于圖像強度的一階和二階導(dǎo)數(shù),但導(dǎo)數(shù)通常對噪聲很敏感,因此必須采用濾波器來改善與噪聲有關(guān)的邊緣檢測器的性能。常見的濾波方法主要有高斯濾波。
(2)用一階偏導(dǎo)的有限差分來計算梯度的幅值和方向;關(guān)于圖像灰度值得梯度可使用一階有限差分來進行近似,這樣就可以得圖像在x和y方向上偏導(dǎo)數(shù)的兩個矩陣。本文使用了如下算子:
其x向、y向的一階偏導(dǎo)數(shù)矩陣,梯度幅值以及梯度方向的數(shù)學(xué)表達式為:
(3)對梯度幅值進行非極大值抑制,圖像梯度幅值矩陣中的元素值越大,說明圖像中該點的梯度值越大,在Canny算法中,非極大值抑制是進行邊緣檢測的重要步驟,這樣可以剔除掉一大部分非邊緣的點。
(4)用雙閾值算法檢測和連接邊緣, 在高閾值圖像中把邊緣鏈接成輪廓,當(dāng)?shù)竭_輪廓的端點時,該算法會在斷點的8鄰域點中尋找滿足低閾值的點,再根據(jù)此點收集新的邊緣,直到整個圖像邊緣閉合。
1.2 積分圖計算
積分圖的核心思想是針對一塊圖像區(qū)域,計算像素值的和。在算法進行之前,對人眼區(qū)域,計算約30幀的睜眼積分圖和眨眼積分圖,使用30幀的積分圖均值作為訓(xùn)練參數(shù),并取兩積分圖差值的一定比例,作為閾值。因在灰度圖像中,睜眼的積分圖要小于眨眼的積分圖,因此大于閾值的被判定為眨眼。
2 實現(xiàn)
本文使用了matlab工具進行邊緣檢測的計算,實際的實現(xiàn)采用vs.net做為開發(fā)環(huán)境,c++語言為工具,然后移植到dsp中,本文中在眨眼檢測前需要先計算出人臉在圖像中的區(qū)域和人眼在人臉圖像中的區(qū)域,經(jīng)驗表明,adaboost方法在人臉區(qū)域檢測方面能夠取得很好的效果,但是在人眼區(qū)域檢測中,我們需要的人眼區(qū)域的精確度較高,不能產(chǎn)生錯檢和飄忽的區(qū)域,因此使用了ASM(Active Shape Model)算法作為人眼區(qū)域的檢測方法。
本文算法的過程如下:
(1)使用haar+adaboost檢測出圖像中的人臉;
(2)使用ASM(Active Shape Model)算法計算去人臉圖像中人眼的區(qū)域;
(3)使用canny算子計算出人眼的邊緣輪廓;
(4)計算出人眼區(qū)域的積分圖;
(5)通過邊緣進行初次的眨眼判定,對檢測出的眨眼用積分圖方法進行二次判定。
2.1 canny邊緣檢測
通過canny邊緣檢測,我們檢測的人眼睜眼邊緣如圖1,眨眼邊緣如圖2。
圖1 睜眼邊緣
圖2 眨眼邊緣
通過對大量的人眼睜眼和眨眼的邊緣進行分析,觀察到眨眼和睜眼有很大的差異性:
(1)睜眼邊緣輪廓會填充整個人眼區(qū)域,會伴隨有大量的噪聲。
(2)眨眼邊緣輪廓會呈一條彎曲的細條帶狀,從左到右延伸,中間會有斷開,也有噪聲。
(3)在相同的條件下,基于上述特征,眨眼邊緣比睜眼邊緣更加穩(wěn)定。
因此,本文基于眨眼的邊緣,在y方向上做投影,并計算邊緣的間隔,剔除掉人眼區(qū)域邊緣的間隔,進行分析,并獲得邊緣間隔的經(jīng)驗值,在人眼x方向上1/3-2/3的整個區(qū)域人眼邊緣的間隔較為穩(wěn)定,因此,我們?nèi)∪搜蹍^(qū)域[1/3,2/3]區(qū)域的間隔作為判定條件,取人眼區(qū)域Y方向上的范圍的1/3作為判定閾值,進行眨眼判定,能夠得到良好的效果。在此算法基礎(chǔ)上,能夠檢測準(zhǔn)眨眼,但是在有睜眼會被誤檢為眨眼。
2.2 積分圖方法進行二次判定
對所有使用canny算子檢測的眨眼,使用積分圖方法進行二次判定,剔除誤檢的部分,本文中,采用了灰度圖像像素值X方向投影積分作為判定方法,取訓(xùn)練的眨眼和睜眼積分圖差值的0.6作為判定間隔閾值,新檢測的積分圖與訓(xùn)練的眨眼參數(shù)求差值,小于上述閾值則判定為眨眼。
2.3 使用haar特征
進行算法前,使用haar特征,adaboost方法先檢測視頻圖像中的人臉區(qū)域。對于正臉和偏轉(zhuǎn)角度不大的人臉圖像,adaboost能夠取得非常好的檢測效果。并使用asm(Active Shape Model)算法檢測出人眼的區(qū)域,asm算法在人眼器官定位方向能夠取得非常好的效果,因此本文使用它作為我們?nèi)搜蹍^(qū)域的檢測。
3 實驗結(jié)果
本文基于Windows平臺進行試驗,前期使用matlab作為仿真工具,進行了大量的邊緣檢測驗證、分析,歸納出算法的主題思想,使用vs.net/c++平臺作為編碼平臺進行實現(xiàn)驗證并移植到DSPDM642平臺,使用作為相機的智能算法模塊進行應(yīng)用,在不同光照環(huán)境和不同參數(shù)的相機上進行驗證,本文的眨眼檢測算法取得98.9%的準(zhǔn)確率,錯檢的部分主要為睜眼檢測為眨眼,基本沒有漏檢,并且能夠達到視頻的實時計算。
4 結(jié)論
在科學(xué)與技術(shù)不斷進步的環(huán)境下,人臉的眨眼檢測的應(yīng)用也越來越廣泛,特別是在駕駛員疲勞駕駛方面,本文通過實驗,提出了一種新的基于canny邊緣檢測和積分圖相結(jié)合的人臉眨眼檢測算法,取得了非常好的應(yīng)用效果。
參考文獻:
[1]Anil K.Jain.Face Detection in Color Images.IEEE TRANS. PAMI,2002,5(24):696-706.
[2]ZHU ZW,JI Q. Eye and gaze tracking for interactive graphic display[J].Machine Vision and Applications,2004,15(3):139-148.
[3]H.S.Ling,L.M.Ang,K.P.Seng.Eye Detection in Face Images.IEEE,2005:1160-1163.
[4]ERIKSSON M,PAPANIKOLOPOULOS N. Eye-tracking for detection of drive fatigure[A].Proceedings of Conference Intel.Transport Sys[C].1997:314-319.
[5]Wang J G,Tan T N.A new face detection method based on shape information[J].Pattern Recognition,2000,21(67):463-471.
[6]Zhi chao Tian,Hua biao Qin.Real-time Driver.S Eye State Detection[J].IEEE,2005:285-289.
[7]王磊.基于計算機視覺的駕駛員疲勞瞌睡檢測方法的研究[D].山東大學(xué),碩士學(xué)位論文,2005-4.
[8]石堅,吳遠鵬,卓斌.汽車駕駛員主動安全性因素的辨識與分析[J].上海交通大學(xué)學(xué)報,2000,34(4):441-444.
[9]曲培樹,董文會.基于眼瞼曲率及模糊邏輯的人眼狀態(tài)識別[J].計算機工程與科學(xué),2007,29(8):50-51.
[10]朱振華,吳曉娟,王磊等.基于眨眼持續(xù)時聞的司機疲勞檢鍘方法[J].計算機工程,2008,34(5):201-206.
作者簡介:李小青(1980.7.5-),女,山西省原平市人,審查員,主任科員,碩士研究生。