現(xiàn)鄭鵬程+郭中華
摘要:使用Adaboost算法實(shí)現(xiàn)人臉檢測(cè)會(huì)出現(xiàn)一定的誤檢率。針對(duì)這一問(wèn)題,設(shè)計(jì)了一種在誤檢情況下的識(shí)別系統(tǒng),對(duì)待識(shí)別圖像先使用 grabcut前景檢測(cè)算法進(jìn)行前背景分割,在一定程度上消除環(huán)境因素的影響,然后對(duì)分割結(jié)果進(jìn)行人臉檢測(cè)和識(shí)別。該系統(tǒng)檢測(cè)部分使用haar級(jí)聯(lián)分類(lèi)器,識(shí)別部分使用特征臉?biāo)惴?。?shí)驗(yàn)結(jié)果表明,結(jié)合grabcut和Adaboost算法系統(tǒng)在識(shí)別率和檢測(cè)率方面均有一定提高,且識(shí)別速度較快。
關(guān)鍵詞:人臉識(shí)別;grabcut算法;haar-like特征;Adaboost;opencv
DOIDOI:10.11907/rjdk.172038
中圖分類(lèi)號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2017)012-0099-03
Abstract:For using Adaboost algorithm to recognize human-face would occur a corresponding false alarm rate. This essay has designed and implemented a face recognition system using grabcut algorithm for image to be identified to segment the foreground and background at first when false alarm rate occurred, then using haar cascade classifier and Eigenface algorithm to recognize human-face in image. Experimental results show that in the human-face recognition system using grabcut and Adaboost algorithm relatively improved recognition rate and detection accuracy, the recognition speed could basically satisfy the practical application.
Key Words:face recognition; grabcut algorithm; haar-like feature; Adaboost; opencv
0 引言
典型的人臉識(shí)別一般包括特征提取、人臉檢測(cè)和人臉識(shí)別。2001年P(guān)aul Viola和Michael Jones首次采用haar-like小波特征和積分圖進(jìn)行人臉檢測(cè)[1-2],之后Rainer Lienhart和Jochen Maydt對(duì)其進(jìn)行了擴(kuò)展,形成現(xiàn)在opencv的haar分類(lèi)器。提取了haar-like特征的Adaboost算法是一種檢測(cè)人臉?biāo)惴ǎ趯?shí)際應(yīng)用中容易受環(huán)境、背景或光照的影響,導(dǎo)致出現(xiàn)誤檢和錯(cuò)檢情況,以至結(jié)果出現(xiàn)錯(cuò)誤。本文提出誤檢情況下,對(duì)待識(shí)別圖像先使用grabcut前景檢測(cè)算法進(jìn)行前背景分割,然后使用Adaboost結(jié)合Eigenface算法對(duì)識(shí)別系統(tǒng)進(jìn)行改進(jìn)的方法。
Grabcut算法由C Rother和V Kolmogorov[4]在2004年提出。該算法利用圖像中的紋理信息和邊界信息得到分割結(jié)果。基于opencv視覺(jué)庫(kù)和python語(yǔ)言,設(shè)計(jì)用戶(hù)手動(dòng)提取前景圖像,然后進(jìn)行Grabcut算法前背景分割,將分割結(jié)果用于人臉檢測(cè)和識(shí)別。實(shí)驗(yàn)表明,本文方法在一定程度上降低了環(huán)境因素對(duì)檢測(cè)的影響,提高了識(shí)別率,有一定的實(shí)際應(yīng)用價(jià)值。
1 人臉識(shí)別系統(tǒng)設(shè)計(jì)
本文設(shè)計(jì)的改進(jìn)的人臉識(shí)別系統(tǒng),在檢測(cè)前加入一個(gè)前背景分割程序,用分割的結(jié)果檢測(cè)人臉,一定程度上改善了環(huán)境因素對(duì)檢測(cè)的影響,流程如圖1所示,識(shí)別步驟如下:①讀入待識(shí)別圖像;②用級(jí)聯(lián)分類(lèi)器檢測(cè)人臉,檢測(cè)不到時(shí)輸出無(wú)人臉;③創(chuàng)建特征臉識(shí)別模型,讀取通過(guò)攝像頭錄好的人臉數(shù)據(jù)庫(kù)進(jìn)行訓(xùn)練;④使用訓(xùn)練出的Eigenface人臉識(shí)別模型對(duì)檢測(cè)到的人臉圖像進(jìn)行識(shí)別,確定是否識(shí)別,流程如圖2所示;⑤判斷識(shí)別結(jié)果是否誤檢,若出現(xiàn)誤檢,則使用grabcut算法進(jìn)行前景分割,將分割結(jié)果返回步驟②重新進(jìn)行判斷,是否誤檢需要用戶(hù)判斷;⑥輸出識(shí)別結(jié)果,識(shí)別完成。
2 Haar級(jí)聯(lián)分類(lèi)器
Adaboost算法屬于人臉檢測(cè)中基于統(tǒng)計(jì)方法的一種算法,訓(xùn)練生成一個(gè)強(qiáng)分類(lèi)器,屬于一種學(xué)習(xí)聚類(lèi)算法,很多人對(duì)此進(jìn)行了提高和改進(jìn),例如文獻(xiàn)[6]提出的使用雙閾值弱分類(lèi)器代替之前的單閾值弱分類(lèi)器,文獻(xiàn)[7]提出結(jié)合膚色檢測(cè)和Adaboost的改進(jìn)算法。級(jí)聯(lián)即把強(qiáng)分類(lèi)器篩選組合構(gòu)成級(jí)聯(lián)分類(lèi)器。
2.1 haar-like特征
haar-like小波特征經(jīng)歷了幾個(gè)發(fā)展階段,最早由Viola P提出5種矩形特征,后經(jīng)擴(kuò)展發(fā)展到了20種左右,用haar-like特征進(jìn)行人臉檢測(cè),其原理是將這些類(lèi)矩形特征放在圖像內(nèi),然后將矩形里亮區(qū)域總和減去暗區(qū)域總和,把此值作為人臉特征值,用該值區(qū)分一幅圖像中是否有人臉區(qū)域。幾種haar-like特征如圖3所示。
2.2 Adaboost算法訓(xùn)練強(qiáng)分類(lèi)器
Adaboost算法提出的強(qiáng)分類(lèi)器概念,實(shí)則是把提取出的這些矩形特征用一種特定的方法進(jìn)行組合,通過(guò)最初的分類(lèi)器進(jìn)行一系列閾值篩選,得到一個(gè)弱分類(lèi)器,然后訓(xùn)練一個(gè)最優(yōu)弱分類(lèi)器,通過(guò)多輪迭代組成一個(gè)強(qiáng)分類(lèi)器,算法基本思路如下:
(1)計(jì)算n個(gè)特征值并排序,共N個(gè)樣本。
2.3 篩選式級(jí)聯(lián)分類(lèi)器
只有一個(gè)強(qiáng)分類(lèi)器是沒(méi)辦法滿足檢測(cè)應(yīng)用的,需要一種特定的方法組合訓(xùn)練出強(qiáng)分類(lèi)器, Haar級(jí)聯(lián)分類(lèi)器就是這些強(qiáng)分類(lèi)器的組合,它通過(guò)尋找特定閾值對(duì)許多個(gè)強(qiáng)分類(lèi)器進(jìn)行篩選和組合,只要有一個(gè)分類(lèi)器不滿足閾值,就認(rèn)為圖像不包含目標(biāo)物。這樣的閾值篩選過(guò)于苛刻,在實(shí)際訓(xùn)練時(shí)需要考慮多種影響因素,例如弱分類(lèi)器的個(gè)數(shù)和運(yùn)算速度等。因此,實(shí)際篩選級(jí)聯(lián)更為復(fù)雜。
3 Grabcut算法
Grabcut算法利用圖像中的紋理(顏色)信息和邊界(反差)信息,用RGB三通道的混合高斯模型GMM取代Graphcut算法的目標(biāo)和背景模型,利用灰度直方圖,并結(jié)合迭代能量最小化算法,很好地將目標(biāo)與背景分割出來(lái)。該算法有多種改進(jìn),如文獻(xiàn)[8]中提出的一種GrabCut改進(jìn)的圖像分割算法,針對(duì)GrabCut算法局部噪聲敏感、提取邊緣效果不好的缺點(diǎn),對(duì)Grabcut進(jìn)行了改進(jìn);伊聰聰[9]等提出了一種結(jié)合分水嶺和Grabcut的多尺度圖像分割方法,提高了Grabcut的迭代效率。Grabcut算法的主要思路:
(1)采用RGB顏色空間,分別用K個(gè)高斯分量(一般取K=5)的全協(xié)方差GMM(混合高斯模型),對(duì)目標(biāo)和背景進(jìn)行建模。
(2)使用迭代能量最小化算法來(lái)優(yōu)化步驟(1)中的高斯混合模型GMM參數(shù),步驟如下:①初始化,確定前背景像素TB和Tu;②得到Tu中可能屬于目標(biāo)像素αn=1和可能為背景的像素αn=0,通過(guò)這些像素來(lái)估計(jì)目標(biāo)和背景的GMM。
(7)采用border matting對(duì)分割的邊界進(jìn)行處理。
本文設(shè)計(jì)了一個(gè)鼠標(biāo)選取矩形框進(jìn)行g(shù)rabcut初始化處理的交互界面,目標(biāo)與背景分割部分結(jié)果如圖4所示。
4 Eigenface算法
特征臉?biāo)惴粗鞒煞址治龇ǎ≒CA算法)最早由Turk M,Pentland A[5]提出,很多人對(duì)它做了改進(jìn),李盛文等[10]將PCA與Adaboost算法結(jié)合應(yīng)用于人臉檢測(cè),提高了檢測(cè)率,特征臉?biāo)惴ㄋ悸肥前讶四様?shù)據(jù)作空間變換即降維處理,然后對(duì)所有人臉數(shù)據(jù)組成的協(xié)方差矩陣求特征值分解,計(jì)算矩陣的特征向量,以此組成人臉特征向量空間,也就是所謂的特征臉,最后表示為多個(gè)特征臉的不同組合。這種特征臉Eigenface算法還有K-L變換算法,跟PCA主成分分析法在某種程度一樣,可以不用區(qū)分太細(xì)。其主要思路如下:
5 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)選取25張圖像作為系統(tǒng)輸入,共5人,每人5張圖像,圖像通過(guò)攝像頭拍攝,其中分割部分設(shè)計(jì)了一個(gè)交互界面,可以用鼠標(biāo)選取分割區(qū)域,按n鍵進(jìn)行分割,把分割結(jié)果進(jìn)行檢測(cè)和識(shí)別處理。圖6為部分識(shí)別結(jié)果,算法比較結(jié)果如表1所示。
6 結(jié)語(yǔ)
本文設(shè)計(jì)了一個(gè)改進(jìn)的人臉識(shí)別系統(tǒng),使用python語(yǔ)言+pycharm環(huán)境,與Adaboost+Eigenface算法比較檢測(cè)率和識(shí)別率,均有一定提高,且識(shí)別速度基本可滿足實(shí)際應(yīng)用需求。但不足的是算法是否成功識(shí)別依賴(lài)于haar級(jí)聯(lián)分類(lèi)器是否檢測(cè)出人臉,且由于haar-like特征不具有旋轉(zhuǎn)不變性,因此無(wú)法識(shí)別出側(cè)面人像和倒置人像,同時(shí)在攝像頭實(shí)時(shí)檢測(cè)、處理時(shí)卡頓明顯,實(shí)時(shí)檢測(cè)速度有待優(yōu)化,這些將作為下一步研究方向。
參考文獻(xiàn):
[1] PAUL VIOLA, MICHAEL JONES. Rapid object detection using a boosted cascade of simple features[C].Acceptedconference on Computervision and Patternrecognition, 2001.
[2] PAUL VIOLA, MICHAEL JONES. Robust real-time face detection[J].IEEE, Kluwer Academic Publishers, 2004,57(2):747-749.
[3] RAINER L, JOCHEN M. An extended set of Haar-like features for rapid object detection[C]. International Conference on Image Processing, 2002.
[4] C ROTHER, V KOLMORGOROV. "GrabCut"-interactive foreground extraction using iterated graph cuts[J]. ACM SIGGRAPH, 2004,23(3):309-314.
[5] TURK M,PENTLAND A. Eigenfaces for recognition[J].Journal of Cognitive Neuroscience,1991,3(1):71-86.
[6] 房宜汕.基于改進(jìn)AdaBoost的快速人臉檢測(cè)算法[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(8):271-274.
[7] 李明瑞,傅明.基于膚色檢測(cè)的Adaboost人臉檢測(cè)算法改進(jìn)[J].計(jì)算機(jī)工程,2012,38(19):147-150.
[8] 周良芬,何建農(nóng).基于Grabcut改進(jìn)的圖像分割算法[J].計(jì)算機(jī)應(yīng)用,2013,33(1):49-52.
[9] 伊聰聰,吳斌.一種改進(jìn)的grabcut圖像分割方法[J].小型微型計(jì)算機(jī)系統(tǒng),2014(5):1254-1260.
[10] 李盛文,鮑蘇.基于PCA+AdaBoost算法的人臉識(shí)別技術(shù)[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(4):170-173.
(責(zé)任編輯:杜能鋼)