Temporal Memory Relation Network for workflow Recognition from Surgical Video

195 阅读11分钟

arxiv.org/pdf/2103.16…

摘要

自动手术流程识别是开发手术室环境感知计算机辅助系统的关键组成部分。以前的研究要么是用短的固定范围时间信息联合建模空间特征,要么是分别学习视觉和长时间线索。在本文中,我们提出了一种新的端到端时间记忆关系网络(TMRNet),用于连接远程和多尺度时间模式以增强现有特征。我们建立了一个远程记忆库,作为存储丰富的支持信息的记忆细胞。通过我们设计的时间变化层,支持线索被多尺度时间卷积进一步增强。为了有效地整合这两种类型的线索而不干扰时空特征的共同学习,我们建立了一个远程记忆库,作为一个存储丰富支持信息的记忆单元。在这方面,我们的TMRNet使当前特性能够查看远程时间依赖性,以及容忍复杂的时间范围。我们已经在两个基准手术视频数据集(M2CAI挑战数据集和Cholec80数据集)上广泛验证了我们的方法。实验结果证明了我们的方法的卓越性能,始终大大超过最先进的方法。

检索术语:手术流程识别,长时记忆线索,多尺度时间卷积,非局部手术。

应用场景

手术流程是设计手术室智能辅助系统的基础。工作流识别使系统能够监控和优化手术过程,提供上下文感知决策支持,并生成潜在偏差和异常的早期预警。工作流信息的实时分析可以促进手术团队成员之间的协调和沟通。另一个重要的用途是术中以外记录数据库的自动提取,这可以促进外科医生技能评估、手术报告记录、外科医生教育培训和术后患者监测。

难点

然而,纯粹的基于视频的工作流识别是非常复杂的。复杂的手术场景导致期间方差有限,而期内方差较高。由于手术器械的频繁运动,场景常常模糊不清。照明条件的变化烟雾和血液不可避免的视觉遮挡,以及镜片清洁过程中引入的伪影也增加了手术感知的难度。

有效捕获远程时间动态对于准确的工作流程识别非常重要,因为手术视频通常持续长达30分钟至2小时,每个手术阶段持续至少一分钟的时间。为了利用时间信息,最近有研究同时利用端到端循环卷积网络(RCNets)三维卷积神经网络(cnn) 共同学习高阶时空特征。然而,由于GPU内存和计算资源的限制,这些视频模型最多只能从10秒的短期视图中收集信息。由于每个阶段手术场景的多样性和普遍存在的伪影,仅观察短期线索不足以达到准确的识别。如下图a所示,通过观察10s信息很难识别当前帧的相位。延伸到更长期的背景下(大约30秒)有助于更好地感知Calot三角解剖的当前阶段。另一种解决方案首先使用CNN提取孤立帧的特征或预测概率然后将这些预计算输入到时间模型中进行细化,通常使用隐马尔可夫模型(hmm)或递归神经网络(rnn) 。这些单独的训练方案虽然覆盖了整个过程,但很难充分利用视觉特征和时间特征的互补信息。如何同时利用端到端学习和长时间信息的优势,是实现工作流准确识别的关键。

本文方法

方法图2 (a)概述了我们用于外科工作流程识别的时间记忆关系网络。首先引入长时间记忆库来存储长时间信息,然后引入时间变化层来容忍多尺度运动线索。通过充分利用非本地银行算子,我们的TMRNet将记忆库的远程和复杂支持与当前特征联系起来,并具有端到端的特征学习能力。 ​

A.基于RCNet的远程记忆库

由于要记录整个手术过程,大多数手术视频的持续时间很长,并且包含复杂的背景。有效地将遥远的信息与当前发生的事情联系起来,可以使模型对当前框架做出准确的预测。与以前的手术工作流程识别方法相比,我们的设计从一个新的角度利用了时间信息。与其依赖在线训练模块(3D卷积层或LSTM)只捕获短期视图,我们建议建立一个外部的远程存储库LB来存储整个视频的信息。它直观地充当辅助记忆细胞,以帮助识别当前时间步长。在网络训练过程中,不需要对记忆库进行梯度计算和反向传播。由于很少涉及计算成本,可以在不干扰端到端学习过程的情况下汇总非常长期的过去线索。为了构建手术工作流识别任务的记忆库,我们建议首先利用统一递归卷积网络(SV-RCNet) ,计算每帧的特征。考虑到手术视频中每个阶段的持续时间通常比一般的自然视频长,我们不使用3D CNN,而是利用SVRCNet构建记忆库。该模型通过将50层残余网络(ResNet)与LSTM网络无缝集成而得到改进,因此具有以少量计算成本捕获较长的线索的能力。

具体来说,为了在内存库中生成帧\mathbf{x_t}的特征\mathbf{l_t},我们提取一个视频片段作为模型输入,其中包含当前帧xt和它之前的一组帧x = {x_{t-m}, \ldots, x_{t-1}, x_{t}}。该模型输出当前帧的高级时空特征向量\mathbf{l_t} \in \mathbb{R}^d, d = 512。因此,片段长度的时间线索{{t-m}, \ldots, {t-1}, {t}}被嵌入到当前帧特征中,这在很大程度上有助于利用先前的信息。然后,我们通过使用SV-RCNet模型以规则间隔传递整个视频来计算完整的内存库。形式上,远程存储库LB = {l_0, l_1, \ldots, l_{T-1}}对时间步长为[0, 1, \ldots, T-1]的t长度视频形成一个时间索引的特征列表。它提供了在整个手术视频中进行的时间(时间指数)和阶段(特征)的信息,并且可以在视频的单次传递中有效地计算。存储的时间索引是为了帮助模型在对每一帧进行增强识别时,从记忆库中快速定位到相应的特征片段。由于内存库的外部性,可以根据不同的任务要求选择不同的视频模型来生成特征。此外,这样的设计允许包括其他支持信息,例如工具使用特征和运动学信息。 ​

B.多尺度时间核模型变化

每个手术阶段自然由不同的细粒度动作组成。如图1 (b)所示,这些行为在时间持续时间上表现出高度的可变性。现有的工作使用固定核大小对时间动态建模,这对于分析复杂的手术工作流程来说过于死板。容忍时间范围的变化是必不可少的,特别是对于来自记忆库的复杂的长期时间依赖,因为与短期信息相比,它往往包含更多的可能性(见图1)。我们提出了一种具有多尺度时间核的时间变化层,以增强远程特征的表示能力。如图2 (b)所示,以长步长为L的长程特征L_t \in \mathbb{R}^{L \times 512}为输入,我们的时间变化层一共进行了5次时间运算。我们在前三个操作中执行了各种时间卷积,采用K个不同大小的核K ={3.5,7}。然后在步长s =1,内核大小k=2的情况下执行时间最大池操作,以在局部时间区域上挑选出最大激活。最后一个操作是一个简单的短连接,将输入特性L添加回来,以保留原始信息。所有的操作都将时间通道的数量作为输入特征保持在l。接下来,我们考虑如何融合这五个特征向量,它们分别包含不同的时间模式。概括最近的架构,我们确定了cnn的一个层设计原则:层参数的数量保持一致的层模块化。子空间及其参数化之间的平衡也应该保持。一个典型的例子是二维CNN,其空间子空间的扩展通常伴随着语义信道子空间的缩减。因此,我们不是沿着时间通道轴直接连接五个输出,而是通过将通道数量扩大5倍来连接输出,并通过内核大小k=5的最大池化来减少通道,从而结束该层。然后,最终结果可以恢复到原始输入维度:\widetilde{L}_t \in \mathbb{R}^{L \times 512}

考虑动作时间跨度的变化会带来很大的好处,特别是对于长期时间依赖性建模。因此,我们在库操作符之前注入时间变化层,以处理来自记忆库的远程特征。直观地说,它通过使用多个核大小对不同时间的线索进行编码来增强远程特征。为此,我们的模型从两个角度提供了支持,即聚合长期时间上下文和容忍时间变化。我们还考虑将各种时间卷积合并到特征库算子中,并在实验中讨论了结果。

C.TMRNet与非局部存储操作符

有效利用长期和多尺度过去信息的方法至关重要。我们引入了一个统一的时间记忆关系网络,使用非局部方案中执行的特征库算子来整合时间线索。形式上,为了在线模式下识别当前帧{x}_t,我们首先根据内存库中的时间索引t形成长度为L的远程特征片段:{L}t = {L{t-L+1}, \ldots, L_{t}}, LB的子集,在当前时间步长结束,包含前面的L-1帧特征。L在t之前的数最大,这意味着前面的所有特征都考虑到了。通过时间变化层进一步增强长程特征片段,输出包含运动成分信息的精炼表示x = {x_{t-n}, \ldots, x_{t-1}, x_{t}}。同时,我们通过输入本地短视频片段,利用SV-RCNet提取当前帧t的特征c_t \in \mathbb{R}^{1 \times 512}.

然后将当前特征{c}_t和远程多尺度特征\widetilde{L}_t转发给特征库算子。直观地说,直观地说,该操作符使用{c}_t来关注 ​​​​​​​\widetilde{L}_t,并将关注提示添加回来以增强当前特征{c}_t。我们在此基于非局部块设计算子,并采用注意机制,其中的非局部行为是由于在操作中考虑了\widetilde{L}_t的所有信息。具体而言,将标准非局部块[30]中的原始自注意替换为相关的远程特征\widetilde{L}_t, {c}_t。如图2 (c)所示,首先通过测量{c}_t\widetilde{L}_t之间的相似度来计算软权重。这里,我们使用高斯函数的扩展来计算嵌入空间中的相似度:f(c_{t}, L_{t}) = e^{\theta(c_{t})^T \phi(L_{t})}其中,\theta(c_{t}) = W_{\theta}c_{t} \quad \text \quad \phi(L_{t}) = W_{\phi}L_{t}为两个线性嵌入;两两计算是通过矩阵乘法进行的。那么非局部操作定义为:y_{t} = \text{Softmax}\left(\frac{1}{N}f(c_{t}, \widetilde{L}{t})\right) \cdot g(\widetilde{L}{t})

其中N为特征缩放的归一化因子,Softmax计算用于执行注意行为。我们还考虑一元函数g以线性嵌入的形式:g(L_{t}) = W_{g}L_{t},计算\widetilde{L}_t的表示。与原始非局部块[30]的设计原则类似,我们利用算子g进行信息变换。通过将输入信号线性投影到潜在嵌入空间,避免了直接对输入信号进行相似矩阵的过于繁重的正则化。为此,非局部操作作为利用{c}_t\widetilde{L}_t之间的相似度评分从\widetilde{L}_t中提取有益线索。此外,由于外科手术视频的训练数据集通常是稀缺的,我们整合了层归一化和dropout策略来增强网络正则化,将y细化到\widetilde{y}_t。改进后的注意信息y,通过一个快捷连接与当前特征{c}_t恢复。在这方面,非局部算子输出一个增强的表示{r}_t,补充了原始的当前特征:

r_{t} = \hat{y}{t} + c{t}

然后我们将非局部存储操作符的结果​​​​​​​{r}_t{c}_t连接起来,得到一个1024维的特征向量。它被转发到两个完全连接的层来生成识别预测。请注意,最后的特征向量包含当前特征c两次,首先通过非局部存储操作符中的逐元素求和进行快捷连接,然后通过特征串联。通过从不同角度涉及当前特征的重要提示,可以实现最终特征向量的构建。逐元素求和可以进一步增强注意力特征 \widetilde{y}_t​,以实现隐式性能提升,而串联操作可以减轻破坏两个特征各自初始属性的问题。因此,当前特征 {c}_t直接暴露给后续的分类器,以进行显式结果增强。

D. 目标函数和训练细节

  1. 目标函数:我们采用 softmax 交叉熵函数来计算这个多类别识别任务的损失: L(x_t; \beta_R, \beta_L, \theta_V, \theta_N) = -\log \hat{p}_z^t(x_t - n:t, L_t), 其中 \hat{p}^z​ 表示帧 x_{t}属于阶段类别 z 的预测概率;{g}_t 表示帧 x_{t}​ 的实际标签;βR​,βL​,θV​,θN​ 表示骨干网络(即 ResNet 和 LSTM)、时序变化层、和非局部存储操作符的参数。在给定局部短片段  和相应的长程特征 ​编辑​ 的情况下,我们的方法将模型调整到 gt​,可以同时优化 βR​,βL​ 的权重以进行时空特征学习,并在整个端到端训练过程中涉及权重θV​,θN​。
  2. 训练过程:由于通过整个长程存储器库 LB 进行反向传播的计算复杂性,不可行对整个模型进行联合训练(参见图2)。相反,我们将 LB 视为一个固定的组件,并在这个第一阶段获得每个特征,而在此后不再更新。请注意,我们还尝试了交替的在线更新策略来优化模型 [34],但结果并没有明显改善。这样的外部存储通过单一的计算传递也避免了网络训练中的重复和冗余成本。
  3. 具体而言,我们训练 SV-RCNet 来获取存储库 LB 在第一阶段。考虑到在 SV-RCNet 中,ResNet 的参数规模远大于 LSTM 层,我们使用在 ImageNet 上预训练的模型来初始化 ResNet 的权重,并使用 Xavier 正态初始化器随机初始化 LSTM 权重。接下来,我们通过使用第一阶段训练模型的已训练模型来初始化 TMRNet 的权重 [βR, βL],并随机初始化其余部分的参数 [θV, θN]。TMRNet 的所有参数都朝着等式4进行联合优化,而不干扰时空特征的端到端训练过程。为了调整学习率,在前两个学习阶段,将训练集的部分数据拆分为验证数据。为了充分利用数据,我们进一步将验证数据添加回网络进行微调。因此,形成了三阶段的学习过程。在推断过程中,我们按顺序从每个视频中创建输入帧剪辑,以滑动窗口的形式,每次向前移动一个帧。存储库通过逐渐存档帧特征来保持实时更新。因此,可以直接从存储库中提取之前帧的长程支持特征,以增强当前帧的特征,而无需预先计算。
  4. 实现细节:我们的框架是基于 PyTorch 实现的,使用了4个 NVIDIA Titan Xp GPU 进行训练。多 GPU 设置使得批量大小能够达到400帧。为了避免网络学习中的偏差,我们包含了从整个训练数据集中随机抽样的各种样本。我们经验性地将剪辑数设置为最大40,每个长度可达到10秒,即 n+1=m+1=10。来自存储库的支持时序特征的长度设置为30秒,即 L=30,以获得其最大功效(参见表V和表VI)。我们使用同步随机梯度下降法训练模型,动量为0.9,权重衰减为5e-4。对于学习率,我们在第一阶段将 ResNet 初始化为5e-6,LSTM 初始化为5e-5,以获得存储库。在第二阶段,初始学习率降至5e-7用于 SV-RCNet,其他部分为5e-6,考虑到我们使用来自第一阶段的预训练模型来初始化模型参数。在第三次微调阶段,对于 SV-RCNet 保持初始学习率为5e-7,其他部分为5e-6。当验证损失在前两个阶段趋于平稳时,学习率除以10,第三次微调阶段学习率保持初始化不变。我们总共训练 TMRNet 4000 次迭代,整个训练过程耗时约3小时。在视频推理中,我们使用单 GPU 配置。对于数据预处理,我们遵循之前的工作,将原始视频从25fps降采样到1fps,以丰富网络训练的时间信息。我们将帧从原始分辨率 1920×1080 和 854×480 调整为 250×250 以节省内存并减少网络参数。通过进行224×224裁剪、随机镜像和颜色抖动的数据增强,扩大训练数据集。