基于SOPC的人臉檢測(cè)系統(tǒng)的設(shè)計(jì)
人臉檢測(cè)技術(shù)是計(jì)算機(jī)視覺領(lǐng)域非常重要的研究?jī)?nèi)容,正受到越來越多的關(guān)注。但傳統(tǒng)的PC機(jī)平臺(tái)上人臉檢測(cè)系統(tǒng)體積龐大、不易攜帶、費(fèi)用高等缺陷。采用通用DSP和多核處理器實(shí)現(xiàn)的話,價(jià)格昂貴、系統(tǒng)的可拓展性差。本文采用了xilinx公司的Zynq-7000系列芯片作為人臉檢測(cè)系統(tǒng)實(shí)現(xiàn)平臺(tái)。Zynq-7000系列是Xilinx公司推出的行業(yè)第一個(gè)可擴(kuò)展處理All Programmable解決方案平臺(tái),旨在為視頻監(jiān)視、汽車駕駛員輔助以及工廠自動(dòng)化等高端嵌入式應(yīng)用提供所需的處理與計(jì)算性能水平。本設(shè)計(jì)采用的是Zynq-7000的XC7Z 02SOPC芯片,該芯片集成了Crotex—A9 MPCore雙核處理器系統(tǒng),同時(shí)內(nèi)部集成了豐富的可編程邏輯資源,該部分包含約1.3M個(gè)等效邏輯門數(shù)和220個(gè)DSP Slices。這些資源提供了靈活可拓展的圖像處理解決方案。
本文引用地址:http://2s4d.com/article/201610/308921.htm人臉檢測(cè)算法有很多,主要可以分為:基于知識(shí)的方法、基于特征的方法、基于模板的方法和基于統(tǒng)計(jì)的方法。其中以Adaboost為統(tǒng)計(jì)的人臉檢測(cè)算法是無論在檢測(cè)精度還是檢測(cè)速度上,在計(jì)算機(jī)視覺領(lǐng)域被認(rèn)為已經(jīng)達(dá)到很高的水準(zhǔn)。
1 Adaboost人臉檢測(cè)算法原理
Adaboost人臉檢測(cè)算法是基于統(tǒng)計(jì)模型的方法,該方法給出了一個(gè)實(shí)時(shí)的、穩(wěn)定的檢測(cè)架構(gòu)。此方法會(huì)從許多典型的數(shù)據(jù)信息中獲取并進(jìn)行特定的分析,得出人臉圖像,這也是人們普遍使用它進(jìn)行人臉識(shí)別的最根本原因。這一算法主要有3個(gè)方面的特點(diǎn):利用積分圖(Integral Image)快速計(jì)算Haar特征;利用Adaboost學(xué)習(xí)算法將Haar特征生成的弱分類器(Weak Classifier)組合成一個(gè)強(qiáng)分類器((Strong Classifier);將強(qiáng)分類器串聯(lián)形成級(jí)聯(lián)分類器(Cascade Classifier)。
1.1 Haar特征及積分圖的計(jì)算
Haar特征又稱矩形特征,指的是一系列矩形構(gòu)成的結(jié)構(gòu),這種特征結(jié)構(gòu)簡(jiǎn)單,利于快速計(jì)算。圖1(a)是四種基本結(jié)構(gòu)的矩形特征。把矩形特征中自色區(qū)域像素灰度值減去黑色區(qū)域的像素灰度值就得到該矩形特征的特征值。圖1(b)矩形特征在人臉檢測(cè)中的應(yīng)用,這些典型的矩形特征能夠很好把人臉和非人臉區(qū)分開來。
積分圖能夠快速算出Haar特征的特征值。如圖2(a)所示,積分圖像的定義;積分圖圖像的任意一點(diǎn)i(x,y)處的積分圖像值ii(x,y)是原圖像上該點(diǎn)的左上方所有像素的灰度值之和,即
引入積分圖,計(jì)算任意矩形特征的區(qū)域的灰度值只需要4個(gè)參考點(diǎn)即可,圖2(b)中灰色部分的矩形特征區(qū)域的灰度值可以通過A,B,C,D四個(gè)點(diǎn)的積分圖來計(jì)算,即
sum=ii(AA)+ii(D)-ii(R)-ii(C) (2)
其中sum表示該灰色區(qū)域的灰度值。
1.2 Adaboost人臉檢測(cè)算法
整個(gè)Adaboost人臉檢測(cè)算法如圖3所示,首先對(duì)圖像進(jìn)行預(yù)處理并計(jì)算檢測(cè)圖像的積分圖,然后掃描其中每個(gè)N*N窗口,對(duì)于每個(gè)N*N窗口需要進(jìn)入一個(gè)層次型檢測(cè)結(jié)構(gòu)(圖示是一個(gè)三層結(jié)構(gòu)每一層都是經(jīng)過Adaboost算法訓(xùn)練得到一個(gè)強(qiáng)分類器),計(jì)算分類器中的各個(gè)Haar特征的特征值,再和閾值α相比較,進(jìn)而選擇得到一個(gè)該分類器的影響因子。對(duì)于每個(gè)分類器的檢測(cè)中,所有的影響因子累加起來就是該窗口和人臉的相似度,最終把相似度與閾值β比較。若相似度的值小于β,則判定該窗口圖像不是人臉圖像,將排除該窗口并選擇進(jìn)入下一窗口,若相似度的值大于β,則判定該窗口圖像是人臉窗口圖像,該窗口可以到下個(gè)分類器進(jìn)行檢測(cè)。如果該窗口通過所有分類器,則該窗口就是人臉窗口,輸出它的位置信息。將圖像中所有N*N的窗口都檢測(cè)完,第一輪的檢測(cè)也就結(jié)束了。
一副圖像種人臉的大小是不確定的,為了適應(yīng)不同大小人臉的圖像,在完成第一輪原始圖像的檢測(cè)后,需要放大檢測(cè)窗口,并重復(fù)上述的步驟直到窗口不能放大為止。最后算法需要將所有檢測(cè)窗口進(jìn)行合并,將位置和大小相近的窗口合并在一起。
2 人臉檢測(cè)系統(tǒng)SOPC實(shí)現(xiàn)
2.1 硬件設(shè)計(jì)方案
SOPC(System On Programmable Chip)就是要在單塊芯片上搭建出整個(gè)系統(tǒng),其設(shè)計(jì)的內(nèi)容不僅包括硬件設(shè)計(jì),還包括軟件設(shè)計(jì)?;赟OPC的實(shí)現(xiàn)使得處理器、內(nèi)存控制器等嵌入式系統(tǒng)所包含的硬件組成部分,都嵌入在芯片上。
本系統(tǒng)依賴的硬件平臺(tái)是Zedboard開發(fā)板,系統(tǒng)結(jié)構(gòu)框圖如圖4所示,Zedboard的核心處理芯片是Xilinx公司的Zynq-7000芯片系列的XC7Z02,Zynq-7000芯片內(nèi)部主要分為處理器系統(tǒng)PS(Processing System)和可編程邏輯PL(Programmable Logic)。PS部分內(nèi)部嵌入了ARM Cortex—A9硬核模塊,PL部分為FPGA,用戶可自由設(shè)計(jì)自己的硬件邏輯。PS和PL之間的通信通過AXI4高級(jí)通信接口,圖5顯示利用Zynq進(jìn)行SOPC開發(fā)的系統(tǒng)啟動(dòng)流程。
2.2 系統(tǒng)實(shí)現(xiàn)
圖4給出了系統(tǒng)結(jié)構(gòu)框圖,其中PS部分主要負(fù)責(zé)人臉視頻信號(hào)的采集、人臉檢測(cè)等模塊;PL負(fù)責(zé)AXI4總線緩存、VGA驅(qū)動(dòng)、圖像預(yù)處理等模塊。
系統(tǒng)采用現(xiàn)代的V26的USB攝像頭進(jìn)行視頻的采集,該攝像頭支持最大分辨率為1280*960,同時(shí)支持VGA(640*480)模式。圖像數(shù)據(jù)輸出格式可以為8位/16位的YCrCb 4:2:2 ITU2656、IR2601GRB 4:2:2或RGB Raw Data。
圖像預(yù)處理對(duì)人臉檢測(cè)有著很重要的作用,圖像預(yù)處理主要由圖像增強(qiáng)和噪聲濾除,本文選用的是中值濾波是進(jìn)行噪聲濾除,中值濾波能有效的濾除圖像中孤立的像素點(diǎn),還能保護(hù)像素的邊緣信息。圖像增強(qiáng)主要采用直方圖均衡化處理。本文通過PL調(diào)用了Xilinx公司的圖像與處理的IP,通過PL對(duì)圖像預(yù)處理能夠節(jié)省系統(tǒng)的處理時(shí)間。
視頻顯示輸出采用的是群創(chuàng)的AT070TN07數(shù)字液晶,視頻顯示輸出采用群創(chuàng)AT056TN52數(shù)字液晶,其分辨率為640*480,40Pin 16bit的RGB格式輸出,可視角:L/R/T/B:70/70/50/70,反應(yīng)時(shí)間:15 ms。
人臉檢測(cè)模塊主要是通過在PC機(jī)Linux平臺(tái)上的QT進(jìn)行代碼的編寫,并通過Xilinx公司的交叉編譯器xilinx-arm-linux將人臉檢測(cè)代碼編譯成Zynq平臺(tái)可執(zhí)行的文件,然后通過將QT移植到Zynq平臺(tái)。下面是本文人臉檢測(cè)模塊一些參數(shù):
3 實(shí)驗(yàn)與結(jié)果
實(shí)現(xiàn)環(huán)境如圖6所示,輸入圖像采用動(dòng)態(tài)圖像形式,外部USB攝像頭將640*480的視頻信傳送到Zedboard開發(fā)板上,經(jīng)人臉檢測(cè)系統(tǒng)處理。系統(tǒng)輸出采用的方式是開發(fā)板外接一個(gè)液晶驅(qū)動(dòng)電路和液晶屏,經(jīng)過處理的圖像數(shù)據(jù)以640*480@60Hz的標(biāo)準(zhǔn)VGA格式輸出,從液晶屏幕上可以觀察到人臉檢測(cè)的結(jié)果。
本人臉檢測(cè)系統(tǒng)采用的級(jí)聯(lián)分類器有25級(jí),共有2913個(gè)弱分類器。本系統(tǒng)中Zedboard中PS的CPU工作頻率為667 Mhz,PL的工作頻率為100 MHz。得到的實(shí)驗(yàn)結(jié)果如圖7所示,對(duì)于640*480分辨率的視頻信號(hào)的平均檢測(cè)時(shí)間56 ms,平均每秒的檢測(cè)17.8幀的圖像,基本滿足實(shí)時(shí)性的檢測(cè)結(jié)果。檢測(cè)率在93%左右,誤檢率在2%左右。
在資源消耗方面,Zynq中PS的CPU的使用率為20%,內(nèi)存的使用率為9.4%。PL的使用率如表1所示,可以看出Zynq的資源使用率較小。
4 結(jié)論
本文的人臉檢測(cè)系統(tǒng)利用了Xilinx公司的Zynq-7000上完成設(shè)計(jì),減小了系統(tǒng)面積,對(duì)于620*480的視頻信號(hào)基本實(shí)現(xiàn)了實(shí)時(shí)人臉檢測(cè),有很強(qiáng)的實(shí)用性。本文介紹的人臉檢測(cè)體現(xiàn)了SOPC技術(shù)的靈活性,同時(shí)結(jié)合了ARM和FPGA各自的優(yōu)點(diǎn),克服了傳統(tǒng)ARM在圖像視頻領(lǐng)域開發(fā)速度上的劣勢(shì),同時(shí)減小了硬件設(shè)計(jì)的難度。
評(píng)論