黨艷軍,舒文斌,高智勇
(中南民族大學 生物醫(yī)學工程學院,武漢 430074)
眼睛是人臉最突出的特征之一,對人臉識別、瞳孔定位以及駕駛員疲勞駕駛的判斷、人機接口的應用都有重要的作用[1-3].自從Viola將AdaBoost算法與級聯(lián)結構引入人臉檢測領域取得重大突破以來,越來越多的學者開始研究AdaBoost級聯(lián)學習[4].劉藝等人提出一種雙層結構AdaBoost分類器用于人眼的定位,其僅從級聯(lián)方式上作了改進,算法本身使用的haar特征并未改變[5].唐旭晟等人采用改進AdaBoost級聯(lián)結構與支持向量機相結合的方式,實現(xiàn)在復雜背景圖像中人眼的快速、準確定位[6].由于支持向量機的引入,使得計算非常復雜.韓晶等將AdaBoost與主動紅外下的亮瞳效應相結合,用于連續(xù)視頻的人眼檢測,能夠大大提高檢測速度[7].然而,對特定紅外光源的要求,使得這種檢測方法應用的空間受到限制.本文從AdaBoost級聯(lián)學習算法本身出發(fā),從haar特征模板和級聯(lián)分類器訓練過程上做出改進,采用分散矩形特征并對其進行優(yōu)化,提出一種新的軟級聯(lián)參數(shù)調(diào)整的方法,在加快分類器訓練速度的同時提高了分類器的分類能力,并且在人眼檢測的實驗中得到了驗證.
AdaBoost級聯(lián)學習是將訓練的層分類器(強分類器)級聯(lián)起來組成一個分類能力更強的分類器[4,8].在開始訓練之前,設置每層的最小檢出率和最大誤檢率為一個固定的參數(shù).當本層強分類器訓練完成后,就與之前訓練的層分類器級聯(lián)在一起,并對后面層的樣本作過濾,直到訓練的層數(shù)達到設定的最大層數(shù)或者級聯(lián)分類器的最大誤檢率達到要求,才停止訓練.
Adaboost級聯(lián)學習過程中重要的一步是計算樣本的haar特征值,在計算該值的時候,是通過haar特征模板矩形的位置來計算的,haar特征值的計算公式如下:
(1)
其中,Ri表示第i個矩形區(qū)域所有像素灰度值的和;wi表示第i個矩形的權重系數(shù),白色矩形為正整數(shù),灰色矩形為負整數(shù),具體取值方法見文獻[8];n表示單一模板中矩形的個數(shù),n取2,3或者4.圖1為基本的haar特征模板,圖2為擴展的haar特征模板.
圖1 基本haar特征模板
圖2 擴展的haar特征模板
從圖2可以看到,擴展的haar特征模板增加了45°方向上和中心特征信息的編碼,從而有效地提高了分類器所選特征的表達能力,并且對旋轉的圖像魯棒性增強.
基本的haar特征模板中的矩形在水平或垂直方向上相連、對齊.擴展的haar特征模板中的矩形傾斜45°,但依然受限于邊界的相鄰、對齊約束.為了更好表達各個方向上的信息,采用分散矩形特征模板[9].分散矩形特征模板如圖3所示.
圖3 分散矩形特征模板
分散矩形特征模板只采用兩個矩形,因此公式(1)中的n取2.兩矩形隨意移動,產(chǎn)生如圖3所示的4種情況.圖3中,(a)的情況屬于基本的haar特征模板;(b)的情況是兩矩形錯切,這樣就打破了邊界對齊的約束條件;(c)是相離的情況,打破邊界相連的約束條件;(d)是兩矩形重疊的情況.盡管只采用兩個矩形,但分散矩形特征模板幾乎能編碼所有方向上的信息,這樣會極大提高特征的表達能力.
由于分散矩形特征不需要相連對齊,導致分散矩形特征數(shù)量的組合暴增.以本文實驗所用樣本大小24×12為例,在該窗口中會產(chǎn)生3185000個分散矩形特征.如此大的特征數(shù)量必然造成訓練的相當耗時,因此必須對特征做出優(yōu)化.文獻[9]中提出了分散矩形特征的概念,但并沒有進行優(yōu)化.本文從以下三方面進行優(yōu)化.
(1) 剔除小的特征,若兩矩形的寬、高均小于2,則剔除;
(2) 剔除完全重合的矩形特征;
(3) 剔除兩矩形相對位置完全相同的特征,若兩矩形移動過程中位置交換,但相對位置沒有變化,則剔除掉該特征.
經(jīng)過以上三方面的優(yōu)化,特征數(shù)量大大減少,在24×12的窗口中的分散矩形特征為841137個.
傳統(tǒng)的AdaBoost級聯(lián)學習的最小檢出率和最大誤檢率在每一層強分類器的訓練中都是固定不變的.然而,隨著訓練層數(shù)的增加,訓練難度越來越大,固定的參數(shù)會使訓練非常耗時,顯然并不合理.因此采用軟級聯(lián)的方式,動態(tài)調(diào)整每層的訓練參數(shù)[2,10].文獻[2]給出一種參數(shù)調(diào)整的方法,其中每層的最小檢出率和最大誤檢率隨著層數(shù)的增加而增加.然而,訓練到最后幾層強分類器時,如果僅僅增加最大誤檢率,而沒有降低最小檢出率的要求,訓練的負擔仍然沒有減輕,訓練速度的提高不明顯.因此,我們提出在減小最小誤檢率的同時增加最大誤檢率的方法來加快訓練速度.
本文按照指數(shù)變化規(guī)律設置每層的最小檢出率和最大誤檢率,具體如下:
(2)
(3)
式(2)、(3)分別表示第n層強分類器的最小檢出率和最大誤檢率.其中,T表示設置的訓練總層數(shù),為已知參數(shù);n為第幾層;參數(shù)k1、k2、α>0根據(jù)訓練要求求出.
本文用于人眼檢測研究的參數(shù)設置為訓練總層數(shù)T=18,第一層訓練的最小檢出率為0.995,最大誤檢率為0.45.為保證最大誤檢率的合理性,選取級聯(lián)分類器的中間層誤檢率參數(shù)限定為0.5,由式(2)、(3)可得:
(2)
(3)
(3)
由上式可計算出k1=0.004935,α=0.237061,k2=0.444112.將這三個參數(shù)代入式(2)、(3)得出每層的最小檢出率和最大誤檢率.
由于沒有人眼圖庫可供直接使用,從因特網(wǎng)上下載BioID和MIT人臉庫,手工截取眼睛部分作為訓練正樣本.左右眼分開截取,訓練以右眼為例.截取圖片2238張,歸一化為24×12大小.負樣本為網(wǎng)上下載的風景、建筑、美食等不包含人眼的圖片.選擇負樣本5104張.部分正樣本如圖4所示.
圖4 部分正樣本
實驗一采用分散矩形特征替代原始haar特征模板,設置級聯(lián)分類器的訓練層數(shù)T=18,最小檢測率dmin=0.995,最大誤檢率fmax=0.5,按照1.4節(jié)優(yōu)化方法,優(yōu)化前與優(yōu)化后錯切、相離、重疊特征所占的比重如表1.
表1 優(yōu)化前后分散矩形特征所占比重
從表1可以看出采用分散矩形特征后(無論是否優(yōu)化),相離、重疊的特征所占比重都很大,這說明分散矩形特征分類器能夠選擇這些特征,其表達能力要強于原始haar特征,從而提高了分類能力.需要說明的是,錯切特征包含圖3中(a)、(b)的特征模板.優(yōu)化后的候選特征數(shù)目大約相當于優(yōu)化前的1/4,所以在相同的檢測率設置下使用的總特征數(shù)會多于優(yōu)化前.
在訓練時間上采用分散矩形特征模板比原始Haar特征模板長很多.本文優(yōu)化了分散矩陣特征,優(yōu)化后的分散矩形特征相比優(yōu)化前的分散矩陣特征優(yōu)勢在于訓練所需時間上,實驗測得優(yōu)化后訓練所需時間是優(yōu)化前的1/3.
實驗二在優(yōu)化分散矩形特征的基礎上,采用軟級聯(lián)的方法,動態(tài)調(diào)整每層檢出率和誤檢率.設置的參數(shù)為第2.2節(jié)計算的參數(shù).實驗表明:軟級聯(lián)的訓練時間比沒有采用軟級聯(lián)方法所需訓練時間減少了1/4.
為了測試訓練出來的分類器性能,從Caltech人臉庫里選出200張圖片作為測試集.測試的結果如表2和圖5所示.由于一張人臉圖片中有可能檢出多個錯誤的人眼,故誤檢數(shù)目會超出200.
表2 Caltech人臉庫上檢測結果
圖5 分類器在Caltech人臉庫上的ROC圖
從表2和圖5可以看出,采用分散矩形特征訓練出來的分類器分類能力明顯比采用原始特征訓練的分類器要強.在分散矩形特征的基礎上采用軟級聯(lián)的方法訓練出來的分類器分類能力有所下降,但是訓練速度加快,總體上比原始特征訓練的分類器要好.
如圖5所示,分類器并沒有達到Viola論文中的高檢測率[4],原因有以下幾點:1)訓練樣本的分辨率只有24×12,訓練的有效信息減少;2)訓練的樣本數(shù)目減少,樣本庫不夠豐富;3)訓練所設置的參數(shù)也不一樣.
本文從AdaBoost級聯(lián)學習算法出發(fā),采用優(yōu)化的分散矩形特征結合軟級聯(lián)進行人眼檢測研究.引入分散矩形特征,增強了特征的表達能力,使分類器的分類能力有所提高;分散矩形特征優(yōu)化后,訓練所需時間縮短為優(yōu)化前的1/3.軟級聯(lián)的引入,加快了訓練的速度,使訓練時間縮短為原來的1/4.從人眼檢測實驗結果來看,采用分散矩形特征結合軟級聯(lián)訓練的分類器的分類能力要優(yōu)于采用原始特征訓練的分類器.
[1]Lin Kunhui,Huang Jiyong,Chen Jiawei,et al.Real-time eye detection in video streams[C]//IEEE.Fourth International Conference on Natural Computation.Jinan: IEEE Computer Society,2008:193-197.
[2]Hea Z ,Tan T ,Suna Z.Topology modeling for Adaboost-cascade based object detection[J].Journal Pattern Recognition Letters Archive,2010,31(9): 912-919.
[3]趙雪竹.基于AdaBoost算法的駕駛員疲勞檢測[D].廣州:華南理工大學,2010.
[4]Viola P ,Jones M.Rapid object detection using a boosted cascade of simple features[C]//CVPR.Proceedings IEEE Conf on Computer Vision and Pattern Recognition.Hawaii:CVPR,2001.
[5]劉 藝,龔衛(wèi)國,李偉紅.雙層結構Adaboost健壯分類器用于人眼精確定位[J].計算機應用,2008,3(28): 801-803.
[6]唐旭晟,歐宗瑛,蘇鐵明,等.復雜背景下人眼的快速定位[J].計算機輔助設計與圖形學學報,2006,10(18): 1535-1540.
[7]韓 晶,王元慶.基于亮瞳效應的連續(xù)AdaBoost人眼檢測[J].電子測量技術,2009,8(32):114-117.
[8]王 健.基于Gentle Adaboost算法的人臉檢測研究[D].成都:電子科技大學,2008.
[9]張維澤.基于簡單局部特征學習[D].杭州:浙江大學,2010.
[10]Bourdev L,Brandt J.Robust object detection via soft cascade[C]//CVPR.Proc IEEE Conf on Computer Vision and Pattern Recognition (CVPR’05).San Diego:CVPR,2005: 236-243.