国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

圖像邊緣檢測器的FPGA實現(xiàn)

2017-05-30 10:48:04覃永新田玉曉陳文輝
廣西科技大學(xué)學(xué)報 2017年3期
關(guān)鍵詞:現(xiàn)場可編程門陣列圖像處理

覃永新 田玉曉 陳文輝

摘 要:提高圖像處理系統(tǒng)的處理速度,是當(dāng)前圖像處理技術(shù)的主要目標之一,其中純硬件設(shè)計是一種越來越熱門的手段.本文介紹了一種采用FPGA芯片實現(xiàn)Sobel算法來獲取圖像中的邊緣像素的設(shè)計方法,圖像在經(jīng)過預(yù)處理得到灰度信息后,通過幀窗口處理、計算Sobel算子、與閾值比較等處理,判斷出圖像中的每一個像素是否為邊緣像素,然后將邊緣檢測處理后的圖像顯示.系統(tǒng)采用50 MHz的時鐘,經(jīng)仿真波形可以看出,處理完一幀數(shù)據(jù)需要4.8 ms,相對于DSP系統(tǒng)來說,系統(tǒng)的處理速度得到極大的提高.

關(guān)鍵詞:圖像處理;圖像邊緣檢測;Sobel算法;現(xiàn)場可編程門陣列

中圖分類號:TP 391.41 文獻標志碼:A

0 引言

圖像邊緣檢測是數(shù)字圖像處理、計算機視覺等技術(shù)的關(guān)鍵步驟[1].圖像邊緣檢測技術(shù)廣泛應(yīng)用于工業(yè)檢測、圖像分割、運動檢測、人臉識別和目標跟蹤等領(lǐng)域[2].邊緣是指圖像的灰度值或者顏色發(fā)生劇烈變化的地方,能直接反映物體的輪廓和拓撲結(jié)構(gòu)信息[3].邊緣檢測就是要檢測出圖像像素中這種變化的灰度的非連續(xù)性,同時確定這些像素在圖像中的精確位置并表示出來,這是從圖像進行后續(xù)處理的關(guān)鍵一步 [4].圖像處理通常采用DSP,DSP+FPGA等方式實現(xiàn).近幾年,圖像處理技術(shù)的應(yīng)用范圍也越來越廣,高性能的視覺檢測對數(shù)據(jù)處理設(shè)備的實時性提出了更嚴格的要求.隨著集成電路制造技術(shù)的高速發(fā)展,特別是可編程邏輯門陣列FPGA(Field Programmable Gate Array)的高速發(fā)展,為處理速度的提高提供了新的解決方法.在過去20年里產(chǎn)生了很多邊緣檢測算法,如Rorberts算子、Sobel算子、Prewitt算子、Laplacian算子、Canny算子等[5-6].由于Sobel算法只涉及加法操作,卻可以得到很好的劃分效果,因而是圖像處理系統(tǒng)中最常用的邊緣檢測算法.本設(shè)計利用FPGA芯片在并行高速數(shù)據(jù)處理方面的優(yōu)勢,將Sobel算法分解得到的4個算子進行并行加法和比較等運算后,實現(xiàn)邊緣檢測,被標志為邊緣的像素的位置被精確記錄,并且可以在VGA顯示屏上顯示邊緣檢測后的圖像.由于此計算方法簡單易行、耗費芯片內(nèi)部資源較少,同時又可以得到很好的檢測效果[7],本設(shè)計為之后的圖像處理技術(shù)打好基礎(chǔ).

1 邊緣檢測Sobel算法

Sobel算法包括帶4個3×3掩碼的輸入圖像數(shù)據(jù),即Sobel算子,設(shè)置權(quán)重來檢測水平、垂直、左對角、右對角各個不同方向上密度幅度的不同,這個過程叫做過濾.圖1是一個3×3的像素窗口,用于計算中心像素點Q4的4個算子.Q4坐標為[I, J],利用Q4點在其水平、垂直、左對角、右對角各圖像方向上的密度變化可以用如下4個算子進行計算:

水平算子 H=(Q0+2Q3+Q6)-(Q2+2Q5+Q8) (1)

垂直算子 V=(Q0+2Q1+Q2)-(Q6+2Q7+Q8) (2)

右對角算子 DR=(Q1+2Q0+Q3)-(Q5+2Q8+Q7) (3)

左對角算子 DL=(Q1+2Q2+Q5)-(Q3+2Q6+Q7) (4)

H,V,DR,DL這4個參數(shù)用于計算梯度大小和方向,梯度的普遍估計值為Magnitude=MAX(H,V,DR,DL).Magnitude與區(qū)分度閾值Threshold比較,如果Magnitude>Threshold,則像素點被聲明為邊界像素,否則為一般像素.

2 基于FPGA的邊緣檢測系統(tǒng)的原理框圖

基于FPGA的邊緣檢測系統(tǒng)以ALTERA公司的FPGA芯片EP4CE6F17C8為核心器件,與圖像傳感器、片外寄存器和VGA接口顯示屏等外圍設(shè)備連接構(gòu)成.圖像傳感器采用CCD攝像頭OV7670,30萬像素,輸出分辨率為640×480,像素時鐘最高達24 MHz;片外寄存器組由兩片IS61LV51216組成,VGA接口顯示器的分辨率為640×480.邊緣檢測系統(tǒng)的總體框圖如圖2所示.

從圖2中可以看出,基于FPGA進行邊緣檢測的過程分為3部分,即圖像信息的預(yù)處理、邊緣檢測以及存儲控制.FPGA首先通過I2C總線對OV7670進行模式設(shè)置,輸出數(shù)據(jù)為YCbCr 4∶2∶2格式(“Y”表示明亮度,也就是灰階值),從數(shù)據(jù)流中抽取Y分量;然后在邊緣檢測部分中,串行進入的Y灰度數(shù)據(jù)流經(jīng)過幀窗口接收模塊的串并轉(zhuǎn)換處理,獲取3×3像素窗口所需的Q0~Q8這9個像素值,將之并行送入至Sobel計算模塊,計算出H,V,DR,DL 4個算子,再送入比較模塊后得到最大值Magnitude,進而與外部輸入的閾值Threshold進行比較,判斷其是否為邊緣像素.在存儲控制部分,讀寫控制器為了保證圖像數(shù)據(jù)顯示的實時性與連續(xù)性,通常采用乒乓切換模式對圖像數(shù)據(jù)進行讀寫操作,即將邊緣檢測處理后的數(shù)據(jù)寫入一片SRAM的同時,讀取另一片SRAM中已經(jīng)寫滿的一幀處理后的圖像數(shù)據(jù),送入產(chǎn)生VGA驅(qū)動信號的顯示控制模塊進行顯示.

3 邊緣檢測系統(tǒng)的模塊設(shè)計

3.1 預(yù)處理部分

攝像頭采集到的圖像信號在OV7670模塊中經(jīng)過A/D轉(zhuǎn)換,得到標準的YCbCr制式的數(shù)字信號流.由于Sobel算法中只用到亮度Y分量,因此只將YCbCr中的Y分量進行提取.由于在YCbCr 4∶2∶2格式中有效像素數(shù)據(jù)流的格式為:Y0Cb0 Y1Cr0 Y2Cb2 Y3Cr2 Y4Cb4 Y5Cr4 …,利用像素時鐘Pclk的二分頻信號提取出一個Y像素,送入到FPGA中的LPM_FIFO中緩存.由于高速設(shè)備與慢速設(shè)備之間處理速度的差別,它們之間的數(shù)據(jù)傳輸一般采用查詢方式,存儲器的類型一般選用先進先出FIFO器件.這里采用3個深度為1 024的LPM_FIFO來緩存第一、第二、第三行的Y像素,存滿后對邊緣檢測模塊的寫信號wr發(fā)出高電平,進行幀窗口處理后的串并轉(zhuǎn)換以及邊緣檢測計算.預(yù)處理的工作方式是流水方式,即第一個窗口的數(shù)據(jù)處理完畢后,窗口向右滑動一個像素,每個時鐘滑動一格,直至最后一個像素,每個像素都遍歷這個3×3像素窗口;第一行所有的像素處理后,原來存儲第一行數(shù)據(jù)的LPM_FIFO被讀空;讀出的同時可以寫入第四行的像素數(shù)據(jù).LPM_FIFO緩存第二、第三和第四行的Y像素數(shù)據(jù),再次將每個窗口數(shù)據(jù)進行處理.

3.2 邊緣檢測部分Edge_Detection的設(shè)計

邊緣檢測部分的內(nèi)部結(jié)構(gòu)如圖3所示,輸入端口有:系統(tǒng)外部輸入的閾值Threshold[7..0],寫信號wr,像素灰度值Pix_in[7..0] ,系統(tǒng)時鐘端sysclk,系統(tǒng)異步復(fù)位端rst_n;輸出端口是邊緣像素信號Magout.邊緣檢測部分由幀窗口接收模塊Wid_9word,計算模塊Sobel_Filter和比較模塊Comparer構(gòu)成.

3.2.1 幀窗口接收模塊Wid_9word

Wid_9word模塊接收串行進入的像素數(shù)據(jù)Pix_in[7:0],完成串并轉(zhuǎn)換和幀窗口轉(zhuǎn)換得到Q0至Q8(其中Q4不需要進入計算模塊).由于在預(yù)處理部分,已經(jīng)按照3×3窗口的規(guī)則將數(shù)據(jù)串行讀出,則在這個模塊的設(shè)計里就是一個簡單的串并轉(zhuǎn)換,每9個時鐘就輸出一組新的窗口數(shù)據(jù)Q0至Q8,以保證Sobel算法中4個算子的連續(xù)的高速并行運算.

3.2.2 計算模塊Sobel_Filter和比較模塊Comparer

Sobel_Filter模塊實現(xiàn)Sobel檢測算法,并行進入的一個窗口的9個像素數(shù)據(jù),根據(jù)式(1)—式(4),計算4個方向的圖像梯度數(shù)據(jù)絕對值H,V,DR,DL,然后進入比較模塊Comparer進行逐次比較得到最大值,再與閾值Threshold進行比較,如果大于閾值則判斷為邊緣像素,輸出1;否則輸出0.由于式(1)—式(4)可以采用如圖4所示的同一累加電路,因此可以使用流水線方式計算出這4個梯度的數(shù)值.比如第一組送入的數(shù)據(jù)是Q0,Q3,Q6,Q2,Q5,Q8,可以計算出水平算子H值;下一個時鐘脈沖送入第二組數(shù)據(jù)是Q0,Q1,Q2,Q6,Q7,Q8,可以計算出垂直算子V值;第三組數(shù)據(jù)是Q1,Q0,Q3,Q5,Q8,Q7,可以計算出右對角算子DR值;第四組數(shù)據(jù)是Q1,Q2,Q5,Q3,Q6,Q7,可以計算出左對角算子值DL;這4組數(shù)據(jù)呈流水線方式送入加法器后,總共花費了5個時鐘周期.但是此模塊經(jīng)過編譯后,所消耗的邏輯單元的數(shù)量,對比直接使用并行加法的程序要少122個.

在比較模塊,通過對比得到4個算子里的最大值,再與閾值相比較.閾值的確定是通過很多次實驗后得到的一個擬合值.邊緣像素點顯示為白色,對一幀圖像的像素逐個計算后,就可以得到只顯示邊緣像素的黑白圖像,進而顯示出來.

3.3 存儲控制模塊

Magout輸出1 bit的數(shù)值,為了減少存儲空間,先將串行輸出值轉(zhuǎn)換為16 bit的雙字節(jié)數(shù)據(jù),經(jīng)過緩存再送入VGA顯示器.寄存器組由兩片可同時進行讀寫控制的隨機存儲器IS61LV51216構(gòu)成,兩片SRAM芯片采用乒乓方式工作,將處理后的數(shù)據(jù)寫入其中一個SRAM的同時,讀取另一SRAM的數(shù)據(jù)至顯示控制模塊,寫滿一個SRAM或讀空另一個SRAM后切換兩個芯片的讀寫操作,如此循環(huán)下去[8].保證了圖像數(shù)據(jù)處理連續(xù)性,能夠滿足視頻數(shù)據(jù)高速實時處理的要求.

顯示控制模塊同時對VGA接口產(chǎn)生行場掃描的時序信號和傳送邊緣像素信號,然后采用逐行掃描的方式顯示圖像.

4 邊緣檢測系統(tǒng)的硬件測試及實時性分析

圖5(a)是一張未經(jīng)處理的原圖,圖5(b)是經(jīng)過Sober算子的邊緣檢測處理后的圖片.從圖5(b)中可以看出,在圖5(a)中符合邊緣特征的像素幾乎都被標示并顯示出來.

5 總結(jié)

邊緣檢測是圖像處理過程中首要的關(guān)鍵的一步,其處理速度的提高對整個圖像處理速度的影響很大.圖像數(shù)據(jù)處理一般情況都是基于PC機的軟件處理或DSP+FPGA來實現(xiàn)[9].但面對高清畫質(zhì)和超大像素的要求提高,傳統(tǒng)方法已經(jīng)越來越無能為力.DSP雖然具備指令流水線,但其處理速度還是受到限制[10].與40 MHz工作時鐘的6級流水的DSP相比,DSP處理器檢測一幅圖像所需的時間大約為1.4 s.由于在本設(shè)計中進行Y分量的抽取,而使得像素被處理的頻率變?yōu)?2 MHz,處理完一幀640*480的圖像歷時26 μs,比DSP的處理速度多了大約兩個數(shù)量級.在邊緣檢測系統(tǒng)的頂層文件的編譯報告中,也可以看到FPGA內(nèi)部資源的占用情況,如表1所示.因此,本文提出的基于FPGA實現(xiàn)的Sobel邊緣檢測方法,是一種高速、耗費資源少、高效的解決方案,可以滿足實際工程應(yīng)用需要.

參考文獻

[1] ARBEL?魣EZ P, MAIRE M, FOWLKES C, et al. Contour detection and hierarchical image segmentation[J].IEEE Transactions on

Pattern Analysis and Machine Intelligence,2011,33(5):898-916.

[2] YANG Q Y, GAO X Y. Tracking on motion of small target based on edge detection[C].Proceedings of 2009 WRI World Congress on

Computer Science and Information Engineering. Los Angeles, California USA,2009.

[3] 曾俊.圖像邊緣檢測技術(shù)及其應(yīng)用研究[D].武漢:華中科技大學(xué),2011.

[4] 付麥霞,邢超,廉飛宇,等.基于FPGA的圖像邊緣檢測器的研究和設(shè)計[J].計算機技術(shù)與發(fā)展,2009,19(4):196-198.

[5] 俞昊,林川,譚光興,等.視覺注意機制與Canny算子結(jié)合的目標輪廓檢測方法[J].廣西科技大學(xué)學(xué)報,2016,27(2):87-92.

[6] 齊榕,齊敏,趙子巖,等.數(shù)字圖像邊緣檢測的FPGA實現(xiàn)[J].電子設(shè)計工程,2013,21(19):178-180.

[7] 官鑫,王黎,高曉蓉,等.圖像邊緣檢測Sobel算法的FPGA仿真與實現(xiàn)[J].現(xiàn)代電子技術(shù),2009(8):109-111.

[8] 柯寶中.基于 FPGA的乒乓式存取高速數(shù)據(jù)采集通道設(shè)計[J].廣西科技大學(xué)學(xué)報,2015,26(1):43-48.

[9] 蔣煒華,萬留杰.基于 EDA 的圖像邊緣檢測器的設(shè)計研究[J].數(shù)字技術(shù)與應(yīng)用,2011(9):84-85.

[10]杜正聰,寧龍飛.基于Sobel算法圖像邊緣檢測的FPGA實現(xiàn)[J].電子技術(shù)應(yīng)用,2016,42(10):89-91,95.

The implementation of image edge detector based on FPGA

QIN Yong-xin, TIAN Yu-xiao, CHEN Wen-hui

(School of Electric and Information Engineering, Guangxi University of Science and

Technology, Liuzhou 545006, China)

Abstract: Accelerating the image processing is one of the main goals of the image processing technology, which can be implemented by constructing the image processing system with pure hardware. A practical method based on Sobel algorithm is introduced, in which the FPGA chip is exploited to detect the edge pixel in the image. The gray level data of each pixel in the image is read by pre-processing module firstly, and then is extracted by module of frame-window to transform into the module of Sobel algorithm. After the results of Sobel algorithm are compared with a threshold, it can be determined that whether this pixel is an edge-pixel or not. After the processing of edge detection, the image is shown on the screen ultimately. It only takes 4.8 ms to process one frame of image data when the system clock frequency is 50 MHz. The result of the hardware testing shows that using a FPGA chip to process the image is faster than using a DSP processor.

Key words: image processing; image edge detector; Sobel algorithm; field programmable gate array

(學(xué)科編輯:黎 婭)

猜你喜歡
現(xiàn)場可編程門陣列圖像處理
基于圖像處理的機器人精確抓取的設(shè)計與實現(xiàn)
機器學(xué)習(xí)在圖像處理中的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:20
模糊圖像處理,刑事偵查利器
圖像處理技術(shù)的實戰(zhàn)應(yīng)用
D—BLAST基帶系統(tǒng)的FPGA實現(xiàn)研究
移動通信(2016年20期)2016-12-10 09:33:12
基于圖像處理的定位器坡度計算
電氣化鐵道(2016年4期)2016-04-16 05:59:46
一種千兆以太網(wǎng)SerDes 接口與電接口的轉(zhuǎn)換方法
基于FPGA的遺傳算法在交通控制中的應(yīng)用
基于FPGA的顏色識別觸摸屏系統(tǒng)設(shè)計與實現(xiàn)
Photo Shop通道在圖像處理中的應(yīng)用
河南科技(2014年1期)2014-02-27 14:04:06
双辽市| 玉山县| 甘德县| 清原| 道真| 康马县| 辉县市| 克什克腾旗| 涿鹿县| 筠连县| 巴马| 浦江县| 青海省| 辉南县| 卢氏县| 眉山市| 罗甸县| 梓潼县| 楚雄市| 大荔县| 比如县| 开阳县| 昭平县| 建瓯市| 上蔡县| 沅江市| 定陶县| 新建县| 宁晋县| 革吉县| 常宁市| 阿尔山市| 平远县| 多伦县| 蕉岭县| 大化| 安达市| 金寨县| 安义县| 土默特左旗| 定南县|