《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的人臉檢測系統(tǒng)設(shè)計
基于FPGA的人臉檢測系統(tǒng)設(shè)計
來源:電子技術(shù)應(yīng)用2011年第10期
李昌盛,王亞娟,黃啟俊,常 勝
(武漢大學 物理學院,湖北 武漢430072)
摘要: 選取一種由粗及精的方法,綜合采用基于彩色圖像的膚色檢測方法和基于幾何特征的灰度檢測方法,在傳統(tǒng)膚色檢測算法的基礎(chǔ)上,加入圖像預處理、色彩平衡、二值化、形態(tài)學濾波、中值濾波、邊緣檢測等技術(shù)進行人臉檢測。搭建了由CMOS攝像頭到FPGA核心圖像處理單元,再到LCM顯示這樣一個完整的人臉圖像處理及檢測系統(tǒng)。
中圖分類號: TP391
文獻標識碼: A
文章編號: 0258-7998(2011)10-0013-04
A face detection system design based on FPGA
Li Changsheng,Wang Yajuan,Huang Qijun,Chang Sheng
Physics Institute,Wuhan University,Wuhan 430072,China
Abstract: The design combines the detection method of skin color based on color image and that of gray scale based on geometric features in a Coarse-to-fine fashion. On the base of traditional skin color detection method, algorithms including the image preprocessing, color balance, binary module, morphological filtering,median filter and edge detection technology are added to achieve face detection. The system will eventually build a complete face image processing and detecting system, including the CMOS camera, FPGA core image processing unit and LCM display.
Key words : face recognition;face detection;FPGA;skin color detection;image processing technology


    近年來,以人臉、虹膜、視網(wǎng)膜、指紋、聲音、基因等生物特征作為識別手段的生物特征識別技術(shù)漸漸發(fā)揮出了很好的作用。這類識別屬于模式識別范疇,相比傳統(tǒng)的識別方式更安全、穩(wěn)定和方便[1]。其中,人臉識別因具有友好、方便、直接等優(yōu)點而成為一個熱門研究領(lǐng)域。
    鑒于FPGA的并行高速處理特點以及設(shè)計、擴展的靈活性,本論文采用FPGA來實現(xiàn)人臉檢測系統(tǒng)的設(shè)計。
1 人臉檢測系統(tǒng)方案設(shè)計
    目前,根據(jù)是否使用人臉區(qū)域的色彩特征,將人臉檢測算法分為兩大類:針對彩色圖像的基于膚色檢測的算法和針對灰度圖像的基于灰度信息的算法。
    本文綜合采用基于彩色圖像的膚色檢測方法和基于幾何特征的灰度檢測方法對人臉區(qū)域進行實時跟蹤檢測。
1.1 基于FPGA的人臉檢測方案設(shè)計
    本設(shè)計選取的是一種由粗及精的方法,綜合采用基于彩色圖像的膚色檢測方法和基于幾何特征的灰度檢測方法。首先基于膚色檢測在一個大的攝像頭范圍內(nèi)捕捉人臉區(qū)域,在一個最佳范圍內(nèi)定位人臉候選區(qū),實現(xiàn)人臉的粗定位,這一模塊大大減小了后續(xù)部分的搜索范圍,降低了系統(tǒng)的運算量。在此基礎(chǔ)上,在膚色檢測所圈定的區(qū)域中,利用先驗人臉的幾何特征,實現(xiàn)人臉檢測的目的。
    本設(shè)計的算法部分在傳統(tǒng)膚色檢測算法的基礎(chǔ)上加入圖像預處理模塊、色彩平衡模塊、自適應(yīng)閾值二值化模塊、形態(tài)學濾波模塊等實現(xiàn)人臉的粗定位;在此基礎(chǔ)上,對定位出來的人臉區(qū)域進行中值濾波、邊緣檢測等處理,如圖1所示。
    基于上述基本算法,本系統(tǒng)最終需要搭建CMOS攝像頭、FPGA核心圖像處理單元、LCM顯示人臉區(qū)域這樣一個完整的人臉圖像處理以及檢測定位系統(tǒng)。系統(tǒng)整體架構(gòu)如圖2所示。
    圖2中左部分是CMOS攝像頭設(shè)備及其控制電路,它輸出主要的數(shù)字視頻數(shù)據(jù)給CMOS Sensor Data Capture模塊,同時從該模塊獲得MCLK信號。另外,攝像頭電路需要通過I2C進行配置,它們之間傳遞的信號主要有SDAT和SCLK。

    中間的FPGA模塊主要完成輸入設(shè)備和輸出設(shè)備的配置、控制等功能,并完成從輸入到輸出的數(shù)據(jù)傳輸,是設(shè)計的核心單元。其中,主要包含CMOS攝像頭電路的數(shù)據(jù)獲取、圖像類型轉(zhuǎn)換、LCM顯示設(shè)備控制器、SDRAM控制器、I2C配置控制器等模塊。SDRAM控制器主要是用作幀緩存和圖像獲取(拍照功能);LCM控制器主要是輸出HS(行同步信號)、VS(場同步信號)、顯示數(shù)據(jù)以及顯示時鐘給LCM;圖像格式轉(zhuǎn)換模塊主要是實現(xiàn)數(shù)據(jù)格式到RGB格式的轉(zhuǎn)換,以方便后續(xù)顯示及處理。
    本設(shè)計采用Altera公司的FPGA(EP2C35F672C6)作為核心處理芯片,全部模塊功能通過純硬件實現(xiàn)。采用Verilog語言編程,系統(tǒng)具有很好的便攜性、實時性、可擴展性和移植性。
2 圖像預處理算法及實現(xiàn)
    在本設(shè)計中,使用圖像預處理技術(shù)來消除環(huán)境因素對人臉檢測的影響,主要有快速中值濾波、形態(tài)學濾波和邊緣檢測。
2.1 快速中值濾波
    中值濾波是一種基于統(tǒng)計排序理論的、能有效抑制噪聲的非線性信號處理技術(shù)[2]。其基本原理是把數(shù)字圖像或數(shù)字序列中一點的值用該點的一個鄰域中各點值的中值代替,讓周圍的像素值接近真實值,從而消除孤立的噪聲點。
    在本設(shè)計中,選用快速中值濾波[3]來進行圖像預處理,在快速實現(xiàn)濾波輸出的同時節(jié)省了比較邏輯單元的個數(shù),減少了資源占用率。
2.2 形態(tài)學濾波
    形態(tài)學濾波器被廣泛地應(yīng)用于圖像處理和目標識別領(lǐng)域。它的基本思想是[4]利用具有一定形態(tài)的結(jié)構(gòu)元素作為“探針”,在圖像中不斷移動來度量圖像的結(jié)構(gòu)信息,考察圖像各部分之間的相互關(guān)系,進而提取圖像的結(jié)構(gòu)特征。
    本文所述形態(tài)學濾波的目的是檢測大小為256×256像素的8位灰度圖像中的弱小目標。在本文中,主要實現(xiàn)了腐蝕、膨脹、開運算和閉運算,并在此基礎(chǔ)上通過級聯(lián)開運算和閉運算對圖像進行預處理。
    經(jīng)過形態(tài)學濾波后,二值化后的圖像變得“黑白分明”,更符合實際的二值結(jié)果,去除了噪聲點或背景區(qū)域的干擾。
2.3 邊緣檢測
    圖像邊緣檢測可以簡化圖像處理,廣泛應(yīng)用于圖像分割、圖像識別、紋理分析等領(lǐng)域。在數(shù)學上可以利用其亮度變化曲線的一階、二階導數(shù)來描述兩種不同的邊緣[5]。
    本文采用Sobel邊緣檢測算子做硬件實現(xiàn),并且用于實時人臉檢測系統(tǒng)。Sobel邊緣檢測算子是綜合圖像每一個像素點的上下左右亮度加權(quán)和,接近模板中心的權(quán)值較大[6]。
    從圖3和圖4可知,Sobel算子x方向和y方向的濾波分別突出了圖像的橫向和縱向的邊緣,灰度連續(xù)的部分削弱。經(jīng)過Sobel邊緣檢測之后,lena圖像的邊緣信息被提取了出來,檢測效果比較理想。

3 人臉檢測系統(tǒng)設(shè)計與實現(xiàn)
3.1 圖像采集和顯示系統(tǒng)設(shè)計

    本系統(tǒng)中,通過攝像頭采集圖像做人臉檢測。同時,視頻檢測的結(jié)果需要通過顯示系統(tǒng)顯示結(jié)果,因此需要視頻采集電路和顯示電路[7]。
3.2 二值化及系統(tǒng)實現(xiàn)
3.2.1 人臉矩形位置確定

    本設(shè)計中,利用了人臉的幾何形狀特征來精確地定位人臉區(qū)域。這里的人臉區(qū)域是指包含了人臉主要特征部位(如眼睛、鼻子、嘴巴)的一個矩形區(qū)域。
    圖5給出了人臉幾何形狀的模型圖。根據(jù)人們的先驗知識,可以假設(shè)人臉長度約是寬度的1倍到1.5倍,即:iFaceHeight<1.5iFaceWidth。

    以上圖作為模型,并且根據(jù)人們的先驗經(jīng)驗,可以找出二值化后人臉區(qū)域的左右邊緣、上下邊緣以及人臉中心位置點,這樣就可以在人臉面部區(qū)域畫一個矩形框,進而確定人臉的上、下、左、右邊緣的位置。
3.2.2 系統(tǒng)測試結(jié)果分析
    圖6和圖7是一個攝像頭采集到圖像,經(jīng)過膚色檢測二值化后加入形態(tài)學濾波,去除周圍環(huán)境類膚色區(qū)域影響的結(jié)果圖,人臉的膚色區(qū)域檢測效果較好。

 

 

    本文綜合采用基于彩色圖像的膚色檢測方法和基于幾何特征的灰度檢測方法,設(shè)計的人臉檢測系統(tǒng)能較好地檢測人臉。下一步工作中,需對本系統(tǒng)從如下幾方面做出改進:
    (1)在進行膚色二值化時,可以采用自適應(yīng)閾值方法代替固定的統(tǒng)計得出的經(jīng)驗閾值,即可針對不同的圖像進行二值化,膚色檢測的效果更好。
    (2)實現(xiàn)人臉面部五官的精確定位,以提高人臉檢測的精確度。
    (3)光照平衡模塊的小波變換方法實現(xiàn)。采用的方法是利用小波變換[8]做3級分解,然后再對3級之后的低通濾波分量LL3做灰度平均,并且將LL3中的每個像素都賦值為該均值,相當于對圖像做了亮度的歸一,從而去掉了圖像中的光照成分,最后做小波重構(gòu)即可。本文中已驗證此方法可行。
    (4)實現(xiàn)復雜背景下[9]的人臉區(qū)域檢測定位以及分割技術(shù)。

參考文獻
[1] 邢嘉,李磊.人臉識別方法綜述[J].科技信息.2010,2(17):472-473.
[2] VISAKHASART S,CHITSOBHUK O.Multi-pipeline architecture for face recognition on FPGA[C].International Conference on Digital Image Processing,IEEE.2009.
[3] 孟顯英.中值濾波算法的FPGA設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2010(9):7822-7824.
[4] 李愛軍.基于幀差法的交通圖像形態(tài)學濾波處理方法的研究[D].沈陽:沈陽工業(yè)大學.2006.
[5] 程鴻亮.基于FPGA的實時圖像邊緣檢測系統(tǒng)的研究[D].西安:長安大學.2009.
[6] 薛麗霞,李濤,王佐成.一種自適應(yīng)的Canny邊緣檢測算法[J].計算機應(yīng)用研究,2010,27(9):3588-3590.
[7] 趙東方.基于FPGA的數(shù)字視頻采集與顯示系統(tǒng)的設(shè)計[D].湖北:武漢大學.2008.
[8] 王亞娟,曠捷,倪奎,等.基于FPGA的高性能離散小波變換設(shè)計[J].電子技術(shù)應(yīng)用,2009,35(9):22-24.
[9] 郭紅建,敖婷,馮建強.復雜背景彩色圖像中的人臉分割技術(shù)[J].計算機工程與應(yīng)用,2005,41(35):73-75.

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