CN106530385B - 一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法 - Google Patents
一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法 Download PDFInfo
- Publication number
- CN106530385B CN106530385B CN201610860044.0A CN201610860044A CN106530385B CN 106530385 B CN106530385 B CN 106530385B CN 201610860044 A CN201610860044 A CN 201610860044A CN 106530385 B CN106530385 B CN 106530385B
- Authority
- CN
- China
- Prior art keywords
- data
- repeated
- result
- visual lines
- viewpoint position
- 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
Links
- 238000012800 visualization Methods 0.000 title claims abstract description 19
- 230000003993 interaction Effects 0.000 title claims abstract description 18
- 238000003672 processing method Methods 0.000 title claims abstract description 8
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 title claims abstract 9
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 22
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 11
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 11
- 238000012952 Resampling Methods 0.000 claims abstract description 7
- 230000000007 visual effect Effects 0.000 claims description 41
- 230000015654 memory Effects 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 3
- 230000001133 acceleration Effects 0.000 abstract description 4
- 230000009467 reduction Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 238000009877 rendering Methods 0.000 description 3
- 210000003625 skull Anatomy 0.000 description 3
- VRDIULHPQTYCLN-UHFFFAOYSA-N Prothionamide Chemical compound CCCC1=CC(C(N)=S)=CC=N1 VRDIULHPQTYCLN-UHFFFAOYSA-N 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 210000002615 epidermis Anatomy 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 210000003491 skin Anatomy 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- 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
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/41—Medical
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/024—Multi-user, collaborative environment
Abstract
本发明涉及科学计算可视化技术领域,具体公开了一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法。本发明方法一方面使用Hadoop MapReduce和NVIDIA CUDA的并行处理能力,进行加速绘制,另一方面,针对多用户交互环境,本发明设计了一种避免重复计算的方法,减少重复计算耗时。本发明方法实现了对各像素点梯度、光线重采样和数据合成的快速运算,能够快速、高效的实现三维可视化成像。
Description
技术领域
本发明涉及科学计算可视化技术领域,特别是涉及一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法。
背景技术
随着MRI、PET、CT等现代医疗设备应用的快速发展,三维医学可视化已经广泛应用于医学诊断、辅助治疗、手术规划等领域。三维医学可视化体绘制技术因为其良好的“保真性”,具有很好的应用价值与前景。但随着医学数字图像精度和分辨率的显著提高,医学影像数据量快速增加,其超大规模的医学影像数据和超大计算量成为了计算机实现三维医学体绘制的瓶颈。目前,为了满足大规模的医学影像数据体绘制的超大计算量、多用户交互需要,近年来的研究主要集中于并行体绘制、基于GPU的硬件加速和GPU嵌入MapReduce的高效并行计算等几方面。S.Eilemann等通过设计并行体绘制来满足快速绘制的要求。南方医科大学生物医学工程学院董现玲等和浙江工业大学计算机科学与技术学院秦绪佳等设计的基于CUDA(Compute Unified Device Architecture)技术进行数据的存储和处理,实现了并行化的Ray-casting算法。Vo H T等设计的基于MapReduce的计算框架,实现了基于MapReduce的z-buffer绘制、并行网格简化以及等值面抽取等基础图形学算法。
虽然上述几种方法都达到了一定加速绘制效果,但均有一定的不足和缺点,例如:单一的CUDA处理,必须依靠NVIDIA显卡硬件提供支持,增加成本,并且单机绘制对速度提升有限;另外,大量重复数据的计算也增加了系统处理负担,浪费系统资源。
发明内容
本发明的目的在于提出一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法,能够快速、高效的实现三维可视化成像。
为了实现上述目的,本发明采用如下技术方案:
一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法,包括如下步骤:
步骤1:不同用户在本地处理前,需先获取绘制图像的数据信息;
其中,图像的数据包括如下参数:查询重复标识CX、切片数C、开始编号D、结束编号E、视线方向F、视点位置G、生成图像宽W、生成图像高H、重复类型CTYPE、重复切片数量CC、重复开始编号CD、重复结束编号CE和数据DATA;
步骤2:集群服务器master机器获取图像的数据,然后将该图像的数据与master机器中避免重复计算存储的数据比对,查询集群服务器是否有需要计算的数据结果;
其中,避免重复计算存储的数据包括如下参数:开始编号X、结束编号Y、视线方向L、视点位置M、使用次数N、时间T、禁替换标识NOREP和数据DATA0;
步骤2.1:判断集群中有无重复数据结果;
若:判断结果是有重复数据,则设置重复类型CTYPE为部分重复,数值为1,禁替换标识NOREP值加1,并执行步骤2.2;
或判断结果是无重复数据,则执行步骤3;
步骤2.2:判断数据结果是否为完全重复;
若:判断结果是完全重复,则重复类型CTYPE为完全重复,数值为2,并执行步骤11;
或判断结果是部分重复,则执行步骤3;
步骤3:读取对应不重复图像切片,建立三维数据场;
步骤4:使用AABB包围盒对三维数据场无效体素进行裁剪;
步骤5:使用NVIDIA CUDA对梯度进行处理;
步骤6:将处理完的数据传输至集群服务器master机器;
其中,处理完的数据包括如下参数:查询重复标识cx、切片数c、开始编号d、结束编号e、视线方向f、视点位置g、生成图像宽w、生成图像高h、重复类型ctype、重复切片数量cc、重复开始编号cd、重复结束编号ce和数据data;
步骤7:将接收到的步骤6中的数据与master机器中避免重复计算存储的数据进行对比,查询集群服务器中是否有接收到数据的计算结果;
其中,避免重复计算存储的数据包括如下参数:开始编号x、结束编号y、视线方向l、视点位置m、使用次数n、时间t、禁替换标识norep和数据data0;
步骤7.1:判断集群中有无重复数据结果;
若:判断结果是有重复数据,则读取对应存储的重复数据data0,禁替换标识norep减1,执行步骤7.2;
或判断结果是不含重复数据,则执行步骤8;
步骤7.2:判断数据结果是否为完全重复;
若:判断结果是完全重复,此时将完全重复数据存入数据data,禁替换标识norep减1,则执行步骤11;
或判断结果是部分重复,则执行步骤8;
步骤8:集群mapreduce并行计算处理;
步骤8.1:需要处理的不重复数据data上传至HDFS;
步骤8.2:master机器将数据以分片方式划分成多个子数据分发到各slave机器处理;
步骤8.3:各slave机器分别处理光线合成和重采样任务,保存生成结果;
步骤8.4:从HDFS下载生成结果读取至master机器内存;
步骤9:判断有无数据合并;
若:判断结果是有数据合并,则重复数据data0与生成结果合成为最终结果;
或判断结果是没有数据合并,则执行步骤10;
步骤10:采用最近最久未使用原则对重复数据data0进行替换;
步骤11:将数据data传回用户;
步骤12:输出显示生成的二维图像;
步骤13:判断是否切换视线方向f;
若:判断结果是切换视线方向,则执行步骤2;
或判断结果是不切换视线方向,则结束。
优选地,在步骤2.1中,判断集群中有无重复数据结果的具体过程如下:
若同时满足以下条件,即:开始编号D≤开始编号X<结束编号Y≤结束编号E、视线方向F=视线方向L、视点位置G=视点位置M,即含有重复数据;否则,判断为无重复数据;
在步骤2.2中,判断集群中数据结果是否为完全重复的具体过程如下:
若同时满足以下条件,即:开始编号D=开始编号X、结束编号Y=结束编号E、视线方向F=视线方向L、视点位置G=视点位置M,即完全重复;否则,判断为部分重复。
优选地,在步骤5中,具体包括:
步骤5.1:申请GPU显存空间cuinArray、cuoutArray;其中,显存空间cuinArray用于存放传入数据,显存空间cuoutArray用于存储生成的传出数据;
步骤5.2:将裁剪后的三维数据场拷贝至GPU显存空间cuinArray;
步骤5.3:使用纹理存储器将显存空间cuinArray内的数据与3d texture纹理绑定;
步骤5.4:Kernel函数中进行多线程数据处理,计算各像素点梯度值greyxyz,计算处理完后将结果存至GPU显存空间cuoutArray;
步骤5.5:将GPU显存空间cuoutArray内的数据拷贝至主机内存,解除纹理绑定,释放占用的显存空间cuinArray、cuoutArray。
优选地,在步骤7.1中,判断集群中有无重复数据结果的具体过程如下:
若同时满足以下条件,即:开始编号d≤开始编号x<结束编号y≤结束编号e、视线方向f=视线方向l、视点位置g=视点位置m,即含有重复数据;否则,判断为无重复数据;
在步骤7.2中,判断集群中数据结果是否为完全重复的具体过程如下:
若同时满足以下条件,即:开始编号d=开始编号x、结束编号y=结束编号e、视线方向f=视线方向l、视点位置g=视点位置m,即完全重复;否则,判断为部分重复。
优选地,在步骤9中,有无数据合并的具体判断过程如下:
若同时满足以下条件,即:开始编号d<开始编号x<结束编号y<结束编号e、视线方向f=视线方向l、视点位置g=视点位置m,判断为有数据合并;否则,判断为没有数据合并。
与现有技术相比,本发明方法具有如下优点:
本发明方法一方面使用Hadoop MapReduce和NVIDIA CUDA的并行处理能力,进行加速绘制,另一方面,针对多用户交互环境,设计了一种避免重复计算的方法,减少重复计算耗时。本发明方法实现了对各像素点梯度、光线重采样和数据合成的快速运算。
附图说明
图1为本发明中基于Hadoop和CUDA的光线投射可视化多用户交互处理方法的流程图。
图2为本发明中数据集的部分切片图。
图3为本发明中三维数据场原始部分的数据截图。
图4为本发明中使用AABB包围盒对三维数据场进行裁剪的示意图。
图5为本发明中使用NVIDIA CUDA对梯度计算后的部分截图。
图6为本发明中光线采样合成后的部分数据截图。
图7为使用本发明方法生成的头骨骨骼图像。
图8为使用本发明方法生成的头骨表皮图像。
图9为图1中流程图的A部区域放大图。
图10为图1中流程图的B部区域放大图。
图11为图1中流程图的C部区域放大图。
图12为图1中流程图的D部区域放大图。
图13为图1中流程图的E部区域放大图。
具体实施方式
下面结合附图以及具体实施方式对本发明作进一步详细说明:
如图1所示,一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法,包括如下步骤:
步骤1:不同用户在本地处理前,需先获取绘制图像的数据cxdata信息。
其中,图像的数据cxdata包括如下参数:查询重复标识CX、切片数C、开始编号D、结束编号E、视线方向F、视点位置G、生成图像宽W、生成图像高H、重复类型CTYPE、重复切片数量CC、重复开始编号CD、重复结束编号CE和数据DATA。
步骤2:集群服务器master机器获取图像的数据cxdata,然后将数据cxdata与master机器中避免重复计算存储的数据比对,查询集群服务器是否有需要计算的数据结果。
其中,避免重复计算存储的数据ComposedResult包括如下参数:开始编号X、结束编号Y、视线方向L、视点位置M、使用次数N、时间T、禁替换标识NOREP和数据DATA0。
步骤2.1:判断集群中有无重复数据结果,具体判断过程如下:
若同时满足以下条件,即:开始编号D≤开始编号X<结束编号Y≤结束编号E、视线方向F=视线方向L、视点位置G=视点位置M,即含有重复数据;否则,判断为无重复数据。
经过判断,若:判断结果是有重复数据,则设置重复类型CTYPE为部分重复,数值为1,禁替换标识NOREP值加1,并执行步骤2.2;
或判断结果是无重复数据,则执行步骤3。
步骤2.2:判断数据结果是否为完全重复,具体判断过程如下:
若同时满足以下条件,即:开始编号D=开始编号X、结束编号Y=结束编号E、视线方向F=视线方向L、视点位置G=视点位置M,即完全重复;否则,判断为部分重复。
经过判断,若:判断结果是完全重复,则重复类型CTYPE为完全重复,数值为2,并执行步骤11;
或判断结果是部分重复,则执行步骤3。
步骤3:读取Visible Human数据集中头部CT切片图像,数据集部分切片图的图像如图2所示,建立三维数据场pDataField。
步骤4:使用AABB包围盒对三维数据场pDataField无效体素进行裁剪,裁剪后每张切片从587*341减为303*287,原始部分数据如图3所示,裁剪示意图如图4所示。
步骤5:使用NVIDIA CUDA对梯度进行处理,部分结果数据图如图5所示。
该步骤5具体包括:
步骤5.1:申请GPU显存空间cuinArray、cuoutArray;其中,显存空间cuinArray用于存放传入数据,显存空间cuoutArray用于存储生成的传出数据。
步骤5.2:将裁剪后的三维数据场pDataField使用cudaMemcpy3D拷贝至GPU显存空间cuinArray。
步骤5.3:使用纹理存储器将显存空间cuinArray内的数据与3d texture纹理使用cudaBindTextureToArray()函数绑定,纹理坐标方式为非归一化,纹理寻址方式为cudaAddressModeClamp。
步骤5.4:Kernel函数中进行多线程数据处理,计算各像素点梯度值greyxyz,计算处理完后将结果存至GPU显存空间cuoutArray。
kernel函数中进行多线程数据处理,使用tex3D(texRef,x,y,z)拾取纹理,x、y、z为纹理拾取坐标,采用中心差分方法计算各像素点梯度值,对体素voxel(i,j,k),计算公式为:
式中,f(i,j,k)为体素voxel(i,j,k)处的灰度值,Δs为一特定常量。
步骤5.5:将GPU显存空间cuoutArray内的数据拷贝至主机内存,解除纹理绑定,释放占用的显存空间cuinArray、cuoutArray。
步骤6:将处理完的数据传输至集群服务器master机器。
其中,处理完的数据包括如下参数:查询重复标识cx、切片数c、开始编号d、结束编号e、视线方向f、视点位置g、生成图像宽w、生成图像高h、重复类型ctype、重复切片数量cc、重复开始编号cd、重复结束编号ce和数据data。
步骤7:将接收到的步骤6中的数据与master机器中避免重复计算存储的数据进行对比,查询集群服务器中是否有接收到数据的计算结果。
其中,避免重复计算存储的数据ComposedResult包括如下参数:开始编号x、结束编号y、视线方向l、视点位置m、使用次数n、时间t、禁替换标识norep和数据data0。
步骤7.1:判断集群中有无重复数据结果,具体判断过程如下:
若同时满足以下条件,即:开始编号d≤开始编号x<结束编号y≤结束编号e、视线方向f=视线方向l、视点位置g=视点位置m,即含有重复数据;否则,判断为无重复数据。
经过判断,若:判断结果是有重复数据,则读取对应存储的重复数据data0,禁替换标识norep减1,执行步骤7.2;
或判断结果是不含重复数据,则执行步骤8。
步骤7.2:判断数据结果是否为完全重复,具体判断过程如下:
若同时满足以下条件,即:开始编号d=开始编号x、结束编号y=结束编号e、视线方向f=视线方向l、视点位置g=视点位置m,即完全重复;否则,判断为部分重复。
经过判断,若:判断结果是完全重复,此时将完全重复数据存入数据data,禁替换标识norep减1,则执行步骤11;
或判断结果是部分重复,则执行步骤8。
步骤8:集群mapreduce并行计算处理,采样合成后部分数据如图6所示。
该步骤8具体包括:
步骤8.1:需要处理的不重复数据data上传至HDFS。
步骤8.2:master机器将数据以分片方式划分成多个子数据分发到各slave机器处理。
每个子数据都含有起始采样点、采样间距和图像中对应像素坐标等信息,每个子节点对应一个子任务,子任务分配给不同的slave机器节点进行光线合成和重采样计算处理,最后进行图像合成。作业调度机制设置为公平调度,使提交的作业均能获取计算资源,让不同用户公平地共享集群,避免长时间等待。
步骤8.3:各slave机器,例如图1中Slave1、Slave2、Slave3分别处理光线合成和重采样任务,保存生成结果dataout1。
光线合成采用从后向前,计算公式:Cout(i)=Cin(i)*(1-Anow(i))+Cnow(i)*Anow(i);
其中,Cnow(i)是体素i的灰度值,Anow(i)是不透明度,Cin(i)为进入采样点i的灰度值,Cout(i)是经过采样点i后的灰度值。
重采样采用三线性插值方法,计算公式:vp=v0(1-x)(1-y)(1-z)+v1(1-x)y(1-z)+v2(1-x)(1-y)z+v3(1-x)yz+v4x(1-y)(1-z)+v5xy(1-z)+v6x(1-y)z+v7xyz;
其中,vp是要计算的采样点P(x,y,z)的值,v0到v7是采样点所在体素的立方体网格单元的8个顶点上已知的数值。
步骤8.4:从HDFS下载生成结果dataout1读取至master机器内存。
步骤9:判断有无数据合并,具体判断过程如下:若同时满足以下条件,
即:开始编号d<开始编号x<结束编号y<结束编号e、视线方向f=视线方向l、视点位置g=视点位置m,即有部分数据重复,此时有数据合并;否则,判断为没有数据合并。
经过判断,若判断结果是有数据合并,则重复数据data0与生成结果dataout1合成为最终结果data;
或判断结果是没有数据合并,则执行步骤10。
步骤10:采用最近最久未使用原则对重复数据data0进行替换。
集群处理完一次数据后,替换一个之前保存过的数据data0。首先读取禁替换标识,数值大于零,则不予替换。然后,采用使用次数n最小原则。若使用次数n相同,则按照最新一次保存或读取使用的时间t最久原则替换。
步骤11:将数据data传回用户;
步骤12:输出显示生成的二维图像;
步骤13:判断是否切换视线方向f;
若:判断结果是切换视线方向,则执行步骤2;
或判断结果是不切换视线方向,则结束。
需要说明的是,由于图1中对应于用户2以及用户3中的标记有①的框图内处理过程与对应于用户1的标记有①的框图内处理过程相同,因此未示出。
此外,为了便于对图1中给出的流程图进行识别,本发明还将图1由上到下分成A、B、C、D、E五块区域,并分别给出了各块区域的放大图,如图9-图13所示。
结合实际情况,本发明方法实验所用的计算机配置如下:
本机配置:酷睿i3-370双核四线程处理器,内存3GB,显卡NVIDIA GeForceGT420M,显存1GB,Windows 764位操作系统;
集群配置:在酷睿i7-4790四核八线程处理器,内存8GB,Windows 764位操作系统上使用Vmware Workstation 11虚拟机建立4个节点,master机器配置双核处理器,1.5GB内存,20GB硬盘,3个slave机器配置单核处理器,1GB内存,20GB硬盘,4个机器节点均使用ubuntu 14.04操作系统,安装hadoop 2.60。
此外,本发明还给出了单机处理和本发明方法处理运行时间对比表,如表1所示,图7和图8是本发明方法所生成头骨骨骼和表皮的图像结果图。
表1
由上述实验结果对比可以发现,本发明的光线投射可视化多用户交互处理方法,一方面使用NVIDIA CUDA和Hadoop MapReduce的并行处理能力,加速绘制速度,实现了各像素点梯度、光线重采样和数据合成的快速运算;另一方面,针对多用户交互环境,设计了一种避免重复计算的方法,减少重复计算耗时和系统资源浪费,提升了绘制效率。
当然,以上说明仅仅为本发明的较佳实施例,本发明并不限于列举上述实施例,应当说明的是,任何熟悉本领域的技术人员在本说明书的教导下,所做出的所有等同替代、明显变形形式,均落在本说明书的实质范围之内,理应受到本发明的保护。
Claims (5)
1.一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法,其特征在于,包括如下步骤:
步骤1:不同用户在本地处理前,需先获取绘制图像的数据信息;
其中,图像的数据包括如下参数:查询重复标识CX、切片数C、开始编号D、结束编号E、视线方向F、视点位置G、生成图像宽W、生成图像高H、重复类型CTYPE、重复切片数量CC、重复开始编号CD、重复结束编号CE和数据DATA;
步骤2:集群服务器master机器获取图像的数据,然后将该图像的数据与master机器中避免重复计算存储的数据比对,查询集群服务器是否有需要计算的数据结果;
其中,避免重复计算存储的数据包括如下参数:开始编号X、结束编号Y、视线方向L、视点位置M、使用次数N、时间T、禁替换标识NOREP和数据DATA0;
步骤2.1:判断集群中有无重复数据结果;
若:判断结果是有重复数据,则设置重复类型CTYPE为部分重复,数值为1,禁替换标识NOREP值加1,并执行步骤2.2;
或判断结果是无重复数据,则执行步骤3;
步骤2.2:判断数据结果是否为完全重复;
若:判断结果是完全重复,则重复类型CTYPE为完全重复,数值为2,并执行步骤11;
或判断结果是部分重复,则执行步骤3;
步骤3:读取对应不重复图像切片,建立三维数据场;
步骤4:使用AABB包围盒对三维数据场无效体素进行裁剪;
步骤5:使用NVIDIA CUDA对梯度进行处理;
步骤6:将处理完的数据传输至集群服务器master机器;
其中,处理完的数据包括如下参数:查询重复标识cx、切片数c、开始编号d、结束编号e、视线方向f、视点位置g、生成图像宽w、生成图像高h、重复类型ctype、重复切片数量cc、重复开始编号cd、重复结束编号ce和数据data;
步骤7:将接收到的步骤6中的数据与master机器中避免重复计算存储的数据进行对比,查询集群服务器中是否有接收到数据的计算结果;
其中,避免重复计算存储的数据包括如下参数:开始编号x、结束编号y、视线方向l、视点位置m、使用次数n、时间t、禁替换标识norep和数据data0;
步骤7.1:判断集群中有无重复数据结果;
若:判断结果是有重复数据,则读取对应存储的重复数据data0,禁替换标识norep减1,执行步骤7.2;
或判断结果是不含重复数据,则执行步骤8;
步骤7.2:判断数据结果是否为完全重复;
若:判断结果是完全重复,此时将完全重复数据存入数据data,禁替换标识norep减1,则执行步骤11;
或判断结果是部分重复,则执行步骤8;
步骤8:集群mapreduce并行计算处理;
步骤8.1:需要处理的不重复数据data上传至HDFS;
步骤8.2:master机器将数据以分片方式划分成多个子数据分发到各slave机器处理;
步骤8.3:各slave机器分别处理光线合成和重采样任务,保存生成结果;
步骤8.4:从HDFS下载生成结果读取至master机器内存;
步骤9:判断有无数据合并;
若:判断结果是有数据合并,则重复数据data0与生成结果合成为最终结果;
或判断结果是没有数据合并,则执行步骤10;
步骤10:采用最近最久未使用原则对重复数据data0进行替换;
步骤11:将数据data传回用户;
步骤12:输出显示生成的二维图像;
步骤13:判断是否切换视线方向f;
若:判断结果是切换视线方向,则执行步骤2;
或判断结果是不切换视线方向,则结束。
2.根据权利要求1所述的一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法,其特征在于:在步骤2.1中,判断集群中有无重复数据结果的具体过程如下:
若同时满足以下条件,即:开始编号D≤开始编号X<结束编号Y≤结束编号E、视线方向F=视线方向L、视点位置G=视点位置M,即含有重复数据;否则,判断为无重复数据;
在步骤2.2中,判断集群中数据结果是否为完全重复的具体过程如下:
若同时满足以下条件,即:开始编号D=开始编号X、结束编号Y=结束编号E、视线方向F=视线方向L、视点位置G=视点位置M,即完全重复;否则,判断为部分重复。
3.根据权利要求1所述的一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法,其特征在于:在步骤5中,具体包括:
步骤5.1:申请GPU显存空间cuinArray、cuoutArray;其中,显存空间cuinArray用于存放传入数据,显存空间cuoutArray用于存储生成的传出数据;
步骤5.2:将裁剪后的三维数据场拷贝至GPU显存空间cuinArray;
步骤5.3:使用纹理存储器将显存空间cuinArray内的数据与3d texture纹理绑定;
步骤5.4:Kernel函数中进行多线程数据处理,计算各像素点梯度值greyxyz,计算处理完后将结果存至GPU显存空间cuoutArray;
步骤5.5:将GPU显存空间cuoutArray内的数据拷贝至主机内存,解除纹理绑定,释放占用的显存空间cuinArray、cuoutArray。
4.根据权利要求1所述的一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法,其特征在于:在步骤7.1中,判断集群中有无重复数据结果的具体过程如下:
若同时满足以下条件,即:开始编号d≤开始编号x<结束编号y≤结束编号e、视线方向f=视线方向l、视点位置g=视点位置m,即含有重复数据;否则,判断为无重复数据;
在步骤7.2中,判断集群中数据结果是否为完全重复的具体过程如下:
若同时满足以下条件,即:开始编号d=开始编号x、结束编号y=结束编号e、视线方向f=视线方向l、视点位置g=视点位置m,即完全重复;否则,判断为部分重复。
5.根据权利要求1所述的一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法,其特征在于:在步骤9中,有无数据合并的具体判断过程如下:
若同时满足以下条件,即:开始编号d<开始编号x<结束编号y<结束编号e、视线方向f=视线方向l、视点位置g=视点位置m,判断为有数据合并;否则,判断为没有数据合并。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610860044.0A CN106530385B (zh) | 2016-09-28 | 2016-09-28 | 一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法 |
US15/715,367 US9953396B1 (en) | 2016-09-28 | 2017-09-26 | Ray casting visualization multi-user interaction processing method based on hadoop and CUDA |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610860044.0A CN106530385B (zh) | 2016-09-28 | 2016-09-28 | 一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106530385A CN106530385A (zh) | 2017-03-22 |
CN106530385B true CN106530385B (zh) | 2017-07-21 |
Family
ID=58344317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610860044.0A Active CN106530385B (zh) | 2016-09-28 | 2016-09-28 | 一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9953396B1 (zh) |
CN (1) | CN106530385B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104299254A (zh) * | 2013-07-19 | 2015-01-21 | 南京普爱射线影像设备有限公司 | 一种基于cuda的移动式c形臂三维可视化方法 |
CN105809731A (zh) * | 2016-03-09 | 2016-07-27 | 哈尔滨工业大学深圳研究生院 | 并行化光线投射方法、系统及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7301538B2 (en) * | 2003-08-18 | 2007-11-27 | Fovia, Inc. | Method and system for adaptive direct volume rendering |
DE102008003878B3 (de) * | 2008-01-10 | 2009-04-30 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zur Visualisierung von 3D-Bilddaten der tomographischen Bildgebung |
-
2016
- 2016-09-28 CN CN201610860044.0A patent/CN106530385B/zh active Active
-
2017
- 2017-09-26 US US15/715,367 patent/US9953396B1/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104299254A (zh) * | 2013-07-19 | 2015-01-21 | 南京普爱射线影像设备有限公司 | 一种基于cuda的移动式c形臂三维可视化方法 |
CN105809731A (zh) * | 2016-03-09 | 2016-07-27 | 哈尔滨工业大学深圳研究生院 | 并行化光线投射方法、系统及装置 |
Also Published As
Publication number | Publication date |
---|---|
US9953396B1 (en) | 2018-04-24 |
US20180108107A1 (en) | 2018-04-19 |
CN106530385A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105405103B (zh) | 通过在空间上和/或在时间上改变采样模式增强抗锯齿 | |
US7333107B2 (en) | Volume rendering apparatus and process | |
Smelyanskiy et al. | Mapping high-fidelity volume rendering for medical imaging to CPU, GPU and many-core architectures | |
CN103810669B (zh) | 在统一l2高速缓存中高速缓存经适应性定制大小的高速缓存像素块 | |
CN101324962B (zh) | 一种预投影光线投射体绘制的并行处理方法 | |
JP4588736B2 (ja) | 画像処理方法および装置並びにプログラム | |
TW200425718A (en) | Image rendering device and image rendering method | |
US20050237336A1 (en) | Method and system for multi-object volumetric data visualization | |
DE102016122297A1 (de) | Mehrfach-Durchlauf-Rendering in einer Bildschirm-Raum-Pipeline | |
Gumbau et al. | View-dependent pruning for real-time rendering of trees | |
JP4885042B2 (ja) | 画像処理方法および装置ならびにプログラム | |
WO2007052394A1 (ja) | 描画処理装置、並列処理装置および排他制御方法 | |
CN106796536A (zh) | 用于多操作系统的内存访问方法、装置和电子设备 | |
Ciżnicki et al. | Efficient isosurface extraction using marching tetrahedra and histogram pyramids on multiple GPUs | |
CN106530385B (zh) | 一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法 | |
CN103745495A (zh) | 基于医学体数据的体绘制方法 | |
Xue et al. | Efficient volume rendering methods for out-of-Core datasets by semi-adaptive partitioning | |
Bruckner | Efficient volume visualization of large medical datasets | |
Parsonson et al. | Medical Imaging in a Cloud Computing Environment. | |
JP2023529730A (ja) | 磁気共鳴スキャナのシミュレーション方法 | |
CN106384377B (zh) | 医学数据的体绘制方法和装置 | |
Al-Oraiqat et al. | Specialized Computer systems for environment visualization | |
Weber et al. | Visualization tools for adaptive mesh refinement data | |
Meyer et al. | Data-Parallel Hierarchical Link Creation for Radiosity. | |
US20170337677A1 (en) | Statistic information-based ray casting acceleration method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |