宋琴琴 楊國平
(上海工程技術大學機械與汽車工程學院 上海201620)
人眼追蹤在未來生活中的應用是越來越多[1],如人機交互領域[2~4],當我們的眼睛看到電腦屏幕時,電腦會自動開機,我們再看一眼瀏覽器,電腦或許就幫我們打開了網頁。在醫療領域,患者無法用語言或者文字的形式和醫生交流病情,則可以用眼睛來代替手和嘴巴控制一些設備與人交流。安全保護領域,目前已有密碼解鎖,指紋解鎖[5~7],聲音解鎖等[8~10],那眼睛解鎖也是可以的。我們可以通過人眼的運動狀態來設置更為復雜和安全的密碼。交通安全方面,判斷駕駛員是否處于疲勞駕駛狀態對道路公共安全至關重要。通過觀察瞳孔位置變化,以及眼睛的閉合狀態,可判斷司機是否過勞駕駛[11~13]。人眼動態追蹤在未來是一種趨勢和潮流[14~16],涉及的領域也遠不止前文所說的幾點,隨著人工智能發展和該項技術的日趨成熟,將會應用到更多的領域,滿足更多人的需求。
本文對視頻圖像首先進行每一幀的圖像預處理,然后對預處理后的圖像二值化。接著通過瞳孔輪廓檢測和瞳孔中心定位實現人眼的動態追蹤。具體流程如圖1所示。

圖1 流程圖
本文對視頻圖像首先進行圖像預處理,如灰度處理和高斯去噪。
彩色圖像是R、G、B三通道,灰度圖像是單通道,只含有亮度信息不含有彩色信息。在不影響圖片物體識別的基礎上,為了減少計算量,需要對圖像進行降維即從彩色空間轉化為灰度空間,如圖2所示(選取視頻圖像里的一張圖)。

圖2 灰度圖
圖1 明顯可以看出還是有部分噪音存在,為了后續更好地對瞳孔進行識別和定位,需要對灰度圖先去噪,平滑圖像。圖像去噪的算法很多,有雙邊濾波、均值濾波、中值濾波和高斯濾波等。經過實驗發現,本文采取高斯濾波算法的效果是最好的。高斯濾波是一種線性平滑濾波,主要用于消除高斯噪聲,一般應用于圖像處理過程的減噪。高斯濾波其實就是對整張圖像進行加權平均的一個過程,每一個像素點的值,都由其本身和鄰域內的其他像素值經過加權平均后得到。高斯濾波的具體操作是用一個卷積核(模板)掃描圖像中的每一個像素點,用模板確定的鄰域內像素的加權平均灰度值去替代模板中心像素點的值。將灰度圖I和一個高斯核進行卷積操作,公式如下:

其中*表示卷積操作,Gσ是標準差為σ的二維高斯核,定義為

經過高斯平滑后如圖3所示。圖像明顯平滑了不少,且噪音減少。

圖3 高斯濾波去噪
視頻圖像經過灰度處理和高斯去噪以后,為了凸顯目標區域瞳孔,需要繼續進行二值化操作。我們知道瞳孔的顏色和眼睛內其他區域的顏色是有明顯區別的,瞳孔更偏黑色,虹膜偏黑褐色,鞏膜總是白色的,要想準確地識別出瞳孔,需要選取一個合適的閾值把目標和背景區分來,因此二值化處理中閾值的選擇至關重要。目前閾值選取有全局固定閾值和局部自適應閾值兩種方法,本文采用了全局閾值函數來實現,圖像選取一個合理的閾值,當灰度級大于或等于閾值的像素點被標記為目標區域,否則為背景區域。經過選取多個閾值進行實驗發現,當閾值設置為9時,能準確提取瞳孔區域,這時的效果是最好的。二值化處理后的結果如圖4所示,我們的目標區域瞳孔在圖片中很容易被識別到。

圖4 二值化
然后對瞳孔上的所有輪廓進行檢測,本文利用openCV自帶的findContours函數實現輪廓檢測。然后在檢測到的輪廓中找尋最大輪廓,如圖5所示。

圖5 瞳孔輪廓
在上一步瞳孔最大輪廓檢測完成后,在此基礎上繼續畫出輪廓外接矩形。在已檢測到的最大輪廓基礎上,找尋外接矩形的左上角坐標()x,y以及矩形框的長w,寬h。通過w,h確定右下角坐標
( )
x+w,y+h。最后通過這兩個坐標點畫出矩形框,如圖6所示。

圖6 輪廓外接矩形
找到瞳孔外接矩形后,我們需要在矩形框內定位瞳孔中心點。我們先找到矩形框的水平中線和豎直中線,它們的交點即是瞳孔中心點(十字線的交點)。矩形框分為上,下,左,右四條線段。

其中像素點的坐標是非浮點數并且必須是整數,故涉及到坐標點的標注都使用int,表示整型。rows,cols是圖像的shape型,表示圖像的高和寬。定位后的瞳孔中心點位置如圖7所示。

圖7 瞳孔中心點定位
瞳孔中心點的位置確定后,眼睛的一系列運動狀態就是瞳孔中心點位置的變化。當眼睛往上看,水平線會上移;向下看,水平線會下移。眼睛往左邊看,豎直線會左移動;往右邊看,豎直線會右移動。本文實驗是人臉正對手機攝像頭平視拍攝的一段視頻里的右眼運動狀態的部分視頻序列。為了驗證該算法是否有效,我們選取了倆個人的右眼(分別為右眼1和右眼2)都從平視狀態開始,眼球分別朝不同的方向運動。當輸入為視頻時,瞳孔位置的變化一幀一幀地顯示出來,本文選取了其中幾幀的若干張圖片,這幾張圖片對整個的眼動過程具有代表性。如圖8、9所示,通過觀察十字線的上下左右移動以及瞳孔中心點的移動,可以追蹤到人眼的目光,即人眼動態追蹤。

圖8 右眼1實驗結果

圖9 右眼2實驗結果
本文對視頻圖像里的人眼運動狀態進行追蹤。對視頻先進行一系列圖像預處理操作方便后續對瞳孔位置的確定。再通過找瞳孔外輪廓,畫出輪廓外接矩形,確認矩形中的十字線位置,十字線交點即瞳孔中心點。觀察視頻圖像里瞳孔中心點位置變化,追蹤人眼視向。實驗結果表明,通過該算法可以較快觀察到視頻圖像中人眼轉動時瞳孔中心點和十字線位置的變化,從而對眼動方向進行追蹤。實驗證明該算法簡單有效,準確率較高。