合成孔径成像算法的并行实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

合成孔径成像算法的并行实现

并行化处理分析

与DAS等传统的超声内镜成像算法相比,SA算法成像质量好,图像分辨率高,但同时其运算过程也更为复杂,且需要对大量回波数据进行处理。如果采用传统的串行计算模式进行运算,那么该算法的实现过程将会非常耗时,系统的实时性无法保证。相控阵超声内镜发射系统由发射电路、选通电路及限幅电路三部分组成,其主要作用是通过脉冲激励、阵元选通,完成超声波信号的相控发射,实现对被测物体的合成孔径扫描。

该系统以FPGA为控制核心,其中,发射电路的主要作用是产生带有延时的高压激励脉冲;选通电路采用4块MAX4968芯片,通过电路复用的方式,实现激励脉冲的16路转64路阵元选通,以激励超声换能器阵元产生超声波;限幅电路通过并联限幅的方式将电压钳制在±0.7V的范围内,消除了高压激励脉冲对后端接收系统的影响,保证回波信号能够几乎无衰减的进行接收与传输因此,为了能够快速实现SA算法,本文基于CUDA并行计算平台对SA算法作如下并行化处理分析:

具体实现流程

本文采用“CPU+GPU”的联合编程模式。其软件架构为“MATLAB+CUDA”的混合编程架构。其中,CPU端主要使用MATLAB进行回波数据的读取及最终结果的显示;GPU端使用CUDA编程计算平台完成SA算法的并行化处理。

具体的实现流程如图4-5所示。首先,在CUDA中使用cudaMalloc()函数为待处理的回波数据分配全局内存;然后,通过调用cudaMemcpy()函数完成回波数据的传输,需要注意的是,在使用该函数时,要将最后一个参数设置为“cudaMemcpyHostToDevice”,以确保数据的传输方向是从CPU至GPU;通过使用两个核(kernel)函数,分别完成低分辨图像的求解和高分辨率图像的合成,其中,使用__shared__关键字为权值函数开辟共享内存;接下来,再次使用cudaMemcpy()函数,使处理后的结果自GPU传输至CPU,此时该函数的最后一个参数应设置为“cudaMemcpyDeviceToHost”;最后,释放显存空间,并在主机端对重构的高分辨率图像进行显示。

为了验证上述提出方法的可行性,本文基于Field II 软件对SA算法的并行实现过程进行了仿真验证。

Field II是一款由丹麦技术大学Jensen教授团队开发的仿真工具,专门应用

于医学超声成像等领域[5]。

在进行验证实验之前,首先需要使用Field II软件搭建一个医用相控阵超声内镜的仿真系统,该系统主要参数的设置与本文设计的相控阵超声内镜系统一致。

对于超声换能器探头而言,常用的脉冲激励方式有单脉冲激励和编码激励两种。其中,单脉冲激励方式是指使用持续时间较短的单个脉冲对换能器阵元进行激励,采用这种激励方式获取的超声图像纵向分辨率高,但是由于是单脉冲且持续时间较短,因此发射能量较小,传播距离受限;编码激励方式是指采用具有一定编码序列的多个脉冲对换能器阵元进行激励,采用这种方式虽然能够增加激励时间、提高发射能量,但是降低了成像分辨率,且电路设计较为复杂,回波需要按照特定方式进行脉冲压缩

结合搭建的仿真系统进行仿真验证,具体步骤如下:

1.在成像空间中设置7个成像散射点,并将这些散射点等间隔排布在25-55mm

的轴向距离范围内;

2.利用本文所设计的方法,对这7个散射点进行合成孔径成像;

3.将成像结果进行显示,观察成像散射点的位置,判断其是否与预先设置一致。

实验结果如图7所示。图中原点位置为超声换能器阵列中心所在位置,所测猪皮组织由a,b两部分组成。其中,a部分尺寸约为5mm×2mm,b部分尺寸约为3mm×2mm。从成像结果中可以很明显地分辨出a、b两个部分,且猪皮组织的成像结果与实际尺寸形状基本一致。

上述两个成像实验的结果均与实际情况相符,证明了相控阵超声内镜实时成像系统的可行性与高效性。从图中可以看出,7个散射点依次排列在25mm、30mm、35mm、40mm、45mm、50mm、55mm的轴向位置,以5mm间隔等间隔分布,实验结果与预先设置一致,验证了本文提出方法的可行性。

图7 SA算法并行实现的仿真实验结果

结论

基于CUDA的运算平台在GPU上实现了相控阵超声内镜成像系统中的合成孔径成像算法。因此,首先对GPU与CUDA进行了相关简介;然后详细阐述了合成孔径算法的成像原理与图像重构过程;最后通过对该算法进行并行化处理分析,提出了具体的实现流程,并基于“MATLAB+CUDA”的混合软件架构完成了程序的编写,通过仿真测试,验证了程序的可行性。

相关文档
最新文档