?

基于FPGA的實時圖像邊沿檢測系統的實現*

2015-12-16 08:03李錦明
電子技術應用 2015年10期
關鍵詞:圖像處理梯度灰度

溫 杰,李錦明

(中北大學 電子測試國家重點實驗室 儀器科學與動態測試教育部重點實驗室,山西 太原030051)

基于FPGA的實時圖像邊沿檢測系統的實現*

溫杰,李錦明

(中北大學 電子測試國家重點實驗室 儀器科學與動態測試教育部重點實驗室,山西 太原030051)

邊緣檢測是圖像處理中一個重要的分支,它的實現對于進行更高層次的圖像識別和理解等有著重大的影響。系統采用FPGA+SDRAM實現了實時圖像的邊沿檢測。硬件采用流水線與并行處理的方式,提高了圖像處理的速率;算法實現結合了硬件語言編程與IP核模塊,減小了開發周期,增強了系統的靈活性。實驗結果顯示,該系統能夠有效地實現實時圖像的邊沿檢測,且檢測效果較好,能夠滿足后續圖像處理的需求。

FPGA;邊沿檢測;SDRAM;Sobel算子

0 引言

邊緣檢測是圖像處理、圖像分析、模式識別、計算機視覺以及人類視覺的基本步驟之一,目的是為了發現圖像中關于形狀和反射或透射比的信息,目前已廣泛應用于目標識別、機器視覺和運動目標跟蹤等領域。在實時圖像處理中,由于系統對實時性要求較高,單純依靠軟件來實現圖像處理已無法滿足實際工程的需求,所以目前較多采用 FPGA或 DSP等硬件設備來實現圖像的實時處理。然而由于DSP只是對某些固定的運算提供硬件優化,其體系仍是串行指令執行系統,這些都使它在運行速度、吞吐量方面頗受約束,且不利于系統的擴展。而FPGA具有強大的并行處理能力和豐富的邏輯資源,能夠實現硬件并行和流水線技術,在圖像處理方面具有明顯的優勢,所以越來越受到人們的青睞。

本文采用FPGA作為控制處理器設計并實現了一種實時圖像邊沿檢測系統。該系統具有處理速率快,穩定性強且易于擴展等優勢,為更深層次的圖像處理提供了便利。

1 實時圖像邊沿檢測系統的總體方案

基于FPGA的實時圖像邊沿檢測系統主要由圖像數據采集模塊、數據灰度化模塊、SDRAM模塊、Sobel邊沿檢測模塊和VGA模塊五部分組成,具體實現框圖如圖1所示。圖像采集模塊實現初始化相機并接收圖像數據的功能;數據灰度化模塊能夠把采集到的圖像轉換為灰度圖像;SDRAM模塊控制對圖像數據的緩存;Sobel模塊實現像素梯度值的計算確定圖像邊沿并最終通過VGA模塊進行顯示。

圖1 圖像邊沿檢測的實現框圖

2 實時邊沿檢測系統的實現

圖像采集模塊是系統的前端,包括相機配置模塊和數據捕捉模塊。系統上電后,系統配置模塊通過SCCB(IIC)總線實現對相機的配置。配置采用三相寫數據的方式實現:首先寫入CMOS傳感器的物理地址,然后寫入需要配置的寄存器地址,最后再寫入數據即可完成該寄存器的配置。根據以上方法,依次對相應的寄存器進行配置,CMOS傳感器就可以正常地采集圖像并通過相機接口傳回到FPGA的圖像捕獲模塊中。圖像捕獲模塊根據像素時鐘同步信號,確定哪些時段中數據有效,產生數據有效信號DVAL,并把圖像數據傳到下一模塊進行進一步處理。

2.1圖像灰度化處理

由于相機采集到圖像為RGB模式的彩色圖像,而邊沿檢測系統是檢測圖像中灰度變化劇烈的像素點,所以有必要對圖像進行灰度化處理。圖像灰度化處理不僅能夠減少圖像處理的運算量,而且不會影響邊沿檢測的效果。常用的灰度化方式有加權平均法、平均值法和最大值法。系統采用加權平均法對圖像進行灰度化處理,該方法從人體生理學角度出發,對RGB三分量進行加權平均,從而得到較為合理的灰度圖像。其數學表達式如式(1)所示:

在實際應用中,由于浮點型運算實現較為困難,所以需要進行整數轉換。系統采用7位精度的轉換公式對圖像進行灰度處理,其轉換精度與8位的轉換公式相同,但轉換速度更快。具體的實現公式如式(2)所示:

圖像灰度化的實現過程采用 QuartusII中的乘加器實現,頂層文件如下所示:

其中:dataa_0~2分別代表一個像素點的 RGB分量,datab為以 7為精度的加權系數,result右移7位即為輸出的像素灰度值。

2.2圖像緩沖模塊設計

在圖像處理系統,由于數據的輸入速度與系統的處理速度往往不匹配,需要一個大容量存儲器作為圖像數據的緩存。根據圖像數據的特點,設計者常常采用SRAM或SDRAM對圖像數據進行緩存。然而由于SRAM的容量與價格的限制,不利于系統的擴展,本系統采用SDRAM芯片MT48LC8M32作為系統的緩存模塊。該芯片單片容量為256 MB,配置為 2 M×32×4bank,刷新計數為4 K。接口連接情況如圖2所示。

圖2 SDRAM接口圖

SDRAM控制器包括緩沖模塊和SDRAM控制模塊。緩沖模塊采用2個異步FIFO(Wr_FIFO和Rd_FIFO)作為圖像數據的輸入輸出緩存,實現了從低頻數據輸入到高頻數據寫入SDRAM,以及高頻數據讀取到低頻數據輸出的轉換。雖然SDRAM在同一時間段只能進行讀或寫操作,但系統采用的SDRAM控制模塊的工作時鐘為108 MHz,高于數據輸入輸出時鐘的2倍,所以從外部看,SDRAM能夠支持同時讀寫操作。FIFO控制模塊主要包括以下內容:(1)當有外部圖像數據輸入請求時,數據寫入Wr_FIFO中。(2)當有外部圖像數據輸出請求時,輸出Rd_FIFO中的數據。(3)當 Wr_FIFO中數據個數大于256時,請求寫入SDRAM,響應后開始突發寫入數據。(4)當Rd_FIFO中數據個數小于256時,請求讀取SDRAM,響應后開始突發讀取SDRAM數據。

SDRAM 控 制 模 塊 包 含 control_interface、command、sdr_data_path三個功能子模塊。Command命令接口模塊與頂層進行信息交互,并對接收的信息進行譯碼,產生讀、寫、預充電等命令與訪問地址等信息;control_interface控制接口模塊根據 command的命令與參數實現對SDRAM的控制;sdr_data_path數據位寬控制模塊根據外部DQM信號選擇數據讀寫的寬度。系統采用SignalTapII對SDRAM控制器進行了驗證。圖3為SignalTapII采集到的數據波形圖,結果符合預期要求。

圖3 SDRAM控制器的仿真波形圖

2.3Sobel邊沿檢測的實現

Sobel邊沿檢測算法是一種基于梯度的圖像邊沿檢測的方式,該算法容易在硬件上實現,且能夠平滑一定的噪聲,邊沿檢測效果較好。Sobel算子的邊緣檢測是在圖像空間內利用 2個方向模板與圖像進行鄰域卷積來完成的。這兩個方向模板,一個檢測水平邊緣,另一個檢測垂直邊緣。它們的方向梯度算子模板如下:

根據以上分析,系統利用QUARTUS中的 IP核模塊并結合硬件語言編程實現了 Sobel邊沿檢測模塊的設計,具體實現過程如圖4所示,其中乘加器是計算像素梯度值的主要模塊。一個乘加器中包括3個乘法運算模塊和1個加法運算模塊,分布情況如圖5所示,其中dataa為輸入的行像素,datab為方向模板的權重系數。一個乘法器模塊可以實現一行像素與其對應的模板系數的卷積運算。邊沿檢測模塊需要6個乘加器來實現X方向和Y方向的梯度值運算。開方模塊結合X方向與Y方向的梯度,確定該點的像素梯度值。然后再將得到的梯度值與閾值進行比較,從而確定圖像的邊沿。

圖4 Sobel邊沿檢測模塊的實現

圖5 乘加器的設計

3 實驗結果與分析

為了驗證系統的正確性,采用 SignalTapII對邊沿檢測結果進行了仿真,結果如圖6所示。其中邊沿檢測模塊選取的閾值為 0X5B,sqrt0|q為 Sobel邊沿檢測模塊得到的像素梯度值。如果梯度值大于閾值,則oDATA輸出0X00h,反之則輸出0XFFh。仿真結果與實際相同。系統采用VGA顯示器作為圖像顯示的終端,通過設計VGA控制器,邊沿檢測的結果以640*480@60Hz的格式進行顯示,得到如圖7所示結果。通過對比圖7中的兩幅圖可以看出,該系統的檢測效果較好,能夠有效地識別圖像的邊沿。

圖7 邊沿檢測系統結果圖

圖6 Sobel邊沿檢測模塊仿真圖

4 結論

本文基于FPGA設計了一種實時圖像邊沿檢測系統,搭建了以FPGA和SDRAM為核心的硬件平臺,并通過硬件語言編程與調用可編程宏模塊在硬件上實現了實時圖像的邊沿檢測功能。結果表明,該系統檢測效果較好,能夠滿足系統對于實時性的需求,可以作為后續圖像處理,如運動目標跟蹤等研究的重要支撐。

[1]朱秀昌,劉峰.數字圖像處理與圖像通信[M].北京:北京郵電大學出版社,2014.

[2]王建莊.基于 FPGA的高速圖像處理算法研究及系統實現[D].武漢:華中科技大學,2011:5-10.

[3]齊榕,齊敏.數字圖像邊緣檢測的 FPGA實現[J].電子設計工程,2013,21(19):178-179.

[4]王德勝,康令州.基于FPGA的實時圖像采集與預處理[J].電視技術,2011,35(3):32-33.

[5]楊新華,寇為剛.基于FPGA的Soble算子圖像邊緣檢測算法[J].儀表技術與傳感器,2013(1):102-104.

Realization of real time image edge detection system based on FPGA

Wen Jie,Li Jinming
(National Key Laboratory for Electronic Measurement Technology,Key Laboratory of instrumentation Science&Dynamic Measurement ofMinistry of Education,North University ofChina,Taiyuan 030051,China)

Edge detection is an important branch of image processing,and it has a great influence on image recognition and understanding.The system realized the real-time image edge detection based on FPGA and SDRAM.The hardware used pipelining and parallel processing to improve the image processing speed.The algorithm combined with the hardware language programming and IP core module,reducing the development cycle and enhancing the flexibility of the system.Experimental results show that the system can effectively achieve real-time image edge,and the detection effect is good,and can meet the needs of follow-up image processing.

FPGA;edge detection;SDRAM;Sobel operator

TP391

A

10.16157/j.issn.0258-7998.2015.10.017

山西省自然科學基金(2014011021-5)

2015-07-03)

溫杰(1990-),男,碩士研究生,主要研究方向:測試測量技術與電路系統。

李錦明(1971-),男,副教授,博士,主要研究方向:精密儀器機械和微電路系統。

中文引用格式:溫杰,李錦明.基于FPGA的實時圖像邊沿檢測系統的實現[J].電子技術應用,2015,41(10):65-67.

英文引用格式:Wen Jie,Li Jinming.Realization of real time image edge detection system based on FPGA[J].Application of Electronic Technique,2015,41(10):65-67.

猜你喜歡
圖像處理梯度灰度
采用改進導重法的拓撲結構灰度單元過濾技術
一個帶重啟步的改進PRP型譜共軛梯度法
一個改進的WYL型三項共軛梯度法
Bp-MRI灰度直方圖在鑒別移行帶前列腺癌與良性前列腺增生中的應用價值
一種自適應Dai-Liao共軛梯度法
基于ARM嵌入式的關于圖像處理的交通信號燈識別
一個具梯度項的p-Laplace 方程弱解的存在性
基于圖像處理的機器人精確抓取的設計與實現
機器學習在圖像處理中的應用
基于最大加權投影求解的彩色圖像灰度化對比度保留算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合