一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种神经外科手术中导航加速处理方法及设备

2022-12-10 17:32:52 来源:中国专利 TAG:


1.本技术涉及医疗器械领域,尤其涉及神经外科手术中导航加速处理方法及设备。


背景技术:

2.神经系统作为人体八大系统之一,维持着人体的统一,使人体能够和外界环境相适应,神经系统分为包括脑和脊髓的中枢神经系统以及包括脑神经、脊神经和内脏神经的周围神经系统,神经系统疾病会严重影响人体的正常功能。随着科学技术水平的不断进步,微创治疗神经系统疾病在神经外科手术中的比重逐渐增加,微创治疗具有创伤小、恢复快等优点,相较于以前的神经系统手术更容易被患者接受。
3.神经内镜的发展经历了多个阶段,早期并没有专业的神经内镜,而是采用其他科室的内窥镜,后来出现了专业的神经内窥镜。神经内窥镜作为神经外科微创神经手术的重要设备,其成像质量、成像速度以及精准度也在不断提高。近年来随着神经导航技术的不断发展,采用神经导航的神经内窥镜逐渐普及。神经导航类似卫星导航,精确度基本满足神经外科手术的要求,可以准确确定病变的位置和边界。神经导航也有计算过程复杂、计算量大的不足之处,目前很多学者以及科研院所都对神经导航提出了改进,但是计算速度和成像质量、精准度是相互矛盾的,提高了计算速度,成像质量、精准度就会有所降低,反之亦然,如何在提高神经外科手术中神经导航的处理速度是本领域亟待解决的技术问题。


技术实现要素:

4.为了解决上述问题,本发明提供了一种神经外科手术中导航加速处理方法,所述方法包括以下步骤:
5.步骤1,获取cpu利用率及gpu空闲内存,若cpu利用率大于第三阈值且gpu空闲内存大于体数据大小,则在gpu上执行步骤2,否则在cpu上执行步骤2;所述第三阈值与所述像素点个数反相关。
6.步骤2,获取待成像平面的像素点个数,由每个像素点沿着视线方向发出一条投影射线,在投影射线上按照预设方式采集体数据上k个采样点,将位于同一个体素的采样点归作为一个采样点分组;
7.步骤3,根据所述采样点分组个数,设置grid中包括的block个数m,以及每个block包括的线程个数n,将所述采样点分组分配给m*n个线程,根据gpu中每个sm的负载将block分配给sm;block中的gpu线程通过三线性插值方法计算每个采样点的颜色值和透明度;
8.步骤4,由cpu根据所述每个采样点的颜色值和透明度得到所述待成像平面上每个像素点的值。
9.优选地,所述在投影射线上按照预设方式采集体数据上k个采样点,具体为:
10.获取gpu的负载r,若所述gpu的负载小于等于第一阈值r
t
且旋转三维图像的频率小于第二阈值,则以第一个采样点为原点,每隔lr的距离采样一次;否则,以第一个采样点为原点,按照下式计算距离前一个采样点的距离:
[0011][0012]
其中,k为正整数。
[0013]
优选地,所述在投影射线上按照预设方式采集体数据上k个采样点,还包括:若旋转后预设值时间内没有旋转三维图像,则在gpu的负载小于等于第一阈值时,则第一个采样点为原点,每隔lr的距离采样一次,重新计算每个像素点的值。
[0014]
优选地,所述根据所述采样点分组个数,设置grid中包括的block个数m,以及每个block包括的线程个数n,具体为:设n=32j,计算出j、m使得32j*m大于且最接近采样点分组个数;所述j=1、2、...、16,m为正整数。
[0015]
优选地,所述根据gpu中每个sm的负载将block分配给sm,具体为:
[0016]
计算每个block待计算量,所述待计算量其中n为block包括的线程个数,z表示与线程对应的采样点分组所包括的采样点个数;
[0017]
按照每个block待计算量对block从大到小的顺序排序得到block序列,并按照sm的负载从小到大的顺序进行排序得到sm序列,每次将block序列的第一个block分配给sm序列的第一个,然后重新对sm排序,再将block序列的第一个block分配给sm序列的第一个,依次类推,直到block序列中的block全部分给sm。
[0018]
优选地,在所述按照预设方式采集体数据上k个采样点前,先对体数据进行预处理,所述预处理至少包括滤波、去噪。
[0019]
另外,本发明还提供了一种神经外科手术中导航加速处理设备,所述设备至少包括处理器cpu、存储器、gpu,所述设备还包括以下模块:
[0020]
判断模块,用于获取cpu利用率及gpu空闲内存,若cpu利用率大于第三阈值且gpu空闲内存大于体数据大小,则在gpu上执行所述采集模块,否则在cpu上执行所述采集模块;所述第三阈值与所述像素点个数反相关;
[0021]
采样模块,用于获取待成像平面的像素点个数,由每个像素点沿着视线方向发出一条投影射线,在投影射线上按照预设方式采集体数据上k个采样点,将位于同一个体素的采样点归作为一个采样点分组;
[0022]
gpu并行计算模块,用于根据所述采样点分组个数,设置grid中包括的block个数m,以及每个block包括的线程个数n,将所述采样点分组分配给m*n个线程,根据gpu中每个sm的负载将block分配给sm;block中的gpu线程通过三线性插值方法计算每个采样点的颜色值和透明度;
[0023]
平面成像模块,用于由cpu根据所述每个采样点的颜色值和透明度得到所述待成像平面上每个像素点的值。
[0024]
优选地,所述在投影射线上按照预设方式采集体数据上k个采样点,具体为:
[0025]
获取gpu的负载r,若所述gpu的负载小于等于第一阈值r
t
且旋转三维图像的频率小于第二阈值,则以第一个采样点为原点,每隔lr的距离采样一次;否则,以第一个采样点为原点,按照下式计算距离前一个采样点的距离:
[0026][0027]
其中,k为正整数。
[0028]
优选地,所述设备连接定位仪、探针和显示设备。
[0029]
本发明根据采样点是否位于同一个体数据的体素中,对神经导航系统中的三线性插值计算的过程进行调整,提高了神经导航系统中三维可视化处理速度,同时对采样方式进行了改进,在满足医生需要的情况下,增强了神经外科手术中神经导航系统的处理效率。本发明具有以下效果:
[0030]
1.节省了光线投影中计算最为费时的三线性插值的运算时间。将光线投影中的特征点按照体素进行了分组,位于同一个体素的采样点分为一组,将其分配给一个gpu线程,该gpu线程由于存储同一个体素的数据,节省了gpu的缓存空间,而且提高了光线投影中,三线性插值的运算速度。
[0031]
2.对光线投影中的采样方式进行了改进,在gpu负载高且频繁旋转三维视图时,减少采样点,以此提高三维可视化速度,避免了在查看病灶区域三维视图时出现的卡顿以及延迟等问题。
[0032]
3.通过block待计算量的计算,实现了gpu中sm负载均衡。
附图说明
[0033]
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034]
图1为光线投影示意图;
[0035]
图2为体数据与体素示意图;
[0036]
图3为gpu中grid、block示意图;
[0037]
图4为采样点分组与gpu线程对应关系示例图;
[0038]
图5为基于光线投影的三维重建方法流程图。
具体实施方式
[0039]
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0040]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]
神经外科导航系统是神经外科进行手术的关键技术,通过神经导航可以准确确定病灶位置,并进行手术,相比于依靠医生经验手术,具有更高的精确性。神经导航手术的一般过程是:通过ct或者mri扫描病灶区域,并根据扫描的图像建立三维图,然后通过空间定位和图像配准等建立病人手术位置和三维图的对应关系,通过手术规划实现术中导航。
[0042]
其中三维图可视化是将ct或者mri扫描的图像构建三维后,在显示器上显示,由于医护人员需要查看病灶位置的情况,在手术开始前,需要查看三维图,每改变一次观察角度或者放大、缩小观察区域,都需要重新进行三维可视化计算,而这个计算过程又较为复杂,会消耗大量系统资源。
[0043]
光线投影是三维可视化中应用最广泛的技术,其原理是从一个像素点发出一条射线,该射线穿过体数据,在该条射线上采集特征点,然后根据采集的特征点计算该像素点的像素值,当所有像素点的像素值都计算后,即可拼接成一整图片,这也即三维图像可视化,如图1所示。本发明针对三维可视化的光线投影过程进行改进,提高了系统资源利用率,避免了查看过程卡顿等问题。
[0044]
实施例一
[0045]
本发明提供了一种神经外科手术中导航加速处理方法,所述方法包括以下步骤:
[0046]
步骤1,获取cpu利用率及gpu空闲内存,若cpu利用率大于第三阈值且gpu空闲内存大于体数据大小,则在gpu上执行步骤2,否则在cpu上执行步骤2;所述第三阈值与所述像素点个数反相关;
[0047]
步骤2,获取待成像平面的像素点个数,由每个像素点沿着视线方向发出一条投影射线,在投影射线上按照预设方式采集体数据上k个采样点,将位于同一个体素的采样点归作为一个采样点分组;
[0048]
体数据由体素组成,体素是体数据最小的组成单位,如图2所示。例如一个示例性的体数据包括512*512*36个体素,每个体素表示病灶区域的空间大小为1mm*1mm*1mm,本发明的体数据来自ct或者mri扫描断层。
[0049]
由于体素和在屏幕上显示的像素点并不是一一对应的,有可能一个体素映射成多个像素点,如图2所示,由三个像素点发出的射线都会在一个体素中采集数据,而光线投影的三线性插值又会用到该体素,为了节省内存和缓存,本发明将位于同一个体素的采样点归为一组,在图2中三条射线同时对一个体素中采集特征点
①②③
,则在光线投影中的三线性插值计算中将
①②③
归为一组。
[0050]
步骤3,根据所述采样点分组个数,设置grid中包括的block个数m,以及每个block包括的线程个数n,将所述采样点分组分配给m*n个线程,根据gpu中每个sm的负载将block分配给sm;block中的gpu线程通过三线性插值方法计算每个采样点的颜色值和透明度;
[0051]
cpu中通过kernel函数可以调用gpu执行并行任务,一个kernel对应一个grid,一个grid包括若干block,每个block包括若干thread,在gpu进行调度时,会以block为单位将block调度到sm(streaming multiprocessor)中,gpu在硬件上分为若干sm,每个sm包括若干sp(streaming processor)。在curd编程中,通过_global_定义gpu并行的函数,在程序中调用该函数时,需要设置block和每个block包含线程的个数。
[0052]
由于位于一组的采样点的体素相同,在三线性插值时,通过将位于一组的采样点分配给一个gpu线程,可以提高gpu线程计算三线性插值的速度,依次提高三维可视化的效率。
[0053]
步骤4,由cpu根据所述每个采样点的颜色值和透明度得到所述待成像平面上每个像素点的值。
[0054]
在所有采样点计算后,按照由后向前或是由前向后的方式合成屏幕或显示器上图片的像素值。
[0055]
采样点越多需要进行三线性插值计算的点越多,计算量也越大,但是在医生查看三维图像时,有时候并不需要很清晰的图片,例如医生频繁旋转三维图像,查看是否存在ct或mri扫描缺陷地方。而在仔细查看以及在手术中,需要获得更多的细节。基于此,本发明还会根据gpu的负载和旋转三维图像的频率确定采样的方式。具体地,所述在投影射线上按照预设方式采集体数据上k个采样点,具体为:
[0056]
获取gpu的负载r,若所述gpu的负载小于等于第一阈值r
t
且旋转三维图像的频率小于第二阈值,则以第一个采样点为原点,每隔lr的距离采样一次;否则,以第一个采样点为原点,按照下式计算距离前一个采样点的距离:
[0057][0058]
其中,k为正整数。
[0059]
例如当前gpu的负载较小,而且旋转频率低,说明在进行手术或者医生在讨论或者查看具体细节,这时候按照设定的距离采样体数据,在一个实施例中,在显示界面上有采样距离调整按钮,医生可以手动调整采样距离,采样的距离越小,细节越清晰,但是系统反应会越慢。在另外一个实施例中,采用默认的距离作为采样距离。
[0060]
当gpu负载较高和/或旋转频率高时,两次采样距离间隔会不断增大,例如第一个采样点作为原点为0,第二个采样点为3,第三个采样点为7,第四个采样点为12,依次类推,直到采样点位于体数据之外。
[0061]
在一个具体实施例中,所述在投影射线上按照预设方式采集体数据上k个采样点,还包括:若旋转后预设值时间内没有旋转三维图像,则在gpu的负载小于等于第一阈值时,则第一个采样点为原点,每隔lr的距离采样一次,重新计算每个像素点的值。
[0062]
所述根据所述采样点分组个数,设置grid中包括的block个数m,以及每个block包括的线程个数n,具体为:设n=32j,计算出j、m使得32j*m大于且最接近采样点分组个数;所述j=1、2、...、16,m为正整数。
[0063]
在gpu中,是以block为单位向sm分配线程的,为了实现gpu中sm的负载均衡,在一个实施例中,所述根据gpu中每个sm的负载将block分配给sm,具体为:
[0064]
计算每个block待计算量,所述待计算量其中n为block包括的线程个数,z表示与线程对应的采样点分组所包括的采样点个数;
[0065]
例如一个block包括5个线程,一个线程对应一个采样组,五个线程对应的采样组包括的采样点分别为3、3、2、1、1,则待计算量为3 3 2 1 1=10。
[0066]
按照每个block待计算量对block从大到小的顺序排序得到block序列,并按照sm的负载从小到大的顺序进行排序得到sm序列,每次将block序列的第一个block分配给sm序列的第一个,然后重新对sm排序,再将block序列的第一个block分配给sm序列的第一个,依次类推,直到block序列中的block全部分给sm。
[0067]
优选地,在所述按照预设方式采集体数据上k个采样点前,先对体数据进行预处理,所述预处理至少包括滤波、去噪。
[0068]
实施例二
[0069]
本发明还提供了一种神经外科手术中导航加速处理设备,所述设备至少包括处理器cpu、存储器、gpu,所述设备连接定位仪、探针和显示设备,所述设备还包括以下模块:
[0070]
采样模块,用于获取待成像平面的像素点个数,由每个像素点沿着视线方向发出一条投影射线,在投影射线上按照预设方式采集体数据上k个采样点,将位于同一个体素的采样点归作为一个采样点分组;
[0071]
gpu并行计算模块,用于根据所述采样点分组个数,设置grid中包括的block个数m,以及每个block包括的线程个数n,将所述采样点分组分配给m*n个线程,根据gpu中每个sm的负载将block分配给sm;block中的gpu线程通过三线性插值方法计算每个采样点的颜色值和透明度;
[0072]
平面成像模块,用于由cpu根据所述每个采样点的颜色值和透明度得到所述待成像平面上每个像素点的值。
[0073]
优选地,所述在投影射线上按照预设方式采集体数据上k个采样点,具体为:
[0074]
获取gpu的负载r,若所述gpu的负载小于等于第一阈值r
t
且旋转三维图像的频率小于第二阈值,则以第一个采样点为原点,每隔lr的距离采样一次;否则,以第一个采样点为原点,按照下式计算距离前一个采样点的距离:
[0075][0076]
其中,k为正整数。
[0077]
实施例三
[0078]
如图5所示,本发明还提供了一种基于光线投影的三维重建方法,所述方法包括以下步骤:
[0079]
步骤1,获取待成像平面的像素点个数,由每个像素点沿着视线方向发出一条投影射线,在投影射线上按照预设方式采集体数据上k个采样点,将位于同一个体素的采样点归作为一个采样点分组;
[0080]
步骤2,根据所述采样点分组个数,设置grid中包括的block个数m,以及每个block包括的线程个数n,将所述采样点分组分配给m*n个线程,根据gpu中每个sm的负载将block分配给sm;block中的gpu线程通过三线性插值方法计算每个采样点的颜色值和透明度;
[0081]
步骤3,由cpu根据所述每个采样点的颜色值和透明度得到所述待成像平面上每个像素点的值。
[0082]
优选地,所述在投影射线上按照预设方式采集体数据上k个采样点,具体为:
[0083]
获取gpu的负载r,若所述gpu的负载小于等于第一阈值r
t
且旋转三维图像的频率
小于第二阈值,则以第一个采样点为原点,每隔lr的距离采样一次;否则,以第一个采样点为原点,按照下式计算距离前一个采样点的距离:
[0084][0085]
其中,k为正整数。
[0086]
优选地,所述在投影射线上按照预设方式采集体数据上k个采样点,还包括:若旋转后预设值时间内没有旋转三维图像,则在gpu的负载小于等于第一阈值时,则第一个采样点为原点,每隔lr的距离采样一次,重新计算每个像素点的值。
[0087]
优选地,所述根据所述采样点分组个数,设置grid中包括的block个数m,以及每个block包括的线程个数n,具体为:设n=32j,计算出j、m使得32j*m大于且最接近采样点分组个数;所述j=1、2、...、16,m为正整数。
[0088]
优选地,所述根据gpu中每个sm的负载将block分配给sm,具体为:
[0089]
计算每个block待计算量,所述待计算量其中n为block包括的线程个数,z表示与线程对应的采样点分组所包括的采样点个数;
[0090]
按照每个block待计算量对block从大到小的顺序排序得到block序列,并按照sm的负载从小到大的顺序进行排序得到sm序列,每次将block序列的第一个block分配给sm序列的第一个,然后重新对sm排序,再将block序列的第一个block分配给sm序列的第一个,依次类推,直到block序列中的block全部分给sm。
[0091]
优选地,在采样模块执行前,先执行判断模块;
[0092]
所述判断模块,用于获取cpu利用率及gpu空闲内存,若cpu利用率大于第三阈值且gpu空闲内存大于体数据大小,则在gpu上执行所述采集模块,否则在cpu上执行所述采集模块;所述第三阈值与所述像素点个数反相关。
[0093]
优选地,在所述按照预设方式采集体数据上k个采样点前,先对体数据进行预处理,所述预处理至少包括滤波、去噪。
[0094]
优选地,所述系统还包括定位仪、探针、显示设备和主机。
[0095]
本发明所述的各个实施例可以进行组合以实现对应的技术方案。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献