999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2021-06-24 09:40:36肖劍彪
電子與信息學報 2021年6期
關鍵詞:水平

劉 野 肖劍彪 吳 飛 常 亮 周 軍

(電子科技大學 成都 611731)

1 引言

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

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

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

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

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

2 水平集算法

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

圖1 水平集算法處理流程

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

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

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

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

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

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

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

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

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

3.1 任務級并行處理架構

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

圖3 任務級并行處理架構

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

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

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

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

圖4 圖像分塊處理架構

3.3 全流水線處理架構

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

3.4 分時復用架構

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

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

4 實驗結果

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

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

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

圖8顯示了軟件和FPGA實現的分割結果對比,其錯誤率小于1.8%。測試的醫學電子計算機斷層掃描(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醫學圖像時,硬件加速器的功率為2.2 W。在功耗的占比中,動態功耗占85%,包括了BRAM、信號、邏輯、DSP和時鐘上的功耗。

圖9 分割時間對比

5 結論

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

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

表1 資源利用率

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

猜你喜歡
水平
張水平作品
作家葛水平
火花(2019年12期)2019-12-26 01:00:28
深化精神文明創建 提升人大工作水平
人大建設(2019年6期)2019-10-08 08:55:48
加強上下聯動 提升人大履職水平
人大建設(2019年12期)2019-05-21 02:55:32
水平有限
雜文月刊(2018年21期)2019-01-05 05:55:28
加強自身建設 提升人大履職水平
人大建設(2017年6期)2017-09-26 11:50:44
老虎獻臀
中俄經貿合作再上新水平的戰略思考
建機制 抓落實 上水平
中國火炬(2010年12期)2010-07-25 13:26:22
做到三到位 提升新水平
中國火炬(2010年8期)2010-07-25 11:34:30
主站蜘蛛池模板: 老熟妇喷水一区二区三区| 欧美日韩亚洲国产| 亚洲最新网址| 国产内射在线观看| 亚洲侵犯无码网址在线观看| 少妇露出福利视频| 久久激情影院| 日本尹人综合香蕉在线观看| 朝桐光一区二区| 久久久久人妻一区精品色奶水| 亚洲精品第一页不卡| 国产尹人香蕉综合在线电影| 日韩色图区| 精品国产一区二区三区在线观看| 亚洲精品无码高潮喷水A| 亚洲欧美人成电影在线观看| 国内精品自在自线视频香蕉| 毛片视频网| 亚洲大尺码专区影院| 国产成熟女人性满足视频| 99视频国产精品| 国产毛片高清一级国语 | 亚洲视频免| 全部无卡免费的毛片在线看| 中文字幕2区| 日韩东京热无码人妻| 国产亚洲精久久久久久无码AV| 亚洲第一精品福利| 国产亚洲一区二区三区在线| 欧美在线国产| 国产精品一线天| 成人无码区免费视频网站蜜臀| 亚洲一欧洲中文字幕在线| 69av在线| 国产精彩视频在线观看| 97国产精品视频自在拍| 国产第八页| 激情无码字幕综合| 亚洲综合九九| 国产精品国产三级国产专业不| 精品国产免费观看| 亚洲欧洲日产无码AV| 亚洲精品国产成人7777| 亚洲国产精品日韩欧美一区| 色一情一乱一伦一区二区三区小说 | 日韩黄色精品| 亚洲综合天堂网| 色噜噜综合网| 亚洲性色永久网址| 日本国产精品一区久久久| 欧美日韩一区二区三区四区在线观看 | 欧美翘臀一区二区三区| 思思热在线视频精品| 四虎永久在线| 国产精品男人的天堂| 青草精品视频| 亚洲日韩Av中文字幕无码| 国产精品女主播| 91成人免费观看在线观看| 久久久噜噜噜| 亚洲成人播放| 精品1区2区3区| 日韩AV手机在线观看蜜芽| 亚洲第一网站男人都懂| 亚洲91精品视频| 久久这里只有精品免费| 天堂在线视频精品| 婷婷色狠狠干| 免费女人18毛片a级毛片视频| 亚洲a级在线观看| 国产欧美日韩一区二区视频在线| 在线观看国产小视频| 天天综合网在线| 午夜国产理论| 91午夜福利在线观看| 国产麻豆精品在线观看| 亚洲欧美精品日韩欧美| 男人的天堂久久精品激情| lhav亚洲精品| 色综合天天操| 国产成人无码AV在线播放动漫 | 91福利免费|