摘 要:提出了一種新的圖像中人眼檢測算法,在一幅已知的人臉圖像中首先采用同態濾波算法增強圖像的對比度,然后利用迭代式閾值選擇法對圖像進行二值化處理,根據傳統的先驗知識獲得眼睛的候選區域。根據眼睛的構造提出了一種基于最小外接矩形的自定義模板來實現眼睛的最終定位并利用區域質心標定出了眼睛區域的中心位置。實驗證明,本算法簡單實用,能夠有效地實施人眼的檢測,具有較高的檢測精度。
關鍵詞:人眼檢測; 計算機視覺; 最小外接矩形; 質心
中圖分類號:TP391.41 文獻標志碼:A
文章編號:1001-3695(2008)07-2223-02
New algorithm for eyes detection in images
XU Hai-zhu,TANGJin,WANG Li
(School of Information Science Engineering, Central South University, Changsha 410075, China)
Abstract:This paper proposed a new algorithm for eyes detection in the images. First, in a known face image, the homomorphic filter was used to enhance the contrast of the image and the iterative thresh choosing algorithm changed the gray images into binary ones. According to certain priori knowledge, it could get the candidate field of the eyes. Then this paper proposed a user-defined template based on the minimum enclosing rectangle (MER) to complete the finally orientation, and found the center of the eyes using the area centroid. According to many tests, the algorithm can easily and quickly detect the eyes.
Key words:eyes detection; computer vision; minimum enclosing rectangle; centroid
當前人臉檢測與識別技術作為人臉信息處理中一項關鍵技術,成為模式識別和計算機視覺領域中一項受到普遍重視且研究十分活躍的課題。該技術已經被廣泛地應用于公安刑偵、司法鑒定、訪問控制、金融支付、醫學應用、視覺監控、視頻會議等眾多領域。作為臉部特征中的重要組成部分,眼睛的檢測對于人臉信息的處理具有重要的意義,不僅可以提高識別和檢測速度,而且能夠降低識別算法的復雜度,在臉部器官定位方面,只要人眼被精確定位,則眉毛、鼻子、嘴巴等其他特征就可以有潛在的分布關系比較準確的定位。此外眼睛的定位還可以使人臉較好地歸一化,預處理的效果也更加明顯[1]。另外,眼睛在感情以及輔助語言交流中也發揮著巨大的作用[2]。當前,對于眼睛的檢測包括兩種方向:a)首先在圖像中尋找人臉,即進行人臉檢測,然后在人臉區域內尋找人眼;b)直接在圖像區域中檢測眼睛或在已知的眼睛圖像中定位眼球區域[3]。本文所做的研究屬于情況b),即在假設已經確定了的人臉區域內尋找人眼。
首先通過同態濾波算法改善圖像的光照影響,并增強圖像的對比度,利用迭代式閾值算法將圖像進行二值化處理,再根據一定的規則獲取人眼的候選區域;然后基于最小化外接矩形構建簡易的眼睛模板進行最終區域定位,最后利用檢測區域質心的方法標定出眼睛區域的中心位置。
1 圖像的預處理
1.1光線調節
由于人臉圖像受到的光照影響較大,容易造成誤檢,因而首先利用同態濾波器對圖像進行預處理。同態濾波是一種在頻域中同時將圖像亮度范圍進行壓縮和將圖像對比度增強的方法。它能夠對圖像亮度進行調整,通過消除圖像上照明不均的問題,增強暗區的圖像細節,而同時又不損失亮區的圖像細節,能夠很好地彌補光線不足所帶來的影響。將實施完濾波后的圖像轉換為灰度圖像。
1.2 迭代式閾值選擇算法
由于眼睛區域和臉部其他區域最為明顯的特征就是其色彩較深,這也被越來越多的研究者所利用,因而研究需要在二值圖像中進行以突出這種差異,閾值的選擇變得尤為重要。
常規的人工選擇法是通過人眼的觀察,應用人對圖像的知識,在分析圖像直方圖的基礎上人工選出合適的閾值。也可以在人工選出閾值后,根據分割效果,不斷地交互操作,從而選擇出最佳閾值。相比于傳統的人工閾值選擇法,采用自動化閾值算法魯棒性更好,擁有更好的通用性。常用的自動閾值法包括最小誤差閾值選擇法、Otsu法閾值選擇、迭代式閾值選擇等。綜合比較三種方法,迭代式閾值選擇法算法較為簡單,收斂速度快而且在實驗中表現出了良好的效果。
本文采用了迭代式閾值選擇算法,其基本思想是:開始時選擇一個閾值作為初始估計值,然后按照某種策略不斷地改進這一估計值,直到滿足給定的準則為止。在迭代過程中,關鍵之處在于選擇什么樣的閾值改進策略。好的閾值改進策略有兩個特征:能夠快速收斂;在每一個迭代過程中,新產生閾值優于上一次的閾值。具體算法如下:
a)選擇圖像灰度的中值作為初始閾值T0。
b)利用閾值T將圖像分割成兩個區域,即R1和R2,用下式計算區域R1和R2的灰度均值 μ1和μ2
根據人臉面部特征的分布,眼睛區域位于臉部的上半區域,而鼻孔和嘴巴這些容易干擾檢測的特征則位于下半臉部。所以將圖像分為上下兩半,直接在上半部分中尋找眼睛的候選區域大大簡化了方法的復雜度。
2 獲取眼睛的候選區域
二值圖像中,由于鼻孔、眼球、眉毛以及頭發的色彩均較臉部膚色深些,在二值化圖像中必然表現出來的是一個個黑洞。通過對這些黑洞的位置分析,獲取眼睛的候選區域。在人臉中頭發位于眉毛的上方,而眉毛位于眼球的上方,眼球則位于鼻孔的上方。在一幅已知的半人臉圖像中,存在如下兩種情況:a)包含頭發信息。這樣在目標區域中至少存在三個層次的黑色區域,最頂層的是頭發。b)不包含頭發信息。這樣在目標區域中應該至少有兩個層次比較明顯的黑色區域,最頂層是眉毛區域。綜上分析,不管圖像中是否存在頭發信息,最頂層的黑色區域一定不是眼睛區域,因而可以直接去除掉。這樣剩下的至少兩個黑色區域即為眼睛候選區域。
3 眼睛的最終定位
通過分析眼睛的候選區域可以發現,主要的干擾項來自于與眼睛位置接近的眉毛區域。因而構建一個即能夠描述眼睛區域信息又能夠有效地區別于眉毛區域的模板變得尤為重要。
針對眼睛的構造,前人提出了各種眼睛模板來實施定位。A.L.Yuille等人[4]在早期的研究中提出了一種二維可變形模板法,用兩條拋物線和一個球形表示眼睛。后來X.Xie等人[5]又提出了改進的眼睛可變形模板,他們提出了一種新的邊緣檢測算法找到眼睛的四個邊緣點(左右眼角及瞳孔與上下眼眶的交點),依此為依據確定模板的初始參數。在近期的研究中,文獻[6]提出了一種基于三維可變形模板的眼睛特征提取算法,利用人臉姿態估計策略來估測人臉的垂直旋轉方向,然后利用三維可變形模板匹配技術來提取眼睛的精確特征。以上用于眼睛檢測的模板基本都是直接利用了眼睛自身的外形,如瞳孔的球形、眼眶的弧形等,但是在實踐中發現由于圖像噪聲的影響,所提取出的眼睛輪廓并不完整,很難清晰準確地找到眼睛的邊界,這也就導致了檢測精度不高,而且構建模板要統計大量的匹配參數,算法相當復雜。
本文提出了一種簡易的基于最小外接矩形(minimum enclosing rectangle,MER)的自定義眼睛模板來實現眼睛的最終定位,如圖1所示。在已知物體的輪廓時,用其外接矩形的尺寸來描述它的形狀是最簡單的方法,本文用最小外接矩形來替代眼睛的邊緣輪廓,并構建一系列約束機制來定位眼睛。
圖1(a)表示瞳孔在眼睛中部的情形;(b)代表瞳孔在左眼角的情形;(c)代表瞳孔在右眼角的情形。由于最小外接矩形自身的特性,可以用外接矩形的長L代替眼睛的長度,外接矩形的寬W來代替眼睛區域的寬度。
經過對幾十幅圖像進行分析統計,發現眉毛區域和眼睛區域有著明顯的不同。首先眉毛區域連通性較好,對于常規的個體而言不會出現斷層等特殊情況出現,而眼睛區域由于眼白的存在,連通性必然明顯地差異于眉毛區域;其次,眉毛區域一般比較平滑且細長,而眼睛區域由于眼球的存在則相對較為寬短一些;另外,對于正面人臉圖像而言,眉毛區域一般位于眼睛區域的上方。大量的實驗統計表明,眼睛區域的寬度和長度之比為1/3<n<1(n=W/L)。部分統計圖片如圖2所示。
依據上述約束機制可以準確地找到眼睛的位置。
4 眼睛區域的中心標定
針對人眼的研究,僅僅找到眼睛區域的位置還很難達到應用的要求,另一個重要的位置即眼睛區域的中心位置無論對于人臉檢測,還是對于其他相關的人臉信息研究均有著至關重要的作用。對于不需要精確定位瞳孔、虹膜等人眼的研究中,眼睛區域的中心將是一個非常重要的位置參量甚至要重要于瞳孔、虹膜等特征區域。因為無論眼球發生怎樣的變化,眼睛的中心點將不會發生變化,具有較強的穩定性,這對于依據眼睛位置而進行的研究具有很大的幫助。本文接下來將在定位的人眼區域內尋找眼睛區域的中心點。
一種考慮可以直接搜尋外接矩形的中心點,但是對于有一定傾斜的目標來說,外接矩形所包括的區域相對于有效眼睛區域有較大的偏差,因而直接尋求外接矩形區域的中心誤差會比較大。研究表明在較小的均勻區域,區域的中心、重心、質心可以歸結為一點。研究中,由于人眼區域相對于臉部區域而言可視為小區域,且在最小外接矩形區域內可以近似估價為均勻,因而采用區域的質心來代替區域的中心。尋求到眼睛質心后,以質心坐標為圓心畫圓,形象化地描述中心位置。
區域重心的坐標是根據所有區域中的點計算而來的。其坐標計算公式為
區域的質心是指區域質量的中心。其坐標計算公式為
其中:m為質點的質量。
綜上所述,本文提出了一種有效的實施人眼區域檢測以及中心標定的算法,但是當臉部區域傾斜較大時,臉部特征很難再遵循文中提到的約束條件,因而在臉部傾斜較大時,檢測不準確。另外本文方法可以擴展應用于當前比較熱門的駕駛員疲勞檢測系統,通過計算最小外接矩形的面積來判定眼睛的睜閉,以此來判定駕駛員是否疲勞。但是本文算法不能夠準確地追蹤到眼睛的外形,以及虹膜、瞳孔等位置。這也是下一步研究的重點。部分實驗圖片如圖3所示。
不能夠準確地追蹤到眼睛的外形,以及虹膜、瞳孔等位置。這也是下一步研究的重點。部分實驗圖片如圖3所示。
5 結束語
本文所提算法在MATLAB 7.0下演示成功,提出了一種基于最小化外接矩形的自定義眼睛模板實施人眼的檢測,利用了同態濾波算法來補償亮度信息的影響,同時利用了迭代式閾值選擇算法對圖像進行二值化處理,增強了算法的魯棒性以及通用性。利用質心原理標定出了眼睛的中心位置,為下一步研究打下了良好的基礎。實驗表明在臉部傾斜不是很大的圖片中,檢測精度達到95%以上。但是本文還有明顯的不足,對于臉部傾斜較大的圖像容易產生誤檢,另外對于配戴眼鏡的人臉圖像,由于眼鏡邊緣以及光亮的影響造成檢測率不高,而且還無法準確跟蹤到眼睛的輪廓,這是下一步研究解決的重點。最后,希望本文能夠對相關研究提供一定的參考和幫助。
參考文獻:
[1] 張敏,陶亮.人臉圖像中人眼的檢測與定位[J]. 光電工程,2006,33(8):33-36.
[2]TIAN Ying-li, KANADE T, JEFFREY F C. Eye-state action unit detection by Gabor wavelets[C]// Proc of ICMI. 2000:143-150.
[3]KUMAR R T, RAJA S K, RAMAKRISHNAN A G. Eye detection using color cues and projection functions[C]// Proc of IEEE ICIP .2002:337-340.
[4]YUILLE A L, HALLINAN P W, COHEN D S. Feature extraction from faces using deformable template[J]. International Journal of Computer Vision,1992,8(2):99-111.
[5]XIE X, SUDHAKAR R, ZHUANG H. Corner detection by a cost minimization approach[J]. Pattern Recognition, 1993,26(8):1235-1243.
[6]黃萬軍,尹寶才,陳通波,等. 基于三維可變形模板的眼睛特征提取[J]. 計算機研究與發展,2002,39(4):495-501.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”