技术领域
[0001] 本
发明属于
图像处理技术领域,更为具体地讲,涉及一种双目内窥镜软组织图像的在线三维重建方法。
背景技术
[0002] 传统的开胸手术方式需要剖开胸腔,锯断胸骨,对患者的呼吸功能产生巨大影响。由于胸骨切口张
力较高,使得体质较差的患者,术后恢复十分困难。如今,
微创手术方式不仅能够降低手术的
风险,更能减少病人
治疗的痛苦。内窥镜是微创手术中重要的
信号采集方式,医生不再需要开胸,仅需在胸壁上打3个小孔,分别放置胸腔镜成像装置、
超声波手术刀以及手术废弃物吸收装置对病人进行手术,这样减少了病人的创伤和痛苦,也缩短了术后的康复时间。
[0003] 近年来,
内窥镜手术越来越多地应用于心脏外科手术。然而传统内窥镜无法产生直观的三维形态信息,只有经过长期培训的医师才能熟练地利用其进行关键部位的手术。现有内窥镜在使用过程中缺少图像深度感,容易导致医生在手术过程中对重要的解剖结构及其相对的
位置产生视觉上的误判,或者致使医生难以准确地判断进刀位置的深浅而操作失误。
[0004] 为了给手术医生提供准确、实时的三维形态信息,国内外学者尝试通过内窥镜获取的立体图像,对立体图像进行三维重建以获得目标区域表面的三维形态。这种方法可以解决无法植入大型
三维扫描设备到微创手术空间的问题。这种三维重建方法主要通过相机标定、立体校正、立体匹配来得到图像
像素点的三维空间信息,从而重建出目标区域的三维形态。为此,国内外研究人员利用多种经典的空间形变模型对目标区域进行三维重构。例如W.Lau等在文献《Stereo-based endoscopic tracking of cardiac surface deformation》中使用的B样条模型,D.Stoyanov等在文献《A practical approach towards accurate dense 3-D depth recovery for robotic laparoscopic surgery》中使用的分片双线性映射模型,以及R.Richa等在文献《Threedimensional motion tracking for beating heart surgery using a thin-plate spline deformable model》中使用的薄板样条模型等。然而上述模型通常较为复杂,很难实时应用。而利用一些简单的形变模型虽然可以满足实时性要求,但难以准确描述目标区域的形变从而难以获得精确的三维重建结果。
[0005] 如今,
深度学习的快速发展为对
立体内窥镜图片进行快速高
精度的三维重建方法带来了新思路。越来越多学者以立体图像为输入,用深度学习模型计算出左右图像之间的
视差图,从而获取图像的深度信息。Godard在《Unsupervised Monocular Depth Estimation with Left-Right Consistency》中以立体图像对作为输入,通过非监督方法训练出一个自编码模型用于深度估计,Andrea Pilzer等在《Unsupervised Adversarial Depth Estimation using Cycled Generative Networks》中使用生成对抗网络模型来估计深度。Antal B在文献《Automatic 3D point set reconstruction from stereo endoscopic images using deep neural network》中使用
监督学习的方法训练出一个神经网络,该网络以图像像素
亮度作为输入,输出立体内窥镜图像对应的
深度图。Ke Xu在文献《Unsupervised binocular depth prediction network for laparoscopic surgery》中使用自
编码器对双目
腹腔镜图片进行深度估计,从而重建出腹腔手术部位的三维表面。这些训练好的深度学习模型能够快速计算出输入图像的深度信息,然而这些方法都需要预先存储大量同一目标区域的图片作为模型的训练集去训练模型,再将训练好的模型用于计算目标区域深度,在计算目标深度的过程中模型不再更新。但在对视频序列的三维重建过程中,短时间间隔的
视频帧有一定相似性,而长时间间隔的视频帧之间会有较大差异,所以视频开始时采用的深度估计模型经过一段时间后在对视频帧估计深度时误差会逐渐增大,此时就需要根据当前的视频情况更新模型。
发明内容
[0006] 本发明的目的在于克服
现有技术的不足,提供一种双目内窥镜软组织图像的在线三维重建方法,用深度学习网络替代立体匹配,利用深度学习模型学习左右图像像素关系,找出左右图像间的视差,进而根据相机参数和视差完成三维重建。
[0007] 为实现上述发明目的,本发明一种双目内窥镜软组织图像的在线三维重建方法,其特征在于,包括以下步骤:
[0008] (1)、双目内窥镜标定;
[0009] 对双目内窥镜的两个相机进行各自标定,以及两相机之间进行立体标定,从而获得两个相机的内部参数矩阵及两相机之间的外部参数矩阵;
[0011] 利用双目内窥镜对目标软组织进行图像采集,然后将左右两个相机采集的同一帧图像标记为图像对,再对图像对进行调整,使图像对共面行对准,即左右图像之间仅包括
水平视差,没有垂直视差;
[0013] (3.1)、设置深度神经网络模型的最大训练次数N;设置数据集D,用于存储一轮训练需要的K组图像对;设置损失函数
阈值T;初始化深度神经网络模型;
[0014] (3.2)、按照步骤(2)所述方法获取K组图像对,并存储在数据集D;
[0015] (3.3)、从数据集D中选出一帧图像对开始输入至深度神经网络模型,通过深度神经网络模型计算出左右图像的视差图;
[0016] (3.4)、对左图像的每个像素点按视差图对应位置的像素值作为平移量进行平移,重建出右图像;
[0017] (3.5)、构建深度神经网络模型的损失函数l;
[0018] (3.5.1)、根据重建的右图像与右相机采集的右图像,构建重建损失函数lr;
[0019]
[0020] 其中I(i,j)表示右相机采集的右图像中坐标为(i,j)的像素点的像素值,I'(i,j)表示重建的右图像中坐标为(i,j)的像素点的像素值;
[0021] (3.5.2)、对视差图施加一个平滑约束,构成平滑损失函数ls;
[0022]
[0023] 其中Ex(i,j)表示视差图沿x方向上的梯度图像中坐标为(i,j)的像素点的像素值,Ey(i,j)表示视差图沿y方向上的梯度图像中坐标为(i,j)的像素点的像素值;
[0024] (3.5.3)、重建损失函数和平滑损失函数构成模型损失函数l;
[0025] l=αrlr+αsls
[0026] 其中,αr、αs分别表示重建损失函数和视差平滑损失函数的系数;
[0027] (3.6)、设置步长P;以模型损失函数值最小为优化目标,利用随机
梯度下降法计算模型损失函数的负梯度方向,再将负梯度方向与步长P的乘积作为深度神经网络模型的权重更新量,然后通过反向传播
算法更新整个模型权重,从而更新深度神经网络模型;
[0028] (3.7)、重复步骤(3.3)-(3.6),利用数据集D中后K-1帧图像对继续训练深度神经网络模型,完成本轮训练;
[0029] (3.8)、本轮训练完成后,判断当前本轮训练次数是否到达最大训练次数N,或本轮训练完成后模型损失函数值是否小于阈值T,如果满足,则训练停止并清空数据集D,再进入步骤(4);否则,将当前训练次数增加1,然后返回至步骤(3.3),再次利用数据集D进行下一轮的训练;
[0030] (4)、计算K帧之后的图像对的视差图并进行在线重建
[0031] (4.1)、将第K+1帧左右图像按照步骤(2)的方法处理成图像对,将当前帧图像对输入至训练后的深度神经网络模型,计算出当前帧图像对的视差图,同时保存第K+1帧图像对保存至数据集D;
[0032] (4.2)、计算视差图中某像素点的深度d;
[0033]
[0034] 其中,e为该像素点的像素值,b为基线距离,f为相机焦距;
[0035] (4.3)、图像的在线重建
[0036] 根据每个像素点的深度d恢复出对应像素点的三维坐标,再根据每个像素点的三维坐标重建出三维图像;
[0037] (4.4)、判断数据集D中的图像对数量是否达到K组,如果未达到,则按照步骤(4.1)-(4.3)所述方法进行下一帧的处理;如果达到,则利用数据集D中的K组图像对按照步骤(3.3)-(3.8)的方法更新深度神经网络模型。
[0038] 本发明的发明目的是这样实现的:
[0039] 本发明一种双目内窥镜软组织图像的在线三维重建方法,先根据当前采集到的最近一段时间内的双目内窥镜软组织
图像序列对深度神经网络模型进行训练并进行在线调整,再利用调整好的深度神经网络模型估计后续帧的双目内窥镜软组织图像的视差,然后通过视差和相机参数得到内窥镜图像像素点的三维空间坐标,从而获得目标区域的三维形态坐标,完成三维图像的在线重建;最后又通过后续帧图像间隔的更新深度神经网络模型,确保重建精度。
[0040] 同时,本发明一种双目内窥镜软组织图像的在线三维重建方法还具有以下有益效果:
[0041] (1)、本发明避免了用耗时的传统立体匹配技术来获取深度图,而是利用深层神经网络模型学习双目内窥镜图像对之间的像素关系,生成左右图像之间的视差图,再利用视差图基于相机参数重建出软组织的三维表面。
[0042] (2)、本发明与传统的基于大批量人工标注数据集的深度学习算法相比,本方法对模型的在线训练和更新提高了模型重建精度和重建实时性,同时也提高了模型在不同场景的灵活性。
附图说明
[0043] 图1是本发明一种双目内窥镜软组织图像的在线三维重建方法
流程图;
[0044] 图2是深度神经网络模型架构图;
[0045] 图3是深度神经网络模型的训练流程图。
具体实施方式
[0046] 下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会
淡化本发明的主要内容时,这些描述在这里将被忽略。
[0048] 图1是本发明一种双目内窥镜软组织图像的在线三维重建方法流程图。
[0049] 在本实施例中,如图1所示,本发明一种双目内窥镜软组织图像的在线三维重建方法,包括以下步骤:
[0050] S1、双目内窥镜标定;
[0051] 对双目内窥镜的两个相机使用张氏标定法进行单目标定,得到左右相机的参数矩阵,再进行立体标定,从而获得两相机之间的外部参数矩阵;
[0052] S2、图像采集及预处理;
[0053] 利用双目内窥镜对目标软组织进行图像采集,采集到的单张图像(左图或者右图)形状为512×256×1,然后将左右两个相机采集的同一帧图像标记为图像对,再使用Bouguet立体校正方法对图像对进行调整,使图像对共面行对准,即左右图像之间仅包括水平视差,没有垂直视差,再将共面行对准的左右图像按通道拼接成形状为512×256×2图像对作为深度神经网络模型的输入(也是训练样本);
[0054] S3、训练深度神经网络模型
[0055] 在本实施例中,深度神经网络模型主要由编码器和
解码器构成,如2所示,编码器由一个卷积层、一个最大
池化层和四个卷积层构成。第一个卷积层的卷积核大小为7×7,滑动步长为2,输出为 输出通道数为64;最大池化层
滤波器大小为3×3,滑动步长为2,输出为 输出通道数为64;后面四个卷积层每个卷积层使用大小为3×3,滑动步长为2的卷积核,每层输出分别为: (输出通道数为256)、 (输出通道数为512)、 (输出通道数为1024)、 (输出通道数为2048);另外,编码器每一层操作后面都采用Relu激活函数。解码器由六个反卷积层和一个卷积层构成:每个反卷积层都采用一组大小为3×3,滑动步长为2的滤波器和Relu激活函数。解码器第一个反卷积层的输入来自编码器的输出 反卷积输出通道数为512。从解码器第二个反卷积层到第六个反卷积层,每个反卷积层的输入都是前一层反卷积层的输出与对应的跳跃连接层按通道拼接形成的向量,每个反卷积层对应的跳跃连接层分别为:
每层输出的通道数分别为256、128、64、32、16;解码器最后一层卷积层滤波器大小为3×3,滑动步长为1,输出通道数为1,采用sigmoid激活函数。
[0056] 如图3所示,具体训练过程为:
[0057] S3.1、设置深度神经网络模型的最大训练次数N为30;设置数据集D,用于存储一轮训练需要的200组图像对;设置损失函数阈值T为0.5;初始化深度神经网络模型;
[0058] S3.2、按照步骤S2所述方法获取200组图像对,并存储在数据集D;
[0059] S3.3、从数据集D中选出一帧图像对开始输入至深度神经网络模型,通过深度神经网络模型计算出左右图像的视差图;
[0060] S3.4、对左图像的每个像素点按视差图对应位置的像素值作为平移量进行平移,重建出右图像(或者对右图像的每个像素点按视差图对应位置的像素值作为平移量进行平移,重建出左图像);
[0061] S3.5、构建深度神经网络模型的损失函数l;
[0062] S3.5.1、根据重建的右图像与右相机采集的右图像,构建重建损失函数lr;
[0063]
[0064] 其中I(i,j)表示右相机采集的右图像中坐标为(i,j)的像素点的像素值,I'(i,j)表示重建的右图像中坐标为(i,j)的像素点的像素值(若步骤S3.4重建的是左图像,则重建损失则是根据重建的左图像与左相机采集的左图像构建);
[0065] S3.5.2、对视差图施加一个平滑约束,以减少视差噪声,构成平滑损失函数ls;
[0066]
[0067] 其中Ex(i,j)表示视差图沿x方向上的梯度图像中坐标为(i,j)的像素点的像素值,Ey(i,j)表示视差图沿y方向上的梯度图像中坐标为(i,j)的像素点的像素值;
[0068] S3.5.3、重建损失函数和平滑损失函数构成模型损失函数l;
[0069] l=αrlr+αsls
[0070] 其中,αr、αs分别表示重建损失函数和视差平滑损失函数的系数,分别设置为0.8和0.5;
[0071] S3.6、设置步长P为0.0001;以模型损失函数值最小为优化目标,利用随机梯度下降法计算模型损失函数的负梯度方向,再将负梯度方向与步长P的乘积作为深度神经网络模型的权重更新量,然后通过反向传播算法更新整个模型权重,从而更新深度神经网络模型;
[0072] S3.7、重复步骤S3.3-S3.6,利用数据集D中后199帧图像对继续训练深度神经网络模型,完成本轮训练;
[0073] S3.8、本轮训练完成后,判断当前本轮训练次数是否到达最大训练次数30,或本轮训练完成后模型损失函数值是否小于阈值0.5,如果满足,则训练停止并清空数据集D,再进入步骤S4;否则,将当前训练次数增加1,然后返回至步骤S3.3,再次利用数据集D进行下一轮的训练;
[0074] S4、计算整个视频第200帧之后的图像对的视差图并进行在线重建[0075] S4.1、将第201帧左右图像按照步骤S2的方法处理成图像对,再将处理后的当前帧图像对输入至训练后的深度神经网络模型,计算出当前帧图像对的视差图,同时保存当前帧图像对保存至数据集D;
[0076] S4.2、计算视差图中某像素点的深度d;
[0077]
[0078] 其中,e为该像素点的像素值,b为基线距离,f为相机焦距;
[0079] S4.3、图像的在线重建
[0080] 根据每个像素点的深度d恢复出对应像素点的三维坐标,再根据每个像素点的三维坐标重建出三维图像;
[0081] S4.4、判断数据集D中的图像对数量是否达到200组,如果未达到,则按照步骤S4.1-S4.3所述方法进行下一帧的处理;如果达到,则利用数据集D中的200组图像对按照步骤S3.3-S3.8的方法更新深度神经网络模型。
[0082] 尽管上面对本发明说明性的具体实施方式进行了描述,以便于
本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的
权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。