一种三维模型二维视图与裸眼三维影像双屏联动显示方法转让专利

申请号 : CN202110161371.8

文献号 : CN112969062B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 韦健王世刚王学军宋晨曦赵岩

申请人 : 吉林大学

摘要 :

一种三维模型二维视图与裸眼三维影像双屏联动显示方法属自由立体显示技术领域,本发明包括:1.建立双屏联动显示系统,包括配置Optix的处理器、Leap Motion、立体显示屏、平面显示屏;2.设置参数值;3.导入三维模型和二维合成图的像素‑视点对应矩阵;4.创建虚拟相机阵;5.设置参考虚拟相机;6.联动显示三维模型的二维视图和裸眼三维影像,包括手势交互、更新相机参数、生成与显示二维视图和二维合成图、形成裸眼三维影像等步骤;本发明能让医生利用手掌的旋转和抓取实时控制三维医学模型平面视图和裸眼立体画面的观看角度和尺寸缩放,实现解剖结构多视角、多尺寸空间信息的交互观看,从而提升医疗的效率和可靠性。

权利要求 :

1.一种三维模型二维视图与裸眼三维影像双屏联动显示方法,其特征在于,包括下列步骤:

1.1建立双屏联动显示系统:双屏联动显示系统由处理器(1)、Leap Motion体感控制器(2)、立体显示屏(6)和平面显示屏(8)组成,Leap Motion体感控制器(2)、立体显示屏(6)和平面显示屏(8)均与处理器(1)连接;其中处理器(1)配置有高性能光线追踪应用程序框架Optix;平面显示屏(8)的分辨率为W1×H1;立体显示屏(6)是视点数量为N的柱透镜光栅立体显示屏,N为奇数;立体显示屏(6)的分辨率为W2×H2;

1.2设置参数值:二维视图(9)与平面显示屏(8)的分辨率相同,二维合成图(4)与立体显示屏(6)的分辨率相同,虚拟相机阵列的相机数量与立体显示屏(6)的视点数量相同,相邻虚拟相机焦点方向的夹角为θ,虚拟相机的视角为φ,手势交互(3)的手掌移动速度的有效范围为vmin、vmax,手势交互(3)的灵敏度为s;

1.3将三维网格模型和二维合成图(4)的R、G、B三个通道的像素‑视点对应矩阵MR、MG、MB导入处理器(1)中;

1.4在处理器(1)的高性能光线追踪应用程序框架Optix场景中,创建汇聚式虚拟相机阵列Cams,包括下列步骤:

1.4.1初始化中心相机Camc=Cams((N‑1)/2)的参数:光心位置Camc_eye=C‑(0,0,1.5Sm);

焦点方向Camc_lookat=C;

坐标轴向上方向Camc_up=(0,‑1,0);

其中:C为三维模型外接矩形框的中心点坐标;Sm为三维模型外接矩形框长和宽之间的最大值;

1.4.2初始化其它相机Cami=Cams(i),i=0,…,N‑1且i≠(N‑1)/2,的参数:光心位置Cami_eye=R(Camc_up,θ×(i‑(N‑1)/2))×(Camc_eye‑Camc_lookat)+Camc_lookat;

焦点方向Cami_lookat=Camc_lookat;

坐标轴向上方向Cami_up=Camc_up;

其中:R(v,α)为环绕向量v旋转角度α得到的3×3旋转矩阵;

1.5设置一个参考虚拟相机Camr,其参数与Camc的初始参数相同;

1.6双屏联动显示三维模型的二维视图(9)和裸眼三维影像(7),显示每一帧画面包括下列步骤:

1.6.1如果当前帧是第一帧,则执行步骤1.6.3;否则,执行步骤1.6.2;

1.6.2利用Leap Motion体感控制器(2)检测是否发生手势交互(3),即手势交互(3)的手掌移动速度是否属于有效范围vmin、vmax或者手抓取力g是否不为0,如果是,则更新Cams参数后,执行步骤1.6.3;否则,执行步骤1.6.5;更新Cams参数包括下列步骤:

1.6.2.1更新中心相机Camc的参数:Camc_eye=R(Camr_up,βx/s)×(Camr_eye‑Camr_lookat)+Camr_lookat;

Camc_eye=Camc_eye‑(Camc_lookat‑Camc_eye)×g;

u=cross(Camr_up,Camc_eye‑Camc_lookat);

Camc_eye=R(u,βz/s)×(Camc_eye‑Camc_lookat)+Camc_lookat;

Camc_up=cross(u,Camc_eye‑Camc_lookat);

其中:Camr_up为参考虚拟相机Camr的坐标轴向上方向;Camr_eye为参考虚拟相机Camr的光心位置;Camr_lookat为参考虚拟相机Camr的焦点方向;βx、βz分别为手势交互(3)的手掌相对于Leap Motion体感控制器(2)的坐标系统中x轴、z轴的旋转角度;cross表示两个向量之间的叉乘运算;

1.6.2.2更新其它相机Cami的参数:与步骤1.4.2相同;

1.6.3利用Camc和Optix的实时光线投射渲染器,为三维模型生成二维视图(9),并在平面显示屏(8)上全屏显示;

1.6.4利用Cams和Optix的实时光线投射渲染器,为三维模型生成二维合成图(4),并在立体显示屏(6)上全屏显示,二维合成图(4)发出的光线穿过立体显示屏(6)内部的柱透镜光栅(5),形成裸眼三维影像(7);计算二维合成图(4)的每个像素值包括下列步骤:

1.6.4.1分别获取该像素值所属的像素点(x,y)在R、G、B三个通道上对应的视点序号:jR=MR(x,y)、jG=MG(x,y)、jB=MB(x,y);

1.6.4.2对于每个通道和对应的视点序号j,利用虚拟相机Camj和其像素点(x,y)处的光线投射,得到该通道在此点处的像素值;

1.6.5如果关闭二维视图(9),则关闭二维合成图(4),显示过程结束;否则,转至下一帧,执行步骤1.6.2。

说明书 :

一种三维模型二维视图与裸眼三维影像双屏联动显示方法

技术领域

[0001] 本发明属自由立体显示技术领域,具体涉及一种基于Optix和Leap Motion的三维模型二维视图与裸眼三维影像双屏联动显示方法。

背景技术

[0002] 在传统的平面显示器上为患者的组织器官呈现直观的三维数字模型,是当下深受医生青睐的医学影像可视化方式。随着医疗领域对病例诊断、临床观摩、远程会诊、术前规
划和术中导航等手段的高精度、临场感需求日益增长,这种方式的不足也逐渐凸显。二维视
图不便于同时呈现患者解剖结构的多视角空间信息,导致画面的立体纵深感和动态交互性
较差。而对于基于双目视差的立体显示媒介,其观察视点的数量较少,并且医生一般需要佩
戴辅助设备,容易造成人眼视觉疲劳和视野受限,以及画面分辨率和亮度降低,尤其不利于
长时间显微手术场合。相比之下,裸眼三维显示技术无需任何助视设备,就能为潜在病灶再
现具有物理景深的三维光学影像,可以为医生带来更舒适的观看体验、更逼真的感官冲击
和更优质的交互性能。平面显示技术已趋于成熟,二维视图画面清晰,而裸眼三维显示技术
仍处于探索期,光学立体影像在清晰度、景深、视角等方面很难兼顾。因此,对三维模型的二
维视图与裸眼三维影像进行双屏联动显示的方式,能够实现二者的优势互补,符合影像医
学对复杂疑难病症体数据进行高清、立体、动态观测的重大需求,也能够助力虚拟现实与增
强现实技术在医疗领域的应用普及和精准医疗水平的提质升级,具有研究的必要性和紧迫
性。
[0003] 上述联动显示方式需要做到以下几点:首先,为了保证两个屏幕在同一时刻的显示内容相同,二维视图和用于裸眼三维成像的二维合成图应该共用一套虚拟相机;其次,为
了适用于手术等不便于医生直接接触鼠标和键盘的特殊场合,最好通过手势交互来隔空操
控显示画面的视角和尺寸;最后,为了达到流畅的交互控制,二维视图和二维合成图的生成
必须实时完成。

发明内容

[0004] 本发明的目的在于提供一种基于Optix和Leap Motion的三维模型二维视图与裸眼三维影像双屏联动显示方法。Optix是一种基于NVIDIA CUDA通用计算架构的高性能光线
追踪应用程序框架,这种渲染引擎能够对光线投射过程进行大幅加速,从而做到二维视图
和二维合成图的快速绘制。Leap Motion是专为手势而设计的体感控制器,支持高帧率的手
势识别与交互。本发明结合Optix和Leap Motion的优势,通过手势信息反馈、虚拟相机参数
即时更新以及显示内容的实时渲染,实现三维医学模型表面二维视图和裸眼立体影像的同
步呈现和手势操控,以解决上述背景技术中提出的问题。
[0005] 本发明的一种三维模型二维视图与裸眼三维影像双屏联动显示方法,包括下列步骤:
[0006] 1.1建立双屏联动显示系统:双屏联动显示系统由处理器1、Leap Motion体感控制器2、立体显示屏6和平面显示屏8组成,Leap Motion体感控制器2、立体显示屏6和平面显示
屏8均与处理器1连接;其中处理器1配置有高性能光线追踪应用程序框架Optix;平面显示
屏8的分辨率为W1×H1;立体显示屏6是视点数量为N的柱透镜光栅立体显示屏,N为奇数;立
体显示屏6的分辨率为W2×H2;
[0007] 1.2设置参数值:二维视图9与平面显示屏8的分辨率相同,二维合成图4与立体显示屏6的分辨率相同,虚拟相机阵列的相机数量与立体显示屏6的视点数量相同,相邻虚拟
相机焦点方向的夹角为θ,虚拟相机的视角为φ,手势交互3的手掌移动速度的有效范围为
vmin、vmax,手势交互3的灵敏度为s;
[0008] 1.3将三维网格模型和二维合成图4的R、G、B三个通道的像素‑视点对应矩阵MR、MG、MB导入处理器1中;
[0009] 1.4在处理器1的高性能光线追踪应用程序框架Optix场景中,创建汇聚式虚拟相机阵列Cams,包括下列步骤:
[0010] 1.4.1初始化中心相机Camc=Cams((N‑1)/2)的参数:
[0011] 光心位置Camc_eye=C‑(0,0,1.5Sm);
[0012] 焦点方向Camc_lookat=C;
[0013] 坐标轴向上方向Camc_up=(0,‑1,0);
[0014] 其中:C为三维模型外接矩形框的中心点坐标;Sm为三维模型外接矩形框长和宽之间的最大值;
[0015] 1.4.2初始化其它相机Cami=Cams(i),i=0,…,N‑1且i≠(N‑1)/2,的参数:
[0016] 光心位置Cami_eye=R(Camc_up,θ×(i‑(N‑1)/2))×
[0017] (Camc_eye‑Camc_lookat)+Camc_lookat;
[0018] 焦点方向Cami_lookat=Camc_lookat;
[0019] 坐标轴向上方向Cami_up=Camc_up;
[0020] 其中:R(v,α)为环绕向量v旋转角度α得到的3×3旋转矩阵;
[0021] 1.5设置一个参考虚拟相机Camr,其参数与Camc的初始参数相同;
[0022] 1.6双屏联动显示三维模型的二维视图9和裸眼三维影像7,显示每一帧画面包括下列步骤:
[0023] 1.6.1如果当前帧是第一帧,则执行步骤1.6.3;否则,执行步骤1.6.2;
[0024] 1.6.2利用Leap Motion体感控制器2检测是否发生手势交互3,即手势交互3的手掌移动速度是否属于有效范围vmin、vmax或者手抓取力g是否不为0,如果是,则更新Cams参数
后,执行步骤1.6.3;否则,执行步骤1.6.5;更新Cams参数包括下列步骤:
[0025] 1.6.2.1更新中心相机Camc的参数:
[0026] Camc_eye=R(Camr_up,βx/s)×(Camr_eye‑Camr_lookat)+Camr_lookat;
[0027] Camc_eye=Camc_eye‑(Camc_lookat‑Camc_eye)×g;
[0028] u=cross(Camr_up,Camc_eye‑Camc_lookat);
[0029] Camc_eye=R(u,βz/s)×(Camc_eye‑Camc_lookat)+Camc_lookat;
[0030] Camc_up=cross(u,Camc_eye‑Camc_lookat);
[0031] 其中:Camr_up为参考虚拟相机Camr的坐标轴向上方向;Camr_eye为参考虚拟相机Camr的光心位置;Camr_lookat为参考虚拟相机Camr的焦点方向;βx、βz分别为手势交互3的手
掌相对于Leap Motion体感控制器2的坐标系统中x轴、z轴的旋转角度;cross表示两个向量
之间的叉乘运算;
[0032] 1.6.2.2更新其它相机Cami的参数:与步骤1.4.2相同;
[0033] 1.6.3利用Camc和Optix的实时光线投射渲染器,为三维模型生成二维视图9,并在平面显示屏8上全屏显示;
[0034] 1.6.4利用Cams和Optix的实时光线投射渲染器,为三维模型生成二维合成图4,并在立体显示屏6上全屏显示,二维合成图4发出的光线穿过立体显示屏6内部的柱透镜光栅
5,形成裸眼三维影像7;计算二维合成图4的每个像素值包括下列步骤:
[0035] 1.6.4.1分别获取该像素值所属的像素点(x,y)在R、G、B三个通道上对应的视点序号:jR=MR(x,y)、jG=MG(x,y)、jB=MB(x,y);
[0036] 1.6.4.2对于每个通道和对应的视点序号j,利用虚拟相机Camj和其像素点(x,y)处的光线投射,得到该通道在此点处的像素值;
[0037] 1.6.5如果关闭二维视图9,则关闭二维合成图4,显示过程结束;否则,转至下一帧,执行步骤1.6.2。
[0038] 与现有技术相比,本发明的有益效果在于:本发明提出的三维模型二维视图与裸眼三维影像双屏联动显示方法,能分别在两个屏幕上同时展示患者组织器官的平面视图和
裸眼立体影像,并且让医生利用手掌的旋转和抓取动作实时控制三维医学模型的观看角度
和尺寸缩放,从而实现人体解剖结构多视角、多尺寸空间信息的交互观看,其舒适的观看体
验、逼真的感官冲击和良好的交互性能,能推动当前的三维病灶观测手段从“伪立体”向“真
三维”转变,显著提升高难度诊疗与手术的效率和可靠性。

附图说明

[0039] 图1为三维模型二维视图与裸眼三维影像双屏联动显示方法的流程图。
[0040] 图2为双屏联动显示系统的示意图,
[0041] 其中:1.处理器2.Leap Motion体感控制器3.手势交互4.二维合成图5.柱透镜光栅6.立体显示屏7.裸眼三维影像8.平面显示屏9.二维视图。
[0042] 图3为虚拟相机参数的示意图。

具体实施方式

[0043] 下面结合附图描述本发明。
[0044] 本发明的一种三维模型二维视图与裸眼三维影像双屏联动显示方法,包括下列步骤:
[0045] 1.建立双屏联动显示系统,如图2所示:双屏联动显示系统由处理器1、Leap Motion体感控制器2、立体显示屏6和平面显示屏8组成,Leap Motion体感控制器2、立体显
示屏6和平面显示屏8均与处理器1连接;其中处理器1配置有高性能光线追踪应用程序框架
Optix;平面显示屏8的分辨率为W1×H1;立体显示屏6是视点数量为N的柱透镜光栅立体显示
屏,N为奇数;立体显示屏6的分辨率为W2×H2;
[0046] 2.设置参数值:二维视图9与平面显示屏8的分辨率相同;二维合成图4与立体显示屏6的分辨率相同;虚拟相机阵列的相机数量与立体显示屏6的视点数量相同;相邻虚拟相
机焦点方向的夹角为θ,虚拟相机的视角为φ,如图3所示;手势交互3的手掌移动速度的有
效范围为vmin、vmax,手势交互3的灵敏度为s;
[0047] 3.将三维网格模型和二维合成图4的R、G、B三个通道的像素‑视点对应矩阵MR、MG、MB导入处理器1中;
[0048] 4.在处理器1的高性能光线追踪应用程序框架Optix场景中,创建汇聚式虚拟相机阵列Cams,虚拟相机参数如图3所示,创建Cams包括下列步骤:
[0049] 4.1初始化中心相机Camc=Cams((N‑1)/2)的参数:
[0050] 光心位置Camc_eye=C‑(0,0,1.5Sm);
[0051] 焦点方向Camc_lookat=C;
[0052] 坐标轴向上方向Camc_up=(0,‑1,0);
[0053] 其中:C为三维模型外接矩形框的中心点坐标;Sm为三维模型外接矩形框长和宽之间的最大值;
[0054] 4.2初始化其它相机Cami=Cams(i),i=0,…,N‑1且i≠(N‑1)/2,的参数:
[0055] 光心位置Cami_eye=R(Camc_up,θ×(i‑(N‑1)/2))×
[0056] (Camc_eye‑Camc_lookat)+Camc_lookat;
[0057] 焦点方向Cami_lookat=Camc_lookat;
[0058] 坐标轴向上方向Cami_up=Camc_up;
[0059] 其中:R(v,α)为环绕向量v旋转角度α得到的3×3旋转矩阵;
[0060] 5.设置一个参考虚拟相机Camr,其参数与Camc的初始参数相同;
[0061] 6.双屏联动显示三维模型的二维视图9和裸眼三维影像7,显示每一帧画面包括下列步骤:
[0062] 6.1如果当前帧是第一帧,则执行步骤6.3;否则,执行步骤6.2;
[0063] 6.2利用Leap Motion体感控制器2检测是否发生手势交互3,即手势交互3的手掌移动速度是否属于有效范围vmin、vmax或者手抓取力g是否不为0,如果是,则更新Cams参数
后,执行步骤6.3;否则,执行步骤6.5;更新Cams参数包括下列步骤:
[0064] 6.2.1更新中心相机Camc的参数:
[0065] Camc_eye=R(Camr_up,βx/s)×(Camr_eye‑Camr_lookat)+Camr_lookat;
[0066] Camc_eye=Camc_eye‑(Camc_lookat‑Camc_eye)×g;
[0067] u=cross(Camr_up,Camc_eye‑Camc_lookat);
[0068] Camc_eye=R(u,βz/s)×(Camc_eye‑Camc_lookat)+Camc_lookat;
[0069] Camc_up=cross(u,Camc_eye‑Camc_lookat);
[0070] 其中:Camr_up为参考虚拟相机Camr的坐标轴向上方向;Camr_eye为参考虚拟相机Camr的光心位置;Camr_lookat为参考虚拟相机Camr的焦点方向;βx、βz分别为手势交互3的手
掌相对于Leap Motion体感控制器2的坐标系统中x轴、z轴的旋转角度;cross表示两个向量
之间的叉乘运算;
[0071] 6.2.2更新其它相机Cami的参数:与步骤4.2相同;
[0072] 6.3利用Camc和Optix的实时光线投射渲染器,为三维模型生成二维视图9,并在平面显示屏8上全屏显示;
[0073] 6.4利用Cams和Optix的实时光线投射渲染器,为三维模型生成二维合成图4,并在立体显示屏6上全屏显示,二维合成图4发出的光线穿过立体显示屏6内部的柱透镜光栅5,
形成裸眼三维影像7;计算二维合成图4的每个像素值包括下列步骤:
[0074] 6.4.1分别获取该像素值所属的像素点(x,y)在R、G、B三个通道上对应的视点序号:jR=MR(x,y)、jG=MG(x,y)、jB=MB(x,y);
[0075] 6.4.2对于每个通道和对应的视点序号j,利用虚拟相机Camj和其像素点(x,y)处的光线投射,得到该通道在此点处的像素值;
[0076] 6.5如果关闭二维视图9,则关闭二维合成图4,显示过程结束;否则,转至下一帧,执行步骤6.2。