摘要:眼睛包含了多種重要的信息,眼睛定位在人臉檢測及人臉識別技術中有著極其重要的實用價值。但傳統的基于幾何特征的眼睛定位方法在多角度視線方向上存在著不同程度的定位不夠準確或計算量大的缺點,文章提出了一種多角度視線方向上的眼睛定位方法。在初步定位人臉區域后,采用主成分分析(Principal Component Analysis, PCA)方法在人臉的上半部分計算眼睛的位置。實驗證明了算法的有效性。
關鍵詞:主成分分析;眼睛定位;特征臉;視線;OPENCV
中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2011)04-0870-03
Eye Detection on Different Gaze
YU Qiong, FAN Yin-tao
(Dept of Computer Science, Wuhan University of Technology, Wuhan 430063, China)
Abstract: Eyes contain a variety of important information,eye detection has important practical value in human face detection and face recognition technology. But the traditional detection methods based on geometrical characteristic are not accurate enough and large computational, this paper presented a new eye detection method. Using of PCA method in the upper half of the face to calculate the position of the eyes. Experimental results show the effectiveness of the algorithm.
Key words: PCA; eye detection; eigenface; gaze; OPENCV
近年來,人臉識別技術迅速發展,人們認識到相關技術的價值并在這方面做了很多的研究,人臉特征的提取是人臉自動識別過程中至關重要的一步。
眼睛是一個在人臉最為重要的特征,因此,眼睛的定位成為了人臉識別中關鍵的一步。臉部特征強烈依賴于雙眼的位置,只要左右眼睛的位置確定下來,則人臉其它特征(如鼻子、嘴、眉毛等)都可根據人臉的生物特征分布關系基本確定。正因為眼睛定位在人臉識別中具有如此重要的地位,所以近年來提出了許多人眼定位的方法,主要有霍夫變換法、灰度投影法和對稱變換法[1]等,霍夫變換法對二值化圖像進行圓檢測,從而確定雙眼的精確位置,該方法受眼瞼以及眼睫毛等的干擾大,而且也較復雜,因而很難得到廣泛的應用;灰度投影法利用人臉灰度圖像進行水平和垂直方向上的投影,分別統計出兩個方向上的灰度值和,找出特定的變化點,確定人眼位置,該方法對不同人臉和姿態變化敏感,只能大致找出眼睛區域,不能精確定位;對稱變換法利用正面人臉圖像的強對稱性檢測人眼,但這種方法局限于人臉正面圖像,通用性不是很好。本文提出了一種多角度視線方向上的人眼檢測算法,在人臉區域上部[2],利用PCA方法搜索最接近人眼圖像的區域。
在圖像處理[3]過程中,首先通過直方圖均衡化增強人臉局部的對比度,之后再通過像素灰度值歸一化在一定程度上消除成像條件不同,也就是外界光照條件不同對定位造成的負面影響。在人臉庫中選取多角度視線方向上的眼睛圖像,用這些圖像合成人眼圖像。根據人眼在人臉的位置特點,在已檢測出的人臉區域的上部,利用PCA方向檢測人眼的位置。
1 圖像預處理
直方圖能反映圖像的概貌,比如圖像中有幾類目標,目標和背景的分布如何;通過直方圖可以直接計算圖像中的最大亮度、最小亮度、平均亮度、對比度以及中間亮度等。使用直方圖可以完成圖像分割、目標檢索等。因為不同的目標具有不同的顏色分布。使用歸一化直方圖作目標匹配,還不易受到目標翻轉和目標大小變化的影響。
若i代表像素的灰度,H(i)代表該灰度的像素總個數。
均衡化原理:根據熵理論可知H(0),H(1)…,H(n-1)相等時,圖像信息量最大。均衡化的目的是使每個H(i)都相等,即把原始圖的直方圖變換為均勻分布的形式,這樣就增加了像素值的范圍,增強了圖像的對比效果。
像素灰度值歸一化就是改變圖像的亮度和對比度,使其等于定值。
通過歸一化處理,可以在一定程度上消除成像條件不同,也就是圖像光照不同對識別造成的負面影響。
2 合成人眼模板
PCA算法需要標準眼睛圖像在人臉中查找人眼的位置,但不同視線方向的眼睛圖像差別很大,所以應該降低人眼模板對多角度視線方向的眼睛的敏感性,提高其魯棒性。為此我們采用一種合成的人眼圖像作為模板,從庫中選取不同視線方向的左右眼圖像,然后將這些圖像的對應像素相加平均后得到一個合成模板。合成多角度視線方向的人眼圖像操作簡便,能夠在多角度視線方向之間達到折中,減弱了模板對視線方向的敏感度。
從人臉庫中選取不同視線方向的人眼圖像,并合成左眼、右眼圖像,如圖2,圖3。
3 用PCA算法實現眼睛定位
主成分分析[4](Principal Components Analysis,即PCA,也稱為K-L變換)的目標是尋找r(r PCA算法的實現步驟: 1)計算向量集I的協方差矩陣C。 2)使用特征值分解技術得到矩陣C的特征向量E與特征值(按降序排列)。 3)假設在所有m*n個特征值中,前k個值比其余的大很多(即前k個特征值之和幾乎等于所有的特征值之和),用前k個特征值來構造原圖。 4)計算待測區域對所選的k個特征圖像的投影系數。 5)利用投影系數計算測試區域到原圖像的距離(如:歐氏距離),距離最近者被選作匹配結果。 PCA是圖像壓縮中的一種最優正交變換。PCA用于統計特征提取構成了子空間法模式識別的基礎。它從圖像整體代數特征出發,基于圖像的總體信息進行分類識別。Sirovich和Kirby首先將K-L變換用于人臉圖像的最優表示。Turk和Pentland[5-6]進一步提出了“特征臉”(Eigenface)這個概念。 PCA算法實現人眼定位的基本原理是:利用K-L變換抽取人眼的主要成分,構成特征眼空間,定位時在人臉圖像上選取部分區域投影到此空間,得到一組投影系數,投影系數最小的就是人眼區域。用OPENCV庫實現多角度視線上人眼定位的步驟如下。 1)利用cvCalcEigenObjects()得到不同視線下的合成人眼圖像的特征值和特征向量,并選擇前k個特征值(前k個特征值之和幾乎等于所有的特征值之和)。 2)x=xlimitL, y=ylimitU。 3)如果y坐標大于等于ylimitD,轉(12)。 4)如果x坐標大于等于xlimitR,轉(11)。 5)利用cvEigenProjection()計算合成人眼圖像對所選的k個特征值的投影系數。 6)利用cvEigenDecomposite()計算選定區域對所選的k個特征值的投影系數。 7)通過合成人眼圖像和選定區域的投影系數計算它們的相似度distance。 8)如果distance< min,轉(9),否則,轉(10)。 9)記錄下最小的相似度Min = distance,及其位置。 10)x = x + 2,轉(4)。 11)y = y + 2 ,轉(3)。 12)所記錄的位置即人眼位置。 4 實驗結果及分析 本文使用VC++,利用Opencv庫[7]完成上述眼睛定位算法。我們可以定位已保存的視頻文件中每幀圖像的人眼位置,也可以直接定位攝像頭捕獲的每幀圖像的人眼位置。如圖4所示,我們利用不斷變換頭部姿態和視線方向的視頻片斷來測試本文方法的準確率,當頭部旋轉角度小于60度時,多角度上的眼睛的定位準確率比較高,該方法對戴眼鏡的眼睛定位有很好的魯棒。 圖4 眼睛定位的定位結果 如圖5所示,在眼鏡反光以及頭部旋轉角度過大時,定位會出錯或無法定位。 圖5 眼睛定位出錯情況 5 結束語 本文利用PCA算法,開展了多角度及姿勢人臉眼睛檢測的研究工作。本文通過圖像預處理減小外界光照等對人臉圖像的影響,合成多角度的人眼圖像作為眼睛圖像,對合成眼睛圖像進行主成分分析,在已檢測出的人臉區域內的相應位置上定位眼睛。實驗證明,本文所提出的方法具有對光照等外界條件不敏感,對眼鏡具有很好魯棒性以及可以識別不同姿態及多角度的眼睛圖像的優點。然而,對于眼鏡反光及頭部旋轉角度過大時的定位出錯等問題,將是下一步研究工作的重點。 參考文獻: [1] 唐璉,許海柱,王力.圖像中人眼檢測技術綜述[J].計算機應用研究,2008,25(4):961-965. [2] 宋加濤,劉濟林,池哲儒.人臉正面圖像中眼睛的精確定位[J].計算機輔助設計與圖形學學報,2005,17(3):540-545. [3] 張敏,陶亮.人臉圖像中人眼的檢測與定位[J].光電工程,2006,33(8):33-36. [4] Richard O, Peter E, David G. 模式分類[M].李宏東,譯.2版.北京:機械工業出版社,2003.456-460. [5] Turk M A, Pentland A P. Face recognition using eigenfaces[J].Proceedings of the IEEE.on Computer Society Conference,US,1991,3(6):586-591. [6] Turk A. Pentland.Eigenfaces for recognition[J].Journal of Cognitive Neuroscience,1991,3(1):71-86. [7] Bradski G, Kaehler A.Learning OPENCV[M].于仕琪,劉瑞禎,譯.北京:清華大學出版社,2009.18-560.