《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于層次型AdaBoost檢測(cè)算法的快速人臉檢測(cè)在FPGA上的實(shí)現(xiàn)
基于層次型AdaBoost檢測(cè)算法的快速人臉檢測(cè)在FPGA上的實(shí)現(xiàn)
摘要: FPGA有著規(guī)整的內(nèi)部邏輯陣列和豐富的連線資源,,特別適合于數(shù)字信號(hào)處理,且有良好的并行性和可擴(kuò)展性,。因此,,特別適用于人臉檢測(cè)中多個(gè)窗口并行處理以及弱特征的并行運(yùn)算。
關(guān)鍵詞: FPGA 人臉檢測(cè)
Abstract:
Key words :

人臉檢測(cè)是指對(duì)于給定的圖像或視頻,,判斷其中是否存在人臉,,如果存在,則進(jìn)一步確定人臉的個(gè)數(shù),、具體位置以及大小的過(guò)程[1],。

    作為一個(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所示,。

16種形狀模板

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)可得到:

 

公式

 

其中Acr(A),、Acr(C)分別為區(qū)域A和區(qū)域C的面積。通過(guò)式(3)可快速求得任意微結(jié)構(gòu)特征,。

正負(fù)區(qū)域運(yùn)算圖

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)排除近似人臉的非人臉候選圖像的干擾,。

 

 

層次型人臉檢測(cè)器結(jié)構(gòu)

1.3 檢測(cè)流程

    基于上述分析,判斷一個(gè)人臉窗口的基本流程如圖4所示,。

判斷一個(gè)人臉窗口的基本流程

檢測(cè)流程:(1)讀入取樣窗口和弱特征信息,,求出每層的若干微特征值;(2)將微特征值除以窗口的灰度方差,,得到歸一特征值(f),,實(shí)現(xiàn)歸一化處理;(3)讀入此微特征訓(xùn)練所得的參數(shù)(m,,r),,將歸一特征值進(jìn)行處理:h=(f-m)/r;(4)輸出h,,從查找表中取出對(duì)應(yīng)的函數(shù)值b,;(5)將強(qiáng)分類器所包含弱分類器對(duì)應(yīng)的輸入值相加:a=Σb;并將a與當(dāng)前層的閾值y比較,;判斷通過(guò)與否,。

如此循環(huán)12次以檢測(cè)出人臉。

2 硬件設(shè)計(jì)

    整個(gè)系統(tǒng)分為片內(nèi),、片外兩部分,,系統(tǒng)結(jié)構(gòu)如圖5所示,。其中,,片外(即存儲(chǔ)器,存儲(chǔ)圖像和參數(shù)),;片內(nèi),,即FPGA,,由四部分組成:(1)預(yù)處理電路:計(jì)算積分圖像,微特征對(duì)應(yīng)的正負(fù)區(qū)域和采樣窗口的灰度方差,;(2)分類器:檢測(cè)出人臉窗口,;(3)窗口融合電路:融合鄰近的人臉窗口;(4)控制電路:控制片內(nèi)片外的數(shù)據(jù)傳輸及片內(nèi)電路的時(shí)序,。

系統(tǒng)結(jié)構(gòu)

    本文在預(yù)處理電路,、分類器和窗口融合電路三環(huán)節(jié)采用流水線技術(shù),其中分類器是整個(gè)系統(tǒng)的技術(shù)瓶頸,,決定了人臉檢測(cè)的速度,。因此,分類器的設(shè)計(jì)成為關(guān)鍵,。

2.1 分類器結(jié)構(gòu)

    分類器由若干弱分類器和外圍電路構(gòu)成,,其內(nèi)部結(jié)構(gòu)如圖6所示,其中每一個(gè)弱分類器(PE)內(nèi)部結(jié)構(gòu)如圖7所示,,PE每部分實(shí)現(xiàn)的功能分別是:模塊A:計(jì)算該窗口的微結(jié)構(gòu)特征值e,;模塊B:歸一化處理微特征值e得f;模塊C:得出該窗口微特征閾值b,;控制電路:控制模塊間的時(shí)序即PE內(nèi)部與外部的數(shù)據(jù)交換,。

內(nèi)部結(jié)構(gòu)

 

內(nèi)部結(jié)構(gòu)

該處理單元由兩個(gè)32位除法器、一個(gè)32位乘法器,、若干全加器和寄存器構(gòu)成,。而除法器和乘法器由移位電路實(shí)現(xiàn),其結(jié)構(gòu)(以除法器為例)如圖8所示,。

 

內(nèi)部結(jié)構(gòu)

2.2 弱分類器的組合

    分類器由若干弱分類器與控制電路組成,,其中控制電路根據(jù)每一層參數(shù)來(lái)控制該層強(qiáng)分類器個(gè)數(shù)與每一強(qiáng)分類器所含弱分類器數(shù)。

    由訓(xùn)練得到一個(gè)包含12層共294個(gè)弱特征的分類器,。因此,,檢測(cè)出一個(gè)人臉窗口,要通過(guò)294個(gè)弱特征處理單元運(yùn)算,。綜合考慮時(shí)間和資源因素,,弱分類器的組合采取一次處理多個(gè)窗口,分時(shí)復(fù)用硬件資源的方法,。

    訓(xùn)練所得第n層強(qiáng)分類器所包含的弱特征個(gè)數(shù)如圖9(a)所示,。通過(guò)大量檢測(cè)結(jié)果可得窗口通過(guò)率與層數(shù)n的關(guān)系如圖9(b)所示。

弱分類器的組合

 

將層通過(guò)率與該層所含弱特征個(gè)數(shù)相乘,,并乘以選定的一次處理窗口的數(shù)目(12),,可得較為平滑曲線,如圖10所示,。

 

平滑曲線

 

從圖9(b)可知前7層分類器已將絕大多數(shù)的非人臉窗口拒掉,。因此,,處理單元數(shù)目即由前幾層中強(qiáng)分類器所含弱特征數(shù)與該層所處理的窗口數(shù)的乘積最大值決定,由圖10可知處理單元數(shù)目為38,。這樣便可在較少資源的情況下大大提高檢測(cè)速度,。

另外,為降低一次同時(shí)處理兩個(gè)臨近人臉窗口的概率,,本文預(yù)先改變了候選窗口輸入次序,。

3 實(shí)驗(yàn)結(jié)果

實(shí)驗(yàn)是對(duì)CMU-MIT測(cè)試庫(kù)進(jìn)行的,而訓(xùn)練時(shí)主要選用從Internet上收集得到的人臉圖像共1000幅,,通過(guò)對(duì)這1 000幅圖像進(jìn)行隨機(jī)旋轉(zhuǎn),、平移一個(gè)像素、隨機(jī)鏡像共得到5 000幅24×24像素的人臉訓(xùn)練樣本,。同時(shí)收集了1 600幅自然圖片作為非人臉樣本候選集,。

輸入圖像為256×256像素,其檢測(cè)效果如圖11所示,。對(duì)此種輸入圖像采用縮放因子的s=1.3,,平移因子的d=2.5,搜索從30×30像素到255×255像素范圍內(nèi)的人臉,。整個(gè)系統(tǒng)用VHDL語(yǔ)言描述,,表1為所用硬件資源情況。

檢測(cè)效果

 

 

硬件資源情況

 

其平均處理速度為17.3fps,, 虛警率低于5E-7,,檢測(cè)率可達(dá)0.998。

文中新定義的微特征具有對(duì)于特征放縮時(shí)近似引入誤差的魯棒性,,以及去光照影響的特性,。此外,本文設(shè)計(jì)的特征模板,,不僅擴(kuò)展了微結(jié)構(gòu)特征庫(kù),,而且使用方便,可以根據(jù)需要選取合適特征,。本文采用流水線技術(shù)將積分圖像的計(jì)算與分類器運(yùn)算并行,,提高了弱特征提取速度。而在硬件實(shí)現(xiàn)時(shí),,利用軟件訓(xùn)練與測(cè)試結(jié)果,。綜合速度和硬件資源兩指標(biāo),在保證檢測(cè)質(zhì)量的前提下,,設(shè)計(jì)最優(yōu)的硬件結(jié)構(gòu),,充分利用硬件資源。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。