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

        ?

        FPGA圖像邊緣檢測系統(tǒng)的設(shè)計與實現(xiàn)

        2018-12-13 09:08:14葉惠嬌
        計算機應(yīng)用與軟件 2018年12期
        關(guān)鍵詞:方框梯度像素

        葉惠嬌 冉 全 成 果

        (武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 湖北 武漢 430205)

        0 引 言

        圖像作為人類感知世界的視覺基礎(chǔ),是獲取、表達及傳遞信息的重要媒介。其中,邊緣信息是圖像的基本特征之一,在實現(xiàn)特征提取、機器視覺等過程中起著關(guān)鍵作用[1]。

        隨著圖像數(shù)據(jù)規(guī)模日漸龐大,其處理算法日益復(fù)雜,傳統(tǒng)通用的軟件處理平臺逐漸滿足不了處理速度及實時性的需求。FPGA具有流水線結(jié)構(gòu),在并行處理數(shù)據(jù)方面有一定的優(yōu)勢,可極大程度提高數(shù)字圖像處理的速度[2]。本文設(shè)計一種基于FPGA的圖像處理系統(tǒng),集圖像數(shù)據(jù)采集、存儲、算法處理、顯示等功能于一體。同時,針對傳統(tǒng)Sobel算法需要人為設(shè)置閾值所帶來的缺陷,引入中值濾波的思想來生成自適應(yīng)動態(tài)閾值,更加準確地提取圖像邊緣信息[3]。

        1 系統(tǒng)架構(gòu)設(shè)計

        硬件平臺可分為圖像采集模塊、存儲模塊、處理模塊及顯示模塊。選用Altera公司的Cyclone IV 系列FPGA芯片為控制核心,協(xié)調(diào)控制SD卡和LCD顯示屏的驅(qū)動、SDRAM存儲器的數(shù)據(jù)轉(zhuǎn)存,并且實現(xiàn)對圖像數(shù)據(jù)的算法處理。系統(tǒng)總體框架如圖1所示。

        圖1 系統(tǒng)總體框架

        (1) 數(shù)據(jù)獲取模塊 通過計算機將圖像數(shù)據(jù)存儲到片外SD卡后,將SD卡插入硬件平臺的卡槽中。在SPI模式下,SD卡采用發(fā)送應(yīng)答機制,通過時鐘、片選、數(shù)據(jù)輸出、數(shù)據(jù)輸入4條總線以串行方式與FPGA進行數(shù)據(jù)傳輸,其時鐘控制頻率為25 MHz[4]。

        SD控制器由初始化和讀寫操作組成,表1是系統(tǒng)需要用到的SD卡控制命令。FPGA向SD卡發(fā)送CMD0命令以進入初始狀態(tài),發(fā)送CMD8、CMD55和ACMD41命令并返回?zé)o誤后確定SD卡的協(xié)議,完成SD卡的初始化;發(fā)送CMD17命令,以扇區(qū)為單位連續(xù)讀取SD卡中的數(shù)據(jù),直至讀到結(jié)束字節(jié)0xFE[4]。

        表1 SD卡常見命令

        (2) 存儲模塊 存儲模塊由RFIFO、WFIFO和片外芯片SDRAM組成。FIFO是一種順序讀寫的數(shù)據(jù)緩存器,由于沒有外部讀寫地址線,所以使用簡單,同時能解決不同時鐘頻率模塊間傳輸數(shù)據(jù)的問題[5]。SDRAM存儲器的時鐘控制頻率為100 MHz,內(nèi)存大小為256 MB,其中含有4個Bank存儲塊,每個Bank的內(nèi)存為4 MB,數(shù)據(jù)位寬為16 bits,能滿足顯示模塊對數(shù)據(jù)傳輸速率的需求。

        在FPGA的控制下,SDRAM存儲模塊中的WFIFO將SD卡中的圖像數(shù)據(jù)寫入片外的SDRAM芯片中進行緩存,RFIFO則將SDRAM芯片中的數(shù)據(jù)以串行方式讀出,這個過程中的數(shù)據(jù)都是16 bits。

        (3) 處理模塊 當存儲模塊接收到來自顯示模塊的“讀數(shù)據(jù)請求”信號時,RFIFO將16 bits數(shù)據(jù)從SDRAM中讀出傳輸至算法處理模塊。但是,圖像邊緣檢測一般是對像素的灰度值進行處理,即需要將24 bits的真彩色圖像數(shù)據(jù)轉(zhuǎn)換為8 bits的灰度圖像。轉(zhuǎn)換方法有浮點算法、整數(shù)方法、均值法、移位法以及僅取綠色五種。本文直接提取每個像素的綠色通道的數(shù)據(jù)作為其灰度值[6],使用一個數(shù)據(jù)轉(zhuǎn)換模塊將其轉(zhuǎn)換為24 bits數(shù)據(jù)后,再提取其中的綠通道數(shù)據(jù)傳遞給圖像處理模塊進行數(shù)據(jù)處理。

        (4) 顯示模塊 顯示模塊所采用的LCD液晶屏的大小為4.7英寸,可顯示分辨率為480×272的彩色圖像。因此,本文將480×272大小的真彩色圖像作為研究對象,每個像素由R、G、B三個顏色通道,每通道一個字節(jié)數(shù)據(jù)共同控制色彩信息。LCD顯示器采用SYNC接口模式,由行同步信號HSYNC和列同步信號VSYNC共同控制數(shù)據(jù)傳輸?shù)臅r序[7]。即當LCD控制器完成行掃描和列掃描,HSYNC和VSYNC同時有效時,顯示模塊會向存儲模塊發(fā)送“讀取數(shù)據(jù)請求”信號,以驅(qū)動數(shù)據(jù)的傳輸。

        2 自適應(yīng)閾值Sobel算法分析與實現(xiàn)

        數(shù)字圖像可被看作二維離散矩陣,使用MATLAB軟件可得到圖像的像素矩陣。圖2是一幅分辨率為480×272的真彩色圖像的像素矩陣。其中,每個數(shù)值代表一個顏色通道的分量,圖2方框中的三個數(shù)據(jù)依次是一個像素點的R、G、B三個通道的數(shù)值。

        圖2 圖像像素矩陣

        2.1 傳統(tǒng)Sobel算法

        邊緣檢測是將一幅圖像中亮度變化明顯的點標識出來,剔除不相關(guān)信息,同時保留圖像重要的結(jié)構(gòu)屬性。Irwin Sobel提出的Sobel邊緣檢測算法屬于查找類算法[8-9],通過計算每個像素的灰度值的一階梯度變化來判斷邊沿的位置。采用兩組3×3模板作為水平卷積核和垂直卷積核,對圖像的每一個像素點的灰度值,計算它的鄰域像素與卷積核的卷積,分別得到圖像在該點的水平梯度Gx和垂直梯度Gy:

        (1)

        (2)

        式中:A是3×3像素矩陣,然后將兩者結(jié)合求出其均方根作為實際梯度:

        (3)

        最后將梯度與人為設(shè)定的閾值θ相比較,確定其是否為邊緣:

        (4)

        Sobel算法原理較為簡單,易于在FPGA上實現(xiàn)。但是,該算法需要人為設(shè)定閾值,并通過大量實驗進行驗證,以確保選擇最合適的閾值,取得良好的檢測結(jié)果。在實際情況中,對于不同圖像而言,取得最佳效果所需要的閾值各不相同[10-11]。因此,本文引入中值濾波的思想,根據(jù)被測圖像的局部像素信息生成自適應(yīng)動態(tài)閾值,有效解決以上兩個問題,進一步提高檢測精度。

        2.2 自適應(yīng)閾值

        中值濾波算法使用一個奇數(shù)窗口,如3×3窗口、5×5窗口,對圖像進行掃描,將窗口內(nèi)的所有像素灰度值進行大小排序后,取中值作為該窗口中心點的灰度值,從而抑制噪聲。

        張琪等[12]采用中值濾波思想生成自適應(yīng)動態(tài)閾值,本文在此基礎(chǔ)之上做出了改進,其過程如圖3所示。首先,按列對3×3窗口像素進行排序,得到每一列的最大值、中間值、最小值,將第一行像素歸為Max組,第二行像素歸為Mid組,第三行像素歸為Min組;其次,再一次排序,依次提取Max組像素的最小值Min_max、Mid組像素的中間值Mid_mid、Min組像素的最大值Max_min;再次,求出這三個值的平均值Middle作為閾值,與對應(yīng)的梯度值G(x,y)進行比較,以確定是否為圖像的邊緣點[13]。隨著像素位置的改變,閾值也會發(fā)生變化,因此,可直接將其應(yīng)用到對不同圖像的邊緣提取中,所取得的圖像邊緣信息具有良好的適應(yīng)性。

        圖3 中值濾波算法步驟

        2.3 算法的HDL實現(xiàn)及仿真

        2.3.1 生成3×3窗口

        3×3像素矩陣是卷積運算和中值濾波的基礎(chǔ)。調(diào)用Quartus庫中的移位寄存器Shift-Register(RAM-based)IP core將數(shù)據(jù)轉(zhuǎn)化模塊輸出的串行數(shù)據(jù),以三行并行數(shù)據(jù)輸出,其原理圖4所示。其中,模塊輸入8 bits灰度數(shù)據(jù),每行數(shù)據(jù)的長度定義為圖像的寬,即480。同時寄存兩行,以保證移位寄存器能并行輸出三行數(shù)據(jù)。

        圖4 Shift-Register原理圖

        圖5是Model Sim仿真軟件對移位寄存器的工作過程進行仿真的結(jié)果??梢园l(fā)現(xiàn),數(shù)據(jù)從data_in接口連續(xù)進入移位寄存器,然后并行從tap2、tap1、tap0接口流出,每列有480個數(shù)據(jù)間隔,以確保并行數(shù)據(jù)與圖像像素相對應(yīng)。

        圖5 移位寄存器工作仿真結(jié)果

        2.3.2 卷積與梯度合成

        ALTMULT_ADD模塊由乘法器和加法器組合而成,其原理如圖6所示。數(shù)據(jù)流dataa_0分別與datab_0、datab_1、datab_2相乘之后,再相加。其中,當dataa_0與移位寄存器的數(shù)據(jù)輸出端口tap0連接獲取圖像數(shù)據(jù)時,datab_0、datab_1、datab_2分別賦值為X9、X8、X7,實現(xiàn)像素矩陣的第三行數(shù)據(jù)與對應(yīng)的水平Sobel算子的部分卷積。依此類推,完成一個像素矩陣與兩組算子的卷積需要6個ALTMULT_ADD模塊。

        圖6 ALTMULT_ADD模塊

        PARALLEL_ADD模塊的核心是一個三路加法器,用于對ALTMULT_ADD輸出的數(shù)據(jù)進行加法處理,如圖7所示。因此,同時調(diào)用三個ALTMULT_ADD和一個PARALLEL_ADD則可實現(xiàn)一個Sobel算子與像素矩陣的卷積運算,得到水平梯度或垂直梯度。

        圖7 PARALLEL_ADD模塊

        最后直接調(diào)用ALTSQRT模塊,求得水平梯度與垂直梯度的均方根,即為圖像的實際梯度G(x,y)。圖8是卷積運算與梯度合成的Model Sim仿真圖。其中,方框1是移位寄存器模塊生成的一個3×3像素矩陣,中心像素為18。ALTMULT_ADD模塊經(jīng)過3個時鐘周期,并行完成像素矩陣與Sobel算子每一行元素的累積運算,其結(jié)果分別為方框2和方框3。PARALLEL_ADD模塊經(jīng)過2個時鐘周期,并行完成數(shù)據(jù)累加,其結(jié)果分別為方框4和方框5。ALTSQRT模塊經(jīng)過2個時鐘周期求取實際梯度。該過程共消耗7個時鐘周期,運算過程采用流水線結(jié)構(gòu)。

        圖8 卷積運算仿真結(jié)果

        2.3.3 生成自適應(yīng)閾值

        首先使用中值濾波器對移位寄存器輸出的列數(shù)據(jù)tap0、tap1、tap2的大小進行排序,如圖9所示,得到Max、Mid、Min三行數(shù)據(jù)。隨后對每一行數(shù)據(jù)分別使用兩個D觸發(fā)器進行數(shù)據(jù)緩存,同時獲取相鄰的三個數(shù)據(jù)。使用濾波器對其進行排序,則可以得到Max組的最小值min_max、Mid組的中值mid_mid以及Min組的最大值max_min。最后求出三者的平均值作為局部區(qū)域的閾值。

        圖9 中值濾波模塊

        圖10是中值濾波模塊的仿真結(jié)果。其中:方框1是移位寄存器生成的3×3像素矩陣;方框2是第一次排序結(jié)果;方框3是第二次排序結(jié)果;方框4是min_max、mid_mid、max_min三者之和;方框5是最后生成即局部閾值,可以看出每一步消耗了1個時鐘周期。因此,生成閾值后需要再次使用3個D觸發(fā)器進行延時,以確保閾值與梯度的同步性。仿真結(jié)果表明,當使用50 MHz的時鐘頻率處理一幅分辨率為480×272的圖像時,算法處理模塊共消耗2.640 ms,流水線結(jié)構(gòu)可有效提高算法處理的速率。

        圖10 中值濾波仿真結(jié)果

        3 板級測試

        為進一步驗證系統(tǒng)的有效性,可在硬件平臺上進行板級測試。圖11是LCD屏幕顯示的原始圖像。圖12是改進的自適應(yīng)閾值Sobel算法檢測的結(jié)果。其中:數(shù)碼管顯示了系統(tǒng)的運行時間,最高位“1”表示完成“讀取圖像數(shù)據(jù)——算法處理——顯示檢測結(jié)果”這一過程,最后兩位“24”表示該過程共耗時24 ms。圖13是使用MATLAB軟件平臺處理同一幅圖像,共耗時約0.262 s,即262 ms。對比可知,兩者都能完整地檢測出圖像的邊緣信息,然而,以FPGA為控制核心的硬件平臺處理圖像的速度比軟件平臺快10倍以上。

        圖11 原始圖像

        圖12 改進算法檢測結(jié)果

        圖13 MATLAB仿真結(jié)果

        4 結(jié) 語

        本文采用硬件方案實現(xiàn)了并行的圖像邊緣檢測算法,快速而準確地提取圖像的邊緣信息,為FPGA硬件平臺實現(xiàn)更復(fù)雜的圖像處理算法提供了基礎(chǔ)。仿真及測試結(jié)果表明,硬件平臺對圖像的處理速度遠遠高于軟件平臺,系統(tǒng)實用價值較高。

        猜你喜歡
        方框梯度像素
        趙運哲作品
        藝術(shù)家(2023年8期)2023-11-02 02:05:28
        填方框
        像素前線之“幻影”2000
        一個改進的WYL型三項共軛梯度法
        一種自適應(yīng)Dai-Liao共軛梯度法
        方框里的數(shù)字
        方框里填數(shù)
        “像素”仙人掌
        一類扭積形式的梯度近Ricci孤立子
        填方框
        欧美大屁股xxxx高潮喷水| 一区二区三区四区在线观看视频| 91热久久免费频精品99| 久久久国产精品无码免费专区| 闺蜜张开腿让我爽了一夜| 日韩AV无码一区二区三区不卡毛片| 新久久久高清黄色国产| 日本一区二区三区光视频| 亚洲精品一品区二品区三品区| 国产亚洲婷婷香蕉久久精品| 日韩不卡无码三区| 一级黄色一区二区三区| 综合色区亚洲熟妇另类| 欧美人与动牲交片免费| 日本一区二区三区资源视频| 人妻少妇69久久中文字幕| 欧美成人片在线观看| 亚洲综合免费| 蜜桃av一区二区三区久久| 老太婆性杂交视频| 无码a∨高潮抽搐流白浆| 九九99久久精品在免费线97| 国产精品亚洲综合久久| 又嫩又硬又黄又爽的视频| 亚洲中久无码永久在线观看软件 | 国产老熟女狂叫对白| 国产一线视频在线观看高清 | 视频在线观看一区二区三区| 中年熟妇的大黑p| 青青草视频网站免费观看| 国产一区三区二区视频在线观看| 国产av国片精品jk制服| 亚洲妓女综合网99| 国产一区二区三区视频了| 日本av在线一区二区| 人禽伦免费交视频播放| 99久久久国产精品丝袜| 免费播放成人大片视频| 无遮挡h肉动漫在线观看| 久久频精品99香蕉国产| 亚洲不卡av二区三区四区|