信息速览

CTPelvic1K — 千例骨盆 CT 骨分割 AI-Ready Wikipedia
INFOBOX
| 字段 | 内容 |
|---|---|
| 数据集名称 | CTPelvic1K(千例骨盆 CT 数据集) |
| 英文全称 | CTPelvic1K: A Large-Scale Dataset for Pelvic Bone Segmentation from CT Images |
| 别名/简称 | Task11_CTPelvic1K(nnU-Net 任务代号) |
| 疾病分类(ICD-11) | NB52 腰椎或骨盆骨折(Fracture of lumbar spine or pelvis) |
| SNOMED CT | 118645006(骨盆骨结构)、122496007(腰椎结构)、1144746008(骶椎柱区域结构) |
| 数据模态 | 骨盆/腹部 CT(三维体数据) |
| AI 任务类型 | 3D 多类别骨结构语义分割 |
| 样本总数 | 1,184 例 3D CT volumes(320,000+ 切片) |
| 数据大小 | 17.0 GB(Zenodo 10 个压缩包) |
| 数据格式 | NIfTI(.nii.gz) |
| 许可证 | Zenodo 记录整体 CC BY 4.0;CLINIC 与 CLINIC-metal 子集按论文声明为 CC BY-NC-SA 4.0(非商业) |
| 访问级别 | 开放(Zenodo 直接下载) |
| DUO 标签 | GRU(通用研究)、NCU(非商业) |
| 语言 | 影像与标注无自然语言内容;文档与元数据为英文 |
| 首发日期 | 2020-12-14(Zenodo v1) |
| 最后更新 | 2021-02-08(tiny outlier 标注修正) |
| 发布机构 | 中科院计算所(ICT, CAS)、北京积水潭医院、中国科学技术大学苏州高等研究院 MIRACLE Lab、George Mason University、北京电子科技学院 |
| 官方主页 | GitHub: MIRACLE-Center/CTPelvic1K |
| 下载地址 | Zenodo record 4588403 |
| DOI | 10.5281/zenodo.4588403(数据);10.1007/s11548-021-02363-8(论文) |
| 引用次数 | 159+(Semantic Scholar,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 官方划分、预训练基线模型与标注映射脚本齐备;扣分项:子集 1-5 需自行到上游数据集官网获取原始图像并手动组装目录,COLONOG 公开标注数与官方描述存在缺口 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11 与 SNOMED CT 映射、骨盆骨折流行病学与临床任务定义、金标准描述)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:§4 DAIMS 数据字典(7 子集目录结构、四类骨标签体系、mask mapping back 机制)、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
审核方式:交叉审核
利益冲突声明:千方病案医数集与中科院计算所、北京积水潭医院、Zenodo 无任何商业利益关联。本页面不销售 CTPelvic1K 数据集本身,仅提供 AI 就绪指南与学术信息服务。编辑者未接受上述机构的任何形式资助。
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。CTPelvic1K 经 Zenodo 开放获取(Zenodo 记录整体为 CC BY 4.0),其中 CLINIC 与 CLINIC-metal 临床子集按论文声明以 CC BY-NC-SA 4.0 提供(仅限非商业使用),子集 1-5 的原始图像来自 KiTS19、MSD 等上游数据集,需同时遵守各自许可条款。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? CTPelvic1K 是截至 2020 年底全球首个大规模骨盆 CT 骨结构分割公开数据集,由中科院计算所联合北京积水潭医院等机构发布。它把 7 个不同来源的 CT 数据整合到统一标注体系下,共 1,184 例三维 CT volume、超过 32 万张断层切片,每例带腰椎、骶骨、左髋、右髋四类骨结构的体素级掩码(arXiv:2012.08721)。
为什么重要? 在它之前,骨盆骨分割只有小规模、单站点或手工方法的数据可用,深度学习模型难以学到对多站点图像差异、对比血管、粪便与食糜、骨折、低剂量、金属伪影等变化的鲁棒表征。CTPelvic1K 用"多域混合训练 + 迭代深度学习标注"直接回应了这两个瓶颈,官方 nnU-Net 基线在无金属体积上达到平均 Dice 0.987(DOI:10.1007/s11548-021-02363-8)。
我能用它做什么? 开发术前规划用的骨盆骨自动分割模型;研究多站点域泛化与域自适应;评估金属伪影下的分割鲁棒性(专门设计了含金属植入物的 CLINIC-metal 子集);或者把它当作骨结构分割的预训练语料迁移到脊柱、肋骨等任务。下载即用:Zenodo 上 17.0 GB、CC BY 4.0 开放获取。
§1.1 技术摘要
CTPelvic1K 的构建分三步。第一步数据汇聚:作者团队将 5 个公开发布的腹部/盆腔 CT 数据集(记为 ABDOMEN、COLONOG、MSD_T10、KITS19、CERVIX)与北京积水潭医院两个前瞻性临床队列(CLINIC、CLINIC-metal)汇总,把 DICOM 重格式化为 NIfTI 并按各站点 IRB 政策脱敏,得到 1,184 例覆盖多种表观变化的 3D CT。第二步标注:采用 AID(Annotation by Iterative Deep Learning)迭代标注协议——两位资深影像专家用 ITK-SNAP 手工勾画 40 例种子数据,训练网络后按每批约 100 例滚动预测、人工精修、再迭代,最终为 1,109 个无金属体积与 14 个金属体积生成四类骨标签,另留 61 个金属例无标注供未来无监督研究。第三步基线:官方以 nnU-Net 两阶段 3D U-Net 级联为基线(任务代号 Task11_CTPelvic1K),并提出基于符号距离函数(SDF)的后处理器,将 Hausdorff 距离较传统最大连通域后处理降低 15.1%(期刊版口径;arXiv v2 为 10.5%)。
核心事实速查表(全部数字均有出处,详见对应章节):
| 事实 | 数值 | 出处 |
|---|---|---|
| 3D CT volumes | 1,184 例(320,000+ 切片) | arXiv:2012.08721 |
| 有标注体积 | 1,123 例官方口径 / 1,106 例社区实测 | arXiv / openmedlab |
| 骨类别 | 4 类(腰椎/骶骨/左髋/右髋) | arXiv |
| 官方划分 | 665 / 222 / 236(另有 61 例无标注金属例) | arXiv |
| 数据体积 | 17.0 GB(Zenodo 10 包) | Zenodo |
| 官方基线 | nnU-Net 平均 Dice 0.987(无金属体积) | IJCARS 论文 |
| 引用次数 | 159+(Semantic Scholar,截至 2026-09) | Semantic Scholar |
§1.2 战略价值
维度一:临床侧——骨科手术规划的"底座能力"。 骨盆骨分割是骨折诊断、髋关节置换规划、术前三维重建与导航配准的公共前置步骤。北京积水潭医院是以骨科为专科特长的三级甲等医院,CLINIC 与 CLINIC-metal 子集直接来自真实骨科临床场景,其中金属植入物数据是公开数据集中少见的"术后金属伪影"实测样本,使得"分割模型在钢钉、钢板患者身上是否还准"这类问题第一次有了可量化的公开基准(arXiv:2012.08721)。
维度二:科研侧——多站点域移位的天然实验场。 7 个子集来自不同扫描协议、不同厂商与不同重建参数,z 轴体素间距横跨约 0.81 mm(CT 结肠造影)到 4.55 mm(MSD_T10),论文实验证明单站点训练在跨站点测试时性能显著下降、混合全部站点训练可大幅恢复泛化。这让它成为域泛化、测试时自适应、多域预训练等研究方向的理想测试床,也解释了其引用持续增长(159+,Semantic Scholar,截至 2026-09)。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 模态 | 标注结构 | 与 CTPelvic1K 的差异化 |
|---|---|---|---|---|
| CTPelvic1K | 1,184 例 3D CT | 骨盆/腹部 CT | 4 类骨(腰椎/骶骨/双髋)体素级 | 多站点混合 + 金属伪影子集 + 骨专科临床队列 |
| TotalSegmentator | 1,204 例 CT | 全身 CT | 104 类解剖结构 | 结构更全但单结构标注稀疏,骨盆仅整体轮廓级 |
| AMOS | 600 例(CT+MRI) | 腹部 CT/MRI | 15 类腹部器官 | 覆盖模态广,但不含骨性结构专项标注 |
| KiTS19 | 300 例 CT | 腹部 CT | 肾脏/肿瘤 3 类 | 被 CTPelvic1K 吸收为其子集之一(44 例含骨盆视野) |
| MSD | 10 个任务 | 多部位 CT/MRI | 每任务 1-3 类 | 挑战赛式划分;CTPelvic1K 复用其 Task10 的 155 例 |
上表对比数字来自各数据集官方发布页与论文。KiTS19/MSD 行的"被吸收"关系依据 CTPelvic1K 论文的数据来源说明(arXiv:2012.08721)。
§1.4 版本时间轴
| 时间 | 版本/事件 | 说明 |
|---|---|---|
| 2020-12(arXiv) | 首篇论文预印本 | arXiv:2012.08721 v1 公开数据集设计与基线 |
| 2020-12-14 | Zenodo v1 发布 | DOI 10.5281/zenodo.4588403,10 个压缩包共 17.0 GB(Zenodo) |
| 2021-02-08 | 官方标注修正 | 清除建库遗留的 tiny outlier 标注并重评基线指标(GitHub) |
| 2021-05 | 期刊正式发表 | IJCARS 16(5):749-756,DOI 10.1007/s11548-021-02363-8(PubMed 33864189) |
| 2021-06 | IPCAI 2021 报告 | 于慕尼黑 IPCAI 2021 会议(2021-06-22/23)配套发表(Zenodo) |
| 之后 | 仓库迁移 | 官方 GitHub 由 ICT-MIRACLE-lab/CTPelvic1K 迁移至 MIRACLE-Center/CTPelvic1K |
§1.5 典型应用场景
- 术前三维规划与导航配准:以四类骨掩码重建骨盆三维模型,用于髋臼骨折复位模拟、置钉路径规划与术中 CT-X 射线图像配准。
- 金属伪影鲁棒性评测:在 CLINIC-metal 的 75 例术后金属例上量化模型衰减,是公开渠道少有的金属伪影专项测试资源。
- 多站点域泛化研究:用 7 子集的站点标签做 leave-one-site-out 泛化实验,检验测试时自适应与域不变表征学习。
- 骨结构分割预训练骨干:先在 1,184 例骨盆 CT 上预训练 3D U-Net/nnU-Net 骨干,再微调到脊柱(如 CT-Spine1K)、肋骨(RibSeg)等相邻任务,降低下游标注成本。
- 教学与算法教学基准:作为 nnU-Net 官方收录任务(Task11_CTPelvic1K)的标准化练手数据,复现 Dice 0.987 量级的基线。
§2 医学背景
§2.1 ICD-11 编码映射
本数据集的分割对象是骨性结构而非疾病标签,因此 ICD-11 映射面向其临床下游场景——骨盆与腰椎创伤、退行性疾病的诊断与手术规划。
| 标签/临床场景 | ICD-11 编码 | ICD-11 术语(中英) | 说明 |
|---|---|---|---|
| 骨盆骨折(核心下游场景) | NB52 | Fracture of lumbar spine or pelvis(腰椎或骨盆骨折) | 归属 NB50-NB9Z「腹部、下背、腰椎与骨盆损伤」区块(ICD-11 索引) |
| 易混淆码提示 | NC76 | Injury of muscle or tendon at hip and thigh level(髋或大腿水平肌肉或肌腱损伤) | 编码相邻但指软组织损伤,与骨性结构无关,检索时勿误用 |
编码依据 ICD-11 MMS v2026-01 检索核实(截至 2026-09)。数据集本身不含 ICD-11 标签字段。
§2.1b SNOMED CT 解剖结构映射
| 数据集标签 | ICD-11 关联场景 | SNOMED CT 码 | SNOMED 术语 |
|---|---|---|---|
| 骨盆(整体区域) | NB52 | 118645006 | Bone structure of pelvis(骨盆骨结构) |
| 腰椎 lumbar spine | NB52 | 122496007 | Lumbar spine structure(腰椎结构) |
| 骶骨 sacrum | NB52 | 1144746008 | Structure of sacral vertebral column region(骶椎柱区域结构) |
| 脊柱通用参照 | NB52 | 421060004 | Structure of vertebral column(脊柱结构) |
左髋与右髋共享同一解剖概念,在 SNOMED CT 中以侧别修饰词区分,本表只列已核实的母概念码(截至 2026-09,来源 BioPortal 与 SNOMED CT Editorial Guide 2026-01)。
§2.2 疾病与解剖学简介
骨盆环由髂骨、坐骨、耻骨组成的髋骨与骶骨、尾骨连接构成,上方经腰骶关节承载脊柱、下方经髋关节连接下肢,是躯干力学传导的枢纽。高能量创伤(车祸、高处坠落)导致的骨盆骨折常伴大出血与脏器损伤,急诊 CT 是一线评估手段;老年人群中低能量脆性骨盆骨折则随老龄化持续增长。据 AMBOSS(2026-03 更新)流行病学数据:多发伤患者中约 20% 伴有骨盆损伤,而骨盆损伤患者中约 60% 合并多发伤,发病高峰年龄为 15-28 岁(AMBOSS Pelvic fracture)。手术规划(复位、内固定、关节置换)高度依赖骨性结构的三维重建,这正是不确定性最小的自动分割任务的用武之地。
临床上骨盆骨折按力学机制与稳定性有成熟分型体系:Tile 分型按骨盆环稳定性分为 A(稳定)、B(旋转不稳定)、C(旋转加垂直不稳定)三型;Young-Burgess 分型则按受伤力学分为前后挤压(APC)、侧方挤压(LC)、垂直剪切(VS)与复合机制(CM)四类。两类分型的影像学判定都建立在骨性结构边界准确勾勒之上——骨环是否断裂、断端是否移位、碎片是否游离,均以分割与三维重建为前提。这一依赖链解释了为何"碎片保留"(坑点 4)在临床语义上如此重要:被后处理抹掉的小碎片可能正是分型与手术指征判断的关键证据。
§2.2b 为何 CT 骨分割是"高确定性"任务
骨组织在 CT 的 HU 域中与软组织对比度天然极高(皮质骨约 +700 HU 以上),这使得骨分割区别于软组织器官分割:模型难点不在强度判别而在拓扑与边界——多骨相邻(髋骨与骶骨的骶髂关节面)、骨内变异(血管沟、骶孔)、以及视野截断。CTPelvic1K 的价值恰在把这些难点以千例规模摊开给模型:多站点采集带来扫描协议的极端差异,金属子集带来强伪影干扰,两者叠加构成骨分割从"实验室精度"走向"病房精度"的全部典型障碍。
§2.3 临床任务定义
| 任务 | 输入 | 输出 | 与本数据集的关系 |
|---|---|---|---|
| 骨结构分割(本数据集主任务) | 3D 骨盆/腹部 CT volume | 四类骨(腰椎/骶骨/左髋/右髋)体素级掩码 | 官方提供 1,123 例标注与基线模型 |
| 创伤急诊评估(下游) | 分割重建的三维骨盆 | 骨折线可视化、移位量化 | 数据集未提供骨折标签,需另行构建 |
| 手术规划(下游) | 三维骨模型 + 假体模板 | 置钉路径、臼杯位置 | 金属伪影环境由 CLINIC-metal 覆盖 |
| 剂量与质量监控(衍生) | 低剂量 CT | 骨结构提取 | 多子集涵盖不同剂量/重建协议 |
§2.4 患者人群画像
| 维度 | 公开来源子集(1-5) | CLINIC / CLINIC-metal |
|---|---|---|
| 来源机构 | 各上游公开数据集(腹部/结肠/肾脏/宫颈 CT 收藏) | 北京积水潭医院(骨科专科三级甲等) |
| 采集时间 | 各上游数据集发布时间为准 | 论文未按例披露 |
| 年龄/性别分布 | 论文未披露 | 论文未披露 |
| 就医类型 | 上游为常规腹部检查人群 | 骨科就诊/术后复查人群,金属子集为含植入物病例 |
| 种族构成 | 论文未披露 | 论文未披露 |
论文与 Zenodo 页面均未提供逐例人口学统计表;使用者在论文中报告人群结论时应如实注明该局限。这一诚实披露本身已写入 §7.1 偏倚表。
§2.5 临床价值定位
自动骨分割在临床链条中扮演"让后续一切量化成为可能"的角色,三个场景的价值密度依次递进:
| 临床场景 | 依赖骨分割的环节 | 时间敏感度 | 本数据集的对应支撑 |
|---|---|---|---|
| 急诊创伤 | 骨盆环完整性评估、出血源排查、移位量化 | 秒-分钟级 | 多协议混合训练覆盖急诊低剂量厚层扫描 |
| 矫形手术规划 | 假体型号选择、置钉路径、下肢长度恢复 | 术前离线 | CLINIC 临床队列 + CLINIC-metal 术后金属环境 |
| 放疗与随访 | 骨性参考点配准、疗效对比基线 | 离线 | 四类骨标签的拓扑一致性支撑长期随访 |
CTPelvic1K 的贡献是把这条链条中最基础的一步从"手工或半自动"推进到"经过千例验证的深度学习标准动作",并以 Dice 0.987 的无金属体积基线给出了可复现的精度锚点(DOI:10.1007/s11548-021-02363-8)。
§2.6 标注金标准描述
| 属性 | 描述 |
|---|---|
| 标注对象 | 1,109 个无金属体积 + 14 个金属体积 |
| 标签性质 | 体素级二值掩码,四类骨结构(腰椎/骶骨/左髋/右髋),单体积内多标签并存 |
| 标注工具 | ITK-SNAP 手工勾画 |
| 标注者 | 两位资深影像专家(论文未披露具体职称与年限) |
| 标注协议 | AID 迭代深度学习辅助:40 例种子全人工 → 网络每批预测约 100 例 → 人工精修 → 迭代直至覆盖全部目标体积 |
| 质控事实 | 2021-02-08 官方修正建库遗留 tiny outlier 标注并重评指标 |
| 研究金标准属性 | 适用于算法研发基准;未声称达到临床诊断级金标准 |
§3 数据集规格
§3.0 版本抉择矩阵
CTPelvic1K 无多版本迭代,但获取路径多样——Zenodo 包、上游数据集图像、社区镜像各覆盖不同需求,按下表选择:
| 你的需求 | 推荐获取方式 | 体积 | 理由 |
|---|---|---|---|
| 完整复现官方基线 | Zenodo 全部 10 个压缩包 | 17.0 GB | 唯一包含 dataset6/7 临床数据、全部掩码与预训练模型的官方集合 |
| 已有上游图像,只要标注 | Zenodo 对应子集 *_mask_mappingback.tar.gz + dataset6/7 |
合计约 202 MB + 14.8 GB | 子集 1-5 的 Zenodo 包只含映射回原尺寸的掩码,不含图像 |
| 只需官方预训练模型做推理 | Zenodo Models.tar.gz |
1.9 GB | 内含 nnU-Net 基线权重 |
| 快速原型/ notebook 实验 | HuggingFace 社区镜像 | 约 10 GB | 免逐包下载,但非官方维护,需自行核对完整性 |
| 上游图像本体 | 各上游数据集官网(KiTS19、MSD、COLONOG 等) | 视上游而定 | Zenodo 不托管子集 1-5 的原始图像(GitHub) |
§3.1 模态详情
- 成像模态:X 射线计算机断层(CT),三维体数据,Hounsfield Unit(HU)强度域,骨结构天然高对比。
- 解剖覆盖:以骨盆区为中心;公开子集源自腹部 CT 收藏,骨盆可能位于视野边缘或部分截断(这是 §6 坑点 2 的直接来源)。
- 重建协议:跨 7 个子集混合了不同层厚、重建核与剂量协议,z 轴体素间距跨度约 0.81-4.55 mm,xy 平面多为 512×512。
- 文件形态:统一 NIfTI(.nii.gz),由 DICOM 重格式化并脱敏而来。
§3.2 按子集样本数
论文 Table 1 口径(arXiv:2012.08721):
| 子集 | 来源性质 | 例数 | 含金属 | 标注情况 |
|---|---|---|---|---|
| ABDOMEN | 公开腹部 CT | 35 | 否 | 有标注 |
| COLONOG | CT 结肠造影 | 731 | 否 | 官方描述 731 例标注;社区实测公开可下载 714 例(缺口见坑点 2) |
| MSD_T10 | MSD Task10 | 155 | 否 | 有标注 |
| KITS19 | 肾脏肿瘤 CT | 44 | 否 | 有标注 |
| CERVIX | 宫颈癌 CT | 41 | 否 | 有标注 |
| CLINIC | 积水潭临床队列 | 103 | 否 | 有标注 |
| CLINIC-metal | 积水潭术后金属队列 | 75 | 是 | 14 例有标注(全在测试集),61 例无标注 |
| 合计 | — | 1,184 | 75 | 1,123 例有标注(官方口径) |
§3.3 数据格式
| 项目 | 规格 |
|---|---|
| 体数据 | NIfTI(.nii.gz),HU 域 |
| 掩码 | NIfTI(.nii.gz),整数标签:0 背景、1 腰椎、2 骶骨、3 左髋、4 右髋 |
| 命名规则 | NumberofPatient_NumberofSequence_*.nii.gz(患者编号_序列编号) |
| 映射包 | 子集 1-5 提供原始标注 + *_mask_mappingback.tar.gz(映射回未裁剪原图尺寸的掩码) |
| 目录组织 | 按子集分目录(dataset1-7),训练/验证/测试子目录见 §5 |
§3.4 存储大小明细
Zenodo record 4588403 共 10 个压缩包,17.0 GB(Zenodo,截至 2026-09):
| 文件 | 内容 | 大小 |
|---|---|---|
| dataset1_mask_mappingback.tar.gz | ABDOMEN 掩码映射 | 2.1 MB |
| dataset2_mask_mappingback.tar.gz | COLONOG 掩码映射 | 182.8 MB |
| dataset3_mask_mappingback.tar.gz | MSD_T10 掩码映射 | 7.9 MB |
| dataset4_mask_mappingback.tar.gz | KITS19 掩码映射 | 6.9 MB |
| dataset5_mask_mappingback.tar.gz | CERVIX 掩码映射 | 2.3 MB |
| dataset6_data.tar.gz | CLINIC 原始图像 | 8.8 GB |
| dataset6_mask.tar.gz | CLINIC 掩码 | 21.9 MB |
| dataset7_data.tar.gz | CLINIC-metal 原始图像 | 6.0 GB |
| dataset7_mask.tar.gz | CLINIC-metal 掩码 | 3.2 MB |
| Models.tar.gz | nnU-Net 基线模型权重 | 1.9 GB |
§3.5 标注方式
标注采用 AID(Annotation by Iterative Deep Learning)协议(arXiv:2012.08721):两位资深专家以 ITK-SNAP 手工勾画 40 例种子数据,训练分割网络后每批预测约 100 例,人工逐例精修后并入训练集继续迭代,直到覆盖全部目标体积。该协议把"纯手工"的标注成本压缩了约一个数量级,同时以"人工兜底每个预测"保住了体素级质量。迭代全程使用统一标注标准(四类骨的解剖边界定义一次固定,跨子集不漂移)。
§3.6 标注者资质与一致性
论文声明标注由两位资深专家完成并互相核对,但未披露标注者间 Dice/Kappa 等定量一致性指标,也未披露单例精修时长。使用者若需要标注一致性证据,应引用论文方法学描述而非自行推断。可核实的间接质量证据是:官方基线在无金属体积上 Dice 0.987,说明掩码自洽性极高;而 2021-02-08 的 tiny outlier 修正说明早期迭代确实遗留过离群体素(见坑点 5)。
§3.7 采集周期
Zenodo v1 于 2020-12-14 发布,2021-02-08 完成标注修正;论文与 Zenodo 页面均未披露各子集的逐例扫描日期区间。上表中公开子集的采集时间以各自上游数据集的发布说明为准。本页所有动态数字标注"截至"日期,采集周期缺失这一事实本身作为数据局限记入 §7.1。
§3.8 地域与机构覆盖
- 临床子集:中国北京,北京积水潭医院(CLINIC 与 CLINIC-metal,骨科专科场景)。
- 公开子集:ABDOMEN、COLONOG、MSD_T10、KITS19、CERVIX 汇集自国际公开发布的腹部/盆腔 CT 数据集,具体站点与厂商构成以各上游数据集文档为准。
- 牵头单位:中科院计算所(Institute of Computing Technology, CAS);S. Kevin Zhou 同时任职中国科学技术大学苏州高等研究院 MIRACLE Lab;合作单位包括 George Mason University 与北京电子科技学院(PubMed 33864189)。
§3.9 设备与扫描规格
论文未逐例公开 CT 设备型号与扫描参数表。已核实的事实边界:COLONOG、CLINIC、CLINIC-metal 的原始 DICOM 保留了扫描仪厂商信息(供多站点域移位分析使用),公开 NIfTI 分发包以脱敏后的体数据为主。子集间重建协议差异可由 z 轴间距分布间接刻画:COLONOG 约 0.81 mm、ABDOMEN 约 3.80 mm、MSD_T10 约 4.55 mm,全库平均 spacing (0.78, 0.78, 1.46) mm、平均 size (512, 512, 273);中位 spacing (0.78, 0.78, 0.8) mm、中位 size (512, 512, 515)(arXiv:2012.08721;openmedlab)。
§3.10 深度溯源链
| 层级 | 对象 | 核实点 |
|---|---|---|
| 论文预印本 | arXiv:2012.08721 | 2020-12 首发设计文档 |
| 期刊论文 | DOI 10.1007/s11548-021-02363-8 | IJCARS 16(5):749-756,2021-05,PMID 33864189 |
| 会议配套 | IPCAI 2021(慕尼黑,2021-06-22/23) | Zenodo 记录关联声明 |
| 数据主托管 | Zenodo record 4588403 | v1 2020-12-14,CC BY 4.0 |
| 代码仓库 | GitHub MIRACLE-Center/CTPelvic1K | 原址 ICT-MIRACLE-lab/CTPelvic1K,论文结论段引用原址 |
| 社区镜像 | HuggingFace Angelou0516/ctpelvic1k | 约 10 GB,非官方维护 |
| 二次整理 | openmedlab Awesome-Medical-Dataset | 提供社区实测标注数与标签分布核查 |
§4 数据结构
§4.0 目录树
Zenodo 各压缩包解压并按官方 README 组装建议整理后的典型目录布局(文件名遵循官方 NumberofPatient_NumberofSequence_*.nii.gz 命名规则):
CTPelvic1K/
├── Task11_CTPelvic1K_1_ABDOMEN/ # 子集 1:公开腹部 CT(35 例)
│ ├── data/ # 原始图像:需从上游官网另行下载
│ │ └── 1_001_1.nii.gz
│ └── mask_mappingback/ # 映射回未裁剪原图尺寸的掩码(2.1 MB)
│ └── 1_001_1.nii.gz
├── Task11_CTPelvic1K_2_COLONOG/ # 子集 2:CT 结肠造影(731 例)
│ ├── data/
│ └── mask_mappingback/ # 182.8 MB,全库最大的映射包
├── Task11_CTPelvic1K_3_MSD_T10/ # 子集 3:MSD Task10(155 例)
│ ├── data/
│ └── mask_mappingback/ # 7.9 MB
├── Task11_CTPelvic1K_4_KITS19/ # 子集 4:KiTS19(44 例)
│ ├── data/
│ └── mask_mappingback/ # 6.9 MB
├── Task11_CTPelvic1K_5_CERVIX/ # 子集 5:宫颈癌 CT(41 例)
│ ├── data/
│ └── mask_mappingback/ # 2.3 MB
├── Task11_CTPelvic1K_6_CLINIC/ # 子集 6:积水潭临床队列(103 例)
│ ├── data/ # 8.8 GB,Zenodo 直供
│ └── mask/ # 21.9 MB,103 例全标注
├── Task11_CTPelvic1K_7_CLINIC-metal/ # 子集 7:术后金属队列(75 例)
│ ├── data/ # 6.0 GB
│ └── mask/ # 3.2 MB,仅 14 例有标注
└── Models/ # nnU-Net 基线权重(1.9 GB)
└── nnUNet/
└── 3d_fullres/ # Task11_CTPelvic1K 两阶段级联
§4.1 DAIMS 字段字典
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| patient_id | sc:Text | 患者编号(NumberofPatient) | 6_015 |
样本级聚合键、划分隔离 | 无(脱敏编号) | 无缺失 | 官方发布列表 |
| sequence_id | sc:Text | 序列编号(NumberofSequence) | 1 |
区分同患者多序列 | 无 | 无缺失 | 1 起整数 |
| subset | sc:Text | 7 个来源子集之一 | CLINIC |
域移位分析、站点分层 | 无 | 无缺失 | dataset1-7 名称 |
| volume_path | sc:Text | CT 体数据 NIfTI 相对路径 | data/6_015_1.nii.gz |
DataLoader 索引 | 无 | 无缺失 | 文件系统 |
| mask_path | sc:Text | 骨掩码 NIfTI 相对路径 | mask/6_015_1.nii.gz |
监督信号 | 映射口径差异(坑点 1) | CLINIC-metal 61 例无文件 | 文件系统 |
| label_class | sc:Integer | 体素级骨类别 | 3 |
多类分割目标 | 无 | 0 为背景非缺失 | 0-4 |
| spacing_xyz | sc:Float | 体素间距(mm,x/y/z) | (0.78125, 0.78125, 0.80000) |
重采样、尺度归一 | 设备重建差异大(坑点 8) | 无缺失 | 约 0.6-5.0 |
| size_xyz | sc:Integer | 体数据维度 | (512, 512, 515) |
显存/patch 规划 | 无 | 无缺失 | z 轴 32-1,000+ |
| metal_flag | sc:Boolean | 是否含金属植入物 | true |
伪影鲁棒性分层评估 | 无 | 无缺失 | true/false |
| split | sc:Text | 官方 train/val/test 归属 | test |
复现官方协议 | 无 | 61 例金属无标注归属 train 目录 | train/val/test |
§4.2 标签分布
社区对公开可下载标注(1,106 例)的逐例核查显示四类骨标签的覆盖率为(openmedlab):
| 标签类 | 检出例数 | 检出率 | 解读 |
|---|---|---|---|
| 骶骨(标签 2) | 1,106/1,106 | 100% | 每例必含 |
| 左髋(标签 3) | 1,106/1,106 | 100% | 每例必含 |
| 右髋(标签 4) | 1,106/1,106 | 100% | 每例必含 |
| 腰椎(标签 1) | 1,104/1,106 | 99.82% | 2 例视野上界截断致腰椎缺失 |
各类体素在整体正类中的占比论文未披露;上表只给出"按例存在性"分布,使用时注意区分两个口径。自行统计各类体素占比可用下面的可运行片段:
import numpy as np
import nibabel as nib
import os
from collections import Counter
def label_histogram(msk_dir, n_bins=5, sample_limit=50):
"""统计掩码标签的体素占比(标签 0 背景 / 1 腰椎 / 2 骶骨 / 3 左髋 / 4 右髋)。
对大 volume 逐例流式统计,sample_limit 控制抽样例数以加速探索。
"""
counter = Counter()
files = sorted(f for f in os.listdir(msk_dir) if f.endswith(".nii.gz"))[:sample_limit]
for f in files:
seg = nib.load(os.path.join(msk_dir, f)).get_fdata(dtype=np.uint8)
ids, counts = np.unique(seg, return_counts=True)
counter.update({int(i): int(c) for i, c in zip(ids, counts)})
total = sum(counter.values())
return {k: round(v / total, 6) for k, v in sorted(counter.items())}
# 用法:
# label_histogram("/data/CTPelvic1K/Task11_CTPelvic1K_6_CLINIC/mask")
# 输出形如 {0: 0.93..., 1: 0.01..., 2: 0.02..., 3: 0.02..., 4: 0.02...}
§4.3 关键统计
| 统计项 | 均值 | 中位数 |
|---|---|---|
| spacing x/y/z(mm) | (0.78, 0.78, 1.46) | (0.78, 0.78, 0.8) |
| 体数据维度 x/y/z | (512, 512, 273) | (512, 512, 515) |
z 轴均值 1.46 mm 与中位数 0.8 mm 的背离说明数据被两类扫描协议拉扯:厚层低分辨协议拉高均值,薄层协议占据多数位置。把已知子集 z 轴 spacing 按厚薄分桶可以看得更清楚:
| 层厚桶 | 代表子集 | z 轴 spacing(约) | 工程含义 |
|---|---|---|---|
| 薄层(< 1.2 mm) | COLONOG、CLINIC、CLINIC-metal | 0.81-0.90 mm | 体数据大、显存压力大、边界精细 |
| 中层(1.2-3.0 mm) | KITS19、CERVIX 等腹部协议 | 1-3 mm | 均衡区,patch 规划最稳 |
| 厚层(> 3.0 mm) | ABDOMEN、MSD_T10 | 3.80-4.55 mm | 需插值放大、边界平滑、HD 易劣化 |
数值来源:arXiv:2012.08721 与 openmedlab。分桶边界为本页按论文数字归纳的工程分档,供 patch 策略参考。
§4.4 数据层级
受检者(脱敏编号 patient_id)
└── 检查(1 例 CT volume,含 sequence_id)
└── 序列(单期相;公开子集多为单序列)
└── 切片(z 轴逐层,多为 512×512)
└── 体素标签(0 背景 / 1 腰椎 / 2 骶骨 / 3 左髋 / 4 右髋)
数据集为横断面快照:无同一受检者的纵向随访配对,无配对多期相增强序列。凡涉及"患者级划分"的实验设计(见 §5.4)都以 patient_id 为隔离单位即可,不存在跨期重复计数问题。
§4.5 缺失值与信息性缺失
| 缺失形态 | 表现 | 性质 | 处理建议 |
|---|---|---|---|
| CLINIC-metal 61 例无掩码 | mask/ 目录无对应文件 |
信息性缺失:官方刻意保留给无监督/半监督研究,不是标注事故 | 只在无监督/自监督分支使用;勿混入监督训练标签列表 |
| COLONOG 标注缺口 | 官方描述 731 例标注,社区实测可下载 714 例 | 上游获取与公开托管间的口径差(坑点 2) | 按实际下载计数报告,注明官方口径 |
| 腰椎标签缺 2 例 | 1,104/1,106 检出 | 视野截断的物理性缺失 | 训练时视为负类即可,评估建议按例剔除 |
| DICOM 元数据 | NIfTI 保留少量头信息 | 隐私脱敏后的有意剥离 | 不要依赖 NIfTI 头还原扫描参数 |
§5 数据划分与使用建议
§5.1 官方划分
论文官方 Tr/Val/Ts 划分(arXiv:2012.08721):
| 划分 | 例数 | 组成说明 |
|---|---|---|
| 训练集(有标注) | 665 | 五个公开子集 + CLINIC 有标注例 |
| 训练目录(无标注) | 61 | CLINIC-metal 无标注金属例,存放于训练目录但不参与监督训练 |
| 验证集 | 222 | 模型选择与超参搜索 |
| 测试集 | 236 | 含 CLINIC-metal 全部 14 例有标注金属例 |
| 合计 | 1,184 | 665 + 61 + 222 + 236 |
CLINIC-metal 子集内部视角:训练 0(另有 61 例无标注放在训练目录)、验证 0、测试 14——金属伪影是纯粹的"测试期挑战",官方基线的金属环境成绩全部来自这 14 例。
§5.2 社区惯例划分
社区(openmedlab)沿用官方划分并转换为 nnU-Net 目录风格(imagesTr/labelsTr/imagesTs/labelsTs),同时实测公开渠道实际可下载标注为 1,106 例(相对官方 1,123 例有标注口径少 17 例,全部落在 COLONOG:实测 714 vs 官方 731)。复现第三方结果时应声明自己用的是哪一口径。
nnU-Net 风格转换的核心逻辑(可运行示意):
import os, shutil
def convert_to_nnunet_style(ct_root, out_root):
"""把官方子集目录折叠为 imagesTr/labelsTr/imagesTs/labelsTs 四目录。
依赖:官方测试清单(哪一例属 test 由官方 split 决定,社区转换
通常以 CLINIC-metal 的 14 例标注 + 各子集官方测试名单为准)。
"""
for split, img_out, msk_out in [("train", "imagesTr", "labelsTr"),
("test", "imagesTs", "labelsTs")]:
os.makedirs(os.path.join(out_root, img_out), exist_ok=True)
os.makedirs(os.path.join(out_root, msk_out), exist_ok=True)
# 遍历 7 个子集,按官方划分清单搬运并重命名为 Task11 前缀
# Task11_CTPelvic1K_{subset_idx}_{patient}_{seq}.nii.gz
§5.3 划分策略与泄漏风险
- 站点泄漏(低风险但需声明):测试集里 14 例金属例与训练集 CLINIC 共享同一医院、同一扫描环境,模型可能学到站点指纹而非金属鲁棒性。若以金属性能为卖点,应补充跨站点金属测试。
- 验证集误收 61 例无标注例(高频事故):61 个无标注金属例躺在训练目录,若用
glob全目录构造验证列表会静默混入。加载时以"掩码文件存在"为唯一过滤条件。 - COLONOG 口径漂移:不同工作分别以 731 或 714 报告 COLONOG 规模,直接对表会引入幽灵样本差。报告时写明口径并给下载清单哈希。
- 禁止按切片划分:同一体 volume 的切片高度相关,任何按切片打散的划分都构成泄漏;本数据集天然按 volume 组织,风险主要来自使用者自制的 2D 重划分。
§5.4 交叉验证建议
数据量(665 有标注训练例)允许 5 折交叉验证:按 patient_id 分层、保证每折内 7 个子集按比例出现(站点分层抽样),单折留出 CLINIC-metal 的部分金属例作折内金属探针。与官方固定划分结果并列报告,避免替代官方协议。
§5.5 外部验证建议
推荐三个层次的外部测试:(1) 同任务外部集——TotalSegmentator 的骨盆区域、VerSe/CT-Spine1K 的腰椎部分(Bonnet 论文已示范在 RibSeg、CT-Pelvic1K、CT-Spine1K 上的免调参评估,见 §7.8);(2) 异域临床环境——本院自采含金属病例;(3) 协议漂移测试——对薄层模型喂厚层重采样数据。外部验证数字必须有同行评审支撑方可引用(本页 §7.8 只录了满足该条件的 Bonnet 结果)。
§6 AI 就绪指南
§6.0 云端快速启动
无需申请、无需审批:Zenodo 开放下载,任何带 GPU 的 Linux 环境可直接复现。最小复现组合是 dataset6_data.tar.gz + dataset6_mask.tar.gz + Models.tar.gz(合计约 16.7 GB),即 CLINIC 子集加官方基线权重,半小时内可完成从下载到首次推理。
# 环境准备(Colab / Kaggle / 自备 GPU 机器通用)
pip install nibabel nnunetv2 scipy # 最小依赖:NIfTI 读写 + nnU-Net 推理 + 重采样
nvidia-smi # 推理最低 8 GB 显存(见 §6.8)
§6.1 快速上手
代码块前说明:以下代码假定目录结构为 §4.0 的
CTPelvic1K/根目录(环境变量CT_DATA_ROOT指向它);data_root拼接关系为os.path.join(CT_DATA_ROOT, subset_dir, 'data')与os.path.join(CT_DATA_ROOT, subset_dir, 'mask');最小可用子集是 Task11_CTPelvic1K_6_CLINIC(103 例全标注、Zenodo 直供图像,无需上游下载)。首个示例先验证数据完整性,第二个示例给出端到端 DataLoader。
import os
import nibabel as nib
CT_DATA_ROOT = os.environ.get("CT_DATA_ROOT", "/data/CTPelvic1K")
CLINIC_DIR = os.path.join(CT_DATA_ROOT, "Task11_CTPelvic1K_6_CLINIC")
img_dir = os.path.join(CLINIC_DIR, "data")
msk_dir = os.path.join(CLINIC_DIR, "mask")
# 1) 核对 CLINIC:103 例图像、103 例掩码应一一对应
img_ids = {f.split(".nii.gz")[0] for f in os.listdir(img_dir) if f.endswith(".nii.gz")}
msk_ids = {f.split(".nii.gz")[0] for f in os.listdir(msk_dir) if f.endswith(".nii.gz")}
assert len(img_ids) == 103, f"CLINIC 图像数异常: {len(img_ids)}"
assert img_ids == msk_ids, f"图像/掩码不匹配: {img_ids ^ msk_ids}"
# 2) 读取一例:HU 域体数据 + 整数标签掩码(0 背景/1 腰椎/2 骶骨/3 左髋/4 右髋)
sample = sorted(img_ids)[0]
vol = nib.load(os.path.join(img_dir, sample + ".nii.gz"))
seg = nib.load(os.path.join(msk_dir, sample + ".nii.gz"))
print("volume:", vol.shape, vol.header.get_zooms()) # 如 (512, 512, N), spacing
print("labels:", sorted(set(seg.get_fdata().ravel().astype(int))))
import torch
from torch.utils.data import Dataset, DataLoader
import nibabel as nib
import numpy as np
import os
class CTPelvic1KDataset(Dataset):
"""最小监督分割 Dataset:仅使用掩码确实存在的样本。
过滤规则以'掩码文件存在'为唯一条件——这会自动排除
CLINIC-metal 训练目录中的 61 例无标注金属例(坑点 3)。
"""
CLASSES = {1: "lumbar", 2: "sacrum", 3: "left_hip", 4: "right_hip"}
def __init__(self, data_root, subsets=("Task11_CTPelvic1K_6_CLINIC",),
target_spacing=(1.0, 1.0, 1.0), crop_size=(96, 160, 160)):
self.samples = []
for sub in subsets:
img_dir = os.path.join(data_root, sub, "data")
msk_dir = os.path.join(data_root, sub, "mask")
if not os.path.isdir(img_dir):
continue
for f in sorted(os.listdir(msk_dir)):
stem = f.split(".nii.gz")[0]
img_path = os.path.join(img_dir, stem + ".nii.gz")
if os.path.exists(img_path):
self.samples.append((img_path, os.path.join(msk_dir, f)))
self.target_spacing = target_spacing
self.crop_size = crop_size
def __len__(self):
return len(self.samples)
def _resample_to_target(self, vol, spacing):
# z 轴重采样到统一 spacing(坑点 8 的最简对策:统计层面统一)
factors = [s / t for s, t in zip(spacing, self.target_spacing)]
vol = torch.nn.functional.interpolate(
torch.from_numpy(vol[None, None]).float(), scale_factor=1 / np.array(factors),
mode="trilinear", align_corners=False)[0, 0].numpy()
return vol
def __getitem__(self, idx):
img_path, msk_path = self.samples[idx]
vol_nii = nib.load(img_path)
spacing = np.asarray(vol_nii.header.get_zooms()[:3], dtype=np.float32)
vol = vol_nii.get_fdata(dtype=np.float32)
seg = nib.load(msk_path).get_fdata(dtype=np.uint8)
vol = self._resample_to_target(np.clip(vol, -1000, 2000), spacing)
seg = self._resample_to_target(seg.astype(np.float32), spacing).astype(np.uint8)
# 中心裁剪/填充到固定尺寸(生产环境请换成骨骼质心引导的随机裁剪)
crop = self.crop_size
slices = tuple(slice(0, min(c, s)) for c, s in zip(crop, vol.shape))
pad = [(0, max(0, c - s)) for c, s in zip(crop, vol.shape)]
vol = np.pad(vol[slices], pad); seg = np.pad(seg[slices], pad)
return (
torch.from_numpy(vol[None]).float(), # (1, D, H, W)
torch.from_numpy(seg).long(), # (D, H, W)
)
loader = DataLoader(
CTPelvic1KDataset(CT_DATA_ROOT, subsets=("Task11_CTPelvic1K_6_CLINIC",)),
batch_size=2, num_workers=4, pin_memory=True)
for x, y in loader:
print(x.shape, y.shape, int(y.max())) # 预期标签值域 0-4
break
§6.2 数据获取
| 步骤 | 动作 | 要点 |
|---|---|---|
| 1 | 访问 Zenodo record 4588403 | 10 个压缩包共 17.0 GB,无需注册,CC BY 4.0 |
| 2 | 下载子集 1-5 的 *_mask_mappingback.tar.gz |
合计约 202 MB;原始图像另从上游官网下载 |
| 3 | 下载 dataset6_data.tar.gz(8.8 GB)+ dataset6_mask.tar.gz(21.9 MB) |
CLINIC 全量在包内 |
| 4 | 下载 dataset7_data.tar.gz(6.0 GB)+ dataset7_mask.tar.gz(3.2 MB) |
CLINIC-metal,掩码仅 14 例 |
| 5 | 下载 Models.tar.gz(1.9 GB) |
nnU-Net 基线权重,直接推理 |
| 可选 | HuggingFace 社区镜像 | 约 10 GB 打包镜像,注意核对文件数(HF) |
# 命令行下载示意(从 Zenodo 记录页获取各文件直链后逐包拉取并解压)
mkdir -p /data/CTPelvic1K && cd /data/CTPelvic1K
curl -L -o dataset6_data.tar.gz "https://zenodo.org/records/4588403/files/dataset6_data.tar.gz?download=1"
tar xzf dataset6_data.tar.gz
下载无需任何申请审批流程;Zenodo 页面当日列出的文件清单为权威口径,若页面文件名与本表有出入以页面为准。
下载完成后的完整性自检(把"官方口径"变成你机器上的断言):
# verify_ctpelvic1k.py —— 下载完整性自检脚本
# 依据:论文 Table 1 官方例数 + Zenodo 包清单 + 社区实测口径(坑点 2/3)
import os, sys
CT = os.environ.get("CT_DATA_ROOT", "/data/CTPelvic1K")
def count_nii(d):
return sum(len([f for f in files if f.endswith(".nii.gz")])
for _, _, files in os.walk(d)) if os.path.isdir(d) else None
CHECKS = [
# (相对路径, 预期 .nii.gz 文件数, 容差, 说明)
("Task11_CTPelvic1K_6_CLINIC/data", 103, 0, "CLINIC 图像"),
("Task11_CTPelvic1K_6_CLINIC/mask", 103, 0, "CLINIC 掩码"),
("Task11_CTPelvic1K_7_CLINIC-metal/data", 75, 0, "CLINIC-metal 图像"),
("Task11_CTPelvic1K_7_CLINIC-metal/mask", 14, 0, "CLINIC-metal 有标注掩码(61 例无标注属正常)"),
]
fail = 0
for rel, expect, tol, desc in CHECKS:
n = count_nii(os.path.join(CT, rel))
ok = n is not None and abs(n - expect) <= tol
print(f"{'PASS' if ok else 'FAIL'} {desc}: 期望 {expect}±{tol}, 实际 {n}")
fail += 0 if ok else 1
# COLONOG 等公开子集图像来自上游官网,此处只校验掩码映射包解压结果
if os.path.isdir(os.path.join(CT, "Task11_CTPelvic1K_2_COLONOG", "mask_mappingback")):
n = count_nii(os.path.join(CT, "Task11_CTPelvic1K_2_COLONOG", "mask_mappingback"))
print(f"INFO COLONOG mask_mappingback: 实测 {n}(官方 731 / 社区实测 714 口径,见坑点 2)")
sys.exit(1 if fail else 0)
§6.3 预处理全流程
官方基线(nnU-Net 两阶段 3D U-Net 级联,任务代号 Task11_CTPelvic1K)的预处理路线可直接借鉴:
import numpy as np
import nibabel as nib
from scipy.ndimage import zoom
def preprocess_volume(img_path, msk_path, out_img, out_msk,
target_spacing=(1.0, 1.0, 1.0), clip=(-1000, 2000)):
"""标准四步预处理:HU 裁剪 → 重采样 → 标准化 → 存盘。
步骤 1 强度裁剪:[-1000, 2000] HU 覆盖空气到皮质骨,骨分割无需窗宽窗位调参;
步骤 2 各向同性重采样:三线性对图像、最近邻对掩码(顺序不可颠倒,见坑点 1);
步骤 3 标准化:全局 z-score,骨盆区域不必逐例自适应;
步骤 4 保存同几何 NIfTI 对,保证 mask mapping back 口径一致。
"""
vol_nii, msk_nii = nib.load(img_path), nib.load(msk_path)
vol, msk = vol_nii.get_fdata(np.float32), msk_nii.get_fdata(np.uint8)
spacing = np.asarray(vol_nii.header.get_zooms()[:3], np.float32)
vol = np.clip(vol, *clip)
factors = spacing / np.asarray(target_spacing, np.float32) # >1 表示下采样
vol_r = zoom(vol, 1 / factors, order=1).astype(np.float32)
msk_r = np.round(zoom(msk.astype(np.float32), 1 / factors, order=0)).astype(np.uint8)
vol_r = (vol_r - vol_r.mean()) / (vol_r.std() + 1e-8)
nib.save(nib.Nifti1Image(vol_r, vol_nii.affine), out_img)
nib.save(nib.Nifti1Image(msk_r, vol_nii.affine), out_msk)
官方另提供一个针对本数据集的专属组件:lumbosacral_joint_sampling.py 腰骶联合采样脚本(GitHub)——腰骶关节与骶髂区是分割误差的富集区,均匀采样会让简单区域淹没困难区域,官方用定向过采样缓解。复现基线时建议直接采用。
§6.4 PyTorch DataLoader(生产级骨架)
§6.1 给出了最小可用 Dataset;生产训练建议在此基础上补三件事:安全增强、复合损失、类别加权。
import random
import torch
class PelvicTrainTransform:
"""骨骼分割安全增强集:仅几何 + 骨 HU 域安全项。"""
def __call__(self, vol, seg):
if random.random() < 0.5: # 随机水平翻转
vol, seg = torch.flip(vol, [-1]), torch.flip(seg, [-1])
seg = swap_hip_labels(seg) # 标签 3↔4 必须同步置换(见 §6.6)
if random.random() < 0.5: # 随机 90° 旋转
k = random.randint(0, 3)
vol, seg = torch.rot90(vol, k, [-2, -1]), torch.rot90(seg, k, [-2, -1])
if random.random() < 0.3: # 轻度高斯噪声(HU 域合理)
vol = vol + torch.randn_like(vol) * vol.std() * 0.02
return vol, seg
def swap_hip_labels(seg):
"""水平翻转后左髋(3)与右髋(4)互换,防止系统性标签错误。"""
out = seg.clone()
out[seg == 3], out[seg == 4] = 4, 3
return out
class DiceCE(torch.nn.Module):
"""Dice + 加权 CE 复合损失:腰椎(标签 1)体素量少,加权 2 倍。"""
def __init__(self, num_classes=5, ce_weight=1.0):
super().__init__()
self.ce = torch.nn.CrossEntropyLoss(weight=torch.tensor([0.1, 2.0, 1.0, 1.0, 1.0]))
self.ce_weight = ce_weight
self.num_classes = num_classes
def forward(self, logits, target):
ce = self.ce(logits, target)
probs = torch.softmax(logits, dim=1)
onehot = torch.nn.functional.one_hot(target, self.num_classes).permute(0, 4, 1, 2, 3).float()
dims = (0, 2, 3, 4)
dice = 1 - 2 * ((probs * onehot).sum(dims) + 1) / ((probs.sum(dims) + onehot.sum(dims)) + 1)
return ce * self.ce_weight + dice.mean()
§6.5 坑点清单(8 个,全部来自官方文档与社区实测)
⚠️ 坑点 1:mask mapping back——掩码与原图几何错位(分类:预处理陷阱)
问题:官方早期标注基于裁剪后的骨盆区,公开子集 1-5 的 Zenodo 包只提供"映射回原图尺寸"的
*_mask_mappingback.tar.gz;若把未映射的原始掩码与未裁剪的上游图像直接配对,标签整体错位。
症状:训练 loss 正常下降但验证 Dice 卡在 0.7 以下;把掩码叠加到图像上目视可见骨区域整体平移或翻转。
解决:
- 简单方法:只使用
*_mask_mappingback包内的掩码,与上游图像同名配对,忽略其他来源掩码。- 进阶方法:对每一例断言
image.shape == mask.shape且image.affine ≈ mask.affine(NIfTI 仿射一致),不一致即报警退出,把口径检查写进 DataLoader。- SOTA 方法:训练前跑一遍离线"几何审计"脚本,统计全库 affine 差异分布并输出审计报告;对必须使用裁剪口径的场景,统一改用官方 CLINIC/CLINIC-metal(这两个子集本来就是原生配对)。
参考:GitHub README(命名格式NumberofPatient_NumberofSequence_*.nii.gz与 mapping back 说明)
⚠️ 坑点 2:COLONOG 标注 714 vs 731 的公开缺口(分类:标签理解)
问题:论文官方描述 COLONOG 子集 731 例标注,但社区实测公开渠道实际可下载 714 例,官方 1,123 例有标注口径与实际 1,106 例存在 17 例差。
症状:复现第三方论文时样本数对不上;全库遍历统计与论文 Table 1 有静默出入。
解决:
- 简单方法:以"实际下载到的文件清单"为准报告规模,并在论文/报告中注明官方与实测两个口径。
- 进阶方法:下载后立即生成文件清单哈希(
sha256sum清单快照),保证实验可追溯。- SOTA 方法:向官方仓库提交 issue 确认缺口成因(上游许可撤回或托管遗漏),并在数据卡中固定记录你使用的快照版本。
参考:openmedlab 实测记录;arXiv:2012.08721 Table 1
⚠️ 坑点 3:CLINIC-metal 只有 14 例有标注且全部在测试集(分类:评估误用)
问题:75 例金属例中仅 14 例带掩码,且全部划入测试集;训练目录中的 61 例无标注金属例不参与监督训练。任何"在金属子集上训练再自测"的做法都违背官方协议。
症状:把 61 例无标注例误当作"标签全 0"或跳过过滤混入验证,导致金属环境成绩虚高或验证集被污染。
解决:
- 简单方法:DataLoader 以"掩码文件存在"为唯一过滤条件(§6.1 示例已内置),无标注例只进无监督/自监督分支。
- 进阶方法:把 14 例有标注金属例做 5 折交叉(折间按 patient_id 隔离)获得金属性能的置信区间,而不是只报单点均值——14 例的方差极大。
- SOTA 方法:用 61 例无标注金属例做测试时自适应或半监督一致性正则,这是官方留出设计的初衷;对照实验需固定 14 例测试集不动。
参考:openmedlab;arXiv:2012.08721
⚠️ 坑点 4:最大连通域(MCR)后处理误删骨折碎片(分类:预处理陷阱)
问题:传统后处理习惯保留最大连通域(Maximum Connected Region)以去除假阳性孤岛;骨盆骨折患者的小骨碎片与主骨块不连通,会被一刀切掉,导致骨折区域假阴性。
症状:整体 Dice 几乎不变(碎片体素占比小),但骨折病例的 Hausdorff 距离爆炸、临床读图发现碎片消失。
解决:
- 简单方法:后处理保留所有体积大于阈值(如 50 mm³ 且 HU > 200)的骨密度连通域,而非只留最大域。
- 进阶方法:采用论文提出的 SDF(符号距离函数)后处理器:对网络输出取 SDF 并做平滑正则化后再转回二值,对碎片友好。
- SOTA 方法:官方期刊版报告 SDF 后处理使 Hausdorff 距离较传统后处理降低 15.1%(arXiv v2 口径为 10.5%),直接采用官方 Models.tar.gz 中的后处理配置复现。
参考:DOI 10.1007/s11548-021-02363-8
⚠️ 坑点 5:2021-02-08 tiny outlier 修正——新旧指标不可混比(分类:评估误用)
问题:官方 2021-02-08 公告建库时遗留的 tiny outlier annotations 未清除干净,主要影响 Hausdorff 距离类指标,修正后论文最新版数值有变动。
症状:引用不同时期论文数字做横向对比时 Hausdorff 对不上;自训模型"优于"官方基线的结论可能只是对比了修正前口径。
解决:
- 简单方法:所有基线对比统一采用期刊版(IJCARS 2021)数值,弃用 arXiv v1/v2 的旧 Hausdorff 数字。
- 进阶方法:自建预处理里加离群体素审计——与标签主体距离超过物理合理范围的微小组件清单化人工过目。
- SOTA 方法:跟踪官方仓库公告与 issue,复现时对齐"修正后权重 + 修正后指标"组合(Models.tar.gz 即修正后产物)。
参考:GitHub README 更新公告
⚠️ 坑点 6:多站点域移位——单站点训练跨站点即崩(分类:偏倚陷阱)
问题:7 个子集对应不同站点/协议/厂商,论文实验显示单站点训练在跨站点测试时性能显著下降;公开子集的骨盆还常处于腹部 CT 视野边缘。
症状:在 CLINIC 上 Dice 0.99 的模型直接推 MSD_T10 时边界破碎;对 COLONOG 薄层数据调好的重采样参数在 ABDOMEN 厚层数据上产生严重各向异性伪影。
解决:
- 简单方法:混合 ALL 子集训练(论文已证明显著提升泛化),勿在单一子集上过拟合。
- 进阶方法:leave-one-site-out 评估协议,量化每个站点的泛化缺口;z 轴 spacing 分桶(薄/中/厚三层)分层报告。
- SOTA 方法:域随机化 + 强几何增强 + 域不变表征(如测试时批归一化自适应);预训练-微调范式可借 STU-Net 等大规模预训练骨干(见 §8.1)。
参考:arXiv:2012.08721(多域混合训练实验节)
⚠️ 坑点 7:腰骶关节困难区欠采样——官方专设采样脚本(分类:偏倚陷阱)
问题:腰骶关节与骶髂区是四类骨交界与形态变异的富集区,均匀随机裁剪下这些困难区域出现频率过低,模型在"简单骨体"上刷高均值。
症状:整体 Dice 0.98+ 但逐结构看骶骨/腰骶交界处 Hausdorff 明显劣于其他区域;临床反馈关节面重建锯齿化。
解决:
- 简单方法:裁剪中心以骨骼质心加随机偏移,并显式提高腰骶区(z 轴下三分之一)的采样权重。
- 进阶方法:直接使用官方
lumbosacral_joint_sampling.py的采样逻辑对齐官方协议。- SOTA 方法:困难区域感知的在线难例挖掘(按单样本损失排序过采样),并把逐结构指标作为验收门槛而非只看均值。
参考:GitHub README
⚠️ 坑点 8:子集间 z 轴 spacing 异构(约 0.81-4.55 mm)(分类:工程陷阱)
问题:COLONOG 约 0.81 mm、ABDOMEN 约 3.80 mm、MSD_T10 约 4.55 mm,z 轴间距跨近 6 倍;全库 z 均值 1.46 mm 与中位数 0.8 mm 的背离即由此而来。固定 z 方向滑窗与固定物理尺寸 patch 不可兼得。
症状:厚层数据 patch 内解剖跨度过大(一个 patch 装下大半个骨盆)而薄层数据只见局部;显存占用在子集间剧烈波动;重采样到各向同性时的插值伪影在厚层上放大。
解决:
- 简单方法:统一重采样到 (1.0, 1.0, 1.0) mm(§6.3 默认),厚层用线性插值容忍平滑。
- 进阶方法:按物理尺寸(毫米)定义 patch 大小;训练时按 spacing 分桶组 batch,避免同 batch 内尺度跨度爆炸。
- SOTA 方法:nnU-Net 式"按数据集指纹自动选 spacing 与 patch"(官方基线即此路线),或对厚层子集单独微调头部。
参考:arXiv:2012.08721 Table 1;openmedlab 统计
§6.6 数据增强清单
| 类别 | 手段 | 判定 | 理由 |
|---|---|---|---|
| 几何 | 轴向翻转、90° 旋转 | ✅ 安全 | 需同步置换标签 3↔4(左/右髋语义随水平翻转互换) |
| 几何 | 弹性形变、低幅仿射 | ✅ 安全 | 模拟体位与解剖变异 |
| 强度 | 高斯噪声、低幅高斯模糊 | ✅ 安全 | 覆盖不同剂量/重建协议 |
| 强度 | 全局亮度大幅增益 | ❌ 危险 | HU 域物理含义明确,大增益破坏骨/软组织边界 |
| 伪影 | 金属伪影仿真叠加(条状伪影注入) | ⚠️ 进阶 | 有文献支撑时可作域自适应手段,需在 CLINIC-metal 上验证有效性 |
| 重采样 | spacing 随机抖动(±20%) | ✅ 安全 | 直接对冲坑点 8 的异构性 |
| 掩码 | 标签 3↔4 置换同步逻辑 | ⚠️ 必做 | 任何水平翻转增强都必须置换左/右髋标签,否则系统性标签错误 |
§6.7 模型推荐
| 模型 | 适用场景 | 入口 | 依据 |
|---|---|---|---|
| nnU-Net(官方基线) | 首选起点,官方协议对齐 | Models.tar.gz 权重 + Task11 配置 | 平均 Dice 0.987(无金属体积) |
| STU-Net(预训练大模型微调) | 追求排行榜上限 | 大规模预训练后微调 | 96.7 分(sota2.com 榜单,见 §8.1) |
| Bonnet | 推理速度敏感(全流程 < 3 s/scan) | 稀疏卷积管线 | 96.8 分且 2.69 s/scan(RTX A6000) |
| 自实现 3D U-Net | 教学与小算力 | §6.1/§6.4 骨架 | 便于理解与改造 |
| 半监督/自训练框架 | 利用 61 例无标注金属例 | 一致性正则/伪标签 | 官方留出设计意图 |
§6.8 硬件需求
| 阶段 | 显存 | 建议配置 | 说明 |
|---|---|---|---|
| 推理(官方权重) | ≥ 8 GB | RTX 3060 级 | 两阶段级联推理单例数分钟内 |
| 训练(3D 全分辨率) | ≥ 24 GB | RTX 4090 / A5000 | patch 按 (96, 160, 160) 起步 |
| 训练(级联两阶段) | 24-40 GB | A100-40G | 低分辨阶段 + 高分辨阶段 |
| 预处理 | CPU 即可 | ≥ 16 核 | 重采样与几何审计并行化 |
§6.9 评估指标代码
import numpy as np
def dice_per_class(pred, gt, cls):
p, g = (pred == cls), (gt == cls)
denom = p.sum() + g.sum()
return 2.0 * (p & g).sum() / denom if denom > 0 else np.nan
def hausdorff95_per_class(pred, gt, cls, spacing):
"""95% Hausdorff 距离:表面体素用 6-邻域腐蚀法提取。"""
from scipy.ndimage import distance_transform_edt, binary_erosion
p, g = (pred == cls), (gt == cls)
if not p.any() and not g.any():
return np.nan
if not p.any() or not g.any():
return np.inf
surf_p = p & ~binary_erosion(p)
surf_g = g & ~binary_erosion(g)
d_pg = distance_transform_edt(~surf_p, sampling=spacing)
d_gp = distance_transform_edt(~surf_g, sampling=spacing)
return max(np.percentile(d_pg[surf_g], 95), np.percentile(d_gp[surf_p], 95))
def evaluate(pred, gt, spacing, classes=(1, 2, 3, 4)):
return {c: {"dice": dice_per_class(pred, gt, c),
"hd95": hausdorff95_per_class(pred, gt, c, spacing)} for c in classes}
验收口径建议:均值 Dice 为主指标(对齐官方),HD95 为骨折/碎片场景的否决性指标(对齐 SDF 后处理的动机,见坑点 4)。
§6.10 MLOps 笔记
- 数据快照:把下载日期、文件清单哈希与"官方/实测口径"写进数据版本记录,COLONOG 缺口(坑点 2)是最常见的口径漂移源。
- 训练可复现:固定随机种子并记录 nnU-Net 配置指纹;官方基线是两阶段级联,混合精度训练下结果存在正常波动。
- 监控指标:线上除 Dice 外固定监控 HD95 与逐结构指标分布(坑点 7),均值掩盖的边界退化最先从腰骶区暴露。
- 许可合规管线:CLINIC/CLINIC-metal 为 CC BY-NC-SA 4.0(非商业),发布下游模型时在模型卡中声明训练数据构成与许可链条。
- 模型注册:以"权重 + 预处理配置 + 口径声明"三元组为最小发布单元,避免坑点 5 式的新旧口径混用。
§7 质量评估与局限性
§7.1 已知偏倚与局限
| 类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 站点偏倚 | CLINIC/CLINIC-metal 全部来自北京积水潭医院单一骨科专科场景,过度代表手术转诊人群 | 高 | 混合全子集训练;leave-one-site-out 评估 |
| 视野偏倚 | 公开子集源自腹部 CT 收藏,骨盆常处视野边缘或部分截断(2 例腰椎因截断缺标签) | 中 | 加载时校验解剖完整性;对截断例分层评估 |
| 标注规模偏倚 | 金属伪影环境仅 14 例有标注,金属场景统计功效极低 | 高 | 14 例做折间交叉报置信区间;61 例无标注例走半监督 |
| 口径偏倚 | COLONOG 官方 731 vs 实测 714 例的公开缺口;官方 1,123 vs 实测 1,106 | 中 | 报告双口径 + 文件清单哈希(坑点 2) |
| 人口学盲区 | 论文未披露年龄/性别/种族分布 | 中 | 使用者自行声明该局限,勿推断人群泛化结论 |
| 时间盲区 | 未披露逐例扫描日期区间,难以做时间漂移分析 | 低 | 以 Zenodo 发布时间为版本锚点 |
两条偏倚的主轴线值得记住:站点轴(积水潭专科队列 vs 国际公开收藏)与伪影轴(无金属 1,109 例 vs 金属 75 例)。任何"平均性能"结论都同时骑在两条轴上——先声明你的样本落在哪一格,再引用数字;这也是官方把多域混合训练作为主实验、把单站点结果作为消融的深层原因。
§7.2 标注质量评估
标注质量的正面证据:AID 协议保证每一体素最终经过人工精修;官方基线 Dice 0.987 说明掩码与图像的自洽性极高;四类骨检出率接近满分(§4.2)。负面证据:2021-02-08 tiny outlier 修正公告证明早期迭代存在离群体素(坑点 5);论文未提供标注者间一致性定量指标;未标注例的存在(61 例金属)要求使用者自行维护"有标注清单"。综合判断:作为分割基准的标签质量属于公开数据集第一梯队,但任何依赖 Hausdorff 类指标的工作都应确认自己使用的是修正后口径。
§7.3 泛化性分析
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 跨站点推理 | 高:单站点训练跨站点性能显著下降 | 论文多域实验(arXiv:2012.08721) |
| 金属植入物 | 高:测试集仅 14 例有标注,方差大 | CLINIC-metal 设计与 openmedlab 审计 |
| 跨数据集迁移(免调参) | 中高:内部 ~96.6 跌至 ~86 量级 | Bonnet 跨数据集评估(§7.8) |
| 骨折病例 | 中:碎片易被 MCR 后处理误删 | 论文 SDF 后处理动机(坑点 4) |
| 厚层协议(z > 4 mm) | 中:插值伪影放大、边界平滑 | z 轴 spacing 异构(坑点 8) |
§7.4 伦理评估
数据按各贡献站点 IRB 政策脱敏后发布,DICOM 重格式化为 NIfTI 并去除患者身份信息(arXiv:2012.08721)。临床子集来自积水潭医院常规诊疗场景的二次利用,公开许可链(CC BY 4.0 / CC BY-NC-SA 4.0)即为发布方与伦理审查给出的使用边界。使用者无需再走申请审批,但不得尝试从影像或残留元数据重识别患者;商业用途需特别注意 NC 子集的排除条款。
§7.5 公平性分析
数据集未披露人口学构成,无法直接审计跨人群性能差异。结构性公平风险有二:其一,骨科专科医院来源使"接受手术评估的患者"被过度采样,健康人群或基层影像的代表性未知;其二,国际公开子集与北京临床子集的设备/协议差异若不加以控制,模型可能在低资源环境(非高端扫描仪)表现最差。建议在部署前补做本地人群的性能分层报告。
§7.6 数据漂移风险
CT 设备迭代(光子计数 CT、AI 重建核)会持续改变图像纹理分布;本数据集冻结于 2020-12 发布,未覆盖新一代重建协议。漂移监测建议:上线后按月统计输入影像的 spacing 分布与 HU 直方图偏移,任一指标跨出训练分布分位区间即触发再评估。
§7.7 DAIMS 24 项质检
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | NIfTI 单文件即完整一例,无多表拼接 |
| 2 | 唯一标识 | ✅ | NumberofPatient_NumberofSequence 双段键全局唯一 |
| 3 | 特殊字符 | ✅ | 文件名 ASCII 数字下划线,无空格/Unicode 陷阱 |
| 4 | 重复行 | ✅ | 社区逐例审计未见重复报告 |
| 5 | 缺失编码 | ✅ | 无标注以"文件不存在"表达,无伪 0 标签 |
| 6 | 标签标识 | ✅ | 整数 0-4,语义固定(背景/腰椎/骶骨/双髋) |
| 7 | 罕见类分组 | ⚠️ | 金属例标注仅 14 例,脆弱子群统计功效不足 |
| 8 | 偏倚评估 | ✅ | 论文含多站点域移位专项分析 |
| 9 | 数据字典 | ✅ | README 给出命名规则与映射包说明 |
| 10 | 信息性缺失解释 | ✅ | 61 例无标注金属例的留出设计有官方说明 |
| 11 | 设备记录 | ⚠️ | 仅部分子集 DICOM 保留厂商信息,无统一参数表 |
| 12 | 共线性 | ✅ | 无表格型协变量,不存在共线问题 |
| 13 | 编码映射 | ✅ | 本页提供 ICD-11 NB52 与 SNOMED CT 四码映射 |
| 14 | 时间戳处理 | ✅ | 日期信息随脱敏剥离,无时间泄漏通道 |
| 15 | 划分建议 | ✅ | 官方 665/222/236 划分明确且被社区沿用 |
| 16 | 泄漏讨论 | ✅ | 站点泄漏与无标注例混入风险已在本页 §5.3 展开 |
| 17 | 标签分布 | ⚠️ | COLONOG 714 vs 731 口径差,公开标签数需以实测为准 |
| 18 | 测量偏倚 | ✅ | 四类骨边界定义跨子集统一(AID 协议) |
| 19 | 外部验证建议 | ✅ | 本页 §5.5 与 §7.8 给出可执行路径 |
| 20 | 版本记录 | ✅ | Zenodo v1 + 2021-02-08 修正公告,版本链条清晰 |
| 21 | 预处理脚本 | ✅ | 官方开源 nnU-Net 配置与腰骶采样脚本 |
| 22 | 合规要求 | ✅ | CC BY 4.0 / CC BY-NC-SA 4.0 条款明确 |
| 23 | 多模态对齐 | ⚠️ | 单模态 CT,无配对 X-ray/MR 供跨模态对齐研究 |
| 24 | 去标识化 | ✅ | 各站点 IRB 政策下重格式化脱敏 |
DAIMS 评分:22.5 / 24
评分解读:21 项 ✅、3 项 ⚠️(罕见类分组、设备记录、标签分布口径)、0 项 ❌。扣分全部集中于"长尾与元数据"而非核心标注质量:本数据集在唯一标识、标签体系、划分协议、版本记录这些直接决定复现成败的维度上接近满分;薄弱点是金属子群的统计功效、设备参数元数据不全、以及一处公开口径缺口。
对你意味着什么:(1) 可以放心把它当作分割基准的首选底座,README 级别的命名规则让 DataLoader 几乎零歧义;(2) 但凡结论涉及金属伪影或罕见人群,必须自带置信区间并考虑扩充本地样本,14 例是探索级而非结论级证据;(3) 动手前先跑一遍本页 §6.1 的完整性校验与口径哈希,把 714/731 的缺口变成你实验记录里的一条已知事实而不是复现时的惊吓。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| RibSeg / CT-Spine1K(Bonnet 训练自 TotalSegmentator) | HINT Lab(Bonnet 论文,ISBI 2026) | 免调参跨数据集骨分割:CT-Pelvic1K 骨盆 3 类聚合 | Dice:nnU-Net 86.21、STU-Net-L-ft 86.41、Bonnet 85.91 | 相对各自内部 ~96.6-96.8 下降约 10 分 | 免调参跨数据集设定下所有强模型集体回落约 10 分,域差距而非模型容量是主要瓶颈(arXiv:2601.22576) |
本表只收录有同行评审支撑的外部验证结果;社区排行榜上的其余数字见 §8.1 并注意其口径不可直接互比。
§8 基准性能与生态
§8.1 排行榜
sota2.com 聚合榜单"Bone Segmentation on CT-Pelvic1K"口径(分数越高越好;截至 2026-01,sota2.com):
| 排名 | 模型 | 性能 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | Bonnet (scratch) | 96.8 | 2026 | HU 阈值 + 稀疏稀卷积 U-Net + 多窗融合,2.69 s/scan | Zhu H, Rezende PM, Yang Z, Ye T, Gao BZ, Luo F, Huang S, Yang J, 2026, ISBI 2026. arXiv:2601.22576 | HINTLab/Bonnet |
| 2 | STU-Net-L-ft | 96.7 | 2023 | 大规模预训练 3D Swin UNETR 系骨干微调 | Wang H, Chen S, Zhang C, et al., 2023, arXiv. arXiv:2304.06716 | STU-Net |
| 3 | nnU-Net RAW | 96.63 | 2021 | 自配置两阶段 3D U-Net 级联 | Isensee F, Jaeger PF, Kohl SAA, Petersen J, Maier-Hein KH, 2021, Nature Methods 18:203-211. DOI 10.1038/s41592-020-01008-z | nnUNet |
| 4 | STU-Net-B-ft | 96.63 | 2023 | 同 STU-Net,Base 规模微调 | Wang H, et al., 2023, arXiv. arXiv:2304.06716 | STU-Net |
| 5 | nnU-Net Standard | 96.6 | 2021 | nnU-Net 默认配置 | Isensee F, et al., 2021, Nature Methods. DOI 10.1038/s41592-020-01008-z | nnUNet |
| 6 | STU-Net-L | 96.44 | 2023 | STU-Net Large 零样本迁移 | Wang H, et al., 2023, arXiv. arXiv:2304.06716 | STU-Net |
| 7 | SPVCNN | 96.25 | 2019 | 点-体素混合稀疏卷积语义分割 | Liu Z, Tang H, Lin Y, Han S, 2019, NeurIPS 32. arXiv:1907.03701 | spconv 生态 |
| 8 | PointNet | 70.29 | 2017 | 逐点 MLP 点云分割 | Qi CR, Su H, Mo K, Guibas LJ, 2017, CVPR. DOI 10.1109/CVPR.2017.16 | PointNet |
| 9 | PVCNN | 2.35 | 2019 | 点-体素混合(点分支主导设定) | Liu Z, Tang H, Lin Y, Han S, 2019, NeurIPS 32. arXiv:1907.03701 | spvcnn |
数值不可直接比较的声明:各条目来自不同论文的评估设定(输入口径、后处理、聚合类别数、是否用官方修正后测试协议并不完全一致),sota2.com 只是聚合方;引用时请回溯各自原始论文的实验节。官方同期基线的口径是无金属体积平均 Dice 0.987(即 98.7,与榜单 96.6-96.8 的聚合口径不同)。
§8.2 SOTA 总结与选型建议
三条经验曲线:其一,0.96 量级已高度饱和,榜单头部差距(96.8 vs 96.6)小于协议噪声,选型应转向推理速度(Bonnet 的 2.69 s/scan)与跨域稳健性;其二,大规模预训练 + 微调(STU-Net 系)在饱和区仍能挤出一小段增益,适合作为新任务的起点骨干;其三,点云范式(PointNet/PVCNN 点分支)在体素任务上不适配(2.35 分是灾难级),除非显式体素化,否则不要用纯点方法处理 NIfTI 体数据。
按使用目标的选型决策路径:
| 你的目标 | 推荐路径 | 决策依据 |
|---|---|---|
| 论文对齐官方协议 | nnU-Net Task11 原配置 + Models.tar.gz 权重热启动 | 官方口径唯一合法来源,Dice 0.987 锚点 |
| 冲榜 / 榜首对比 | Bonnet 管线复现 + 多窗融合消融 | 96.8 分且速度优势一个数量级 |
| 骨分割预训练骨干 | STU-Net-L 在本库微调后迁移下游 | 预训练迁移增益在饱和区仍稳定 |
| 半监督研究 | 固定官方划分 + 61 例无标注金属例做一致性正则 | 无标注例的设计初衷(坑点 3) |
| 临床落地原型 | nnU-Net + SDF 后处理 + 本地金属例增量验证 | 碎片保留(坑点 4)是临床否决项 |
§8.3 评测协议
官方协议:nnU-Net 任务代号 Task11_CTPelvic1K,两阶段 3D U-Net 级联,训练集 665 例(另 61 例无标注金属例不参与监督),验证 222 例,测试 236 例;主指标为无金属体积平均 Dice(官方 0.987),辅以 Hausdorff 距离(注意坑点 5 的修正前后口径)。社区聚合榜(sota2.com)在此基础上加入逐模型实现与固定榜单口径。复现者应声明使用哪一套。
§8.4 相关数据集
| 数据集 | 模态/任务 | 与本数据集的关系 |
|---|---|---|
| CT-Spine1K | 腰椎/全脊柱 CT 椎体分割 | 同课题组(ICT-MIRACLE/MIRACLE-Center)姊妹数据集,常配对做预训练 |
| VerSe | 多中心脊柱 CT 椎体分割挑战赛 | 腰椎段的跨数据集外部测试源 |
| RibSeg | 肋骨 CT 分割 | Bonnet 论文的三联外部验证集之一 |
| TotalSegmentator | 全身 104 结构 CT 分割 | Bonnet 的训练源;骨盆区域可作跨域测试 |
| AMOS / MSD | 腹部器官 CT/MRI 分割 | 器官任务与骨任务互补;MSD Task10 是本数据集子集 3 的上游 |
§8.5 关键论文 Top 7
- Liu P, Han H, Du Y, Zhu H, Li Y, Gu F, Xiao H, Li J, Zhao C, Xiao L, Wu X, Zhou SK. Deep learning to segment pelvic bones: large-scale CT datasets and baseline models. IJCARS 16(5):749-756, 2021. DOI 10.1007/s11548-021-02363-8 — 数据集本体论文:1,184 例、AID 标注、nnU-Net 基线 Dice 0.987、SDF 后处理。
- Isensee F, Jaeger PF, Kohl SAA, Petersen J, Maier-Hein KH. nnU-Net: a self-configuring method for deep learning-based biomedical image segmentation. Nature Methods 18:203-211, 2021. DOI 10.1038/s41592-020-01008-z — 官方基线的方法学底座,Task11 配置的来源。
- Wang H, Chen S, Zhang C, et al. STU-Net: A Scalable Transferable Solution for Medical Image Segmentation. 2023. arXiv:2304.06716 — 大规模预训练骨干在骨盆骨分割上榜的迁移范式代表。
- Zhu H, Rezende PM, Yang Z, Ye T, Gao BZ, Luo F, Huang S, Yang J. Bonnet: Ultra-fast whole-body bone segmentation from CT scans. ISBI 2026. arXiv:2601.22576 — 榜首方法与跨数据集外部验证(含本数据集)。
- Liu Z, Tang H, Lin Y, Han S. Point-Voxel CNN for Efficient 3D Deep Learning. NeurIPS 2019. arXiv:1907.03701 — SPVCNN/PVCNN 两条榜单条目的共同出处,点-体素范式边界案例。
- Qi CR, Su H, Mo K, Guibas LJ. PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation. CVPR 2017. DOI 10.1109/CVPR.2017.16 — 点云基线在体数据任务上的下界参照。
- Deng Z, et al. CTSpine1K: A Large-Scale Dataset for Spine Vertebrae Segmentation. 2021. arXiv:2106.07573 — 同组姊妹数据集,骨结构分割生态的延伸阅读。
§8.6 社区活跃度
- 引用:159+(Semantic Scholar,截至 2026-09),年均引用稳定,横跨分割方法、域泛化、金属伪影三类文献。
- 下载热度:Zenodo 记录 views 10,951、downloads 23,036、累计分发 197.9 TB(截至 2026-09,Zenodo)。
- 生态角色:被 nnU-Net 社区作为标准任务(Task11)长期使用;榜 ColdStart 后仍持续有 2026 年新方法(Bonnet)以其为必测集。
§8.7 生态快照
| 资源 | 类型 | 链接 | 推荐理由 |
|---|---|---|---|
| MIRACLE-Center/CTPelvic1K | 官方代码仓库 | GitHub | README 含获取指南、命名规则、腰骶采样脚本 |
| Zenodo record 4588403 | 数据主托管 | Zenodo | 10 包 17.0 GB,CC BY 4.0,直链下载 |
| Angelou0516/ctpelvic1k | 社区镜像 | HuggingFace | 单点打包约 10 GB,快速实验用 |
| sota2.com 榜单 | 基准聚合 | sota2.com | 骨盆骨分割 SOTA 一览(截至 2026-01) |
| openmedlab 条目 | 二次整理 | Awesome-Medical-Dataset | 实测标注数、标签分布、spacing 统计 |
| nnU-Net 官方仓库 | 训练框架 | MIC-DKFZ/nnUNet | Task11_CTPelvic1K 官方协议实现 |
§9 相关资源与引用
§9.1 官方资源索引
- 数据下载:Zenodo record 4588403(10 个压缩包,17.0 GB,含获取说明)
- 代码与文档:GitHub MIRACLE-Center/CTPelvic1K(获取指南、mask mapping back 说明、
lumbosacral_joint_sampling.py) - 论文(期刊版):DOI 10.1007/s11548-021-02363-8;PubMed 33864189
- 论文(预印本):arXiv:2012.08721
- 基线框架:MIC-DKFZ/nnUNet(Task11_CTPelvic1K 协议)
- 社区镜像:HuggingFace Angelou0516/ctpelvic1k
- 实测审计:openmedlab Awesome-Medical-Dataset
- 基准榜单:sota2.com Bone Segmentation on CT-Pelvic1K
- 会议配套版本:IPCAI 2021(慕尼黑,2021-06-22/23)会议报告与演示材料,经 Zenodo 记录关联获取
§9.2 BibTeX 完整引用
@article{liu2021deep,
title = {Deep learning to segment pelvic bones: large-scale CT datasets and baseline models},
author = {Liu, Pengbo and Han, Hu and Du, Yuanqi and Zhu, Heqin and Li, Yinhao and
Gu, Feng and Xiao, Honghu and Li, Jun and Zhao, Chunpeng and Xiao, Li and
Wu, Xinbao and Zhou, S. Kevin},
journal = {International Journal of Computer Assisted Radiology and Surgery},
volume = {16},
number = {5},
pages = {749--756},
year = {2021},
doi = {10.1007/s11548-021-02363-8}
}
@dataset{ctpelvic1k_zenodo,
title = {CTPelvic1K: A Large-Scale Dataset for Pelvic Bone Segmentation from CT Images},
author = {{Institute of Computing Technology, Chinese Academy of Sciences}},
year = {2020},
doi = {10.5281/zenodo.4588403},
url = {https://zenodo.org/records/4588403},
note = {v1, released 2020-12-14; annotation fix 2021-02-08}
}
@inproceedings{zhu2026bonnet,
title = {Bonnet: Ultra-fast whole-body bone segmentation from CT scans},
author = {Zhu, Hanjiang and Rezende, Pedro Martelleto and Yang, Zhang and Ye, Tong and
Gao, Bruce Z. and Luo, Feng and Huang, Siyu and Yang, Jiancheng},
booktitle = {IEEE International Symposium on Biomedical Imaging (ISBI)},
year = {2026},
doi = {10.48550/arXiv.2601.22576}
}
§9.3 引用指南
使用数据集本身引 liu2021deep(论文)与 ctpelvic1k_zenodo(数据 DOI)双条目;复用官方基线结果时补引 nnU-Net(Isensee 2021);报告榜单数字时回溯各模型原始论文(Bonnet/STU-Net/PVCNN/PointNet)。凡涉及标注规模的表述建议同时给出官方口径与实测口径(坑点 2),这是本数据集特有的引用礼仪。若你的工作只用了部分子集(例如仅 CLINIC 与 CLINIC-metal),务必在方法节写明所用子集与例数,避免读者把你的结果默认为全库 1,184 例口径。
§10 AI 使用声明卡
§10.1 AI 模型列表
| 用途 | 模型/工具 | 版本 | 说明 |
|---|---|---|---|
| 检索与事实核查 | 联网检索代理 | 2026-09 | 对 GitHub/Zenodo/PubMed/Semantic Scholar 等来源交叉核实 |
| 初稿撰写 | 大语言模型写作助手 | 2026-09 | 按 WRITER_CONSTITUTION v1.0 规范生成章节草稿 |
| 术语编码核验 | 检索核验(ICD-11/SNOMED CT 官方与索引站) | ICD-11 MMS v2026-01 | NB52 与 NC76 区分经检索确认 |
§10.2 AI 参与范围
AI 参与了资料检索、事实比对、章节初稿与代码示例草拟。全部规模数字、日期、引用数、许可条款均以 AI 检索到的官方来源为准落盘(见 §10.3),未采用任何未经核实来源的数字;种子信息中与检索结果冲突的部分已按检索结果改写(一作 Liu 而非 Yang、IJCARS 而非 TMI/JBHI、中科院计算所、Zenodo 托管等)。
§10.3 输入来源列表
- Liu P, Han H, Du Y, Zhu H, Li Y, Gu F, Xiao H, Li J, Zhao C, Xiao L, Wu X, Zhou SK. Deep learning to segment pelvic bones: large-scale CT datasets and baseline models. IJCARS 16(5):749-756, 2021. DOI 10.1007/s11548-021-02363-8 / PubMed 33864189
- CTPelvic1K 预印本 v2. arXiv:2012.08721(规模、Table 1 子集、AID 协议、spacing 统计)
- Zenodo record 4588403(10 个压缩包明细、17.0 GB、v1 日期、CC BY 4.0、views/downloads 统计). Zenodo
- 官方仓库 README(获取指南、mask mapping back、腰骶采样脚本、2021-02-08 修正公告). GitHub
- openmedlab Awesome-Medical-Dataset CTPelvic1K 条目(实测 1,106 例、COLONOG 714、标签检出率). GitHub
- HuggingFace 社区镜像 Angelou0516/ctpelvic1k(约 10 GB). HuggingFace
- Semantic Scholar API 引用计数(159,截至 2026-09). Semantic Scholar
- sota2.com 聚合榜单(Bone Segmentation on CT-Pelvic1K,截至 2026-01). sota2.com
- Zhu H, et al. Bonnet: Ultra-fast whole-body bone segmentation from CT scans. ISBI 2026. arXiv:2601.22576(榜首数字、2.69 s/scan、跨数据集验证)
- Wang H, et al. STU-Net: A Scalable Transferable Solution for Medical Image Segmentation. 2023. arXiv:2304.06716
- Isensee F, et al. nnU-Net. Nature Methods 18:203-211, 2021. DOI 10.1038/s41592-020-01008-z
- ICD-11 MMS:NB52 腰椎或骨盆骨折,NB50-NB9Z 区块(截至 2026-09 核验). ICD-11 索引
- SNOMED CT 118645006 / 122496007 / 1144746008 / 421060004. BioPortal、SNOMED CT Editorial Guide
- AMBOSS Pelvic fracture 流行病学(2026-03 更新). AMBOSS
- Liu Z, Tang H, Lin Y, Han S. Point-Voxel CNN for Efficient 3D Deep Learning. NeurIPS 2019. arXiv:1907.03701
- Qi CR, et al. PointNet. CVPR 2017. DOI 10.1109/CVPR.2017.16
- Deng Z, et al. CTSpine1K. 2021. arXiv:2106.07573
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| 规模与子集数字(§1/§3/§4) | 千方病案医学编辑部 | 对照 arXiv v2 与 Zenodo 文件清单逐项核对 | ✅ 已验证 |
| 论文与机构信息(§0/§2/§8.5) | 千方病案医学编辑部 | PubMed 作者与单位页核对 | ✅ 已验证 |
| 许可与合规表述(§0/§7.4/§10.3) | 千方病案医学编辑部 | Zenodo 许可字段与论文声明交叉核对 | ✅ 已验证 |
| 代码示例(§6.1/§6.3/§6.4/§6.9) | 千方病案医学编辑部 | 语法与逻辑静态走查 | ✅ 已验证 |
| 坑点与局限(§6.5/§7) | 千方病案医学编辑部 | 官方 README、openmedlab、论文 limitations 三源印证 | ✅ 已验证 |
| 榜单与外部验证(§7.8/§8.1) | 千方病案医学编辑部 | sota2.com 与 Bonnet 论文原文核对 | ✅ 已验证 |
| 术语编码(§2.1/§2.1b) | 千方病案医学编辑部 | ICD-11/SNOMED CT 官方索引核验 | ✅ 已验证 |
§10.5 AI 生成章节标注
全部章节初稿由 AI 生成,经 §10.4 所列人工校验流程修订后发布;数字类内容全部溯源至 §10.3 输入来源,代码示例经静态走查但未在 GPU 环境执行,使用者运行前请按 §6.1 的目录结构自检。
§10.6 最后人工审核日期
2026-09-05(与 §0.3 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
§C 结构化数据(JSON-LD)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- ctspine1k — 共享标签:医学影像 / CT / 医学图像分割 / 骨骼肌肉影像
- pengwin — 共享标签:医学影像 / 医学图像分割 / 手术视频 / 骨骼肌肉影像
- ribfrac — 共享标签:医学影像 / CT / 医学图像分割 / 骨骼肌肉影像
- radimagenet — 共享标签:医学影像 / CT / 骨骼肌肉影像
- kvasir-instrument — 共享标签:医学影像 / 医学图像分割 / 手术视频
- cadis — 共享标签:医学影像 / 医学图像分割 / 手术视频
- fetreg — 共享标签:医学影像 / 医学图像分割 / 手术视频
- nih-pancreas-ct — 共享标签:医学影像 / CT / 医学图像分割
- abdomenct-1k — 共享标签:医学影像 / CT / 医学图像分割
- word — 共享标签:医学影像 / CT / 医学图像分割
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。
