资讯动态

Vesselformer:用Transformer直接生成完整血管图,告别拓扑断裂

发布时间:2026/10/15 22:29:27 来源:尧图企业网站定制
1. 为什么图像里的血管最终要落成一张图1.1 分割mask和血管图之间隔着临床需求第一次看到Vesselformer这个标题大多数人会把目光落在后半截——从图像直接生成完整的三维血管图。但我觉得真正值得注意的是Complete这个词。做过血管分割的都知道把三维血管从影像里分出来早就是成熟活了真正难的是让结果连得对、连得全。一张CTA/MRA里上百条血管分叉、缠绕、贴行像素级分割可以做得很好看但一旦要问哪根血管从哪里分叉、通向哪里分割结果就露馅了断裂、错连、多连全是拓扑层面的错误。这篇工作想解决的就是这个完整。临床医生看血管看的是血流从哪里进来、在哪里分叉、哪一段狭窄。算法如果只给到一个体素级别的mask医生还要自己在里面找分叉点、找中心线费时费力。更重要的是很多下游计算根本不知道怎么用mask。比如介入手术里规划导管路径要的是从主动脉到某个远端分支这样一条路径路径计算必须在图结构上跑图搜索而不是在mask里做形态学操作。分割只是第一步把分割结果转成树状结构、再把树结构转成可执行的路径中间每一步都是手工活。所以从应用角度看血管的图结构不是可选的建模方式而是刚需。Vesselformer这个研究方向本质上是把形态分割任务重新定义成了结构生成任务。目标从哪些体素是血管变成了血管系统长什么形状、怎么连接。这不是玩游戏式的定义切换而是把问题放回它真正被消费的层面。图像只是血管的投影图才是血管的表达。1.2 中心线图三点好处和一道门槛以中心线为基底的图表示好处集中在三点。第一是参数量小一个大脑血管树用几千个节点就能表达比几十万体素的mask轻了好几个数量级内存占用、传输成本、交互速度都完全不同。第二是显式携带拓扑分叉点就是图中度大于2的节点血管段就是一条边连接关系是数据结构里明明白白写着的不需要事后推导。下游做路径规划图搜索直接跑做血流动力学建模顶点和边能直接映射到计算网格做统计分析图特征比体素质心特征稳定得多。第三是天然适合生成类模型图生成在计算机视觉和自然语言处理里都有成熟范式可以借鉴Transformer对序列结构的建模能力已经被验证过无数次把它迁移到血管图上顺理成章。但门槛也很明显直接从图像里估计图的节点坐标和连接关系比分割一个稠密volume难得多。因为输出不再落在规整的网格上而是落在没有固定顺序的图集合里。模型既要判断哪里有血管还要判断这些血管属于同一棵树还是不同的树更难的是还要在几个像素的尺度上把分叉点坐标回归准确。这个集合预测的难题也正是很多方法不敢正面碰它的原因。1.3 从分割后处理到直接生成的路线之争传统做血管树提取往往是分割模型先出一张概率图再骨架化、剪枝、断点连接需要手工调一堆参数。这套路线的每一步都只做局部决策骨架化只看邻域内形态剪枝只看分支长度和角度断点连接只看空间距离。等走到最后一步前面的噪声已经累积得很厉害了。我自己做过一段这种流程最深的感受是调参如炼丹。同一组参数在这张CTA上表现不错换到另一张MRI上就碎成渣。问题不在参数本身而在每一步都缺乏全局视野——判断某个断点该不该连接需要知道整条血管的走向判断某个分支是不是噪声需要知道它在整棵树里的位置。局部决策一定需要在最后进行大量全局修正但后处理阶段没有这个条件。Vesselformer所在的新路线是让模型自己端到端地把节点和边一起解码出来。两者的本质区别在于信息使用方式后处理方法只能看局部形态而端到端模型可以同时参考图像上下文、全局拓扑先验和血管生长的生物规律。这也是我建议读者把注意力放在图生成这个视角上而不是仅仅盯着网络结构的原因。架构是手段能不能把结构推理能力装进模型才是这个方向真正要回答的问题。2. 先看看旧路线的两个坑误差累积与局部视野2.1 坑一分割到骨架化每一步都在给下一步挖坑任何做过血管骨架化的人都能背出那条失败链路。概率图阈值选择稍高小分支就断了阈值稍低噪声变成伪分支骨架化之后有大量毛刺需要剪枝剪枝参数调完后有些真分支也被剪掉了最后还有断点连接得靠人工交互或手写规则。每一步都引入新的误差最后真值图上标注出来的拓扑和算法输出之间差距极大。真实数据里断点连接是最折磨人的环节。两个断点之间隔着几十个体素中间有噪声有另一条无辜的血管你要判断它们是不是同一根血管。人的判断依据是走向的连贯性、管径的一致性、周围血管的排列规律这些都是全局信息。但后处理代码拿到的只有局部体素顶多加一个距离阈值。所以结果必然是距离近的接对了距离远的一律接不上方向延续的接对了但转角平滑的就直接忽略。这不是工程不够细心而是分割任务和目标拓扑任务之间的gap。分割天然用体素级指标优化优化目标里并没有连不连得对这一项。你可以在损失函数里加权重、在CRF里加平滑项、在后期加一堆启发式规则但只要优化目标不是拓扑一致性模型就没有动力去学全局结构。无数人在这条路上挣扎最后都明白一个道理错误不是靠后处理修出来的而是从一开始就不该让它产生。2.2 坑二局部卷积和局部GNN撑不起长程拓扑即使跳过两步法直接把网络设计成从图像预测节点体素连接用卷积或者图神经网络来做也会撞上同一个天花板感受野不够。血管分叉点附近的信息常沿着直线延伸很远一根血管从头到尾可能跨越几十个体素。卷积网络要很多层才能把两端的信息揉到一起而实际训练中有效感受野往往远小于理论值最后模型对血管整体的走向没有概念只能凭借局部纹理硬猜。图神经网络虽然能沿着图传播信息但做血管生成时有个更扎心的问题邻接关系本身就是要预测的东西信息传播永远建立在不可靠的局部连边上。一层GNN传播一步如果第一步的连边就是错的后面再怎么堆层数都是错上加错。而且GNN的更新过程依赖固定的邻接结构血管生成这个场景里邻接结构是动态的、稀疏的、高度不平衡的——主干节点有大量边要决策末梢节点几乎没有边这让GNN的聚合方式很难统一设计。Transformer的全局注意力天然没有这个问题任意两个节点之间可以直接交互而不管它们在物理空间里相隔多远。注意力矩阵本身就隐含着哪两个位置应当发生关系的表征让模型在全局范围里衡量血管段之间的连接可能。这也是Vesselformer这个名字的底气——它把Transformer从语言和图像领域搬到图生成场景试图用全局建模能力来补上拓扑推理这块长期缺失的拼图。2.3 拓扑错误到底长什么样很多时候我们以为分割还不错的模型在上游根本用不了。我见过几种典型情况第一种是断裂一根完整的血管被切成几段每个片段都跟真值有不错的重叠但段与段之间相互不连通。像素级指标完全看不出这种问题因为每段都跟真值重合得很好。第二种是假连接两棵相邻血管在空间上非常贴近甚至相互贴行卷积分辨不开最后把本来不相通的血管连成了一个环。这种错误在图上表现为环路但血管系统本质上是树出现环路就意味着血流动力学分析直接失效。第三种是错接方向比如一个分叉点左支和右支离得很近模型把左支的远端接到了右侧的主干上。从像素层面看所有体素都覆盖到了从拓扑层面看整棵树的左右身份被调包了。这些错误在Dice分数上可能只差零点几但在结构上就是致命的。理解这些错误形态才能理解为什么这篇文章要把完整当成卖点。不是分割精度不够而是现成的指标根本衡量不了拓扑质量。一个能够完整生成的模型要去解决的正是这些在像素指标里隐身、但在实际应用中致命的问题。3. Vesselformer的解法让注意力在图空间里发挥作用3.1 整体设计编码器给图像建模图解码器负责生成Vesselformer的基本思路可以分成两条线。图像侧用一个编码器把三维影像变成多层特征负责提取局部纹理和上下文图侧用一个图解码器在特征引导下迭代地预测节点和边。图像编码器可以是常规的卷积分层结构这个没什么好说的大家都有成熟方案。真正的设计空间在图解码器围绕哪些位置有节点、节点之间是否连接、节点属于什么分支类型三个问题做输出。两个模块之间通过交叉注意力打通。为什么需要这个交叉注意力因为图像特征和图特征是两种完全不同的模态图像特征是密集网格上的向量场图特征是稀疏点集上的离散结构。直接拼接或者简单的相加都行不通。交叉注意力让图像特征为图节点提供视觉线索——这个位置是不是真的落在血管中心线上管径大概多粗周围有没有相邻血管同时图节点反过来为图像特征提供结构约束——这里如果已经确定是分叉点那附近体素的特征解释就要朝分叉结构倾斜。训练的时候编码器和解码器是一起更新的。这意味着图像特征不是预先冻结的固定表达而是会被图生成任务反向塑造哪里需要更精细的分叉特征哪里需要更大的感受野都由下游图解码的需求来决定。这个联合优化的设计比单独训练分割、再训练图生成要合理得多。3.2 节点预测先粗后细不是一步到位血管图生成最常见的失败方式是节点位置不准。中心线差两三个体素连接概率再高也没用因为边预测把两个节点的特征一拼发现几何位置对不上直接判成无连接。所以节点位置预测是整个图生成的地基地基偏了上面全垮。Vesselformer这类方法通常会采用从粗到精的迭代细化思路。第一阶段在大尺度特征上生成稀疏的候选节点集合每个候选带着粗略的位置和类型标签。这个阶段的目标是别漏宁可多给一些候选也不能让真正的分叉点消失在早期筛选里。第二阶段用可变形注意力在原始分辨率附近往返采样把每个候选节点的位置往中心线的真实中心推。值得注意的细节是候选节点不是独立精修的。它们共享同一个上下文细化时会互相推挤——两个候选节点如果靠得太近模型会倾向于把其中一个推向旁边或者合并避免两个节点挤到同一个分叉上。这种集体决策比独立回归稳定得多。我读论文时特别留意到这一点因为之前见过很多方法就是对每个节点单独回归结果同一个分叉被预测成两个几乎重叠的点后续边预测也跟着乱套。3.3 边预测注意力看全局决策用局部排序有了节点之后边预测可以看作一个二分类问题任意两个候选节点之间有边还是没边。但对全图做完全连接的两两预测计算量爆炸而且会制造大量假边——两棵相邻血管上的节点在空间上可能非常近注意力也认为它们有联系但它们其实不属于同一个父分支。Vesselformer的做法通常是把候选节点按空间位置和图像特征分组在每组内部做稠密打分。分组这一步就用上了注意力机制计算出的亲疏关系注意力得分高的节点对进入候选集合得分低的直接剪掉。然后在候选集合内部再根据中心线连续性、管径一致性、图像强度相似度做综合打分生成边的候选集合。生成的边候选还要经过树结构先验过滤每个节点最多保留两条子边分叉点度数不能超过规定上限不能形成闭环。这一步把预测和后验修正结合得很聪明。注意力给全局可能局部排序给可解释性结构化约束给可执行性。血管本质是树树结构先验是这类任务里几乎免费就能拿到的大杀器不用白不用。3.4 可变形注意力在血管骨干上的直觉为什么会想到把可变形注意力用在血管图上先想想血管的形状长长的、弯曲的、粗细变化剧烈的管状结构。固定大小的卷积核要么覆盖太长把背景卷进来要么太短丢感受野。如果感受野覆盖的是血管一侧的背景提取到的特征就会被噪声污染。可变形注意力让每个图节点沿着血管方向主动采样一组带偏移的位置相当于网络自己学会顺着血管瞄远处。注意力计算的每个头可以关注不同方向一个头顺着血管往上游看找分叉源头另一个头沿下游看找末梢还有一个头垂直管壁看管径变化。这样既躲开背景噪音又保持和末梢的联系。这个设计放在血管场景里有天然的物理意义因为血管是高度方向性的结构而可变形注意力恰好允许模型按方向采样。读这篇论文时我建议把可变形注意力理解成用注意力实现的、自适应的弯曲感受野——它解决的是结构生成中最核心的感受野矛盾要全局就不能太局部要局部就不能全全局可变形是当下工程上比较靠谱的折中。4. 图生成任务里训练和评估才是真正的新大陆4.1 输出是一组无序对象损失函数得先解决配对问题图生成的第一个麻烦在训练时就会出现模型输出的节点和真值节点之间没有一一对应的顺序关系。你不能直接让第k个输出对齐第k个真值因为输出里的第k个和真值里的第k个根本不是同一个血管分叉。这是集合预测类任务共同的特点也是初入这个方向的人最容易卡住的地方。主流做法是二分图匹配在匈牙利算法意义下找到预测和真值之间的最优对应然后在匹配对上计算位置回归和类型分类损失。翻译成人话就是——先让机器自己决定我的哪个输出对应你的哪个真值匹配总代价最小的方案胜出然后基于这个方案算损失。听起来不复杂但匹配距离的设计非常关键。太严格会让模型拼命惩罚微小的偏移一个节点偏了两个体素就整体匹配失败太宽松又会让位置区分度丢失模型觉得节点往哪放都行。这类损失设计经验是论文里最容易语焉不详但最影响结果的地方。另外类型分类也有讲究。血管节点不是同质的起点、分叉点、普通点、端点各自的语义完全不同。对每个匹配对不仅要回归坐标还要判断它是什么类型的节点。这个分类信号在训练早期就能给模型很强的结构化指引让它知道普通血管段和分叉处在特征上应该有本质区别。4.2 像素指标骗人拓扑指标才算数评估一个血管生成模型不能只看Dice。Dice衡量的是体素重合度一个把相邻血管糊成一团的分割结果也能拿到很高的Dice但在临床上完全不可用。我自己做实验时吃过这个亏模型输出一塌糊涂Dice却随着训练稳定上涨误导了我好几周。我强烈建议任何做这个方向的人同时报告以下几类指标ClDice中心线Dice评估预测的中心线和真值中心线的重合度比普通Dice更关心结构。节点命中率预测节点落在真值中心线附近一定容忍半径内的比例评估节点定位能力。连接命中率预测边真假阳性之间的平衡评估连接推理能力。连接错误率全局连接与真值不一致的占比这个指标最直接反映拓扑质量。论文里往往列一个大表格对照这四类指标能看出不同方法到底强在哪。单纯Dice高而ClDice低的模型基本可以断定是把血管轮廓画粗来凑重合——靠膨胀血管粗细提升重叠率真正的中心线结构其实根本没学到。如果一篇工作不报告ClDice和连接错误率坦白说它的结果需要打一个问号。4.3 真值本身也有模糊地带稀疏标注带来的度量陷阱血管的分叉点标注从来不是铁板一块。同一个分叉结构不同专家标的位置可能差两三个体素骨干血管和分支的连接处更是没有公认的明确边界。所以做评估时要有容差意识。匹配半径设得太小所有方法的指标都会变得很差因为预测节点和真值节点哪怕都落在中心线上只要坐标差几个体素就判错半径设得太大方法之间的差距又被磨平什么都比较不出来聪明。论文里通常会把实验结果随半径变化画成曲线看方法间的优劣在多大范围内保持稳定。这一栏是很多人忽略的但我觉得它是客观判断工作价值的最重要参考。如果方法A只在匹配半径很小的时候赢方法B那可能是A的节点定位确实更准如果方法A在半径从2到8的变化里始终赢那才是结构层面的真优势。下次看论文建议先找这条曲线它比任何宣传性的总结都有说服力。5. 我看到的实际效果和接下来要啃的硬骨头5.1 效果上拓扑完整性的提升比想象中更明显从该方向典型结果看Vesselformer的工作带来的提升集中在拓扑层面而不是像素层面。最直观的改善是断裂率和假连接率两个数字同时下降。传统两步法在高分叉密度区域生成的血管树会爆炸成一小片孤立碎片每个碎片内部的中心线可能都对但碎片之间没有任何连通性。图生成方法能把这些碎片重新编成一颗可追溯完整路径的树。从应用角度说这种提升对做手术导航的人是有决定性意义的。哪怕只是把还有一些断点需要手动接变成树已完整、仅个别分支需要微调工作流程的舒适度都是天壤之别。做介入手术规划的团队很多时间都花在手工修补分割结果上找出断点、判断走向、手动连线。一个能把修补工作从必需步骤变成可选微调的算法实际价值远大于指标表上几个百分点的提升。5.2 代价图序列的长度让人头疼血管图生成的规模瓶颈非常现实。大脑血管树可能有数千个节点解码器每次迭代在三维空间中处理数千个查询加上交叉注意力里的参考点数量显存和算力的消耗远超分割任务。三维特征图的本身已经占了不少显存图解码的注意力计算再叠上去一张完整的颅内血管图很难在单卡上跑起来。这也是我理解为什么现在很多工作都只能在相对稀疏的图谱上做实验或者不得不压缩到较低分辨率再上采样。如果未来能把图生成拆成粗拓扑细位置两段让前一段在图上做结构决策后一段只在节点附近做高分辨率回归我想能把这个瓶颈推高一个量级。粗拓扑阶段不需要高分辨率特征计算量小细位置阶段只关注局部块不需要全局注意力。这种拆分思路也可能带来工程上的巨大收益。5.3 尚未解决的毛细血管级分支完整永远是个相对概念。目前大多数方法的评价尺度在主干和中等分支这个级别毛细血管级的末梢分支一方面影像分辨率本身达不到另一方面人力标注根本hold不住。你要让模型去生成一个连真值里都没有标注的结构训练信号本身就是缺失的无从学起。如果你打算在这个方向找切入点我建议不要指望模型能在几微米的末梢上创造奇迹。更现实的目标是把主干级别的完整拓扑做扎实并明确说明评价边界。这个边界意识在投稿和落地时都会少挨很多问询。与其承诺完整不如说清楚完整到什么尺度、在什么数据上成立。5.4 与分割模型结合不是替代而是互补读完全文我最想保留的一个判断是图像到图生成不会取代分割而是会和分割分工。图生成提供结构骨架分割提供精细轮廓各自做擅长的事。用图约束分割的连通性保证分割结果不会出现断裂用分割细化图的边界让图上的每个节点都能对应到精确的血管轮廓。两者之间的注意力融合跨任务一致性损失甚至联合推理框架——都是我觉得下一步值得投入的方向。或者也可以换个角度把分割当成图生成的输入预处理先把图像变成候选mask再从mask里提炼图结构。这比直接从原始图像生成图多了一步但对推理的稳定性可能反而有好处。我自己读这篇论文时最深的体验反而不是某个网络层有多精妙而是完整这个词带来的范式转变它把血管理解从信号预测拉回到了结构推理。对我这种做了多年分割的人来说这个视角值得长期跟踪。如果手头正好有CTA/MRA数据我的建议是不要急着复现网络先把你自己的分割结果转成图跑一遍连通域分析和拓扑指标。你会立刻明白这个方向解决的是什么问题——可能也会像我一样对多年来自以为是的分割效果重新评估一遍。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑