肖柏清 XIAO Bo-qing;宋學瑞 SONG Xue-rui
(中南大學,長沙 410083)
(Central South University,Changsha 410083,China)
一種基于FPGA的實時人臉檢測系統設計
肖柏清 XIAO Bo-qing;宋學瑞 SONG Xue-rui
(中南大學,長沙 410083)
(Central South University,Changsha 410083,China)
針對Rein Lien Hsu提出的加入亮度補償后的橢圓膚色模型在亮度較高和較低的區(qū)域容易誤判的問題,提出了根據亮度值來分段選擇橢圓長短半軸參數值的改進方法,MATLAB實驗仿真表明改進后的算法比原始橢圓模型算法具有更高的適用性和準確性,搭建的FPGA系統能夠滿足人臉的實時檢測需求。
人臉;膚色;YCbCr;橢圓模型;FPGA
在實際的應用系統中,為了實現快速的人臉定位識別跟蹤等處理,需要在一副含有人臉的視頻圖像中盡可能地準確、快速地找到人臉所在區(qū)域,交給后續(xù)模塊進行處理。為了提高人臉檢測的速度,人們常常利用膚色的顏色統計特征來對視頻圖像進行分割,將可能含有人臉的區(qū)域快速地從背景中分離出來,再利用人臉的幾何分布特征等信息來準確地找到人臉所在位置[1-3]。
隨著技術的進步,FPGA在價格不斷下降的同時,性能得到顯著地提高,用FPGA做實時圖像處理,由于可編程邏輯的大容量、靈活性,強大的并行處理能力,速度可以比一般的數字信號處理芯片快,可以實現SOPC(片上可編程系統),越來越多的研究人員開始致力于利用FPGA來做視頻圖像開發(fā)。
為了研究的方便,常采用亮度和色度分開的YCbCr顏色空間來建立膚色的色彩模型。圖像的YCbCr值可以通過對RGB做如下運算得到,即:
其中Y表示像素的亮度信息,Cb、Cr值分別表示像素的藍色色差值和紅色色差值[3]。
在YCbCr空間中,人們通過研究發(fā)現,膚色分布具有其內在的統計規(guī)律,并據此提出了三種重要的膚色分布模型。
1.2.1 簡單閾值模型
研究發(fā)現,在YCbCr色彩空間中,膚色像素點的色度分量值分布相對比較集中,大部分取值滿足:108<Cb<123,135<Cr<156[4]。
1.2.2 高斯模型
研究還發(fā)現,膚色的色度值Cb、Cr近似滿足二維高斯分布,可以用膚色似然度表征它屬于膚色點的概率,計算
P值越大說明像素點屬于膚色區(qū)域的可能性就越大,其值越小,表示屬于膚色區(qū)域的可能性就越小。
1.2.3 橢圓模型
Rein Lien Hsu通過對大量樣本的統計分析得出,在YCb'Cr'空間中,加入亮度補償后膚色色度信息值Cb'和Cr'經平移和旋轉變換后((2)式)大都落在(1)式表達式所在的橢圓內[5]。
式中Cb'和Cr'值是指加入亮度補償后原像素點的色度分量Cb和Cr的修正值,其中ecx=1.60,ecy=2.41,a=25.39,b=14.03,θ=2.53(弧度)。
前兩種分割算法都認為色度值Cb和Cr相對于亮度值是獨立的,沒有考慮亮度變化對色度值的影響。Rein Lien Hsu提出的基于YCb'Cr'空間的橢圓模型綜合了亮度對色度的影響,更能反映實際情況,分割效果要好一些,實現起來也比較簡單方便。
橢圓模型雖然降低了亮度分布對色度值的影響,但本文通過實驗發(fā)現,該算法仍然具有一定的局限性。它會把亮度較低(Y<80)的非膚色區(qū)域誤判為膚色,而對亮度較高(Y>230)的膚色區(qū)域會誤判為非膚色區(qū)域。分析其原因,是轉換后膚色在YCb'Cr'空間呈現的是不規(guī)則的橢圓分布,在亮度較低的區(qū)域分布呈倒圓錐體,而在亮度較高的區(qū)域成長短半軸都擴大的橢圓柱體。為了解決這個問題,本文提出對橢圓模型中的長短半軸參數a、b的取值做如下改進:①對于亮度Y低于80的像素點進行判斷時,將膚色聚類時的橢圓的長短軸同時縮小為原來的;②對于亮度在80~230之間的像素點取值不變;③對于亮度大于230的像素點進行判斷時,將膚色聚類時的橢圓的長短軸同時擴大為原來的1.1倍。
圖1為輸入的原始彩色人臉圖像;圖2、圖3分別為Rein Lien Hsu提出的基于YCb'Cr'空間的橢圓模型和本文提出的改進后的橢圓模型進行分割得到的圖像。對比兩幅二值化圖像,從中可以清楚地看出,在額頭和兩側顴骨及耳尖等部分亮度相對較高的區(qū)域固定參數橢圓模型將膚色區(qū)域誤判為非膚色區(qū)域(表現為黑色),但經本文提出的改進后,誤判區(qū)域較原始橢圓模型明顯減少。
圖1
圖2
圖3
本系統主要實現對模擬標清視頻圖像進行快速人臉檢測,將檢測到的人臉區(qū)域進行馬賽克處理后通過顯示器同步顯示。
系統的整體設計框圖如圖4所示。
ADV7181用于A/D轉換和串并轉換,將模擬視頻圖像變?yōu)榉螴TU-R BT.656標準的8位數字信號送入FPGA進行處理。SDRAM用于存儲采集到的幀圖像數據,ADV7123用于將前面FPGA處理后的數字圖像信息轉換為模擬電信號后送至顯示器進行顯示。
圖4 系統整體設計框圖
整個系統設計的核心在于FPGA內部算法模塊的設計,它需要完成包括信號預處理、存儲器SDRAM緩沖控制、顏色空間轉換、二值化分割、人臉篩選定位、馬賽克處理和VGA控制等功能,整個處理的流程模塊圖如圖5所示。
圖5 FPGA內部流程模塊圖
連接好FPGA實驗開發(fā)板,將以上模塊下載到FPGA芯片中,如圖6所示。當開發(fā)板電源開關打開時,由攝像機采集到的人臉圖像信息被送入FPGA芯片中進行上述各模塊處理后輸出至外部PC顯示器進行動態(tài)顯示,可以清楚地看出屏幕中人臉區(qū)域被準確地打上了馬賽克。
圖6 FPGA實驗結果
[1]陳雅彬,張立毅,黃仕明.基于膚色分割和橢圓匹配的人臉檢測方法[J].山西太原,2007.
[2]董立新.基于先驗知識的人撿檢測算法研究[D].大連理工大學,2010.
[3]田博.彩色背景下的人臉檢測究[J].成都理工大學學報,2008,23(1):23-25.
[4]Rein-Lien Hsu,Abdel-Mottaleb M,Jain A K.Face detection in color images[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2002.
[5]孫瑩濤,李玉山.人臉檢測系統的SOPC設計[J].西安電子科技大學電路CAD研究所,2006.
The Design of a Real-time Face Detection System Based on FPGA
In order to solve the problem of miscalculation in the high and low brightness areas generated by the elliptical skin model which is proposed by Rein Lien Hsu,this paper proposed a improved method by choosing the value of long and short elliptical half shaft according to the brightness value.MATLAB Simulation experiments show that this improved algorithm has higher applicability and accuracy than the original ellipse model algorithm,also the designed system based on FPGA could meet the need of real-time face detection.
face;skin colour;YCbCr;ellipse mode;FPGA
肖柏清(1986-),男,湖南岳陽人,碩士研究生,研究方向為電子設計自動化;宋學瑞(1960-),男,湖南長沙人,教授,研究方向為網絡通信。
TP311.1
A
1006-4311(2014)13-0201-02