CN105809731B - 并行化光线投射方法、系统及装置 - Google Patents
并行化光线投射方法、系统及装置 Download PDFInfo
- Publication number
- CN105809731B CN105809731B CN201610132493.3A CN201610132493A CN105809731B CN 105809731 B CN105809731 B CN 105809731B CN 201610132493 A CN201610132493 A CN 201610132493A CN 105809731 B CN105809731 B CN 105809731B
- Authority
- CN
- China
- Prior art keywords
- image
- data
- resampling
- multiple sub
- parallel
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种并行化光线投射方法、系统及装置,该方法包括以下步骤:获取体数据并对体数据进行数据分类,以获取分类结果;对分类结果并行进行重采样,获取重采样结果;将重采样结果进行分块处理,获取多个子数据块;对多个子数据块并行进行图像融合,以获取与子数据块对应的多个子图像数据;对多个子图像数据进行图像融合计算,获取体数据的可视化图像。上述实施例的并行化光线投射方法、系统及装置,通过实现体数据的并行处理,大大提高了可视化成像的速率。
Description
技术领域
本发明涉及科学计算可视化技术领域,特别是涉及一种并行化光线投射方法、系统及装置。
背景技术
在科学计算可视化研究过程中,通常采用光线投射法。光线投射法视觉效果真实,可以得到大量的有效图像信息,不仅在医学影像领域中具有很高的应用价值,而且在地质勘探、气象学、分子模型构造、空间探测和动画设计等领域也有一定的参考价值。
然而传统的光线投射算法,涉及到大量射线采样运算和数据融合运算,运算量大,可视化成像速度受到限制,实时性较差。
发明内容
针对上述技术问题,提供一种并行化光线投射方法、系统及装置,其能够快速、实时地实现三维可视化成像。
一种并行化光线投射方法,包括以下步骤:
获取体数据并对所述体数据进行数据分类,以获取分类结果;
对所述分类结果并行进行重采样,获取重采样结果;
将所述重采样结果进行分块处理,获取多个子数据块;
对所述多个子数据块并行进行图像融合,以获取与所述多个子数据块对应的多个子图像数据;
对所述多个子图像数据进行图像融合,获取所述体数据的三维重建图像。
在其中一些实施例中,所述对所述体数据进行数据分类,以获取分类结果的步骤包括:将所述体数据中的体数据值映射为颜色和不透明度;
将所述颜色和所述不透明度作为所述分类结果。
在其中一些实施例中,对所述分类结果进行并行重采样,获取重采样结果的步骤包括:
根据所述颜色和所述不透明度的数据量确定出重采样所需的射线数量;
根据所述射线数量,定义多个并行线程分别对所述颜色和所述不透明度进行并行重采样,其中,每个线程对应一条重采样射线。
在其中一些实施例中,对所述多个子数据块进行并行图像融合的步骤包括:
对每个子数据块内部进行串行图像融合,同时所述多个子数据块间并行进行图像融合,以获取所述多个子数据块对应的多个子图像数据,其中所述星运算满足结合律。
在其中一些实施例中,所述对所述多个子图像数据进行图像融合,获取所述体数据的三维重建图像的步骤包括:
利用预先定义的星运算计算模型对每个子图像数据内部进行串行图像融合,同时所述多个子图像数据间并行进行图像融合,获取所述多个子图像数据对应的多个数据结果;
按照递归的方式重复对所述多个子数据结果并行进行图像融合,直至获取所述体数据的三维重建图像。
一种并行化光线投射系统,包括:
分类模块,用于获取体数据,并对所述体数据进行数据分类,以获取分类结果;
重采样模块,用于对所述分类结果并行进行重采样,获取重采样结果;
分块处理模块,用于将所述重采样结果进行分块处理,获取多个子数据块;
图像融合模块,用于对所述多个子数据块并行进行图像融合,以获取与所述多个子数据块对应的多个子图像数据;
重建模块,用于对多个子图像数据进行图像融合,获取所述体数据的三维重建图像。
在其中一些实施例中,所述分类模块还用于将所述体数据中的体数据值映射为颜色和不透明度;将所述颜色和所述不透明度作为所述分类结果;
所述重采样模块还用于根据所述颜色和所述不透明度的数据量确定出重采样所需的射线数量;根据所述射线数量,定义多个并行线程分别对所述颜色和所述不透明度进行并行重采样,其中,每个线程对应一条重采样射线。
在其中一些实施例中,所述图像融合模块还用于对每个子数据块内部进行串行图像融合,同时所述多个子数据块间并行进行图像融合,以获取所述多个子数据块对应的多个子图像数据,其中所述星运算满足结合律。
在其中一些实施例中,所述重建模块还用于:利用预先定义的星运算计算模型对每个子图像数据内部进行串行图像融合,同时所述多个子图像数据间并行进行图像融合,获取所述多个子图像数据对应的多个数据结果;
按照递归的方式重复对所述多个子数据结果并行进行图像融合,直至获取所述体数据的三维重建图像。
一种并行化光线投射装置,所述装置包括:
主处理器,用于获取体数据并对所述体数据进行数据分类,以获取分类结果;对所述分类结果并行进行重采样,获取重采样结果;将所述重采样结果进行分块处理,获取多个子数据块;
从处理器,用于利用预先定义的星运算计算模型对所述多个子数据块进行并行图像融合,以获取与所述多个子数据块对应的多个子图像数据;对所述多个子图像数据进行图像融合,获取所述体数据的三维重建图像,其中,所述从处理器包括图形处理器和现场可编程门阵列。
上述实施例的并行化光线投射方法、系统及装置,通过获取体数据并对体数据进行数据分类,以获取分类结果;对分类结果进行重采样,获取重采样结果;根据星运算规则将重采样结果进行分块处理,获取多个子数据块;对每个子数据块进行图像融合,以获取与子数据块对应的多个子图像数据;对多个子图像数据进行计算获取体数据的可视化图像。根据利用预先定义的星运算计算模型实现体数据的并行处理,大大提高了可视化成像的速率。
附图说明
图1为一些实施例中的并行化光线投射方法的流程图;
图2为一些实施例中的三线性插值重采样方法示意图;
图3为一些实施例中的从前向后并行化图像融合的示意图;
图4为一些实施例中的按照星运算规则的倒二叉树结构融合示意图;
图5为一些实施例中的星运算并行化加速方法示意图;
图6为一些实施例中的星运算计算流程示意图;
图7为一些实施例中的并行化光线投射系统的结构框图
图8为一些实施例中的并行化光线投射装置的示意图;
图9为一些实施例中的并行化光线投射方法的示例图。
具体实施方式
近几年来,科学计算可视化成像技术有了快速发展,包括计算机断层扫描技术(CT)、核磁共振成像技术(MRI)和其它成像领域。在众多可视化成像技术中,光线投射法是常用算法。使用光线投射法重建的三维可视化图像,由于视觉效果真实,可以得到大量的诊断信息,在临床研究、治疗中具有很高的价值。但光线投射法在重建过程中可能产生千兆甚至千G的数据量,数据量过大则影响三维图像的实时性显示,故需要对光线投射法进行改进以提高重建速度。
面对GB甚至TB数量级的数据,GPU(Graphics Processing Unit,图形处理器)的并行化计算在处理能力和存储器带宽上相较CPU有着明显优势,无需在成本和功耗上付出大的代价便可以解决问题。
CUDA(Compute Unified Device Architecture),即统一计算设备架构的简称,它是一种专为GPU计算设计的通用并行计算架构,通过CUDA可以减轻GPU计算中存在的很多限制,使得GPU使用更灵活。在本发明的一些实施例中,基于CUDA实现的并行化光线投射方法,提高了三维可视化成像的速率和成像质量。
如图1所示,本发明的一些实施例中提出一种并行化光线投射方法包括以下步骤:
步骤102,获取体数据,并对体数据进行数据分类,以获取分类结果。
通常体数据主要有三大来源:第一类是科学计算得到的三维数据场,如流体计算、有限元分析、数值模拟等方式得到的体数据;第二类是通过各种断层扫描设备获取的数据,如通过CT、MRI等设备扫描得到的体数据;第三类采用计算机对传统图形学几何实体进行体素化(Voxelization)得到的体数据。在本实施例中,医学影像数据由测量仪器(如CT、MRI、B超等)或者直接由计算机模拟(如头模)产生,产生的这些数据转换为较为常用的源数据文件(如DICOM、BMP等),之后通过计算机对源数据进行读取与分析,获取体数据并保存。
在一些实施例中,在获取体数据后还包括对获取的体数据进行预处理的步骤,然后基于预处理之后的体数据进行数据分类,以获取分类结果。所述预处理的步骤具体包括:对体数据进行包围盒剪裁,获取有效体数据,基于有效体数据进行数据分类,以获取分类结果。
体数据通常包含有效数据与无效数据,如果不加以区分而对全部体数据进行重建,则将在无效区域的数据上耗费较多的计算时间。因此需要将计算的区域限制在一定范围内,既可以保证有效数据区域得到计算,又能排除大多数无效数据区域。在本发明的一些实施例中,利用包围盒算法对获取的体数据进行合理剪裁,获取有效体数据,可以加快后续的运算速度。在本实施例中,可以采用坐标轴对齐包围盒算法、方向包围盒算法、固定方向凸包算法、包围球算法等中的至少一种。
进一步,将体数据进行数据分类,以获取分类结果。该步骤具体包括:将体数据中的体数据值映射为颜色和不透明度。
(1)由于体数据场中数据是在连续空间中对某一种物理属性的离散采样,数据本身不包含任何颜色信息,因此需要对体数据场中的数据赋值颜色信息。在并行化光线投射方法预处理阶段,得到包含原始RGB通道信息的数据场,为P(R,G,B),对数据进行RGB的浮点数转换,将该值转换为float型存储,则该点的RGB值为:
Pr=R/255
Pg=G/255,
Pb=B/255
式中Pr——RGB通道数组中R值;
Pg——RGB通道数组中G值;
Pb——RGB通道数组中B值。
最终可以得到P点的RGB浮点数值P(Pr,Pg,Pb),这样赋值可以给每一个数据点都赋值颜色(RGB),使得更多细节得以展示。
将上述实施例的步骤中,将每个数据点的颜色值(RGB值)组成颜色数组。
(2)根据每个数据点的颜色获取每个数据点的不透明度。
由于数据点间存在遮挡重叠关系,为了最终能够得到融合后的图像,还应该给每个数据点赋值一个不透明度。不透明度是指物体对光线吸收能力的强弱,不透明度越大,则物体对光线的吸收能力越强,也可以理解为这种物体对于光线是不透明的。不透明度是一个float型数,取值区间为(0,1),不透明度为0,则表示该点完全透明;不透明度为1,则表示该点完全不透明,被其遮挡的数据完全不可见。
在本实施例中,采用阈值划分法进行透明度赋值。所谓阈值划分,即将三维体数据的颜色值(RGB值)按照一定的阈值划分为多个区间,每个区间作为一类,同一类赋值同一个不透明度。假设有n个阈值TDi(i=1,2,…,n),体数据颜色值(RGB值)表示为P(Pr,Pg,Pb),那么P(Pr,Pg,Pb)与TDi满足:
TDi≤P(Pr,Pg,Pb)<TDi+1
其中,n为正整数,Pr,Pg和Pb分别为P点的R、G、B值。
在计算机中,颜色可以有R、G、B三个分量组成,而本文进行不透明度阈值划分时,是根据RGB分量来进行的。因此在本实施例中根据透明度阈值转换函数进行透明度阈值划分时,是对R、G、B值进行阈值划分,可得到对应的不透明度,其转换函数如下所示:
其中,Or表示Pr数组的不透明度,Og表示Pg数组的不透明度,Ob表示Pb数组的不透明度。不透明度阈值转换函数可以根据实际需要进行修改,以便获取体数据中不同的数据信息,如果体数据中仅有亮度信息而没有RGB信息,则不透明度阈值转换时使用亮度进行阈值划分。
将上述实施例的步骤获取的每个数据点的不透明度组成不透明度数组。
进一步地,将获取的体数据的颜色和不透明度作为两类分类结果。
步骤104,对分类结果并行进行重采样,获取重采样结果。
在一些实施例中,根据上述步骤102获取的每个数据点颜色信息和不透明度,对分别对颜色和不透明度进行重采样以获取重采样点及其重采样值。
在一些实施例中,根据颜色和不透明度的数据量确定出重采样所需的射线数量;根据射线数量,定义多个并行线程分别对颜色和不透明度进行并行重采样,其中,每个线程对应一条重采样射线。
在一些实例中,处理256×256×256的体数据时,在重采样阶段中,在对颜色的RGB三个分量并行进行重采样时,此时R分量,G分量,B分量各有256×256×256个数据,则根据其数据分别投射256×256条光线,每条光线同样分配一个线程,则一共可以分配256×256×3个线程来并行处理RGB分量的重采样。对体数据的不透明度并行进行重采样时,共投射65536条采样射线,则初始化256×256个线程,每个线程对应一条采样射线,对不透明度并行进行重采样。
在一些实施例中,采用插值方法进行重采样需要确定重采样点的坐标,然后获得重采样点值。在本实施例中,采用三线性插值的方法获取体数据中重采样点的重采样值。三线性插值是一种在三维离散采样数据网格上进行线性插值的方法,简单的说,它就是对每个平面上的纹理做双线性插值,之后两个平面纹理再按照距离做一次插值即可。体数据中的每一个点即为数据点,由于数据点与数据点之间存在距离,所以体数据可以近似看作是一组离散的三维数据网格。因此在三线性插值过程中,通常采用近似的离散方法来实现,即采集离采样点最近的8个数据点颜色和透明度并进行插值运算来求得近似的采样值。
如图2所示,图中d1,d2……d8表示8个数据点。假设(x,y,z)表示具体的重采样点的坐标,Pw(x,y,z)表示该坐标点所包含的颜色信息(RGB值)。由此可以得到:
第一次插值:
第二次插值:
第三次插值:
通过上述三线性插值方式,可以得到8个重采样点的重采样值R。
步骤106,将重采样结果进行分块处理,获取多个子数据块。
在一些实施例中,对上述步骤104的重采样结果(包括重采样点及其重采样值)进行分块处理,获取多个子数据块。在本实施例中,每个重采样点包括颜色和不透明度。根据每个重采样点的颜色和不透明度进行分块。即按照重采样点的多少将所有重采样点的颜色数组分为维度相同的M组,同时将所有重采样点的不透明度数组也分为M组,M为正整数。一组颜色数组数据与一组不透明度数组数据组成一个子数据块,从而可以得到多(M)个字数据块。
步骤108,利用预先定义的星运算计算模型对多个子数据块并行进行图像融合,以获取与子数据块对应的多个子图像数据。
在本实施例中,预先定义的星运算计算模型为:
(a[i,i-1],b[i,i-1])=(ai,bi)*(ai-1,bi-1)=(aiai-1,aibi-1+bi);
(a[i,j],b[i,j])=(a[i,m],b[i,m])*(a[m-1,j],b[m-1,j])=(a[i,m]a[m-1,j],a[i,m]b[m-1,j]+b[i,m])(i>m>j);
其中,i、m和j均为正整数,其中,星运算满足结合律。
在一些实施例中,对颜色和不透明度采用从前向后的图像融合方式。
C=(C1,C2,...Cn)和O=(O1,O2,...,On)分别表示上述实施例中重采样点的颜色和不透明度的两组数组,其中C表示颜色数组,即RGB值,O表示不透明度数组。在C数组中,Ci-1是第i-1个重采样点的颜色输出值,同时也是第i个重采样点的颜色输入值。Oi-1是第i-1个重采样点的不透明度输出值,同时也是第i个重采样点的不透明度输入值。(Xi,Yi)表示第i个重采样点所包含的颜色和不透明度,其中Xi和Yi均可以由离采样点最近的8个体数据点进行三线性插值得到。
如图3所示,当投射光线穿过第i-1个重采样点时,第i个重采样点的颜色Ci和不透明度Oi可以由Xi和Yi以及Ci-1和Oi-1经过融合公式得到。所述的融合迭代公式为:
Oi=Oi-1+Xi×(1-Oi-1),
对上式变形可得:
Ci+1=ai*Ci+bi,
其中,
进一步地,将上述公式进行优化。首先定义函数Ci和Di,Ci=ai-1ai-2,Di=ai-1bi-2+bi-1,其中,a0=1,b0=1。
利用上述实施例定义的星运算计算模型对上式可以推导得到:
Ci+1=aiai-1L a2a1cin+aiai-1L a2b1+aiai-1L a3b2+LL+aiai-1bi-2+aibi-1+bi,
进一步可以得到:
[(aiai-1L a2a1),(aiai-1L a2b1+aiai-1L a3b2+L L+aiai-1bi-2+aibi-1+bi)]
=(ai,bi)*(ai-1L a2a1,ai-1L a2b1+ai-1L a3b2+LL+ai-1bi-2+bi-1)
=(ai,bi)*(ai-1,bi-1)*(ai-2L a2a1,ai-2L a2b1+ai-2L a3b2+LL+bi-2)
L
=(ai,bi)*(ai-1,bi-1)*L*(a2,b2)*(a1,b1)
=(a[i,j],b[i,j])*(a[j-1,k],b[j-1,k])*L*(a[m-1,n],b[m-1,n])*(a[n-1,1],b[n-1,1])(i>j>k>L>m>n>1),
[(aiai-1L a2a1),(aiai-1L a2b1+aiai-1L a3b2+L L+aiai-1bi-2+aibi-1+bi)]
=(a1,b1)*(a2,b2)*L*(ai-1,bi-1)*(ai,bi)
即=[(a1,b1)*(a2,b2)]*[(a3,b3)*(a4,b4)]*L*[(ai-3,bi-3)*(ai-2,bi-2)]*[(ai-1,bi-1)*(ai,bi)]
=L
=(a[1,n-1],b[1,n-1])*(a[n,m-1],b[n,m-1])*L*(a[k,j-1],b[k,j-1])*(a[j,i],b[j,i])(i>j>k>L>m>n>1)
从上式可以看出,变量(ai,bi)(或者(a[i,j],b[i,j]))能够满足星运算结合律特性,即可以将上述步骤106获取的重采样结果划分为多个子数据块执行,每个子数据块内部执行从前向后的串行图像融合,而子数据块与子数据块之间执行并行图像融合运算。在另外一些实施例中,也可以采用从后向前的图像融合。
如图4所示,根据星运算计算模型对每个子数据块中的数据进行递归式的图像融合运算,计算复杂度从O(n)降到O(log2n),计算时间可以通过并行优化的方式进行进一步缩短,从而达到加速重建提高三维可视化成像的实时性的目的。
步骤110,对多个子图像数据进行图像融合,获取体数据的三维重建图像。
在本实施例中,同样按照上述实施例描述的星运算计算模型对将上述步骤106获得的子图像数据按照两两分组进行图像融合,然后再将图像融合后得到的数据进行两两分组进行图像融合,按照这种倒二叉树的递归形式直至所有数据融合完成,获取体数据的最终三维重建图像。
例如,处理256×256×256的体数据时,在多个子数据块的图像融合阶段分配256×256个线程块,每个线程块对应一条采样射线,而在每个线程块中,分配128个线程来并行处理数据间的两两融合,在后续的递归融合过程中,线程数量依次减半,直至得到最终的融合结果。
在具体实现过程中,例如图4所示,将待融合的重采样结果划分为四个子数据块,则每个子数据块按照星运算规则进行图像融合,得到四个子图像数据计算结果A,B,C,D。再按照星运算规则将这四个结果中A,B进行图像融合,C,D进行图像融合,得到两个结果E,F。最后再将E,F按照星运算计算模型进行图像融合,得到最终三维重建图像。
进一步地,在一些实施例中,该并行化光线投射方法还包括,显示该三维重建图像。在本实施例中,通过OpenGL可视化该三维重建图像。
例如图5所示,在本发明的一个示例中,并行化光线投射方法流程主要包括四个部分,
(1)读取三维体数据;
(2)数据处理;
(3)并行化图像融合并重建;
(4)载入OpenGL,显示三维重建图像。
在并行图像融合过程中,有粗粒度和细粒度的之分。一个好的并行化过程,可以达到细粒度并行与粗粒度并行的结合。改进后的星运算适用于并行化处理,该并行化光线投射方法的主函数计算过程如图6所示。
主体程序实现流程描述如下:
(1)读取原始图像数据。
(2)将所得数据进行预处理,将原始数据分类,得到颜色数据和不透明度数据。
(3)根据所需计算的重采样数据量分配线程,并初始化GPU内存。
(4)并行重采样RGB体数据,并同时并行重采样不透明度体数据,得到重采样后的颜色数组C和重采样后的不透明度数组O。
(5)根据星运算计算模型,对C和O并行图像融合。
(6)初始化OpenGL函数。
(7)在OpenGL平台上显示图像结果。
在另一些实施例中,提出一种并行化光线投射系统700,如图7所示,该系统700包括分类模块702、重采样模块704、分块处理模块707、图像融合模块708和重建模块710。
分类模块702用于获取体数据,并对所述体数据进行数据分类,以获取分类结果。重采样模块704,用于对所述分类结果并行进行重采样,获取重采样结果。分块处理模块707用于将所述重采样结果进行分块处理,获取多个子数据块。图像融合模块708用于对所述多个子数据块并行进行图像融合,以获取与所述多个子数据块对应的多个子图像数据。重建模块710用于对多个子图像数据进行图像融合,获取所述体数据的三维重建图像。
在一些实施例中,分类模块702还用于将所述体数据中的体数据值映射为颜色和不透明度;将所述颜色和所述不透明度作为所述分类结果;
重采样模块704还用于根据所述颜色和所述不透明度的数据量确定出重采样所需的射线数量;根据所述射线数量,定义多个并行线程分别对所述颜色和所述不透明度进行并行重采样,其中,每个线程对应一条重采样射线。
在一些实施例中,图像融合模块708还用于对每个子数据块内部进行串行图像融合,同时所述多个子数据块间并行进行图像融合,以获取所述多个子数据块对应的多个子图像数据。
在一些实施例中,所述重建模块710还用于:利用预先定义的星运算计算模型对每个子图像数据内部进行串行图像融合,同时所述多个子图像数据间并行进行图像融合,获取所述多个子图像数据对应的多个数据结果;
按照递归的方式重复对所述多个子数据结果并行进行图像融合,直至获取所述体数据的三维重建图像。
在一些实施例中,系统700还包括预处理模块712。预处理模块712用于对体数据进行包围盒剪裁,获取有效体数据。
本实施例的并行化光线投射系统700用于实现前述的并行化光线投射方法,因此并行化光线投射系统700中的具体实施可参见前文中并行化光线投射方法的实施例部分,例如,分类模块702、重采样模块704、分块处理模块707、图像融合模块708和重建模块710分别用于实现上述并行化光线投射方法中步骤102、104、106、108和110,所以,其具体实现方式可参照前文中有关步骤102、104、106、108和110的各个实施例的描述,在此不再累述。
上述实施例的并行化光线投射方法和系统具有通用性,适用于GPU环境以及FPGA环境,算法可由GPU编程或者FPGA电路实现。
在另一些实施例中,还提出一种并行化光线投射装置800,如图8所示,所述装置80包括:主处理器802和从处理器804。
主处理器802用于获取体数据并对所述体数据进行数据分类,以获取分类结果;对所述分类结果并行进行重采样,获取重采样结果;将所述重采样结果进行分块处理,获取多个子数据块。
主处理器802控制从处理器804的运行。从处理器804用于利用预先定义的星运算计算模型对所述多个子数据块进行并行图像融合,以获取与所述多个子数据块对应的多个子图像数据;对所述多个子图像数据进行图像融合,获取所述体数据的三维重建图像,其中,所述从处理器包括图像处理器GPU和现场可编程门阵列FPGA。
例如图9所示,在图像处理器GPU分配空间后,读取三维体数据,并对体数据进行如上述实施例中的预处理,获取有效体数据后,对有效体数据进行分块处理,获取多个子数据块。根据星运算规则给GPU分配多个核函数,同时并行运行多个线程,因此在GPU中进行内存/线程的分配,每个线程串行执行一个子数据块的图像融合过程,获取多个线程对应的多个子图像数据,最后对多个子图像数据进行计算获取所述体数据的可视化图像。从处理器804的具体实现方式可参照前文中有关步骤108和110的各个实施例的描述,在此不再累述。
相比较传统的CPU串行运算和传统的GPU运算,可以看出本发明实施例的并行化光线投射装置80除了可以实现多条射线同时并行投射(即射线组投射)以外,在融合阶段还可以实现分块并行处理,子数据块与子数据块间并行计算,具体可以调用CUDA中的stream来进行操作。
上述实施例的并行化光线投射方法、系统及装置,通过获取体数据并对体数据进行数据分类,以获取分类结果;对分类结果进行重采样,获取重采样结果;将重采样结果进行分块处理,获取多个子数据块;对每个子数据块进行图像融合,以获取与子数据块对应的多个子图像数据;对多个子图像数据进行计算获取体数据的三维重建图像。根据利用预先定义的星运算计算模型实现体数据的并行处理,大大提高了可视化成像的速率。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种并行化光线投射方法,其特征在于,包括以下步骤:
获取体数据并对所述体数据进行数据分类,以获取分类结果;
对所述分类结果并行进行重采样,获取重采样结果;
将所述重采样结果进行分块处理,获取多个子数据块;
对所述多个子数据块并行进行图像融合,具体为:利用预先定义的星运算计算模型对每个子数据块内部进行串行图像融合,同时所述多个子数据块间并行进行图像融合,以获取所述多个子数据块对应的多个子图像数据,以获取与所述多个子数据块对应的多个子图像数据,所述预先定义的星运算计算模型为:
(a[i,i-1],b[i,i-1])=(ai,bi)*(ai-1,bi-1)=(aiai-1,aibi-1+bi);
(a[i,j],b[i,j])=(a[i,m],b[i,m])*(a[m-1,j],b[m-1,j])=(a[i,m]a[m-1,j],a[i,m]b[m-1,j]+b[i,m])(i>m>j);
其中,i、m和j均为正整数,其中,星运算满足结合律;
对所述多个子图像数据进行图像融合,获取所述体数据的三维重建图像。
2.根据权利要求1所述的方法,其特征在于,所述对所述体数据进行数据分类,以获取分类结果的步骤包括:
将所述体数据中的体数据值映射为颜色和不透明度;
将所述颜色和所述不透明度作为所述分类结果。
3.根据权利要求2所述的方法,其特征在于,对所述分类结果进行并行重采样,获取重采样结果的步骤包括:
根据所述颜色和所述不透明度的数据量确定出重采样所需的射线数量;
根据所述射线数量,定义多个并行线程分别对所述颜色和所述不透明度进行并行重采样,其中,每个线程对应一条重采样射线。
4.根据权利要求1所述的方法,其特征在于,所述对所述多个子图像数据进行图像融合,获取所述体数据的三维重建图像的步骤包括:
对每个子图像数据内部进行串行图像融合,同时所述多个子图像数据间并行进行图像融合,获取所述多个子图像数据对应的多个数据结果;
按照递归的方式重复对所述多个子数据结果并行进行图像融合,直至获取所述体数据的三维重建图像。
5.一种并行化光线投射系统,其特征在于,包括:
分类模块,用于获取体数据,并对所述体数据进行数据分类,以获取分类结果;
重采样模块,用于对所述分类结果并行进行重采样,获取重采样结果;
分块处理模块,用于将所述重采样结果进行分块处理,获取多个子数据块;
图像融合模块,用于对所述多个子数据块进行并行图像融合,以获取与所述多个子数据块对应的多个子图像数据;
重建模块,用于对多个子图像数据进行图像融合,获取所述体数据的三维重建图像,还用于:利用预先定义的星运算计算模型对每个子图像数据内部进行串行图像融合,同时所述多个子图像数据间并行进行图像融合,获取所述多个子图像数据对应的多个子数据结果,按照递归的方式重复对所述多个子数据结果并行进行图像融合,直至获取所述体数据的三维重建图像,所述预先定义的星运算计算模型为:
(a[i,i-1],b[i,i-1])=(ai,bi)*(ai-1,bi-1)=(aiai-1,aibi-1+bi);
(a[i,j],b[i,j])=(a[i,m],b[i,m])*(a[m-1,j],b[m-1,j])=(a[i,m]a[m-1,j],a[i,m]b[m-1,j]+b[i,m])(i>m>j);
其中,i、m和j均为正整数,其中,星运算满足结合律。
6.根据权利要求5所述的系统,其特征在于,所述分类模块还用于将所述体数据中的体数据值映射为颜色和不透明度;将所述颜色和所述不透明度作为所述分类结果;
所述重采样模块还用于根据所述颜色和所述不透明度的数据量确定出重采样所需的射线数量;根据所述射线数量,定义多个并行线程分别对所述颜色和所述不透明度进行并行重采样,其中,每个线程对应一条重采样射线。
7.根据权利要求5所述的系统,其特征在于,所述图像融合模块还用于对每个子数据块内部进行串行图像融合,同时所述多个子数据块间并行进行图像融合,以获取所述多个子数据块对应的多个子图像数据。
8.一种并行化光线投射装置,其特征在于,所述装置包括:
主处理器,用于获取体数据并对所述体数据进行数据分类,以获取分类结果;对所述分类结果并行进行重采样,获取重采样结果;将所述重采样结果进行分块处理,获取多个子数据块;
从处理器,用于利用预先定义的星运算计算模型对所述多个子数据块进行并行图像融合,以获取与所述多个子数据块对应的多个子图像数据;对所述多个子图像数据进行图像融合,获取所述体数据的三维重建图像,其中,所述从处理器包括图形处理器GPU和现场可编程门阵列FPGA,所述预先定义的星运算计算模型为:
(a[i,i-1],b[i,i-1])=(ai,bi)*(ai-1,bi-1)=(aiai-1,aibi-1+bi);
(a[i,j],b[i,j])=(a[i,m],b[i,m])*(a[m-1,j],b[m-1,j])=(a[i,m]a[m-1,j],a[i,m]b[m-1,j]+b[i,m])(i>m>j);
其中,i、m和j均为正整数,其中,星运算满足结合律。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610132493.3A CN105809731B (zh) | 2016-03-09 | 2016-03-09 | 并行化光线投射方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610132493.3A CN105809731B (zh) | 2016-03-09 | 2016-03-09 | 并行化光线投射方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105809731A CN105809731A (zh) | 2016-07-27 |
CN105809731B true CN105809731B (zh) | 2018-10-19 |
Family
ID=56466903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610132493.3A Expired - Fee Related CN105809731B (zh) | 2016-03-09 | 2016-03-09 | 并行化光线投射方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105809731B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106296764B (zh) * | 2016-08-02 | 2023-03-17 | 上海联影医疗科技股份有限公司 | 图像重建方法及系统 |
US11308662B2 (en) | 2016-08-02 | 2022-04-19 | Shanghai United Imaging Healthcare Co., Ltd. | System and method for image reconstruction |
US10347014B2 (en) | 2016-08-02 | 2019-07-09 | Shanghai United Imaging Healthcare Co., Ltd. | System and method for image reconstruction |
CN106530385B (zh) | 2016-09-28 | 2017-07-21 | 山东科技大学 | 一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法 |
CN110223371B (zh) * | 2019-06-14 | 2020-12-01 | 北京理工大学 | 剪切波变换和体绘制不透明度加权的三维图像融合方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794460A (zh) * | 2010-03-09 | 2010-08-04 | 哈尔滨工业大学 | 基于光线投射体绘制算法的人体心脏三维解剖组织结构模型可视化方法 |
CN103714574A (zh) * | 2013-12-19 | 2014-04-09 | 浙江大学 | 一种基于gpu加速的海中场景建模与实时交互绘制方法 |
CN105006012A (zh) * | 2015-07-14 | 2015-10-28 | 山东易创电子有限公司 | 一种人体断层数据的体渲染方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2806197A1 (en) * | 2010-08-05 | 2012-02-09 | Exxonmobil Upstream Research Company | Obtaining data from an earth model using functional descriptors |
-
2016
- 2016-03-09 CN CN201610132493.3A patent/CN105809731B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794460A (zh) * | 2010-03-09 | 2010-08-04 | 哈尔滨工业大学 | 基于光线投射体绘制算法的人体心脏三维解剖组织结构模型可视化方法 |
CN103714574A (zh) * | 2013-12-19 | 2014-04-09 | 浙江大学 | 一种基于gpu加速的海中场景建模与实时交互绘制方法 |
CN105006012A (zh) * | 2015-07-14 | 2015-10-28 | 山东易创电子有限公司 | 一种人体断层数据的体渲染方法及系统 |
Non-Patent Citations (2)
Title |
---|
光线投射体绘制算法关键技术研究;孙薇薇;《中国优秀硕士学位论文全文数据库 信息科技辑》;20070915(第03期);第17页3.1节,第24页3.3节,图3-1 * |
基于一种简化的并行域遍历方法的体绘制算法;张江 等;《2013年全国高性能计算学术年会》;20131029;第4-6页第3.1节,图2 * |
Also Published As
Publication number | Publication date |
---|---|
CN105809731A (zh) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105809731B (zh) | 并行化光线投射方法、系统及装置 | |
US11715251B2 (en) | Neural network model trained using generated synthetic images | |
US11010516B2 (en) | Deep learning based identification of difficult to test nodes | |
US7355597B2 (en) | Method, apparatus and computer program product for the interactive rendering of multivalued volume data with layered complementary values | |
US20200151288A1 (en) | Deep Learning Testability Analysis with Graph Convolutional Networks | |
Schwarz et al. | Fast parallel surface and solid voxelization on GPUs | |
KR20180034557A (ko) | 2차원 어레이 프로세서의 성능 향상 | |
US9665943B2 (en) | Histogram-based image segmentation | |
CN107077828A (zh) | 对颜色查找表的大小进行压缩 | |
Günther et al. | scenery: Flexible virtual reality visualization on the Java VM | |
Liu et al. | GPU-based branchless distance-driven projection and backprojection | |
Maximo et al. | Hardware‐Assisted Projected Tetrahedra | |
DE102021121187A1 (de) | EINRICHTUNG UND VERFAHREN ZUR EFFIZIENTEN GRAFIKVERARBEITUNG EINSCHLIEßLICH STRAHLVERFOLGUNG | |
CN1776747A (zh) | 医学图像中基于gpu硬件加速的体绘制方法 | |
JP3960382B2 (ja) | テンソルボリュームデータの実時間可視化方法及び装置 | |
Mori et al. | Fast software-based volume rendering using multimedia instructions on PC platforms and its application to virtual endoscopy | |
Okuyan et al. | Direct volume rendering of unstructured tetrahedral meshes using CUDA and OpenMP | |
CN106683160A (zh) | 一种基于二维直方图的传递函数设计方法及装置 | |
Marroquim et al. | Gpu-based cell projection for interactive volume rendering | |
Udupa et al. | Go digital, go fuzzy | |
Zhou et al. | Pixel-exact rendering of spacetime finite element solutions | |
Juhasz et al. | A GPU-based soft real-time system for simultaneous EEG processing and visualization | |
Kalbe et al. | High-quality rendering of varying isosurfaces with cubic trivariate C 1-continuous splines | |
Varshini | A reconfigurable memory based fast VLSI architecture for histogram computation | |
Adeshina et al. | Hardware-accelerated raycasting: Towards an effective brain MRI visualization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181019 Termination date: 20210309 |
|
CF01 | Termination of patent right due to non-payment of annual fee |