基于層次型AdaBoost檢測算法的快速人臉檢測在FPGA
檢測流程:(1)讀入取樣窗口和弱特征信息,求出每層的若干微特征值;(2)將微特征值除以窗口的灰度方差,得到歸一特征值(f),實現(xiàn)歸一化處理;(3)讀入此微特征訓(xùn)練所得的參數(shù)(m,r),將歸一特征值進(jìn)行處理:h=(f-m)/r;(4)輸出h,從查找表中取出對應(yīng)的函數(shù)值b;(5)將強(qiáng)分類器所包含弱分類器對應(yīng)的輸入值相加:a=Σb;并將a與當(dāng)前層的閾值y比較;判斷通過與否。
如此循環(huán)12次以檢測出人臉。
2 硬件設(shè)計
整個系統(tǒng)分為片內(nèi)、片外兩部分,系統(tǒng)結(jié)構(gòu)如圖5所示。其中,片外(即存儲器,存儲圖像和參數(shù));片內(nèi),即FPGA,由四部分組成:(1)預(yù)處理電路:計算積分圖像,微特征對應(yīng)的正負(fù)區(qū)域和采樣窗口的灰度方差;(2)分類器:檢測出人臉窗口;(3)窗口融合電路:融合鄰近的人臉窗口;(4)控制電路:控制片內(nèi)片外的數(shù)據(jù)傳輸及片內(nèi)電路的時序。
本文在預(yù)處理電路、分類器和窗口融合電路三環(huán)節(jié)采用流水線技術(shù),其中分類器是整個系統(tǒng)的技術(shù)瓶頸,決定了人臉檢測的速度。因此,分類器的設(shè)計成為關(guān)鍵。
2.1 分類器結(jié)構(gòu)
分類器由若干弱分類器和外圍電路構(gòu)成,其內(nèi)部結(jié)構(gòu)如圖6所示,其中每一個弱分類器(PE)內(nèi)部結(jié)構(gòu)如圖7所示,PE每部分實現(xiàn)的功能分別是:模塊A:計算該窗口的微結(jié)構(gòu)特征值e;模塊B:歸一化處理微特征值e得f;模塊C:得出該窗口微特征閾值b;控制電路:控制模塊間的時序即PE內(nèi)部與外部的數(shù)據(jù)交換。
該處理單元由兩個32位除法器、一個32位乘法器、若干全加器和寄存器構(gòu)成。而除法器和乘法器由移位電路實現(xiàn),其結(jié)構(gòu)(以除法器為例)如圖8所示。
2.2 弱分類器的組合
分類器由若干弱分類器與控制電路組成,其中控制電路根據(jù)每一層參數(shù)來控制該層強(qiáng)分類器個數(shù)與每一強(qiáng)分類器所含弱分類器數(shù)。
由訓(xùn)練得到一個包含12層共294個弱特征的分類器。因此,檢測出一個人臉窗口,要通過294個弱特征處理單元運(yùn)算。綜合考慮時間和資源因素,弱分類器的組合采取一次處理多個窗口,分時復(fù)用硬件資源的方法。
評論