文獻標識碼: A
文章編號: 0258-7998(2011)03-0026-03
運動目標檢測是通過找到圖像序列中的運動像素點和靜止像素點,從而找到前景中的變化區域,進而將運動的目標物體從背景圖像中提取出來。現有的運動目標檢測方法主要有光流法、幀差法、背景圖像差分法[1]和邊緣檢測算法。光流法運算公式復雜、計算量大,不適用于適時性要求很高的場合。幀差法和背景圖像差分法相比光流法更簡單、易于實時操作 ,且應用廣泛。由于背景圖像差分法對由于光照引起的動態場景變化非常敏感,隨著時間的推移,如實際光線、環境的變化或背景中固定對象的移動都會使得背景圖像發生變化。向海霞、王衛星[2]提出一種利用卡爾曼濾波對背景進行預測與更新算法;張彥[3]等人提出一種將基于特征點的方法和基于像素點的背景建模方法相結合的背景更新算法。但這些算法復雜,難以在硬件上實現,只適合利用軟件方式實現,很難提高速度,達到實時性要求。而2009年徐方明、盧官明[4]提出基于改進surendra型背景更新算法的運動目標檢測算法,通過改變靜態閾值為動態閾值,利用動態閾值更新背景模型,再將當前圖像和當前更新背景做差運算之后產生差分圖像。該算法在有運動目標存在的情況下提取出可靠的背景模型,并且能夠自適應地對背景模型進行較為精確的更新,更新速度較快。但所采用的是軟件方式實現,執行速度不高。本文采用改進的surendra背景更新算法,針對該算法的特點進行硬件結構分析,利用FPGA流水線任務處理技術以及并行處理的優點,采用硬件方式對動態背景下運動目標的提取進行實時檢測。
1 改進型surendra背景更新算法原理
改進surendra型背景更新算法的基本思想是事先將背景圖像儲存下來,利用當前幀圖像減去背景圖像,從而比較得出運動目標。由于周圍環境的變化造成圖像背景的變化,采用傳統靜態閾值更新背景將不能很好地適應環境的變化,需要動態閾值實時更新背景,以便更好地分割前景和背景。這里采用基于灰度直方圖中圖像最大灰度值與最小值灰度值的均值作為圖像的分割閾值??傮w實現分為四個步驟:初始幀圖像的建立、動態閾值的求取、背景幀圖像的更新和差值圖像的求取。改進型surendra背景更新算法結構如圖1所示。
(1)背景圖像的建立
將采集到的最初M幀圖像數據進行平均,以這M幀圖像的均值圖像作為最起始的背景圖像。這樣初始背景圖像為最真實的背景圖像,減小了以單幀作為起始背景圖像時,因外界環境的突變而帶來的背景圖像不準確的可能性。其描述如下:
2 改進型surendra背景更新算法硬件實現特點分析
(1)初始背景幀圖像的建立。為了能客觀地反映原始背景圖像的特點,需要將最開始的M幀圖像進行存儲再求平均,所以需要采用雙端口RAM[5,6]對M幀圖像進行存儲。這里綜合考慮圖像速度和所占用資源情況,COUNTER計數用于將前M幀圖像進行存儲再求平均作為初始幀的背景圖像。在求平均時,需要用到除法,可以通過移位方式求平均,減小資源的占用。初始背景幀圖像原理如圖2所示。
(2)背景幀和當前幀圖像的存儲。因需要對圖像背景幀更新后再進行差分運算,所以需要用RAM對背景幀和當前幀圖像進行存儲。由于要對背景幀和當前幀進行暫存,將暫存的當前幀圖像和背景幀圖像輸出到更新模塊進行背景更新運算,同時將更新后的背景數據再次輸入到背景更新模塊之中,最后再將更新后的背景幀和當前幀圖像同步輸出做差分運算。因為一幀有效的背景幀和當前幀要完成一次差分運算需要一次寫入和兩次讀出RAM的操作,而采用2個傳統的雙端口RAM不能達到所要實現的功能,需要4個雙端口RAM才能實現,占用的資源將多一倍,因此這里采用三端口RAM實現對背景幀和當前幀圖像的存儲,可以節省一半的RAM資源占用率。
(3)對圖像存儲的三端口RAM采用分時復用的方式,節約了資源占用率。同時將這兩個三端口RAM的數據并行處理,同步實現對背景圖像數據和當前幀圖像數據的存取操作,并且將閾值模塊、更新算法模塊和差值模塊采用流水線技術,可以大量節省對圖像數據的處理時間。
3 改進型surendra背景更新算法的FPGA實現
(1)背景幀圖像的建立與存儲
總體硬件結構如圖4所示。選擇模塊A是一個選擇開關,用于控制前M幀的圖像數據和第M+1幀及以后圖像數據的輸入流向。在前M幀時,選擇模塊A將其每一幀的數據輸入到均值模塊中,均值模塊將其每一幀圖像數據的對應像素坐標的像素值相加,存入到雙端口RAM A中,同時在下一幀圖像數據輸入到均值模塊時將雙端口RAM A中的圖像數據輸出,使其和下一幀對應的圖像數據相加,并將結果重新存入RAM A中。當第M幀圖像數據在均值模塊中相加時,求對應圖像像素坐標的均值,并將其均值輸入到雙端口RAM A進行鎖存,同時選擇模塊A將第M+1幀及其以后的圖像數據輸入到三端口RAM B中。
程序初始時,將前面的4幀圖像數據(M=4)求均值。這里所采用的圖片尺寸是128×128,所以雙端口RAM A為存儲深度128×128,8 bit數據寬度。在第M幀有效數據輸入到RAM A中時,即背景圖像B0存入到了RAM A中。如圖5所示。
(2)閾值T1選擇
在第M+1幀數據輸入到三端口RAM B中時,RAM端口控制模塊在RAM B寫使能端WRB有效時啟動RAM B 讀端口Qa的讀使能端RDBa有效,將第M+1幀數據讀出。分別定義兩個寄存器,將每個時鐘來的有效數據進行比較,分別存儲最大像素值和最小像素值,求出最大值和最小值之后,將兩數相加并右移一位求取均值。此時選擇模塊B選通RAM A,RAM端口控制模塊使其RAM A的讀端口RDA有效。在第M+2幀以后,選擇模塊B選通RAM B端口,關閉RAM A的讀端口RDA。
(3)背景圖像的更新
當RAM A的讀端口RDA有效時, RAM B讀端口Qa的讀使能RDBa無效。在RDA有效后的第1個CLK的上升沿時,將雙端口RAM A中的初始背景數據b0(i,j)和RAM C中讀端口Qa的數據I1(i,j)讀出到更新背景算法模塊,此時RAM C中讀出的數據I1(i,j)=0。
更新背景算法模塊RDA有效后的第2個CLK的上升沿時啟動有效的判斷,若輸入的I1(i,j)與b0(i,j)滿足Ik(i,j)<T1,則將此時的背景像素值變換為b1(i,j)=ηI1(i,j)+(1-η)b0(i,j),否則b1(i,j)=b0(i,j)。當求出第一個新的背景值b0(0,0)時,更新背景算法模塊同時使RAM C寫端口WRC有效,將b1(i,j)輸入到RAM C暫存。在第三個CLK的上升沿,啟動RAM B讀端口Qb的使能信號RDBb和RAM C讀端口Qb的使能信號RDCb有效,同步讀出當前幀的圖像數據I1(i,j)和更新后的背景圖像數據b0(i,j)。此時第M+1幀的有效圖像數據和當前幀的背景圖像數據同步輸出到差分模塊中。利用流水線方式,依次將第M+2幀及其以后的圖像數據存入到RAM B中,并利用RAM B和RAM C進行背景更新,將更新后的背景數據與當前幀數據同步輸出。這里以η=0.875,即η=1/4+1/8來進行硬件設計,SEL用于判斷是背景值不變還是背景像素需要更新,DELAY用于保證數據的同步性。算法結構如圖6所示。
采用Quartus II軟件對系統進行綜合、仿真,系統在FPGA芯片中(EP2C70F672C6)實現。當采用50 MHz時鐘處理圖像大小為128×128×8的灰度圖像時,背景更新和目標物體的提取所需時間大約為0.755 4 ms。由于采用流水線及并行處理操作方式,使其背景更新、目標提取和差分處理同步進行,加快了處理速度,從而完全能夠保證圖像系統的實時性。
4 實驗驗證
圖7(a)為模型飛機在不同運動時刻不同姿態的幀圖像;圖7(b)為固定閾值背景更新、更新速率為0.875時所提取到的目標飛機;圖7(c)為動態閾值背景更新、更新速率也為0.875時所提取到的目標飛機??梢妱討B閾值能更有效適應動態環境運動目標物體的提取。
本文針對改進型surendra背景更新算法原理的特點,結合硬件描述語言以及RAM存儲器,提出了改進型surendra背景更新算法的硬件實現方案,并在FPGA芯片中實現了對運動目標物體的實時提取,提高了對運動目標物體的提取速度,同時也減少了系統資源的占用率,保證了系統的實時性要求。本方法在圖像處理中有著廣泛的應用前景。
參考文獻
[1] HUANG Weiyao,LIU Zhijing,PAN Wenjuan.The precise recognition of moving object in complex background[C]. Third International Conference on Natural Computation,2007(2):246-252.
[2] 向海霞,王衛星.車輛檢測中的自適應背景更新算法研究[J].計算機工程與應用,2009,45(11):235-237.
[3] 張彥,周忠,吳威.一種用于運動物體檢測的自適應更新背景模型[J].計算機輔助設計與圖形學學報,2008,20(10):1317-1321.
[4] 徐方明,盧官明.基于改進surendra背景更新算法的運動目標檢測算法[J].山西電子技術,2009(5):39-40.
[5] 王紹雷,趙進創,周毅.基于FPGA的圖像邊緣檢測系統的設計[J].電子技術應用,2007(6):40-42.
[6] 魯恒.視頻圖像灰度信號直方圖均衡的FPGA實現[J].電子技術應用,2006(11):105-107.