摘要:提出了一種利用BP神經網絡仿真、利用貝葉斯決策修正仿真結果的人臉檢測方法。討論了單純使用BP神經網絡作人臉的檢測判定的不足,并在此基礎上提出利用貝葉斯決策對神經網絡的仿真結果進行第二次判定的方法。共使用MITEx人臉庫的4 000個人臉與非人臉圖像進行實驗分析,正確率平均提升了3.63%,表明了神經網絡的良好判定性能和使用貝葉斯決策進行修正的有效性和必要性。
關鍵詞:人臉檢測; 反向傳播神經網絡; 仿真; 貝葉斯決策
中圖分類號:TP183;TP391.41文獻標志碼:A
文章編號:1001-3695(2007)08-0198-03
人臉識別是指基于已知的人臉樣本庫,利用圖像處理和模式識別技術從靜態或動態場景中,識別或驗證一個或多個人臉。人臉識別技術在國家重要機關及社會安防領域具有廣泛而特殊的用途。人臉識別技術還可應用于多媒體數據庫的視頻檢索以及多媒體制作方面。近幾年,基于人臉識別技術的表情信息提取也成為可能,它可用于改進人機交互方式,從而產生更加人性化、智能化的計算機系統。
一個自動的人臉識別系統的工作可以劃分為六個部分,即人臉檢測與分割、人臉的規范化、人臉表征、人臉識別、主體類型、表情/姿態分析。這六個部分并不是完全孤立的,而是緊密相關的。人臉檢測是自動人臉識別技術的基礎,影響著后續人臉識別的精度和速度,是人臉識別技術實用化所必須解決的一個重要課題,只有快速有效地檢測出人臉,才能保證識別的即時性與準確性。
現有人臉檢測算法可分為基于膚色特征的方法、基于灰度和紋理的方法、基于主成分分析的方法、基于支持向量機的方法、基于模板匹配的方法、基于人工神經網絡的方法。人臉檢測算法的界限也并不是絕對的,結合幾種思想于一體的檢測方法也普遍存在。一般先用一種檢測方法(如基于差影法的粗分割或基于彩色圖像的粗分割)提取出疑似人臉所在的區域,然后再用另一種檢測方法(如用模板匹配或神經網絡)對這部分進行再驗證,而且這些技術均取得了良好的檢測效果。所以本文假定已經有一種算法提取了疑似人臉,現通過建立BP神經網絡模型,對疑似人臉進行仿真輸出,并用貝葉斯決策對輸出進行人臉與非人臉的判別修正。通過實驗分析表明使用神經網絡進行仿真的判別是快速有效的,使用貝葉斯決策進行全局的分析統籌也達到了進一步提高判別率的目標,表明了使用貝葉斯決策理論的必要性。
1用BP神經網絡仿真疑似人臉
1.1網絡模型
本算法將人臉區域看做一類模式,這里的人臉區域指上至額頭下至下頜的正方形區域,使用大量的人臉與非人臉樣本訓練構造分類器,通過判別圖像中所有可能區域屬于哪類模式的方法實現人臉的檢測。構造精確的分類器是實現人臉檢測的關鍵,在疑似人臉的定位方面已經有了大量的算法設計,因此本文具體介紹了利用神經網絡進行判別分類的有關內容,而對疑似人臉定位部分的內容不作介紹。
1.2BP網絡結構的設計
誤差反向傳播算法(error back propagation),簡稱BP算法。采用BP算法的多層神經網絡模型一般稱為BP網絡。它是目前人工神經網絡中研究最深入、應用最廣泛的一類網絡。BP網絡由輸入層、隱藏層和輸出層組成。隱藏層可以是一層或多層。本文采用的是兩層BP網絡,即隱藏層只有一層。
1)輸入、輸出層的設計
大多數基于神經網絡的方法使用的輸入窗口的大小都是20×20像素。這個窗口包含了人臉非常關鍵的部分,它可以保留人臉的主要信息、忽略次要信息。筆者同樣采用的是20×20像素大小的窗口,因此,將輸入層節點數設置為 400,對應于20×20像素圖像窗口中按行展開的各個像素。考慮到本文使用的BP網絡是做作分類器,其類別數為2(即人臉和非人臉),所以輸出層的節點數為1,即輸出向量是一維的;當訓練的樣本為人臉時,輸出向量的值為1,當訓練的樣本為非人臉時,輸出向量的值為0。
2)隱藏層節點數的選擇
隱藏層節點數的選擇是一個比較復雜的問題。如果數目過少,網絡將不能建立復雜的判斷依據,無法訓練成功或網絡不“強壯”,不能識別以前沒有見過的樣本,容錯性差;但如果數目過多,就會使學習時間過長,網絡的泛化能力降低,而且誤差也不一定最佳,因此存在一個最佳的隱藏層節點數。這里的解決辦法是先根據經驗公式:
計算出隱藏層節點數的初始取值,然后進行網絡訓練,計算網絡收斂時間后再給n加1,重新開始訓練,記錄收斂時間,通常是隨著n的增加,網絡的收斂速度會加快。當網絡收斂速度保持基本恒定時,這個n值就是最適當的隱藏層節點數目。通過多次試驗,均衡網絡的收斂速度和識別率,將隱藏層的節點數目定為13。
1.3訓練過程
BP神經網絡的訓練過程是根據樣本集對神經元之間的連接權進行調整的過程。其樣本集由形如:
的向量對構成。所有這些向量對,都應該是來源于網絡即將模擬系統的實際運行結果。它們是從實際運行系統中采集來的。開始訓練前,所有的權都應該用一些不同的小隨機數進行初始化。BP算法主要包含兩個階段:
1.4使用神經網絡進行判別的實驗
分類器的形成與網絡的結構和樣本的選取有很大的關系。不同的網絡結構,在訓練集相同的情況下網絡的收斂速度和網絡分類的正確率是不同的。在網絡結構確定的情況下,如果樣本選得比較合理,分類器就能對人臉和非人臉進行正確的分類,因為這些樣本能幫助分類器學習人臉和非人臉的精確界限。良好的樣本選擇可以產生良好收斂的網絡,而且具有良好的泛化性能。從后面的實驗數據上也可以看出這一點。
本文選用的是MITEx人臉庫,它是對MIT人臉庫的擴展,MIT 人臉數據庫由麻省理工大學多媒體實驗室創建的,包含16 位志愿者的2 592 張不同姿態、光照和大小的面部圖像。MITExr人臉庫共計圖像7 089張,所有圖像均大小縮放到了20×20像素。其中人臉圖片2 707幅,包括了不同性別、不同姿態(面部偏轉)、不同表情、不同光照以及是否帶眼鏡、是否留胡須等的人臉樣本。其中擴充了400幅亞洲人的人臉樣本。非人臉圖片共計4 382幅。其中包括風景、背景、墻體、紋理、不完整的人臉、人的遠景照、大幅偏轉的人臉和殘損的圖片等。
現選取了其中的人臉圖片和非人臉圖片各2 000幅,將其分為兩組,每組包含有相同數目的人臉圖片和非人臉圖片。第一組用于網絡訓練;第二組用于網絡測試。實驗步驟如下:
a)將所有訓練樣本圖像均衡化。
b)依次提取每個樣本圖像的像素灰度值,共400個,將它們以400維列向量的形式存儲。
c)將每個樣本圖像的像素灰度值列向量輸入神經網絡,設定網絡訓練的收斂目標和輸出結果,進行網絡訓練。
d)對測試圖片進行均衡化,輸入其像素灰度值列向量進行仿真測試,收集測試結果。
e)分析測試結果。
本文組織了多次網絡的訓練和測試,選取典型的兩次分析總結如下:
實驗一將網絡的收斂目標為設定為0.01,用包括人臉和非人臉在內的2 000幅圖像作為訓練樣本;另外2 000幅進行測試。測試結果如表1所示。
實驗二將收斂目標設置為0.001,選用4 000個圖像中的1/3,即1 333張作為訓練樣本,而用剩下的2 666張作為測試數據。參照表1可以看出,第二次的測試結果明顯好于第一次,究其原因有兩點:實驗二的收斂目標定得比實驗一嚴格;實驗二的訓練選用了具有代表性的數據,提高了網絡的泛化能力。讓網絡學習到了更豐富更廣泛的信息。
網絡的輸出是一個一維的向量,即判斷一個圖像是不是人臉依靠的是這個一維的數值,依照網絡的設計,應該將評判人臉與非人臉的閾值定為0.5,然而實際測試數據輸出值的范圍從是人臉為[0.028 2,1.618 3],非人臉為[-0.983 7,1.270 8]。其分布如圖1所示,可以看出人臉數據的輸出比較集中,而非人臉的比較分散,并且它們兩者之間有相當程度的交叉,如果只是簡單地將0.5作為閾值判斷就無法取得最佳的分類效果,在分類時,確定的閾值在人臉的概率密度函數和非人臉的概率密度函數交點處才能比較公正。鑒于按照神經網絡的訓練輸出設定的閾值0.5并不能被證明是位于此交點。所以有必要采用貝葉斯決策理論來輔助決策仿真結果所在的模式類。
2用貝葉斯決策提高判別的正確率
2.1總體分布的非參數估計
對于經由神經網絡仿真的結果,在使用貝葉斯理論決策分類時是被當做樣本來看待的。所以,后續文章中的樣本指的就是網絡的輸出結果,而不是原始的人臉或非人臉的訓練及測試圖像。
要利用貝葉斯決策理論提高正確率就需要在預先知道樣本的先驗概率和每一個測試數據的條件概率密度函數的情況下,按一定的決策規則確定判別函數和決策面。但目前類條件概率密度是未知的。這就需要利用樣本設計分類器。從樣本集推斷總體概率分布的方法可以歸結為監督參數估計、非監督參數估計、非參數估計。由樣本的直方圖可以看出,人臉和非人臉的樣本分布并不是很完善的正態分布,所以本文基于第三種方法——非參數估計的相關原理,提出了一種簡單易行的統計方法對樣本集進行了分析,并產生出了計算某個樣本對于人臉和非人臉的條件概率密度的方法。步驟如下:
a)分別繪制樣本的分布直方圖,并分別存儲其分布矩陣。
b)計算每個樣本所對應的點在人臉和非人臉直方圖中的小區域。
c)分別統計在這個小區域中的所有數據的個數,得到了這一點的一個小范圍在人臉和非人臉類中的分布頻度,即認為是這一點條件概率密度。
2.2基于最小錯誤率的貝葉斯決策
2.3使用貝葉斯決策進行統籌修正的實驗
由神經網絡仿真結果可得到2 666個樣本,如果對所有的樣本進行統計,歸納出概率密度算法,并對這2 666個數據進行二次分類可以得到如表2所示的實驗一和試驗三的結果,它們兩者的區別在于,設定采樣密度的不同,即樣本值在直方圖中的點所在的小區域的大小不同。而實驗二則使用了一半樣本用于統計,用另一半進行測試分類,同樣也取得了很好的檢測效果。與將神經網絡仿真結果直接以0.5為閾值的分類相比,采用貝葉斯決策理論后,正確率平均提升了3.63%,平均錯誤率下降了3.19%。繪制貝葉斯決策結果的直方圖如圖2所示,可以看出獲得了非常良好的區分效果。因為本文采用的是基于最小錯誤率的貝葉斯決策理論,所以與神經網絡檢測結果相比,誤檢率有了大幅的下降,漏檢率有小幅的上升。如果在實際應用中考慮到漏檢和誤檢的風險,就需要設定損失權值,使用基于最小錯誤率貝葉斯決策的升級理論——基于最小風險的貝葉斯決策。
3結束語
根據BP神經網絡原理,本文提出了一種判斷疑似人臉區域是否真正存在人臉的方法,并使用MITEx數據庫進行訓練和測試,選用的訓練樣本具有良好的代表性,使整個網絡具有了很好的泛化性能,也得出了令人滿意的實驗結果,有較好的判別率。但是這種判別有其自身的缺點,它忽略了測試數據輸出的整體分布,所以使用貝葉斯決策參照神經網絡的仿真結果,再作了一個二次判斷。經過實驗測試,判別率得到了進一步的提高,這表明這種二次貝葉斯決策是有效的而且也是必要的。
參考文獻:
[1]ROWLEY H A,BALUJA S,KANADE T.Neural networkbased face detection [J].IEEE Trans Pattern Analysis and Machine Intelligence,1999,20(1):23-38.
[2]YANG M H,KRIEGMAN D,AHUIA N.Detecting faces in images: a survey[J].IEEE Trans Pattern Analysis and Machine Intelligence,2002,24(1):34-58.
[3]HJELMAS E,BOON K L.Face Detection: a survey[J].Computer Vision and Image Understanding, 2001,83:236-274.
[4]SUNG K K,POGGIO T.Examplebased learning for viewbased human face detection [J]. Trans Pattern Analysis and Machine Intelligence,1998,20(1):39-50.
[5]趙麗紅,劉紀紅,徐心和.人臉檢測方法綜述[J].計算機應用研究,2004,21(9):1-4.
[6]范志剛,潘曉露,李一民.一種快速、魯棒的人臉檢測方法[J].計算機應用研究,2002,19(9):27-29.
[7]梁路宏,艾海舟,徐光佑,等.人臉檢測研究綜述[J].計算機學報,2005,25(5):449-458.
[8]周敬利,吳桂林,余勝生.基于BP神經網絡的人臉檢測算法[J].計算機工程,2004,30(11):274-277.
[9]金忠,胡鐘,楊靜宇.基于BP神經網絡的人臉識別方法[J].計算機研究與發展,1999(3):274-277.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”