劉衛(wèi)華 吳丹
摘? 要:隨著智能設(shè)備的不斷發(fā)展,人臉檢測技術(shù)應用于越來越多的領(lǐng)域,極大的豐富和方便了人們的生活,具有很大的商業(yè)價值和研究意義。文章研究了AdaBoost人臉檢測算法的原理和性能,通過使用OpenCV和VS2012實現(xiàn)了圖像及視頻中人臉檢測的目的,檢測結(jié)果表明AdaBoost算法具有良好的實時檢測性能和較強的準確性。
關(guān)鍵詞:OpenCV;人臉圖像預處理;AdaBoost算法;人臉檢測
中圖分類號:TP181? ? ? ? ?文獻標志碼:A? ? ? ? ?文章編號:2095-2945(2019)31-0018-02
Abstract: With the continuous development of intelligent devices, face detection technology is applied in more and more fields, thus greatly enriching and facilitating people's life, so it has great commercial value and research significance. The principle and performance of AdaBoost face detection algorithm are emphatically studied. The purpose of face detection in image and video is realized by using OpenCV and VS2012. The detection results show that AdaBoost algorithm has good real-time detection performance and accuracy.
Keywords: OpenCV; image preprocessing; AdaBoost algorithm; face detection
1 概述
隨著科技的發(fā)展和人類社會的進步,計算機視覺及光電技術(shù)的發(fā)展也日新月異,人們的需求更加趨于智能化,例如智能P圖軟件的使用、刷臉支付的應用、刷臉進站等,促進了人臉檢測技術(shù)產(chǎn)生和發(fā)展。人臉檢測技術(shù)的應用領(lǐng)域非常廣泛,利用其可以預測車站、景區(qū)的客流量;方便公安信息化管理;也可以結(jié)合其他技術(shù)實現(xiàn)人臉識別,應用于軍事、安防等領(lǐng)域。在實踐過程中,人臉檢測技術(shù)會受到外在環(huán)境的復雜背景、人們不同的穿著打扮、膚色五官差異、表情光線變化等因素的干擾容易出現(xiàn)誤差。為了盡可能減輕外界因素對人臉檢測的影響,縮短檢測時間并且實現(xiàn)精確檢測,研究提高人臉檢測的快速性和準確性是非常有意義的。
現(xiàn)實生活中獲取到的圖像通常受光照、拍攝背景、天氣等因素的影響,圖像質(zhì)量并不高,為了滿足后續(xù)操作的要求,需要對圖像進行預處理。對于包含了很多噪聲的圖像,可以采用高斯濾波、中值濾波等方式處理圖像,以降低噪聲對圖像的影響,提高圖像質(zhì)量;對于一些亮度過大或者光線過于昏暗的圖像,可以采用直方圖均衡化的方式調(diào)整圖像的亮度;此外,通過邊緣檢測的方式將圖像中大量不重要的信息去除,只保留圖像中重要的內(nèi)容,可以有效提高圖像處理的速率;為了靈活對圖像進行縮放,可以采用圖像變換的方式處理圖像。
2 AdaBoost人臉檢測算法研究
haar-like特征用來表示人臉信息,并且使用“積分圖”實現(xiàn)對人臉特征數(shù)目的快速統(tǒng)計,積分計算是用遍歷的方式,該方式可以只用一次就準確快速的求出圖像內(nèi)所有區(qū)域的像素和;adaboost算法首先使用haar-like特征表示出人臉,但是此時得到的人臉特征值并不精確,然后通過增加閾值的方式設(shè)計出弱分類器,對特征值進行篩選,此時得到的人臉特征值還是比較粗糙,因此將弱分類器并聯(lián)起來組成強分類器,經(jīng)過強分類器篩選之后的特征值非常接近真實的人臉特征值,為了增加檢測速度,以級聯(lián)的形式將已獲得的強分類器串聯(lián)成最終的分類器[1]。
3 利用OpenCV實現(xiàn)人臉檢測
在OpenCV系統(tǒng)中,已經(jīng)存在的程序可以完成對haar-like特征分類器的訓練,訓練完成之后形成的級聯(lián)分類器會儲存在xml文件中,待檢圖像讀入Open-CV后,只要通過訓練好的級聯(lián)分類器的篩選,就可以檢測到人臉。檢測過程中調(diào)用了多種函數(shù),detectAndDraw( )函數(shù)可以索引用于使用不同顏色繪制找到的人臉;因為分類器基于灰度圖像工作,因此使用cvtColor()函數(shù)將彩色圖像轉(zhuǎn)換成灰度圖,減少運算量,然后使用resize( )函數(shù)調(diào)整圖像大小,將圖像縮小之后能夠加快檢測速度,檢測結(jié)束后再將圖像比例恢復至原圖大小;之后通過equalizeHist( )實現(xiàn)直方圖均衡化,因為haar-like特征是通過矩形區(qū)域做差得到的,這些區(qū)域之間很容易受到光照影響出現(xiàn)偏差,通過直方圖均衡化可以很好的解決這個問題,所以對圖像進行直方圖均衡化處理非常重要;detectMultiScale( )用來掃描輸入圖像中所有尺度上的人臉,被成功定位的目標將以邊界矩形的形式返回到向量目標中,使用rectangle( )將人臉用不同顏色的橢圓繪制出來。
4 人臉檢測結(jié)果及分析
4.1 單目標人臉檢測結(jié)果
在對單目標人臉圖像進行檢測時,選擇了一副人臉較清晰的灰度圖,檢測結(jié)果表明,OpenCV系統(tǒng)對于只有一個人臉目標并且人臉清晰的圖片具有良好的檢測效果,能夠準確無誤的檢測到人臉目標。單目標人臉校測結(jié)果如圖1所示:
4.2 多目標人臉檢測結(jié)果
在對多目標人臉圖像進行檢測時,選擇了一副亮度好并且人臉較為明顯的圖像,檢測結(jié)果表明,對于光照充足、人臉清晰的多目標圖像,OpenCV系統(tǒng)能夠準確的檢測到人臉。多目標人臉檢測結(jié)果如圖2所示:
4.3 視頻中人臉檢測結(jié)果
在對視頻中的人臉目標進行檢測時,通過打開攝像頭獲取視頻信息,選擇了光線較暗的環(huán)境,并且通過面部轉(zhuǎn)動、面部部分遮擋的做法提高檢測難度。檢測結(jié)果表明,對于視頻序列,在弱光環(huán)境、面部輕微轉(zhuǎn)動以及部分遮擋的情況下,OpenCV系統(tǒng)可以準確檢測到人臉目標。
5 結(jié)束語
本文闡述了AdaBoost算法構(gòu)建級聯(lián)分類器的原理,并通過OpenCV系統(tǒng)實現(xiàn)了對圖像和視頻中人臉的檢測,充分證明了AdaBoost算法具有良好的實時檢測性能和較強的準確性。然而,在真實的生活場景中,需要檢測的圖像或視頻中的人臉往往存在光線過于昏暗模糊不清、面部旋轉(zhuǎn)角度過大裸露部分較少、背景顏色與膚色過于相近等問題,導致人臉目標的漏檢和誤檢問題。例如在車站、廣場等人流比較密集的地方,獲取到的圖像或視頻中的人臉信息會因為距離太遠模糊不清,或者因為人群密集部分人臉被遮擋,在這種情況下人臉很難準確被檢測,那么就會導致對人流量的估計并不準確。
因此,人臉檢測算法還有很大的改進空間,需要盡可能減少外部環(huán)境因素對人臉檢測的干擾,并且提高檢測程序的運行效率,爭取對面部信息較少、光線條件差的圖像及視頻中的人臉也能夠?qū)崿F(xiàn)快速、準確的檢測。
參考文獻:
[1]陳博華,戴少鵬.基于OpenCV的圖像處理方法[J].電子技術(shù)與軟件工程,2015(19):23-42.
[2]李娥.人臉檢測方法綜述[J].信息技術(shù)與信息化,2018(04):10-13.
[3]宋宇.基于支持向量機的人臉檢測[D].四川大學,2005:17-24.
[4]聶然.基于OpenCV的人臉檢測與跟蹤算法實現(xiàn)[D].2017:8-15.
[5]梁英麗.基于視頻監(jiān)控的人臉識別的研究[D].華北電力大學,2011.
[6]陳海濤,潘靜.基于Adaboost人臉檢測技術(shù)淺析[J].電子世界,2018,No.546(12):93-94.
[7]孫志.基于OpenCV的人臉識別算法實驗平臺研究與實現(xiàn)[D].吉林大學,2014.
[8]王淑玲.基于ZYNQ實現(xiàn)實時人臉檢測技術(shù)的研究[D].南京理工大學,2014.
[9]石浩然.基于嵌入式系統(tǒng)人臉識別的分析與研究[D].內(nèi)蒙古大學,2015.