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

?

基于FPGA實(shí)現(xiàn)的Ferguson雙三次曲面插值圖像縮放算法

2019-09-10 07:22彭燕胡丹屏劉宇紅張榮芬
關(guān)鍵詞:插值流水線曲面

彭燕 胡丹屏 劉宇紅 張榮芬

摘 要:圖像縮放作為圖像處理中重要的一部分,具有廣泛的應(yīng)用領(lǐng)域。隨著科技的發(fā)展,實(shí)際應(yīng)用中對圖像縮放的質(zhì)量和速度的要求也隨之提高。本文首先在Matlab中實(shí)現(xiàn)糖尿病視網(wǎng)膜圖像的縮放實(shí)驗(yàn),對比驗(yàn)證了Ferguson雙三次曲面插值算法在圖像縮放細(xì)節(jié)處理上的優(yōu)異表現(xiàn),然后在擅長以納秒級速度處理并行數(shù)據(jù)的FPGA硬件平臺上實(shí)現(xiàn)該算法,達(dá)到了良好的圖像縮放效果,這有利于醫(yī)療圖像處理等工程應(yīng)用與實(shí)踐。

關(guān)鍵詞:圖像縮放;糖尿病視網(wǎng)膜圖像;Ferguson雙三次曲面插值算法;FPGA

中圖分類號:TP29

文獻(xiàn)標(biāo)識碼: A

數(shù)字圖像的縮放技術(shù)在航天航空、安全監(jiān)控、醫(yī)療圖像診斷等領(lǐng)域都有著廣泛的應(yīng)用。圖像縮放的實(shí)現(xiàn),需要在效率、平滑度和清晰度之間進(jìn)行權(quán)衡[1],由于圖像的數(shù)據(jù)量十分巨大,使得圖像縮放處理消耗大量的時(shí)間[2],因此,快速和高品質(zhì)圖像縮放技術(shù)是非常重要的一個(gè)研究方向。

糖尿病視網(wǎng)膜病變(Diabetic Retinopathy)是一種具有特異性改變的眼底病變,近幾年由于糖尿病視網(wǎng)膜患者的數(shù)量龐大,國內(nèi)外都在開展以眼底照片為基礎(chǔ)的糖尿病視網(wǎng)膜病變計(jì)算機(jī)輔助診斷研究[3],其中,實(shí)現(xiàn)對糖尿病視網(wǎng)膜圖像的縮放,保證圖像縮放后的細(xì)節(jié)表現(xiàn),對保障后續(xù)病變診斷分類算法的準(zhǔn)確度意義重大。

目前有學(xué)者將傳統(tǒng)的插值算法如:最近鄰插值算法、雙線性插值算法、雙三次插值算法在硬件平臺上實(shí)現(xiàn)來開展圖像縮放的工作,例如,薄振桐等人使用FPGA自帶的乘法IP核,結(jié)合DDR2的緩存實(shí)現(xiàn)了最近鄰插值算法[4],但吳以凱說明了最近鄰插值算法的使用會(huì)出現(xiàn)明顯的鋸齒效應(yīng),只適應(yīng)于對圖像要求不高的場合[5]。王平等人利用GPU高性能并行計(jì)算優(yōu)勢實(shí)現(xiàn)了基于雙線性插值的快速縮放[6]。韓忠杰等人說明了雙線性插值只能保證灰度值連續(xù),不能保證插值處導(dǎo)數(shù)值連續(xù),所以在某些較高要求的場合仍不能滿足要求[7]。朱艷亮為了降低計(jì)算復(fù)雜度采用分級的思想在FPGA上實(shí)現(xiàn)雙三次插值算法,雖然達(dá)到良好的視覺效果,但是帶來了一定的算法精度問題[8]。綜上可知,要想達(dá)到快速和高品質(zhì)的圖像縮放,圖像縮放的算法以及硬件平臺的選擇在圖像縮放領(lǐng)域扮演著至關(guān)重要的角色。

為解決上述問題,本文以糖尿病視網(wǎng)膜病變圖像的縮放為研究背景,提出一種采用FPGA硬件平臺來實(shí)現(xiàn)基于Ferguson雙三次曲面插值的圖像縮放方法,首先,硬件實(shí)現(xiàn)上采用多級FIFO或RAM緩存做流水線的方式,比DDR緩存方式更為簡便。其次,算法上把數(shù)字圖像構(gòu)造為分片雙三次Ferguson插值C1曲面,整個(gè)圖像縮放的過程等價(jià)于對得到的連續(xù)插值曲面進(jìn)行重采樣,規(guī)避了求解線性方程組所帶來的計(jì)算復(fù)雜度問題,且達(dá)到插值處灰度值和導(dǎo)數(shù)都連續(xù),使得細(xì)節(jié)表現(xiàn)清楚,能夠在FPGA平臺上以較好的效果實(shí)現(xiàn)對視頻圖像的實(shí)時(shí)縮放。

1?Ferguson雙三次曲面插值的圖像縮放算法及Matlab驗(yàn)證

1.1?雙三次Ferguson曲面

雙三次Ferguson曲面是由雙三次Coons曲面演變而來,雙三次Coons曲面可表示為[9]:

P(u,v)=UMBMTVT,(0≤u≤1,0≤v≤1)。(1)

(1)式中P(u,v),(0≤u≤1,0≤v≤1)為給定的雙三次參數(shù)曲面,其四個(gè)角點(diǎn)處的幾何信息定義為:位置矢量Pij=P(i,j)(i,j=0,1),沿著u方向的切矢Puij=Puu=i,v=j(i,j=0,1),沿著v方向的切矢量Pvij=Pvu=i,v=j(i,j=0,1),Puvij=2Puvu=i,v=j(i,j=0,1)為四個(gè)角點(diǎn)處的扭矢。其中U,V,M矩陣為:

U=u3,u2,u,1,V=v3,v2,v,1,

M=2-211-33-2-100101000。

B為角點(diǎn)信息矩陣,表示為:

B=P00P01Pu00Pu01P10P11Pu10Pu11Pv00Pv01Puv00Puv01Pv10Pv11Puv10Puv11。

在實(shí)際的計(jì)算過程中由于四個(gè)角點(diǎn)的扭矢不易確定,所以都令其值為零,即:

B=P00P01Pu00Pu01P10P11Pu10Pu11Pv00Pv0100Pv10Pv1100,

此時(shí)得到P(u,v)=UMBMTVT,(0≤u≤1,0≤v≤1)定義的曲面為Ferguson雙三次曲面。

1.2?雙三次Ferguson曲面插值

前面提到該曲面插值算法把數(shù)字圖像構(gòu)造為分片雙三次Ferguson插值C1曲面,下面詳細(xì)介紹插值曲面的構(gòu)造過程,首先定義原數(shù)字圖像為Fij,(0≤i≤M,0≤j≤N),定義插值曲面F(s,t)(0≤s≤M,0≤t≤N)是由M×N張的Ferguson雙三次曲面片F(xiàn)ij(u,v)(0≤i≤M,0≤j≤N)組成,根據(jù)以上的推導(dǎo)將曲面片定義為:

Fij(u,v)=UMBijMTVT,(0≤u≤1,0≤v≤1)。(2)

其中U,V,M三個(gè)矩陣的值和上面定義的一樣,角點(diǎn)信息矩陣B根據(jù)原圖像定義為:

Bij=FijFij+1FuijFuij+1Fi+1jFi+1j+1Fui+1jFui+1j+1FvijFvij+100Fvi+1jFvi+1j+100,

則根據(jù)定義如下等式成立:

F(s,t)=Fij(u,v),(u=s-i,v=t-j),其中i≤s≤i+1,j≤t≤j+1。

對于角點(diǎn)信息矩陣Bij中的矩陣元素解析:將整個(gè)矩陣分解為四個(gè)2×2的矩陣,其中左上角的2×2矩陣中四個(gè)元素代表原圖像的像素值,右上角的四個(gè)元素則代表四個(gè)角點(diǎn)處圖像像素值關(guān)于參數(shù)u的變化率,左下角的四個(gè)元素則代表四個(gè)角點(diǎn)處圖像像素值關(guān)于參數(shù)v的變化率,通俗理解為像素值在i,j兩個(gè)方向上的偏導(dǎo)數(shù)求解。定義為式子:

Fuij=Fi+1j-Fij,(3)

Fvij=Fij+1-Fij。(4)

從上兩式可以得出對于兩個(gè)方向上的偏導(dǎo)數(shù)求解即為相鄰像素間的差值。最終,在明確定義(2)式中的各個(gè)矩陣后即可完成連續(xù)的插值曲面F(s,t)構(gòu)造。

在明確了連續(xù)的插值曲面F(s,t)(0≤s≤M,0≤t≤N)的構(gòu)造過程后,假設(shè)欲將M×N大小的數(shù)字圖像縮放到M1×N1,則可以利用參數(shù)曲面F(s,t)(0≤s≤M,0≤t≤N)插值給定的(M×N)個(gè)像素值Fij,使得:

F(i,j)=Fij,0≤i≤M,0≤j≤N,(5)

從而得到連續(xù)的圖像F(s,t)(0≤s≤M,0≤t≤N),要想將原圖的大小縮放為M1×N1,只需要對連續(xù)圖像F(s,t)進(jìn)行重采樣,也就是在F(s,t)上均勻地取M1×N1個(gè)像素,再根據(jù)縮放比例(MM1,NN1)來求得新圖的像素:

F(s,t)=F(iMM1,jNN1)。(6)

1.3?Ferguson雙三次曲面插值算法的Matlab驗(yàn)證

在醫(yī)療圖像預(yù)處理這一應(yīng)用背景下,為驗(yàn)證Ferguson雙三次曲面插值算法的縮放效果,本文采用糖尿病視網(wǎng)膜圖像做圖像的縮放仿真實(shí)驗(yàn)。為進(jìn)行對比,在Matlab環(huán)境下,將分辨率為231×181的糖尿病視網(wǎng)膜圖片分別用Ferguson雙三次曲面插值算法和雙線性算法進(jìn)行放大2倍和縮小2倍的處理。其放大和縮小的對比效果圖如圖1、圖2所示。

對比圖1中兩個(gè)標(biāo)注框處的粗血管可以看出,右邊雙線性算法放大后的處理效果要比Ferguson雙三次曲面插值算法的模糊一些。同樣,在圖2中也可以明顯地看出,相比于雙線性算法的處理效果,左側(cè)Ferguson雙三次曲面插值算法在縮小的處理上保留了更多的細(xì)節(jié),效果更加清晰。

2?Ferguson雙三次曲面插值圖像縮放算法的FPGA設(shè)計(jì)與實(shí)現(xiàn)

Matlab仿真實(shí)驗(yàn)體現(xiàn)了基于Ferguson雙三次曲面插值算法的圖像縮放效果,為便于將該算法應(yīng)用于視頻圖像處理的工程項(xiàng)目中,本文進(jìn)一步結(jié)合FPGA硬件平臺的并行計(jì)算優(yōu)勢,研究Ferguson雙三次曲面插值算法在FPGA上的實(shí)現(xiàn)。

在FPGA中,數(shù)據(jù)和標(biāo)志信號都是根據(jù)時(shí)鐘更新的。當(dāng)前端攝像頭采集視頻數(shù)據(jù)送入相機(jī)時(shí)序解析模塊后,其輸出的行列同步信號送入FPGA端計(jì)數(shù)控制單元以便后續(xù)控制RGB數(shù)據(jù)在流水緩存模塊的讀寫。隨后,把讀出的數(shù)據(jù)和縮放系數(shù)送入公式計(jì)算單元求得縮放后的像素?cái)?shù)據(jù)。最后,由相機(jī)同步信號恢復(fù)單元控制緩沖輸出單元讀出縮放后RGB像素,以實(shí)現(xiàn)縮放后視頻圖像的實(shí)時(shí)輸出。整個(gè)縮放算法的總體實(shí)現(xiàn)流程如圖3所示。

本項(xiàng)目的硬件采用Xilinx旗下低成本、低功耗的Spartan-6系列的FPGA,其硬件描述語言為Verilog HDL。在圖3中,整個(gè)算法的實(shí)現(xiàn)核心有兩個(gè):流水線緩存單元和公式計(jì)算單元。流水線緩存單元的設(shè)計(jì)目的是使之并行輸出三行數(shù)據(jù)。當(dāng)公式計(jì)算單元接收流水線緩存單元并行輸出的數(shù)據(jù)后,執(zhí)行Ferguson雙三次曲面插值算法,完成縮放像素的計(jì)算。

首先,要想求解縮放后的像素?cái)?shù)據(jù),需要Iij,Iij+1,Iij+2,Ii+1j,Ii+1j+1,Ii+1j+2,Ii+2j,Ii+2j+1共8個(gè)像素,而這8個(gè)像素分別在當(dāng)前行,當(dāng)前行的下一行,以及當(dāng)前行的下兩行,即需要流水線緩存三行數(shù)據(jù)。因此,在流水線緩存單元中調(diào)用3個(gè)FIFO/RAM緩存模塊以便d1,d2,d3的并行輸出。

在FPGA中,流水線緩存一般有兩種方式:調(diào)用FIFO做緩存,或調(diào)用RAM做緩存。對于本文的

放大算法,我們采取RAM流水線,對于縮小算法,則采用FIFO流水線。但不管是哪種方式,流水線的設(shè)計(jì)都是一樣的。具體流水線設(shè)計(jì)流程如圖4所示。

由圖4可知,當(dāng)ROW_1即圖像輸入的第一行來臨時(shí),把它寫入Cache_1,此時(shí)Cache_1中存儲(chǔ)ROW_1。當(dāng)ROW_2即圖像第二行來臨時(shí),從Cache_1中讀出ROW_1寫入Cache_2,然后把ROW_2寫入Cache_1,此時(shí)Cache_1中緩存ROW_2,Cache_2中緩存ROW_1。當(dāng)ROW_3即圖像第三行來臨時(shí),從Cache_2中讀出ROW_1寫入Cache_3,從Cache_1中讀出ROW_2寫入Cache_2,把ROW_3寫入Cache_1,此時(shí),Cache_1中存儲(chǔ)ROW_3,Cache_2存儲(chǔ)ROW_2,Cache_3中存儲(chǔ)ROW_1。如此同一時(shí)鐘下可以連續(xù)讀取三行圖像數(shù)據(jù)。

3?仿真實(shí)驗(yàn)及結(jié)果分析

3.1?縮放仿真實(shí)驗(yàn)

在整體算法驗(yàn)證實(shí)驗(yàn)中,F(xiàn)PGA的時(shí)鐘晶振采用100 M,即時(shí)鐘周期為10 ns。實(shí)驗(yàn)主要將原始分辨率1024×768的圖像,放大至分辨率為1600×1200的圖像,縮小至分辨率為640×480的圖像。

對于放大算法而言,縮放系數(shù)必然大于1,根據(jù)公式(6)可知,隨著i的增加,原圖的同一行數(shù)據(jù)有可能需要讀取兩次,故需要RAM這種有地址并且可以重復(fù)讀取數(shù)據(jù)的緩存來實(shí)現(xiàn)。且為了滿足實(shí)時(shí)輸出,需要輸出的時(shí)鐘大于輸入,其中,放大算法仿真波形如圖5所示。

圖5中,前兩條波形代表輸入原始圖像數(shù)據(jù)有效信號,數(shù)據(jù)信號和輸入行計(jì)數(shù)信號,最后兩條波形代表放大后數(shù)據(jù)有效信號,放大后數(shù)據(jù)信號以及輸出的行計(jì)數(shù)信號。其中,從輸出波形可以看出公式計(jì)算單元輸出的放大后像素時(shí)序不滿足顯示時(shí)序,輸出信號的間隔明顯不一致,需要送入RAM緩存輸出單元,由相機(jī)同步信號恢復(fù)單元控制讀出。

對于縮小算法來說,縮放系數(shù)必然小于1,因此讀寫時(shí)鐘相同即可,并不影響實(shí)時(shí)顯示。同時(shí)也不存在原圖同一行數(shù)據(jù)需要讀取兩次的問題,反而需要跳行讀取,那么FIFO流水線就可以滿足設(shè)計(jì)需求,縮小算法仿真波形如圖6所示。

圖6中,前兩條波形代表輸入原始圖像數(shù)據(jù)有效信號,數(shù)據(jù)信號和輸入行計(jì)數(shù)信號,后兩條波形代表縮小后的數(shù)據(jù)有效信號,縮小后的數(shù)據(jù)信號以及輸出的行計(jì)數(shù)信號。其中,輸出的行間隔比輸入的大,這里可調(diào)用異步FIFO做緩存輸出單元,設(shè)置讀時(shí)鐘慢于寫時(shí)鐘,并通過相機(jī)同步信號恢復(fù)單元做讀控制,以此調(diào)整輸出時(shí)序,便于顯示。

另外,在實(shí)驗(yàn)中,由于相機(jī)的行列消隱對延遲有影響,不同相機(jī)具有不同的行列消隱,因此,本文只根據(jù)仿真結(jié)果對延遲做大約估算。由仿真可知,縮小延遲大約為51200 ns,放大延遲為30720 ns。

3.2?不同平臺下圖像縮放的延時(shí)對比實(shí)驗(yàn)

為了作對比,分別在GPU及個(gè)人PC上對原始分辨率為1024×768的圖像做同樣的縮放實(shí)驗(yàn),其中GPU內(nèi)存為64 GB,在Linux開發(fā)環(huán)境下采用Python語言實(shí)現(xiàn)。各平臺縮放實(shí)驗(yàn)的延時(shí)時(shí)間對比如表1所示。

從表1可得,相較PC及GPU的延遲時(shí)間而言,F(xiàn)PGA的實(shí)現(xiàn)加快了處理的實(shí)時(shí)性,使得在FPGA平臺上可以以較好的效果實(shí)現(xiàn)對圖像的縮放。

4?結(jié)語

針對糖尿病視網(wǎng)膜圖像,探索了Ferguson雙三次曲面插值算法在圖像縮放中的應(yīng)用,通過Matlab對比驗(yàn)證Ferguson雙三次曲面插值圖像縮放算法在細(xì)節(jié)處理的效果后,研究了該算法在FPGA硬件平臺上實(shí)現(xiàn),得到了較好的圖像縮放效果。實(shí)驗(yàn)表明圖像縮小延遲大約為51200 ns,放大延遲為30720 ns,達(dá)到了對圖像縮放的質(zhì)量和速度的要求。

參考文獻(xiàn):

[1]Sekar K, Duraisamy V, Remimol A M. An approach of image scaling using DWT and bicubic interpolation[C]// International Conference on Green Computing Communication & Electrical Engineering. IEEE,India, 2014:1-5.

[2]Di C, Tian X, Yiying S. Image scaling algorithm based on GPU parallel processing[C]// 2013 2nd International Symposium on Instrumentation & Measurement, Sensor Network and Automation (IMSNA). IEEE,Canada, 2013:1044-1049.

[3]許莉莉,梁歌,楊智.糖尿病視網(wǎng)膜病變篩查中的眼底圖像質(zhì)量控制[J].北京生物醫(yī)學(xué)工程,2019(2):166-170.

[4]薄振桐. 基于FPGA和DDR2的圖像縮放系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2014.

[5]吳以凱. 基于FPGA的視頻縮放的設(shè)計(jì)與實(shí)現(xiàn)[D].鎮(zhèn)江:江蘇大學(xué),2017.

[6]王平,全吉成,趙柏宇.基于雙線性插值的圖像縮放在GPU上的實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2016,33(11):129-132.

[7]韓忠杰,饒道娟,穆國旺.基于Ferguson曲面插值的圖像縮放方法[J].河北工業(yè)大學(xué)學(xué)報(bào),2006(1):49-53.

[8]朱艷亮. 實(shí)時(shí)視頻縮放算法研究及FPGA實(shí)現(xiàn)[D].長沙:中南大學(xué),2009.

[9]韓萍,蘇志勛,劉秀平.帶參數(shù)Coons插值曲面的圖像插值方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2005(5):976-980.

(責(zé)任編輯:曾?晶)

Implementation of Ferguson Bicubic Surface Interpolation

Image Scaling Algorithm Based on FPGA

PENG Yan1, HU Danping2, LIU Yuhong1, ZHANG Rongfen1*

(1.College of Big Data and Information Engineering, Guizhou University, Guiyang 550025, China;

2.Beijing Dongfang Dewei System Technology Co. Ltd., Beijing 100081, China)

Abstract:

As an important part of image processing, image scaling has a wide range of applications. With the development of technology, the requirements for the quality and speed of image scaling have also increased in practical applications. The scaling experiment of diabetic retinal image in MATLAB was reakuzed, and the superior performance of Ferguson bicubic surface interpolation algorithm in the detail processing of image scaling was verified. And then, the algorithm was implemented on the hardware platform FPGA which is good at processing data in nanosecond speed, achieving good image scaling, which is beneficial to engineering applications and practices such as medical image processing.

Key words:

image scaling; diabetic retinal image; Ferguson bicubic surface interpolation algorithm; FPGA

猜你喜歡
插值流水線曲面
無定河流域降水量空間插值方法比較研究
熨燙女工
參數(shù)方程曲面積分的計(jì)算
參數(shù)方程曲面積分的計(jì)算
奇思妙想
福州市PM2.5濃度分布的空間插值方法比較
不同空間特征下插值精度及變化規(guī)律研究
關(guān)于第二類曲面積分的幾個(gè)闡述
流水線
流水線上的神奇轉(zhuǎn)換
临沂市| 平昌县| 平潭县| 长汀县| 大安市| 山东| 清丰县| 衢州市| 游戏| 同江市| 平远县| 肥乡县| 桐乡市| 炎陵县| 普兰县| 库车县| 兴安盟| 镇沅| 任丘市| 曲松县| 石阡县| 泸定县| 平顶山市| 长乐市| 壶关县| 太保市| 仙桃市| 明星| 哈密市| 休宁县| 布拖县| 岢岚县| 册亨县| 区。| 广德县| 射洪县| 新晃| 安国市| 望都县| 西乌珠穆沁旗| 陇西县|