• 沒有找到結果。

取出臉部顏色

三、 膚色偵測

3.3 臉部輔助膚色偵測

3.3.2 取出臉部顏色

當臉部偵測找到照片人臉位置時,會有個問題需要去解決,那就是 找到的位置到底是不是臉部。以目前技術來說,無法完全的確定偵測到 的位置一定是臉部,有時能會偵測到雜物,因此如何判別是否為臉部位 置是一個重要的工作。將臉部膚色取出則是另一個問題,如[10]利用圖 1 的方法取出臉部顏色,但其缺點也十分明顯,一旦臉部位置錯誤則會 降低偵測率。因此我針對的問題是如何判別找到的位置是否為正確的臉 部,以及正確的取出臉部的膚色。

Sowmya 等人[17]利用 Fuzzy Clustering 技術可以將圖片依照顏色分 割成不同的部分。利用此技術可以將不同顏色的群組分開,藉由此技術 加上我在之後所利用的判別是否為臉部膚色的方法,可以有效的取出臉 部的顏色。針對使用的方法,最初採用的是 Fuzzy c mean (FCM),但對 於 FCM 來說,如圖 7(d),膚色很容易分成好幾個群組,為了避免這類 過度分割的問題,我們使用的是 Possibilistic C Mean(PCM),它可以將 近似的群組結合在一起,如圖 7(e),如此只需要確定哪一個群組接近膚 色就足夠了。

圖 7:臉部截取圖,(a)為原圖,(b)為偵測到的臉部區塊,(c) 是利用橢圓取出的區塊,(d)是 FCM 處理過後的結果,(e) 則是 PCM 處理後的結果,(f)是(e)圖中各群組所佔整個橢圓 區塊的比例

我們利用 Krishnapuram 和 Keller[18]提出的 PCM 的流程來區分群 組。PCM 使用的特徵一樣為 YCbCr 顏色空間的顏色,首先將 3.3.1 取 得的臉部以橢圓型方式取出重要部分,如圖 7(b)與 6(c),主要是因為在 一般臉部可視為橢圓形。當偵測出位置時利用橢圓形能夠去除較多不必 要的雜訊。

首先算出 FCM(圖 8 第一項)的 u 以及 c 值,其流程如圖 8,其中 u 為 relationship,算法為

 

圖 8:Fuzzy C Mean 流程圖

圖 9:Possibilistic C Mean 流程圖

初始化 c

利用公式(6)算出新的 u

利用公式(7)算出新的 c

判斷UkUK1或是 迴圈大於 200 則離開

結束

初始化先使用 Fuzzy C mean(圖 7)算出 c 和 u

利用公式(9)使用 c 和 u 推算出η

使用公式(10)算出新的 u 然後利用公式 8 計算

判斷UkUK1或是 迴圈大於 200 則離開

結束

少會大於整體面積的 1/5(如圖 7(e)(f)所示),藉由此可以去除掉一些雜訊 所帶來的群組,接著算出其 dist,算式為

) (uj mi w 2

dist

i (11),

其中mi

表 i 的平均值,而 i 表兩種組合(亞洲人跟白種人的混合以及黑 人),j 則是表示各群組,w

則是加權值,用以減低亮度的影響性。dist 之所以不使用 Mahalanobis distance 的原因主要是因為單純使用[Cb Cr]

對於判斷頭髮等群組時,因為有些髮色的[Cb Cr]平均值為膚色的機率較 高,容易造成誤判,加上群組雖然利用 PCM 分群,但多少會加入眼白 或是嘴唇的部份,所以其平均值多少會有所偏向。將各群組 dist 算出 後,首先是將 dist 太大的群組去除,使用

b b a

a ordist

dist (12)

來判斷,其中 a 表示亞洲人跟白種人的混合b表示黑人,是限定值。

分成 2 種的原因在於亞洲人跟白種人較類似,而黑人與其他 2 種的亮度 差距較大。當符合公式(12)後則確定其是膚色。當有 2 個群組以上符合 公式(12)時利用圖 10 的流程圖,首先互相比對 a 和b的 dist,比較的此 值的原因是因為愈小齊為膚色機率愈大。當其中一個小於暫定組別時再 比較 a 和b的 dist 的相加,比較的此值的原因是因為 a 和b的差別是在 亮度,所以這 2 個值基本不會相差太多,愈小的愈像膚色。若又小於暫 定值時則決定此組別為新的暫定值。當所有比較完後就由暫定值的組別 視為膚色組別。

利用上述的方式可以得到臉部膚色的群組,接下來將此群組的所有 像素算出其平均值,而共變異數(covariance) 則採用 3.2 訓練資料的數 值,原因是臉部顏色的變化量較小,在偵測其他部位時無法有效的算 出,因此使用原本的共變異數以增加偵測範圍。接下來即可利用此平均

11(b)是用 3.3.1 偵測到的臉部,圖 11(c)則是利用 PCM 加上公式(12)所 決定的臉部膚色,圖 11(d)為利用圖 11(c)的資訊後代入公式(3)所得的膚 色機率。

圖 10:處理 2 組以上通過限定值的流程圖

2 組以上小於

找到小於前一群 組的dist 或a distb

比較完所 有群組

比較(distadistb)是 否小於前一群組

暫定此群組為膚色 確定此群組

為膚色

後取得的臉部膚色,(d)膚色機率圖

相關文件