Context-Aware Depth and Pose Estimation for Bronchoscopic Navigation翻译

文章目录

  • 摘要
  • 1.引言
  • 2. 相关工作
  • 3. 方法概述
    • 3.1. 基于CT数据的虚拟深度生成
    • 3.2. 基于视频帧的上下文感知深度估计
      • 3.3. 方法概述
        • 3.3.1. 从CT数据生成虚拟深度图
        • 3.3.2. 基于上下文感知的深度估计从视频帧中
        • 3.3.3. 相机姿态估计通过 2D/3D 配准
  • 4. 实验
    • 4.1. 数据集和基线
    • 4.2. 实现
    • 4.3. 验证与讨论
  • 5. 结论
  • 致谢

摘要

支气管内介入越来越多地被用作肺部介入的微创手段。基于视觉的定位方法通常对支气管镜视频中的图像伪影敏感。在本文中,提出了一种基于上下文感知深度恢复方法的鲁棒导航系统,用于单目视频图像。为了处理这些伪影,提出了一种条件生成对抗学习框架,以实现可靠的深度恢复。在活体数据集上验证了深度估计和摄像机定位的准确性。定量和定性结果表明,所提出方法恢复的深度在图像伪影存在的情况下更好地保留了气道腔体的结构信息,并且改进的摄像机定位精度展示了其在支气管镜导航中的临床潜力。

1.引言

近年来,支气管镜活检技术(如图1所示)在肺癌分期中相比传统的经皮肺穿刺活检(TTNA)正逐渐成为一种更受欢迎的方法[1]。TTNA常见的术后并发症包括气胸、出血和空气栓塞[2]。研究表明,支气管镜活检在诊断孤立性肺结节时的并发症发生率低于TTNA[1]。然而,由于视野受限,在复杂的气道网络中定位和操控柔性支气管镜依然是一个具有挑战性的任务。因此,开发有效的导航系统对于辅助支气管内介入治疗至关重要[1]。自动化支气管镜相机定位系统的关键在于估计手术过程中支气管镜相对于术前计算机断层扫描(CT)重建的气道模型的六自由度(6 DoF)位置和方向。这不仅可以帮助肺科医生,还可以帮助外科机器人平台[3][4]保持设备朝向目标气道位置的正确方向。

在这里插入图片描述
图1。支气管镜活检技术用于肺癌分期。

基于视频与CT配准和电磁(EM)跟踪的导航系统已被广泛研究,以辅助支气管镜相机定位[5]。基于视觉的技术的可靠性主要依赖于支气管镜视频和CT气道模型的质量,而EM技术则对传感器校准和场畸变较为敏感。相比于EM系统,基于视觉的框架具有成本低、无需额外设备安装以及对组织变形影响较小的优点[6]。此外,进行外周气道介入的支气管内设备直径理想情况下应小于2毫米[4],加入跟踪设备会给设备的小型化带来额外负担。本信件的重点是开发基于视觉的定位框架。已经开发了几种基于不同相似性度量的2D/3D配准方法用于支气管镜导航[6]-[9]。其中,基于深度图的方法[9]被证明相比于其他基于强度或梯度特征的方法对光照变化更具鲁棒性。然而,支气管镜图像的深度估计仍然具有以下挑战:1)传统的运动形状(SFM)技术在视野小且缺乏显著特征的情况下难以正确恢复深度;2)由于气道尺寸受限,目前仅广泛使用单目支气管镜,这使得基于立体相机设置的深度恢复方法不适用;3)由于手动对齐耗时且容易出错,难以获取匹配的体内视频帧和CT虚拟视图,而有监督的深度学习算法通常需要大量的标记数据;4)在实际临床场景中,如图2所示,由于患者剧烈咳嗽、快速操控支气管镜以及频繁的支气管冲洗,图像伪影如模糊和水泡可能会被引入,而现有的大多数方法对这些图像伪影可能非常敏感。

在这里插入图片描述
图2。样本清晰的视图和有图像伪影的帧。(a)颜色模糊,没有流明的遮挡。(b)气泡,没有管腔的阻塞。©气泡与闭塞。(d)彩色条纹。(e)雾状模糊物。(f)引起镜面反射的气泡。(g)重叠的阴影。(h)清晰的视图。

在本文中,我们提出了一种基于上下文感知深度估计的支气管镜导航框架,该框架可以从体内视频帧生成深度图,而无需配对的视频和CT深度图像。受到近年来生成对抗网络(GAN)[10],[11]发展的启发,引入了视图属性条件邻域扭曲来处理图像伪影造成的部分遮挡。然后,将视频帧的估计深度图CT数据生成的虚拟深度图进行配准,以估算相机的姿态。该导航框架在体内数据集上进行了验证。对视频图像的深度估计和支气管镜导航中的相机定位精度的评估表明,该方法具有良好的性能。

本文的其余部分组织如下:第二部分讨论了相关工作。第三部分介绍了所提出方法的详细信息。第四部分展示了实验结果,最后在第五部分进行总结。

2. 相关工作

当前的支气管镜导航系统大致可以分为三类,包括基于传感器的系统[12]、基于视觉的系统[6],[8],[9]以及混合系统[7],[13],[14]。外部跟踪设备如EM传感器可以集成到柔性内窥镜中,以报告实时的尖端姿态。然而,校准和复杂的设备设置会影响正常的临床工作流程,并且其对金属干扰和组织变形的敏感性可能导致跟踪失败[6]。

与基于传感器的导航系统相比,基于视觉的方法仅依赖于支气管镜视频,在视频帧与虚拟CT视图之间执行2D/3D配准,使用特定的相似性度量。基于图像的配准方法对呼吸运动更具鲁棒性,因为内窥镜会与气道同时移动[6]。相似性度量可以基于图像强度[6],[7]、梯度[8],[14]、深度[9]或气道腔特征[15],[16]。文献[6],[7]中提出的基于图像强度的相似性度量要求从CT气道模型生成逼真的渲染图像。然而,气管壁的表面纹理和光照条件难以恢复。为了避免使用图像强度,一些研究尝试将配准转化到pq空间[8],[14]或深度图[9]中,这些方法更独立于纹理,同时更好地保留了气道分叉的形态。由于基于像素的图像配准计算成本高,因此开发了更高效的基于气道腔检测的定位方法[15],[16],用于在可以观察到多个分叉的远端气道中进行导航。在这些方法中,基于深度的2D/3D配准对表面纹理不敏感,并且可以保留场景中丰富的形态信息。

最近,单目图像的深度估计已经通过几种有监督[17]-[19]或无监督[20],[21]的深度学习方法得到了研究。监督的深度恢复方法如[17]需要图像和深度数据之间的成对匹配,而支气管镜视频图像中很难获得这种匹配数据。为了解决这个问题,[18],[19]采用领域适应技术,将视频帧转换为无纹理图像,从而可以利用大量合成数据学习从渲染视图到深度图的映射。文献[18]提出的模型在气管模型数据上提供了良好的深度估计结果。Mahmood等人[19]在使用合成数据训练的模型上展示了在猪结肠内窥镜图像上保留结构的深度恢复效果。

此外,还提出了无监督方法[20],[21]用于不使用合成数据的单目深度估计。然而,[20]使用立体图像进行训练,这对支气管镜图像来说是不适用的。文献[21]提出了一种自监督方法,通过视图合成和运动形状(SFM)估计深度图和相机姿态。然而,SFM技术通常需要平滑的相机运动和丰富的视觉信息。内支气管表面上显著特征的缺乏和快速的内窥镜运动可能会限制其在支气管镜图像中的应用。

我们的工作还与近期的GAN模型发展相关[10],[11],[22]。Isola等人[22]将GAN适用于通用的图像到图像翻译框架,要求多个领域之间的精确对应。为了放松这一限制,Zhu等人[11]提出了一种基于循环一致性(CycleGAN)的无配对图像到图像翻译框架。这种无配对框架在从支气管镜视频生成深度图方面表现良好。然而,当存在伪影时,循环一致性无法总是得到保持。对于特定的视频帧,对应的深度图是唯一的,而逆变换则不是。同一气道位置的深度图可能与视野清晰或有伪影的视频帧匹配。为了解决这个问题,我们构建了互补条件来对支气管镜图像中的伪影进行建模。

在这里插入图片描述图3。(a)使用视频-ct配准的支气管镜导航的工作流程。基于GAN的(b)上下文感知深度估计。

3. 方法概述

本文提出的用于支气管镜导航的相机定位方法的工作流程如图3(a)所示,主要包括三个步骤:从CT气道模型的多个虚拟相机投影中提取深度图(见第III-A节);基于上下文感知生成对抗学习从单个支气管镜视频帧重建深度图(见第III-B节);以及估算相机姿态以最大化视频深度图与相应虚拟深度图之间的相似性(见第III-C节)。

3.1. 基于CT数据的虚拟深度生成

在术前采集胸部CT扫描数据,并使用ITK-SNAP [23]提供的3D主动轮廓分割方法对气管树进行3D分割。然后,使用气管分割结果计算3D气道网格。在给定特定相机姿态 p t p_t pt(一个在时间戳t处的6自由度向量)的情况下,通过建模具有与真实视频支气管镜相机相同内参的虚拟相机生成虚拟深度图 z C ( p t ) ∈ Z C z_C (p_t) \in Z_C zC(pt)ZC,其中 Z C Z_C ZC 是CT深度图集合。为了模拟所有可能的视角,虚拟相机姿态 p p p 被设置为沿着通过快速行进算法[24]计算的气道中心线,并控制一定程度的变化。由CT气道模型生成的虚拟深度图用于训练所提出的深度估计网络。

3.2. 基于视频帧的上下文感知深度估计

给定特定的支气管镜视频帧 x ∈ X x \in X xX,深度估计的目标是学习一个映射 G : X → Z G : X \rightarrow Z G:XZ,以生成相应的深度图。对于从时间步t的视频帧估计的合适深度图 z t = G ( x t ) z_t = G(x_t) zt=G(xt),它需要满足以下属性:

  1. z t z_t zt 的局部特征应与由CT气道网格生成的虚拟深度图 z C ∈ Z C z_C \in Z_C zCZC 相似。
  2. 深度图 z t z_t zt 应该能够提供足够的信息来指示 x t x_t xt 的分叉,例如,腔通常具有较大的深度。
  3. 深度图 z t z_t zt 不易受到伪影的影响。因此,同一气道位置的深度图可能会对应不同类型的图像伪影。
  4. 应保持连续视频帧 z t z_t zt z t − 1 z_{t-1} zt1 之间的视觉一致性。

上述属性启发我们构建了如图3(b)所示的上下文感知深度估计方法。通过解决包含以下损失项的学习框架,可以获得最佳的深度估计函数:

对抗损失: 为了避免基于手动配对数据学习映射 G Depth : X → Z G_{\text{Depth}} : X \rightarrow Z GDepth:XZ,我们引入逆映射 G Video : Z → X G_{\text{Video}} : Z \rightarrow X GVideo:ZX 以及分别识别真实深度和支气管镜帧的判别器 D Depth D_{\text{Depth}} DDepth D Video D_{\text{Video}} DVideo。按照对抗学习中的常规设置[10],对这两个映射函数应用对抗损失。

在这里插入图片描述
图4中展示了神经网络的架构,包括(a) 生成器,(b) 残差块,和© 判别器。“M × M conv (Na, Nb)” 表示一个具有M × M卷积核、Na个输入通道和Nb个输出通道的2D卷积层。“M × M deconv (Na, Nb)” 表示一个2D反卷积层。“IN” 表示实例归一化层。“ReLU” 表示ReLU激活函数。“BN” 表示批量归一化层。

3.3. 方法概述

图3(a)展示了用于支气管镜导航的相机定位方法的工作流程,主要包括三个步骤:从CT气道模型的多个虚拟相机投影中提取深度图(第III-A节);基于上下文感知生成对抗学习从单个支气管镜视频帧重建深度图(第III-B节);以及估计相机姿态以最大化视频深度图与相应虚拟深度图之间的相似性(第III-C节)。

3.3.1. 从CT数据生成虚拟深度图

术前进行胸部CT扫描,从中分割出3D支气管树,使用ITK-SNAP提供的3D主动轮廓分割方法[23]。然后,使用支气管分割结果计算3D气道网格。给定特定的相机姿态 p t p_t pt,这是一个在时间戳 t t t的6自由度向量,虚拟深度图 z C ( p t ) ∈ Z C z_C(p_t) \in Z_C zC(pt)ZC通过建模具有与实际视频支气管镜相同的内在参数的虚拟相机生成,其中 Z C Z_C ZC是CT深度图的集合。为了模拟所有可能的视角,虚拟相机姿态 p p p被设置为沿着气道中心线,中心线由快速行进算法[24]计算,并具有控制的变异量。生成的虚拟深度图用于训练所提出的深度估计网络。

3.3.2. 基于上下文感知的深度估计从视频帧中

给定特定的支气管镜视频帧 x ∈ X x \in X xX,深度估计的目标是学习一个映射 G : X → Z G : X \to Z G:XZ,以生成相应的深度图。对于从时间步 t t t的视频帧 x t x_t xt估计的正确深度图 z t = G ( x t ) z_t = G(x_t) zt=G(xt),它需要具备以下属性:

  1. z t z_t zt的局部特征应与由CT气道网格生成的虚拟深度图 z C ∈ Z C z_C \in Z_C zCZC相似。
  2. 深度图 z t z_t zt应具有指示 x t x_t xt分叉的能力,例如,腔道通常具有较大的深度。
  3. 深度图 z t z_t zt不应容易受到伪影的影响。因此,深度图可能对应于相同的气道位置,但具有不同类型的图像伪影。
  4. 应保留连续视频帧之间的深度图 z t z_t zt z t − 1 z_{t-1} zt1的视觉一致性。

上述属性启发我们构建了如图3(b)所示的上下文感知深度估计方法。通过解决学习框架获得最优深度估计函数,该框架包括以下损失项:

对抗损失: 代替基于人工配对数据学习映射 G Depth : X → Z G_{\text{Depth}} : X \to Z GDepth:XZ,我们采用无监督框架,引入逆映射 G Video : Z → X G_{\text{Video}} : Z \to X GVideo:ZX以及判别器 D Depth D_{\text{Depth}} DDepth D Video D_{\text{Video}} DVideo来分别识别真实深度和支气管镜帧。根据对抗学习的一般设置[10],对两个映射函数应用对抗损失:
G Depth , D Depth = arg ⁡ min ⁡ G Depth arg ⁡ max ⁡ D Depth L adv ( G Depth , D Depth ) = arg ⁡ min ⁡ G Depth arg ⁡ max ⁡ D Depth E z ∼ Z [ log ⁡ D Depth ( z ) ] + E x ∼ X [ log ⁡ ( 1 − D Depth ( G Depth ( x ) ) ) ] ( 1 ) \begin{aligned} G_{\text{Depth}}, D_{\text{Depth}} &= \arg \min_{G_{\text{Depth}}} \arg \max_{D_{\text{Depth}}} L_{\text{adv}}(G_{\text{Depth}}, D_{\text{Depth}}) \\ &= \arg \min_{G_{\text{Depth}}} \arg \max_{D_{\text{Depth}}} \mathbb{E}_{z \sim Z} \left[ \log D_{\text{Depth}}(z) \right] + \mathbb{E}_{x \sim X} \left[ \log (1 - D_{\text{Depth}}(G_{\text{Depth}}(x))) \right](1) \end{aligned} GDepth,DDepth=argGDepthminargDDepthmaxLadv(GDepth,DDepth)=argGDepthminargDDepthmaxEzZ[logDDepth(z)]+ExX[log(1DDepth(GDepth(x)))]1
其中 G Depth G_{\text{Depth}} GDepth尝试生成看起来与来自CT数据的真实深度相似的深度 G Depth ( x ) G_{\text{Depth}}(x) GDepth(x),而 D Depth D_{\text{Depth}} DDepth旨在区分合成样本 G Depth ( x ) G_{\text{Depth}}(x) GDepth(x)和真实样本 z ∈ Z z \in Z zZ。类似地,视频帧的对抗损失项 L adv ( G Video , D Video ) L_{\text{adv}}(G_{\text{Video}}, D_{\text{Video}}) Ladv(GVideo,DVideo)也定义为区分真实和合成数据。

循环一致性损失: 不同于监督方法,假设支气管镜帧的相应深度图在本工作中不可用。考虑到支气管镜帧和深度图共享的类似形态,良好的深度估计应能够恢复原始支气管镜帧,这在[11]中被形式化为循环一致性:
G Depth = arg ⁡ min ⁡ G Depth L cycle ( G Depth ) = arg ⁡ min ⁡ G Depth E x ∼ X [ ∥ x − G Video ( G Depth ( x ) ) ∥ ] ( 2 ) G_{\text{Depth}} = \arg \min_{G_{\text{Depth}}} L_{\text{cycle}}(G_{\text{Depth}}) = \arg \min_{G_{\text{Depth}}} \mathbb{E}_{x \sim X} \left[ \| x - G_{\text{Video}}(G_{\text{Depth}}(x)) \| \right](2) GDepth=argGDepthminLcycle(GDepth)=argGDepthminExX[xGVideo(GDepth(x))]2
其中最小化原始和恢复的支气管镜帧之间的误差。

为了避免偏差,循环一致性也适用于通过以下方式估计的视频帧:
G Video = arg ⁡ min ⁡ G Video L cycle ( G Video ) = arg ⁡ min ⁡ G Video E z ∼ Z [ ∥ z − G Depth ( G Video ( z ) ) ∥ ] ( 3 ) G_{\text{Video}} = \arg \min_{G_{\text{Video}}} L_{\text{cycle}}(G_{\text{Video}}) = \arg \min_{G_{\text{Video}}} \mathbb{E}_{z \sim Z} \left[ \| z - G_{\text{Depth}}(G_{\text{Video}}(z)) \| \right](3) GVideo=argGVideominLcycle(GVideo)=argGVideominEzZ[zGDepth(GVideo(z))]3

条件上下文损失: 尽管循环损失可以实现从深度图恢复视频帧,但它不能处理支气管镜图像中的伪影。深度图可能对应于相同的气道位置,但具有不同类型的伪影。因此,我们将视频帧 x x x标记为视图属性 a a a以指示伪影的存在。对于 c c c种伪影,视图属性是一个 c + 1 c + 1 c+1维的独热编码向量,其中 a 1 = 1 a_1 = 1 a1=1表示当前视频帧视图清晰,而 a i = 1 , i = 2 , … , c + 1 a_i = 1, i = 2, \ldots, c + 1 ai=1,i=2,,c+1表示具有特定伪影的视频帧。在我们的体内数据集中,26.22%的支气管镜视频图像具有伪影。伪影帧被选择并手动标注为七个不同的视图属性组( c = 7 c = 7 c=7)。9%的视图完全遮挡的视频帧被排除在本文之外。图2展示了具有伪影和清晰视图的样本图像。通过接受视图属性作为输入,生成器 G Video G_{\text{Video}} GVideo生成具有特定伪影的合成视频帧和深度图如下:
G Depth = arg ⁡ min ⁡ G Depth L condition ( G Depth ) = arg ⁡ min ⁡ G Depth E x ∼ X , a [ ∥ x − G Video ( G Depth ( x , a ) ) ∥ ] ( 4 ) G_{\text{Depth}} = \arg \min_{G_{\text{Depth}}} L_{\text{condition}}(G_{\text{Depth}}) = \arg \min_{G_{\text{Depth}}} \mathbb{E}_{x \sim X, a} \left[ \| x - G_{\text{Video}}(G_{\text{Depth}}(x, a)) \| \right](4) GDepth=argGDepthminLcondition(GDepth)=argGDepthminExX,a[xGVideo(GDepth(x,a))]4
G Video G_{\text{Video}} GVideo上,循环一致性也扩展为:
G Video = arg ⁡ min ⁡ G Video L condition ( G Video ) = arg ⁡ min ⁡ G Video E z ∼ Z , a [ ∥ z − G Depth ( G Video ( z , a ) ) ∥ ] ( 5 ) G_{\text{Video}} = \arg \min_{G_{\text{Video}}} L_{\text{condition}}(G_{\text{Video}}) = \arg \min_{G_{\text{Video}}} \mathbb{E}_{z \sim Z, a} \left[ \| z - G_{\text{Depth}}(G_{\text{Video}}(z, a)) \| \right](5) GVideo=argGVideominLcondition(GVideo)=argGVideominEzZ,a[zGDepth(GVideo(z,a))]5

此外,我们还扩展了判别器 D Video D_{\text{Video}} DVideo以识别视图属性。除了区分真实和合成数据, D Video D_{\text{Video}} DVideo还设计为识别视频帧的视图属性如下:
D Video = arg ⁡ min ⁡ D Video L att ( D Video ) = arg ⁡ min ⁡ D Video − E x ∼ X , a [ log ⁡ D Video ( a ∣ x ) ] − E z ∼ Z , a [ log ⁡ D Video ( a ∣ G Video ( z , a ) ) ] ( 6 ) D_{\text{Video}} = \arg \min_{D_{\text{Video}}} L_{\text{att}}(D_{\text{Video}}) = \arg \min_{D_{\text{Video}}} - \mathbb{E}_{x \sim X, a} \left[ \log D_{\text{Video}}(a|x) \right] - \mathbb{E}_{z \sim Z, a} \left[ \log D_{\text{Video}}(a|G_{\text{Video}}(z, a)) \right](6) DVideo=argDVideominLatt(DVideo)=argDVideominExX,a[logDVideo(ax)]EzZ,a[logDVideo(aGVideo(z,a))]6
这通过在原始判别器上添加另一个分类输出来实现。

连续变形损失: 考虑到连续帧 x t x_{t} xt x t − 1 x_{t-1} xt1,它们对应的深度图 z t z_{t} zt z t − 1 z_{t-1} zt1也应具有类似的空间变换。设 F ( x t − 1 , x t ) F(x_{t-1}, x_{t}) F(xt1,xt)表示 x t − 1 x_{t-1} xt1 x t x_{t} xt之间的流动图,它测量了连续帧的空间变换。因此,变形相似性可以通过以下方式保留:
G Depth = arg ⁡ min ⁡ G Depth L warp ( x t − 1 , x t ) = arg ⁡ min ⁡ G Depth [ ∥ x t − S ( x t − 1 , F ( x t − 1 , x t ) ) ∥ + ∥ G Depth ( x t ) − S ( G Depth ( x t − 1 ) , F ( x t − 1 , x t ) ) ∥ ] ( 7 ) G_{\text{Depth}} = \arg \min_{G_{\text{Depth}}} L_{\text{warp}}(x_{t-1}, x_{t}) = \arg \min_{G_{\text{Depth}}} \left[ \| x_{t} - S(x_{t-1}, F(x_{t-1}, x_{t})) \| + \| G_{\text{Depth}}(x_{t}) - S(G_{\text{Depth}}(x_{t-1}), F(x_{t-1}, x_{t})) \| \right](7) GDepth=argGDepthminLwarp(xt1,xt)=argGDepthmin[xtS(xt1,F(xt1,xt))+GDepth(xt)S(GDepth(xt1),F(xt1,xt))]7
其中 S ( ⋅ , ⋅ ) S(\cdot, \cdot) S(,)是空间变换函数[25]。

在这里插入图片描述图5。在连续的视频帧之间的图像扭曲的三种场景。(a)xt−1和xt都是清晰的视图。(b)xt−1是清晰的视图,但xt是与工件。©xt−1和xt都带有工件。

在这里插入图片描述
图6。三个例子的注册视频帧和CT深度图使用所提出的方法和基线。(a)是一个清晰的视角;(b)&©是具有图像伪影的帧。上行显示视频帧和各方法恢复的深度图,下行显示地面真实CT深度图和各方法注册的CT深度图。

然而,由于图像伪影的存在,连续视频帧之间的图像变换并不总是能够适应深度图。如图5所示,具有清晰视图的连续帧容易进行变形。对于不同类型的伪影状态的图像,对深度图的任意约束可能导致奇异结果。对于具有相同伪影类型的相邻帧,由于伪影区域的变化较大,变形误差在较小的权重下被最小化。因此,最终的变形误差被公式化如下:
L warp = λ ( x t − 1 , x t ) L warp ( x t − 1 , x t ) , L_{\text{warp}} = \lambda(x_{t-1}, x_{t}) L_{\text{warp}}(x_{t-1}, x_{t}), Lwarp=λ(xt1,xt)Lwarp(xt1,xt),
其中
λ ( x t − 1 , x t ) = { 1 if  a t = 1 and  a t − 1 = 1 , 0 if  a t = a t − 1 , γ otherwise . \lambda(x_{t-1}, x_{t}) = \begin{cases} 1 & \text{if } a_{t} = 1 \text{ and } a_{t-1} = 1, \\ 0 & \text{if } a_{t} = a_{t-1}, \\ \gamma & \text{otherwise}. \end{cases} λ(xt1,xt)= 10γif at=1 and at1=1,if at=at1,otherwise.
其中,本文中 γ = 0.01 \gamma = 0.01 γ=0.01以实现最佳性能。

总体损失: 通过将损失项组合成统一的学习框架,最终的优化问题被公式化如下:
D Depth = arg ⁡ max ⁡ D Depth L adv ( D Depth ) , D_{\text{Depth}} = \arg \max_{D_{\text{Depth}}} L_{\text{adv}}(D_{\text{Depth}}), DDepth=argDDepthmaxLadv(DDepth),
D Vido = arg ⁡ max ⁡ D Depth L adv ( D Vido ) − L att ( D Vido ) , D_{\text{Vido}} = \arg \max_{D_{\text{Depth}}} L_{\text{adv}}(D_{\text{Vido}}) - L_{\text{att}}(D_{\text{Vido}}), DVido=argDDepthmaxLadv(DVido)Latt(DVido),
G Depth , G Vido = arg ⁡ min ⁡ G Vido , G Depth [ L condition ( G Depth ) + L condition ( G Vido ) + L adv ( G Vido ) + L adv ( G Depth ) + L warp ( G Depth ) ] . G_{\text{Depth}}, G_{\text{Vido}} = \arg \min_{G_{\text{Vido}}, G_{\text{Depth}}} \left[ L_{\text{condition}}(G_{\text{Depth}}) + L_{\text{condition}}(G_{\text{Vido}}) + L_{\text{adv}}(G_{\text{Vido}}) + L_{\text{adv}}(G_{\text{Depth}}) + L_{\text{warp}}(G_{\text{Depth}}) \right]. GDepth,GVido=argGVido,GDepthmin[Lcondition(GDepth)+Lcondition(GVido)+Ladv(GVido)+Ladv(GDepth)+Lwarp(GDepth)].

表一
关于深度估计、导航和时间效率的定量评价。“v”表示视频帧。“d”表示深度贴图。“c”表示视频帧和深度地图之间的精确对应关系。“sr-n”表示注册小于N MM的视频帧的百分比。“fps”表示每秒的帧数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

图7。每种方法在x、y、z轴上对其中一个测试视频序列的注册摄像机轨迹。

模型以交替的方式进行训练。在每次迭代中,首先固定生成器以获得最优的 D Vido D_{\text{Vido}} DVido D Depth D_{\text{Depth}} DDepth。然后固定鉴别器以获得最优的 G Vido G_{\text{Vido}} GVido G Depth G_{\text{Depth}} GDepth

3.3.3. 相机姿态估计通过 2D/3D 配准

对于连续的相机定位,在生成输入视频帧 x t x_t xt 的深度图 z t z_t zt 后,通过最大化视频深度图 z t z_t zt 和虚拟 CT 深度图的相似性来估计相机姿态 p t p_t pt。给定前一视频帧 x t − 1 x_{t-1} xt1 的相机姿态 p t − 1 p_{t-1} pt1 作为初始化,最优姿态 p t p_t pt 是通过类似于 [9] 中描述的策略来确定的,如公式 (9) 所示:
p t = p t − 1 + Δ p t ∣ t − 1 p_t = p_{t-1} + \Delta p_{t|t-1} pt=pt1+Δptt1
Δ p t ∣ t − 1 = arg ⁡ max ⁡ Δ p t ∣ t − 1 { SIM ( z t , z C ( p t − 1 + Δ p t ∣ t − 1 ) ) } \Delta p_{t|t-1} = \arg \max_{\Delta p_{t|t-1}} \{ \text{SIM}(z_t, z_C(p_{t-1} + \Delta p_{t|t-1})) \} Δptt1=argΔptt1max{SIM(zt,zC(pt1+Δptt1))}
其中 SIM ( ⋅ , ⋅ ) \text{SIM}(\cdot, \cdot) SIM(,) 是深度图之间的相似性度量。在本文中,我们使用归一化互相关 (NCC) 作为深度图之间的相似性度量 [9]。每个相机姿态变化 Δ p t ∣ t − 1 \Delta p_{t|t-1} Δptt1 对应一个唯一的 CT 深度图 z C z_C zC。通过最大化 z t z_t zt z C z_C zC 之间的 NCC 来估计最优的姿态变化 Δ p t ∣ t − 1 \Delta p_{t|t-1} Δptt1。由于目标函数不是完全可微的,因此采用了 Powell 方法 [26] 作为优化策略。抛物线拟合步骤的最大放大倍率设置为 100。连续区间的默认放大比率设置为 1.62。

4. 实验

4.1. 数据集和基线

所提出的框架在体内数据上进行了验证。CT 扫描的体素间距为 [0.4, 0.4, 0.5] mm,由 Siemens SOMATOM Definition Edge CT 扫描仪获取。使用 Olympus BF-1T260 支气管镜捕获的尺寸为 307 × 313,帧率为 30 fps 的视频。数据是在标准临床常规中获取的。数据集属于 Hamlyn 肺和支气管镜数据库(Hamlyn Centre, Imperial College),该数据库经过研究伦理委员会的伦理审批(REC 参考编号:16/LO/0170,IRAS 项目 ID:198081),位于英国伦敦。我们使用了来自两个受试者的配对 CT 扫描和支气管镜视频进行训练,另一个受试者的数据用于测试。

为了进行比较,我们采用了 Shape from Shading (SFS) [27]、监督 FCN [28]、SFM [21] 和 CycleGAN [11] 作为基线。监督 FCN 基于残差块,并使用 350 张手动配对的 CT 深度图和视频图像进行训练。由于体内数据中的变形和伪影,具有精确对应的配对数据数量有限。为了训练 SFM 网络,我们使用光流选择了 1520 张具有平滑相机运动的视频帧。我们使用 2951 张视频帧和 7200 张 CT 深度图来训练 CycleGAN 和所提出的方法。测试时,使用了两个视频序列,共 180 张视频帧,并对应注册的相机姿态和 CT 深度图。

在这里插入图片描述
图8。注册的测试视频序列的方法和基线与地面真实比较。

4.2. 实现

在本文中,生成器被构建为基于 U-Net [29] 架构的全卷积神经网络,如图 4(a) 所示。我们用一个六层的 ResNet 块(图 4(b))[30] 替换了原始的瓶颈块,以编码丰富的信息。鉴别器是基于 PatchGAN(图 4©)[22] 的多层卷积网络,用于在多个尺度上识别真实数据。

我们使用 Adam 求解器 [31],批量大小为 1。采用 Pytorch‡ 框架来实现深度卷积神经网络,实验平台为配备 Xeon E5-2630 和 NVIDIA GeForce Titan Xp 的工作站。

4.3. 验证与讨论

我们比较了所提出的方法和基线方法在深度估计质量和相机定位准确性方面的表现。

图 6 展示了从三个示例视频帧恢复的深度图以及由基线方法和所提出的方法估计的注册 CT 深度图。对于清晰视图,如图 6(a) 所示,所有方法都能合理地恢复整体深度图,除 SFM 外,其他方法能够正确地恢复分叉的大小和位置。SFM 方法在支气管镜视频图像上的表现较差,因为支气管镜的操控速度快且不稳定。与相机以相对恒定速度移动的室外数据集不同,支气管镜在所有方向上都有较大的平移和旋转运动。SFS 基于兰伯特表面模型,虽然能够正确估计腔体的位置,但对腔体边界的估计不准确。FCN 方法的性能受限于配对数据的数量较少和视频图像中的大范围组织变形。对于如图 6(b) 和 © 所示的有伪影的帧,其他所有基线方法都受到影响,而所提出的方法估计的深度图仍保持了良好的腔体结构。

我们使用峰值信噪比 (PSNR)、结构相似性 (SSIM)、NCC 和互信息 (MI) 等相似性度量来评估注册 CT 深度图与对应的真实 CT 深度图之间的相似性。所有方法的测量结果见表 I。所有相似性度量指标都表明,与对应的真实 CT 深度图相比,所提出的深度估计方法生成了最准确的注册 CT 深度图。定量结果与图 6 中的观察一致。† 表 I 还展示了所提出方法和基线方法在相机定位准确性和时间效率方面的定量评估结果。图 7 展示了每种方法在其中一个测试视频序列上的注册轨迹,图 8 展示了相应的注册 CT 虚拟渲染。计算了绝对跟踪误差 (ATE) 和成功注册的视频帧的百分比,以评估相机定位准确性。凭借令人满意的视频深度估计结果,所提出的方法在定位准确性方面优于基线方法,具有最小的 ATE 和最高的成功注册视频帧数。总体而言,所提出的上下文感知深度估计方法能够恢复清晰的分叉结构特征,无论是在有图像伪影还是没有伪影的视频帧中。

SFM 方法无法从视频帧中恢复正确的气道结构,导致相机定位早期失败。SFS、FCN 和 CycleGAN 方法可以估计无图像伪影图像的结构特征,但任何气泡和模糊的存在都会影响它们在连续相机跟踪中的性能。我们提出的上下文感知深度估计方法考虑了图像伪影的影响,使得相机定位框架更加鲁棒。通过留一法策略验证了所提出方法的泛化性能。其他两个数据拆分的深度估计性能没有显著变化(PSNR=33.49±2.49,39.59±2.69)。除了 SFS 之外,基于深度神经网络的深度估计方法在实时支气管镜导航中都有良好的时间效率。由于当前优化算法的效率有限,视频-CT 注册过程的帧率不够。未来将引入 GPU 加速,以减少视频-CT 注册所需的处理时间。

5. 结论

总之,我们提出了一种上下文感知的深度估计方法,用于支气管镜导航,具有良好的图像伪影容忍度。带有循环一致性的条件生成对抗网络能够从未配对的数据中学习真实深度图的特征。对从临床支气管镜例程中收集的体内数据的验证结果表明,与基线方法相比,我们提出的方法表现优越。我们的方法能够从视频帧中生成深度图,即使在图像伪影部分遮挡的情况下,也能编码分叉的大小和存在的结构特征。其对图像伪影的抗干扰能力极大地提高了导航框架在临床应用中的鲁棒性。

致谢

作者感谢英国皇家布朗普顿医院的 P. Shah 教授在开发 Hamlyn 肺和支气管镜数据库方面的合作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/53158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++ Primer Plus习题】10.8

问题: 解答: main.cpp #include <iostream> #include "List.h" using namespace std;int main() {Item item 0;List list;cout << "请输入item(0结束):";cin >> item;while (item!0){cin.get();list.add(item);cout << "请…

C4单细胞|国产平台解密睾丸肿瘤细胞“朋友圈”

单细胞&#xff08;核&#xff09;转录组学已成为生命科学研究的基础工具&#xff0c;在疾病、免疫、生命演化、器官结构、发育等领域发挥重要作用&#xff0c;但规模化研究往往是制约单细胞层面研究的重要因素。为了突破单细胞研究门槛高、费用高的瓶颈&#xff0c;凌恩生物重…

CentOS 7 上安装 JDK 8 的步骤:

CentOS 7 上安装 JDK 8 的步骤&#xff1a; 一、下载 JDK 1.可以从 Oracle 官网下载 JDK 8&#xff0c;但需要注册账号。也可以从其他可靠的镜像站点下载。 jdk.java.net http://jdk.java.net/ 2.例如&#xff0c;可以从 Oracle 官网下载 Linux 版本的 JDK 8 压缩包&#x…

自建DCI为何超过租赁DCI:优势探索

在现代数据的基础设施发展过程中&#xff0c;数据中心&#xff08;DCI&#xff09; 的自建和租赁选择变得越来越关键。随着对数据传输需求的增加和行业的发展&#xff0c;运行商必须要仔细考虑哪种方法更符合其战略目标和运营要求。相较于租赁式DCI的便捷性和灵活性&#xff0c…

CSS3换装达人原理

引言 换装或者是换皮肤是常见的行为&#xff0c;我们可以先看下效果&#xff1a; 选择不同的颜色&#xff0c;就可以秒变人物服装的颜色&#xff0c;原理其实非常简单 实现步骤 主要分为三步&#xff0c;即素材的提供、布局样式、动态控制 图片提供 提供两张图片&#xf…

[数据集][目标检测]街道乱放广告牌检测数据集VOC+YOLO格式114张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;114 标注数量(xml文件个数)&#xff1a;114 标注数量(txt文件个数)&#xff1a;114 标注类别…

计算机毕业设计选题推荐-高校科研工作管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

uniapp插槽用法

目录 什么是插槽? 基本概念 默认插槽 命名插槽 作用域插槽 场景一:子插槽向父组件传递一个字符串 场景二:子插槽向父组件传递对象 什么是插槽? 在 UniApp 中&#xff0c;插槽&#xff08;Slot&#xff09;是一种允许父组件向子组件特定位置插入HTML内容的方式。这种方式使得组…

ELK系列之一---探索ELK奇妙世界:初识日志界大名鼎鼎的ES集群!

目录 一、为什么要使用ELK 二、ELK简介 三、Elaticsearch入门 3.1、什么是elaticsearch 3.2、elaticsearch的底层优点 3.2.1、全文检索 3.2.2、倒排索引 3.3、elaticsearch集群原理 一、为什么要使用ELK 一般我们需要进行日志分析场景&#xff1a;直接在日志文件中 gre…

Docker 镜像导出与加载:从入门到精通

在容器化技术的世界中&#xff0c;Docker 镜像的导出与加载是开发与运维人员经常会用到的技能。本文将详细介绍如何导出 Docker 镜像为本地 tar 文件&#xff0c;并如何将其重新加载为 Docker 镜像&#xff0c;并分享一些操作中的小技巧与趣味总结。 一、Docker 镜像导出的秘…

HTTP 二、进阶

四、安全 1、TLS是什么 &#xff08;1&#xff09;为什么要有HTTPS ​ 简单的回答是“因为 HTTP 不安全”。由于 HTTP 天生“明文”的特点&#xff0c;整个传输过程完全透明&#xff0c;任何人都能够在链路中截获、修改或者伪造请求 / 响应报文&#xff0c;数据不具有可…

vue2踩坑记录:el-select如何绑定对象

页面上的下拉框&#xff1a; 选中人员之后&#xff0c;需要使用人员的其它信息做后续操作。所以不能只绑定用户Id&#xff0c;需要绑定整个item(用户对象)&#xff0c;这样每次change事件所获取到的newValue是整个对象&#xff0c;而且v-model中的变量指向的也是整个对象&#…

解决el-table中使用el-input无法聚焦问题

在el-table中点击单元格时使用el-input或其他表单组件编辑单条数据。会出现聚焦不上的问题&#xff0c;需要手动点击才能够聚焦。究其原因是因为点击单元格时页面已自动聚焦到单元格&#xff0c;此时无法自动聚焦到对应的表单&#xff0c;需要手动设置。 <template><e…

进来一起把【数据结构】的【栈与队列】狠狠玩弄,痛快到大汗淋漓

1前言&#xff1a;顾名思义&#xff0c;栈与队列是两个东西&#xff0c;栈和队列&#xff01;对的&#xff0c;栈和队列&#xff01;&#xff01;&#xff0c;没错&#xff0c;在念一遍&#xff0c;【栈】 和 【队列】&#xff01;&#xff01;&#xff01;但是本质都是差…

数字化转型工具有哪些 无锡振宁科技

数字化转型已经成为现代企业不可忽视的趋势。为了帮助企业在这个过程中取得成功&#xff0c;选择合适的工具至关重要。今天&#xff0c;无锡振宁科技想和大家聊聊一些在数字化转型中不可或缺的工具&#xff0c;以及它们具体能带来哪些优势和变化。 1. 云计算平台 云计算是数字…

Yapi部署文档

Yapi是高效、易用、功能强大的API管理平台&#xff0c;旨在为开发、产品、测试人员提供更优雅的接口管理服务 官网地址&#xff1a;Yapi 环境&#xff1a; l Git l NodeJs&#xff08;7.6&#xff09; l Mongodb&#xff08;2.6&#xff09; 1、 NodeJs的安装 获取资源 …

VBA学习(71):Excel VBA 访问带密码保护的Access数据库/用户窗体设置/EXCEL用户+密码登录界面(Access版)

前两天我们分享了一个用户密码登录EXCEL的案例【Excel VBA 用户窗体设置/一步一步代你设计EXCEL用户密码登录界面】&#xff0c;文中提及数据存储在Access中的情况&#xff0c;今天我就来把数据表&#xff08;tb用户&#xff09;移到Access中&#xff0c;修改一下代码&#xff…

cortex-m4系列绝对地址函数跳转问题

一、环境&#xff1a; cortex-m4&#xff0c;IAR&#xff0c;J-LINK。 二、问题&#xff1a; 1&#xff09;、首先&#xff0c; 我将另一个程序中的函数扣出来&#xff0c;通过j-flash-lite下载到MCU的一个固定地址Flash中。 2&#xff09;、然后&#xff0c; 声明一个变量为…

Elastic Stack--ELFK实例与Dashboard界面

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 学习B站博主教程笔记&#xff1a; 最新版适合自学的ElasticStack全套视频&#xff08;Elk零基础入门到精通教程&#xff09;Linux运维必备—Elastic…

低代码技术:简化应用开发,推动数字化转型

在当今快速变化的技术环境中&#xff0c;企业面临着巨大的压力&#xff0c;需要快速响应市场需求并持续推动数字化转型。传统的应用开发方式往往复杂且耗时&#xff0c;开发周期长且需要大量的编程工作。为了应对这些挑战&#xff0c;低代码技术应运而生&#xff0c;为企业提供…