《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的運(yùn)動(dòng)目標(biāo)檢測(cè)系統(tǒng)設(shè)計(jì)
基于FPGA的運(yùn)動(dòng)目標(biāo)檢測(cè)系統(tǒng)設(shè)計(jì)
2014年電子技術(shù)應(yīng)用第11期
杜文略1,劉建梁1,沈三民1,劉文怡1,關(guān)詠梅2
1.中北大學(xué) 儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室&電子測(cè)試技術(shù)重點(diǎn)實(shí)驗(yàn)室, 山西 太原030051; 2.北京宇航系統(tǒng)工程研究所,北京100076
摘要: 針對(duì)運(yùn)動(dòng)目標(biāo)檢測(cè)技術(shù)在國(guó)防軍工領(lǐng)域的廣泛應(yīng)用,設(shè)計(jì)了一種基于FPGA的運(yùn)動(dòng)目標(biāo)檢測(cè)系統(tǒng)。利用CCD攝像頭采集帶有運(yùn)動(dòng)目標(biāo)的視頻圖像,并將采集后視頻圖像傳輸給SAA7113H進(jìn)行解碼,再將解碼后的數(shù)字信號(hào)供給FPGA實(shí)現(xiàn)幀間差分算法以達(dá)到運(yùn)動(dòng)目標(biāo)檢測(cè)的目的,之后將數(shù)據(jù)傳輸給SAA7121H芯片進(jìn)行編碼,并將編碼后的視頻數(shù)據(jù)在顯示單元中顯示。實(shí)驗(yàn)測(cè)試結(jié)果表明,該運(yùn)動(dòng)目標(biāo)檢測(cè)系統(tǒng)能夠?qū)崟r(shí)地檢測(cè)出運(yùn)動(dòng)目標(biāo),穩(wěn)定性高,實(shí)時(shí)性好。
中圖分類(lèi)號(hào): TN919
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)11-0036-03
The design of moving object detection system based on FPGA
Du Wenlue1,Liu Jianliang1,Shen Sanmin1,Liu Wenyi1,Guan Yongmei2
1.Ministry of Education Key Laboratory of Instrumentation Science & Dynamic Measurement & Key Laboratory of Electronic Testing Technology,North University of China, Taiyuan 030051,China;2.Beijing Institute of Astronalltical Systems Engineering,Beijing 100076,China
Abstract: In view of the wide application of moving object detection technique in the field of national defense, a kind of moving object detection system is designed based on FPGA. Video image with a moving target is collected by using CCD camera, and the sampled video image is transmitted to SAA7113H for decoding. Then decoded digital signal is supplied to the FPGA to realize frame difference algorithm to achieve the purpose of moving target detection, the data is transmitted to a SAA7121H chip to encode, and the encoded video data displays in the display unit. The experimental results show that, the moving target detection system can real-time detect moving targets, and it has high stability and good real-time performance.
Key words : moving object detection;computer vision;inter-frame difference;DDR SDRAM

0 引言

  近年來(lái),大規(guī)模集成電路的快速發(fā)展使其在計(jì)算機(jī)視覺(jué)領(lǐng)域得到了廣泛的應(yīng)用。而運(yùn)動(dòng)目標(biāo)檢測(cè)技術(shù)是計(jì)算機(jī)視覺(jué)的重要組成部分,因此吸引了世界各國(guó)科學(xué)研究者投入到對(duì)這一技術(shù)的研究[1-2]。

  目前,運(yùn)動(dòng)目標(biāo)檢測(cè)最常用的是幀間差分算法、背景差分算法和光流法3種算法。通過(guò)比較,本系統(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所示。

001.jpg

  視頻采集單元在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)中視頻解碼模塊的電路圖。

002.jpg

  本設(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è)的過(guò)程中,需要至少緩存一幀圖像。為了節(jié)省FPGA內(nèi)部有限的存儲(chǔ)資源,緩存數(shù)據(jù)量巨大的視頻圖像時(shí),本系統(tǒng)采用外接DDR SDRAM來(lái)進(jìn)行數(shù)據(jù)緩存。Hynix公司研制的存儲(chǔ)容量為2 M×4 Banks×16 bit的HY57V281620FTP-H型號(hào)SDRAM滿(mǎn)足本設(shè)計(jì)要求。其各引腳功能如表1所示。其中WE#無(wú)效時(shí)進(jìn)行讀操作;A0~A11為行列地址選擇信號(hào),當(dāng)列有效時(shí),使用A0~A8表示列地址,當(dāng)行有效時(shí),使用A0~A11表示行地址,其中A10還是自動(dòng)預(yù)充的標(biāo)記[5]。

009.jpg

  2.3 視頻圖像顯示單元

  經(jīng)過(guò)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所示。

003.jpg

  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)線(xiàn)、復(fù)位信號(hào)以及雙向串行數(shù)據(jù)信號(hào)線(xiàn),設(shè)計(jì)時(shí)這3個(gè)接口都要外接一個(gè)2.2 kΩ的上拉電阻。CVBS是CVBS信號(hào)的輸出端口,與顯示屏連接可顯示視頻圖像。

3 系統(tǒng)軟件設(shè)計(jì)

  3.1 幀間差分算法


004.jpg

  幀間差分算法是對(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)行二值化處理。

  J6B83~EQI67T_5(I_ON4E%F.png

  其中,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)境中光線(xiàn)變化等不可控因素對(duì)設(shè)計(jì)的影響較小,因此具有良好的抗干擾性,且對(duì)動(dòng)態(tài)環(huán)境有很強(qiáng)的適應(yīng)能力。

  3.2 幀間差分算法的實(shí)現(xiàn)

  系統(tǒng)開(kāi)始工作后,F(xiàn)PGA先通過(guò)I2C總線(xiàn)對(duì)SAA7113H和SAA7121H進(jìn)行初始化,使視頻采集及視頻顯示單元能夠正常工作。配置流程如圖5所示。

005.jpg

  視頻信號(hào)采集單元采集的有效視頻數(shù)據(jù)分兩路傳輸:一路直接傳輸給視頻信號(hào)顯示單元進(jìn)行顯示,用來(lái)與處理后的結(jié)果進(jìn)行對(duì)比分析;另一路傳輸給圖像預(yù)處理模塊進(jìn)行灰度化處理,以備后續(xù)處理。經(jīng)過(guò)圖像預(yù)處理模塊后的視頻數(shù)據(jù)僅有Y分量;同時(shí)需要設(shè)置A、B兩個(gè)數(shù)據(jù)通道進(jìn)行傳輸。當(dāng)寫(xiě)信號(hào)sd_wr有效,提取的Y分量數(shù)據(jù)開(kāi)始寫(xiě)入SDRAM中,當(dāng)讀信號(hào)sd_rd有效時(shí),同時(shí)將A、B兩個(gè)數(shù)據(jù)通道打開(kāi);此時(shí)A數(shù)據(jù)通道傳輸?shù)臄?shù)據(jù)是第n+m幀圖像數(shù)據(jù)的Y分量,而B(niǎo)數(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]。

006.jpg

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)境類(lèi)似的一段視頻進(jìn)行軟件仿真,分別選用“閾值”為10、20、25、30、40、50進(jìn)行仿真分析,結(jié)果如圖7所示。

007.jpg

  從圖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。

008.jpg

  搭建實(shí)驗(yàn)平臺(tái)對(duì)系統(tǒng)進(jìn)行測(cè)試,顯示屏顯示的原視頻圖像的其中4幀圖像如8所示;經(jīng)過(guò)硬件電路端處理以后的視頻圖像的其中4幀圖像如圖9所示。

010.jpg

  分析以上實(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)過(guò)一輛與背景顏色相近的汽車(chē)前面,在檢測(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)能更好地從背景中分割出來(lái);圖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] 劉攀.車(chē)輛目標(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開(kāi)發(fā)實(shí)用教程[M].北京:清華大學(xué)出版社,2012.


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