基于FPGA的人臉檢測系統設計
近年來(lái),以人臉、虹膜、視網(wǎng)膜、指紋、聲音、基因等生物特征作為識別手段的生物特征識別技術(shù)漸漸發(fā)揮出了很好的作用。這類(lèi)識別屬于模式識別范疇,相比傳統的識別方式更安全、穩定和方便[1]。其中,人臉識別因具有友好、方便、直接等優(yōu)點(diǎn)而成為一個(gè)熱門(mén)研究領(lǐng)域。
本文引用地址:http://dyxdggzs.com/article/190889.htm鑒于FPGA的并行高速處理特點(diǎn)以及設計、擴展的靈活性,本論文采用FPGA來(lái)實(shí)現人臉檢測系統的設計。
1 人臉檢測系統方案設計
目前,根據是否使用人臉區域的色彩特征,將人臉檢測算法分為兩大類(lèi):針對彩色圖像的基于膚色檢測的算法和針對灰度圖像的基于灰度信息的算法。
本文綜合采用基于彩色圖像的膚色檢測方法和基于幾何特征的灰度檢測方法對人臉區域進(jìn)行實(shí)時(shí)跟蹤檢測。
1.1 基于FPGA的人臉檢測方案設計
本設計選取的是一種由粗及精的方法,綜合采用基于彩色圖像的膚色檢測方法和基于幾何特征的灰度檢測方法。首先基于膚色檢測在一個(gè)大的攝像頭范圍內捕捉人臉區域,在一個(gè)最佳范圍內定位人臉候選區,實(shí)現人臉的粗定位,這一模塊大大減小了后續部分的搜索范圍,降低了系統的運算量。在此基礎上,在膚色檢測所圈定的區域中,利用先驗人臉的幾何特征,實(shí)現人臉檢測的目的。
本設計的算法部分在傳統膚色檢測算法的基礎上加入圖像預處理模塊、色彩平衡模塊、自適應閾值二值化模塊、形態(tài)學(xué)濾波模塊等實(shí)現人臉的粗定位;在此基礎上,對定位出來(lái)的人臉區域進(jìn)行中值濾波、邊緣檢測等處理,如圖1所示。
基于上述基本算法,本系統最終需要搭建CMOS攝像頭、FPGA核心圖像處理單元、LCM顯示人臉區域這樣一個(gè)完整的人臉圖像處理以及檢測定位系統。系統整體架構如圖2所示。
圖2中左部分是CMOS攝像頭設備及其控制電路,它輸出主要的數字視頻數據給CMOS Sensor Data Capture模塊,同時(shí)從該模塊獲得MCLK信號。另外,攝像頭電路需要通過(guò)I2C進(jìn)行配置,它們之間傳遞的信號主要有SDAT和SCLK。
中間的FPGA模塊主要完成輸入設備和輸出設備的配置、控制等功能,并完成從輸入到輸出的數據傳輸,是設計的核心單元。其中,主要包含CMOS攝像頭電路的數據獲取、圖像類(lèi)型轉換、LCM顯示設備控制器、SDRAM控制器、I2C配置控制器等模塊。SDRAM控制器主要是用作幀緩存和圖像獲取(拍照功能);LCM控制器主要是輸出HS(行同步信號)、VS(場(chǎng)同步信號)、顯示數據以及顯示時(shí)鐘給LCM;圖像格式轉換模塊主要是實(shí)現數據格式到RGB格式的轉換,以方便后續顯示及處理。
本設計采用Altera公司的FPGA(EP2C35F672C6)作為核心處理芯片,全部模塊功能通過(guò)純硬件實(shí)現。采用Verilog語(yǔ)言編程,系統具有很好的便攜性、實(shí)時(shí)性、可擴展性和移植性。
2 圖像預處理算法及實(shí)現
在本設計中,使用圖像預處理技術(shù)來(lái)消除環(huán)境因素對人臉檢測的影響,主要有快速中值濾波、形態(tài)學(xué)濾波和邊緣檢測。
2.1 快速中值濾波
中值濾波是一種基于統計排序理論的、能有效抑制噪聲的非線(xiàn)性信號處理技術(shù)[2]。其基本原理是把數字圖像或數字序列中一點(diǎn)的值用該點(diǎn)的一個(gè)鄰域中各點(diǎn)值的中值代替,讓周?chē)南袼刂到咏鎸?shí)值,從而消除孤立的噪聲點(diǎn)。
在本設計中,選用快速中值濾波[3]來(lái)進(jìn)行圖像預處理,在快速實(shí)現濾波輸出的同時(shí)節省了比較邏輯單元的個(gè)數,減少了資源占用率。
2.2 形態(tài)學(xué)濾波
形態(tài)學(xué)濾波器被廣泛地應用于圖像處理和目標識別領(lǐng)域。它的基本思想是[4]利用具有一定形態(tài)的結構元素作為“探針”,在圖像中不斷移動(dòng)來(lái)度量圖像的結構信息,考察圖像各部分之間的相互關(guān)系,進(jìn)而提取圖像的結構特征。
本文所述形態(tài)學(xué)濾波的目的是檢測大小為256×256像素的8位灰度圖像中的弱小目標。在本文中,主要實(shí)現了腐蝕、膨脹、開(kāi)運算和閉運算,并在此基礎上通過(guò)級聯(lián)開(kāi)運算和閉運算對圖像進(jìn)行預處理。
經(jīng)過(guò)形態(tài)學(xué)濾波后,二值化后的圖像變得“黑白分明”,更符合實(shí)際的二值結果,去除了噪聲點(diǎn)或背景區域的干擾。
2.3 邊緣檢測
圖像邊緣檢測可以簡(jiǎn)化圖像處理,廣泛應用于圖像分割、圖像識別、紋理分析等領(lǐng)域。在數學(xué)上可以利用其亮度變化曲線(xiàn)的一階、二階導數來(lái)描述兩種不同的邊緣[5]。
本文采用Sobel邊緣檢測算子做硬件實(shí)現,并且用于實(shí)時(shí)人臉檢測系統。Sobel邊緣檢測算子是綜合圖像每一個(gè)像素點(diǎn)的上下左右亮度加權和,接近模板中心的權值較大[6]。
從圖3和圖4可知,Sobel算子x方向和y方向的濾波分別突出了圖像的橫向和縱向的邊緣,灰度連續的部分削弱。經(jīng)過(guò)Sobel邊緣檢測之后,lena圖像的邊緣信息被提取了出來(lái),檢測效果比較理想。
3 人臉檢測系統設計與實(shí)現
3.1 圖像采集和顯示系統設計
本系統中,通過(guò)攝像頭采集圖像做人臉檢測。同時(shí),視頻檢測的結果需要通過(guò)顯示系統顯示結果,因此需要視頻采集電路和顯示電路[7]。
3.2 二值化及系統實(shí)現
3.2.1 人臉矩形位置確定
本設計中,利用了人臉的幾何形狀特征來(lái)精確地定位人臉區域。這里的人臉區域是指包含了人臉主要特征部位(如眼睛、鼻子、嘴巴)的一個(gè)矩形區域。
圖5給出了人臉幾何形狀的模型圖。根據人們的先驗知識,可以假設人臉長(cháng)度約是寬度的1倍到1.5倍,即:iFaceHeight1.5iFaceWidth。
以上圖作為模型,并且根據人們的先驗經(jīng)驗,可以找出二值化后人臉區域的左右邊緣、上下邊緣以及人臉中心位置點(diǎn),這樣就可以在人臉面部區域畫(huà)一個(gè)矩形框,進(jìn)而確定人臉的上、下、左、右邊緣的位置。
3.2.2 系統測試結果分析
圖6和圖7是一個(gè)攝像頭采集到圖像,經(jīng)過(guò)膚色檢測二值化后加入形態(tài)學(xué)濾波,去除周?chē)h(huán)境類(lèi)膚色區域影響的結果圖,人臉的膚色區域檢測效果較好。
本文綜合采用基于彩色圖像的膚色檢測方法和基于幾何特征的灰度檢測方法,設計的人臉檢測系統能較好地檢測人臉。下一步工作中,需對本系統從如下幾方面做出改進(jìn):
(1)在進(jìn)行膚色二值化時(shí),可以采用自適應閾值方法代替固定的統計得出的經(jīng)驗閾值,即可針對不同的圖像進(jìn)行二值化,膚色檢測的效果更好。
(2)實(shí)現人臉面部五官的精確定位,以提高人臉檢測的精確度。
(3)光照平衡模塊的小波變換方法實(shí)現。采用的方法是利用小波變換[8]做3級分解,然后再對3級之后的低通濾波分量LL3做灰度平均,并且將LL3中的每個(gè)像素都賦值為該均值,相當于對圖像做了亮度的歸一,從而去掉了圖像中的光照成分,最后做小波重構即可。本文中已驗證此方法可行。
(4)實(shí)現復雜背景下[9]的人臉區域檢測定位以及分割技術(shù)。
評論