CN102881042B - 电镜三维图像重构的方法及系统 - Google Patents

电镜三维图像重构的方法及系统 Download PDF

Info

Publication number
CN102881042B
CN102881042B CN201210326514.7A CN201210326514A CN102881042B CN 102881042 B CN102881042 B CN 102881042B CN 201210326514 A CN201210326514 A CN 201210326514A CN 102881042 B CN102881042 B CN 102881042B
Authority
CN
China
Prior art keywords
image value
reconstructed image
cpu
projected image
current slice
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210326514.7A
Other languages
English (en)
Other versions
CN102881042A (zh
Inventor
卢晓伟
张清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201210326514.7A priority Critical patent/CN102881042B/zh
Publication of CN102881042A publication Critical patent/CN102881042A/zh
Application granted granted Critical
Publication of CN102881042B publication Critical patent/CN102881042B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Apparatus For Radiation Diagnosis (AREA)
  • Image Processing (AREA)

Abstract

本发明提供了一种电镜三维图像重构的方法及系统,其中,电镜三维图像重构的方法包括:中央处理器(CPU)将要进行迭代重构图像中的物体分成切片,构建所述CPU与众核(MIC)处理器协同计算的框架;所述CPU调用所述框架中的所有设备多线程并行地获得各自当前切片的重构图像值和测量投影图像值,根据所述重构图像值和所述测量投影图像值依次通过重投影算法和背投影算法计算出当前切片的最终重构图像值,直至计算出所有切片的最终重构图像值。上述实现电镜三维图像重构的方法及系统,通过CPU和MIC协同计算,极大地加速了迭代重构方法的执行,从而可以快速地完成图像重构任务。

Description

电镜三维图像重构的方法及系统
技术领域
本发明涉及图像重构技术,尤其涉及一种电镜三维图像重构的方法及系统。
背景技术
英特尔(Intel)公司推出的众核(Many Integrated Core,MIC)处理器,跟通用的多核至强处理器相比,MIC众核架构具有更小的内核和硬件线程,众核处理器计算资源密度更高,片上通信开销显著降低,更多的晶体管和能量,能够胜任更为复杂的并行应用。Intel MIC产品基于X86架构,基于重核的众核处理器,包含50个以上的核心,以及512bit的向量位宽,双精性能超过1TFlops。
MIC拥有极其灵活的编程方式,MIC卡可以作为一个处理器存在,也可以被看作是一个独立的节点。基本的MIC编程模型是将MIC看作一个处理器,中央处理单元(CPU)根据程序的指令,将一部分代码运行在MIC端。此时存在两类设备,即CPU端和MIC众核处理器端。
电子断层三维重构技术(Electron Tomography,ET)是从一个物体的二维投影图经过重构获取物体内部结构的技术,通过获取多个不同角度的二维投影图进行反向重构出所研究对象的三维结构。图像重构无论是在医学诊断,还是在生物样品的成像,以及在地表层析成像等诸多领域中都有着广泛的应用。
目前,采用迭代重构图像方法实现图像重构,该迭代法可以表述成:Ax=p,其中A为非奇异矩阵,x为未知数向量,p为已知向量,迭代法求解目标在于确定x的数值。在迭代重构图像方法中,A为加权因子,p为投影得到的图像像素值,x则为需要重构的图像的像素值。
图1说明了采用迭代重构图像方法实现图像重构的过程,该方法通过赋0值或随机值或背投影方法获取用于迭代过程中的初值X(0),然后经过多次的重投影和背投影的迭代过程,来求得最后满足精度要求的重构图像的像素值。
联合迭代重构(simultaneous Iterative Reconstruction Technique,SIRT)算法在所有图像重构算法中重构效果较好,但其运算量巨大,因此需要提高运算效率,来满足快速图像重构的需求。
发明内容
本发明提供了一种电镜三维图像重构的方法及系统,以克服现有图像重构速度较慢的缺陷。
本发明提供了一种电镜三维图像重构的方法,该方法包括:
中央处理器(CPU)将要进行迭代重构图像中的物体分成切片,构建所述CPU与众核(MIC)处理器协同计算的框架;
所述CPU调用所述框架中的所有设备多线程并行地获得各自当前切片的重构图像值和测量投影图像值,根据所述重构图像值和所述测量投影图像值依次通过重投影算法和背投影算法计算出当前切片的最终重构图像值,直至计算出所有切片的最终重构图像值。
优选地,所述CPU将要进行迭代重构图像中的物体分成切片,包括:
所述CPU根据所述物体的大小将所述物体分成切片,切片的数目为该物体宽度的像素值。
优选地,所述CPU构建所述CPU与众核(MIC)处理器协同计算的框架,包括:
所述CPU将连接在同一单节点服务器的所述CPU与多个MIC处理器作为协调计算的框架,该框架中所有设备的数目为CPU的数目和MIC处理器的数目之和。
优选地,所述方法还包括:所述所有设备分别在获得各自当前切片的所述重构图像值和所述测量投影图像值之后,执行上锁操作。
优选地,所述CPU调用所述框架中的所有设备多线程并行地获得各自当前切片的重构图像值和测量投影图像值,根据所述重构图像值和所述测量投影图像值依次通过重投影算法和背投影算法计算出当前切片的最终重构图像值,包括:
所述MIC处理器或所述CPU根据获得的所述当前切片的初始重构图像值X(0)或上次迭代得到的重构图像值X(k-1)进行重投影得到计算投影图像值;根据所述X(0)或X(k-1)得到所述测量投影图像值,根据所述计算投影图像值和所述测量投影图像值进行背投影得到重构图像值X(k),通过多次的重投影和背投影操作得到满足精度要求的所述当前切片的重构图像值,其中,所述初始重构图像值X(0)通过赋初值或随机值或背投影方法获得,k为大于1的整数。
本发明还提供了一种电镜三维图像重构的系统,该系统包括:
中央处理器(CPU),用于将要进行迭代重构图像中的物体分成切片,构建所述CPU与众核(MIC)处理器协同计算的框架;多线程并行地向所述框架中的所有设备发送调用请求,以及在接收到所述调用请求后,获得当前切片的重构图像值和测量投影图像值,并根据所述重构图像值和所述测量投影图像值依次通过重投影算法和背投影算法计算出当前切片的最终重构图像值,直至计算出所有切片的最终重构图像值;以及
所述MIC处理器,用于在接收到所述调用请求后,获得当前切片的重构图像值和测量投影图像值,并根据所述重构图像值和所述测量投影图像值依次通过重投影算法和背投影算法计算出当前切片的最终重构图像值,直至计算出所有切片的最终重构图像值。
优选地,所述CPU,具体用于:根据所述物体的大小将所述物体分成切片,切片的数目为该物体宽度的像素值。
优选地,所述CPU,具体用于:将连接在同一单节点服务器的所述CPU与多个MIC处理器作为协调计算的框架,该框架中所有设备的数目为CPU的数目和MIC处理器的数目之和。
优选地,所述CPU,还用于:在获得当前切片的所述重构图像值和所述测量投影图像值之后,执行上锁操作;所述MIC处理器,还用于:在获得当前切片的所述重构图像值和所述测量投影图像值之后,执行上锁操作。
优选地,所述MIC处理器,具体用于:根据获得的所述当前切片的初始重构图像值X(0)或上次迭代得到的重构图像值X(k-1)进行重投影得到计算投影图像值;根据所述X(0)或X(k-1)得到所述测量投影图像值,根据所述计算投影图像值和所述测量投影图像值进行背投影得到重构图像值X(k),通过多次的重投影和背投影操作得到满足精度要求的所述当前切片的重构图像值,其中,所述初始重构图像值X(0)通过赋初值或随机值或背投影方法获得,k为大于1的整数;或者
所述CPU,具体用于:根据获得的所述当前切片的初始重构图像值X(0)或上次迭代得到的重构图像值X(k-1)进行重投影得到计算投影图像值;根据所述X(0)或X(k-1)得到所述测量投影图像值,根据所述计算投影图像值和所述测量投影图像值进行背投影得到重构图像值X(k),通过多次的重投影和背投影操作得到满足精度要求的所述当前切片的重构图像值,其中,所述初始重构图像值X(0)通过赋初值或随机值或背投影方法获得,k为大于1的整数。
上述实现电镜三维图像重构的方法及系统,通过CPU和MIC协同计算,极大地加速了迭代重构方法的执行,从而可以快速地完成图像重构任务。
附图说明
图1为现有采用迭代重构图像方法实现图像重构的流程图;
图2为本发明CPU+MIC协同计算框架的示意图;
图3为本发明物体投影过程示意图;
图4为本发明CPU+MIC协同计算过程的示意图;
图5为本发明电镜三维图像重构的系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明首先分析用SIRT串行方法进行电镜三维图像重构的性能瓶颈以及将串行方法移植到其他高性能平台上的难度,找到耗时的热点代码,测试其在电镜三维图像重构的整个过程中所占的时间比例以及分析提高整个方法性能的难度以及开发轴端。
测试结果表明在采用SIRT联合迭代法进行图像重构时,大部分的时间均消耗在重投影和背投影两步骤中,这两个步骤不仅执行次数多,而且要计算的数据量大,同时,数据的计算要满足单指令多数据(SIMD,SingleInstruction Multiple Data)的特点。因此,本发明将这两步骤作为加入MIC处理器进行并行改进的重点,同时由于CPU端除了进行任务调度等工作之外,也参与赋初值,再通过重投影算法和背投影算法计算获取切片的重构图像值的工作,即采用CPU+MIC协同计算的工作模式。
针对上述分析,本发明提供了一种基于SIRT算法且使用CPU+MIC协同计算模式的电镜三维重构并行方法的实施例,该方法包括:
中央处理器(CPU)将要进行迭代重构图像中的物体分成切片,构建所述CPU与众核(MIC)处理器协同计算的框架;
所述CPU调用所述框架中的所有设备多线程并行地获得各自当前切片的重构图像值和测量投影图像值,根据所述重构图像值和所述测量投影图像值依次通过重投影算法和背投影算法计算出当前切片的最终重构图像值,直至计算出所有切片的最终重构图像值。
具体地,在实现上述方法的过程中涉及以下几个重要步骤:
步骤一、构建CPU+MIC协同计算框架;
在单节点上,共有M+1个设备(一个CPU+M个MIC卡),如图2所示,此时M的取值为2,当然也可以为其他数值,采用OpenMP的分开聚合(fork-join)模式搭建单节点上的框架,当程序开始执行的时候只有一个主线程存在,需要进行并行计算的时候,主线程派生出附加线程,即启用M+1个OpenMP线程,通过while(1)循环各个主动进行输入数据的分发读写,0~M-1号进程控制所有MIC设备,M号线程控制CPU设备。
在图像重构中,测量获取物体的投影图像像素值P的过程如图3所示,记物体的长为SX像素,宽为SY像素,高为SZ像素,旋转角度的总数(即旋转次数)为ANG_NUM,垂直于Y方向的每一个面为一个切片,共有SY个切片,即切片的数目为该物体宽度的像素值SY,切片在投影图像上的元素数为N=SX*ANG_NUM,切片在重构图像上的元素数为M=SX*SZ。图像重构的过程是以切片为单位进行的,即对每一切片通过迭代多次计算和测量获取切片的投影图像像素值来重构;重构了SY个切片便可重构出该物体模型。
例如,CPU+2MICs平台上,主线程控制输入数据的动态分发,0号线程控制MIC0设备,1号线程控制MIC1设备,2号线程控制CPU设备,如图4所示。
在SIRT算法中,MIC卡上的内存空间足够存放切片数据的大小,所以不需要采取分块处理的方式,如图4所示,每个设备重构完一个切片数据之后,输出重构图像,在每次读取当前切片的时候,需进行上锁操作,保证每片切片处理的独立性和对切片的读写冲突,各个设备间没有相互依赖。
单节点上CPU+MICs协同计算的外围框架的伪代码如下所示:
步骤二、CPU或MIC内核的实现;
在CPU+MICs协同计算平台上,每个节点上有双路6核CPU,总共12个核,如果超线程打开的话可以达到24个线程,在CPU内核设计中可以采用OpenMP开启多线程加速计算。在MIC内核设计中,根据MIC卡的核数目设计OpenMP的并行线程数。CPU和MIC采用相同的内核计算,伪代码如下:
算法1:SIRT_MIC整体实现
begin
1for:y=0:SY-1//y代表每一个切片
2读取第y个切片的投影图像值;
若运行在MIC卡上,则offload
3#pragma offload target\
4in(SX,SZ,ANGLE_NUM,N,...)\
5in(P测:length(ANGLE_NUM*SX))\
6in(thita:length(ANGLE_NUM))\
7in(P计:length(ANGLE_NUM*SX))\
8inout(X:length(SZ*SX))
否则
9
{
10背投影赋初值X(0);
11for:k=1:N//N代表要迭代的次数
12重投影SIRT_ReProject;
13背投影SIRT_BackProject;
14}
15写回第y个切片重构后的图像值X(N);
end
算法2:BackProject_Init背投影赋初值
Begin
__declspec(target(mic))BackProject_Init_kernel()
{
1#pragma omp parallel for private(n,x,...)num_threads()
2for z=0:SZ-1//z为像素点在重构图像中的行号
3for n=0:ANGLE_NUM-1//n代表旋转角度序号
4for x=0:SX-1//x为像素点在重构图像中的列号
5根据旋转角度和几何参数确定经过像素点(z,x)的光线(n,i)以及A(z,x);
6//(n,i)表示第n个旋转角度的第i条光线,即总第n*SX+i条光线,以下类同
7//(z,x)表示重构图像中第z*SX+x个像素点,以下类同
8X(0)(z,x)+=A(z,x)*P测(n,i);
}
end
算法3:ReProject重投影
Begin
__declspec(target(mic))ReProject_kernel()
{
1#pragma omp parallel for private(i,zcur,...)num_threads()
2 for n=0:ANGLE_NUM-1//n表示旋转角度序号
3 for zcur=0:SZ//循环步长为cos(□[n]),□[n]表示第n个选择角度值
4 for i=0:SX-1//i为像素点在第n个角度下投影图像中的序号
5根据旋转角度和参数确定光线(n,i)经过的像素点(zcur,x)和A(zcur,x);
6P计(n,i)+=A(zcur,x)*X(k-1)(zcur,x);
}
end
算法4:BackProject背投影
Begin
__declspec(target(mic))BackProject_kernel()
{
1#pragma omp parallel for private(n,x,...)num_threads()
2for z=0:SZ-1//z为像素点在重构图像中的行号
3for n=0:ANGLE_NUM-1//n代表旋转角度序号
4for x=0:SX-1//x为像素点在重构图像中的列号
5根据旋转角度和参数确定经过像素点(z,x)的光线(n,i)以及A(z,x);
6X(k)(z,x)+=A(z,x)*(P测(n,i)-P计(n,i));
}
即MIC处理器与CPU执行的三维图像重构过程相同,具体为:所述MIC处理器或CPU根据获得的所述当前切片初始重构图像值X(0)或上次迭代得到的重构图像值X(k-1)进行重投影得到计算投影图像值记为P;根据所述X(0)或X(k-1)得到测量投影图像值记为P,根据P和P进行背投影得到重构图像X(k),通过多次的重投影和背投影操作得到满足精度要求的所述当前切片的重构图像值,满足精度要求的当前切片的重构图像值即为当前切片的最终重构图像值,其中所述初始重构图像值X(0)通过赋初值或随机值或背投影方法获得,k为大于1的整数。
另外,还可以对SIRT_MIC进行优化,具体实施过程如下:
1)减少MIC下载(offload)次数
在MIC编程模式中,在offload引语中直接用in(),out(),inout()等引语进行内存和MIC卡上内存之间的数据拷贝,在MIC中频繁的IO会严重影响最后的性能,为了减少IO,可以把offload语句放到赋初值语句之前,并把所有的迭代过程放到MIC卡上执行,控制流采用一个线程执行,openmp并行之后的语句在MIC上采用多线程执行的方式。
2)自动向量化
在SIRT算法中,赋初值和背投影两个函数的最内层循环语句都是按行访问的方式,通过编译器可以完全自动化,而重投影函数最内层循环并没有按行访问,并且内层for有数据依赖,无法自动向量化,可以通过对内层的两个for语句做了顺序的调整,调整之后的语句可以完全自动向量化。
步骤三、负载均衡设计
(1)SIRT算法的任务级并行
三维投影数据是按照每片进行处理的。而每片数据的大小和格式都是相同的,这样在对他们进行处理所需要的时间几乎是一致的。所以无论是在CPU上的每个核上进行计算还是在多MIC卡上计算,按片来分别处理是非常合理的。CPU上的每个核或者每块MIC卡的处理能力一致,这样将每片切片数据分别划分给每个核或者每块MIC卡上,可以很好的利用硬件资源,并行计算,提高处理速度。
(2)SIRT算法的算法级并行
将每片切片数据进行分割,然后分配到不同的CPU核心上或者MIC卡上来同时计算一片数据,根据SIRT算法的分析,数据间有交互,即存在I/O传输,每片数据都处理的话,积累的频繁I/O传输将会大大影响性能。
综上所述,两种级别并行的比较,可见采用任务级并行性能更佳。
根据上述并行比较的结果,任务级并行中,MIC卡内存空间足够存放每片数据的大小,对数据的动态划分是受到OpenMP线程的控制,同时使用锁操作,避免数据读写的冲突,使用上锁操作,保证每片切片处理的独立性和对切片的读写冲突,各个设备间没有相互依赖。
另外,本发明还提供了一种电镜三维图像重构的系统,如图5所示,该系统包括CPU51和MIC处理器52,其中:
中央处理器(CPU),用于将要进行迭代重构图像中的物体分成切片,构建所述CPU与众核(MIC)处理器协同计算的框架;多线程并行地向所述框架中的所有设备发送调用请求,以及在接收到所述调用请求后,获得当前切片的重构图像值和测量投影图像值,并根据所述重构图像值和所述测量投影图像值依次通过重投影算法和背投影算法计算出当前切片的最终重构图像值,直至计算出所有切片的最终重构图像值;
所述MIC处理器,用于在接收到所述调用请求后,获得当前切片的重构图像值和测量投影图像值,并根据所述重构图像值和所述测量投影图像值依次通过重投影算法和背投影算法计算出当前切片的最终重构图像值,直至计算出所有切片的最终重构图像值。
具体地,所述CPU可以根据所述物体的大小将所述物体分成切片,切片的数目为该物体宽度的像素值;也可以将连接在同一单节点服务器的所述CPU与多个MIC处理器作为协调计算的框架,该框架中所有设备的数目为CPU的数目和MIC处理器的数目之和。
另外,所述CPU,还用于:在获得当前切片的所述重构图像值和所述测量投影图像值之后,执行上锁操作;所述MIC处理器,还用于:在获得当前切片的所述重构图像值和所述测量投影图像值之后,执行上锁操作。
进一步地,所述MIC处理器,具体用于:根据获得的所述当前切片的初始重构图像值X(0)或上次迭代得到的重构图像值X(k-1)进行重投影得到计算投影图像值;根据所述X(0)或X(k-1)得到所述测量投影图像值,根据所述计算投影图像值和所述测量投影图像值进行背投影得到重构图像值X(k),通过多次的重投影和背投影操作得到满足精度要求的所述当前切片的重构图像值,其中所述初始重构图像值X(0)通过赋初值或随机值或背投影方法获得,k为大于1的整数;或者,所述CPU,具体用于:根据获得的所述当前切片的初始重构图像值X(0)或上次迭代得到的重构图像值X(k-1)进行重投影得到计算投影图像值;根据所述X(0)或X(k-1)得到所述测量投影图像值,根据所述计算投影图像值和所述测量投影图像值进行背投影得到重构图像值X(k),通过多次的重投影和背投影操作得到满足精度要求的所述当前切片的重构图像值,其中所述初始重构图像值X(0)通过赋初值或随机值或背投影方法获得,k为大于1的整数。即MIC处理器与CPU执行的重构过程相同。
其中,在每个切片的重构过程中,对于重投影过程,就是根据像素值x求得一个计算得到的投影值P,P共有SX*ANG_NUM个元素,这SX*ANG_NUM个元素的求解中没有任何的数据依赖性,本实施例中,以SX*ANG_NUM的并行度进行重投影算法的并行,在内核中,每个线程负责计算P测中的一个元素。
在每个切片的重构过程中,对于背投影过程,也就是求重构图像像素值x的过程,该算法就是根据P和P通过背投影的方式求重构图像像素值x,对于每一个切片,x共有SX*SY个元素,这SX*SY个元素的求解中没有任何的数据依赖性,本实施例中,以SX*SY的并行度进行重投影算法的并行,在内核中,每个线程负责计算x中的一个元素。
本发明在提供了上述方法实施例和系统实施例后,根据电镜三维重构的数据规模,选取合适的CPU和KNF MIC卡分别进行SIRT方法的电镜三维重构的运算测试,其中CPU采用了Intel公司的双路4核Intel(R)Xeon(R)CPUE5630,每个CPU核可以启动两个CPU线程,MIC采用Intel公司的KNFMIC,其详细参数见表1。
表1测试环境
表2测试用例
通过在MIC的实验机器上对表2所示测试用例进行测试,测得test4a的性能如表3所示。对于串行程序,MIC程序的整体性能达到25.78倍,其中背投影函数的性能最好,性能超过32倍,而重投影只有22倍的性能。
表3实验结果
其中,bp_init表示背投影赋初值,Rp表示重投影,Bp表示背投影,all表示整体。
由上述测试结果可以看出,在MIC众核架构平台上,利用SIRT方式和MIC众核处理器强大的并行计算能力,可以在较短周期内,较容易地大幅度的加速三维电镜重构的运算。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,上述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种电镜三维图像重构的方法,其特征在于,该方法包括:
中央处理器CPU将要进行迭代重构图像中的物体分成切片,构建所述CPU与众核MIC处理器协同计算的框架;
所述CPU调用所述框架中的所有设备多线程并行地获得各自当前切片的重构图像值和测量投影图像值,根据所述重构图像值和所述测量投影图像值依次通过重投影算法和背投影算法计算出当前切片的最终重构图像值,直至计算出所有切片的最终重构图像值;
构建所述CPU与众核MIC处理器协同计算的框架包括:
在单节点上,包括M+1个设备,其中一个设备为CPU,其余M个设备为MIC;
启用M+1个线程,其中0~M-1号线程用于控制所述MIC,M号线程用于控制所述CPU。
2.根据权利要求1所述的方法,其特征在于:
所述CPU将要进行迭代重构图像中的物体分成切片,包括:
所述CPU根据所述物体的大小将所述物体分成切片,切片的数目为该物体宽度的像素值。
3.根据权利要求1所述的方法,其特征在于:
所述CPU构建所述CPU与众核MIC处理器协同计算的框架,包括:
所述CPU将连接在同一单节点服务器的所述CPU与多个MIC处理器作为协调计算的框架,该框架中所有设备的数目为CPU的数目和MIC处理器的数目之和。
4.根据权利要求1-3任一权利要求所述的方法,其特征在于,所述方法还包括:
所述所有设备分别在获得各自当前切片的所述重构图像值和所述测量投 影图像值之后,执行上锁操作。
5.根据权利要求4所述的方法,其特征在于:
所述CPU调用所述框架中的所有设备多线程并行地获得各自当前切片的重构图像值和测量投影图像值,根据所述重构图像值和所述测量投影图像值依次通过重投影算法和背投影算法计算出当前切片的最终重构图像值,包括:
所述MIC处理器或所述CPU根据获得的所述当前切片的初始重构图像值X(0)或上次迭代得到的重构图像值X(k-1)进行重投影得到计算投影图像值;根据所述X(0)或X(k-1)得到所述测量投影图像值,根据所述计算投影图像值和所述测量投影图像值进行背投影得到重构图像值X(k),通过多次的重投影和背投影操作得到满足精度要求的所述当前切片的重构图像值,其中,所述初始重构图像值X(0)通过赋初值或随机值或背投影方法获得,k为大于1的整数。
6.一种电镜三维图像重构的系统,其特征在于,该系统包括:
中央处理器CPU,用于将要进行迭代重构图像中的物体分成切片,构建所述CPU与众核MIC处理器协同计算的框架;
构建所述CPU与众核MIC处理器协同计算的框架包括:
在单节点上,包括M+1个设备,其中一个设备为CPU,其余M个设备为MIC;
启用M+1个线程,其中0~M-1号线程用于控制所述MIC,M号线程用于控制所述CPU;
多线程并行地向所述框架中的所有设备发送调用请求,以及在接收到所述调用请求后,获得当前切片的重构图像值和测量投影图像值,并根据所述重构图像值和所述测量投影图像值依次通过重投影算法和背投影算法计算出当前切片的最终重构图像值,直至计算出所有切片的最终重构图像值;以及
所述MIC处理器,用于在接收到所述调用请求后,获得当前切片的重构图像值和测量投影图像值,并根据所述重构图像值和所述测量投影图像值 依次通过重投影算法和背投影算法计算出当前切片的最终重构图像值,直至计算出所有切片的最终重构图像值。
7.根据权利要求6所述的系统,其特征在于:
所述CPU,具体用于:根据所述物体的大小将所述物体分成切片,切片的数目为该物体宽度的像素值。
8.根据权利要求6所述的系统,其特征在于:
所述CPU,具体用于:将连接在同一单节点服务器的所述CPU与多个MIC处理器作为协调计算的框架,该框架中所有设备的数目为CPU的数目和MIC处理器的数目之和。
9.根据权利要求6-8任一权利要求所述的系统,其特征在于:
所述CPU,还用于:在获得当前切片的所述重构图像值和所述测量投影图像值之后,执行上锁操作;
所述MIC处理器,还用于:在获得当前切片的所述重构图像值和所述测量投影图像值之后,执行上锁操作。
10.根据权利要求9所述的系统,其特征在于:
所述MIC处理器,具体用于:根据获得的所述当前切片的初始重构图像值X(0)或上次迭代得到的重构图像值X(k-1)进行重投影得到计算投影图像值;根据所述X(0)或X(k-1)得到所述测量投影图像值,根据所述计算投影图像值和所述测量投影图像值进行背投影得到重构图像值X(k),通过多次的重投影和背投影操作得到满足精度要求的所述当前切片的重构图像值,其中,所述初始重构图像值X(0)通过赋初值或随机值或背投影方法获得,k为大于1的整数;或者
所述CPU,具体用于:根据获得的所述当前切片的初始重构图像值X(0)或上次迭代得到的重构图像值X(k-1)进行重投影得到计算投影图像值;根据所述X(0)或X(k-1)得到所述测量投影图像值,根据所述计算投影图像值和所述测量投影图像值进行背投影得到重构图像值X(k),通过多次的重投影和背投影操作得到满足精度要求的所述当前切片的重构图像值,其中,所述初 始重构图像值X(0)通过赋初值或随机值或背投影方法获得,k为大于1的整数。
CN201210326514.7A 2012-09-05 2012-09-05 电镜三维图像重构的方法及系统 Active CN102881042B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210326514.7A CN102881042B (zh) 2012-09-05 2012-09-05 电镜三维图像重构的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210326514.7A CN102881042B (zh) 2012-09-05 2012-09-05 电镜三维图像重构的方法及系统

Publications (2)

Publication Number Publication Date
CN102881042A CN102881042A (zh) 2013-01-16
CN102881042B true CN102881042B (zh) 2015-09-23

Family

ID=47482354

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210326514.7A Active CN102881042B (zh) 2012-09-05 2012-09-05 电镜三维图像重构的方法及系统

Country Status (1)

Country Link
CN (1) CN102881042B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945566A (zh) * 2012-10-19 2013-02-27 浪潮电子信息产业股份有限公司 一种基于sirt算法且使用cpu+mic协同计算模式的电镜三维重构方法
CN103530132A (zh) * 2013-10-29 2014-01-22 浪潮电子信息产业股份有限公司 一种cpu串行程序移植到mic平台的方法
JP6548441B2 (ja) * 2015-04-15 2019-07-24 キヤノン株式会社 画像処理装置、画像処理方法、およびプログラム
CN107065159B (zh) 2017-03-24 2019-10-18 南京理工大学 一种基于大照明数值孔径的大视场高分辨率显微成像装置及迭代重构方法
CN112258627B (zh) * 2020-09-18 2023-09-15 中国科学院计算技术研究所 一种局部断层三维重构系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101937425A (zh) * 2009-07-02 2011-01-05 北京理工大学 基于gpu众核平台的矩阵并行转置方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101937425A (zh) * 2009-07-02 2011-01-05 北京理工大学 基于gpu众核平台的矩阵并行转置方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Ryan Smith.Intel Announces Xeon Phi Family of Co-Processors- MIC Goes Retail.《ANANDTECH》.http://www.anandtech.com/show/6017/intel-announces-xeon-phi-family-of-coprocessors-mic-goes-retail,2012,第2-4段. *
冷冻电镜三维重构在CPU—GPU系统中的并行性;李兴建 等;《华中科技大学学报(自然科学版)》;20110630;第39卷(第增刊I期);第3.2节第2段、第119页左栏第2段 *
基于GPU平台的联合迭代重构算法加速;张广勇 等;《计算机科学》;20120531;第39卷(第5期);第311页左栏第2段、第2.2.1节、第3.1节、第3.3节 *
基于图形处理器的锥束CT快速迭代重建算法;赵星 等;《北京理工大学学报》;20101130;第30卷(第11期);全文 *

Also Published As

Publication number Publication date
CN102881042A (zh) 2013-01-16

Similar Documents

Publication Publication Date Title
Tang et al. Collision-streams: Fast GPU-based collision detection for deformable models
Eklund et al. BROCCOLI: Software for fast fMRI analysis on many-core CPUs and GPUs
Pratx et al. GPU computing in medical physics: A review
Díaz-Pernil et al. Segmenting images with gradient-based edge detection using membrane computing
Enmyren et al. SkePU: a multi-backend skeleton programming library for multi-GPU systems
Fluck et al. A survey of medical image registration on graphics hardware
CN102881042B (zh) 电镜三维图像重构的方法及系统
Hall et al. GPU acceleration of iterative clustering
KR20120055089A (ko) 부하분산을 이용한 병렬형 충돌검사 방법과 병렬형 거리계산 방법
CN102945566A (zh) 一种基于sirt算法且使用cpu+mic协同计算模式的电镜三维重构方法
Fazanaro et al. Numerical characterization of nonlinear dynamical systems using parallel computing: The role of GPUs approach
Lessley et al. DPP-PMRF: rethinking optimization for a probabilistic graphical model using data-parallel primitives
Weinlich et al. Comparison of high-speed ray casting on GPU using CUDA and OpenGL
Fernández-Fabeiro et al. Simplifying the multi-gpu programming of a hyperspectral image registration algorithm
CN102163319B (zh) 一种实现迭代重构图像的方法及系统
Caucci et al. GPU programming for biomedical imaging
Salinas et al. A fast and efficient integration of boundary conditions into a unified CUDA Kernel for a shallow water solver lattice Boltzmann Method
Teimoorisichani et al. A cube-based dual-GPU list-mode reconstruction algorithm for PET imaging
US11055381B1 (en) Estimating product integrals using a composition of warps
Locans et al. Real-time computation of parameter fitting and image reconstruction using graphical processing units
Falch et al. GPU-accelerated visualization of scattered point data
Wang et al. Gpu acceleration for optical measurement
Arsenyev-Obraztsov et al. Proposals on 3D parallel edge-preserving filtration for x-ray tomographic digital images of porous medium core plugs
Martinez-Sanchez et al. Simulating the cellular context in synthetic datasets for cryo-electron tomography
Frolov et al. An auto-programming approach to Vulkan

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant