關 閉

新聞中心

EEPW首頁 > 安全與國防 > 設計應用 > 基于FPGA的圖像采集和快速移動物體檢測

基于FPGA的圖像采集和快速移動物體檢測

作者: 時間:2012-10-23 來源:網(wǎng)絡 收藏
近年來,計算機技術、通信技術、微電子技術迅猛發(fā)展,數(shù)字系統(tǒng)逐步從傳統(tǒng)方式的系統(tǒng)走向小型化、多樣化和智能化。系統(tǒng)的發(fā)展首先是從圖像采集開始的,本文根據(jù)項目需要提出了一種基于FPGA的圖像采集和移動物體檢測的設計方案,用以實現(xiàn)對特定背景下的圖像采集和移動物體快速檢測。
1 系統(tǒng)總體設計
本系統(tǒng)主要由攝像頭初始化模塊、圖像采集模塊、數(shù)據(jù)傳輸模塊和運動物體檢測模塊構成。本系統(tǒng)中所使用的FPGA[1]芯片型號是FUSION系列的AFS600。如果只是完成本文中所要實現(xiàn)的內(nèi)容,則完全可以選擇更低性能的FPGA芯片,例如ProASIC3系列的A3P060;如果所選擇的芯片沒有片內(nèi)RAM或者片內(nèi)RAM很小,需要對本文的設計做適當?shù)恼{(diào)整才能完成相應的功能。
本系統(tǒng)中,由FPGA模擬SCCB對攝像頭(OV7670)進行初始化,控制端獲取圖像時再啟動FPGA對一幅圖像進行采集,將采集到的數(shù)據(jù)放入一個雙端口的RAM存儲器中,并將數(shù)據(jù)傳輸給控制端??刂贫碎g隔一段時間就通過FPGA采集一幅圖像,通過對這些連續(xù)的圖像進行處理,判定是否有移動物體出現(xiàn),如果有則可以啟動系統(tǒng)。本系統(tǒng)中控制端是ARM7系列開發(fā)板,圖像采集的相關原理圖如圖1所示。

2 FPGA圖像采集端
2.1 攝像頭的初始化

  本系統(tǒng)實驗所使用的攝像頭是OV7670,其感官陣列共656×488個像素。OV7670通過SCCB總線控制,可以輸出整幀、子采樣、取窗口等方式的各種分辨率為8 bit的影響數(shù)據(jù)。用于VGA圖像顯示最高可達30幀/s。用戶可以完全控制圖像質量、數(shù)據(jù)格式和傳輸方式。攝像頭內(nèi)部包含伽瑪曲線、白平衡、飽和度、色度等,這些設置均通過SCCB總線接口完成。
SCCB是和I2C相同的一個協(xié)議。SCCB由一根數(shù)據(jù)線(SIO_D)和一根時鐘線(SIO_C)構成,數(shù)據(jù)線是雙向傳輸?shù)?,時鐘線是由主機完全控制的。本系統(tǒng)中主機是由FPGA芯片來擔任的,對攝像頭初始化的過程只是由主機對攝像頭內(nèi)部的寄存器寫入數(shù)據(jù),不需要完成從攝像頭接收數(shù)據(jù)的過程,而且對攝像頭(OV7670)寄存器寫入指令的格式很統(tǒng)一。指令由3 B構成,第1個字節(jié)為命令字節(jié),對于本文中的攝像頭其內(nèi)容是0x42;第2個字節(jié)是一個8 bit寄存器地址;第3個字節(jié)為所要修改的寄存器內(nèi)容。
根據(jù)以上分析,通過FPGA實現(xiàn)攝像頭初始化的過程簡化了SCCB傳輸協(xié)議,不再考慮接收數(shù)據(jù);而且由于發(fā)送數(shù)據(jù)固定為24 bit,如果再加上起始、終止和確認位,總共需要傳輸?shù)臓顟B(tài)位為29 bit,通過狀態(tài)機機制即可很輕松地編寫FPGA代碼。本系統(tǒng)中將實驗所產(chǎn)生的FPGA信號通過邏輯分析儀提取,結果如圖2所示。


2.2 圖像采集
圖像采集要用到OV7670的3個同步信號,分別為VSYNC(場同步信號)、HREF(行同步信號)和PCLK(像素同步信號),三者的時序關系如圖3所示。VSYNC的上升沿表示一幀新圖像的到來,下降沿則表示一幀圖像數(shù)據(jù)采集的開始;HREF的上升沿表示一行圖像數(shù)據(jù)的開始,HREF為高電平即可開始有效的數(shù)據(jù)采集;PCLK下降沿表明數(shù)據(jù)的產(chǎn)生,PCLK每出現(xiàn)一個下降沿,OV7670 攝像頭便傳輸一個像素數(shù)據(jù)。最后,當下一個VSYNC信號上升沿到來,表明一幀圖像輸出結束,同時表示下一幀圖像輸出開始。從圖3中可以看出,當PCLK下降沿到來時攝像頭就會更新輸出下一個數(shù)據(jù);要通過FPGA采集圖像數(shù)據(jù)就要選定一個穩(wěn)定的圖像數(shù)據(jù)采樣點,通過分析圖像可知,在PCLK為上升沿時最適合圖像數(shù)據(jù)的采樣。

本系統(tǒng)中,FPGA采樣得到的數(shù)據(jù)暫存于一個雙端口的內(nèi)部RAM緩沖存儲器中。當收到采集圖像命令時,系統(tǒng)首先復位雙端口RAM的寫地址,每當PCLK上升沿到來時FPGA將數(shù)據(jù)總線上的數(shù)據(jù)保存下來,接著再將獲得的數(shù)據(jù)寫入雙端口緩沖區(qū)中,每寫完一個數(shù)據(jù)便對寫地址做加1的操作。其主要流程如圖4所示,在用Verilog語言實現(xiàn)對圖像數(shù)據(jù)采集時,檢測PCLK上升沿并將總線數(shù)據(jù)保存到寄存器是在一個周期內(nèi)完成的,將寄存器中的數(shù)據(jù)存入雙端口RAM是在下一個周期完成的,即如果輸入時鐘為48 MHz,則通過FPGA可以對24 MHz的像素頻率(PCLK)的輸出圖像進行采集。其采集頻率即使對640×480的圖像也能達到30幀/s以上的速度。提高圖像采集的速度瓶頸關鍵在圖像從FPGA傳輸?shù)娇刂贫说倪^程中,因此提高數(shù)據(jù)的傳輸速度顯得非常重要。

2.3 數(shù)據(jù)傳輸
本系統(tǒng)通過一個雙端口RAM存儲器來做緩沖,與使用外部SRAM相比,其好處是實現(xiàn)簡單、不需要外接SRAM芯片,同時作為FPGA內(nèi)部RAM,其處理速度很快可以達到350 MHz。但是RAM緩沖區(qū)的大小有限,不能夠存儲一幅完整的圖像,如果控制端讀取數(shù)據(jù)太慢,可能會使原有的緩沖數(shù)據(jù)被覆蓋。從圖3中可以看出,在每一行數(shù)據(jù)傳輸結束后都有很長一段行同步時間,通過使用緩沖區(qū)可以有效利用這段時間來傳輸數(shù)據(jù)。
數(shù)據(jù)傳輸過程的實現(xiàn)流程如圖5所示,該數(shù)據(jù)傳輸過程中使用4根控制線和8根數(shù)據(jù)線。4根控制線分別是開始(start)、結束(finish)、接收狀態(tài)(R_ready)和發(fā)送狀態(tài)(S_ready)。圖5(a)為FPGA發(fā)送端的控制流程,圖5(b)為數(shù)據(jù)接收端的控制流程。發(fā)送端中rdata為從RAM緩沖區(qū)中讀出的數(shù)據(jù),raddress為雙端口讀地址,waddress為雙端口寫地址,數(shù)據(jù)采集完畢為采集過程結束的標志。

3 處理器控制端
3.1 移動物體檢測研究現(xiàn)狀

目前比較常用的運動物體檢測的方法主要有3種,分別是光流法、背景差法和幀差法。光流法的基本原理是給圖像中的每一個像素分配一個速度矢量,根據(jù)各個像素的速度矢量特征,對圖像進行動態(tài)分析[2],但光流計算方法相當復雜,且抗噪性能差;幀差法的基本原理是利用圖像序列相鄰兩幀之間的差異計算出變化的像素[3];背景差法的主要思想是通過對序列圖像建立一個背景模型,估算出當前的最優(yōu)背景圖像,再通過對前景圖像與背景圖像的差分來判斷場景中的運動物體[4]。
3.2 移動物體檢測
由于處理速度和資源都十分有限,本系統(tǒng)需要通過無線網(wǎng)絡來傳輸圖像,在這樣的硬件條件下難以完成視頻采集,如果使用幀差法前后兩幀之間的差異可能會很大;并且本系統(tǒng)主要起到監(jiān)控的功能,通常所監(jiān)控的環(huán)境移動物體很少,所以選用背景差法進行運動物體檢測。
3.2.1 移動物體檢測流程
首先要獲取初始圖像,系統(tǒng)上電后將第一次獲取的圖像作為初始背景,初始背景并不一定準確,但是隨著時間的推移,在自適應背景更新的過程中背景將會越來越趨近于真實的背景;接下來,將采集到的圖像與背景做差,得到背景差圖像,再對背景差圖像做中值濾波處理;之后,對中值濾波后的背景差圖像做二值化,從而提取出移動物體即背景差圖中的白色部分,在對圖像二值化過程中,本系統(tǒng)根據(jù)實際應用環(huán)境采用自適應的二值化閾值。
3.2.2 中值濾波
  由于噪聲和運動的相關性,會出現(xiàn)一部分殘留的噪聲和運動物體內(nèi)部空洞的現(xiàn)象,需要利用形態(tài)學中開和閉運算進行必要的后處理。在眾多預處理方法中,中值濾波作為一種常用的圖像預處理方法,能夠有效地去除噪聲、平滑圖像,并能夠有效地保留圖像的邊緣信息,所以本系統(tǒng)采用中值濾波來處理圖像。
  本系統(tǒng)所采用的是快速中值濾波[5]??焖僦兄禐V波的處理過程為:首先獲得需要中值濾波處理的像素及其周圍像素,結果為一個3×3矩陣;然后分別計算每一行中3個數(shù)據(jù)的最大值max、中值med和最小值min;再在上面求得的3個最小值中求最大值max_of_min,最大值中求最小值min_of_max,中值中求中值med_of_med;最后在max_of_min、min_of_max和med_of_med中求中值middle,middle即為所求,把3×3矩陣的中間值換成middle就完成了對Data5的中值濾波處理。
3.2.3 自適應閾值
由于閾值的大小對移動物體的檢測主要表現(xiàn)在:當閾值定得較大時,會忽略背景差圖中的一些微小變化;當閾值定得太小,又會導致出現(xiàn)太多的移動物體,造成錯誤的移動物體檢測。因此,可以根據(jù)經(jīng)驗給移動物體個數(shù)規(guī)定一個上限和一個下限。當檢測到的移動物體個數(shù)大于所規(guī)定的上限時就適當?shù)脑龃箝撝?,當移動物體個數(shù)小于所設置的下限時就適當?shù)卦龃箝撝?。閾值的變化不是無限的,而是在所容忍的范圍之內(nèi)變化的。本系統(tǒng)經(jīng)過上述一系列處理后得到的結果如圖6、圖7所示:圖6為包含移動物體及背景的圖像,圖7為經(jīng)過一系列處理后得到的對移動物體二值化處理后的結果,其中白色部分為移動物體。

3.2.4 背景自適應更新
現(xiàn)實環(huán)境中,即使是固定不變的背景也會因為天氣和光照條件的變化、周圍環(huán)境的影響、物體的經(jīng)過以及攝像機的輕微抖動等因素而發(fā)生變化。因此在長期運行的運動檢測系統(tǒng)中背景的更新至關重要。背景更新一般有統(tǒng)計平均法和加權平均法兩種方法。統(tǒng)計平均即取幾幀圖像的平均值作為背景,其公式如下:

本系統(tǒng)采用的更新策略為加權平均,F(xiàn)K表示采集的圖像中扣除被判定為移動物的那部分圖像,對于移動物體部分,將會保留其原來的背景像素值。
本文重點介紹了圖像采集和移動物體檢測,系統(tǒng)主要著眼于對一個簡單實用型監(jiān)控系統(tǒng)的研究,為此提出了一些有效的方法。隨著硬件技術的發(fā)展和芯片價格的下降,系統(tǒng)在日后可以作更大的改進和完善。
參考文獻
[1] 王冠,俞一鳴.面向CPLD/FPGA的Verilog設計[M].北京: 機器工業(yè)出版社,2007.
[2] MEYER D, DENZLER J, NIERMANN H. Model based extraction of articulated objects in image sequences for gait analysis[C]. SantaBara, California: Proc IEEE International Conference on Image Processing, 1997:50-78.
[3] LIPTON A, FUJIYOSHI H, PATIL R. Moving target classification and tracking form real-time video[C]. Princeton: Proc IEEE Workshop on Application of Computer Vision,1998.
[4] STEPHEN J, SUMER J, ZORAN D. Tracking groups of people[J].Computer Vision and Image Understanding,2000,80(1):42-56.
[5] 侯景忠.基于運動物體檢測的智能監(jiān)控系統(tǒng)[D].石家莊:河北工業(yè)大學,2008.
[6] 湯武當. 基于FPGA的運動物體檢測系統(tǒng)設計[D].長沙: 湖南大學,2010.

fpga相關文章:fpga是什么


攝像頭相關文章:攝像頭原理


評論


相關推薦

技術專區(qū)

關閉