商洪濤唐 輝徐 濤
基于分布式多圖像處理器的醫(yī)學(xué)影像體繪制算法
商洪濤①唐 輝①徐 濤①
目的:計(jì)算機(jī)醫(yī)學(xué)圖像處理具有所需計(jì)算量和計(jì)算涉及數(shù)據(jù)量巨大的特點(diǎn),需將高性能計(jì)算技術(shù)應(yīng)用于計(jì)算機(jī)醫(yī)學(xué)圖像處理中,以適應(yīng)計(jì)算涉及數(shù)據(jù)量大和計(jì)算速度快的要求。方法:計(jì)算統(tǒng)一設(shè)備架構(gòu)(CUDA)技術(shù)可使圖像處理單元(GPU)進(jìn)行通用并行計(jì)算,使其能夠提供強(qiáng)大的計(jì)算能力。由于分布式并行計(jì)算是實(shí)現(xiàn)高性能計(jì)算的主要方式,故提出一種實(shí)用的分布式并行計(jì)算模式,即基于分布式多GPU的并行計(jì)算模式,其中多臺(tái)計(jì)算機(jī)將使用消息傳遞接口(MPI)并行編程環(huán)境配置成分布式集群系統(tǒng)。結(jié)果:以醫(yī)學(xué)影像體繪制算法為例分析該計(jì)算模式,使得其算法計(jì)算時(shí)間較短,計(jì)算效率較高。結(jié)論:使用MPI集群和GPU進(jìn)行算法加速,可很好地解決無(wú)法實(shí)現(xiàn)醫(yī)學(xué)影像的實(shí)時(shí)三維重建的問(wèn)題。
分布式多圖像處理單元;光線投射體繪制;醫(yī)學(xué)影像處理;算法
近年來(lái),隨著計(jì)算機(jī)科學(xué)技術(shù)的快速發(fā)展,在醫(yī)學(xué)領(lǐng)域可以利用計(jì)算機(jī)獲取、存儲(chǔ)、傳輸、處理各種醫(yī)學(xué)影像和醫(yī)學(xué)管理信息,從而極大提高了工作效率。醫(yī)學(xué)與計(jì)算機(jī)科學(xué)技術(shù)相結(jié)合的邊緣學(xué)科的大量涌現(xiàn)對(duì)醫(yī)學(xué)的快速發(fā)展起著重要的作用。計(jì)算機(jī)應(yīng)用技術(shù)在醫(yī)學(xué)中的應(yīng)用主要包括:計(jì)算機(jī)輔助診斷和輔助決策系統(tǒng)、醫(yī)學(xué)信息系統(tǒng)、衛(wèi)生行政管理信息系統(tǒng)、計(jì)算機(jī)醫(yī)學(xué)圖像處理與圖像識(shí)別系統(tǒng)等。
在現(xiàn)代醫(yī)學(xué)研究與臨床診斷中許多重要信息都是以圖像的形式出現(xiàn)的。以往醫(yī)學(xué)圖像是由醫(yī)生進(jìn)行低效率的人工分析和處理。而隨著計(jì)算機(jī)應(yīng)用技術(shù)在醫(yī)學(xué)圖像處理方面應(yīng)用的逐步加深,計(jì)算機(jī)醫(yī)學(xué)圖像處理所面臨的困難也更加復(fù)雜。其中醫(yī)學(xué)圖像處理
要求的計(jì)算量特別巨大、計(jì)算所涉及的數(shù)據(jù)量非常大是影響計(jì)算機(jī)醫(yī)學(xué)圖像處理技術(shù)發(fā)展和實(shí)際應(yīng)用的關(guān)鍵問(wèn)題所在。分布式集群計(jì)算與利用圖像處理單元(graphic processing unit,GPU)并行能提供巨大的計(jì)算量,因此分布式GPU計(jì)算模式對(duì)于醫(yī)學(xué)影像處理技術(shù)的發(fā)展和應(yīng)用是很有價(jià)值的。基于對(duì)多種并行計(jì)算模型的分析,提出使用基于分布式多GPU的并行計(jì)算模式,即:使用消息傳遞接口(message passing interface,MPI)組成具有并行計(jì)算能力的計(jì)算機(jī)集群,集群中的計(jì)算機(jī)利用計(jì)算統(tǒng)一設(shè)備架構(gòu)(compute unified device architecture, CUDA)技術(shù)使用GPU進(jìn)行計(jì)算。使用MPI組成計(jì)算機(jī)集群[1]。
2.1 MPI集群
MPI產(chǎn)生于1994年,經(jīng)過(guò)數(shù)年的發(fā)展已成為消息環(huán)境并行計(jì)算的標(biāo)準(zhǔn)。MPI是并行計(jì)算機(jī)消息傳遞接口的標(biāo)準(zhǔn),其在性能、功能和移植性上有較好的平衡,是目前最廣泛使用的并行編程環(huán)境。由于MPI具有移植性好、效率高、功能強(qiáng)大等優(yōu)點(diǎn),適用于分布內(nèi)存的并行計(jì)算機(jī)系統(tǒng)的消息傳遞模型[2]。集群系統(tǒng)是利用網(wǎng)絡(luò)將一組計(jì)算機(jī)按某種結(jié)構(gòu)鏈接起來(lái),在并行程序設(shè)計(jì)支持下協(xié)調(diào)處理、統(tǒng)一調(diào)度,實(shí)現(xiàn)高效并行處理的系統(tǒng)。本文涉及的集群是使用MPI并行程序設(shè)計(jì)環(huán)境和消息傳遞方式實(shí)現(xiàn)的各主機(jī)之間的并行處理和通信。
2.2 GPU和CUDA技術(shù)
隨著GPU的快速發(fā)展,其單精度浮點(diǎn)計(jì)算能力已遠(yuǎn)高于CPU。CUDA是NVIDIA公司于2006年在GeForce 8800系列顯卡上推出的統(tǒng)一設(shè)備架構(gòu),是將GPU用于通用計(jì)算(GPGPU)的一種實(shí)現(xiàn),它改變了GPU的編程及存儲(chǔ)模式,使得GPU編程簡(jiǎn)單易學(xué)并極大地發(fā)揮了GPU的并行計(jì)算能力[3]。CUDA實(shí)現(xiàn)了GPU通用并行計(jì)算的能力,其硬件體系結(jié)構(gòu)由若干單指令多數(shù)據(jù)的多處理器組成,每個(gè)多處理器有一個(gè)共享內(nèi)存、固定緩存、紋理緩存。CUDA的程序設(shè)計(jì)語(yǔ)言以C語(yǔ)言為基礎(chǔ)實(shí)現(xiàn),因此更加靈活并便于學(xué)習(xí)。CUDA的并行計(jì)算能力來(lái)自于在GPU上同時(shí)大量運(yùn)行的線程,這些線程以網(wǎng)格的形式組成了線程塊,并且共享一塊內(nèi)存中的數(shù)據(jù)就可實(shí)現(xiàn)數(shù)據(jù)的并行處理[4]。
體繪制技術(shù)的實(shí)現(xiàn)是對(duì)三維離散數(shù)據(jù)場(chǎng)重新采樣和醫(yī)學(xué)圖像合成的過(guò)程。體繪制技術(shù)有很多實(shí)現(xiàn)方式,其中,由Levoy提出的光線投射算法是一種圖像空間掃描的實(shí)現(xiàn)體繪制的離散方法[5],它所針對(duì)的數(shù)據(jù)是符合規(guī)則數(shù)據(jù)場(chǎng)類(lèi)型的。由CT或MRI產(chǎn)生的體數(shù)據(jù),符合數(shù)字影像和通信(digital imaging and communications in medicine, DICOM)標(biāo)準(zhǔn),該數(shù)據(jù)屬于規(guī)則數(shù)據(jù)場(chǎng)類(lèi)型。
該算法定義分布在均勻網(wǎng)格或規(guī)則網(wǎng)格的網(wǎng)格點(diǎn)上的三維空間數(shù)據(jù)為 f(xi,yj,zk)??梢愿鶕?jù)某種數(shù)據(jù)值分類(lèi)的方法,將數(shù)據(jù)空間中的數(shù)據(jù)根據(jù)數(shù)值不同而進(jìn)行分類(lèi),可以得到數(shù)據(jù)空間中每個(gè)數(shù)據(jù)點(diǎn)的顏色值和不透明度值。假定從屏幕上每個(gè)像素點(diǎn)發(fā)出一條射線,該射線沿著已設(shè)定的觀察方向射出并穿過(guò)三維數(shù)據(jù)場(chǎng),在這條射線上選擇K個(gè)采樣點(diǎn)。在數(shù)據(jù)空間中找到距離該采樣點(diǎn)最近的8個(gè)數(shù)據(jù)點(diǎn),根據(jù)這8個(gè)數(shù)據(jù)點(diǎn)的顏色值和不透明度值進(jìn)行三次線性插值,求得該采樣點(diǎn)的顏色值和不透明度值。然后將該射線上K個(gè)取樣點(diǎn)的顏色值和不透明度值計(jì)算出來(lái),最后將其顏色值和不透明度值按照某種規(guī)則加以合成,所得到的則是發(fā)出射線的像素點(diǎn)的顏色值和不透明度值。屏幕上所有像素點(diǎn)都經(jīng)過(guò)同樣的過(guò)程求得其顏色值和不透明度值,便得到數(shù)據(jù)空間的三維可視化結(jié)果(如圖1(a)、(b)所示)。
圖1 光線投射算法說(shuō)明圖
圖1所示為該過(guò)程的說(shuō)明,光線沿著視線方向從屏幕發(fā)出并穿過(guò)體數(shù)據(jù)空間,假設(shè)射線上存在重采樣點(diǎn)P,由三維數(shù)據(jù)空間 f(xi,yj,zk)可知與P相鄰近的8個(gè)體元的顏色值和不透明度值。根據(jù)這8個(gè)體元的顏色值和不透明度值進(jìn)行三次線性插值便得到P的顏色值和不透明度值。將射線上所有采樣點(diǎn)的顏色值和不透明度值合成,即可得到屏幕上該像素的值。
4.1 基于CUDA的光線投射體繪制加速算法
由于CPU和GPU的體系結(jié)構(gòu)所決定,CPU在分支處理和隨機(jī)內(nèi)存訪問(wèn)方面具有GPU所不具備的優(yōu)勢(shì),在處理串行工作上具有先天的優(yōu)勢(shì)。而GPU因其特殊的核心設(shè)計(jì),在處理具有大量浮點(diǎn)并行計(jì)算時(shí)有天然的優(yōu)勢(shì)。使用CPU+GPU的異構(gòu)運(yùn)算方式可實(shí)現(xiàn)對(duì)計(jì)算機(jī)的高效使用。
利用CUDA實(shí)現(xiàn)光線投射算法時(shí),使用GPU上大量的線程模擬屏幕上像素點(diǎn)發(fā)射出的射線。線程首先根據(jù)采樣點(diǎn)附近的體元進(jìn)行三次線性插值,進(jìn)而得到采樣點(diǎn)的顏色和不透明度數(shù)據(jù),再將該射線上的所有采樣點(diǎn)的顏色和不透明度數(shù)據(jù)按合適的規(guī)則進(jìn)行累加,得到屏幕上某個(gè)像素點(diǎn)數(shù)據(jù)值。由于每條模擬光線相互并行且無(wú)干擾,因此每個(gè)線程執(zhí)行的指令相同,而處理的數(shù)據(jù)不同。這非常符合CUDA的計(jì)算模式—“多線程,單指令”[7],具體步驟如下。
(1)首先在主機(jī)端初始化CUDA環(huán)境。然后醫(yī)學(xué)影像序列從CPU的內(nèi)存以三維紋理的形式映射到GPU的顯存中[8]。同時(shí)依據(jù)結(jié)果圖像的大小(像素的數(shù)量)確定GPU中調(diào)用的線程的組織結(jié)構(gòu)及數(shù)量。實(shí)驗(yàn)中使用的線程塊為16×16,最終的圖像為512×512。
(2)計(jì)算包圍盒。算法中的視點(diǎn)發(fā)出的射線有些并沒(méi)有穿過(guò)體數(shù)據(jù)空間,即該射線在計(jì)算過(guò)程中是無(wú)效的,導(dǎo)致不需進(jìn)行計(jì)算的射線參與了計(jì)算過(guò)程。為減少不必要的計(jì)算量,先假設(shè)體數(shù)據(jù)周?chē)嬖谝粋€(gè)包圍盒,只有穿過(guò)包圍盒的光線才有可能通過(guò)物體,是應(yīng)該計(jì)算的有效光線[9]。
(3)取得每條射線上采樣點(diǎn)的顏色值和不透明度值,此過(guò)程可由GPU自動(dòng)完成[10]。并將射線上所有采樣結(jié)果進(jìn)行累加,得到像素點(diǎn)的最終顏色值和不透明度值,最后將結(jié)果圖像顯示到屏幕上[11]。
CUDA的工作模式如圖2所示。
圖2 CUDA的工作模式
4.2 基于MPI集群多GPU的體繪制算法
MPI的并行工作模式為“單指令,多數(shù)據(jù)”模式。算法思路是將計(jì)算任務(wù)分配到集群中的各個(gè)計(jì)算機(jī)上,并使用其GPU進(jìn)行體繪制算法的計(jì)算,具體實(shí)現(xiàn)步驟如下。
(1)配置MPI環(huán)境。在局域網(wǎng)中使用MPI將若干計(jì)算機(jī)聯(lián)接組成集群。實(shí)驗(yàn)中使用兩臺(tái)計(jì)算機(jī)組成集群,初始化MPI環(huán)境,將需處理的醫(yī)學(xué)影像序列在集群內(nèi)廣播,并在所有機(jī)器內(nèi)保存所需處理的數(shù)據(jù)集。
(2)分配計(jì)算任務(wù)。在集群內(nèi)將計(jì)算任務(wù)平均分配。
(3)在每個(gè)計(jì)算節(jié)點(diǎn)使用基于CUDA的光線投射算法,使用GPU進(jìn)行計(jì)算。計(jì)算完成后將計(jì)算結(jié)果匯集到主節(jié)點(diǎn),組成結(jié)果圖像并顯示。
4.3 實(shí)驗(yàn)結(jié)果及分析
實(shí)驗(yàn)效果如圖3所示,實(shí)驗(yàn)數(shù)據(jù)為標(biāo)準(zhǔn)DICOM醫(yī)學(xué)影像,實(shí)驗(yàn)數(shù)據(jù)為200層的頭部數(shù)據(jù)和400層的腿部數(shù)據(jù),單層圖像為512×512。實(shí)驗(yàn)設(shè)備為兩臺(tái)個(gè)人PC機(jī),顯卡為NVIDIA GeForce 9800系列,顯存為1 GB,內(nèi)存為4 GB。
圖3 腿部和頭部實(shí)驗(yàn)效果圖
實(shí)驗(yàn)對(duì)頭部和腿部醫(yī)學(xué)圖像序列進(jìn)行了體繪制工作,同時(shí)對(duì)光線投射算法在CPU、GPU和本文算法的計(jì)算時(shí)間進(jìn)行對(duì)比(見(jiàn)表1)。實(shí)驗(yàn)中假定集群中的每臺(tái)計(jì)算機(jī)保存有數(shù)據(jù)集,并不需要網(wǎng)絡(luò)的傳輸,而算法中沒(méi)有將傳輸時(shí)間記錄其中。從表中可看出本文的算法計(jì)算時(shí)間比較短,計(jì)算效率較高。由于MPI在各機(jī)器間有同步工作,因此其加速比并不呈線性增長(zhǎng)。
表1 CPU、GPU和本文算法實(shí)驗(yàn)結(jié)果的對(duì)比
光線投射算法相比與其他三維重建可視化算法,其成像質(zhì)量比較高,同時(shí)所需計(jì)算量大、時(shí)間長(zhǎng),往往在實(shí)際應(yīng)用中無(wú)法實(shí)現(xiàn)醫(yī)學(xué)影像的實(shí)時(shí)三維重建。使用MPI集群和GPU進(jìn)行算法加速則可很好地解決這一問(wèn)題,在保證影像重建質(zhì)量的同時(shí)保證了計(jì)算速度的要求。
[1]都志輝,李立三.高性能計(jì)算并行編程技術(shù)—MPI并行程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2001.
[2]袁景艷,劉方愛(ài),趙芳芳.基于MPI的集群系統(tǒng)的研究[J].信息技術(shù)與信息化,2010(2):33-35.
[3]NVIDIA.CUDA compute unified device architecture: programming guide version 2.3[J]. Santa Clara California August,2009(32):105.
[4]吳磊,王斌.基于CUDA的體繪制GPU加速算法[J].生命科學(xué)儀器,2009,12(7):26-29.
[5]唐澤圣.三維數(shù)據(jù)場(chǎng)可視化[M].北京:清華大學(xué)出版社,2000:10.
[6]張尤賽,陳福民.三維醫(yī)學(xué)圖像的體繪制技術(shù)綜述[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(8):18-19.
[7]張浩,李利軍,林嵐.GPU的通用計(jì)算研究[J].計(jì)算機(jī)與數(shù)字工程,2005,33(12):60-61.
[8]楊傳琦.大規(guī)模數(shù)據(jù)體繪制及多維傳輸函數(shù)技術(shù)的研究與實(shí)現(xiàn)[D].浙江大學(xué)碩士學(xué)位論文,杭州:浙江大學(xué),2006:5-6.
[9]馮高峰.基于Cell多核的光線投射并行算法[J].計(jì)算機(jī)應(yīng)用,2009,29(1):245-247.
[10]薛劍,田捷,戴亞康,等.海量醫(yī)學(xué)數(shù)據(jù)處理框架及快速體繪制算法[J].軟件學(xué)報(bào),2008,19(12):3237-3248.
[11]王文舉,侯德文.幾種變換域體繪制算法的比較研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008,18(4):80-83.
Volume rendering algorithm of medical image on distributed GPUS
SHANG Hong-tao, TANG Hui, XU Tao
Objective: Medical image processing with computer needs great computation and process lots of data, so high performance computing will be applied to medical image processing, in order to adapt the great computation requirement. Methods: The CUDA (Compute Unifed Device Architecture ) technology introduced from NVIDIA , made the GPU use the general purpose parallel computing, which provide powerful computational capabilities. The computing power was used in the paper. As distributed parallel computing is the main way to realize high performance computing, this paper presented a practical distributed parallel computing model. It is based on distributed multi-GPU (Graphic Processing Unit) of the parallel computing model, where multiple computers using MPI (Message Passing Interface) parallel programming environment configured as a distributed cluster system. Results: Make an analysis of the computing model, which is based on medical image volume rendering algorithm. It is shown that the algorithm takes less computing time and has higher computational efficiency. Conclusion: The problem of real-time 3D reconstruction in medical image has been solved by using the MIP clusters and the GPU to accelerated the effect of this algorithm.
Distributed multi-GPU; Volume rendering; Medical image processing; Algorithm
Department of Medical Engineering, General Hospital of Beijing Command, Beijing 100700, China.
1672-8270(2012)08-0004-04
TP391.41
A
商洪濤,女,(1977- ),本科學(xué)歷,主管技師。北京軍區(qū)總醫(yī)院醫(yī)學(xué)工程科,從事測(cè)試計(jì)量技術(shù)方面的工作,研究方向?yàn)樯镝t(yī)學(xué)工程。
2012-04-05
①北京軍區(qū)總醫(yī)院醫(yī)學(xué)工程科 北京 100700
China Medical Equipment,2012,9(8):4-7.