胡麗清,李啟明
(上海海事大學(xué)信息工程學(xué)院,上海 201306)
人臉檢測(cè)于20世紀(jì)70年代開始研究,前期的研究主要是為了人臉識(shí)別而服務(wù),后來(lái)隨著人臉檢測(cè)技術(shù)的發(fā)展,人臉檢測(cè)獨(dú)立成為一個(gè)研究課題,研究人員也越來(lái)越多,技術(shù)也逐步成熟。
目前主流的人臉檢測(cè)技術(shù)主要有兩種:基于Ada-Boost算法的人臉檢測(cè)和基于深度學(xué)習(xí)[1]的人臉檢測(cè)[2],基于AdaBoost的人臉檢測(cè)算法由Viola[3]和Jones在2001年提出,并應(yīng)用于人臉檢測(cè)中,其算法由于結(jié)果簡(jiǎn)單,檢測(cè)率高、誤檢率低而被廣泛使用。但是基于Haar特征+AdaBoost人臉檢測(cè)算法仍有許多不足之處[4],如訓(xùn)練分類器的時(shí)間較長(zhǎng),人臉檢測(cè)時(shí)間無(wú)法達(dá)到實(shí)時(shí)性要求等問(wèn)題。隨后人們?yōu)榱烁倪M(jìn)Haar特征,提出Haar-T[5]特征來(lái)進(jìn)行人臉檢測(cè),人臉檢測(cè)的正確率提高,但人臉檢測(cè)仍不能達(dá)到實(shí)時(shí)人臉檢測(cè)。后來(lái)人們?yōu)榱私档腿四槞z測(cè)的時(shí)間消耗,提出新的人臉圖像特征LBP特征,LBP是一種被用于來(lái)描述圖像局部紋理特征信息的算子。該算子是1994年Ojala,M.Pietik?inen[6],和D.Harwood提出的,LBP特征由于具有旋轉(zhuǎn)不變性和灰度不變性的優(yōu)點(diǎn)[7],從而被廣泛被用于提取圖像特征來(lái)進(jìn)行目標(biāo)檢測(cè)。2002年,Mottaleb[8]等人采用YCbCr[9]膚色模型來(lái)進(jìn)行人臉檢測(cè)加速。2007年中科院對(duì)LBP特征進(jìn)行改進(jìn),發(fā)明MB_LBP特征[10]用于目標(biāo)檢測(cè),并取得了不錯(cuò)的成績(jī),不過(guò)還是很難達(dá)到實(shí)時(shí)檢測(cè)。后來(lái)隨著硬件的快速發(fā)展,人們對(duì)深度學(xué)習(xí)的認(rèn)識(shí),網(wǎng)絡(luò)的層數(shù)越來(lái)越深,比較代表的網(wǎng)絡(luò)又Fast-RCNN、Alex-NET等。人們開始將深度學(xué)習(xí)應(yīng)用于人臉檢測(cè)當(dāng)中,并取得了不錯(cuò)的成績(jī)。2016年OpitzM[11]等人將輸入的人臉照片分成多個(gè)窗口輸入到卷積神經(jīng)網(wǎng)絡(luò),并計(jì)算每個(gè)窗口輸入的誤差,從而實(shí)現(xiàn)了基于卷積神經(jīng)網(wǎng)絡(luò)人臉檢測(cè)對(duì)部分遮擋人臉具有很好的魯棒性。后面隨著網(wǎng)絡(luò)的層數(shù)變得更深,人臉檢測(cè)的效果也變得更好,2017年,董蘭芳[12]等人把Fast-RCNN[13]網(wǎng)絡(luò)應(yīng)用在人臉檢測(cè)中。該方法對(duì)復(fù)雜光照、部分遮擋、人臉姿態(tài)變化具有魯棒性,在非限制性條件下具有出色的人臉檢測(cè)效果[14]。但是基于深度學(xué)習(xí)的人臉檢測(cè)的問(wèn)題主要是訓(xùn)練模型的時(shí)間很長(zhǎng),對(duì)硬件要求很高,需要大量的GPU來(lái)進(jìn)行加速,而且網(wǎng)絡(luò)中間的隱層復(fù)雜。
本文綜合考慮到人臉檢測(cè)訓(xùn)練時(shí)間和檢測(cè)時(shí)間的大小,并對(duì)于同樣一張圖片24×24,Haar特征數(shù)量遠(yuǎn)遠(yuǎn)大于MB_LBP特征[15],因此為了克服OpenCV中訓(xùn)練分類器時(shí)間過(guò)長(zhǎng),并能達(dá)到實(shí)時(shí)人臉檢測(cè)的要求,分類器的設(shè)計(jì)采用了MB_LBP特征和AdaBoost算法來(lái)訓(xùn)練分類器,并為了達(dá)到實(shí)時(shí)的人臉檢測(cè)的要求,采用圖像金子塔法和膚色提取的方法減少輸入圖像的數(shù)據(jù)量和限定分類器滑動(dòng)窗口的范圍,從而達(dá)到實(shí)時(shí)人臉檢測(cè)。
本文為了提高Haar特征人臉檢測(cè)的正確率和解決實(shí)時(shí)人臉檢測(cè)的問(wèn)題,采用改進(jìn)的LBP特征,MB_LBP特征來(lái)提取人臉圖像并構(gòu)成分類器,通過(guò)圖像金字塔和膚色提取來(lái)對(duì)輸入圖像進(jìn)行一系列的預(yù)處理操作,從而達(dá)到實(shí)時(shí)的人臉檢測(cè),其系統(tǒng)流程圖如圖1所示。
圖1 人臉檢測(cè)流程圖
由圖1可知,本文主要的工作是對(duì)待測(cè)圖像進(jìn)行預(yù)處理操作和分類器的設(shè)計(jì)。圖像預(yù)處理有圖像金字塔、均衡化、膚色提取等;分類器的設(shè)計(jì)采用的方法是MB_LBP特征+AdaBoost算法。
在人臉檢測(cè)中,有效圖像的預(yù)處理不僅可以提高人臉檢測(cè)正確率,還可以極大地縮減檢測(cè)時(shí)間。本文為了減小檢測(cè)時(shí)間,采用高斯圖像金子塔法來(lái)減少輸入圖像的數(shù)據(jù)量,并通過(guò)膚色提取來(lái)減少人臉檢測(cè)時(shí)窗口滑動(dòng)的范圍來(lái)降低檢測(cè)時(shí)間。
(1)圖像金字塔
圖像金字塔對(duì)圖像處理有兩種方式,高斯金字塔是對(duì)圖像進(jìn)行向下采樣處理,拉普拉斯金字塔則是對(duì)圖像進(jìn)行重構(gòu)。本文則是利用高斯金字塔,通過(guò)高斯平滑的方法對(duì)圖像進(jìn)行濾波使其圖像的尺寸減少。圖像向下采樣過(guò)程要注意的采樣程度要適中,過(guò)大會(huì)導(dǎo)致檢測(cè)時(shí)間不能降低,圖像太小,則人臉檢測(cè)的正確率會(huì)減少。本文針對(duì)加州理工大學(xué)提供的人臉數(shù)據(jù)集進(jìn)行測(cè)試,綜合考慮檢測(cè)正確率和實(shí)時(shí)性,確定將圖像向下采用,圖像尺寸為(320,240)最好。
(2)膚色提取
本文為了進(jìn)一步減少檢測(cè)時(shí)間,采用膚色提取來(lái)初步檢測(cè)人臉?lè)秶?,并輸入人臉檢測(cè)的分類器來(lái)進(jìn)行檢測(cè)。本文考慮到膚色模型YCbCr[16]模型亮度與色度是獨(dú)立存在,易于分離。膚色提取的方法采用的是YCbCr模型來(lái)提取人臉?lè)秶?。其中RGB圖像轉(zhuǎn)YCb-Cr圖像如式(1)所示:
本文為了克服不同圖片亮度的影響,將膚色提取固定閾值法進(jìn)行改進(jìn),采用了動(dòng)態(tài)閾值法,閾值計(jì)算如下:
設(shè)圖像的像素?cái)?shù)為N,圖像的灰度范圍為[0,L-1],ni表示灰度級(jí)i的像素?cái)?shù),pi為灰度級(jí)i的概率。則表達(dá)式為:
用閾值K把圖像的像素分成兩類,像素灰度值小于K的為背景類為C0,大于為目標(biāo)類C1。
從而得出兩部分C0與C1兩部分的均值U0,U1:
其中 w0、w1為目標(biāo)類 C0、C 的概率:
從而得出整幅圖像的均值:
由均值從而得出方差:
K值從0-255變化,通過(guò)上式計(jì)算的方差的最大值為最佳閾值分割,膚色提取效果如圖2中b圖所示。
圖2 膚色提取圖
后面為了消除噪聲帶來(lái)的誤差,采用形態(tài)學(xué)膨脹的操作來(lái)進(jìn)行處理,效果如圖3中b圖所示,輸入圖像如圖3中c圖所示。
圖3 膨脹操作
本文分類器的設(shè)計(jì)是利用的方法是AdaBoost+MB_LBP,特征計(jì)算的方法采用積分圖的方式進(jìn)行加速。
(1)AdaBoost算法
AdaBoost算法是一種自適應(yīng)的迭代算法,其算法原理如下:
1)給定訓(xùn)練樣本集 S,(X:正樣本;Y:負(fù)樣本)T 為訓(xùn)練的最大循環(huán)次數(shù):
權(quán)重w1,i的第一個(gè)參數(shù)表示第幾輪迭代計(jì)算,第二個(gè)參數(shù)表示第幾個(gè)樣本。
3)迭代計(jì)算:
①訓(xùn)練樣本的概率分布相當(dāng)下,訓(xùn)練弱分類器:
上式表明,第m次迭代計(jì)算得到的分類器,樣本分成兩種,-1和+1。其誤差和權(quán)重計(jì)算如下:
②計(jì)算弱分類器的錯(cuò)誤率,使得誤差最?。?/p>
③計(jì)算該分類器的權(quán)重:
由該式子可知,誤差越小,分類器的權(quán)重越大。
④更新樣本權(quán)重分布:
每個(gè)樣本的權(quán)重計(jì)算如下:
Zm為規(guī)范化因子,其計(jì)算過(guò)程如下:
迭代計(jì)算完成,組合成弱分類器f(x):
經(jīng)T次循環(huán)后,得到T個(gè)弱分類器,按更新的權(quán)重疊加,最終得到的強(qiáng)分類器。
sign為符號(hào)函數(shù),因此最后強(qiáng)分類器輸出的結(jié)果為0或者為1。
(2)MB-LBP特征
MB_LBP特征又叫塊狀LBP特征,是LBP特征的改進(jìn)版,LBP特征的編碼方式如圖4所示:
圖4 LBP編碼過(guò)程
由圖可知,每個(gè)圖像的3×3的區(qū)域?yàn)橐粋€(gè)LBP特征,其值為8位二進(jìn)制編碼,如上圖所示,其編碼之后特征值為126,而MB_LBP特征則是是由九個(gè)LBP特征組成,即圖5中一個(gè)gi代表一個(gè)LBP特征,MB_LBP特征的計(jì)算公式見式(20)。
圖5 MB_LBP特征
gi代表每個(gè)3×3的子區(qū)域的平均灰度值,s(x)是符號(hào)函數(shù)。圖6中b圖為整張人臉圖片計(jì)算得到的MB_LBP特征值。
圖6 人臉圖像特征MB_LBP
由圖可知,MB_LBP特征很好地描述圖像的紋理信息,并對(duì)圖像的邊緣、拐點(diǎn)、平坦區(qū)域都有很好的描述。
(3)分類器的訓(xùn)練
由MB_LBP特征值得定義可知,特征值一共有28=256種情況。因此在此,本文采用多分支樹來(lái)作為本文的弱分類器,每個(gè)分支對(duì)應(yīng)MB_LBP特征值,如式(21)所示:
Xi表示第X個(gè)樣本第i個(gè) MB_LBP特征,由式(16)得到。aj表示相應(yīng)的判決系數(shù),計(jì)算公式如公式(22)所示。
Yi表示訓(xùn)練樣本,1代表正樣本,-1為負(fù)樣本,由此可知ai大于0則表示特征值為j的正樣本的可能性比較大。因此可設(shè)定閾值T來(lái)判別人臉。則分類器的訓(xùn)練步驟如下:
對(duì)于給定的樣本,初始化權(quán)重wi=1/2N(N=(p,q)為正負(fù)樣本數(shù)量)。
迭代計(jì)算找到最優(yōu)弱分類器f(x),使得誤差最小。
輸出強(qiáng)分類器:
本次實(shí)驗(yàn)的硬件平臺(tái)為Intel i5-5200U CPU@2.20GHz、8GB 內(nèi)存,軟件平臺(tái)為 Win7、OpenCV3.2+VS2015。選取的數(shù)據(jù)集測(cè)試數(shù)據(jù)集CMU+MIT、網(wǎng)絡(luò)下載和實(shí)際采集的照片,每張照片上的背景、表情、光照亮度以及人臉個(gè)數(shù)皆不一樣。實(shí)驗(yàn)中視頻來(lái)源為實(shí)驗(yàn)室同學(xué)拍攝。
本文用于訓(xùn)練分類器的樣本包括13000正樣本,13000負(fù)樣本,采用Haar特征訓(xùn)練分類器耗時(shí)18d11h23min,而采用 MB_LBP特征訓(xùn)練則耗時(shí)為10d5h26min。
通過(guò)分析可知,對(duì)于同樣的訓(xùn)練樣本大小(20×20),Haar特征數(shù)量為45891,而MB_LBP特征數(shù)量則為2049,因此訓(xùn)練分類器的時(shí)間大大減少。
為了對(duì)比本文算法在人臉檢測(cè)的中準(zhǔn)確率,選取數(shù)據(jù)集CMU+MIT部分照片(4000張)來(lái)進(jìn)行測(cè)試。其實(shí)驗(yàn)結(jié)果如表1所示:
表1 人臉檢測(cè)算法性能對(duì)比
由表1可見:經(jīng)過(guò)膚色提取后,檢測(cè)的正確率和效率都會(huì)得到提高。關(guān)于人臉圖像的描述能力,特征Haar<MB_LBP。這是因?yàn)镸B_LBP特征有256種,而常見的Haar特征種類偏少,因此對(duì)圖像的描述能力較差。也正是由于MB_LBP特征種類很多,因此人臉特征描述地更加準(zhǔn)確,因此誤檢率較低。
本文在測(cè)試人臉檢測(cè)時(shí)間上,選取數(shù)據(jù)集CMU+MIT部分照片(1000張),進(jìn)行測(cè)試,其實(shí)驗(yàn)結(jié)果如下表所示:
表2 人臉檢測(cè)時(shí)間對(duì)比
由表2可知,本文算法由于采用圖像金字塔和膚色提取,人臉檢測(cè)時(shí)間大大降低,可以達(dá)到實(shí)時(shí)人臉檢測(cè)的效果。
本文為了進(jìn)一步證明實(shí)時(shí)人臉檢測(cè),將本文基于圖片的人臉檢測(cè)改成基于視頻的人臉檢測(cè)。部分視頻幀檢測(cè)效果如圖7所示。
圖7 視頻部分幀檢測(cè)效果
本文由于采用的是MB_LBP特征,因此對(duì)旋轉(zhuǎn)角度人臉也有很好的魯棒性,本文對(duì)人臉?biāo)膫€(gè)不同方向的旋轉(zhuǎn)人臉進(jìn)行檢測(cè),以及多人臉照片進(jìn)行檢測(cè)。旋轉(zhuǎn)人臉照片如圖8所示,多人臉檢測(cè)照片如圖9所示。
圖8 旋轉(zhuǎn)人臉檢測(cè)效果
圖9 多人臉檢測(cè)
本文提出了一種基于OpenCV實(shí)時(shí)人臉檢測(cè)。通過(guò)采用MB_LBP特征來(lái)替換傳統(tǒng)的Haar特征訓(xùn)練分類器,來(lái)降低分類器的訓(xùn)練時(shí)間,并在輸入圖像后采用圖像金字塔向下采樣減少輸入分類器的數(shù)據(jù)量和膚色提取來(lái)減少分類器滑動(dòng)窗口滑動(dòng)的范圍,從而極大程度降低檢測(cè)時(shí)間。本文實(shí)驗(yàn)證明,本文人臉檢測(cè)算法,不僅可以提高人臉檢測(cè)的正確率,還能達(dá)到實(shí)時(shí)的人臉檢測(cè),并對(duì)旋轉(zhuǎn)人臉檢測(cè)具有魯棒性。