文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)11-0036-03
0 引言
近年來,大規(guī)模集成電路的快速發(fā)展使其在計(jì)算機(jī)視覺領(lǐng)域得到了廣泛的應(yīng)用。而運(yùn)動(dòng)目標(biāo)檢測(cè)技術(shù)是計(jì)算機(jī)視覺的重要組成部分,因此吸引了世界各國科學(xué)研究者投入到對(duì)這一技術(shù)的研究[1-2]。
目前,運(yùn)動(dòng)目標(biāo)檢測(cè)最常用的是幀間差分算法、背景差分算法和光流法3種算法。通過比較,本系統(tǒng)采用易于硬件實(shí)現(xiàn)、實(shí)時(shí)性好的幀間差分算法[3-4]。FPGA內(nèi)含豐富的邏輯資源,加之內(nèi)嵌著DSP塊,有著出色的計(jì)算能力;同時(shí)FPGA采用的體系是并行體系且具有流水性的工作方式,可以加快數(shù)據(jù)流的數(shù)據(jù)。因此,本設(shè)計(jì)采用FPGA模塊作為主控制和算法處理單元。
1 系統(tǒng)的總體結(jié)構(gòu)
整個(gè)系統(tǒng)由視頻信號(hào)采集單元、控制和算法實(shí)現(xiàn)單元、數(shù)據(jù)緩存單元和視頻信號(hào)顯示單元四部分組成,如圖1所示。
視頻采集單元在FPGA的控制下,對(duì)帶有運(yùn)動(dòng)目標(biāo)的模擬視頻進(jìn)行采集,并轉(zhuǎn)換為數(shù)字視頻信號(hào)傳輸?shù)紽PGA進(jìn)一步處理;FPGA主要負(fù)責(zé)對(duì)其他模塊進(jìn)行功能控制以及對(duì)傳入的視頻信號(hào)進(jìn)行灰度化、幀間差分和閾值分割,以實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)的檢測(cè); 數(shù)據(jù)緩存單元是在FPGA的控制下,完成對(duì)視頻圖像數(shù)據(jù)的緩存,配合FPGA進(jìn)行圖像處理;視頻信號(hào)顯示單元是在FPGA的控制下對(duì)處理前后的視頻圖像進(jìn)行顯示,可以直觀地觀察檢測(cè)效果。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 視頻信號(hào)采集單元
本系統(tǒng)使用的CCD(Charge Coupled Device)相機(jī)輸出PAL制式視頻。而FPGA只能處理數(shù)字視頻信號(hào),因此需要將PAL制式信號(hào)轉(zhuǎn)換為標(biāo)準(zhǔn)的數(shù)字視頻格式。飛利浦公司研制的SAA7113H是一款功能強(qiáng)大的9位視頻解碼芯片,它可以自動(dòng)檢測(cè)視頻制式,并且可以輸出包含YUV4:2:2在內(nèi)的不同格式的數(shù)字視頻。圖2所示為本系統(tǒng)中視頻解碼模塊的電路圖。
本設(shè)計(jì)僅使用4路輸入通道中的1路即可,將SAA7113H解碼后的數(shù)字視頻信號(hào)傳輸給FPGA進(jìn)行下一步處理,片選信號(hào)CE接高電平時(shí),芯片選通;像素時(shí)鐘接口LLC外接27 MHz時(shí)鐘信號(hào)。
2.2 視頻圖像緩存單元
在完成運(yùn)動(dòng)目標(biāo)檢測(cè)的過程中,需要至少緩存一幀圖像。為了節(jié)省FPGA內(nèi)部有限的存儲(chǔ)資源,緩存數(shù)據(jù)量巨大的視頻圖像時(shí),本系統(tǒng)采用外接DDR SDRAM來進(jìn)行數(shù)據(jù)緩存。Hynix公司研制的存儲(chǔ)容量為2 M×4 Banks×16 bit的HY57V281620FTP-H型號(hào)SDRAM滿足本設(shè)計(jì)要求。其各引腳功能如表1所示。其中WE#無效時(shí)進(jìn)行讀操作;A0~A11為行列地址選擇信號(hào),當(dāng)列有效時(shí),使用A0~A8表示列地址,當(dāng)行有效時(shí),使用A0~A11表示行地址,其中A10還是自動(dòng)預(yù)充的標(biāo)記[5]。
2.3 視頻圖像顯示單元
經(jīng)過FPGA處理輸出的視頻信號(hào)為數(shù)字信號(hào),而一般的顯示器只能顯示模擬信號(hào),因此需要將數(shù)字視頻信號(hào)轉(zhuǎn)換為模擬視頻信號(hào)進(jìn)行顯示。飛利浦公司的視頻編碼芯片SAA7121H轉(zhuǎn)換效率高,設(shè)計(jì)簡(jiǎn)單,可以將FPGA處理輸出的YCbCr格式的數(shù)字視頻信號(hào)編碼成可以直接顯示的PAL制式的模擬視頻信號(hào),本設(shè)計(jì)采用此芯片完成視頻編碼并進(jìn)行顯示。其電路如圖3所示。
MP0~MP7是8個(gè)數(shù)字視頻數(shù)據(jù)輸入端口;RCV1、RCV2是行、場(chǎng)同步信號(hào)接口;LLC是27 MHz像素時(shí)鐘信號(hào)接口;SCL、RESET和SDA分別是串行時(shí)鐘信號(hào)線、復(fù)位信號(hào)以及雙向串行數(shù)據(jù)信號(hào)線,設(shè)計(jì)時(shí)這3個(gè)接口都要外接一個(gè)2.2 kΩ的上拉電阻。CVBS是CVBS信號(hào)的輸出端口,與顯示屏連接可顯示視頻圖像。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 幀間差分算法
幀間差分算法是對(duì)視頻信號(hào)中相鄰幀或者多幀圖像中同一位置的像素點(diǎn)進(jìn)行差分運(yùn)算?,F(xiàn)在以相鄰幀的幀間差分算法為例,其基本流程如圖4所示。設(shè)第k-1幀圖像中(x,y)位置處的像素值為fk-1(x,y),第k幀相同位置處的像素值為fk(x,y),先對(duì)二者按式(1)進(jìn)行差分運(yùn)算得到?駐k(x,y),再將?駐k(x,y)按式(2)進(jìn)行二值化處理。
其中,T為預(yù)設(shè)“閾值”,可以從0~255中取值,具體大小與實(shí)際環(huán)境有關(guān)。當(dāng)k(x,y)≥T時(shí),Rk(x,y)=1,此時(shí)判斷該像素點(diǎn)為運(yùn)動(dòng)區(qū)域像素點(diǎn);當(dāng)?駐k(x,y)<T時(shí),Rk(x,y)=0,此時(shí)判斷該像素點(diǎn)為靜止區(qū)域像素點(diǎn)。
幀間差分算法中兩幀圖像相差的時(shí)間短,使得環(huán)境中光線變化等不可控因素對(duì)設(shè)計(jì)的影響較小,因此具有良好的抗干擾性,且對(duì)動(dòng)態(tài)環(huán)境有很強(qiáng)的適應(yīng)能力。
3.2 幀間差分算法的實(shí)現(xiàn)
系統(tǒng)開始工作后,F(xiàn)PGA先通過I2C總線對(duì)SAA7113H和SAA7121H進(jìn)行初始化,使視頻采集及視頻顯示單元能夠正常工作。配置流程如圖5所示。
視頻信號(hào)采集單元采集的有效視頻數(shù)據(jù)分兩路傳輸:一路直接傳輸給視頻信號(hào)顯示單元進(jìn)行顯示,用來與處理后的結(jié)果進(jìn)行對(duì)比分析;另一路傳輸給圖像預(yù)處理模塊進(jìn)行灰度化處理,以備后續(xù)處理。經(jīng)過圖像預(yù)處理模塊后的視頻數(shù)據(jù)僅有Y分量;同時(shí)需要設(shè)置A、B兩個(gè)數(shù)據(jù)通道進(jìn)行傳輸。當(dāng)寫信號(hào)sd_wr有效,提取的Y分量數(shù)據(jù)開始寫入SDRAM中,當(dāng)讀信號(hào)sd_rd有效時(shí),同時(shí)將A、B兩個(gè)數(shù)據(jù)通道打開;此時(shí)A數(shù)據(jù)通道傳輸?shù)臄?shù)據(jù)是第n+m幀圖像數(shù)據(jù)的Y分量,而B數(shù)據(jù)通道的數(shù)據(jù)卻是第n幀圖像數(shù)據(jù)的Y分量。A、B兩通道的數(shù)據(jù)同時(shí)傳入“數(shù)據(jù)做差比較器”中進(jìn)行差分運(yùn)算,即能得出視頻中第n+m幀圖像的像素點(diǎn)與第n幀圖像的像素點(diǎn)的差分結(jié)果。若差分結(jié)果的絕對(duì)值大于預(yù)先設(shè)定的閾值t(t值取25),則判定此像素點(diǎn)發(fā)生較大的變化,為運(yùn)動(dòng)目標(biāo)區(qū)域的像素點(diǎn)。設(shè)計(jì)流程如圖6所示[6]。
4 系統(tǒng)試驗(yàn)結(jié)果與分析
利用幀間差分算法對(duì)運(yùn)動(dòng)目標(biāo)檢測(cè)后,為完善檢測(cè)效果,需要進(jìn)行“閾值分割”處理,而這個(gè)“閾值”需要根據(jù)具體實(shí)驗(yàn)測(cè)試環(huán)境提前設(shè)定。選用與最終實(shí)驗(yàn)測(cè)試攝像頭采集的視頻環(huán)境類似的一段視頻進(jìn)行軟件仿真,分別選用“閾值”為10、20、25、30、40、50進(jìn)行仿真分析,結(jié)果如圖7所示。
從圖7中可以看出,當(dāng)“閾值”小于25時(shí),出現(xiàn)了很多誤判,導(dǎo)致檢測(cè)效果不理想;當(dāng)“閾值”大于25時(shí),雖然干擾像素點(diǎn)減少,但檢測(cè)出的運(yùn)動(dòng)目標(biāo)出現(xiàn)了“空洞”,“閾值”越大,“空洞”越大。因此,“閾值”選定為25。
搭建實(shí)驗(yàn)平臺(tái)對(duì)系統(tǒng)進(jìn)行測(cè)試,顯示屏顯示的原視頻圖像的其中4幀圖像如8所示;經(jīng)過硬件電路端處理以后的視頻圖像的其中4幀圖像如圖9所示。
分析以上實(shí)驗(yàn)結(jié)果,不難發(fā)現(xiàn),圖9(a)和圖9(b)所示的檢測(cè)結(jié)果出現(xiàn)了較多的“空洞”,因?yàn)樵谶@兩個(gè)時(shí)間段,運(yùn)動(dòng)中的人經(jīng)過一輛與背景顏色相近的汽車前面,在檢測(cè)時(shí),把運(yùn)動(dòng)目標(biāo)上的部分像素點(diǎn)誤認(rèn)為是背景圖像,故出現(xiàn)了“空洞”;圖9(c)所示的檢測(cè)效果更好,因?yàn)檫@段時(shí)間運(yùn)動(dòng)目標(biāo)顏色與所處背景顏色差異較大,在進(jìn)行幀間差分檢測(cè)時(shí),運(yùn)動(dòng)目標(biāo)能更好地從背景中分割出來;圖9(d)所示的檢測(cè)結(jié)果中,運(yùn)動(dòng)中的人臉部位出現(xiàn)了空洞,因?yàn)榇藭r(shí)人臉膚色與目標(biāo)所處的背景顏色接近。
5 結(jié)論
本文設(shè)計(jì)了一種基于FPGA的運(yùn)動(dòng)目標(biāo)檢測(cè)系統(tǒng),以FPGA為控制核心和算法實(shí)現(xiàn)單元,加上外圍的采集和顯示電路,可以實(shí)時(shí)地檢測(cè)運(yùn)動(dòng)目標(biāo)并顯示。在軍事公安、工業(yè)生產(chǎn)、生物醫(yī)學(xué)等各個(gè)領(lǐng)域都有廣泛的應(yīng)用前景。
參考文獻(xiàn)
[1] 郭浩.基于FPGA的運(yùn)動(dòng)目標(biāo)檢測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué),2013.
[2] 劉攀.車輛目標(biāo)檢測(cè)和跟蹤技術(shù)研究[D].太原:中北大學(xué),2011.
[3] 王瑾琦.復(fù)雜背景下運(yùn)動(dòng)目標(biāo)檢測(cè)與跟蹤方法研究[D].太原:中北大學(xué),2012.
[4] 高美鳳,劉娣.分塊幀差和背景相融合的運(yùn)動(dòng)目標(biāo)檢測(cè)[J].計(jì)算機(jī)應(yīng)用研究,2013,30(1):299-302.
[5] 程曉東,鄭為民,唐志敏.基于DDR SDRAM控制器時(shí)序分析的模型[J].計(jì)算機(jī)工程,2005,31(17):182-184.
[6] 田耘,徐文波.Xilinx FPGA開發(fā)實(shí)用教程[M].北京:清華大學(xué)出版社,2012.