一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法技术

技术编号:14884207 阅读:59 留言:0更新日期:2017-03-24 22:28
本发明专利技术涉及科学计算可视化技术领域,具体公开了一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法。本发明专利技术方法一方面使用Hadoop MapReduce和NVIDIA CUDA的并行处理能力,进行加速绘制,另一方面,针对多用户交互环境,本发明专利技术设计了一种避免重复计算的方法,减少重复计算耗时。本发明专利技术方法实现了对各像素点梯度、光线重采样和数据合成的快速运算,能够快速、高效的实现三维可视化成像。

【技术实现步骤摘要】

本专利技术涉及科学计算可视化
,特别是涉及一种基于Hadoop和CUDA的光线投射可视化多用户交互处理方法
技术介绍
随着MRI、PET、CT等现代医疗设备应用的快速发展,三维医学可视化已经广泛应用于医学诊断、辅助治疗、手术规划等领域。三维医学可视化体绘制技术因为其良好的“保真性”,具有很好的应用价值与前景。但随着医学数字图像精度和分辨率的显著提高,医学影像数据量快速增加,其超大规模的医学影像数据和超大计算量成为了计算机实现三维医学体绘制的瓶颈。目前,为了满足大规模的医学影像数据体绘制的超大计算量、多用户交互需要,近年来的研究主要集中于并行体绘制、基于GPU的硬件加速和GPU嵌入MapReduce的高效并行计算等几方面。S.Eilemann等通过设计并行体绘制来满足快速绘制的要求。南方医科大学生物医学工程学院董现玲等和浙江工业大学计算机科学与技术学院秦绪佳等设计的基于CUDA(ComputeUnifiedDeviceArchitecture)技术进行数据的存储和处理,实现了并行化的Ray-casting算法。VoHT等设计的基于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:使用NVIDIACUDA对梯度进行处理;步骤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内的数据与3dtexture纹理绑定;步骤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、视点位本文档来自技高网...
一种基于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;或判断结果是不切换视线方向,则结束。...

【技术特征摘要】
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:使用NVIDIACUDA对梯度进行处理;步骤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:判断有无数据合并;若:判断结果是有数据合并,则重复数...

【专利技术属性】
技术研发人员:彭延军于佳玮王元红贾瑞生卢新明
申请(专利权)人:山东科技大学
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1