3.1 眼睛及嘴唇臉部平面特徵點的擷取
3.1.1 參考影像的臉部特徵點擷取
首先根據Face1
( )
x,y 計算參考影像臉部區域的中心點(
x1, y1)
及長短軸方向1 1,m Mv v
,然後根據長短軸方向將臉部區域轉正得到NFace1
( )
x,y ,其中 FHeighty FWidth
x≤ ≤ ≤
≤ ,1
1 ,並從轉正後的臉部區域取出內部破洞區塊
( )
x yH1 , ,如圖 3.1 所示,之後統計H1
( )
x,y 中每條掃瞄線的內部破洞點個數,令 為( ) ∑ ( )
=
=FWidth
x
y x y
HCount
1 1
1 δ , ,其中當H1
( )
x,y =0時,δ1( )
x,y =1;否則δ1( )
x,y =0。 如圖 3.2 所示,可以觀察到HCount1( )
y 在眉毛、眼睛、鼻孔或嘴唇的高度會形成 尖峰值(Peak Value),因此利用該資訊將眼睛及嘴唇可能出現的高度找出來,各 令為y= yEY及y= yM。圖 3.1 轉正後臉部區域 內部破洞H1
( )
x,y圖 3.2 轉正後臉部區域中每條掃瞄線的內部破 洞點個數HCount1
( )
y由於臉部區域內的特徵區塊之亮度值較皮膚區塊低,假設臉部特徵區塊的面 積佔整個臉部區域的 10%,因此從臉部區域取出亮度值最小、比例個數在前面 10%的像素點,並根據亮度值對這些像素點由小到大做排序的動作,令臉部區域 的亮度值影像為I
( )
x,y ,臉部區域面積為 A ,利用以下方式對像素點做排序:這些像素點在臉部區塊中會集結成數個區塊,而這些區塊中某些便是我們所 要的臉部特徵區塊,因此先找出這些像素點集結而成幾個區塊,並從這些區塊中 利用臉部特徵的對稱性找出所要的左右眼及嘴唇特徵區塊,首先對這些像素點進 行區塊標號(Component Labeling )的動作,如下列流程:
(1) 初始化P=Φ,M =0、N = A×0.1
(2) 以 Row Scan 方式( y 為 Row 的索引值)判斷臉部區域內部的每個點
( )
x,y是否要加到 P 串列。若 P 串列的個數 M 已經達到N,則勢必有一個像素 點要捨棄(Case2);否則直接加入即可(Case1)
Case1、 M <N
以 Reverse Sequential Search 找出最大的 i 使得
(
x y) ( )
I x yI i, i ≤ , ,若i=M 則
( )
x,y 附加到(
x ,i yi)
之後;否則( )
x,y插入到
(
x ,i yi)
和(
xi+1,yi+1)
之間,並且M = M +1 Case2、 M =N若I
(
xN,yN) ( )
>I x,y,則以 Reverse Sequential Search 找出最大的 i 使得I(
xi,yi) ( )
≤I x,y,將( )
x,y 插入到(
x ,i yi)
和(
xi+1,yi+1)
之間並 捨棄(
x ,N yN)
;否則捨棄( )
x,y(3) 最後得到P=
[ (
x1,y1) (
x2,y2)
L(
xN,yN) ]
串列,其中(
xi yi)
I(
xj yj)
I j
i≤ ⇒ , ≤ ,
接下來,將利用臉部特徵具有的性質,從區塊串列C=
[
C1 C2 L CN]
中若有多組區塊配對符合上述條件,則取最接近y= yEY的區塊配對作為左右眼的 特徵區塊;對於嘴唇特徵區塊而言,從C中選取區塊CM,其中M∈
{
1,2,...,N}
, 使得該區塊符合以下條件:1. 寬度皆為臉寬的 1/5 以上
2. 長軸方向和左右眼中心點連線方向接近平行
若有多個區塊符合上述條件,則取最接近y=yMouth的區塊作為嘴唇的特徵區塊。
左右眼特徵區塊CREY、CLEY及嘴唇特徵區塊CM選取出來之後,便可利用區 塊中統計的資訊找出所要擷取的臉部特徵點,若要擷取眼睛區塊的內外眼角特徵 點,則沿著眼睛特徵區塊CREY、CLEY的長軸方向往兩側尋找 Isolated 點作為眼角 特徵點,令為pREYO、pREYI、pLEYL和pLEYO;若要尋找嘴唇區塊的嘴角特徵點,
則從嘴唇特徵區塊CM中尋找內部的 Intensity Branch Point,若將該點移除的話,
則特徵區塊塊會產生分裂的情況,取分裂之後的子區塊之左右端點作為左右嘴角 特徵點,令pRM和pLM。