文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.172946
中文引用格式: 高俊嶺,,陳志飛,章佩佩. 基于FPGA的實(shí)時視頻圖像采集處理系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2018,,44(2):10-12,19.
英文引用格式: Gao Junling,,Chen Zhifei,,Zhang Peipei. Design of real time video image acquisition and processing system based on FPGA[J]. Application of Electronic Technique,2018,,44(2):10-12,,19.
0 引言
隨著社會的不斷發(fā)展,視頻圖像采集處理技術(shù)在許多行業(yè)領(lǐng)域中扮演著非常重要的角色,,如軍事,、安全監(jiān)控、工業(yè)視覺等領(lǐng)域,,而各行各業(yè)對于視頻圖像采集和處理技術(shù)的要求也越來越高,。高速、實(shí)時性是主要發(fā)展趨勢之一,。目前,,視頻圖像采集與處理技術(shù)的發(fā)展主要分為兩類:一是基于PC在相關(guān)特定的PCIe采集板卡的基礎(chǔ)上,通過軟件對視頻圖像進(jìn)行處理,;二是利用相關(guān)的集成硬件如DSP,、MCU、FPGA等對視頻圖像進(jìn)行采集處理[1],。相對來講后者的處理效果不如前者,,但實(shí)時性好、體積小,、方便使用,,更適合于工業(yè)的需求。
FPGA現(xiàn)場可編程邏輯門列,,采用并行運(yùn)算模式,,且工作頻率較高,可對大量數(shù)據(jù)進(jìn)行實(shí)時操作與處理,,在通信領(lǐng)域,、圖像處理等方面上優(yōu)勢明顯[2]。因此,,本設(shè)計(jì)選用FPGA作為系統(tǒng)的控制和數(shù)據(jù)處理中心,。
1 系統(tǒng)總體概述
基于FPGA的視頻采集處理系統(tǒng)可分為:視頻采集模塊、圖像存儲模塊,、數(shù)據(jù)處理模塊和圖像顯示模塊,。工作過程為:首先,,F(xiàn)PGA通過IIC總線協(xié)議對攝像頭進(jìn)行初始化配置,攝像頭對焦工作拍攝采集圖像,,然后,,采集的視頻數(shù)據(jù)通過FIFO緩存器不斷寫入到DDR2 SDRAM中存儲,再經(jīng)過FIFO緩存器讀出視頻數(shù)據(jù),,接著,,選擇性對讀出的視頻圖像數(shù)據(jù)進(jìn)行處理,最后在VGA上顯示視頻圖像,。系統(tǒng)的總體框圖如圖1所示,。
2 中央控制單元
2.1 FPGA
從FPGA硬件開發(fā)的角度考慮,利用EDA開發(fā)軟件和硬件描述語言Verilog編程,,對FPGA芯片進(jìn)行開發(fā),,得到其工程要求的硬件功能。對比傳統(tǒng)的硬件設(shè)計(jì)開發(fā),,減少了器件的浪費(fèi)和多次焊接的工作量,,設(shè)計(jì)過程也更加靈活、方便,、高效,。
另外,F(xiàn)PGA要實(shí)現(xiàn)對每個模塊的控制和處理,,除并行數(shù)據(jù)處理優(yōu)點(diǎn)外,,自身必須擁有較多I/O口,,豐富的邏輯單元等,。鑒于此,選用了Alter公司研發(fā)的Cyclone IV系列的EP4CE617C8,。此款FPGA擁有179個I/O接口,,62 792個邏輯單元,392個乘法器,,且功耗低,。
2.2 視頻圖像采集模塊
CMOS OV7670圖像傳感器,其體積小,,工作電壓小,,640×380像素,可選用自帶的降噪,、數(shù)模轉(zhuǎn)換,、分頻等功能,是較好的視頻圖像采集選擇,。FPGA通過IIC總線協(xié)議與CMOS攝像頭進(jìn)行初始化配置,。IIC總線寫入前,,CMOS攝像頭的SCLK和SDAT引腳必須帶上拉電阻。IIC總線寫入時,,首先寫入設(shè)備地址,,CMOS的初始地址為0x42,其次寫入寄存器地址,,最后寫入數(shù)據(jù),。其IIC總線數(shù)據(jù)寫入流程如圖2所示。
IIC總線與CMOS的數(shù)據(jù)通信后,,配置CMOS攝像頭控制寄存器,。時鐘配置使用外部時鐘即FPGA的工作時鐘頻率,目的是更好地控制CMOS攝像頭,。PLL寄存器配置零分頻,、使能內(nèi)部線性穩(wěn)壓器LDO,內(nèi)部電壓工作穩(wěn)定,。配置的Verilog部分代碼分別依次為:
SET_OV7670+19 : LUT_DATA=16'h1180,;
SET_OV7670:5 : LUT_DATA=16'h6b00;
其他相關(guān)控制寄存器中,,配置了水平鏡像,、關(guān)閉彩條、視頻格式RGB565等功能,。保證其能在系統(tǒng)高速運(yùn)行下采集到可靠度大,、信息性強(qiáng)的視頻圖像數(shù)據(jù)。
2.3 系統(tǒng)存儲模塊
2.3.1 DDR2 SDRAM
DDR2 SDRAM作為系統(tǒng)存儲器,,選用采用1 GB內(nèi)存的DDR2 800系列 SDRAM作為存儲器,。DDR2工作時鐘頻率為200 MHz[2],具有讀寫速度快,、集成度高,、存儲容量大以及成本低等特點(diǎn)。其操作速率是普通SDRAM的4倍,,能夠較好地達(dá)到系統(tǒng)實(shí)時性的要求,。
DDR2不僅能在系統(tǒng)時鐘控制下工作,也可以獨(dú)立的進(jìn)行操作,,如自刷新,、自預(yù)充電凈化等,其控制復(fù)雜[3],。因此,,利用Quartus II自帶的IP核構(gòu)建DDR2 SDRAM控制器。同時也生成了Altera數(shù)字PHY,。PHY是連接DDR2 內(nèi)核控制器和外部DDR2器件的橋梁,。PHY擁有四層接口,,分別為帶local_*類的用戶邏輯接口、帶mem_*類的外部DDR2芯片接口,、帶ctl_*和ctl_mem_*的PHY與IP控制器相互連接的接口,。其功能框圖如圖3所示。
IP內(nèi)核控制器的使用將DDR2復(fù)雜的控制操作轉(zhuǎn)變成用戶簡單的讀寫時序操作,,因此,,DDR2存儲模塊可設(shè)計(jì)分為時鐘、復(fù)位,、初始化,、控制、數(shù)據(jù)通道和仲裁等子模塊,。其中數(shù)據(jù)通道子模塊建立了DDR2連接FIFO緩存器的通道,。
2.3.2 FIFO
FIFO是一種先入先出的存儲器,沒有地址定義,,使用簡單,。FIFO只能順序讀寫數(shù)據(jù),確保了數(shù)據(jù)的安全性,。由此,,在多數(shù)情況下作為系統(tǒng)數(shù)據(jù)緩沖器使用[5]。
在Quartus II的內(nèi)核中,,建立異步FIFO的控制器,。異步FIFO,即讀寫操作時鐘信號不一致,,有利于圖像數(shù)據(jù)的緩沖,。wrusedw信號控制著數(shù)據(jù)的讀寫請求。當(dāng)wrusedwd等于FIFO深度值4時(為方便說明,,仿真的FIFO深度為4),,表示FIFO已空,Write_Req信號有效,,只能寫入數(shù)據(jù)。wrusedw為0,,表示FIFO已滿,,Read_Req信號有效,只能讀出數(shù)據(jù),。wrusedwd為其余值,,則讀、寫數(shù)據(jù)請求都可執(zhí)行,。如圖4所示,。
3 視頻圖像處理模塊
本文通過Sobel邊緣檢測對圖像數(shù)據(jù)進(jìn)行處理,。邊緣檢測意義在于能夠獲取目標(biāo)物體的邊緣信息,有利于目標(biāo)識別和追蹤[6],。Sobel邊緣檢測算法具有計(jì)算量小,、檢測精度高等優(yōu)點(diǎn),也是最常用的圖像邊緣處理方法之一,。
Sobel邊緣檢測算法過程:首先,,確立Sobel算子模板,它包含了橫縱向兩組3×3運(yùn)算算子矩陣模板,。如下式:
其次,,利用水平和垂直方向的矩陣算子與原始圖像像素點(diǎn)進(jìn)行平面卷積分運(yùn)算,算出X,、Y兩個方向上的一階導(dǎo)數(shù)梯度值[7],,如下式:
然后,把計(jì)算出的X,、Y方向梯度值做平方求和后再開方,,得到中心點(diǎn)的梯度值。如下式:
最后,,中心點(diǎn)梯度值與設(shè)定的閾值互相比較,,大于閾值的為邊緣點(diǎn),輸出為黑色,,小于閾值的為普通點(diǎn),,輸出為白色[8-9]。
Sobel邊緣檢測的實(shí)現(xiàn)包括緩沖模塊,、計(jì)算卷積模塊和門級處理模塊,。其中,緩沖模塊使用基于RAM的移位寄存器altshift_taps,,卷積計(jì)算模塊使用6個可編程乘加器aitmult_add和2個并行加法器parallel_add計(jì)算出水平和垂直的梯度值,,再通過浮點(diǎn)平方根altfr_sqrt得到中心點(diǎn)值。門級處理模塊即閾值的比較[10],。原理過程如圖5所示,。
4 實(shí)驗(yàn)
完成系統(tǒng)硬件設(shè)計(jì)后,保存工程文件,。并繪制電路原理圖和PCB圖,。最后,制作電路板,。完成所有工作后,,建立系統(tǒng),進(jìn)行實(shí)驗(yàn)。
實(shí)驗(yàn)一:實(shí)時視頻圖像采集顯示實(shí)驗(yàn),。首先,,F(xiàn)PGA控制CMOS 7670采集圖像;然后,,F(xiàn)PGA對采集圖像數(shù)據(jù)傳輸和存儲,;最后,通過VGA顯示圖像,。其畫面清晰,、流暢。實(shí)驗(yàn)結(jié)果如圖6所示,。
實(shí)驗(yàn)二:Sobel邊緣檢測算法處理視頻圖像顯示實(shí)驗(yàn),。在實(shí)驗(yàn)一的基礎(chǔ)上,增加了對圖像數(shù)據(jù)的Sobel邊緣檢測處理,,再通過VGA進(jìn)行顯示,。圖像中物體輪廓提取明顯,且實(shí)時性較好,。實(shí)驗(yàn)結(jié)果如圖7所示,。
5 結(jié)論
實(shí)時視頻圖像采集與處理技術(shù)廣泛用于監(jiān)控、工業(yè)視覺等領(lǐng)域,。本系統(tǒng)以FPGA核心,,充分利用其高速、大數(shù)據(jù)處理能力和硬件編程設(shè)計(jì)等特點(diǎn),,結(jié)合相關(guān)器件,,實(shí)現(xiàn)了對視頻圖像的采集、處理和顯示,。實(shí)驗(yàn)結(jié)果畫面清晰,、流暢,效果好,。同時在此基礎(chǔ)上,,增加了對物體的邊緣檢測,在物體追蹤和識別方面也具有一定的實(shí)用意義,。
參考文獻(xiàn)
[1] 田杰,,玉廣龍,喬中濤,,等.基于FPGA高速視頻圖像實(shí)時采集與處理系統(tǒng)設(shè)計(jì)[J].電子器件,,2016,39(3).
[2] 王誠,,蔡海寧,吳繼華.Alter FPGA/CPLD設(shè)計(jì)[M].北京:人民郵電出版社,2011.
[3] 李原.DDR/DRR2接口的FIFO設(shè)計(jì)[D].西安:西安電子科技大學(xué),,2009.
[4] 吳厚航.例說FPGA:可直接用于工程項(xiàng)目的第一手經(jīng)驗(yàn)[M].北京:機(jī)械工業(yè)出版社,,2016.
[5] 梅傲寒.基于FPGA的無線圖像采集傳輸系統(tǒng)的設(shè)計(jì)與研究[D].合肥:安徽大學(xué),2016.
[6] 丁繼生.基于FPGA的數(shù)字圖像處理算法研究及實(shí)現(xiàn)[D].合肥:合肥工業(yè)大學(xué),,2015.
[7] 羅琳.基于FPGA的快速圖像處理算法的研究與實(shí)現(xiàn)[D].重慶:重慶交通大學(xué),,2015.
[8] 馬苗,樊養(yǎng)余,,謝松元,,等.基于灰色系統(tǒng)理論的圖像邊緣檢測新算法[J].中國圖像圖形學(xué)報,2003,,10(10):1136-1139.
[9] 仝海峰.基于FPGA的視頻圖像邊緣檢測優(yōu)化設(shè)計(jì)[D].淮南:安徽理工大學(xué),,2016.
[10] 張麗紅,凌朝東.基于FPGA的Sobel邊緣檢測應(yīng)用[J].電子技術(shù)應(yīng)用,,2011,,37(8).