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

        ?

        基于FPGA的水平集圖像分割算法加速器

        2021-06-24 09:40:36肖劍彪
        電子與信息學報 2021年6期
        關鍵詞:散度加速器輪廓

        劉 野 肖劍彪 吳 飛 常 亮 周 軍

        (電子科技大學 成都 611731)

        1 引言

        圖像分割技術已經廣泛應用于多個領域,如醫(yī)學圖像分析、自動駕駛、人臉識別等[1—3]。該技術可以獨立應用或作為目標檢測和目標分類應用的預處理方法。圖像分割可以使用傳統(tǒng)的分割方法實現(如水平集方法),也可以使用基于神經網絡的方法。其中,基于神經網絡的圖像分割方法比如全卷積網絡(Fully Convolutional Networks, FCN)和U-Net[4],由于其高準確率的特點,在近幾年吸引了大量關注。但是這些方法的缺點是需要大量的訓練數據才能達到如此高的準確率。為了制作圖像分割的標簽,需要為每個訓練的數據畫出目標輪廓,這往往需要耗費大量精力和時間。與基于神經網絡的方法對比,基于水平集的圖像分割方法不需要訓練數據并且能夠達到高準確率。另外,基于水平集的圖像分割方法是根據像素紋理進行分割的,與需要訓練數據的神經網絡方法相比,提供了更強的魯棒性。

        水平集方法由Osher等人[5]首次提出,用于捕獲動態(tài)的圖像輪廓。隨后,Kass等人[6]提出了基于活動輪廓模型的改進算法?;顒虞喞P陀袃煞N類型:參數活動輪廓模型[6,7]和幾何活動輪廓模型[8—10]。水平集算法的關鍵點是曲線演化理論,即使用高維曲面的零平面表示低維曲面的輪廓。水平集方法與其他的圖像分割方法對比的一個優(yōu)點是它能夠很好地處理拓撲結構變化的問題(比如在演化過程中,輪廓的拓撲結構從1個輪廓分化為兩個輪廓,或者從兩個輪廓合并為1個輪廓的情況)。

        對比基于深度學習的圖像分割方法[11],水平集方法具有無需訓練數據、準確率高的特點,顯著地減少了制作標簽消耗的時間。但是,該算法包含了大量的復雜計算和多次迭代的過程,導致計算復雜度很高。在水平集算法中,基于能量泛函的偏微分方程涉及大量的梯度和散度計算,并且在曲線輪廓演進的過程中,需要重復計算該過程。此外,迭代計算的過程需要應用于整張圖片的全部像素,從而進一步增加了計算復雜度。目前,水平集算法仍然通過中央處理器(Central Processing Unit, CPU)利用軟件實現。復雜的計算過程導致該算法處理時間長和功耗大等問題,嚴重限制了水平集算法的應用。

        為了解決該問題,本文提出了一種基于現場可編程門陣列(Field Programmable Gate Array,FPGA)的水平集圖像分割算法加速器[12]。為了加速水平集算法并且提高硬件資源的高利用率,本文提出了4個設計創(chuàng)新點:(1)任務級并行處理;(2)圖像分塊像素級并行處理;(3)全流水線處理;(4)分時復用的梯度和散度算子處理。實驗結果表明:與CPU運行的水平集算法相比,所提出的基于FPGA的水平集圖像分割算法加速器有著更高的處理速度。

        本文的其余部分內容安排如下:第2節(jié)介紹水平集算法;第3節(jié)描述本文提出的基于FPGA的水平集圖像分割算法加速器以及4個設計創(chuàng)新點;第4節(jié)展示實驗結果與分析;第5節(jié)總結全文。

        2 水平集算法

        在原始的水平集算法中,經過多次迭代后,水平集函數需要重新初始化,以確保水平集曲線的平滑度。通過使用新的變分公式[15]以及距離正則化的水平集演化算法 (Distance Regularized Level Set Evolution, DRLSE)[16],將不再需要重新初始化水平集函數。關于水平集算法的軟件處理流程如圖1所示。原始的輸入圖像先經過高斯濾波器處理,然后再進行梯度運算。同時,初始的輪廓使用Neumann邊緣函數處理,然后分別進行梯度運算和狄利克雷函數處理。經過3個函數的處理后,可以獲得能量函數,根據迭代次數和輪廓的收斂情況判斷下一次迭代是否繼續(xù)進行。DRLSE算法的細節(jié)描述如下:

        圖1 水平集算法處理流程

        結合以上方程式和使能量函數ε降低的梯度[17]演化方程式(6),可以得出迭代方程式(7),利用梯度優(yōu)化方法使能量函數結果降低,可以使目標輪廓收斂。

        從水平集算法的細節(jié)可以看出,其計算過程非常復雜,涉及大量的迭代過程。此外,每次迭代都需要遍歷整個圖像,從而導致處理時間長、功耗高。近年來,一些工作提出了使用CPU+圖形處理器(Graphic Processing Unit, GPU)的方法來加速水平集算法的處理[18,19]。

        相比于CPU,GPU以其較高的并行計算度在算法加速中具有較大優(yōu)勢,可以通過大量的并行計算引擎加速算法中矩陣或張量的密集運算,但是,在水平集算法中,由于其算法處理的特殊性,不只有高密度矩陣運算,同時還兼有很多邏輯串行計算,這就導致GPU和CPU之間需要進行頻繁的數據交互,一方面降低了計算的加速效果,另一方面,增加了數據傳輸所帶來的額外功耗,因此GPU并不是加速水平集算法的最佳選擇。在參考文獻[18,19]中,為了解決這個問題,對原有水平集算法進行了大量修改,提高了并行度,做了稀疏化處理,并對算法流程進行了修改,才能讓該算法可以在GPU上高速運行。然而,該算法降低了原有水平集算法的準確性。

        眾所周知,CPU按照串行方式執(zhí)行程序,從水平集算法層面來看,它的每次迭代都需要遍歷整個圖像的像素。因此,使用CPU執(zhí)行水平集算法的效率非常低,并且功耗很高。盡管GPU專用于圖像處理,但它也是通用圖像處理器,與專用硬件架構相比,它不能針對特定算法采用高效策略,這也是造成其低能效和高功耗的原因。

        在我們的工作之前,只有文獻[20]曾做過關于水平集圖像分割算法加速器的工作,但是該算法與我們的算法完全不同,因為它是一種輕量級的水平集算法,提高了性能但犧牲了準確性,并且該作者使用了不同的測試圖像和方法,這使得很難比較這兩種設計。為了提高能效并加速水平集算法,本文提出了一種基于FPGA的水平集圖像分割算法加速器。

        3 水平集圖像分割算法硬件架構

        本文提出的基于FPGA的水平集圖像分割算法加速器的總體硬件架構如圖2所示。對應處理流程如下:首先對原始圖像中的像素進行預處理,包括高斯濾波去噪、計算圖像像素的梯度,通過邊緣指示計算模塊進行數據轉換。然后,進入迭代階段。對初始化或迭代輪廓進行Neumann邊界處理,得到內外能量處理模塊的輸入。在進行外部能量處理時,將預處理后的數據與Neumann邊界處理后的輪廓進行融合作為外部能量模塊的輸入,然后將內部能量處理模塊與外部能量處理模塊的輸出傳輸到矩陣加法算子模塊進行進一步處理。

        為了提高處理速度,本文提出了4種設計技術,包括(1)任務級并行處理;(2)圖像分塊像素級并行處理;(3)全流水線處理;(4)分時復用的梯度和散度算子處理。它們的細節(jié)將在后面的小節(jié)中描述。

        圖2 基于FPGA的水平集圖像分割算法硬件架構

        3.1 任務級并行處理架構

        本文提出的任務級并行處理架構如圖3所示。通過對水平集算法中子任務的相關性研究,本文發(fā)現了多個彼此不相關的子任務。因此,可以通過并行處理這些任務來提高整體處理速度。

        圖3 任務級并行處理架構

        可以利用的任務級并行之一是內部和外部能量處理子任務。本文將迭代輪廓緩存在多個并行的緩存區(qū)中,而不是緩存在單個緩存區(qū)中。這樣的好處在于:內部和外部能量處理模塊可以同時讀取/寫入緩存區(qū)以并行處理,而且不會發(fā)生任何資源的調用沖突。

        另一個可以利用的任務級并行是在內部和外部能量處理模塊的內部。對于內部能量處理模塊而言,可以對梯度和距離正則化的計算進行并行化處理。而對于外部能量處理模塊,可以并行計算梯度和狄利克雷函數。綜上,本文可以充分利用任務級并行性來提高處理速度。

        3.2 圖像分塊像素級并行處理架構

        除任務級的并行性外,像素級的并行性也可以被利用。圖4展示了本文提出的圖像分塊像素級并行處理架構。我們發(fā)現在水平集算法中,每個像素的處理只與該像素周圍的小部分像素相關,而與其他像素無關。因此在設計硬件架構的時候,本文將輸入圖像分割成多個圖像塊并存儲在多個隨機存取存儲器(Random Access Memory, RAM)中,這些RAM中的數據會被并行處理以提高處理速度。例如,在進行高斯濾波平滑處理的過程中,左上角和右下角的圖像是互不相關的,因此可以通過將圖像分割成4塊來同時處理這兩個部分的圖像。同時為了保證數據處理的完整性和正確性,本文設計了數據分塊控制器來處理相鄰兩個數據塊之間的邊緣部分。最后,引入的數據分塊控制器模塊只增加了少量的硬件開銷,但大大提高了圖像分割迭代過程的收斂速度。

        圖4 圖像分塊處理架構

        3.3 全流水線處理架構

        本文提出的全流水線處理架構如圖5所示,其中水平集算法會在流水線控制器的控制下完全流水化處理。一旦模塊的輸入數據準備好,就會立即開始該模塊的數據處理。通過在不同級別(系統(tǒng)級和模塊級)設計全流水線的處理結構,可以充分利用所有的處理模塊來提高吞吐量。流水線機制需要有一個狀態(tài)機來控制協(xié)調,如圖5(a)所示,它主要分為地址生成狀態(tài)、梯度計算狀態(tài)和散度計算狀態(tài),對應的控制信號如圖5(b)所示,當發(fā)送數據請求發(fā)生時,它將跳轉到地址生成狀態(tài),并通過內部計數器確定梯度計算是否開啟以及散度計算是否開啟。例如,對于外部能量處理模塊,可以實現梯度函數、散度函數、輪廓長度函數的流水線化。當梯度計算完成后,其結果將直接傳遞到下一階段;一旦數據準備好,散度的計算將立即開始;當散度計算完成后,輪廓長度的計算也可以立刻開始。全流水線的處理架構大大提高了吞吐量。

        3.4 分時復用架構

        圖5 本文所提全流水線處理架構

        為了減少資源使用量,本文設計了分時復用的梯度和散度算子處理模塊,如圖6所示。在水平集算法中,有一些處理階段需要計算像素的梯度和散度。由于這些階段不需要同時工作,并且這些階段之間的時間間隔很長,所以可以對梯度和散度計算模塊進行分時復用。本文通過設計一個分時復用控制器來實現,它可以動態(tài)地切換梯度和散度計算模塊的數據輸入/輸出,并控制模塊的啟動/停止。這種設計有助于減少硬件開銷,同時不影響處理速度。

        4 實驗結果

        本節(jié)介紹用于驗證所提出的水平集圖像分割算法加速器的實驗設備搭建和實時演示平臺。然后,根據Xilinx Vivado平臺的評估結果來分析實驗結果。

        圖7(a)展示了實驗設備的搭建流程,其中包括算法分析和優(yōu)化、硬件架構設計以及FPGA實現。在算法分析中,本文抽象了水平集算法的關鍵部分,以加快執(zhí)行速度。在硬件架構設計中,設計了任務級并行處理架構、圖像分塊像素級并行處理架構、全流水線處理架構、分時復用的梯度和散度算子處理架構,組成了硬件的加速平臺。在FPGA實現中,采用Xilinx VC707 FPGA評估板來實現提出的定點數據的水平集圖像分割算法加速器。使用Xilinx Vivado平臺來驗證Verilog HDL語言描述的RTL行為,并生成比特流以供驗證評估。

        圖7(b)展示了實驗的實時演示平臺,包括一個顯示器、Xilinx VC707 FPGA評估板和必要的連接器。將水平集圖像分割算法加速器應用于圖像分割,圖像存儲在FPGA中,通過按FPGA板上的按鍵開始進行分割。同時,中間迭代的分割輪廓被傳輸到顯示器上進行實時顯示。

        圖8顯示了軟件和FPGA實現的分割結果對比,其錯誤率小于1.8%。測試的醫(yī)學電子計算機斷層掃描(Computed Tomography, CT)圖像的像素尺寸為270×300,FPGA的工作時鐘頻率為100 MHz。在FPGA上實現的分割結果與軟件的結果匹配,但是通過FPGA實現的分割速度提升很多。其中CPU的型號為1.80 GHz的Intel Core i5-8250U,內存為8 GB,硬件平臺為Xilinx VC707 FPGA評估板。在運行功率為50 W的情況下,軟件實現對圖像進行分割的處理時間為52.3 s,而在運行功率為2.2 W的情況下,FPGA實現的處理時間僅為4.88 s,比軟件實現的處理時間減少了10.7倍。為了更好地展示本文架構的性能,將算法進一步通過GPU進行了實現,GPU型號為GeForce RTX 2080,分割時間為29.05 s,FPGA硬件架構與其相比,加快5.9倍,如圖9所示。圖10展示了3張對其他圖像的分割輪廓結果,并給出了參考輪廓以及IoU值,IoU均能達到95%以上。

        圖6 分時復用控制器以及時序圖

        圖7 實驗平臺建立和實時演示平臺

        圖8 軟件和FPGA實現的分割結果對比

        表1顯示了FPGA的資源利用率。Virtex 7以100 MHz的時鐘頻率來運行本文提出的硬件加速器。可以看到,Xilinx Virtex 7 FPGA芯片的所有資源使用率只有10%左右,因此所提出的水平集圖像分割算法加速器是輕量級的。圖11展示了所提出的水平集圖像分割算法加速器的功耗以及功耗的詳細占比。在使用Xilinx Virtex 7 FPGA分割270×300醫(yī)學圖像時,硬件加速器的功率為2.2 W。在功耗的占比中,動態(tài)功耗占85%,包括了BRAM、信號、邏輯、DSP和時鐘上的功耗。

        圖9 分割時間對比

        5 結論

        本文提出了一種基于FPGA的水平集圖像分割算法加速器,以提高水平集圖像分割算法的處理速度和能效。其中,提出了4種設計技術,包括任務級并行處理、圖像分塊像素級并行處理、全流水線處理架構和分時復用的梯度和散度算子處理。在Xilinx VC707 FPGA評估板上實現了水平集圖像分割算法加速器,并且得到了與軟件處理結果相同的分割輪廓。基于FPGA實現的水平集圖像分割算法結果與軟件實現的分割結果基本一致,分割速度提升10.7倍,功耗僅為2.2 W。

        圖10 硬件加速器分割結果輪廓及參考輪廓

        表1 資源利用率

        圖11 水平集硬件加速器功耗占比

        猜你喜歡
        散度加速器輪廓
        輪滑加速器
        化學工業(yè)的“加速器”
        高中數理化(2024年8期)2024-04-24 16:58:14
        帶勢加權散度形式的Grushin型退化橢圓算子的Dirichlet特征值的上下界
        全民小康路上的“加速器”
        少先隊活動(2021年6期)2021-07-22 08:44:24
        OPENCV輪廓識別研究與實踐
        具有部分BMO系數的非散度型拋物方程的Lorentz估計
        基于實時輪廓誤差估算的數控系統(tǒng)輪廓控制
        H型群上一類散度形算子的特征值估計
        H?rmander 向量場上散度型拋物方程弱解的Orlicz估計
        等待“加速器”
        亚洲日韩精品久久久久久| 亚洲男同gay在线观看| 欧美在线 | 亚洲| 久久噜噜噜| 国语对白三级在线观看| av免费在线播放视频| 99视频30精品视频在线观看| 人妻夜夜爽天天爽三区麻豆AV网站| 91精品国产无码在线观看| 91精品国产综合久久精品密臀 | 两个黑人大战嫩白金发美女| 久久精品视频中文字幕无码| 亚洲精品第四页中文字幕| 人妻饥渴偷公乱中文字幕| 国产98在线 | 免费| av永久天堂一区二区三区蜜桃| 久草福利国产精品资源| 永久黄网站免费视频性色| 日韩欧美区| 一区二区三区在线观看精品视频| 亚洲国产精品美女久久| 99精品免费久久久久久久久日本| 精品午夜一区二区三区久久| 强迫人妻hd中文字幕| 日产精品久久久一区二区| 无码人妻一区二区三区在线视频| 亚洲精品国产精品av| 蜜桃91精品一区二区三区| 亚洲人午夜射精精品日韩 | 精品人妻一区二区三区蜜桃| 亚洲中文字幕久久精品色老板| 麻豆影视视频高清在线观看| 国产午夜福利精品| 91久久国产露脸国语对白 | 欧美 丝袜 自拍 制服 另类| 久久综合视频网站| 日韩有码中文字幕在线视频| 国产成人午夜无码电影在线观看| 国产精在线| 看大陆男女真人草逼视频| 无码人妻一区二区三区免费看|