許 恒 李 浩 鐘漢亭
(1、浙江省質量技術監督檢測研究院,浙江 杭州 310013 2、上海計量測試研究院,上海 200000)
人臉檢測,是指對于任意一幅給定的圖像,采用一定的策略對其進行搜索以確定其中是否含有人臉的過程,在現代人機自然交互(HCNI)、身份認證和安全防護中有著廣泛的應用[1][2]。Viola和Jones于2001年提出了一種基于Adaboost的人臉檢測算法[3],較之以往的算法,這種方法檢測率高、檢測速度快,在CMU測試集上的檢測率為92.1%,檢測速度達到每秒15幀(PIII700MHZ)。目前,Adaboost方法已經成為了研究的熱點。在Adaboost算法諸多變種中,Gentle Adaboost算法較少強調野點,并對樣本的過適應有一定的抑制作用。Rainer Lienhart等通過試驗證明Gentle Adaboost運用于人臉檢測領域有較好的性能[4]。Adaboost通過重復搜索給定的類Haar矩形特征空間來選擇有效的弱分類器,盡管能在每一次迭代過程中取得最優的分類特征,但大量的迭代和前向搜索也將消耗巨量的時間[3]。完全遍歷特征空間中的特征數量十分巨大,以一張20×20的灰度圖像為例,選取八種矩形特征類型進行遍歷,共需計算64409個特征。對于形狀相同、位置相近但長寬不等的矩形特征而言,特征與特征之間存在著大量相關性信息,矩形越相似,相關性越大。因此,在保證有效檢測性能的基礎上可以通過減少特征空間中不必要的冗余,以縮短訓練時間。
本文提出一種基于人工魚群的Gentle Adaboost快速訓練算法。人工魚群是由李曉磊等在2003年提出的一種基于動物行為的新型群體智能優化算法[5],通過對魚群行為的模擬能在解空間快速地得到一個較優值。算法通過模擬人工魚群覓食、聚群、追尾等行為,減少搜索次數,達到快速搜索的目的。在對MIT和FERET人臉庫上部分樣本的仿真實驗表明,該算法在保證檢測性能的要求下約能將訓練時間縮短至原始訓練時間的1/3。
Adaboost算法通過尋找一組在自然界中分類能力一般的弱分類器,針對它們對不同樣本的分類能力,賦予不同的權重,并使用加權投票機制,集合成強分類器。在這個過程中,結合人工魚群算法在特征空間中挑選分類結果最好的特征作為弱分類器。
基于人臉模式的特定性,Adaboost算法使用類Haar矩形特征實現對人臉形態的描述。圖1顯示了幾類基本的矩形特征,每一類型通過對矩形尺寸和位置的不同定義構建特征空間,訓練樣本尺寸越大,特征數量越多,特征值由矩形覆蓋的象素面積決定,其值等于不同顏色區域覆蓋象素值之差。

圖1 幾類基本的矩形特征
Gentle Adaboost根據不同樣本的分類結果更新樣本權重,在分類均方誤差最小準則下選擇特征作為弱分類器,算法流程如下:
2.2.2 For i=1:n
·歸一化樣本權重
·計算每個特征的均方分類誤差

其中,m為樣本總數,wk表示第k個樣本的權重,yk表示第k個樣本,正樣本等于你1負樣本等于-1,j=1,...m。
·選擇均方分類誤差 最小的特征作為弱分類器
·更新樣本權重

本文嘗試結合人工魚群算法減少計算機的訓練時間。利用人工魚群的活動嘗試接近每次循環中的最優弱分流器。人工魚群算法是一種模擬魚群行為的優化算法,通過對魚群中各個體的局部尋優,達到全局最優值在群體中突現出來的目的[6]。人工魚群個體的全局狀態可表示為向量 X=(x1,x2,…,xn),對于類 Haar矩形特征空間,選取n=5,其中x1~n分別為矩形類型、矩形長度、矩形寬度、位置橫坐標和位置縱坐標。在特征的遍歷過程中,同類型特征的上一特征的結果對下一特征的結果有一定延伸性,因此,人工魚群在搜索特征時,無需遍歷整個特征空間,就能減少訓練時間,得到較好的結果。
覓食行為。對于人工魚群個體狀態Xi,在其感知范圍內隨機選擇一個狀態Xj,如果該狀態所在位置食物濃度較多(目標函數Yj較優),則向該方向前進一步,否則重新隨機選擇狀態Xj,判斷是否滿足前進條件,在try_number次后仍不滿足前進條件時,則隨機移動一步。
聚群行為。對于人工魚群個體狀態Xi,探索當前鄰域內,即 di,j 追尾行為。對于人工魚群個體狀態為Xi,探索當前鄰域內,即di,j 人工魚群算法是通過搜尋目標函數的極值,評價尋優的狀態。當極值滿足終止條件或搜索次數時,搜索過程結束。Gentle Adaboost按照均方分類誤差最小選擇特征,選擇函數 作為目標函數,魚群游移時,記錄最小的 值和相應特征。 參照文獻[7]的方法設定初始視野,visual=總特征數/4和初始步長step=visual/8;并引入衰減因子,隨著迭代的增加減少步長和視野,增加魚群的尋優能力。衰減因子a=exp(-30*(t/Tmax)S)。 魚群按追尾、覓食、聚群的行為策略進行游移。即先執行追尾行為,如果沒有進步則執行覓食行為,如果仍然沒有進步則執行聚群行為。 人工魚群的每一次游移都會產生新的結果,考慮按魚群追尾、覓食、聚群的行為策略進行循環,并對結果進行評估。如果循環一定次數后連續幾次得到的結果的均方誤差均小于規定值,或循環次數已滿則跳出循環。否則程序繼續進行循環,直到設定次數完成為止。 實際檢測中,Adaboost算法采用級聯結構組合強分類器,對于存在的大量非人臉目標,檢測器只需通過前幾層分類器就能將其快速濾除。并且算法在關注單級強分類器的檢測率(目標的正分率)時,也允許一定誤檢率(非目標的誤分率)的存在。 本文使用MIT和FERET人臉數據庫進行仿真實驗,在每個數據庫中挑選500張人臉樣本和大約2000張左右的非人臉樣本作為訓練集,由于只能找到FERET數據庫中的人臉樣本,訓練中的非人臉樣本是通過Internet獲得的。使用傳統的Gentle Adaboost和基于人工魚群的Gentle Adaboost算法(簡稱GAB.人工魚群),在MATLB7.0上進行實驗,平臺為Intel Centrino Duo 1.6GHZ、1G內存的筆記本計算機,構建了多級的級聯分類器。 圖2 算法流程 將人工魚群的循環設置為10次,終止條件設置為:連續得到6次的均方誤差小于0.001或者循環滿30次,魚群數目設置為1000條。 表1顯示了傳統Gentle Adaboost和GAB.人工魚群算法對MIT和FERET人臉數據庫部分樣本的訓練結果。其中對檢測率和誤檢數的結果是對MIT人臉數據庫中1000張樣本圖片(正負樣本圖片各為500張)分類得到的結果。鑒于FERET人臉數據庫中樣本尺寸為14×14,因此對測試集中圖像做了裁剪處理。通過實驗可知相比傳統算法GAB.人工魚群訓練時間大大縮短,檢測率和誤檢率基本與其一致,可以滿足應用要求。 ? 本文提出了一種基于人工魚群的Gentle Adaboost人臉檢測算法。介紹了Gentle Adaboos選擇特征作為弱分類器的原理,并將分類最小均方誤差作為人工魚群尋優的目標函數。人工魚群算法通過設定魚群相關參數,規定了算法的終止條件,實現了對特征的快速搜索,構建了級聯結構的分類器。在對MIT和FERET人臉數據庫上的仿真實驗表明該算法在保證相當檢測精度的要求下,約能縮短訓練時間至原始訓練時間的1/4。 利用人工魚群算法求解弱分類器雖然能減少整個算法的訓練時間,保證一定的分類器分類精度。但在魚群求解的過程中,并不能一定保證所得到的弱分類器是當前循環中最優的。因此可能導致弱分類器個數的增加。因此,在未來的研究工作中,我們將致力于研究更適應Adaboost的人工魚群算法,提高魚群獲得精確解的能力,從而求的更為優秀的分類器。 [1]孫寧,鄒采榮,趙力.人臉檢測綜述 [J].電路與系統學報,2006,11(6):101-108. [2]魏冬生,李林青.Adaboost人臉檢測方法的改進 [J].計算機應用 2006,26(3):619-620. [3]李曉磊.一種新型的智能優化算法-人工魚群算法 [D].杭州:浙江大學,2003. [4]鄭曉鳴.人工魚群的改進及應用 [D].上海:上海海事大學,2006. [5]王聯國,洪毅,趙付青,余冬梅.一種改進的人工魚群算法[J].計算機工程 2008,34(19):192.3.2 目標函數的確定
3.3 初始化和行為策略
3.4 算法的終止條件
4 仿真實驗


5 結論