1. 程式人生 > >課設 - 基於FPGA的電子警察系統設計(流程)

課設 - 基於FPGA的電子警察系統設計(流程)

 

本文以FPGA晶片為核心,來檢測運動車輛是否超速以及車輛是否闖紅燈。

 

通過攝像機採集到的影象以影象處理的方法進行處理,然後通過MATLAB軟體將採集到的圖片轉化成Verilog可識別的的數字程式碼,再加以幀間差分法、最小二乘法,對處理過後的影象進行進一步的處理,通過Verilog HDL硬體描述語言對test測試模組、fifo緩衝模組、sdram驅動模組、sdram緩衝模組進行設計程式設計,最後通過Quartus II開發平臺進行編譯並模擬實現出車速,對此車速進行判斷是否超速。

 

在闖紅燈方面我們研究基於視訊影象處理的闖紅燈車輛自動檢測系統,通過攝像頭採集視訊的交通訊息,通過視訊採集軟體,運用相應的影象處理技術進行實時處理分析,檢測車輛時採用虛擬線圈進行檢測,獲得車輛是否違章闖紅燈的資訊,並將之記錄並儲存儲存到儲存器當中以作執法證據使用。

 

 

1 系統硬體

 

SDRAM 是 Synchronous Dynamic Random Access Memory的縮寫,意思就是同步隨機動態儲存器。隨機動態儲存說的就是它可以把資料儲存到任何一個儲存單元,而且是隨機的,看命令的地址是什麼,需要存到哪裡就到哪裡跟順序沒有關係。同步是指除了CKE以外的訊號是需要同步進行的例如時鐘訊號,地址訊號,資料訊號,只有都是同步的它們才能高效的進行資料的讀寫。

 

OV7670 是OV(OmniVision)公司生產的一顆1/6寸的CMOS VGA 影象感測器。該感測器體積小、工作電壓低,能夠提供單片VGA 攝像頭和影像處理器的所有功能。通過SCCB 匯流排控制輸出整幀、子取樣、取視窗等方式的各種解析度 8 位影像資料。該產品VGA 影象最高達到30 幀/秒。

 

 

2 演算法介紹

 

分析式(3.14)可知,差分影象中包括噪聲區域和由運動目標引起的運動變化區域兩部分,其中運動變化區域又包括真正的運動目標、被覆蓋和顯露的背景部分。由於影象序列的多樣性,用某種具體的特徵對運動變化區域進行描述很困難,因此並不能直接對運動變化區域進行提取。

 

考慮到在成像過程中噪聲的分佈具有一定的規律性,一般可假設其服從高斯分佈,由於服從高斯分佈的兩個隨機變數之差仍然服從高斯分佈,所以相鄰幀之間的相對噪聲也服從高斯分佈,因此我們可以通過估計相鄰之間的相對噪聲的特徵引數對差分影象中的相對噪聲進行濾波,從而檢測出運動變化區域。

 

運動變化區域包括真正的運動目標、被覆蓋的背景、顯露的背景三部分,為了準確地檢測和提取出運動目標,尤其是當目標的運動速度較快導致運動變化區域內的被覆蓋和顯露的背景區域較大時,必須考慮運動目標的邊界資訊,本文處理的視訊物件運動幅度較小,目標的變化區域與整個視訊影象的面積相比很微小(大多數實際的視訊序列滿足此假設條件),採用Roberts運算元進行邊緣檢測,結合空域的資訊進行目標提取。

 

幀間差分法應用於檢測影象序列中的人或者較大的目標有無運動,運算量小,容易用軟體實現,實際應用效果較好。但對於分類目標,以及較高要求的目標檢測,此方法仍有一定缺陷。

 

 

3 影象處理

 

基於影象處理的車速檢測的軟體部分主要有6個模組組成,分別是運動車輛圖片採集、影象預處理、背景提取、車輛檢測、目標跟蹤和車速計算。

 

(1)車輛運動圖片採集

在車輛較少的地方選取一直行車道,選取好準備路過的車輛進行拍照,用事先準備好的攝像機對選中的車輛拍攝兩幀的圖片,拍攝過程中要保證攝像機不會有絲毫的移動,拍攝結束後對採集到的圖片進行下一步的處理。

 

(2)影象預處理

通過對採集到的視訊影象進行預處理,由於整幅影象太大,包含資訊太多對提取有用的目標資訊會造成不必要的干擾,攝像機採集到的原始影象是畫素,從中擷取畫素的影象為目標檢測區域,將拍攝到的彩色影象進行灰度化處理,使其轉化為灰度影象,然後對轉化之後的灰度影象進行二值化,提取目標車輛。攝像機影象採集頻率為 30HZ,即相鄰兩幀之間的時間間隔為 33.33毫秒(即三十分之一秒),我選取的是第一幀和第十一幀影象,這樣保證了中間有10個時間間隔,將這兩幀影象當做兩幀相鄰的影象,這樣它們之間的時間間隔即為0.33秒(即為三分之一秒)。

 

(3)背景提取和更新

根據有車輛執行的影象中得到無車輛的道路背景,稱為背景估計。同時,為了與實際道路場景符合,提高識別精度,保證系統長時間準確正常的執行,還需要綜合當前道路光線,陰影等各種因素,不斷實時更新背景影象。選取一幀影象,然後將其及其前面n幀影象進行處理,選取相應的畫素點,對這些點的畫素值進行累加,得到了n幀畫素值的和,將計算出的這個值除以n,得到這n幀影象的平均畫素值,這些畫素值就構成了一個背景影象。

 

(4)車輛檢測及特徵點提取

根據背景影象判斷當前區域是否有車輛,如果有車,通過當前幀與背景影象差分得到目標車輛,要對目標車輛進行精確定位就要對目標的特徵點進行提取,目標車輛的特徵點必須具備的條件:能夠準確定位目標車輛的當前位置,特徵明顯,方便提取,便於跟蹤。本文提出了一種基於車輪胎定位的車輛特徵點進行提取,首先提取出目標車輛的車輪胎位置,對車輪胎進行精確定位,輪胎中心位置便為目標車輛的特徵點。

 

(5)目標跟蹤

對目標車輛提取特徵點準確定位後,然後根據連續幀車輛特徵點的不同位置對車輛進行跟蹤,採用線性方程對目標車輛在連續幀特徵點的畫素位置進行擬合,擬合出目標車輛的行駛軌跡。

 

(6)車速計算

通過提取連續幾幀目標車輛特徵點在影象中的畫素位置,將車輛在影象中經過的畫素距離轉化為實際路面中的距離,用距離與時間的比值即為目標車輛的實際車速。

 

 

4 程式流程

 

 

(1)啟動程式,開啟所記錄下來的監控視訊資料 (本系統僅識別AVI),獲取視訊檔案的灰度、亮度以及解析度,提取視訊中的每一幀影象,通過影象處理的方式對其進行處理。

 

(2)判斷視訊檔案中的幀影象是否已經處理完畢,如果已經處理完畢,則程式結束,否則執行下一步。

 

(3)從視訊檔案中讀取下一幀影象到記憶體中,供程式接下來處理。

 

(4)本系統通過設定紅綠燈訊號時長來模擬紅綠燈訊號變化,程式只會對紅燈訊號期間的視訊資料進行處理,因此需要判斷當前是否為紅燈訊號。如果當前不是紅燈訊號,則返回步驟(2)重新開始。否則執行下一步。

 

(5)提取虛擬線圈區域中的影象,供程式接下來處理。

 

(6)選取一幀影象,然後將其及其前面n幀影象進行處理,選取相應的畫素點,對這些點的畫素值進行累加,得到了n幀畫素值的和,將計算出的這個值除以n,得到這n幀影象的平均畫素值,這些畫素值就構成了一個背景影象。

 

(7)採用混合高斯模型對當前幀影象進行運動目標檢測,得到背景影象和二值化目標影象。

 

(8)採用無閡值的陰影消除演算法對二值目標影象進行處理,去除影象中的陰影畫素點。

 

(9)對二值目標影象進行先開後閉的濾波操作,消除影象中孤立的小點和小孔洞。

 

(10)對進行處理過後的二值化圖片進行運算,判斷是否成立,如果不成立,轉回到步驟(2);若成立,則認為該車輛闖紅燈,進行下一步。

 

(11)車輛闖紅燈檢測成功,將此闖紅燈車輛的二值化影象、背景影象均儲存到儲存器當中以作執法證據使用,返回步驟(2),程式結束。

 

 

獲取課設全部資料,掃碼關注傳送【電子警察】,更多雲盤學習資料等你下載。