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

?

基于FPGA的小波變換邊緣檢測算法設(shè)計(jì)與實(shí)現(xiàn)

2018-05-28 11:10:10王智李揚(yáng)陳鼎張曉棟陳少浩
電腦知識(shí)與技術(shù) 2018年9期
關(guān)鍵詞:小波分析邊緣檢測

王智 李揚(yáng) 陳鼎 張曉棟 陳少浩

摘要:邊緣是圖像信息最集中的部分,而小波分析是近年來逐漸興起的熱門信號(hào)處理方法,其良好的時(shí)頻局部分析的特性以及多尺度多分辨率思想在圖像處理中具有高度的應(yīng)用價(jià)值。提出了改進(jìn)的小波邊緣提取檢測FPGA硬件結(jié)構(gòu)優(yōu)化算法,著重設(shè)計(jì)分析了小波變換FPGA VLSI電路結(jié)構(gòu),給出了一種9輸入的并行計(jì)算電路,保證了少量像素點(diǎn)的邊緣連續(xù)性,并在每級(jí)變換的高頻運(yùn)算中加入閾值截取,提取出更為精細(xì)的邊緣曲線。該算法具有邊緣提取計(jì)算速度快,調(diào)節(jié)閥值改變邊緣提取清晰度等優(yōu)點(diǎn),具有廣泛應(yīng)用前景。

關(guān)鍵詞:小波分析;FPGA加速計(jì)算;邊緣檢測

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)09-0261-04

Abstract: Edge is the most important part of the image information, and the wavelet analysis is emerging in recent years popular signal processing method, Its good time-frequency characteristics of local analysis and multi-scale multi-resolution ideas with high application value in the image processing. In this paper, based on the theory of wavelet transform, designed wavelet edge detection algorithm. Design based on FPGA is to focus on lifting wavelet transform VLSI circuit structure, proposes a parallel computing circuit of 9 input, guarantee a small amount of pixel edge continuity, and join threshold interception in the high frequency operation per level transform extract more elaborate edge curve. This algorithm has advantages of fast calculation, adjust edge clarity and etc, which has broad application prospects.

Key words: wavelet analysis; Accelerated computing; Edge detection

1圖像邊緣提取小波變換

將一個(gè)母函數(shù)進(jìn)行平移、伸縮即可得到傳統(tǒng)的小波函數(shù),這種構(gòu)造小波的方式是通過傅立葉變換完成。但在很多情況下,有些函數(shù)無法通過平移伸縮得到,因此難以用傳統(tǒng)的小波變換對這些函數(shù)進(jìn)行構(gòu)造和分析。此外,傳統(tǒng)小波變換是在實(shí)數(shù)域內(nèi)作運(yùn)算,在分析信號(hào)的過程中它們的小波系數(shù)也是實(shí)數(shù)。在小波變換應(yīng)用層面越來越廣時(shí),就希望能在整數(shù)域內(nèi)進(jìn)行小波變換,即希望有“整數(shù)-整數(shù)小波變換”,小波系數(shù)為一系列整數(shù)序列,當(dāng)然這種整數(shù)域內(nèi)的小波變換依然必須是可逆的,具有該性質(zhì)的小波變換我們稱為整數(shù)小波變換,可用于構(gòu)造整數(shù)小波變換,使小波分析的應(yīng)用更為廣泛。

提升方案通過進(jìn)行預(yù)測和更新來分離信號(hào)的高低頻分量,某點(diǎn)的信號(hào)值可根據(jù)局部信號(hào)間的相關(guān)性由其相鄰的信號(hào)值經(jīng)合適的預(yù)測算子來預(yù)測,預(yù)測所得到的值和真實(shí)信號(hào)的差值即為預(yù)測誤差,將這個(gè)誤差作為信號(hào)的高頻信息,該過程即為預(yù)測環(huán)節(jié)。再將高頻信息通過適當(dāng)?shù)母滤阕拥玫降皖l信息,該過程即為更新環(huán)節(jié)。

以信號(hào)[X(n)]為例,其提升方案正變換過程如圖1所示。下面為詳細(xì)步驟介紹:

預(yù)測的目的是將數(shù)據(jù)表達(dá)的更加緊致,消除分裂后的冗余信息,是對變換的一個(gè)更新過程,并不是一個(gè)完整的等式。當(dāng)[Xo(n)]完全可由[Xe(n)]預(yù)測,并且這個(gè)預(yù)測算子是相對理想的預(yù)測器時(shí),可認(rèn)為是理想預(yù)測,但在實(shí)際中,這種情況一般是不存在的。不過[Xo(n)]在和[Xe(n)]有較大的相關(guān)性時(shí),預(yù)測后的新[Xo(n)]會(huì)具有很低的能量分布。

預(yù)測算子通常是多項(xiàng)式插值算式,并且預(yù)測是可逆的過程。若預(yù)測算子[p(.)]確定,就可以由[Xe(n)]和[d(n)]來恢復(fù)[Xo(n)],進(jìn)而恢復(fù)[X(n)]。

綜上所述,在提升方案中將實(shí)現(xiàn)小波變換分成了幾個(gè)非常簡單的步驟,這是提升小波的一大優(yōu)點(diǎn),其中每個(gè)步驟可以方便地找到相應(yīng)的逆變換,小波逆變換即重構(gòu),就是分解的逆過程,只需改變數(shù)據(jù)的流向和運(yùn)算符號(hào)就可以完成,相應(yīng)的三個(gè)步驟即反預(yù)測、反更新和合并,如圖2所示。

提升方案分解信號(hào)可達(dá)到和雙正交小波變換相同的分解效果,因?yàn)榭赏ㄟ^提升方案實(shí)現(xiàn)所有雙正交小波。相比而言,提升方案是一種更加快速的算法,逆變換的實(shí)現(xiàn)同樣比傳統(tǒng)小波快很多。提升變換的另一個(gè)優(yōu)點(diǎn)是其在整數(shù)域內(nèi)完成變換,具有更好的實(shí)用價(jià)值。JPEG2000標(biāo)準(zhǔn)中,就通過提升算法來實(shí)現(xiàn)圖像的二維可逆小波變換。

2 小波變換FPGA結(jié)構(gòu)框架

整體設(shè)計(jì)使用流水線存取并行計(jì)算結(jié)構(gòu),總體結(jié)構(gòu)框圖如下:

由于SDRAM工作頻率為100MHZ,而CMOS攝像頭和VGA顯示器工作頻率為25MHZ,所以整體系統(tǒng)運(yùn)用了分時(shí)復(fù)用的數(shù)據(jù)流處理方式,SDRAM中通過兩個(gè)bank進(jìn)行乒乓操作完成數(shù)據(jù)緩存,在SDRAM和其他模塊進(jìn)行數(shù)據(jù)傳輸?shù)拈g隙進(jìn)行算法計(jì)算, SDRAM采用串行流水線的方式通過讀寫地址產(chǎn)生邏輯實(shí)現(xiàn)和算法模塊之間的數(shù)據(jù)輸入輸出,SDRAM控制器通過設(shè)置突發(fā)字節(jié)和內(nèi)部計(jì)數(shù)器提供的突發(fā)終止信號(hào)完成固定的9輸入兩讀兩寫模式進(jìn)行算法模塊計(jì)算,其中核心部分就是小波算法模塊。

3 FPGA硬件結(jié)構(gòu)設(shè)計(jì)

結(jié)合整數(shù)小波變換的算法原理,得出本算法所參考的計(jì)算公式如下:

根據(jù)算法公式可以看出,每三個(gè)相鄰像素點(diǎn)就可以算出一個(gè)高頻像素信息點(diǎn),而每兩個(gè)相鄰的高頻信息點(diǎn)和一個(gè)原始像素點(diǎn)就可以計(jì)算出其對應(yīng)的低頻信息點(diǎn),即每5個(gè)相鄰像素點(diǎn)就可以算出兩高一低共三個(gè)像素信息點(diǎn)。對于邊界問題通過對稱延拓的方式在小波計(jì)算的每行每列的起始端和結(jié)束端改變算法計(jì)算過程,將數(shù)據(jù)的延拓嵌入到計(jì)算中,避免數(shù)據(jù)延拓去占用額外的存儲(chǔ)單元及多余運(yùn)算。

小波變換的典型結(jié)構(gòu)框架如下圖:

基于這一典型結(jié)構(gòu)框圖,為了滿足視頻流傳輸?shù)膶?shí)時(shí)性要求并結(jié)合FPGA開發(fā)板邏輯資源本文設(shè)計(jì)了一種9個(gè)像素點(diǎn)輸入的并行計(jì)算結(jié)構(gòu)提升電路,這9個(gè)像素點(diǎn)并行輸入后計(jì)算出4高頻4低頻共8個(gè)變換后的數(shù)據(jù),其中對第9個(gè)像素點(diǎn)進(jìn)行復(fù)用,還作為了下一次并行輸入的9個(gè)像素點(diǎn)中的第一個(gè),保證了每組圖像信息之間的連續(xù)性,其數(shù)據(jù)流程圖如下:

根據(jù)以上結(jié)構(gòu),提升算法首先進(jìn)行行變換,連續(xù)進(jìn)行兩次讀操作,每次讀9個(gè)數(shù)據(jù),其中第一次讀的第9個(gè)數(shù)據(jù)又是第二次讀的第一個(gè)數(shù)據(jù),首先計(jì)算高頻,計(jì)算的結(jié)果將進(jìn)行閾值截取,對于不滿足閾值判定的高頻數(shù)據(jù)賦0,閾值截取后的高頻數(shù)據(jù)再進(jìn)行低頻計(jì)算,兩次讀共算出8高頻8低頻共16個(gè)數(shù)據(jù),算完后再兩次寫數(shù)據(jù)將計(jì)算結(jié)果送回SDRAM存儲(chǔ)。

行列變換都通過在讀地址產(chǎn)生邏輯中定義橫縱坐標(biāo)讀取數(shù)據(jù),但是根據(jù)計(jì)算方式的不同讀取方式也不相同,行變換對圖像逐行讀取,而列變換首先讀取第一行的前9個(gè)像素,再讀取第二行的前9個(gè)像素,當(dāng)讀完最后一行的前9個(gè)數(shù)據(jù)后,再開始讀第一行的9到18這9個(gè)數(shù)據(jù),計(jì)算方式為豎向計(jì)算,計(jì)算電路依然使用圖2-3、2-4的結(jié)構(gòu),由于列運(yùn)算模塊會(huì)使用一組寄存器專門存儲(chǔ)當(dāng)前的高頻運(yùn)算結(jié)果供下一組低頻運(yùn)算使用,因而列計(jì)算數(shù)據(jù)輸入相互獨(dú)立,相比圖2-5的區(qū)別是每個(gè)計(jì)算模塊的數(shù)據(jù)輸入為獨(dú)立的三根數(shù)據(jù)線。

行列計(jì)算結(jié)果通過寫地址產(chǎn)生邏輯在SDRAM中存儲(chǔ),由于SDRAM的一個(gè)bank地址空間為[222],足夠存儲(chǔ)多幅640*480(系統(tǒng)級(jí)驗(yàn)證所采用的分辨率)大小圖像,因而bank內(nèi)部的地址讀寫實(shí)質(zhì)上依然采用了乒乓方式,S為一幀圖像像素點(diǎn)數(shù)目,當(dāng)算完一幀后,數(shù)據(jù)存入SDRAM地址S到2S-1的范圍內(nèi),二級(jí)變換后,又存到0到S地址范圍內(nèi),覆蓋原圖像,以此類推。存儲(chǔ)過程如下圖所示:

根據(jù)上圖可知,當(dāng)需要進(jìn)行多級(jí)變換時(shí),只需要將LL部分讀出,通過算法控制模塊復(fù)用行列算法計(jì)算核,當(dāng)正變換完成后就進(jìn)行逆變換,逆變換為正變換的反操作,只需改變數(shù)據(jù)流向并將算法符號(hào)取反即可完成。

通過以上介紹可知,本文設(shè)計(jì)的硬件電路結(jié)構(gòu)主要采用了流水線并行的辦法,根據(jù)行列變換原理結(jié)合芯片資源進(jìn)行設(shè)計(jì),相比濾波器卷積的方式,計(jì)算量降低了一半,在提升算法中只用到了相乘和累加,而乘法都是2的倍數(shù),用移位代替,實(shí)現(xiàn)過程中都是原位計(jì)算節(jié)省片上存儲(chǔ),并且提升小波的過程都是整數(shù)到整數(shù)的變換,易于硬件實(shí)現(xiàn),相比依賴于傅里葉變換傳統(tǒng)小波算法,優(yōu)點(diǎn)較為突出。

4 FPGA軟件優(yōu)化設(shè)計(jì)

當(dāng)存滿一幀圖像后,將圖像數(shù)據(jù)輸入算法模塊進(jìn)行算法運(yùn)算。算法控制模塊明確了算法的運(yùn)行步驟,整體步驟是在初始化工作完成后先進(jìn)行正變換的行列變換,再將算法中用到的計(jì)數(shù)器清零之后改變數(shù)據(jù)流向和運(yùn)算符號(hào),進(jìn)行逆變換的列行變換,狀態(tài)轉(zhuǎn)換圖如下:

再對提升小波的正變換進(jìn)行設(shè)計(jì),正變換的整體過程是對一幀圖像完成行變換后再進(jìn)行列變換,行列變換計(jì)算方式不同,分別調(diào)用了行列變換算法核。存取方式整體采用兩讀兩寫的模式,行列變換通過提供突發(fā)終止信號(hào)每次讀9個(gè)數(shù),這里要注意的是由于行列運(yùn)算的不同(上一節(jié)已經(jīng)提到),行計(jì)算步驟為“讀、算、讀、算、寫、寫”,列運(yùn)算為“讀、讀、算、算、寫、寫”。由于采用的圖像分辨率為640*480,加入了一個(gè)判斷,如果在行首或者行尾的話,按照公式中的邊界公式執(zhí)行運(yùn)算,兩組數(shù)據(jù)共計(jì)算出8高8低共16個(gè)數(shù)據(jù),存儲(chǔ)后通過寫地址產(chǎn)生模塊寫回SDRAM。

將以上步驟循環(huán)往復(fù),可以完成計(jì)算一個(gè)行的小波變換,然后再進(jìn)行下一行的小波變換,依次進(jìn)行之后,當(dāng)計(jì)算完480個(gè)行變換之后,這時(shí)一幀圖像的行變換就結(jié)束了,接下來就可以開始列變換,下圖為行列變換的狀態(tài)轉(zhuǎn)化圖:

當(dāng)行列變換完成之后,即第一級(jí)的小波正變換結(jié)束,本系統(tǒng)共需要進(jìn)行三級(jí)的變換,即對以上的變換再進(jìn)行兩次,這里需要說明的是,第二次要變換的圖像分辨率為320*240,做一次正變換可以將原始圖像橫豎劃分為4份,左上角的部分為整個(gè)圖像的低頻區(qū)域,與其對稱的右下角的圖像為整個(gè)圖像的高頻區(qū)域。如果再要進(jìn)行一次正變換的話,只需要對上一級(jí)正變換完的圖像的左上角的低頻區(qū)進(jìn)行行變換即可,所以需要變換的圖像分辨率為320*240.依此類推,第三次需要變換的圖像分辨率為160*120。

三級(jí)正變換結(jié)束之后,接著就是小波變換的逆變換,逆變換在步驟上和正變換是一樣的,區(qū)別在于公式的不同,所需變量的不同,其他的步驟都是相同的。通過每級(jí)不同的閾值設(shè)置,待三級(jí)的逆變換結(jié)束之后,就可以看到最后圖像的邊緣效果。

系統(tǒng)的驗(yàn)證平臺(tái)采用ALERA公司的Cyclone IV 系列的EP4CE6F17C8開發(fā)板。算法的讀寫模塊和正變化及逆變換模塊共用同一個(gè)模塊,縮小了FPGA邏輯資源的使用。以下表格是FPGA內(nèi)部資源使用情況:

5 算法RTL級(jí)仿真結(jié)果及分析

系統(tǒng)仿真在計(jì)算機(jī)上實(shí)現(xiàn)完成,平臺(tái)使用的是英特爾core i5處理器,仿真圖如下:

圖中sdram_dout即為txt文件圖像數(shù)據(jù)輸入,sys_data_in即為算法計(jì)算結(jié)果,之后將計(jì)算結(jié)果輸出到一個(gè)txt文件上,再在MATLAB上合成圖像,驗(yàn)證RTL級(jí)算法代碼可行性。RTL級(jí)代碼設(shè)計(jì)的變換級(jí)數(shù)為3級(jí),下圖左為原圖,右為RTL代碼邊緣提取結(jié)果圖:

進(jìn)行了硬件電路的設(shè)計(jì)介紹以及算法各模塊的設(shè)計(jì)仿真,最后給出了RTL代碼的仿真邊緣提取結(jié)果,從結(jié)果可以看到,小波的邊緣效果連續(xù)并且通過閾值截取提出較為精細(xì)的邊緣線條。

通過FPGA硬件模塊并行處理的算法加速,很大程度上減少了圖像經(jīng)過小波變換計(jì)算的時(shí)間,通過用MATLAB仿真和FPGA硬件加速計(jì)算的結(jié)果對比可以明顯看出差別:

有以上表格可見,當(dāng)FPGA的工作頻率在100MHz的情況下,對于不同分辨率圖像進(jìn)行小波變換邊緣計(jì)算所耗費(fèi)的時(shí)間,與MATLAB計(jì)算仿真所耗費(fèi)的時(shí)間相比還是快了很多,在兩個(gè)數(shù)量級(jí)以上。更關(guān)鍵的是,F(xiàn)PGA這個(gè)計(jì)算速度受到了SDRAM讀寫速度的限制,在將計(jì)算好的圖像數(shù)據(jù)寫入或者讀出SDRAM的時(shí)候花費(fèi)了大量的時(shí)間,如果刨除SDRAM讀寫的速度問題,可以更大程度上縮小小波變換邊緣檢測計(jì)算的時(shí)間。

參考文獻(xiàn):

[1] 鮑書朋.人工視覺假體系統(tǒng)設(shè)計(jì)[D].鄭州大學(xué),2014.

[2] Zrenner E. Will retinal implants restore vision Science,2002,295(8):1021-1025.

[3] 趙璨.應(yīng)用于視皮層假體的圖像處理系統(tǒng)的初步研究[D].重慶大學(xué),2010.

[4] 謝程程.視覺假體圖像處理策略及編碼研究[D].上海交通大學(xué),2011.

[5] Dagnelie G. Psychophysical evaluation for visual prosthesis[J]. Biomedical Engineering 2008, 10(1): 339.

[6] 李晟.視覺假體裝置模型建立及視覺信息處理研究[D].上海交通大學(xué),2011.

[7] 任秋實(shí).視覺假體的研究進(jìn)展與面臨的挑戰(zhàn)[A].生命科學(xué),2009,21(2),235-240.

猜你喜歡
小波分析邊緣檢測
小波分析在橋梁健康檢測中的應(yīng)用探析
基于圖像的物體尺寸測量算法研究
晉西北偏關(guān)縣55年降水周期分析
唐卡圖像邊緣提取
移相干涉術(shù)及其相位解包新思路
基于數(shù)據(jù)挖掘技術(shù)的圖片字符檢測與識(shí)別
水下大壩裂縫圖像分割方法研究 
小波分析在圖像處理中的應(yīng)用
球床反應(yīng)堆內(nèi)氣—液兩相流壓差波動(dòng)信號(hào)時(shí)域特性研究
科技視界(2016年12期)2016-05-25 00:42:48
基于TMS320的跑道異物監(jiān)測系統(tǒng)
科技視界(2016年9期)2016-04-26 18:24:05
莱阳市| 桃江县| 临西县| 章丘市| 伊金霍洛旗| 烟台市| 张家口市| 邢台市| 手机| 清丰县| 湟源县| 普兰县| 六盘水市| 徐闻县| 新宾| 大悟县| 南溪县| 个旧市| 久治县| 阿荣旗| 哈尔滨市| 封丘县| 公安县| 枞阳县| 泗阳县| 香河县| 普兰店市| 河津市| 隆回县| 清远市| 邯郸县| 确山县| 安平县| 祁东县| 成安县| 上饶县| 陇川县| 民乐县| 抚顺县| 应用必备| 松原市|