現(xiàn)鄭鵬程+郭中華
摘要:使用Adaboost算法實現(xiàn)人臉檢測會出現(xiàn)一定的誤檢率。針對這一問題,設(shè)計了一種在誤檢情況下的識別系統(tǒng),對待識別圖像先使用 grabcut前景檢測算法進行前背景分割,在一定程度上消除環(huán)境因素的影響,然后對分割結(jié)果進行人臉檢測和識別。該系統(tǒng)檢測部分使用haar級聯(lián)分類器,識別部分使用特征臉算法。實驗結(jié)果表明,結(jié)合grabcut和Adaboost算法系統(tǒng)在識別率和檢測率方面均有一定提高,且識別速度較快。
關(guān)鍵詞:人臉識別;grabcut算法;haar-like特征;Adaboost;opencv
DOIDOI:10.11907/rjdk.172038
中圖分類號:TP319
文獻標識碼:A 文章編號: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 引言
典型的人臉識別一般包括特征提取、人臉檢測和人臉識別。2001年P(guān)aul Viola和Michael Jones首次采用haar-like小波特征和積分圖進行人臉檢測[1-2],之后Rainer Lienhart和Jochen Maydt對其進行了擴展,形成現(xiàn)在opencv的haar分類器。提取了haar-like特征的Adaboost算法是一種檢測人臉算法,在實際應(yīng)用中容易受環(huán)境、背景或光照的影響,導(dǎo)致出現(xiàn)誤檢和錯檢情況,以至結(jié)果出現(xiàn)錯誤。本文提出誤檢情況下,對待識別圖像先使用grabcut前景檢測算法進行前背景分割,然后使用Adaboost結(jié)合Eigenface算法對識別系統(tǒng)進行改進的方法。
Grabcut算法由C Rother和V Kolmogorov[4]在2004年提出。該算法利用圖像中的紋理信息和邊界信息得到分割結(jié)果。基于opencv視覺庫和python語言,設(shè)計用戶手動提取前景圖像,然后進行Grabcut算法前背景分割,將分割結(jié)果用于人臉檢測和識別。實驗表明,本文方法在一定程度上降低了環(huán)境因素對檢測的影響,提高了識別率,有一定的實際應(yīng)用價值。
1 人臉識別系統(tǒng)設(shè)計
本文設(shè)計的改進的人臉識別系統(tǒng),在檢測前加入一個前背景分割程序,用分割的結(jié)果檢測人臉,一定程度上改善了環(huán)境因素對檢測的影響,流程如圖1所示,識別步驟如下:①讀入待識別圖像;②用級聯(lián)分類器檢測人臉,檢測不到時輸出無人臉;③創(chuàng)建特征臉識別模型,讀取通過攝像頭錄好的人臉數(shù)據(jù)庫進行訓(xùn)練;④使用訓(xùn)練出的Eigenface人臉識別模型對檢測到的人臉圖像進行識別,確定是否識別,流程如圖2所示;⑤判斷識別結(jié)果是否誤檢,若出現(xiàn)誤檢,則使用grabcut算法進行前景分割,將分割結(jié)果返回步驟②重新進行判斷,是否誤檢需要用戶判斷;⑥輸出識別結(jié)果,識別完成。
2 Haar級聯(lián)分類器
Adaboost算法屬于人臉檢測中基于統(tǒng)計方法的一種算法,訓(xùn)練生成一個強分類器,屬于一種學(xué)習(xí)聚類算法,很多人對此進行了提高和改進,例如文獻[6]提出的使用雙閾值弱分類器代替之前的單閾值弱分類器,文獻[7]提出結(jié)合膚色檢測和Adaboost的改進算法。級聯(lián)即把強分類器篩選組合構(gòu)成級聯(lián)分類器。
2.1 haar-like特征
haar-like小波特征經(jīng)歷了幾個發(fā)展階段,最早由Viola P提出5種矩形特征,后經(jīng)擴展發(fā)展到了20種左右,用haar-like特征進行人臉檢測,其原理是將這些類矩形特征放在圖像內(nèi),然后將矩形里亮區(qū)域總和減去暗區(qū)域總和,把此值作為人臉特征值,用該值區(qū)分一幅圖像中是否有人臉區(qū)域。幾種haar-like特征如圖3所示。
2.2 Adaboost算法訓(xùn)練強分類器
Adaboost算法提出的強分類器概念,實則是把提取出的這些矩形特征用一種特定的方法進行組合,通過最初的分類器進行一系列閾值篩選,得到一個弱分類器,然后訓(xùn)練一個最優(yōu)弱分類器,通過多輪迭代組成一個強分類器,算法基本思路如下:
(1)計算n個特征值并排序,共N個樣本。
2.3 篩選式級聯(lián)分類器
只有一個強分類器是沒辦法滿足檢測應(yīng)用的,需要一種特定的方法組合訓(xùn)練出強分類器, Haar級聯(lián)分類器就是這些強分類器的組合,它通過尋找特定閾值對許多個強分類器進行篩選和組合,只要有一個分類器不滿足閾值,就認為圖像不包含目標物。這樣的閾值篩選過于苛刻,在實際訓(xùn)練時需要考慮多種影響因素,例如弱分類器的個數(shù)和運算速度等。因此,實際篩選級聯(lián)更為復(fù)雜。
3 Grabcut算法
Grabcut算法利用圖像中的紋理(顏色)信息和邊界(反差)信息,用RGB三通道的混合高斯模型GMM取代Graphcut算法的目標和背景模型,利用灰度直方圖,并結(jié)合迭代能量最小化算法,很好地將目標與背景分割出來。該算法有多種改進,如文獻[8]中提出的一種GrabCut改進的圖像分割算法,針對GrabCut算法局部噪聲敏感、提取邊緣效果不好的缺點,對Grabcut進行了改進;伊聰聰[9]等提出了一種結(jié)合分水嶺和Grabcut的多尺度圖像分割方法,提高了Grabcut的迭代效率。Grabcut算法的主要思路:
(1)采用RGB顏色空間,分別用K個高斯分量(一般取K=5)的全協(xié)方差GMM(混合高斯模型),對目標和背景進行建模。
(2)使用迭代能量最小化算法來優(yōu)化步驟(1)中的高斯混合模型GMM參數(shù),步驟如下:①初始化,確定前背景像素TB和Tu;②得到Tu中可能屬于目標像素αn=1和可能為背景的像素αn=0,通過這些像素來估計目標和背景的GMM。
(7)采用border matting對分割的邊界進行處理。
本文設(shè)計了一個鼠標選取矩形框進行g(shù)rabcut初始化處理的交互界面,目標與背景分割部分結(jié)果如圖4所示。
4 Eigenface算法
特征臉算法即主成分分析法(PCA算法)最早由Turk M,Pentland A[5]提出,很多人對它做了改進,李盛文等[10]將PCA與Adaboost算法結(jié)合應(yīng)用于人臉檢測,提高了檢測率,特征臉算法思路是把人臉數(shù)據(jù)作空間變換即降維處理,然后對所有人臉數(shù)據(jù)組成的協(xié)方差矩陣求特征值分解,計算矩陣的特征向量,以此組成人臉特征向量空間,也就是所謂的特征臉,最后表示為多個特征臉的不同組合。這種特征臉Eigenface算法還有K-L變換算法,跟PCA主成分分析法在某種程度一樣,可以不用區(qū)分太細。其主要思路如下:
5 實驗結(jié)果
實驗選取25張圖像作為系統(tǒng)輸入,共5人,每人5張圖像,圖像通過攝像頭拍攝,其中分割部分設(shè)計了一個交互界面,可以用鼠標選取分割區(qū)域,按n鍵進行分割,把分割結(jié)果進行檢測和識別處理。圖6為部分識別結(jié)果,算法比較結(jié)果如表1所示。
6 結(jié)語
本文設(shè)計了一個改進的人臉識別系統(tǒng),使用python語言+pycharm環(huán)境,與Adaboost+Eigenface算法比較檢測率和識別率,均有一定提高,且識別速度基本可滿足實際應(yīng)用需求。但不足的是算法是否成功識別依賴于haar級聯(lián)分類器是否檢測出人臉,且由于haar-like特征不具有旋轉(zhuǎn)不變性,因此無法識別出側(cè)面人像和倒置人像,同時在攝像頭實時檢測、處理時卡頓明顯,實時檢測速度有待優(yōu)化,這些將作為下一步研究方向。
參考文獻:
[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] 房宜汕.基于改進AdaBoost的快速人臉檢測算法[J].計算機應(yīng)用與軟件,2013,30(8):271-274.
[7] 李明瑞,傅明.基于膚色檢測的Adaboost人臉檢測算法改進[J].計算機工程,2012,38(19):147-150.
[8] 周良芬,何建農(nóng).基于Grabcut改進的圖像分割算法[J].計算機應(yīng)用,2013,33(1):49-52.
[9] 伊聰聰,吳斌.一種改進的grabcut圖像分割方法[J].小型微型計算機系統(tǒng),2014(5):1254-1260.
[10] 李盛文,鮑蘇.基于PCA+AdaBoost算法的人臉識別技術(shù)[J].計算機工程與應(yīng)用,2010,46(4):170-173.
(責任編輯:杜能鋼)