巴塞尔开源模型从 CT 读出体重,误差 3.9 公斤、年龄 4.4 岁

Extending TotalSegmentator: Predicting Patient and Acquisition Characteristics from CT and MR Images

Jakob Wasserthal, Joshy Cyriac, Michael Bach, Kimia Mozahheb Yousefi, Minh-Son To, Máté Sik, Cédric Hémon, Thomas Weikert, Martin Segeroth

cs.AI

2026-08-30

巴塞尔医院训练 3D ResNet-10,从 CT/MR 体积直接读出身高体重年龄性别与扫描参数。内部 CT 体重 MAE 3.90 公斤、身高 3.68 厘米、年龄 4.42 岁,优于分割加 XGBoost,CPU 约 20 秒。

这篇在解决什么

PACS 里的 CT、MR 动辄几十万例,下游要按体重调对比剂、按序列挑算法、按覆盖范围分流,真正依赖的却是 DICOM 头。那些字段经常空着、过期,或者是护士目测填进去的。体重、身高、年龄、性别直接影响对比剂剂量、化疗剂量和风险分层;管电压、卷积核、噪声决定定量指标能不能跨机比;有没有打对比剂、打了多久,决定这张图是动脉期还是门脉期。

先前工作通常只攻一项:scout 图估体重、剂量报告估体重、分割体积估身高,或者单独做 CT 对比剂分类、MR 序列分类。缺的是一个开源、CT 和 MR 都能用、一次前向同时吐出患者属性和扫描参数的工具。巴塞尔大学医院的 TotalSegmentator 团队这次补的就是这一块。

方法

训练数据来自该院 2011 年 1 月到 2025 年 8 月的临床检查:57,291 例 CT(34,257 人)、43,200 例 MR(29,073 人)。标签卡了有效范围,体重 35–160 kg、身高 125–220 cm、年龄 12–100 岁,优先躯干,把头、关节、肢体和信息量低的协议往后排。内部测试 501 例 CT、636 例 MR,视野混杂;外部用 TCIA 的 Spine-Mets-CT-SEG 共 54 例,再裁成只含胸、只含腹盆,看覆盖范围怎么拖误差。

CT 和 MR 各训一个 3D ResNet-10,五折集成。体积转到最近的标准方位,重采样到 2 mm 各向同性;CT 中心裁或垫到 240×240×240,MR 到 210×210×150。共享骨干加一个线性头,连续量和编码后的类别一起做 z-score,Huber 损失(β=1)联合优化。40 个 epoch,Adam 学习率 5×10⁻⁴,随机空间裁切加三轴独立翻转。

两端都预测体重、身高、年龄、性别、有无对比剂、头尾椎体覆盖和噪声分。CT 再加厂家、管电压、管电流、卷积核锐度码、注射后时间;MR 再加序列类别,包括 T1、质子密度、T2、FLAIR、STIR、T2、磁敏感、扩散、血管造影和其他。标签多数来自 DICOM;椎体边界取 TotalSegmentator 分割体积大于 100 体素的首尾椎(C1 到 L5)。

对照基线先跑完整套 TotalSegmentator 分割,把器官、骨骼、脂肪、肌肉的体积和中位强度喂给按目标分开的 XGBoost。基线自己就要先分割,CNN 直接看整幅体积。

结果

内部测试上,CNN 四个核心目标全面压过 XGBoost,八组配对比较经 Holm 校正后仍显著(CT 调整 P≤.042,MR ≤.030)。

模态方法体重 MAE身高 MAE年龄 MAE性别 F1
CT(n=501)CNN3.90 kg3.68 cm4.42 岁0.990
CTXGBoost4.90 kg4.29 cm6.60 岁0.969
MR(n=636)CNN4.34 kg4.62 cm7.13 岁0.970
MRXGBoost7.08 kg5.21 cm11.46 岁0.932

附加目标里,CT 对比剂 F1 0.963、厂家 micro-F1 0.988、注射后时间 MAE 5.36 秒,头侧/尾侧椎体误差 0.75 / 0.21 节。MR 序列 micro-F1 0.953,对比剂 F1 只有 0.823,椎体边界误差 2.83 / 2.50 节。管电压 MAE 5.58 kV 还能用;管电流 165.84 mA,这个输出基本没预测能力。噪声分 CT 1.54、MR 2.34。

多任务几乎没代价:四个核心目标合训和各训一个,调整 P≥.589,分不出差别。把扫描参数也塞进同一个头,体重、身高、性别不变,年龄 MAE 从 4.02 升到 4.42 岁(P<.001)。多任务不是免费的,贵在年龄这一项。

外部 54 例全覆盖胸腹盆 CT:4.45 kg、4.05 cm、5.17 岁,性别 F1 0.971,跟 XGBoost 的差距校正后不再显著。只看腹盆,CNN 体重 3.78 kg 对 XGBoost 的 7.63 kg;只看胸,年龄 5.86 岁对 11.53 岁,但体重误差涨到 6.24 kg。覆盖范围决定这条预测能不能信,论文也建议把预测的椎体覆盖一起返回给下游。

五折 CPU 推理:512×512×807 的 CT 要 20 秒、峰值内存 3.8 GB;320×250×72 的 MR 要 12 秒、1.7 GB。一次前向吐出该模态的全部输出。

为什么重要

这是给影像归档和自动化流水线用的补丁,不是给诊室替换体重秤的。DICOM 头空着或填错时,模型能做合理性检查、回顾性队列清洗、协议审计,以及按序列和覆盖范围把检查分到对的下游算法。BMI 和体表面积可以用预测的身高体重按 Mosteller 公式算出来,但高风险给药和呼吸机潮气量仍要实测。

开源、CPU 能跑、已经并进 TotalSegmentator,对已经在用这套分割工具的团队接入成本接近零。跟先前只估体重或只分类对比剂的专用系统比,一次前向覆盖两端模态和一长串扫描参数,工程上更省事。年龄误差在 4 到 7 岁,当一致性检查或成像生物标志可以,当法医年龄不行。

局限与存疑

标签大多来自 DICOM 或自动算法,本身可能是估的、过期的、填错的。卷积核码和噪声分是技术代理量,没有统一临床单位。18 岁以下样本不足,儿科别用。外部验证只有 54 例 CT,没有独立的 MR 外部集,附加目标也没做多中心测试。

训练还要求 DICOM 里已经有合格的体重身高年龄性别,模型是在「头信息齐」的检查上学会从影像反推这些字段的。头信息缺失的真实归档,分布会不会漂,论文没直接测。

管电流 MAE 165 mA,这个输出目前更像占位。MR 对比剂 F1 0.823、椎体边界差两节半,比 CT 差一截,论文归因于序列更杂、可用椎体标签更少。作者写明这些输出不该替换核实过的临床测量。

术语

原文与代码

社区讨论

相关论文

全部论文解读