《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的實(shí)時(shí)視頻圖像采集處理系統(tǒng)設(shè)計(jì)
基于FPGA的實(shí)時(shí)視頻圖像采集處理系統(tǒng)設(shè)計(jì)
2018年電子技術(shù)應(yīng)用第2期
高俊嶺,陳志飛,章佩佩
安徽理工大學(xué) 電氣與信息工程學(xué)院,安徽 淮南230001
摘要: 針對目前數(shù)字圖像采集處理技術(shù)的實(shí)時(shí)性、大容量、小型化等特點(diǎn),設(shè)計(jì)了一種基于FPGA的實(shí)時(shí)視頻圖像采集處理電路系統(tǒng)。采用FPGA作為整個(gè)系統(tǒng)的控制和圖像數(shù)據(jù)處理中心。DDR2 SDRAM為高速儲存模塊核心器件,CMOS 7670為視頻圖像采集器件。并通過Quratus II和Modelsim等軟件對系統(tǒng)的邊緣檢測算法、控制過程、各個(gè)模塊等進(jìn)行硬件工程設(shè)計(jì)和仿真,實(shí)現(xiàn)了視頻圖像從采集、存儲到處理、顯示的整個(gè)過程。實(shí)驗(yàn)表明,視頻圖像采集處理的動(dòng)態(tài)畫面流暢、清晰、實(shí)時(shí)性好。
中圖分類號: TN919.5
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.172946
中文引用格式: 高俊嶺,陳志飛,章佩佩. 基于FPGA的實(shí)時(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.

Design of real time video image acquisition and processing system based on FPGA
Gao Junling,Chen Zhifei,Zhang Peipei
School of Electrical and Information Engineering,An Hui University of Science and Technology,Huainan 236001,China
Abstract: Based on characteristics of instantaneously, large capacity and miniaturization of digital image acquisition and processing technology, a real-time video image acquisition and processing circuit system was designed,F(xiàn)PGA was used as the center of controlling the whole system and the center of processing image data. With DDR2 SDRAM the core component of high speed storage module, and CMOS 7670 the video image acquisition device. Through the Quratus II and Modelsim software for edge detection algorithm and the control process, each module of the hardware design and simulation, the realization of the video images from the collection and storage to the treating and display, which shows smooth, clear and real-time.
Key words : FPGA;image acquisition;large capacity;edge detection;real-time

0 引言

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

    FPGA現(xiàn)場可編程邏輯門列,采用并行運(yùn)算模式,且工作頻率較高,可對大量數(shù)據(jù)進(jìn)行實(shí)時(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所示。

wdz3-t1.gif

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)對每個(gè)模塊的控制和處理,除并行數(shù)據(jù)處理優(yōu)點(diǎn)外,自身必須擁有較多I/O口,豐富的邏輯單元等。鑒于此,選用了Alter公司研發(fā)的Cyclone IV系列的EP4CE617C8。此款FPGA擁有179個(gè)I/O接口,62 792個(gè)邏輯單元,392個(gè)乘法器,且功耗低。

2.2 視頻圖像采集模塊

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

wdz3-t2.gif

    IIC總線與CMOS的數(shù)據(jù)通信后,配置CMOS攝像頭控制寄存器。時(shí)鐘配置使用外部時(shí)鐘即FPGA的工作時(shí)鐘頻率,目的是更好地控制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工作時(shí)鐘頻率為200 MHz[2],具有讀寫速度快、集成度高、存儲容量大以及成本低等特點(diǎn)。其操作速率是普通SDRAM的4倍,能夠較好地達(dá)到系統(tǒng)實(shí)時(shí)性的要求。

    DDR2不僅能在系統(tǒng)時(shí)鐘控制下工作,也可以獨(dú)立的進(jìn)行操作,如自刷新、自預(yù)充電凈化等,其控制復(fù)雜[3]。因此,利用Quartus II自帶的IP核構(gòu)建DDR2 SDRAM控制器。同時(shí)也生成了Altera數(shù)字PHY。PHY是連接DDR2 內(nèi)核控制器和外部DDR2器件的橋梁。PHY擁有四層接口,分別為帶local_*類的用戶邏輯接口、帶mem_*類的外部DDR2芯片接口、帶ctl_*和ctl_mem_*的PHY與IP控制器相互連接的接口。其功能框圖如圖3所示。

wdz3-t3.gif

    IP內(nèi)核控制器的使用將DDR2復(fù)雜的控制操作轉(zhuǎn)變成用戶簡單的讀寫時(shí)序操作,因此,DDR2存儲模塊可設(shè)計(jì)分為時(shí)鐘、復(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í)鐘信號不一致,有利于圖像數(shù)據(jù)的緩沖。wrusedw信號控制著數(shù)據(jù)的讀寫請求。當(dāng)wrusedwd等于FIFO深度值4時(shí)(為方便說明,仿真的FIFO深度為4),表示FIFO已空,Write_Req信號有效,只能寫入數(shù)據(jù)。wrusedw為0,表示FIFO已滿,Read_Req信號有效,只能讀出數(shù)據(jù)。wrusedwd為其余值,則讀、寫數(shù)據(jù)請求都可執(zhí)行。如圖4所示。

wdz3-t4.gif

3 視頻圖像處理模塊

    本文通過Sobel邊緣檢測對圖像數(shù)據(jù)進(jìn)行處理。邊緣檢測意義在于能夠獲取目標(biāo)物體的邊緣信息,有利于目標(biāo)識別和追蹤[6]。Sobel邊緣檢測算法具有計(jì)算量小、檢測精度高等優(yōu)點(diǎn),也是最常用的圖像邊緣處理方法之一。

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

    wdz3-gs1.gif

    其次,利用水平和垂直方向的矩陣算子與原始圖像像素點(diǎn)進(jìn)行平面卷積分運(yùn)算,算出X、Y兩個(gè)方向上的一階導(dǎo)數(shù)梯度值[7],如下式:

     wdz3-gs2.gif

    然后,把計(jì)算出的X、Y方向梯度值做平方求和后再開方,得到中心點(diǎn)的梯度值。如下式:

    wdz3-gs3.gif

    最后,中心點(diǎn)梯度值與設(shè)定的閾值互相比較,大于閾值的為邊緣點(diǎn),輸出為黑色,小于閾值的為普通點(diǎn),輸出為白色[8-9]

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

wdz3-t5.gif

4 實(shí)驗(yàn)

    完成系統(tǒng)硬件設(shè)計(jì)后,保存工程文件。并繪制電路原理圖和PCB圖。最后,制作電路板。完成所有工作后,建立系統(tǒng),進(jìn)行實(shí)驗(yàn)。

    實(shí)驗(yàn)一:實(shí)時(shí)視頻圖像采集顯示實(shí)驗(yàn)。首先,F(xiàn)PGA控制CMOS 7670采集圖像;然后,F(xiàn)PGA對采集圖像數(shù)據(jù)傳輸和存儲;最后,通過VGA顯示圖像。其畫面清晰、流暢。實(shí)驗(yàn)結(jié)果如圖6所示。

wdz3-t6.gif

    實(shí)驗(yàn)二:Sobel邊緣檢測算法處理視頻圖像顯示實(shí)驗(yàn)。在實(shí)驗(yàn)一的基礎(chǔ)上,增加了對圖像數(shù)據(jù)的Sobel邊緣檢測處理,再通過VGA進(jìn)行顯示。圖像中物體輪廓提取明顯,且實(shí)時(shí)性較好。實(shí)驗(yàn)結(jié)果如圖7所示。

wdz3-t7.gif

5 結(jié)論

    實(shí)時(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é)果畫面清晰、流暢,效果好。同時(shí)在此基礎(chǔ)上,增加了對物體的邊緣檢測,在物體追蹤和識別方面也具有一定的實(shí)用意義。

參考文獻(xiàn)

[1] 田杰,玉廣龍,喬中濤,等.基于FPGA高速視頻圖像實(shí)時(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é)報(bào),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).

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。