耿冬冬++胡友彬++萬(wàn)友++歐靜華
摘要:本文研究了adaboost人臉檢測(cè)算法在視頻流中進(jìn)行特征選擇和分類器訓(xùn)練的原理,提出將積分圖像的概念引入用于快速計(jì)算Haar-lik
關(guān)鍵詞:人臉檢測(cè)跟蹤; adaboost; Haar-like特征; camshift; 積分圖; opencv
中圖分類號(hào):TP18 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)01-0198-03
基于視頻流的人臉檢測(cè)相比于靜態(tài)圖像的人臉檢測(cè)有著更高的技術(shù)要求和更適應(yīng)于日常生活的各項(xiàng)應(yīng)用中,檢測(cè)效率和識(shí)別性能成為重要的研究課題,本文重點(diǎn)研究了積分圖像快速計(jì)算特征矩形特征值的方法并引入到人臉檢測(cè)中,經(jīng)過實(shí)驗(yàn)對(duì)比,比單純計(jì)算像素點(diǎn)值提高了檢測(cè)效率和性能。
1 人臉檢測(cè)算法基本原理
2001年,Paul Viola, Michael Jones通過將adaboost算法與Haar-Like特征結(jié)合起來實(shí)現(xiàn)人臉檢測(cè)系統(tǒng),但在圖像分辨率過大情況下仍有檢測(cè)時(shí)間過長(zhǎng)的缺點(diǎn)。方法框架主要有:(1)基于adaboost迭代篩選算法選出最能代表人臉面部特征的特征矩形值構(gòu)建弱分類器,按照加權(quán)調(diào)整分類原則將弱分類器組合成強(qiáng)分類器 (2)利用強(qiáng)分類器的級(jí)聯(lián)檢測(cè)過濾篩選負(fù)樣本從而提高檢測(cè)的實(shí)時(shí)性和準(zhǔn)確性。
1.1 Adaboost人臉檢測(cè)原理
首先從人臉數(shù)據(jù)庫(kù)選出上千張人臉,采用雙線性插值法統(tǒng)一歸一化到20*20像素大小,從這些圖片中提取Harr-like特征矩形,將特征矩形中的白色區(qū)域像素值減去黑色區(qū)域像素值得到特征值,這些特征值就代表了人臉和非人臉特征。初始篩選時(shí),給每個(gè)特征值相同的權(quán)重比,將人臉特征值和非人臉特征值按照最優(yōu)劃分法得到弱分類器,并且提高劃分錯(cuò)誤的樣本的權(quán)重比,以后每輪篩選將首要考慮權(quán)重較大的樣本劃分準(zhǔn)確性并且重復(fù)提高劃分錯(cuò)誤樣本的權(quán)重比,依此迭代,將每輪篩選得到的弱分類器加權(quán)投票組合成強(qiáng)分類器,實(shí)驗(yàn)證明檢測(cè)準(zhǔn)確率能達(dá)到86%以上。
(1)對(duì)于t = 1,…..,T次,訓(xùn)練弱分類器[ht](x),分錯(cuò)概率:
ε[t]=[∑i~Dt][[yt]]
其中[yt]為樣本中劃分錯(cuò)誤元素。若劃分正確,則不計(jì)入誤差,若所有元素都被正確劃分,則誤差為0,若錯(cuò)誤劃分,則計(jì)入誤差。
(2)劃分正確的權(quán)重比:
[at=12ln1-εtεt]
(3)若元素劃分錯(cuò)誤,提高錯(cuò)誤元素的權(quán)重比:
[yt+1=yt+11-εtεt]
(3)最后得到強(qiáng)分類器:
[Hx=signt=1Tathtx]
1.2 強(qiáng)分類器的級(jí)聯(lián)檢測(cè)
級(jí)聯(lián)分類模型可以用圖1表示:
圖1
級(jí)聯(lián)分類器的檢測(cè)過程的整體形式是一個(gè)退化的決策樹,給每個(gè)H(x)限定檢測(cè)閥值,限定標(biāo)準(zhǔn)為從第一級(jí)依此遞減到最后一級(jí),即門檻標(biāo)準(zhǔn)愈發(fā)提高。一個(gè)正例樣本通過第一層會(huì)觸發(fā)第二層依此類推。但在任何一層的負(fù)例樣本會(huì)立即導(dǎo)致后層分類器的拒絕,這樣在初始分類時(shí)就消除了大量的負(fù)例樣本,后續(xù)分類器需要檢測(cè)的樣本就大量減少,這也就提高了檢測(cè)性能,同時(shí)從根本上減少計(jì)算時(shí)間。
1.2 Haar-like特征
我們從人臉數(shù)據(jù)庫(kù)獲取的人臉圖片是在一定的光照下獲取,人臉圖片在光照、人臉面部器官形狀等影響下會(huì)呈現(xiàn)出不同的像素值,比如在燈光條件均勻的情況下,人臉圖片中眼睛部分和人眼下部的臉部就區(qū)分出了一個(gè)特征矩形,如圖2、圖3:
圖2 原始圖像 圖3 特征矩形
常用的特征矩形包括下列幾種如圖4:
[
邊緣特征\&
線性特征\&
中心環(huán)繞特征\&
圖4
2基于積分圖像[3]的特征值計(jì)算
2.1積分圖像
這里我們利用積分圖像的概念來求矩形特征值,積分圖像原理可用如圖5表示:
坐標(biāo)(x,y)的積分圖像就是坐標(biāo)(x,y)左下角圖片的像素值和,定義為:
[ii(x,y)=x'≤x,y'≤yi(x',y')]
其中ii(x,y)表示積分圖像,i(x,y)表示圖像對(duì)應(yīng)(x,y)坐標(biāo)點(diǎn)的像素值。因此,一個(gè)區(qū)域的像素值,可以利用該區(qū)域的端點(diǎn)的積分圖像來計(jì)算,如圖6所示:
圖6
在上圖中,[ii(1)]表示區(qū)域A的像素值,[ii(2)]表示區(qū)域A+B的像素值,[ii(3)]表示區(qū)域A+C的像素值,[ii(4)]表示區(qū)域A+B+C+D的像素值。因此:
區(qū)域D的像素值 = [ii(4)]+[ii(1)]-[ii(2)]-[ii(3)]
由此,可用積分圖像快速得到一個(gè)區(qū)域的像素值。
2.2特征值計(jì)算
由上積分圖像的定義可知,矩形特征的特征值可以由積分圖像計(jì)算出來。以邊緣特征的第二種樣例來說,如下圖,使用積分圖像計(jì)算其特征值:
圖7
該矩形的特征值,由定義為區(qū)域A的像素值減去區(qū)域B的像素值。
區(qū)域A的像素值=[ii(5)+ii(1)-ii(2)-ii(4)]
區(qū)域B的像素值=[ii(6)+ii(2)-ii(5)-ii(3)]
所以該矩形特征值= ([ii(5)+ii(1)-ii(2)-ii(4)])-([ii(6)+ii(2)-ii(5)-ii(3)])
所以,矩形特征的特征值,通過計(jì)算特征矩形的端點(diǎn)的積分圖像,能夠簡(jiǎn)化特征值計(jì)算,不需要adaboost算法計(jì)算所有像素點(diǎn)的值,這也從另一方面提高了檢測(cè)效率。圖8為經(jīng)過實(shí)驗(yàn)對(duì)比采用擴(kuò)展后的Harr-like特征與沒有采用特征圖計(jì)算時(shí),人臉檢測(cè)速度與圖像分辨率的關(guān)系的實(shí)驗(yàn)數(shù)據(jù)對(duì)比。
圖8
從實(shí)驗(yàn)數(shù)據(jù)可以看出,在圖像分辨率較小的情況下,兩者的檢測(cè)速率相當(dāng),但在超過256*144的圖像中,采用積分圖像計(jì)算的檢測(cè)速率顯著提升,因此,基于積分圖像的檢測(cè)速率在高幀率圖像的檢測(cè)中有著顯著的應(yīng)用前景。
3視頻流中人臉的幀圖像的Camshift跟蹤
Camshift是對(duì)meanshift算法的一種擴(kuò)展,傳統(tǒng)的meanshift算法針對(duì)的是單幀圖像人臉追蹤,而視頻流中圖像通過幀圖像不斷地捕捉,因此,我們將meanshift擴(kuò)展到連續(xù)的幀圖像中,通過初始化幀圖像中人臉初始位置,進(jìn)行實(shí)時(shí)跟蹤。
3.1 meanshift算法
我們通過攝像頭采集的幀圖像的色彩圖是基于RGB顏色空間表征色彩,而RGB顏色空間在光照變化劇烈情況下顯示出了較為不穩(wěn)定的特性,為了減小跟蹤丟失率,我們將RGB顏色空間轉(zhuǎn)換為HSV空間,并且提取HSV空間中的H分量(顏色的色調(diào)),這比使用完整的HSV空間在計(jì)算量方面會(huì)小很多。利用幀圖像中顏色直方圖計(jì)算各像素點(diǎn)的H分量的分布概率,將此分布概率值替換此像素點(diǎn)的值,這樣就將幀圖像轉(zhuǎn)化為概率投影圖。
算法過程為:
1) 在概率投影圖中選取搜索窗
2) 計(jì)算零階距:M[00]= [xyI(x,y)]
3) 計(jì)算一階距:M[10]= [xyxI(x,y);] M[01] = [xyyI(x,y)]
計(jì)算搜索窗的質(zhì)心:[xe=M10M00;ye=M10M00]
4) 移動(dòng)搜索窗的中心到質(zhì)心,我們從初始化的幀圖像中獲取人臉中心,在幀圖像變更時(shí)計(jì)算人臉中心與質(zhì)心的距離,如果大于預(yù)設(shè)閥值,就重復(fù)步驟二三。直到距離小于預(yù)設(shè)閥值。式中[I(x,y)]代表[(x,y)]點(diǎn)的分布概率值。
3.2 camshift算法
將meanshift算法擴(kuò)展到視頻流中每幀圖像,就得到了camshift算法。
4 系統(tǒng)設(shè)計(jì)
本系統(tǒng)利用OPencv開源庫(kù)結(jié)合QT開發(fā)環(huán)境進(jìn)行系統(tǒng)開發(fā),OPencv作為一款計(jì)算機(jī)視覺開源類庫(kù),具有強(qiáng)大的圖像處理函數(shù),其提供了諸如安卓,windows等系統(tǒng)的接口函數(shù)。
4.1開發(fā)環(huán)境配置
新建QT項(xiàng)目,在Pro文件中添加下列配置文件
INCLUDEPATH += C:/opencv2.1/include/opencv
LIBS += -LC:/opencv2.1/lib/ -lcv210 -lcvaux210 -lhighgui210 -lcxcore210
或者使用相對(duì)路徑:(但要將opencv2.1的文件夾放在工程目錄下)
INCLUDEPATH += $$PWD/OpenCV2.1/include/opencv
LIBS += -L$$PWD/OpenCV2.1/lib/ -lcv210 -lcvaux210 -lhighgui210 -lcxcore210
4.2設(shè)計(jì)流程
圖9
4.3運(yùn)行結(jié)果
圖10
5總結(jié)
本文研究了視頻流下的人臉檢測(cè)和跟蹤算法,經(jīng)過實(shí)驗(yàn),系統(tǒng)檢測(cè)效率能達(dá)到20-30幀每秒,具有較高的識(shí)別性,對(duì)于512*288大小的幀圖像實(shí)時(shí)檢測(cè)時(shí)間能達(dá)到140ms。但在光照過強(qiáng)和人臉移動(dòng)速度過快情況下會(huì)造成一定的錯(cuò)誤識(shí)別。后期如何提高算法識(shí)別性能是后期需要研究的重要課題。
參考文獻(xiàn):
[1] Paul Viola, Michael Jones.Robust Real-time Object Detection,2004
[2] Paul Viola, Michael Jones. Rapid Object Detection using a Boosted Cascade of Simple Features,2001.
[3]Rainer Lienhart and Jochen Maydt.An extended set of Haar-like features for rapid object detection,2005.
[4] Adrian Kaehler.學(xué)習(xí)OpenCV (美)Gary Bradski.2009.
[5]Jasmin Blanchette,Mark Summerfield .C++GUI Programming with Qt4,2007.