姓名:方瑞敏;學號:20021210923;學院:電子工程學院
轉(zhuǎn)自
https://mp.weixin.qq.com/s/914-OD_8OYV8znMMo_-VDw
【嵌牛導(dǎo)讀】本文介紹了運動目標檢測系統(tǒng)的設(shè)計
【嵌牛鼻子】FPGA,圖像處理算法
【嵌牛提問】如何用FPGA實現(xiàn)運動目標檢測?
【嵌牛正文】
系統(tǒng)整體設(shè)計方案
本系統(tǒng)將硬件控制器設(shè)計,圖像處理算法設(shè)計兩大部分有機地進行結(jié)合使之能夠完成運動目標檢測。在圖像存入SDRAM前需要將圖像格式由RGB轉(zhuǎn)換為YCbCr。運動目標檢測實現(xiàn)系統(tǒng)整體框架如圖所示。

圖像處理算法及硬件驅(qū)動
在SDRAM中存儲兩幀相鄰灰度圖像的數(shù)據(jù),使用VGA驅(qū)動程序?qū)蓭瑪?shù)據(jù)同時從SDRAM中取出。使用中值濾波算法將兩幀數(shù)據(jù)分別進行濾波平滑噪聲,對圖像信息進行差分。差分后的二值化像素群使用膨脹算法拓展邊界,穩(wěn)定檢測效果,通過最小包圍盒模塊確定二值化圖像邊界,畫出包圍盒方框。將方框疊加在原圖像上并輸出即可完成對運動目標的檢測。

幀間差分法的核心是對兩幀相鄰圖像進行存儲,根據(jù)數(shù)據(jù)存儲的位置大致可以分為三類,第一類是上一幀圖像與下一幀圖像分別位于兩段不同的存儲空間中。第二類是將兩幀圖像數(shù)據(jù)交叉存儲于同一段存儲空間中。第三類是將兩幀圖像存儲于同一存儲空間的高低位上如圖所示。

與前兩種存儲方式相比,將兩幀圖像數(shù)據(jù)存儲于同一地址存儲空間中取出時序更加簡單。兩幀圖像在取出時擁有相同的行場同步信號時序,數(shù)據(jù)也自然對齊,有利于后續(xù)圖像算法的進行。
一般地,對于同一地址空間寫入兩次數(shù)據(jù),第一次寫入的數(shù)據(jù)將會被第二次的數(shù)據(jù)覆蓋。為了解決這個問題,一般的存儲器都會提供數(shù)據(jù)掩碼功能。通過掩碼屏蔽特定位置的數(shù)據(jù)寫入便可防止數(shù)據(jù)覆蓋。SDRAM提供了數(shù)據(jù)掩碼引腳DQM[1:0],DQM真值表如表所示,當DQML引腳為高電平時屏蔽低字節(jié)數(shù)據(jù)的寫,當DQMH為高電平時屏蔽高字節(jié)數(shù)據(jù)的寫入。

本設(shè)計使用的SDRAM芯片存儲數(shù)據(jù)位寬為16比特。而從攝像頭采集的RGB565格式數(shù)據(jù)為16比特,SDRAM不能同時將兩幀RGB圖像存儲。因此在存入SDRAM前先將RGB格式轉(zhuǎn)換為YCbCr格式并提取亮度分量作為灰度圖像,這時圖像數(shù)據(jù)的位寬為8比特可以將兩幀圖像存于SDRAM高低位中。對于圖像數(shù)據(jù)此時應(yīng)該存放于高位還是低位可以通過對圖像場同步信號的監(jiān)測來實現(xiàn)。當檢測到場同步信號的下降沿時說明本幀顯示結(jié)束即將開始下一幀顯示。因此可以使用幀標志信號,每一幀畫面結(jié)束時對幀標志信號進行翻轉(zhuǎn)。通過幀標志信號就能夠準確的計算本幀數(shù)據(jù)存放在低位還是高位。SDRAM掩碼及幀標志控制關(guān)系如表所示。

基于灰度的幀間差分法
幀間差分法是通過兩幀相鄰圖像間做差并選取合適的閾值對圖像進行二值化從而選取出運動的物體,算法流程,f(x, y)為灰度差分圖像,D(x, y)為幀間差分圖像,gk(x, y)、gk-1(x, y)為相鄰兩幀灰度圖像,差分閾值為T。

將兩幀相鄰圖像對應(yīng)像素進行差分并取絕對值獲得灰度差分圖像,將灰度差分圖像與預(yù)設(shè)閾值作比較,將大于閾值的像素劃分為運動物體。基于灰度的幀間差分法Matlab仿真如圖所示。



