• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    各向異性模型圖像增強算法的FPGA高速實現(xiàn)

    2019-10-18 07:52:46張?zhí)煜?/span>劉瑞強劉艷莉張艷花張鵬程桂志國
    測試技術(shù)學(xué)報 2019年5期
    關(guān)鍵詞:參數(shù)表處理結(jié)果圖像增強

    張?zhí)煜?,劉瑞強,?沖,劉艷莉,張艷花,張鵬程,桂志國

    (1.中北大學(xué) 生物醫(yī)學(xué)成像與影像大數(shù)據(jù)山西省重點實驗室,山西 太原 030051;2.哈爾濱工業(yè)大學(xué) 電子與信息工程學(xué)院,黑龍江 哈爾濱 150001;3.中北大學(xué) 信息與通信工程學(xué)院,山西 太原 030051)

    隨著傳感器技術(shù)的發(fā)展,圖像增強技術(shù)已經(jīng)應(yīng)用在工業(yè)檢測、無人機識別、生物醫(yī)學(xué)成像等多個領(lǐng)域.圖像增強技術(shù)對于實時性要求越來越高,所以越來越多的應(yīng)用領(lǐng)域要求降低算法的時延.實時性要求算法能夠在1 s內(nèi)處理25幀以上圖像,才能滿足人眼的視覺感受,使人眼不會感到卡頓的現(xiàn)象.圖像增強算法中,偏微分方程的圖像增強算法不僅能夠提高圖像對比度,也能較大程度地保留細節(jié)信息[1-2],但由于操作過程中圖像迭代次數(shù)較多并且每次對整幅圖像進行遍歷,在CPU上執(zhí)行圖像的遍歷計算的效率很低[3],運行Perona-Malik模型算法處理一幀圖像的時間都在200 ms以上,很難實現(xiàn)算法的實時性處理.

    現(xiàn)場可編程門陣列(FPGA)憑借其靈活性好、集成度高、并行處理、開發(fā)周期短等特點已經(jīng)廣泛應(yīng)用于圖像處理的各類加速應(yīng)用中.近年來,將FPGA與傳統(tǒng)嵌入式芯片的融合也成為了一種替代原有技術(shù)的方案.同時,將FPGA作為CPU外帶加速卡已經(jīng)被廣泛應(yīng)用[4],F(xiàn)PGA加速卡不僅能夠為CPU快速實現(xiàn)算法,更有千兆網(wǎng)接口、PCIe接口等來保證超快速地傳輸數(shù)據(jù).

    因此,本文提出一種基于各向異性分散模型圖像增強算法的FPGA硬件實現(xiàn)結(jié)構(gòu).該算法是在Perona-Malik模型基礎(chǔ)上的一種改進算法,圖像經(jīng)過該算法處理后,對比度有所提高,圖像細節(jié)明顯增強.本文所設(shè)計的硬件結(jié)構(gòu)通過參數(shù)表,流水線處理以及行緩存等操作實現(xiàn).通過軟件實現(xiàn)和Modelsim仿真對結(jié)果進行對比,根據(jù)主客觀評價分析表明,將此算法實現(xiàn)在FPGA上,處理效果與軟件實現(xiàn)近似,并且滿足實時性處理要求.

    1 圖像的各向異性擴散模型

    1.1 Perona-Malik模型

    Perona-Malik模型是一種各向異性擴散模型,迭代格式十分簡明,算法復(fù)雜度較低.模型如下:設(shè)圖像定義在整個二維平面內(nèi),原始圖像I(x,y,0)=I(x,y)隨時間t演化為圖像I(x,y,t)[5-7],演化規(guī)則為

    (1)

    式中:c(x,y,t)稱作擴散函數(shù),根據(jù)擴散函數(shù)的值是否趨近于0來判斷圖像在區(qū)域內(nèi)是否需要平滑操作.

    將I(x,y,t)定義為灰度圖像的次迭代結(jié)果,(x,y,0)為初始圖像.迭代形式為

    I(x,y,t+1)=I(x,y,t)+

    (2)

    設(shè)可能的擴散函數(shù)c(x,y,t)

    (3)

    式中:常數(shù)K為擴散常數(shù)或者流常數(shù),作為邊緣強度的閾值.一般定義流函數(shù)為

    Φ(x,y,t)=g(|I|)·I(x,y,t).

    (4)

    圖1 中(a),(b)分別表示擴散函數(shù)和流函數(shù).

    圖1 Perona-Malik模型的函數(shù)圖

    圖1(b)中顯示隨著流常數(shù)K的增大,平滑效果越明顯,當(dāng)I=K時,平滑效果最好,當(dāng)I>4K后,平滑效果趨近于零.因此在圖像邊緣增強過程中,選擇K使其略小于邊緣的梯度幅度,有利于邊緣增強[8].隨著迭代次數(shù)的增加,圖像的細節(jié)逐漸被模糊,只能停止擴散來保留圖像原有的細節(jié)信息[9],限制了該模型在圖像增強領(lǐng)域的應(yīng)用.

    1.2 改進型Perona-Malik模型

    為了保留圖像的細節(jié)信息,同時提升圖像對比度,在Perona-Malik模型中融合銳化操作.改進后的模型不僅能夠?qū)Ρ尘皡^(qū)域進行平滑操作,也能夠在邊緣區(qū)域進行銳化操作,這樣在提升對比度的同時也不會模糊掉圖像的細節(jié)信息[10].類似傳統(tǒng)的Perona-Malik模型,其迭代形式為

    I(x,y,t+1)=I(x,y,t)+

    (5)

    式中:h(x,y,t)功能上是一個銳化函數(shù),定義

    h(i)=ω·[1-g(i)],

    (6)

    式中:g(i)為擴散函數(shù);ω為銳化程度系數(shù),0≤ω≤1.它決定了相應(yīng)擴散系數(shù)的銳化程度.將擴散函數(shù)g(i)帶入式(6)的c(x,y,t)中,得到

    I(x,y,t+1)=I(x,y,t)+

    (7)

    式中:將g(I)-h(I)作為新的擴散函數(shù),根據(jù)式(4)得出新的流函數(shù)

    Φ(x,y,t)=

    [g(|I|)-h(|I|)]·I(x,y,t).

    (8)

    圖2(a)所示為不同ω值下的新擴散函數(shù).在圖2(b)中取定ω=0.2,當(dāng)I>2.24K,即時,擴散函數(shù)和流函數(shù)降為負值,這里的正負值表明:對I>2.24K的邊緣區(qū)域進行銳化操作,對I<2.24K的非邊緣區(qū)域進行平滑操作.因此,選取合適的ω和K值,使改進型模型自適應(yīng)地進行平滑或銳化操作,從而提升圖像對比度并保留圖像細節(jié)[11],本文選取=0.15和K=1來計算擴散系數(shù).

    圖2 改進型Perona-Malik模型的函數(shù)圖

    2 基于FPGA的硬件實現(xiàn)

    采用Xilinx公司出品的Zynq-7000 SoC開發(fā)平臺,芯片型號為XC7Z020.開發(fā)平臺有以下主要資源:ARM雙核Cortex-A9處理器,處理器工作頻率667 MHz,8個DMA通道,其中4個專用于可編程邏輯,PS端(ARM)與PL端(FPGA)通過AXI總線接口相連接,PL端含有85 000個邏輯單元(LE),53 200個查找表(LUT),106 400個觸發(fā)器(FF),60個 36 Kb塊RAM,220個可編程DSP切片[12],開發(fā)板工作電壓為5 V.

    2.1 算法硬件結(jié)構(gòu)

    通過Verilog HDL硬件描述語言設(shè)計改進型Perona-Malik模型,輸入圖像I(x,y,t)通過N次迭代處理后輸出圖像I(x,y,t+N),每次迭代處理都由4部分組成,并且使用流水線處理來達到提高運算速率的目的[13].硬件結(jié)構(gòu)如圖3所示.

    首先將輸入圖像經(jīng)過行緩存,當(dāng)緩存的行數(shù)達到2行,即可與當(dāng)前輸入行的數(shù)據(jù)滿足3行數(shù)據(jù)同時傳輸.當(dāng)3行數(shù)據(jù)滿足3×3的窗口處理模板后,通過窗口模板計算4個方向的梯度.然后將梯度值絕對值|I|傳入?yún)?shù)表中進行查表操作得出每個方向的擴散系數(shù),最后將輸出圖像和每個方向的值進行累加,得到一次迭代處理的結(jié)果.

    在行緩存過程中,由于輸入圖像四周的像素不進行處理,為保證后續(xù)處理過程的統(tǒng)一性,如圖4所示,通過計數(shù)器來判斷像素位置,并添加1位標(biāo)志位進入行緩存中,后續(xù)處理中只需判斷標(biāo)志位來決定是否需要對像素進行處理.

    圖3 Perona-Malik模型算法硬件結(jié)構(gòu)圖

    圖4 行緩存與流水線操作

    流水線中參數(shù)表的建立是為了減少迭代過程中的復(fù)雜計算.首先將式(7)中的擴散函數(shù)g(I)-h(I)取定ω和K值,計算出擴散系數(shù)c.輸入圖像為8 b灰度圖像,梯度絕對值|I|在[0,255]范圍內(nèi).在迭代過程中,各個方向的計算結(jié)果是Si=|I|i×ci.所以參數(shù)表以梯度絕對值|I| 為索引,采用深度為256的ROM來存儲各個方向的計算結(jié)果Si.

    計算參數(shù)表時用定點小數(shù)表示浮點小數(shù).用 8 bit 數(shù)據(jù)來表示小數(shù)部分,對于灰度值區(qū)間為[0,255]的8 bit灰度圖來說,誤差只要小于0.5,在灰度值取整過程中就不會出現(xiàn)圖像信息缺失的問題.參數(shù)表實際值域為[-9.56,0.1],參數(shù)表使用8位定點小數(shù)表示后的最小分辨率為0.038,滿足計算精度要求.所以,結(jié)合上文負數(shù)的補碼表示,對參數(shù)表中數(shù)據(jù)保存格式如圖5所示,有1 bit 符號位+8 bit整數(shù)位+8 bit小數(shù)位,等效于將數(shù)值擴大256倍,為保證小數(shù)部分截去的尾數(shù)誤差更小,對結(jié)果加0.5后進行取整,則參數(shù)表存儲的值域為[-2 448,26],均采用補碼來表示.

    圖5 參數(shù)表數(shù)據(jù)保存格式

    除行緩存外,該算法結(jié)構(gòu)對每一幀圖像一次迭代計算只需要經(jīng)過3次加法計算和1次查表操作,避免了乘法以及平方等更加復(fù)雜的計算,計算過程經(jīng)過4個時鐘周期即可完成.

    2.2 系統(tǒng)整體結(jié)構(gòu)

    系統(tǒng)采用Zynq平臺實現(xiàn),由Zynq芯片,OV5640攝像頭、DDR3內(nèi)存緩存、VGA/HDMI顯示器構(gòu)成.系統(tǒng)結(jié)構(gòu)框架如圖6所示,分為硬件設(shè)計(PL)和軟件設(shè)計(PS)兩部分,其中硬件部分包括數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、數(shù)據(jù)緩存模塊和圖像顯示模塊.軟件部分包括OV5640攝像頭驅(qū)動、數(shù)據(jù)緩存和DMA驅(qū)動控制,軟硬件之間通過AXI接口進行通信.

    圖6 系統(tǒng)硬件結(jié)構(gòu)圖

    PS端最高工作頻率設(shè)置為667 MHz,PL端從數(shù)據(jù)采集模塊到DMA的工作頻率為100 MHz,OV5640和圖像顯示模塊工作頻率為25 MHz.PS端初始化攝像頭采集數(shù)據(jù)為YUV422格式,采集30 fps大小為640×480的圖像,數(shù)據(jù)采集模塊輸出Y分量,即灰度圖像.經(jīng)過Video in AXI-Stream IP核后將有效數(shù)據(jù)傳入數(shù)據(jù)處理模塊[14,15].

    數(shù)據(jù)經(jīng)過處理后,通過PS端控制DMA傳入DDR3內(nèi)存中進行緩存,類似雙緩沖機制,緩存3幀圖像來保證系統(tǒng)能夠同時接收和處理數(shù)據(jù).輸出顯示時,VTC視頻時間控制IP核給輸出模塊60 fps的VGA時序,所以在DMA與圖像顯示模塊之間加入了FIFO作為數(shù)據(jù)緩沖,防止數(shù)據(jù)丟失.

    3 結(jié)果及分析

    3.1 軟件實現(xiàn)及仿真結(jié)果對比

    將該算法的軟件實現(xiàn)與仿真的硬件加速結(jié)果做對比,選取ω=0.15和K=1.軟件實現(xiàn)在2.5 GHz 的Intel Corei5-4200M CPU上通過VS 2013開發(fā)平臺和OPENCV開發(fā)庫完成.仿真處理在Vivado 2016.4,Modelsim和Matlab聯(lián)合仿真下進行處理,為了與實際工程相符,設(shè)置工作頻率為100 MHz.

    選取兩張256×256,一張400×292的灰度圖進行對照實驗,每張圖像都經(jīng)過8次迭代處理,結(jié)果如圖7所示,其中第1列為選取的原圖,第2列是使用C++語言通過VS 2013開發(fā)平臺和OPENCV開發(fā)庫的處理結(jié)果,第3列是使用Verilog HDL經(jīng)過Vivado 2016.4綜合后,再通過其附帶的Modelsim仿真,產(chǎn)生數(shù)據(jù)文件后通過Matlab顯示的處理結(jié)果.

    通過觀察圖像、定量計算圖像信息熵和對比度來評價參數(shù)選取后的處理結(jié)果.圖像信息熵計算公式為

    (9)

    式中:i表示灰度圖像灰度值,pi表示i在灰度分布中所占比例.圖像信息熵越大表明圖像中的細節(jié)程度越好[16].對比度計算公式為

    C=∑δ(x,y)2·Pδ(x,y),

    (10)

    式中:δ(x,y)是相鄰像素間的灰度差;Pδ(x,y)是灰度差為δ的像素分布概率.

    圖7 中處理結(jié)果的各項參數(shù)如表1所示.通過觀察圖7 和表1 中的結(jié)果可以看出,軟件的處理結(jié)果與綜合后的仿真結(jié)果在圖像質(zhì)量上相差無幾.通過信息熵和對比度來看,其結(jié)果相差不大,參數(shù)提升范圍也在同一數(shù)量級,說明通過Verilog HDL所實現(xiàn)的算法與C++所實現(xiàn)算法處理效果相同.但通過處理時間對比可知,經(jīng)過硬件算法在FPGA上實現(xiàn)的處理速度將會是在計算機CPU上實現(xiàn)的300倍左右,加速效果明顯.

    圖7 VS2013處理結(jié)果和Modelsim仿真處理結(jié)果

    表1 處理結(jié)果的各項參數(shù)

    3.2 硬件實現(xiàn)結(jié)果

    將該算法在ZYNQ開發(fā)板上進行實現(xiàn),將輸出圖像改為720 p圖像,相應(yīng)的輸出時鐘頻率改為75 MHz,目的是將大小為640×480的原圖與處理結(jié)果圖拼接后進行對比,最終結(jié)果如圖8所示.

    圖8 中左側(cè)為處理后的顯示圖像,右側(cè)為原圖.圖8(a)為遮擋物體采光后采集的低對比度圖像,比較明顯的是原圖中因光照問題所模糊的投擲垃圾圖案和花型圖案,在處理圖中可以清晰看到其輪廓細節(jié).圖8(b)為正常采集的圖像,對比度相對較高,圖像細節(jié)保留完好,根據(jù)處理后的結(jié)果來看,并沒有出現(xiàn)過度銳化的現(xiàn)象,并且圖像對比度也有一定提升,結(jié)果表明算法在該場景下適應(yīng)性較好,所消耗各項資源如表2所示.

    圖8 實際場景處理結(jié)果圖

    4 結(jié) 論

    本文在ZYNQ-7000平臺上對一種改進型Perona-Malik模型算法進行算法加速.通過對照實驗分析結(jié)果,該算法在PL端處理一幀256×256圖像約為0.67 ms,滿足算法處理實時性要求,使用Verilog HDL實現(xiàn)后處理效果與C++實現(xiàn)效果相似,并且在實際工程中處理效果較好,沒有出現(xiàn)過度銳化和噪聲等現(xiàn)象.

    下一步的改進之處有:

    1) 利用片內(nèi)RAM,F(xiàn)IFO等其他內(nèi)部資源解決觸發(fā)器消耗較多的問題;

    2) 先將數(shù)據(jù)存儲,再通過DMA讀出后進行處理[17],用于解決處理結(jié)果邊緣有毛刺的問題.

    猜你喜歡
    參數(shù)表處理結(jié)果圖像增強
    鋼結(jié)構(gòu)有限元參數(shù)化分析系統(tǒng)研究
    圖像增強技術(shù)在超跨聲葉柵紋影試驗中的應(yīng)用
    告作者
    水下視覺SLAM圖像增強研究
    虛擬內(nèi)窺鏡圖像增強膝關(guān)節(jié)鏡手術(shù)導(dǎo)航系統(tǒng)
    WPS在成形管生產(chǎn)過程中的運用
    基于圖像增強的無人機偵察圖像去霧方法
    間接正犯與教唆犯的異同
    EXCEL在調(diào)度自動化系統(tǒng)數(shù)據(jù)庫維護中的應(yīng)用
    基于偏度、峰度特征的BPSK信號盲處理結(jié)果可信性評估
    電子器件(2015年5期)2015-12-29 08:42:56
    贵定县| 津南区| 永德县| 抚顺县| 襄城县| 蓬溪县| 宁武县| 余江县| 鄂伦春自治旗| 遂昌县| 平和县| 宣城市| 徐州市| 明水县| 定州市| 唐山市| 循化| 常宁市| 延长县| 习水县| 稻城县| 贺州市| 宜兰县| 江安县| 阳信县| 靖宇县| 鄂尔多斯市| 化德县| 麻栗坡县| 徐闻县| 中方县| 社旗县| 三门县| 潼关县| 绩溪县| 民权县| 合山市| 昂仁县| 淳安县| 天门市| 广西|