當前位置:
首頁 > 最新 > 基於FPGA的實時視頻圖像採集處理系統設計

基於FPGA的實時視頻圖像採集處理系統設計

隨著社會的不斷發展,視頻圖像採集處理技術在許多行業領域中扮演著非常重要的角色,如軍事、安全監控、工業視覺等領域,而各行各業對於視頻圖像採集和處理技術的要求也越來越高。高速、實時性是主要發展趨勢之一。目前,視頻圖像採集與處理技術的發展主要分為兩類:一是基於PC在相關特定的PCIe採集板卡的基礎上,通過軟體對視頻圖像進行處理;二是利用相關的集成硬體如DSP、MCU、FPGA等對視頻圖像進行採集處理[1]。相對來講後者的處理效果不如前者,但實時性好、體積小、方便使用,更適合於工業的需求。

FPGA現場可編程邏輯門列,採用並行運算模式,且工作頻率較高,可對大量數據進行實時操作與處理,在通信領域、圖像處理等方面上優勢明顯[2]。因此,本設計選用FPGA作為系統的控制和數據處理中心。

1 系統總體概述

基於FPGA的視頻採集處理系統可分為:視頻採集模塊、圖像存儲模塊、數據處理模塊和圖像顯示模塊。工作過程為:首先,FPGA通過IIC匯流排協議對攝像頭進行初始化配置,攝像頭對焦工作拍攝採集圖像,然後,採集的視頻數據通過FIFO緩存器不斷寫入到DDR2 SDRAM中存儲,再經過FIFO緩存器讀出視頻數據,接著,選擇性對讀出的視頻圖像數據進行處理,最後在VGA上顯示視頻圖像。系統的總體框圖如圖1所示。

2 中央控制單元

2.1 FPGA

從FPGA硬體開發的角度考慮,利用EDA開發軟體和硬體描述語言Verilog編程,對FPGA晶元進行開發,得到其工程要求的硬體功能。對比傳統的硬體設計開發,減少了器件的浪費和多次焊接的工作量,設計過程也更加靈活、方便、高效。

另外,FPGA要實現對每個模塊的控制和處理,除並行數據處理優點外,自身必須擁有較多I/O口,豐富的邏輯單元等。鑒於此,選用了Alter公司研發的Cyclone IV系列的EP4CE617C8。此款FPGA擁有179個I/O介面,62 792個邏輯單元,392個乘法器,且功耗低。

2.2 視頻圖像採集模塊

CMOS OV7670圖像感測器,其體積小,工作電壓小,640×380像素,可選用自帶的降噪、數模轉換、分頻等功能,是較好的視頻圖像採集選擇。FPGA通過IIC匯流排協議與CMOS攝像頭進行初始化配置。IIC匯流排寫入前,CMOS攝像頭的SCLK和SDAT引腳必須帶上拉電阻。IIC匯流排寫入時,首先寫入設備地址,CMOS的初始地址為0x42,其次寫入寄存器地址,最後寫入數據。其IIC匯流排數據寫入流程如圖2所示。

IIC匯流排與CMOS的數據通信後,配置CMOS攝像頭控制寄存器。時鐘配置使用外部時鐘即FPGA的工作時鐘頻率,目的是更好地控制CMOS攝像頭。PLL寄存器配置零分頻、使能內部線性穩壓器LDO,內部電壓工作穩定。配置的Verilog部分代碼分別依次為:

SET_OV7670+19 : LUT_DATA=16"h1180;

SET_OV7670:5 : LUT_DATA=16"h6b00;

其他相關控制寄存器中,配置了水平鏡像、關閉彩條、視頻格式RGB565等功能。保證其能在系統高速運行下採集到可靠度大、信息性強的視頻圖像數據。

2.3 系統存儲模塊

2.3.1 DDR2 SDRAM

DDR2 SDRAM作為系統存儲器,選用採用1 GB內存的DDR2 800系列 SDRAM作為存儲器。DDR2工作時鐘頻率為200 MHz[2],具有讀寫速度快、集成度高、存儲容量大以及成本低等特點。其操作速率是普通SDRAM的4倍,能夠較好地達到系統實時性的要求。

DDR2不僅能在系統時鐘控制下工作,也可以獨立的進行操作,如自刷新、自預充電凈化等,其控制複雜[3]。因此,利用Quartus II自帶的IP核構建DDR2 SDRAM控制器。同時也生成了Altera數字PHY。PHY是連接DDR2 內核控制器和外部DDR2器件的橋樑。PHY擁有四層介面,分別為帶local_*類的用戶邏輯介面、帶mem_*類的外部DDR2晶元介面、帶ctl_*和ctl_mem_*的PHY與IP控制器相互連接的介面。其功能框圖如圖3所示。

IP內核控制器的使用將DDR2複雜的控制操作轉變成用戶簡單的讀寫時序操作,因此,DDR2存儲模塊可設計分為時鐘、複位、初始化、控制、數據通道和仲裁等子模塊。其中數據通道子模塊建立了DDR2連接FIFO緩存器的通道。

2.3.2 FIFO

FIFO是一種先入先出的存儲器,沒有地址定義,使用簡單。FIFO只能順序讀寫數據,確保了數據的安全性。由此,在多數情況下作為系統數據緩衝器使用[5]。

在Quartus II的內核中,建立非同步FIFO的控制器。非同步FIFO,即讀寫操作時鐘信號不一致,有利於圖像數據的緩衝。wrusedw信號控制著數據的讀寫請求。當wrusedwd等於FIFO深度值4時(為方便說明,模擬的FIFO深度為4),表示FIFO已空,Write_Req信號有效,只能寫入數據。wrusedw為0,表示FIFO已滿,Read_Req信號有效,只能讀出數據。wrusedwd為其餘值,則讀、寫數據請求都可執行。如圖4所示。

3 視頻圖像處理模塊

本文通過Sobel邊緣檢測對圖像數據進行處理。邊緣檢測意義在於能夠獲取目標物體的邊緣信息,有利於目標識別和追蹤[6]。Sobel邊緣檢測演算法具有計算量小、檢測精度高等優點,也是最常用的圖像邊緣處理方法之一。

Sobel邊緣檢測演算法過程:首先,確立Sobel運算元模板,它包含了橫縱向兩組3×3運算運算元矩陣模板。如下式:

其次,利用水平和垂直方向的矩陣運算元與原始圖像像素點進行平面卷積分運算,算出X、Y兩個方向上的一階導數梯度值[7],如下式:

然後,把計算出的X、Y方向梯度值做平方求和後再開方,得到中心點的梯度值。如下式:

最後,中心點梯度值與設定的閾值互相比較,大於閾值的為邊緣點,輸出為黑色,小於閾值的為普通點,輸出為白色[8-9]。

Sobel邊緣檢測的實現包括緩衝模塊、計算卷積模塊和門級處理模塊。其中,緩衝模塊使用基於RAM的移位寄存器altshift_taps,卷積計算模塊使用6個可編程乘加器aitmult_add和2個並行加法器parallel_add計算出水平和垂直的梯度值,再通過浮點平方根altfr_sqrt得到中心點值。門級處理模塊即閾值的比較[10]。原理過程如圖5所示。

4 實驗

完成系統硬體設計後,保存工程文件。並繪製電路原理圖和PCB圖。最後,製作電路板。完成所有工作後,建立系統,進行實驗。

實驗一:實時視頻圖像採集顯示實驗。首先,FPGA控制CMOS 7670採集圖像;然後,FPGA對採集圖像數據傳輸和存儲;最後,通過VGA顯示圖像。其畫面清晰、流暢。實驗結果如圖6所示。

實驗二:Sobel邊緣檢測演算法處理視頻圖像顯示實驗。在實驗一的基礎上,增加了對圖像數據的Sobel邊緣檢測處理,再通過VGA進行顯示。圖像中物體輪廓提取明顯,且實時性較好。實驗結果如圖7所示。

5 結論

實時視頻圖像採集與處理技術廣泛用於監控、工業視覺等領域。本系統以FPGA核心,充分利用其高速、大數據處理能力和硬體編程設計等特點,結合相關器件,實現了對視頻圖像的採集、處理和顯示。實驗結果畫面清晰、流暢,效果好。同時在此基礎上,增加了對物體的邊緣檢測,在物體追蹤和識別方面也具有一定的實用意義。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 電子技術應用ChinaAET 的精彩文章:

MPU前景看好 2018銷售將達到745億美元

TAG:電子技術應用ChinaAET |