第三章 研究方法
3.2 系統架構
本研究系統架構如圖 11,自攝影機讀取影像後,會經過五大處理步驟:
(1)前處理(Preprocessing),包含灰階轉換及伽馬校正等。
(2)人臉偵測(Face Detection)。
(3)人眼偵測(Eye Detection)。
(4)眼睛特徵擷取(Eye Feature Extraction),包含瞳孔偵測及眼睛開 合幅度偵測等。
(5)注視區域決策(Gaze Point Determination)。
圖 11 系統架構
(1) 3.3 前處理(Preprocessing)
前處理部分針對減少運算時間及增加影像上細節部分的凸顯做(1)灰階 化,及(2)伽馬校正兩個步驟,步驟流程如圖 12。
圖 12 前處理步驟流程圖
3.3.1 灰階影像轉換
由於眼睛在影像上具有非常強烈的黑白對比變化,為減少計算複雜度及運 算時間,在本研究中使用灰階影像來做後續運算。
針對每一 個輸 入影像𝐼𝑐𝑐𝑐𝑐𝑐進行灰階 影像 的轉換,轉換公式參考 ITU-R BT.601-7[1]定義如(1):
𝐼𝑔𝑐𝑔𝑔(𝑥, 𝑦) = 0.299 ∗ 𝐼𝑅(𝑥, 𝑦) + 0.587 ∗ 𝐼𝐺(𝑥, 𝑦) + 0.114 ∗ 𝐼𝐵(𝑥, 𝑦)
其中𝐼𝑔𝑐𝑔𝑔(𝑥, 𝑦)為𝐼𝑐𝑐𝑐𝑐𝑐上(𝑥, 𝑦)位置的像素值經過轉換後的結果,𝐼𝑅、𝐼𝐺、𝐼𝐵分別 表示紅、綠和藍各個通道的影像。
(2) 3.3.2 伽馬校正
伽馬校正是針對光線強度做非線性的運算,將黑暗中的細節部分表現得較 為清楚,本研究在偵測臉部區域前,先將灰階影像進行伽馬校正。伽馬校正可 由計算輸入影像的冪次方獲得,公式如(2):
𝐼𝑔𝑔𝑔𝑔𝑔(𝑥, 𝑦) = 𝐼𝑔𝑐𝑔𝑔(𝑥, 𝑦)𝐺
其中𝐼𝑔𝑔𝑔𝑔𝑔為經過伽馬校正後的影像,𝐺為可依輸出環境調整之伽馬校正參
數,0 ≤ 𝐺 ≤ 1。
圖 13 為影像經過伽馬校正前後的影像比較,可以看到經過校正後眼睛邊 緣及虹膜的部分被明顯的表現出來。
圖 13 伽馬校正 (a)校正前之眼睛影像 (b)校正後之眼睛影像
3.4 人臉偵測(Face Detection)
人臉偵測在電腦視覺以及影像處理的領域上已經有相當大量的研究產出,
如 2.1 節所述。為了實現快速且準確地在一張影像上搜尋出人臉,本研究使用 Viola 與 Jones[28]所提出的演算法來進行人臉偵測。人臉偵測流程如圖 14。
(3)
(4)
(5)
圖 14 人臉偵測流程圖
3.4.1 積分影像(Integral Image)
為了提升影像處理的速度,Viola 與 Jones[28]提出的積分影像方法,讓影 像可透過較簡單的運算方式取得每一個影像上位置的像素值。
對於一張積分影像𝐼𝑖𝑖𝑖𝑖𝑔𝑐𝑔𝑐上位於(𝑥, 𝑦)位置的點(圖 15),其值可用左上方 所有像素值的總和來表示。積分影像即:
𝐼𝑖𝑖𝑖𝑖𝑔𝑐𝑔𝑐(𝑥, 𝑦) = � 𝐼𝑔𝑐𝑔𝑔(𝑥′, 𝑦′)
𝑥′≤𝑥,𝑔′≤𝑔
其中𝐼𝑔𝑐𝑔𝑔為輸入的灰階影像,(𝑥′, 𝑦′)為𝐼𝑔𝑐𝑔𝑔影像上 X 座標為𝑥′,Y 座標為𝑦′的位 置。然而,積分影像可以透過簡單的遞迴式快速計算完畢,即:
𝑠(𝑥, 𝑦) = 𝑠(𝑥, 𝑦 − 1) + 𝐼𝑔𝑐𝑔𝑔(𝑥, 𝑦)
𝐼𝑖𝑖𝑖𝑖𝑔𝑐𝑔𝑐(𝑥, 𝑦) = 𝐼𝑖𝑖𝑖𝑖𝑔𝑐𝑔𝑐(𝑥 − 1, 𝑦) + 𝑠(𝑥, 𝑦)
其中𝑠(𝑥, 𝑦)為影像累積的像素值。
圖 15 位置(𝑥, 𝑦)之積分影像值為灰色區塊相加
圖 16 灰色區域內之積分影像可透過𝑖4+ 𝑖1− 𝑖2− 𝑖3計算獲得
3.4.2 矩形特徵(Haar-Feature)
Viola 與 Jones[28]所提出的人臉偵測方法中,依據積分影像概念生成數個 矩形特徵(圖 17),這些矩形的大小不一定相同,但灰色區域面積和以及白色 區域面積會一樣大。將這些矩形如同遮罩一般在影像中移動計算積分影像的矩 形特徵值,並且利用 AdaBoost 演算法找出適合用於分類的重要矩形特徵。圖 18 為利用 Viola 與 Jones[28]所提出之 AdaBoost 演算法找出適合人臉的矩形特 徵範例。
圖 17 矩形特徵之範例
圖 18 利用 AdaBoost 演算法找出人臉的矩形特徵範例
3.4.3 階層式分類器(Cascade Classifier)
階層式分類器可讓 AdaBoost 演算法更有效率地進行,其主要概念為結合數 個分類器成為一個強分類器,如圖 19 所示。在階層式分類器中,越前面的分類 器計算較為簡單但辨識度較低,而越後面的分類器計算較為複雜但辨識度較 高。先利用辨識度較低的分類器快速過濾掉非人臉的影像,後面的分類器雖計 算複雜但所需處理的區塊量相對減少很多,因此階層分類器能夠兼顧到運算速 度與準確率兩部分。
圖 19 階層式分類器示意圖,T 表示判對結果可能為人臉,F 表示判斷結果為非人臉
3.5 人眼偵測(Eye Detection)
透過 3.4 節之人臉偵測方法得到原始輸入影像中的人臉位置後,需要再將 範圍縮小到眼睛區域附近,才可進行後續的眼睛特徵擷取。人眼偵測流程如圖 20,利用 3.4 節提到之矩形特徵替換為適合眼睛的矩形特徵,階層式分類器改 為眼睛分類之決策,再搭配積分影像之技術可以達到快速尋找人眼位置。
圖 20 人眼偵測流程圖
此外,由於人臉五官之間相互的距離有一定的比例,故人眼的搜尋範圍不 需要涵蓋整張人臉,可將搜尋範圍縮小在上半臉,以提升搜尋速度。縮小之範 圍示意圖如圖 21,其中
𝐹𝑎𝑎𝑎ℎ𝑖𝑖𝑔ℎ𝑖為 3.4 節提出之方法偵測到的人臉高度。
𝐹𝑎𝑎𝑎𝑥及𝐹𝑎𝑎𝑎𝑔分別代表相對於整張影像來說,偵測到的人臉區域最左上角之 X 座標及 Y 座標位置。
𝑊ℎ1及𝑊ℎ2為實驗設定之參數,本研究設定為𝑊ℎ1 = 0.25,𝑊ℎ2 = 0.33。
縮小眼睛搜尋區域之實際影像結果如圖 22 所示。
圖 21 縮小眼睛搜尋區域示意圖,灰色虛線內為人臉區域,紅色虛線內為縮小後的搜尋範圍
圖 22 眼睛偵測結果,(a)臉部影像 (b)縮小眼睛搜尋區域結果 (c)偵測出之眼睛影像
3.6 眼睛特徵擷取(Eye Feature Extraction)
取得眼睛影像後,會進行眼睛區域的特徵結取。眼睛特徵擷取流程如圖 23,本研究將主要擷取的眼睛特徵分為兩大類:(1)形狀特徵(眼睛開合高
(6) 度、上眼瞼斜率)及(2)位置特徵(瞳孔位置)。後續將依據不同特徵的不同 性質,來設計進行注視區域的分析。
圖 23 眼睛特徵擷取流程圖,紫色框內為位置特徵擷取,藍色框內為形狀特徵擷取
3.6.1 光線濾波器(Lighting Filter)
光線的干擾對於偵測方法是一大挑戰,許多方法利用色彩空間的轉換,來 避免光線造成的影響,例如 YCbCr、YIQ 或是 HSV 等色彩空間。然而,眼睛是黑 白強烈變化的部分,故本研究直接針對灰階影像進行光線過濾的動作,其過濾 方法如(6)所示:
𝐼𝑓𝑖𝑐𝑖𝑖𝑐(𝑥, 𝑦) = �𝐼𝑔𝑐𝑔𝑔(𝑥, 𝑦), 𝑖𝑖 𝐼𝑔𝑐𝑔𝑔(𝑥, 𝑦) < 𝐺𝑟𝑎𝑦𝑔𝑖𝑔𝑖
𝐺𝑟𝑎𝑦𝑔𝑖𝑔𝑖 , 𝑜𝑜ℎ𝑎𝑟𝑒𝑖𝑠𝑎 ,
其中𝐼𝑓𝑖𝑐𝑖𝑖𝑐為經過光線濾波後的影像,𝐺𝑟𝑎𝑦𝑔𝑖𝑔𝑖為眼睛區域內像素統計的平
均值,0 < 𝐺𝑟𝑎𝑦𝑔𝑖𝑔𝑖 < 255。
由於一般室內光線由上往下照時,因為臉部結構的差異會造成眼睛區域與 周圍反射的燈光強度不同,取平均值過濾表示將過強的光線值濾掉。經過光線 濾波的影像如圖 24,處理前鼻樑區域及右眼角部分膚色較亮,但左眼周邊膚色 卻相對顯得較暗;經過光線濾波處理後的影像膚色部分會呈現較一致的效果,
也仍然保留有眼睛的區域資訊。
圖 24 光線濾波(a)前、(b)後影像變化
3.6.2 瞳孔偵測(Pupil Detection)
眼睛的成像原理是由於光線經過瞳孔進入眼睛,再經由水晶體後成像在視 網膜上,故在觀察眼睛視線所在時,可透過觀察瞳孔的位置來作判斷。在眼睛 的構造上,虹膜及瞳孔為兩同心圓,且瞳孔的顏色較虹膜深,因此我們可利用 虹膜及瞳孔灰階梯度方向內積來找尋瞳孔的位置。
本研究以 Fabian Timm 與 Erhardt Barth[26]所提出的演算法作為基礎,
然而此一演算法可能受到不均勻光線以及睫毛陰影的影響,故本研究利用的 3.6.1 提出的光線濾波方法,先將影像經過前處理,並針對內積給定權重值的 部分加以改善,以期達到更精準的偵測結果。
(7) 令c為一個可能的候選瞳孔點,𝑥𝑖(𝑖 ∈ 1, … , 𝑁)為眼睛灰階影像上的任一 點,𝑑𝑖為c點之單位灰階梯度向量,𝑔𝑖為𝑥𝑖上之單位灰階梯度向量,如圖 25。
圖 25 瞳孔位置偵測示意圖,灰色部分視為虹膜區域, 𝑑𝑖與𝑔𝑖方向(a)相異(b)相同
根據數學中向量內積的意義,在不考慮正負符號情況下,若兩向量角度差 為0°或180°做內積運算會有最大的數值。觀察眼睛影像可得瞳孔與虹膜呈現放 射狀的顏色變化,故計算每一個𝑑𝑖與所有𝑔𝑖的內積和,最佳瞳孔位置𝑎∗即為可 產生內積和最大的c。
此外,由於瞳孔相較於眼睛其他的部份是屬於灰階值較低的區塊,由此一 特性可將每一個c乘上一個權重值𝑒𝑐,表示灰階值越低的地方較有可能是瞳孔的 位置所在。本研究利用前一節光線濾波處理時所計算出的眼睛區域平均灰階值 𝐺𝑟𝑎𝑦𝑔𝑖𝑔𝑖來加強權重的部分,將灰階值大於𝐺𝑟𝑎𝑦𝑔𝑖𝑔𝑖的像素權重𝑒𝑐訂為 0,削 弱其對於整體瞳孔位置判斷的影響。圖 26 為利用本研究瞳孔偵測演算法偵測出 之瞳孔位置,白色圓圈標示之位置即為瞳孔位置。瞳孔計算方式及權重設定方 式如(7)~(9):
(8)
29
二值化公式如(17):
𝐼𝑏𝑖𝑖𝑔𝑐𝑔(𝑥, 𝑦) = �0, 𝑖𝑖 𝐼𝑔𝑐𝑔𝑔(𝑥, 𝑦) < 𝑇 1, 𝑜𝑜ℎ𝑎𝑟𝑒𝑖𝑠𝑎
圖 27 比較三種不同門檻值設定方法所得到的二值化影像,圖 27(a)設定門 檻值過高,得到的二值化影像範圍較大,且無法較精準的掌握眼睛輪廓;圖 27(c)設定門檻值過低,僅能顯現出部分虹膜區域,亦無法掌握眼睛輪廓;圖 27(b)利用 Otsu 提出的方法取得較適合的門檻值,可以看到二值化的結果將眼 睛區域的輪廓突顯得較為完整。
另外,由圖 28 可以看到,經過 3.6.1 提出之光線濾波處理後,使得原本膚 色變化很大的部分變得較為一致,也使得二值化的結果能將眼睛輪廓部分明顯 表現出來,對後續取得眼睛開合幅度特徵有非常大的幫助。
圖 27 不同門檻值之二值化影像,(a)門檻值過高、(b)門檻值適中、(c)門檻值過低
圖 28 二元化影像比較,(a)光線濾波前、(b)光線濾波後 之二元影像
(18) 3.6.4 眼睛開合幅度
由於人眼注視於螢幕上不同的垂直高度位置時造有眼睛開合幅度上的不 同,在本研究中利用眼睛開合高度以及上眼瞼的斜率兩種特徵來幫助注視區域 之決策。
眼睛開合高度擷取方法示意圖如圖 29,利用二元影像中分別由上而下搜尋 邊緣,找到眼睛最高的一點;以及由下而上搜尋邊緣,找到眼睛最低的一點,
以兩者的水平高度差做為眼睛開合高度特徵。
圖 29 眼睛開合高度擷取示意圖
上眼瞼斜率利用[33]所提出的方法計算,在二元影像中由上而下搜尋邊 緣,找到眼睛最高的一點𝑎1,接著由左向右𝑒個像素,往下尋找另一個邊緣𝑎2, 上眼瞼斜率計算方式示意圖如圖 30。
𝑆𝑐𝑐𝑐𝑐𝑖 = 𝑒
�𝑎1𝑦− 𝑎2𝑦�
其中𝑆𝑐𝑐𝑐𝑐𝑖即為上眼瞼形狀的斜率,本研究取𝑒 =10。
(19)
圖 30 上眼瞼斜率計算方式示意圖
3.7 注視區域分析(Gaze Estimation)
由於眼睛在注視螢幕上不同高度的位置時會有較明顯的形狀改變,故本研 究在注視區域決策的部分設計出先利用形狀特徵做初步判斷可能的注視範圍,
由於眼睛在注視螢幕上不同高度的位置時會有較明顯的形狀改變,故本研 究在注視區域決策的部分設計出先利用形狀特徵做初步判斷可能的注視範圍,