探究影像辨識裡的臉部偵測技術(一)

本文作者:admin       點擊: 2007-03-14 00:00
前言:
富士(Fujifilm)相機最近的廣告主打臉部定焦功能,讓臉部影像拍攝起來更清晰。這功能對許多人來說是實用且有需要的,但是其簡單操作後的隱藏技術卻是錯綜複雜不是那樣容易。在本文裡面,我們將一探臉部偵測技術的使用原理與相關技術,這些方法裡面有些稍做改良便可應用在數位相機或數位攝影機裡面,也藉由技術的相關討論,我們也可以體會到「一將功成萬骨枯」的震撼。 

圖片來源:恆昶實業網站


臉部辨識─未來最生活化的科技
不論在人機介面(human computer interface)、家庭視訊保全(home video surveillance)或是生物偵測之臉部辨識及其影像資料庫管理技術,人類臉部偵測與辨識技術,在許多辨識應用(identification applications)占有日益重要的應用角色。為了要讓臉部辨識(face recognition)的辨識率更高,臉部位置的偵測便位居關鍵地位,不過在目前許多臉部辨識的演算法,其均假設臉部位置是已知的情況。這種情形也常發生在臉部追蹤(face tracking)應用上面,他們也通常是在假設臉部起始位置已知的情況下進行。因此為使其系統具備連貫性,往往需要結合多種演算法始能完成任務,但這也造成系統複雜度增高與處理上可能無法最佳化的問題。

有人將臉部的偵測(face detection)可以視為是一種分類問題,其主要功能在於判別輸入之單一影像內是否存在臉部區域,如果存在則進一步確定臉部位置。換句話說,區分臉部區域與非臉部區域之所在為臉部偵測的第一步。因此臉部定位(face localization)只是臉部偵測的一個其中步驟而已。而為了辨識人類臉部位置,目前已經發展出一些常用的判斷方法,例如:整體/模版方法(holistic/template approaches)、特徵依存性方法(feature-based approaches)以及這兩種方法的混用模式(hybrid model)。不過混用模式在處理上有其限制,不但運算成本高且無法大量處理臉部影像的變異部分。在最近這幾年裡,常被所使用的臉部偵測技術主要有:主分量分析(Principal Component Analysis,PCA)、色彩分析技術(color analysis)、霍氏轉換(Hough transform)、類神經網路(neural networks)、移動擷取(motion extraction)、模版配對(template matching)、資訊理論(information theory)、機器學習(machine learning)、幾何模型(geometrical modeling)、統計量式的分析(statistic-based analysis)…等等這幾種,一般可概分成「觀視法(view-based approaches)」、「統計法(statistic)」與「學習法(learning-based approaches)」三大類。

其中觀視法與學習法中的類神經網路方法,都需要大量的臉部及非臉部影像訓練資料,並且其辨識影像有些限制,大多只能侷限在正面的灰階影像。因此一些人就以其他方法來作為辨識臉部位置的方法,例如:A.Colmenarez及R. FeAraud等人便利用移動擷取(motion extraction)的方式來辨識臉部位置;或者M. Abdel-Mottaleb、K. Sobottka及C. Garcia等人則使用膚色(skin-tone color)來作為偵測人臉是否存在的依據。但是這種依據膚色的臉部偵測方法存有很多困難有待解決,例如:複雜背景的克服、光線條件的問題(即是不同色溫問題)、偽面具辨識抵抗與膚色變異度之範圍等問題。

因此這些演算法各有優、缺點,目前廣為大家所採用者應算是「特徵式(feature-based approaches)」的方法,其利用臉部幾何特徵(geometrical facial feature)來分別臉部區域與非臉部區域的視覺資料(visual data)。這種使用臉部幾何特徵的偵測方式,對於用來偵測不同姿勢的臉部位置有很大的助益。不過為使臉部偵測與辨識達到較高精確度與成功率,一些不同演算法常會被結合起來一起運用。例如:在偵測正面臉部灰階影像裡面,幾何臉部模版(geometrical facial templates)便常與霍氏轉換(Hough transform)一起搭配使用;而M. GrudinLam及K. M. Lam則將整體性(holistic)方法與特徵式(feature-based)方法結合,用來作為臉部偵測及辨識臉部位置的方法。利用整體性(holistic)演算法表現來作為臉部偵測方法的分類是有一些優點存在的,例如:可以在較差的影像品質中搜尋臉部,或是可找尋到更小的臉部樣本。另外一種臉部偵測/辨識技術則是使用統計量的辨識方法,例如:A. J. Colmenarez、T. S. Huang、D. Maio及D. Maltoni等人所提議的技術。這種方法主要是依據灰階像素在空間上的排列關係,以馬可夫鏈(Markov chains)或馬可夫隨機場(Markov random fields)來作為臉部偵測的依據。

許多人講到臉部偵測,第一個直覺想法便是用數學上的橢圓特性來作為偵測依據或者利用膚色偵測方法為之。這是人之常情,因為一般人的臉形大多呈現橢圓型。因此如何找出影像中具備橢圓形狀的物體,是臉部偵測一項很重要的工作也是很直覺的方法。在許多臉部偵測的方法裡,數學橢圓的搜尋方式便是其中一種方法。然而找橢圓的方法有許多種,最直覺的方法就是空間參數式的作法,如果令為橢圓的橢心座標,則一個橢圓可以下式表示:



如果任選橢圓上的四個邊點A、B、C、D,並作與此四邊點相切之四條切線,並相互交於N、O、P、Q四點,若設四邊點之線段中點為,i=1,2,3,4,則四邊點之切線交點與四邊點線段中點之連線(例如下圖的及)會通過橢心。如圖一。

圖1、一個數學上橢心的求法,每條切線交點與切點連線中點之直線亦將通過橢心。



因為圖1中的切線交點,與邊點連線線段中點的座標是可以求出的,因此通過橢心的及直線方程式可利用兩點式求得。例如:N點座標為而座標為,則方程式可以利用下式解出:

  
                     
 
或者方程式亦可用的聯立方程式得出。同理,直線方程式也可藉此類似方法求出。有了及直線方程式之後,解其聯立解便可得橢心座標。在數學理論上,不管是用此四個切線的哪一個交點與其邊點線段中點連線均會通過橢心,但事實上,在數位影像處理裡面,這些不同邊點之連線方程式求出的橢心位置卻不見得一樣(因為數位計算會有誤差,例如:只計算到小數點後第三位),因此我們對於不同橢心位置還要設計一套方法來檢測他們是否夠接近。只要影像中存有這些類橢圓區域存在,那便表示了影像中有極大可能存有臉部區域,此時為了進一步驗證,我們往往會需要其他臉部特徵(包含全域特徵與局部特徵)來作為驗證方式。

事實上,許多關於臉部偵測的研究,乃基於電腦圖學在物體辨識(object recognition)上的研究而來。這些模型式(model-based)或是表象式(appearance-based)的物體辨識方法,往往將目標假設成剛體物件(rigid objects)。這種假設將使該物體上的光照條件與相機的攝影角度和真實生活裡人臉的條件不同。臉部的偵測可視為一種辨識的分類問題,那就是在區別臉部區域與非臉部區域,這種分類技術可以推廣到許多不同的辨識問題上面。不過臉部偵測技術在模式辨識(pattern recognition)及學習技術上仍存有爭議,當一個原始資料(raw data)或是經過濾器處理後之影像進入到模式分類器(pattern classifiers)時,其所具有的特徵空間(features space)是非常大的,而臉部區域與非臉部區域的分類乃根據多形分布函數(multimodal distribution functions,MDFs)以及在那些色彩空間中的非線性邊界決定機制所提供的特徵化資料為主。因此為了讓分類器達到有效的執行,分類器必須能從這些大量的訓練資料裡面進行適當的外推(extrapolate)邏輯運作,或是有效的處理這些高維度的訓練資料。

而影響到臉部偵測成功的因子有「臉部表情(facial expression)」、「姿勢(pose)」、「影像方位(image orientation)」、「結構性元件(structural components)的存在與否」、「影像解析度(image resolution)」以及「其他造影條件(imaging conditions)」…等等。臉部偵測(facial detection)與臉部定位(facial localization)是有重疊之處的,後者可視為前者的一部份集合,其為臉部偵測的簡化應用,主要假設是輸入影像只有一張臉孔存在。另外一種臉部方面的生物辨識應用就是「臉部特徵偵測(facial features detection)」,其主要假設是輸入影像內只存在一張臉譜,並得偵測其臉部的局部特徵是否存在,例如:眼睛、耳朵、鼻子、嘴巴、嘴唇…等等特徵。但若是要在輸入影像內辨識使用者或是識別身分,其主要為「臉部辨識(facial recognition)」以及「臉部識別(facial identification)」的應用領域。如果是要驗證某人的身分單一性,則使用的是「臉部驗證(facial authentication)」技術,其用來驗證輸入影像的人與電腦中所認同的使用者是否為同一人。前面這些技術大多屬於單一輸入影像內的應用技術,如果要即時(real-time)對一連串的影像序列中(例如:視訊)對人臉部分進行位置與臉部方向進行評估,那使用的技術則稱為「臉部追蹤(face tracking)」方法。

臉部偵測的方法
但不管是靜態臉部應用技術或是動態臉部追蹤,臉部偵測是應用的第一步。目前有許多臉部偵測方法被提議出來,這些方法有些可在一定光強度(intensity)或彩色影像內偵測臉部是否存在。在1991年以前的臉部辨識方面技術研究集成,可以參考1992年A. Samal及P. A. Iyengar的相關研究論述。在許多臉偵測的方法裡面,學習式演算法(或稱為「資料驅動方法(data-driven methods)」)因可提供良好的偵測結果展示,所以儼然成為近幾年此方面研究的顯學。但是學習式演算法在建立及訓練系統之初,需要非常多的訓練樣本資料,因此這種演算法往往都需要搭配專門的影像資料庫來使用。

效能評估方法是在臉部偵測或辨識問題上面另一個重要的討論議題,在這些評估方法裡面,幾乎每一種方法都會使用的評估項目主要有兩個,一個是「偵測率(detection rates,DR)」的比較,另一個則是「錯誤警告率(false alarm rates,FAR)」。在此所謂的偵測率,乃指機器能正確偵測臉部的數目與經由人類視覺偵測臉部的數目,其百分比便稱為偵測率。

其中DR表示偵測率,表示機器所能正確辨識臉部的數目,表示人類所能正確辨識臉部的數目。因此偵測率與影像中的人臉完不完全沒有太大關係,因為只要人眼可辨識影像中人臉的存在,那機器也就要能偵測。不過這似乎不太可能,因為機器視覺的極限與目前人類眼睛的極限還有一段落差。為了達到夠好的偵測率,因此許多實作會加入限制條件作為成功偵測與否的依據。常見的限制條件例如:影像中的人臉部分只要暴露超過其全部臉部區域的1/2,那機器就要能偵測。暴露區域若小於1/2以下,機器就算沒偵測到人臉也不影響其偵測率,該次偵測亦算是成功的偵測。

由此可知,評估方法之所以會成為辯論焦點,主要在於許多評估項目的定義與程序並未國際標準化(例如:或許有人認為成功偵測的條件是臉部暴露區域要達2/3上才算,而非1/2的門檻),因此每人所談的效率評估不見得基於同一水準。一些常見的效能評估項目包含:訓練系統所需要的樣本數、學習時間(learning time)、執行時間(execution time)與成功偵測與錯誤結果之間的比例高低(即DR)…等等。因此要適妥評量偵測器,就必須先要瞭解偵測器的可能錯誤為何。一般偵測器(detectors)常犯的錯誤類型有兩種,一種是「陰性錯誤(false negative)」,另一種是「陽性錯誤(false positive)」。

對一個臉部偵測系統的評估,其方法裡面應包含偵測器所可能發生的陰性錯誤與陽性錯誤的考量,因為這兩種偵測器錯誤會嚴重影響到偵測成功率(detection rates)與錯誤警告率(false alarm rates)。在此所謂的陰性錯誤,指系統本身的偵測成功率不高,使得有目標存在但未被偵測器偵測出來;相反的,陽性錯誤係指系統誤判的情形,即是成功偵測目標存在,但該目標卻非真正目標的情形。明白這些觀念,會幫助我們的設計更逼近事實。

單一影像內之臉部偵測
臉部偵測可分成單一影像內之臉部偵測與視訊中的臉部偵測,在此為將問題簡化,我們侷限在單一影像內之臉部偵測技術的探討。一般在單一影像中用來偵測臉部的方法,主要可分成四種類別:模版配對法(template matching methods)、表象法(appearance-based methods)、特徵不變法(Feature invariant approaches)與知識法(knowledge-based methods),這些方法的細項可參考表1。

關於這些方法的運作方式與簡要原理,其仍有可深究之處,例如:在模板配對方法裡,便是需要一個標準模板的存在,以利系統比對之用。因此在模版配對的方法裡,首先需要先建立一個標準的臉部樣本。關於這些方法的運作細節,我們留待下期為各位說明。

電子郵件:look@compotechasia.com

聯繫電話:886-2-27201789       分機請撥:11