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