基于層次型AdaBoost檢測(cè)算法的快速人臉檢測(cè)在FPGA
人臉檢測(cè)是指對(duì)于給定的圖像或視頻,判斷其中是否存在人臉,如果存在,則進(jìn)一步確定人臉的個(gè)數(shù)、具體位置以及大小的過(guò)程[1]。
本文引用地址:http://www.ex-cimer.com/article/190732.htm作為一個(gè)模式識(shí)別問(wèn)題,人臉檢驗(yàn)包含兩個(gè)方面的內(nèi)容,一是特征提取,二是分類方法設(shè)計(jì)。近年來(lái),為更好地區(qū)分不同模式,出現(xiàn)了一些新的特征定義,使其便于特征提取[2]并拓展了特征庫(kù)[3],而采用AdaBoost算法從弱特征中選取分類能力強(qiáng)的特征組成強(qiáng)分類器的方法來(lái)設(shè)計(jì)層次型分類器,可以很好地解決直立正面人臉檢測(cè)問(wèn)題[4]。
FPGA有著規(guī)整的內(nèi)部邏輯陣列和豐富的連線資源,特別適合于數(shù)字信號(hào)處理,且有良好的并行性和可擴(kuò)展性。因此,特別適用于人臉檢測(cè)中多個(gè)窗口并行處理以及弱特征的并行運(yùn)算。
1 算法介紹
1.1 弱特征
由于像素特征具有受尺度變化影響比較嚴(yán)重和不便于構(gòu)建快速分類器的缺點(diǎn),因此,為了更好地區(qū)分不同模式,本文采用區(qū)域面積來(lái)歸一化特征,將特征定義為相鄰矩形像素灰度均值之差,如式(1):
其中,II(x,y)為積分圖像在點(diǎn)(x,y)處的值,I(x′,y′)為圖像在點(diǎn)(x′,y′)處的值。
采用面積來(lái)歸一化,避免了對(duì)弱特征進(jìn)行尺度放縮時(shí)引起的誤差,并且減弱了光照對(duì)檢測(cè)的影響。
1.1.1 弱特征庫(kù)的建立
為易于實(shí)現(xiàn),本文采用一個(gè)包含九個(gè)區(qū)域的形狀模板來(lái)統(tǒng)一表示像素特征,九個(gè)區(qū)域面積大小相同,但對(duì)模板區(qū)域而言,長(zhǎng)寬可以不同。模板的九個(gè)區(qū)域有三種狀態(tài):1、0、-1,分別采用白、黑、灰來(lái)表示。在九個(gè)區(qū)域中,正特征集合定義為形狀模板中白色區(qū)域組成的集合,負(fù)特征集合定義為形狀模板中灰色區(qū)域組成的集合,黑色區(qū)域沒(méi)有使用。
考慮到特征的表示能力和運(yùn)算速度,文中只選擇了其中16種表示能力強(qiáng)且易于快速運(yùn)算的形狀作為弱特征庫(kù),16種形狀模板如圖1所示。
1.1.2 弱特征值的快速計(jì)算
為快速提取弱特征,將其轉(zhuǎn)化為兩個(gè)矩形區(qū)域的求取運(yùn)算,以第13種弱特征為例,正負(fù)區(qū)域運(yùn)算圖如圖2所示。先將負(fù)矩形合并為一個(gè)矩形,即圖中A區(qū)域所示;然后求取九個(gè)區(qū)域的灰度和,即圖中C區(qū)域像素灰度和,最后通過(guò)C和A求取B區(qū)域像素灰度和。根據(jù)式(2),可得sum(B)=sum(C)-sum(A)。特征區(qū)域面積也可以通過(guò)類似方法求取。根據(jù)式(1)可得到:
1.2 分類方法設(shè)計(jì)
為了在檢測(cè)率不變的條件下提高檢測(cè)速度,本文采用層次型人臉檢測(cè)器結(jié)構(gòu),如圖3所示。該結(jié)構(gòu)分為12層,每一層都是AdaBoost 算法訓(xùn)練得到的一個(gè)強(qiáng)分類器.經(jīng)過(guò)閾值調(diào)整,使得每一層都能讓幾乎全部人臉樣本通過(guò),而拒絕很大一部分非人臉樣本。這樣,靠近前面的各層,采用少量的特征即可拒絕大部分的非人臉樣本,而靠近后面的各層,需采用大量的特征來(lái)排除近似人臉的非人臉候選圖像的干擾。
1.3 檢測(cè)流程
基于上述分析,判斷一個(gè)人臉窗口的基本流程如圖4所示。
評(píng)論