Vesselformer:面向从图像中生成完整3D血管图
摘要
从图像重建图结构(Image-to-Graph)是一项常见任务,尤其在从生物医学图像中提取血管图时尤为重要。传统方法通常采用两阶段流程:先进行分割,再进行骨架化。然而,在基于启发式规则对骨架进行中心线图剪枝的过程中存在模糊性,难以获得既紧凑又忠实于原始结构的图表示。近期,Relationformer 提出了一种端到端的解决方案,可直接从图像中提取图结构。但该方法未考虑边特征,尤其是半径信息------这在许多应用(如血流模拟)中至关重要。此外,Relationformer 仅能预测基于图像块(patch-based)的局部图。在本研究中,我们针对上述两个局限性提出改进:首先,我们设计了一种任务特定的标记(token),即"半径标记"(radius-token),用于显式捕捉两个节点之间的半径信息;其次,我们提出了一种高效算法,能够从多个图像块的推理结果中重建完整的大型3D图结构。我们在合成血管数据集上进行了实验,并首次实现了完整的3D血管图预测。代码已开源:https://github.com/chinmay5/vesselformer
关键词:Transformer、血管图生成、半径预测
1.引言
提取管状结构的图表示是医学影像和临床前研究中的一项关键任务。该任务旨在从多种成像模态中识别出以图形式表达的底层结构,例如血管图或神经元图。这种从图像到图(image-to-graph)的提取对于众多下游应用至关重要。例如,血管内血流模拟就需要完整的图信息。在血管场景中,图通常由节点和边组成:节点表示分叉点或曲率显著的血管位置,边则对应于血管段。
传统上,图像到图的问题被分解为若干子任务,通常包括血管分割、中心线提取、图剪枝和特征提取。这一完整流程不仅包含多个阶段,还依赖大量人工设计的启发式规则。此外,这类方法破坏了依赖所推断图结构的下游任务的端到端可微性。因此,开发一个可学习的图提取器对于弥合这一差距至关重要。
在计算机视觉领域,图像到图的任务也以不同形式出现,但其图结构更多体现语义关系,而非医学成像中的几何/结构关系。近期,Relationformer 方法(Shit 等,2022a)统一了这两类问题,并提出了一种通用的图像到图模型。Relationformer 是一种基于 Transformer 的架构,能够实现从图像到图的端到端处理。然而,Relationformer 仅预测结构图,未包含任何与图相关的特征信息。特别是对于血管应用而言,边特征(如半径)具有极其重要的意义。半径信息对于血流模拟(Shit 等,2022b)和血管图标注(Sobisch 等,2022)都是不可或缺的。此外,Relationformer 仅能从较小的图像块(patches)中生成局部图,而在许多实际应用场景中,下游任务往往需要整个三维体数据对应的完整图结构。
我们的贡献:为应对上述两个挑战,我们提出了 Vesselformer------一种基于 Transformer 的模型,用于预测包含边属性(如半径)的血管图。我们通过引入一种新设计的 [rad]-token(半径标记),在原有节点间相似性度量用于边预测的基础上,专门学习边特征的表示。其次,我们提出了一种高效算法,将从各个图像块中提取的局部图合并为整个图像体的完整图。最后,我们在一个具有已知半径信息的合成血管数据集上对所提方法进行了评估。
图1:Vesselformer 流程(右)与传统图提取流程(左)的对比。传统流程包含多个阶段:分割、中心线提取、图剪枝和特征提取;而 Vesselformer 是一个简洁、可学习的单阶段模型,可直接提取紧凑且具有特征信息的代表性图结构。
图2:Vesselformer 流程概览,包含高度并行化的逐块(patch-wise)图提取和高效的图合并策略。
2.相关文献
尽管在曲线结构的图像采集与分割方面已取得显著进展,但能够直接提取图结构的方法仍然寥寥无几。值得注意的是,现有方法均基于人工设计的规则,至今尚无完全自动化的解决方案。本节将讨论其中几种具有代表性的方法。
TubeTK(Aylward 和 Bullitt,2002)是一个开源工具,但它仅输出血管段(以管状形式表示),而无法生成完整的图结构。Vesselgraph(Paetzold 等,2021)使用 Voreen(Meyer-Spradow 等,2009)从中心线的每个点提取局部属性并构建图。然而,这种方法最终得到的是度量图(metric graph),会丢失血管的重要结构信息,例如扭转和曲率。类似地,VesselVio(Bumgarner 和 Nelson,2022)提出了一种从中心线提取图的处理流程。所有基于骨架(skeleton-based)的方法都面临一个共性问题:生成的中心线图过于稠密。目前尚无有效手段将其剪枝为既紧凑又结构忠实的图表示,从而难以无缝对接下游任务。基于此,我们的目标是以数据驱动的方式学习如何在图像中放置节点,以及如何连接两个节点。
从图像中提取图结构是计算机视觉领域的一个长期研究问题,其应用涵盖道路网络提取(Xu 等,2022;Can 等,2022)和场景图生成(Koner 等,2020)等方向。当前大多数现代计算机视觉中的图像到图提取方法均基于 Transformer 架构,利用集合预测(set-prediction)框架,快速将图像表示转换为离散的图结构。然而,这些方法均针对二维(2D)图像设计,尚不具备处理三维(3D)场景中显著增加的计算复杂度的能力。
3.方法
本节首先简要阐述问题定义,随后介绍基于集合预测(set-based prediction)的近期 Transformer 方法,特别是 Relationformer 这一最新变体。接着,我们将详细说明所提出的 Vesselformer 框架。最后,我们将介绍我们设计的图合并算法------Vesselmerger。
问题定义
给定一个输入图像 I∈RH×W×D×CI∈RH×W×D×C,图像到图(image-to-graph)任务的目标是预测一个图结构 G=(V,E)G=(V,E),其中 VV 表示顶点(或对象)集合,EE 表示边(或关系)集合。具体而言,第 ii 个顶点 vi∈Vvi∈V 包含一个由三维坐标表示的节点位置 vinode∈R3vinode∈R3 和一个六维边界框 vibox∈R6vibox∈R6;每条边 eij∈Eeij∈E 则关联一个标量边特征 eijfeat∈Reijfeat∈R(例如血管半径)。
背景
近期提出的 Relationformer 是一种基于集合预测的模型,构建于 Deformable DETR(Zhu 等,2021)之上。它首先通过一个主干网络(backbone)提取图像特征,生成图像 token。这些图像 token 随后经过一系列多头自注意力(multi-head self-attention)层处理。处理后的上下文化图像 token 通过交叉注意力(cross-attention)机制,将信息传递给可学习的 [obj]-token(用于表示对象/节点)和 [rln]-token(用于表示关系/边)。最终,精炼后的 [obj]-token 通过一个三层多层感知机(MLP)头输出节点坐标;而由两个 [obj]-token 与一个 [rln]-token 组成的三元组则通过另一个独立的三层 MLP 头预测对应的边。
图3:Vesselformer 架构
该架构同时学习以下三方面内容:以对象形式表示的节点位置、以边形式表示的节点间相似性,以及借助新提出的 [rad]-token 所建模的边属性(如半径)。值得注意的是,整个流程为单阶段、端到端可训练框架,能够同步完成节点预测、边预测和边属性预测三项任务。
3.1 Vesselformer
Vesselformer 的提出旨在克服 Relationformer 的局限性,其核心目标之一是整合边属性(如半径)的预测能力。需要注意的是,与边存在性的预测不同,边属性(例如血管半径)需要更深入地挖掘图像特征,因为半径信息隐含在血管的粗细(即厚度)之中。此外,边分类本质上是衡量两个节点之间的关联度(affinity),而半径则是一个具体的物理量。因此,我们认为边表示(用于判断连接关系)和边属性表示(用于回归物理量)应位于不同的嵌入空间中。基于这一直觉,我们提出了如下 Vesselformer 架构。
主干网络(Backbone) :
我们采用一个三维全卷积网络(3D fully-convolutional network)从输入图像中提取特征。最终的特征图被展平(flattened)以形成 Transformer 所需的输入序列,并在送入 Transformer 前加入位置编码(positional embedding)。
Transformer :
我们采用带有可变形注意力(deformable attention, Zhu 等,2021)的编码器-解码器架构。该机制通过利用图像特征的空间稀疏性,显著加速了 DETR 的训练收敛。我们的编码器保持不变,使用多尺度可变形自注意力(multi-scale deformable self-attention)。在解码器中,除了原有的 [obj]-token(用于节点)和 [rln]-token(用于关系)外,我们引入了一个新的可学习 token------[rad]-token,专门用于建模边属性(如半径)。
对象头(Object Head) :
对象检测头包含两个部分:一部分用于预测节点的空间位置,另一部分用于分类该节点是否为有效节点(而非背景)。此外,我们在每个节点坐标周围假设一个固定宽度的虚拟边界框(hypothetical bounding box)。分类分支使用交叉熵损失进行训练,而位置回归分支则结合 ℓ1 回归损失和广义 IoU(generalized IoU)损失进行优化。
关系头(Relation Head) :
关系头的设计与 Relationformer 类似。它接收由两个 [obj]-token 与一个 [rln]-token 拼接而成的三元组作为输入,并判断这两个节点之间是否存在边。该头通过交叉熵损失进行训练,并在训练过程中对边进行随机采样以提升效率。
半径头(Radius Head) :
鉴于半径信息属于不同的嵌入空间,我们为其设计了一个专用的回归头。该头由一个三层 MLP 构成,输入为两个 [obj]-token 与 [rad]-token 的拼接特征,输出为预测的血管半径。该头使用 ℓ1 回归损失进行训练。
图4:Vesselmerger 算法的示意图
该算法高度并行化,能够将从每个图像块中提取的局部图高效合并为完整的全局图输出。
3.2 Vesselmerger
在此,我们解决一个关键任务:将来自各个图像块(patch)的局部血管图合并为一个完整的连通图。该任务虽具挑战性,却至关重要,因为完整血管网络的保留是进行全图或全系统研究的前提条件。
在图像分割中,此类合并任务较为简单,因为预测结果位于规则的网格上。然而,在图空间中情况则大不相同:节点坐标是连续的实数而非整数索引。此外,图像分块操作常常会切断血管,导致复杂的断裂场景。对于图像而言,重叠块的处理相对容易,因为其基于规则的直角网格;但对于图结构,即使存在重叠区域,合并也十分困难------这本质上是一个复杂的子图匹配问题。为避免额外的计算开销,我们采用非重叠分块策略。
我们观察到,在三维空间中,非重叠分块会形成一种类似棋盘格(checkerboard)的模式。更重要的是,这种模式可被划分为八个互不相邻的子域 (如图4中用八种不同颜色所示)。这意味着任意两个相邻的块必然属于不同的颜色类别。因此,要将各块中的局部图拼接成全局图,我们只需比较相邻颜色类别之间的块,而无需进行全局节点两两匹配,从而大幅降低计算复杂度。具体而言,我们可以高效地并行处理不同颜色对之间的块合并操作。
为了判断来自两个不同颜色块的节点是否应合并,我们采用高效的体素级区域生长策略:通过调用灰度膨胀(grey-scale dilation)算法,扩展每个节点所代表的血管区域。随后,我们计算这两个扩展区域的交并比(IoU),若 IoU 超过阈值,则认为对应节点代表同一血管段,应予以合并。合并时,我们将所有待合并的节点收集起来,以其坐标的均值作为新节点的位置,并删除原有的旧节点。接着,我们相应地更新边连接关系:原旧节点的所有邻接边现在都连接到这个新节点上。需要注意的是,在此合并过程中,边的特征(如半径)保持不变。
该算法的流程如图4所示,并在算法1中详细描述(符号说明请参见表4)。其时间复杂度为 O(nk2)O(nk2),其中 kk 为单个块中的节点数量,nn 为总块数。由于单个块内的节点数远小于整个体积中的总节点数,该算法在实践中具有良好的可扩展性和效率。
4.实验
我们在一个公开可用的数据集上测试了所提出的方法(Tetteh 等,2020)。该数据集包含合成图像及其对应的血管图结构和真实半径信息。此类合成数据生成方法在医学影像领域已被广泛采用(Schneider 等,2012;Menten 筀等,2022;Gerl 等,2020)。
模型训练共进行 150 个 epoch,批大小(batch size)为 48。我们采用 AdamW 优化器(Loshchilov 和 Hutter,2017),包含 1 个预热(warmup)epoch,初始学习率为 0.0001,并使用多项式衰减(polynomial annealing)策略进行学习率调度。主干网络采用经过 3D 适配的 Squeeze-and-Excite 网络(Hu 等,2018)。自注意力层使用 6 个注意力头,隐藏维度设为 384。在实验中,[obj] token 的数量固定为 80,而 [rel] token 仅使用一个。
在评估方面,我们报告以下指标:
- 图 Wasserstein 距离(Sliced Maximum Discrepancy, SMD);
- 节点检测和边检测的平均精度(mean Average Precision, mAP)与平均召回率(mean Average Recall, mAR);
- 用于衡量拓扑一致性的 Betti 数误差:具体包括 Betti-0(连通分量数量)和 Betti-1(环状孔洞数量)的相对误差(以百分比表示);
- 对于半径预测,我们报告平均绝对误差(Mean Absolute Error, MAE)。
表1:定量评估结果
结果表明,Vesselformer 能够在预测血管图结构的同时,成功预测边属性(如半径信息)。我们在半径预测上取得了高精度,且未显著降低节点和边检测的性能。此外,Vesselmerger 能够高效地将各图像块中提取的局部图合并,生成整个 3D 体积范围内准确的全局血管图。
4.1 主要结果
我们从两个层面分析定量结果:一是块级别 (patch-level,尺寸为 64×64×6464×64×64),二是全图像级别(whole image level,尺寸为 300×300×600300×300×600)。为与先前工作保持一致,我们采用了 Relationformer 论文中作者所报告的相同超参数及训练/验证/测试划分。
在表1中,我们展示了在测试集上的各项评估指标。结果表明,我们的方法能够在几乎不增加计算成本的前提下,联合完成图结构推理与半径信息预测 。尤为重要的是,所预测的半径信息可广泛应用于多种下游任务。更关键的是,这一新增的预测任务并未损害原有节点预测和边预测任务的性能 。我们将这一良好特性归因于网络表达能力的提升,尤其是得益于所提出的 [rad]-token 的引入。此外,在整个三维体数据(3D volume)上的表现令人满意,显示出模型具备全局准确的图结构预测能力。
图5展示了测试集上的定性结果。第一行显示参考(真实)图,其边根据对应的半径值进行着色;第二行展示模型的预测结果。可以看出,模型成功预测了场景中的大部分节点和边。同时,通过颜色映射(colormap)可以观察到,预测的半径值与真实值高度相似,进一步验证了半径预测的有效性。
1. 图结构是什么?
在这篇论文中,"图结构"(graph)指的是对三维血管网络的一种抽象数学表示,具体包括:
- 节点(Nodes) :代表血管的关键点,通常是血管分叉点(junctions)或端点(endpoints),有时也包括沿血管中心线的采样点。
- 边(Edges) :连接两个节点,代表一段连续的血管段(vessel segment)。
- 边属性(Edge Attributes) :例如该血管段的半径(radius)、方向、长度等物理特征。
- 拓扑关系:整个图保留了血管的连通性------哪些血管相连、是否存在环路、有多少独立分支等。
✅ 简单说:图 = 血管骨架 + 拓扑连接 + 几何/物理属性 。
它比原始体素图像更紧凑、更结构化,便于后续分析(如血流模拟、病变检测、手术规划等)。
2. 传统流程 vs. 本文方法:分割之后为什么还要做这么多步骤?最终得到什么?
先澄清一个误解:
"分割不是已经得到了三维血管了吗?"
是的,分割(segmentation) 的确可以输出一个二值化的3D掩码 (mask),告诉你哪些体素属于血管。但这只是一个"实心"的、像素/体素级别的结果,没有结构信息。
举个例子:
- 分割结果像是一根"实心橡皮泥捏成的血管",你知道它在哪里,但不知道:
- 哪里是分叉?
- 血管主干走向如何?
- 各段有多粗?
- 是否形成闭环?
而临床或生物医学研究真正需要的是"骨架化+量化"的血管网络模型 ,也就是图结构。
传统多阶段流程的问题:
- 分割 → 得到血管区域(体素级);
- 中心线提取(Skeletonization) → 把实心血管"抽"成一条中心线(仍可能有毛刺、断裂);
- 图剪枝(Graph Pruning) → 去除中心线中的噪声、冗余分支;
- 特征提取 → 测量每段血管的半径、曲率等。
⚠️ 问题在于:
- 每一步都有误差,且错误会逐级传播(比如分割不准 → 中心线错 → 图结构错);
- 多个模块需分别调参,系统复杂;
- 半径等属性通常在最后单独估计,与图结构生成脱节。
本文做了什么改进?
- 端到端联合学习 :用一个统一的 Transformer 架构(Vesselformer),同时预测节点位置、边连接关系、以及每条边的半径。
- 引入特殊的 token(如
[obj]表示节点候选,[rel]表示关系,[rad]表示半径),让网络直接输出带属性的图。 - 避免多阶段流水线,减少误差累积。
✅ 最终输出:一个完整的、带半径属性的3D血管图(节点+边+半径+拓扑),可直接用于下游任务。
3. 这篇文章最终达到了怎样的实际有益效果?
从你提供的文本中,可以总结出以下实际价值:
✅(1)高效准确地重建全局血管图
- 通过 Vesselmerger 算法,能将局部块(patch)中的图无缝拼接成整个大体积(300×300×600)的连通图。
- 避免了复杂的子图匹配,计算高效(O(nk²)),适合大规模3D数据。
✅(2)首次实现图结构与半径的联合预测
- 半径是血管功能的关键指标(如狭窄病变判断)。
- 传统方法需后处理估计半径,而本文在图生成时同步预测半径 ,精度高(MAE低),且不牺牲节点/边检测性能(mAP/mAR 保持高水平)。
✅(3)保持拓扑正确性
- Betti 数误差小 → 说明生成的图在连通分量数量 (Betti-0)和血管环路数量 (Betti-1)上接近真实,这对血流动力学模拟至关重要。
- 例如:不能把一个闭环误判为两条断开的血管。
✅(4)端到端、可扩展、适用于真实医学场景
- 虽然在合成数据上训练,但方法设计考虑了实际部署需求(如非重叠分块、并行合并)。
- 输出的图结构可直接输入到:
- 血管疾病自动筛查(如动脉瘤、狭窄);
- 手术路径规划;
- 计算流体动力学(CFD)仿真;
- 跨模态配准等。
总结一句话:
这篇文章提出了一种端到端的深度学习框架(Vesselformer + Vesselmerger) ,能够从3D医学图像中直接、高效、准确地重建出带有半径属性的完整血管图结构 ,克服了传统多阶段方法的误差累积和效率低下问题,在精度、拓扑保真度和实用性上均取得显著进步。