亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于改進的Canny算子實時視頻邊緣檢測系統(tǒng)在FPGA上的設(shè)計與實現(xiàn)

        2016-09-07 06:09:10周克良周利鋒劉太鋼章祖忠
        計算機測量與控制 2016年1期
        關(guān)鍵詞:直方圖梯度邊緣

        周克良,周利鋒,劉太鋼,章祖忠

        (江西理工大學 電氣工程與自動化學院, 江西 贛州 341000)

        ?

        基于改進的Canny算子實時視頻邊緣檢測系統(tǒng)在FPGA上的設(shè)計與實現(xiàn)

        周克良,周利鋒,劉太鋼,章祖忠

        (江西理工大學 電氣工程與自動化學院, 江西 贛州341000)

        為了提高圖像邊緣檢測的性能,縮短處理時間,提出了一種基于FPGA的實時視頻邊緣檢測系統(tǒng);該系統(tǒng)以EP2C8Q208C8為實驗硬件平臺,首先采用攝像頭OV7670獲取模擬視頻數(shù)據(jù),雙端口SDRAM實現(xiàn)對圖像數(shù)據(jù)的緩存,利用FPGA并行處理的特點,采用Verilog HDL硬件描述語言實現(xiàn)改進的Canny邊緣檢測算法,最終實現(xiàn)在VGA顯示屏上顯示圖像邊緣的效果;實驗結(jié)果表明,較傳統(tǒng)的邊緣檢測算法,該系統(tǒng)邊緣檢測定位精度高,對噪聲的抗干擾能力強,能夠準確快速的輸出圖像邊緣信息。

        FPGA ;邊緣檢測;Canny算子;VGA

        0 引言

        圖像邊緣包含圖像的大部分信息,主要存在于不同目標,目標與背景,目標與目標之間[1],邊緣的提取是圖像分析與識別的基礎(chǔ),是圖像分割、目標檢測等所依據(jù)的主要特征,然而在邊緣的提取過程中邊緣和噪聲都是高頻信號,抑制噪聲的同時也會對邊緣的定位產(chǎn)生影響。傳統(tǒng)的邊緣檢測算子如sobel,roberts,kirch和prewitt算子是局部窗口梯度算子[2-3],操作簡單,易于實現(xiàn),對噪聲敏感,抗干擾性差。Canny邊緣檢測算子具有較好的檢測效果,但需要人為設(shè)定高低閾值[4],易檢測出虛假邊緣或丟失局部邊緣且這些邊緣檢測大都在通用的PC或DSP芯片上利用軟件來實現(xiàn),處理速度慢,達不到實時性的要求[5]。

        隨著嵌入式系統(tǒng)的飛速發(fā)展,基于傳統(tǒng)Canny邊沿檢測的基礎(chǔ),本文首先采用中值濾波代替高斯濾波提高對圖像噪聲的抑制能力,然后基于圖像梯度幅值直方圖的特性,自適應(yīng)生成動態(tài)閾值,克服傳統(tǒng)邊緣檢測算法需人為設(shè)定閾值的不足[6]。采用可編程邏輯器件FPGA實現(xiàn)對此系統(tǒng)的控制運行。實驗結(jié)果表明,該系統(tǒng)處理速度快且具有較強的抗噪能力,檢測精度高,實時性強。

        1 傳統(tǒng)Canny邊緣檢測算法的原理

        邊緣檢測是圖像處理的重要環(huán)節(jié),1986年Canny以較低的信噪比,較高的定位精度以及最大程度的單邊緣響應(yīng)的最優(yōu)準則[4-7]推導出了Canny邊緣檢測算法。其算法的實現(xiàn)主要包括以下過程,首先,采用高斯濾波器實現(xiàn)對圖像的平滑處理,然后采用一階偏導有限差分的方法計算梯度的幅值和方向,再對梯度幅值進行非極大值抑制[8],最后利用雙閾值算法檢測并得出圖像的邊緣。

        其中高斯濾波的主要目的是對原始圖像進行平滑處理,假設(shè)f(x,y)為原始圖像,G(x,y)是二維高斯函數(shù),其中:G(x,y)=(1/2πσ2)e-(x2+y2)/2σ2S(x,y)為平滑后的圖像,則有:

        (1)

        平滑后圖像邊緣方向上的法向量方向為:

        (2)

        平滑后圖像二階導數(shù)的零點數(shù)即是圖像的邊緣:即

        (3)

        將非極大值抑制后的圖像按Th1,Th2進行兩次閾值化處理得到圖像H1和H2,其中Th1為高閾值,Th2為低閾值,且Th1=2Th2。則經(jīng)過高閾值處理后圖像含較少的噪聲和偽邊緣,但也丟失一些真實的邊緣,經(jīng)過低閾值處理后的圖像包含較全面的邊緣信息,但也存在部分虛假的邊緣。最后以圖像為基礎(chǔ),圖像H2為補充得到較全面的邊緣圖像。

        2 改進的Canny邊緣檢測算法

        2.1中值濾波

        傳統(tǒng)的Canny邊緣檢測采用高斯濾波實現(xiàn)對圖像的平滑處理,易丟失緩變邊緣。中值濾波對脈沖噪聲具有較好的濾除作[2],在濾除噪聲的同時,能夠保護信號的邊緣使之不被模糊且算法簡單,易于硬件的實現(xiàn)。本系統(tǒng)實現(xiàn)中值濾波的步驟如下,讀取模板對應(yīng)的像素的灰度值,然后將這些灰度值按順序排列,取出中間的值賦給模板中心的像素即可。

        2.2自適應(yīng)雙閾值的選擇

        圖像受拍照條件,外部環(huán)境等因素的影響,傳統(tǒng)的Canny邊緣檢測算法是人為設(shè)定高低閾值,不能根據(jù)不同條件下的圖像變換為相應(yīng)的閾值,影響對圖像的邊緣檢測。

        針對前者的不足,本文基于梯度直方圖的性質(zhì),低閾值位于第一個大波峰和第一個小波峰之間的平坦部分[5],采用兩點梯度幅值作差分的方法,將梯度幅值直方圖轉(zhuǎn)化成差分直方圖,如式(4):

        (4)

        則第一個過零點的梯度幅值就是高閾值,即有

        Th1=Arg(Diff(i)=0)

        低閾值:

        式中,NMS表示經(jīng)過非極大值抑制后的輸出,Arg是滿足Diff(i)=0的第i像素點的梯度幅值。

        3 系統(tǒng)的硬件設(shè)計

        本系統(tǒng)選用現(xiàn)場可編程門陣列FPGA作為系統(tǒng)的核心芯片,利用FPGA并行處理的優(yōu)勢,提高了系統(tǒng)的處理效率。基于EP2C8Q208C8的微處理器,控制各器件間的相互工作。如系統(tǒng)框圖圖1所示,首先通過I2C配置模塊,實現(xiàn)對解碼芯片的配置以及視頻信號的采集,經(jīng)過解碼芯片將模擬視頻信號轉(zhuǎn)化成數(shù)字視頻信號并輸入給FPGA控制系統(tǒng)。在FPGA控制系統(tǒng)中,圖像數(shù)據(jù)依次經(jīng)過中值濾波,梯度計算,非極大值抑制等操作后,進而對非極大值抑制的結(jié)果作差分直方圖,根據(jù)直方圖的性質(zhì)得到圖像的高低閾值,最終對非極大值抑制后的圖像進行雙閾值化處理,得出邊緣圖像并在顯示屏上顯示。FPGA芯片主要完成對外圍芯片的控制以及輸入數(shù)據(jù)的處理,其中FPGA控制模塊主要包括I2C配置模塊,VGA控制模塊,Canny邊緣檢測主要包括中值濾波模塊,梯度計算以及非極大值抑制模塊和雙閾值化處理模塊。系統(tǒng)流程圖如圖2所示。

        圖1 系統(tǒng)框圖

        圖2 系統(tǒng)流程圖

        3.1圖像的采集

        本系統(tǒng)采用CMOS技術(shù)設(shè)計的攝像頭OV7670完成圖像數(shù)據(jù)的采集,具有低耗能,體積小,靈活性強的優(yōu)點,通過SCCB控制總線可輸入子采樣、整幀、取窗口等方式的8位分辨率數(shù)據(jù)[9]。通過I2C配置模塊實現(xiàn)對寄存器的配置,然后寫入器件的ID地址,寄存器地址和控制數(shù)據(jù),最后通過圖像傳感器的行場同步信號的控制實現(xiàn)對圖像數(shù)據(jù)的采集。

        3.2中值濾波的實現(xiàn)

        本系統(tǒng)選用3×3窗口模板,以某一像素點為中心,取出相鄰的8個像素點及其本身,按大小排序,排在中間的像素值即為進行中值濾波處理后的數(shù)據(jù),其結(jié)構(gòu)圖如圖3所示,獲得的9個像素位于相鄰的三行內(nèi),選用兩個FIFO存儲器存儲前兩列數(shù)據(jù),當?shù)谌袛?shù)據(jù)到來時,同時讀取緩沖器內(nèi)的數(shù)據(jù)。其中行延時的作用是控制三行數(shù)據(jù)的時間,使之被同時獲取,列延時的作用是將獲取的數(shù)據(jù)進行列對齊然后再輸出,最終形成3×3的窗口數(shù)據(jù)z1~z9。

        圖3 提取3×3模板結(jié)構(gòu)圖

        3.3自適應(yīng)雙閾值以及閾值化處理的實現(xiàn)

        本系統(tǒng)基于梯度直方圖的特性實現(xiàn)對雙閾值的自適應(yīng)選擇,其電路原理圖如圖4所示,整幅圖像的全部像素點的梯度幅值經(jīng)過地址選擇器,將對應(yīng)的內(nèi)容經(jīng)過累加器2加1后再次寫入該寄存器組。待圖像結(jié)束信號到來后,在時鐘有效期內(nèi),每個時鐘到來累加器1的內(nèi)容自動加1,累加結(jié)果作為寄存組的地址,將相應(yīng)寄存器的內(nèi)容以及下一個地址寄存器的內(nèi)容分別送入寄存器a和寄存器b[6],然后將它們的內(nèi)容進行差分,差分結(jié)果經(jīng)過比較器再與0比較,按公式(4)即可得到高低閾值。

        圖4 自適應(yīng)雙閾值選擇原理圖

        經(jīng)過非極大值抑制后的圖像進行直方圖統(tǒng)計[6],令經(jīng)過非極大值抑制后的圖像記為g,將其中的各個點(i,j)分別通過比較器同高低閾值進行對比,將小于高閾值的點置0,大于高閾值的點置1,得到強邊緣圖像g1。將大于低閾值小于高閾值的像素點置為1,其它置為0,得到弱邊緣圖像g2。若g1為1,則此點是邊緣點,若g1為0,g2為1且g1的8鄰域中有強邊緣點,此點為邊緣點。邊緣點輸出1,非邊緣點輸出為0,最終得到邊緣圖像,其電路框圖如圖5所示。

        圖5 邊緣判定原理圖

        3.4VGA顯示模塊

        實現(xiàn)邊緣圖像在VGA顯示屏上的顯示主要是產(chǎn)生行同步信號,場同步信號和RGB信號[10]。通過行場掃描確定圖像顯示的位置,并同時產(chǎn)生行同步信號與場同步信號,最后根據(jù)行場掃描的位置顯示預(yù)先要顯示的內(nèi)容。其顯示屏電路連接圖如圖6所示,其中芯片ADV7123實現(xiàn)數(shù)據(jù)的編碼,R0~R9、G0~G9、B0~B9分別為紅色、綠色、藍色的像素數(shù)據(jù)輸入,IOR、IOG、IOB為紅、綠、藍電流輸出,CLOCK是時鐘輸入,SYNC是復(fù)合同步控制輸入,通過DB15實現(xiàn)顯示屏與編碼芯片的連接。

        圖6 VGA電路連接圖

        4 系統(tǒng)的軟件設(shè)計

        對各芯片的初始化設(shè)置決定著該系統(tǒng)運行的成功與否,包括對FPGA系統(tǒng)的初始化,完成對通用I/O口的配置以及系統(tǒng)時鐘的設(shè)置,完成攝像頭OV7670的初始化實現(xiàn)對所需寄存器的配置,通過代碼編寫,實現(xiàn)對彩色圖像的灰度處理,最終進行VGA的初始化,實現(xiàn)邊緣圖像的顯示。

        4.1灰度圖像

        攝像頭完成對視頻數(shù)據(jù)的采集,最終實現(xiàn)對圖像數(shù)據(jù)的邊緣檢測,首先需要對被采集圖像進行灰度處理,部分代碼如下:

        assign red_data=vga_data_in[15:11];

        //取出紅色分量

        assign green_data=vga_data_in[10:5];

        //取出綠色分量

        assign blue_data=vga_data_in[4:0];

        //取出藍色分量

        assign red_data_1=(red_data*3)/10;

        assign green_data_1=(green_data*6)/10;

        assign blue_data_1=(blue_data*1)/10;

        assign vga_data= red_data_1[4:0]

        + green_data_1[5:0]+ blue_data_1[4:0];

        assign vga_data_out={ vga_data[5:1],

        vga_data[5:0], vga_data[5:1] };

        ……

        4.2改進Canny邊緣檢測

        本系統(tǒng)采用中值濾波代替高斯濾波,提高對圖片噪聲的抑制能力,中值濾波的實現(xiàn)主要是產(chǎn)生3*3的模板,取出模板灰度像素的中間值作為模板中心的像素,部分代碼如下:

        always@(posedge clk or negedge rst_n)

        begin

        if(!rst_n)

        begin

        mdf_a22_d1<=16’b0;

        mdf_a22_d2<=16’b0;

        mdf_a22_d3<=16’b0;

        mdf_a22_d4<=16’b0;

        mdf_a22_d5<=16’b0;

        mdf_a22_d6<=16’b0;

        end //初始化mdf_a22_d*

        else

        begin

        mdf_a22_d1<=mdf_a22;

        mdf_a22_d2<= mdf_a22_d1;

        mdf_a22_d3<= mdf_a22_d2;

        mdf_a22_d4<= mdf_a22_d3;

        mdf_a22_d5<= mdf_a22_d4;

        mdf_a22_d6<= mdf_a22_d5;

        end //生成mdf_a22_d*

        end

        ……

        always@(posedge clk or negedge rst_n)

        begin

        if(!rst_n)

        begin

        hs_d1<=1’b0;

        hs_d2<=1’b0;

        hs_d3<=1’b0;

        hs_d4<=1’b0;

        hs_d5<=1’b0;

        hs_out<=1’b0;

        vs_d1<=1’b0;

        vs_d2<=1’b0;

        vs_d3<=1’b0;

        vs_d4<=1’b0;

        vs_d5<=1’b0;

        vs_out<=1’b0;

        end // hs_out,vs_out初始化

        else

        begin

        hs_d1<=hs;

        hs_d2<=hs_d1;

        hs_d3<=hs_d2;

        hs_d4<=hs_d3;

        hs_d5<=hs_d4;

        hs_out<=hs_d5;

        vs_d1<=vs;

        vs_d2<=vs_d1;

        vs_d3<=vs_d2;

        vs_d4<=vs_d3;

        vs_d5<=vs_d4;

        vs_out<=vs_d5;

        end //產(chǎn)生hs_out,vs_out

        end

        ……

        4.3VGA初始化

        實現(xiàn)圖像邊緣的顯示,主要是產(chǎn)生行場同步信號,完成對顯示屏的掃描,其代碼如下:

        assign sync=1'b0;

        assign blank=~(count_h<11'd160||count_v<11'd44)

        assign vga_clock=~clk;

        always@(posedge clk or negedge n_reset)

        begin if(!n_reset)

        count_h<=11'b0;

        else if(count_h==11’d799)

        count_h<=11'd0;

        else

        count_h<=count_h+1'b1;

        end //行掃描

        reg[6:0] frame_cnt;

        always@(posedge clk or negedge n_reset)

        begin if(!n_reset)

        count_v<=11'b0;

        else if(count_v==11'd524)

        begin

        count_v<=11'b0;

        frame_out<=frame_cnt+1'b1;

        end

        else if(count_h==7'b1111111)

        count_v<=count_v+1’b1;

        end //場掃描

        5 實驗驗證與分析

        按上述設(shè)計搭建電路,將自適應(yīng)閾值的實時視頻邊緣檢測系統(tǒng)在FPGA上實現(xiàn),基于Quartus2軟件的綜合仿真,系統(tǒng)的響應(yīng)時間為3.6 s,傳統(tǒng)的實時視頻邊緣檢測系統(tǒng)的響應(yīng)時間為5 s,基于FPGA控制的響應(yīng)速度大幅提高。

        實驗結(jié)果如圖7所示,其中圖7(a)是原始圖像,圖7(b)是經(jīng)過Sobel邊緣檢測后的圖像,圖7(c)是經(jīng)過傳統(tǒng)Canny邊緣檢測后的圖像,圖7(d)是本系統(tǒng)設(shè)計的邊緣檢測后的圖像。實驗結(jié)果表明,在圖像紋理比較復(fù)雜的情況下,經(jīng)典的Sobel邊緣檢測丟失了大量的真實邊緣,檢測效果不好,傳統(tǒng)的Canny邊緣檢測,邊緣檢測較全面,但受噪聲的影響,含有大量的偽邊緣,本系統(tǒng)實現(xiàn)的邊緣檢測有效的去除了圖像中的噪聲,圖像邊緣定位精度高,能夠很好的實現(xiàn)實時視頻的邊緣檢測,達到了實驗的目標。

        圖7 實驗結(jié)果

        6 結(jié)論

        本文基于FPGA實現(xiàn)實時視頻邊緣檢測系統(tǒng),實現(xiàn)了視頻信息的采集、邊緣檢測以及結(jié)果的輸出,采用改進的Canny邊緣檢測算法,檢測結(jié)果精確,利用FPGA并行處理的特性,大大提高了系統(tǒng)的運行速度,設(shè)計的實時視頻邊緣檢測系統(tǒng)在目標追蹤、智能監(jiān)控領(lǐng)域具有廣闊的應(yīng)用前景。

        [1]黃峰,易浩.基于FPGA的高速視頻實時邊緣檢測算法設(shè)計與實現(xiàn)[J].湖南工程學院學報,2014,24(4):5-7.

        [2] 陳虎,凌朝東,張浩,等.基于FPGA的實時彩色圖像邊緣檢測算法的實現(xiàn)[J].液晶與顯示,2014,30(1):143-150.

        [3] 韋海萍,趙保軍,唐林波,等.Canny算法的改進及其硬件的實現(xiàn)[J].光學技術(shù),2006,32(2):263-266.

        [4] 拓小明,李云紅,劉旭,等.基于Canny算子與閾值分割的邊緣檢測算法[J].西安工程大學學報,2014,28(6):745-749.

        [5] 張輝,曲仕茹.基于FPGA硬件實現(xiàn)的圖像邊緣檢測及仿真[J].計算機仿真,2010,27(3):232-236.

        [6] 何文浩,原魁,鄒偉.自適應(yīng)閾值的邊緣檢測算法及其硬件實現(xiàn)[J].系統(tǒng)工程與電子技術(shù),2009,31(1):233-237.

        [7] 王紀剛,陳家新.基于改進濾波的Canny醫(yī)學圖像邊緣檢測算法[J].計算及測量與控制,2013,21(6):1577-1579.

        [8] 米林,馬亞洲,郝建軍,等.一種基于Canny理論的邊緣提取改進算法[J].重慶理工大學學報(自然科學),2010,24(5):54-58.

        [9] 陳倫海,黃君凱,楊帆,等.基于FPGA的實時邊緣檢測系統(tǒng)[J].液晶與顯示,2011,26(2):200-204.

        [10] 唐婷婷.基于FPGA+SoPC的視頻圖像處理系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2014,37(10):59-63.

        Design and Implementation of Real-time Video Edge Detection System Based on Improvement of Canny Algorithm on FPGA

        Zhou Keliang,Zhou Lifeng,Liu Taigang,Zhang Zuzhong

        (School of Electrical Engineering and Automation,Jiangxi University of Science and Technology,Ganzhou341000,China)

        In order to improve the performance of image edge detection and shorten the processing time, we proposed a real-time video edge detection system based on FPGA. The system takes EP2C8Q208C8 as the experimental hardware platform, first the system receive the analog video data by using camera OV7670 and storage this data by the dual-port SDRAM, utilize the characteristic of FPGA parallel processing to realize the improved Canny edge detection algorithm by Verilog HDL hardware description language and finally displayed the image edge on the VGA monitor. The result of experiment show: compared with other traditional edge detection algorithm have high positioning accuracy, strong anti-interference ability of the noise, able to output image edge information accurately and quickly.

        FPGA;edge detection;Canny algorithm;VGA

        2015-07-09;

        2015-08-25。

        江西省教育廳科技資助項目(GJJ13429)。

        周克良(1963-),男,江西贛州人,教授,碩士生導師,主要從事過程控制、智能控制、嵌入式等方向的研究。

        1671-4598(2016)01-0219-04

        10.16526/j.cnki.11-4762/tp.2016.01.060

        TP272

        A

        猜你喜歡
        直方圖梯度邊緣
        統(tǒng)計頻率分布直方圖的備考全攻略
        符合差分隱私的流數(shù)據(jù)統(tǒng)計直方圖發(fā)布
        一個改進的WYL型三項共軛梯度法
        一種自適應(yīng)Dai-Liao共軛梯度法
        用直方圖控制畫面影調(diào)
        一類扭積形式的梯度近Ricci孤立子
        一張圖看懂邊緣計算
        基于直方圖平移和互補嵌入的可逆水印方案
        計算機工程(2015年8期)2015-07-03 12:20:21
        地溫梯度判定地熱異常的探討
        河南科技(2014年3期)2014-02-27 14:05:45
        在邊緣尋找自我
        雕塑(1999年2期)1999-06-28 05:01:42
        亚洲av无码之国产精品网址蜜芽| 亚洲乱码少妇中文字幕| 一区二区三区婷婷中文字幕| 日韩精品极品系列在线免费视频 | 亚州毛色毛片免费观看| 日本高清中文字幕二区在线| 91精品久久久中文字幕| av鲁丝一区鲁丝二区鲁丝三区| 国产精品高潮呻吟av久久无吗| 亚洲色图视频在线| 亚洲片在线视频| 蜜桃视频在线在线观看| 少妇无套裸按摩呻吟无呜| 中文字幕日韩精品一区二区三区 | 欧美人与动人物牲交免费观看| 国产三级黄色在线观看| 亚洲国产成人av第一二三区| 自拍偷拍 视频一区二区| 久9re热视频这里只有精品| 熟妇的荡欲色综合亚洲| 午夜精品一区二区三区无码不卡| 日韩av一区在线播放| 久久精品国产69国产精品亚洲| 337p日本欧洲亚洲大胆| 久久久久亚洲av无码网站| 视频网站在线观看不卡| 黄射视频在线观看免费| 色视频线观看在线网站| 国偷自产av一区二区三区| 亚洲愉拍自拍视频一区| 久久伊人精品中文字幕有| 777米奇色狠狠俺去啦| 最新亚洲精品国偷自产在线 | 日本最新视频一区二区| 亚洲av日韩精品久久久久久a| 97人人模人人爽人人喊电影| 亚洲Va中文字幕久久无码一区| 日韩有码中文字幕av| 日本一区二区三区视频免费在线| 成人在线免费电影| 97午夜理论片在线影院|