FleXray: Universal Clinical X-ray Segmentation
Victor Ion Butoi, Vivek Gopalakrishnan, John V. Guttag, Adrian V. Dalca, Neel Dey
cs.CV, cs.AI
2026-09-23
从带标注全身CT在线投影仿真X光,再用Flux.2改外观,训练FleXray分割60种解剖结构;八个真实留出集平均Dice 0.875,只落后专用nnU-Net 0.039。
CT、MRI已经有TotalSegmentator这类工具,一张容积扫描能勾出上百个器官。X光年检查量比CT大一个数量级,定量工具却几乎空白。三维解剖压到二维探测器上以后,器官互相重叠,边界连放射科医生都标不准。公开数据也偏得厉害:12个公开X光分割集合计66.7万张图,标注集中在胸部心肺,手脚脊柱覆盖稀薄。
缺的不是片子,是覆盖全身、多种投照角度和外观的密集像素标注。没有这种标注,侧弯角度、术中导航、历史片库里的解剖标志物都还得靠人眼和尺子。
FleXray不靠人标X光。数据引擎拿6个CT数据集、2,159名受试者(MOOSE贡献1,597例带密标的全身CT),在线生成数字重建X光(DRR):按X光物理做射线积分,同时把每个三维器官mask独立投影到探测器。一个像素可以同时属于多个结构,监督按多标签走,不切成互斥分区。
每一步训练随机抽解剖目标、视角、视野、放大率和锥束/正交几何,再给每个器官独立乘一个衰减系数,用来模拟骨密度、造影剂和病理造成的对比度漂移。CT很少扫到手和脚,于是补了4个真实X光集共764张:公开的手足标注,加上在MURA上新标的前臂和上臂。各来源的标签先对齐到同一套60类:颅骨、胸骨、骶骨、髋、肩胛、锁骨、四肢骨、12对肋骨、C1到L5每节椎骨,以及肺、心、肝、脾、肾。脑和骨骼肌这类X光上看不见的结构丢掉。左右成对结构共用一个通道。
解析DRR管得了解剖和几何,管不住散射、剂量、探测器响应和片上文字。团队用现成的Flux.2-klein-9b,按固定提示把MOOSE投影改成「看起来像真片」,并叠少量临床文字。Flux偶尔改解剖,非标准位更明显,所以另训一个只见过原始DRR的U-Net做质控:增强前后SoftDice掉太多的样本扔掉,大约4%。
六个来源标注覆盖不全。未标注通道不当事例阴性,避免把「没标」当成「不存在」;手片可以把脚部结构安全标成阴性。损失是Soft-Dice和BCE各一半。网络是从零训练的七层2D U-Net,特征宽从64到1024,每像素60路独立sigmoid。最终系统是五个网络的集成,五个网络只在「在线DRR vs Flux增强DRR」的配比上不同,推理再做16次测试时增强。推理不需要提示词,也不需要采集参数。输入分辨率256×256,训2,000个epoch。
八个完全留出的真实X光集覆盖腕、下肢、侧位肘、骨盆、术中透视、儿科躯干、肋骨和胸片。FleXray等权平均Dice 0.875。七个集显著超过PAXray、TotalSegmentator2D和FluoroSAM(其中六个p远小于0.001);VinDr-Rib上与专做胸片的PAXray没有显著差异(p=0.146)。各集自己训的nnU-Net平均0.914,FleXray落后0.039。DeepFluoro上反过来超过域内nnU-Net:0.915对0.866,该集只有70张训练透视、角度跨度又大。
| 方法 | 等权平均Dice | 设置 |
| FluoroSAM | 0.348 | 每类给真值文本提示和正点 |
| FleXray | 0.875 | 无提示、无采集参数 |
| 域内nnU-Net | 0.914 | 每个数据集单独训练 |
DeepFluoro 213帧里,离正位5–10°时Dice 0.925,35–40°仍有0.888。股骨、髋、骶骨全程掉不超过0.05;腰椎斜位超过25°时从0.840掉到0.751。同一设置下FluoroSAM均值0.711,TotalSegmentator2D只有0.371。
Flux增强几乎不改总体Dice(单模型0.870对0.870),但VinDr-Rib第5到第10肋平均加3.9分,第10肋加7.4分:下肋在解析DRR里常被腹腔脏器挡住。衰减随机化把DarwinCVD19肺炎肺Dice从0.894提到0.914(n=711),健康肺几乎不动(0.945到0.946,n=241)。肺炎片里Dice低于0.85的从122张降到50张。
下游三件事。脊柱侧弯Cobb角:AASCE 218张全部能量出弯曲,MAE 5.13°,低于专家之间6–7°的变异;轻中重分别2.08°、4.12°、7.50°;61%误差在5°内,88%在10°内。2D/3D配准:在xvr迭代配准里加上FleXray mask的双向Chamfer项。从手工正位初始化(中位误差324.5 mm、失败率100%)把中位mTRE从335.3 mm降到1.2 mm,失败率从86.4%降到12.7%。从姿态基础模型初始化时,8个超过50 mm的灾难失败全部回到10 mm以下,最差21 mm。少样本迁移:儿科髋发育不良MTDDH用6例(1%训练集)微调到平均Dice 0.896,从零训的nnU-Net是0.867;骨肿瘤检测BTXRD在10%数据(约130例)上AP50为23%对7%。
这篇把「X光没法定量」的瓶颈从网络结构挪到了训练分布。合成数据要泛化,关键是解剖、几何、外观三类覆盖,单张DRR像不像真片没那么重要。从零训的U-Net和微调SAM2 Large在同一数据引擎上没有可检出的精度差(0.870对0.876,区间含零),数据配方比自然图像视觉先验更值钱。
模型、代码、增强DRR数据集和本地浏览器工具都开源。已经有X光存档、想批量抽解剖测量,或给2D/3D配准加语义梯度的团队可以直接试。这是一步到位的工程迁移:把CT/MRI上已经跑通的全身分割思路搬到X光,靠仿真补标注。
作者写得很清楚。有真值的评估集太少,定量实验里没有任何带大量临床叠字的数据集,尽管真片上很常见。CT源主要是仰卧成人、四肢经常出野,手脚靠764张真片硬补,没见过的投照几何仍会失败。病理、植入物、手术器械没有额外合成,严重创伤等强分布外样本会崩。
几处需要打折扣。Radiopaedia的18张野外片只有定性图,没有Dice。五个网络集成再加TTA,把单模型0.866抬到0.875,增益有限,延迟到1.24秒、显存峰值2.36 GB。BTXRD测试集全是阳性片、没有正常对照,AP50不能直接当筛查性能读。Cobb角流水线要求至少三节可用椎骨,重度弯曲误差仍到7.50°,已经贴近专家间变异的上限。