• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2019-04-12 00:00:00彭燕胡丹屏劉宇紅張榮芬

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

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

      中圖分類號:TP29

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

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

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

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

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

      1"Ferguson雙三次曲面插值的圖像縮放算法及Matlab驗證

      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ù)曲面,其四個角點處的幾何信息定義為:位置矢量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)為四個角點處的扭矢。其中U,V,M矩陣為:

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

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

      B為角點信息矩陣,表示為:

      B=P00P01Pu00Pu01P10P11Pu10Pu11Pv00Pv01Puv00Puv01Pv10Pv11Puv10Puv11。

      在實際的計算過程中由于四個角點的扭矢不易確定,所以都令其值為零,即:

      B=P00P01Pu00Pu01P10P11Pu10Pu11Pv00Pv0100Pv10Pv1100,

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

      1.2"雙三次Ferguson曲面插值

      前面提到該曲面插值算法把數(shù)字圖像構(gòu)造為分片雙三次Ferguson插值C1曲面,下面詳細介紹插值曲面的構(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三個矩陣的值和上面定義的一樣,角點信息矩陣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。

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

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

      Fvij=Fij+1-Fij。(4)

      從上兩式可以得出對于兩個方向上的偏導(dǎo)數(shù)求解即為相鄰像素間的差值。最終,在明確定義(2)式中的各個矩陣后即可完成連續(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)個像素值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)進行重采樣,也就是在F(s,t)上均勻地取M1×N1個像素,再根據(jù)縮放比例(MM1,NN1)來求得新圖的像素:

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

      1.3"Ferguson雙三次曲面插值算法的Matlab驗證

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

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

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

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

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

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

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

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

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

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

      3"仿真實驗及結(jié)果分析

      3.1"縮放仿真實驗

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

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

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

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

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

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

      3.2"不同平臺下圖像縮放的延時對比實驗

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

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

      4"結(jié)語

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

      參考文獻:

      [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 amp; 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 amp; 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è)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2014.

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

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

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

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

      [9]韓萍,蘇志勛,劉秀平.帶參數(shù)Coons插值曲面的圖像插值方法[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,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

      临泽县| 抚远县| 天峻县| 大英县| 洞头县| 民勤县| 苏州市| 铁力市| 钟祥市| 包头市| 通江县| 青岛市| 枣庄市| 临沧市| 承德县| 江北区| 布拖县| 博白县| 宁武县| 缙云县| 简阳市| 睢宁县| 唐山市| 宜春市| 得荣县| 眉山市| 平舆县| 兴化市| 永平县| 巴楚县| 夏河县| 思南县| 望谟县| 平山县| 弥勒县| 清水河县| 特克斯县| 舟曲县| 商河县| 苍溪县| 楚雄市|