信息速览

CTSpine1K — 千例脊柱 CT 椎体分割数据集 AI-Ready Wikipedia
INFOBOX
| 字段 | 内容 |
|---|---|
| 数据集名称 | CTSpine1K(千例脊柱 CT) |
| 英文全称 | CTSpine1K: A Large-Scale Dataset for Spinal Vertebrae Segmentation in Computed Tomography |
| 别名/简称 | CTSpine1K、千例脊柱 CT 数据集 |
| 疾病分类(ICD-11) | 5A80(骨质疏松症,椎体压缩骨折主要背景疾病);标签对象为 C1–L6 全脊柱椎体,来源子集涉及结肠、头颈、肝脏与胸部多类非脊柱适应症 |
| SNOMED CT | 64859006(Osteoporosis,骨质疏松症);移行椎为形态学描述概念,无一一对应专用码 |
| 数据模态 | 多排探测器 CT(MDCT),覆盖颈、胸、腰、骶全脊柱区域 |
| AI 任务类型 | 椎体实例分割(instance segmentation)、椎体标识与计数(labelling)、跨域泛化研究、手术规划量化分析 |
| 样本总数 | 1,005 例 CT 容积 / 11,172 个标注椎体 / 500,000+ 张标注切片 |
| 数据大小 | 约 150GB(Raw NIfTI 格式,Hugging Face 镜像统计,截至 2026-09) |
| 数据格式 | NIfTI(.nii.gz)+ XLSX(部分子集元数据)+ TXT(划分清单与病理案例索引) |
| 许可证 | CC BY-NC-SA 4.0 International(沿用 4 个来源子集许可) |
| 访问级别 | 开放(官网渠道免费下载;部分镜像需邮件申请提取码) |
| DUO 标签 | NPUNCU(非商业非营利;以 CC BY-NC-SA 4.0 条款为准) |
| 语言 | 英文(文档与标注元数据) |
| 首发日期 | 2021-05-31(arXiv v1) |
| 最后更新 | 2025-05-25(Hugging Face 镜像上传) |
| 发布机构 | 中国科学院计算技术研究所智能信息处理重点实验室(MIRACLE 中心)牵头,联合华南理工大学广州市第一人民医院、北京积水潭医院、中国科学技术大学 |
| 官方主页 | github.com/MIRACLE-Center/CTSpine1K |
| 下载地址 | Hugging Face 镜像、AFRICAI XNAT、百度云(提取码邮件申请) |
| DOI | arXiv:2105.14711(正式版发表于 MELBA journal Vol 3, pp. 824–832,2024-10) |
| 引用次数 | 125+(Google Scholar,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 官方三段划分 + data_split.txt + 逐椎体实例标签 + 预处理脚本齐全;扣分项:4 个子集层厚差异大需自行重采样、部分子集无结构化元数据、复现基准需固定 nnU-Net 老版本(详见 §6.5) |
| 页面状态 | published |
§0 E-E-A-T 审核与免责
医学审核:千方病案医学编辑部(交叉审核范围:§2 医学背景中的 ICD-11/SNOMED 编码映射、脊柱解剖与退行性病变流行病学、移行椎形态学描述,以及 §7 偏倚与伦理分析)。
数据工程审核:千方病案医学编辑部交叉审核(医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 与 8 个坑点的可操作性)。
最后人工审核日期:2026-09-05。
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。CTSpine1K 以 CC BY-NC-SA 4.0 发布,免费开放下载,官方要求使用时引用数据集论文(见 §9 引用指南);4 个来源子集的原始许可条款以各自来源站为准。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? CTSpine1K 是一个包含 1,005 例 CT 扫描的公开数据集,每例图像里的每一块椎骨(从第 1 颈椎到第 6 腰椎,共 11,172 块)都被逐一勾画成了精细的三维轮廓。它的影像来自结肠筛查、头颈肿瘤放疗、肝脏扫描和新冠胸部 CT 四类真实临床场景,因此脊柱的形态、病灶和设备差异都非常接近现实世界。
为什么重要? 在它出现之前,公开的椎体分割数据集只有几十到三百例,而且大多只保留了脊柱周围一小块区域。深度学习模型"吃不饱"数据,也学不到真实临床里脊柱周围的完整解剖环境。CTSpine1K 用千例规模和完整视野把这两个短板一次补齐,成为脊柱定量分析研究的基础数据设施之一。
我能用它做什么? 训练和评测椎体实例分割、椎体计数与标识模型;把分割结果用于脊柱弯曲度测量、椎体骨折筛查、手术钉道规划等下游研究;也可以作为预训练语料,再迁移到骨折分级、骨密度估计等脊柱 AI 任务。官方还提供了 610/197/198 的三段划分和 nnU-Net 基准,拿来即可对齐发表结果。
§1.1 技术摘要
CTSpine1K 由中国科学院计算技术研究所智能信息处理重点实验室(MIRACLE 中心)牵头,联合北京积水潭医院、华南理工大学广州市第一人民医院与中国科学技术大学,从 4 个公开 CT 数据源中筛选整合而成:COLONOG(CT 结肠造影试验,784 例)、HNSCC-3DCT-RT(头颈鳞癌放疗定位 CT,31 例)、MSD T10(医学分割十项全能 task03_liver,150 例)与 COVID-19(非增强胸部 CT,40 例)。所有影像统一重采样整理为 NIfTI 格式并完成脱敏。标注采用迭代人机协同流水线:先以 VerSe 公开数据训练的 nnU-Net 模型生成候选掩膜,初级标注员在 ITK-SNAP 中修正,再经两名高级标注员复核,疑难案例交由平均阅片经验约 12 年的脊柱外科医生裁定,每完成 100 例即重训模型直至全部完成。数据按 610(训练)/197(公开测试)/198(私有测试)三段划分,另取 VerSe 公开 41 例作跨域测试。以 3D full-resolution nnU-Net 建立的基准在公开测试集上达到整脊柱 Dice 0.985、逐椎体 Dice 0.85–0.97。
方法的可迁移性是这篇数据集论文的隐藏贡献:迭代回流式标注、按子集统计的域分析、"内部测试 + 跨域测试"双轨评测,都能直接套用到其他器官的千例级数据集构建上。读懂 CTSpine1K 的构建过程,约等于读完一份多中心医学数据集工程的方法论模板。
§1.2 战略价值
规模与完整性维度:CTSpine1K 发布时是规模最大的公开椎体分割 CT 数据集——1,005 例、11,172 个椎体,比同期 VerSe’19/'20 的未裁剪公开子集(41 例、511 个椎体)高出一个数量级。更关键的是视野完整性:来源影像保留完整腹部、胸部或头颈解剖,脊柱周围环境未被裁剪,模型训练时能看到真实临床中脊柱与脏器、气体的共存关系,这正是 VerSe 大多数裁剪样本无法提供的训练信号。规模与视野的组合还改变了消融实验的可行性——在千例级数据上,"减掉一个子集再训练"这样的受控实验第一次变得统计上可解释,这是小数据集时代不可能支持的实验类型。
多样性与鲁棒性维度:4 个来源子集横跨不同设备厂商(Siemens、GE、Philips、Toshiba 等)、不同临床目的(筛查、放疗定位、感染评估)与不同人群(中老年结肠筛查人群、头颈肿瘤患者、新冠患者),层厚从 0.81 mm 到 4.5 mm 不等。这种"刻意保留的外观差异"使 CTSpine1K 成为研究跨域泛化、域随机化与多中心模型鲁棒性的天然试验床;官方论文也专门构造了 Test_VerSe 跨域测试集来量化域间隙(见 §8.1)。
生态位维度:CTSpine1K 与 VerSe 构成互补而非替代关系——VerSe 提供骨折分级标注与成熟的挑战赛基础设施,CTSpine1K 提供规模、完整视野与多域多样性。二者的官方对接(Test_VerSe 跨域集、以 VerSe 为种子的标注流水线)也示范了数据集之间"互为基座"的协作模式,这对评估"该选哪个数据集"的实际工程决策很有参考价值:练鲁棒性选 CTSpine1K,拼骨折分级与打榜选 VerSe,做跨域研究则两者都需要。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 模态与视野 | 标注 | 差异化定位 |
|---|---|---|---|---|
| CTSpine1K | 1,005 例 / 11,172 椎体 | CT,全脊柱 + 完整周围解剖 | C1–L6 实例级(值 1–25) | 千例规模 + 多源域多样性 + 官方三段划分 |
| VerSe’19/'20 | 公开未裁剪 41 例(全集 460 例) | CT,多数裁剪脊柱区 | 椎体实例 + 骨折分级 | 挑战赛体系成熟,骨折标注独有 |
| xVertSeg / CSI2014 | 数十例 | CT,局部脊柱 | 椎体分割 | 早期小规模基准,历史价值 |
| spine-generic | 数百例受试者 | 3T MRI 脊髓/椎体 | 脊髓与椎体分割 | MRI 模态互补,非 CT |
与最直接的前辈 VerSe 的量化对照(官方论文 Table 1,仅统计 VerSe 中未裁剪的公开 41 例):
| 指标 | VerSe’19/'20(可用未裁剪) | CTSpine1K |
|---|---|---|
| 患者数 | 41 | 1,005 |
| 标注椎体数 | 511 | 11,172 |
| 颈椎 | 17 | 419 |
| 胸椎 | 285 | 5,942 |
| 腰椎 | 194 | 4,712 |
| 骶骨腰化 | 8 | 17 |
| 腰椎骶化 | 3 | 11 |
| 平均体素间距(mm) | (0.81±0.10, 0.81±0.10, 0.88±0.16) | (0.76±0.11, 0.76±0.11, 1.10±0.94) |
| 平均尺寸(体素) | (512, 512, 640±197) | (512, 512, 504±155) |
从对照可见两点结构性差异:其一,VerSe 原始库更大(VerSe’19 含 160 例扫描、1,735 个椎体;VerSe’20 扩展至 300 例,为当时最大的公开脊柱 CT 数据集),但其公开可用且未裁剪的对照子集仅 41 例,绝大多数样本为局部脊柱裁剪;其二,CTSpine1K 以 z 轴层厚变异(0.81–4.5 mm)换取了视野与场景多样性,两库在层内分辨率上高度一致(均约 0.8 mm)。此外,SpineWeb 档案在 CTSpine1K 之前仅收录 CSI2014 与 xVertSeg 两个 CT 脊柱数据集,均为数十例规模——这正是作者构建千例级数据集的直接动机。
§1.4 版本时间轴
| 时间 | 版本/事件 | 说明 |
|---|---|---|
| 2021-05-31 | arXiv v1 首发 | 论文与首轮标注发布,数据托管 Figshare(仅标注) |
| 2021-06-11 | 原始 CT 上架百度云 | 上传 Path.csv 说明 COLONOG/HNSCC 体位选择 |
| 2021-07-05 | VerSe 重标注修正 | 补齐边缘部分可见椎体,VerSe 上基准 Dice 由 0.619 修正为 0.766 |
| 2022-01-21 | data_split.txt 发布 | 公布 610/197/198 官方划分清单 |
| 2024-08-29 | MICCAI 2024 Open Data 接收(oral) | 数据同步上传 AFRICAI XNAT 仓库 |
| 2024-10-03 | arXiv v4 + MELBA 正式发表 | MELBA journal Vol 3, pp. 824–832 |
| 2025-03-22 | Google Drive 全量镜像 | 供中国大陆以外用户下载 |
| 2025-05-25 | Hugging Face 镜像上线 | 支持 load_dataset 一行加载(Raw 约 150GB / Arrow 约 1,100GB) |
时间轴的两个解读要点:其一,数据集的"内容冻结点"在 2021-07-05(最后一次标注修正),之后的更新全部是分发渠道扩展而非数据变更,因此引用具体数字时不需区分 2021 与 2024 版本,但引用 VerSe 对比数字必须用修正后的值;其二,2024–2025 年的三次上架(XNAT/GDrive/HF)说明官方对可及性维护积极,数据长期可用性风险较低。
§1.5 典型应用场景
- 椎体实例分割与计数基准:直接采用官方 610/197/198 划分与 C1–L6 标签体系训练 nnU-Net 类模型,与公开基准对齐比较。
- 脊柱手术规划量化研究:从分割掩膜提取椎体轴位、椎弓根直径与 Cobb 角等几何参数,支撑钉道规划与矫形手术模拟研究。
- 跨域泛化与域适应研究:利用 4 个子集的设备与协议差异构造域内/域外实验,或在 CTSpine1K 与 VerSe 之间做双向迁移分析。
- 脊柱 AI 预训练骨干:以 1,005 例全脊柱 CT 做自监督或监督预训练,再微调至骨折筛查、骨质疏松评估等小样本下游任务。
- 教学与标注质控研究:数据集文档化了完整的"模型预标注—初级修正—高级复核—专家裁定"流水线,可作为医学标注质控教学案例。
§2 医学背景
§2.1 ICD-11 编码映射
CTSpine1K 的标签对象是椎体结构本身,其临床母题横跨骨质疏松性椎体压缩骨折、脊柱退行性变与移行椎变异;来源子集的原发疾病(结直肠、头颈、肝脏、肺部)不在标注范围内。核心脊柱术语与编码映射如下:
| 术语 | ICD-11 编码 | ICD-11 中文名/说明 | 补充(ICD-10) |
|---|---|---|---|
| 骨质疏松症 | 5A80 | 骨质疏松症(含伴/不伴病理性骨折细分) | M81 |
| 骨质疏松症伴病理性椎体骨折 | 5A80.0 | 骨质疏松症,伴当前病理性骨折 | M80.08XA |
| 椎体压缩/塌陷(非特指) | 无专用编码(以形态学术语表达) | 归类于肌肉骨骼章节,编码实践以基础疾病 + 部位组合表达 | M48.5 系列 |
| 移行椎(骶骨腰化/腰椎骶化) | 无专用编码 | 先天计数变异,以形态学描述表达 | Q76.4(其他脊柱先天性畸形) |
| 脊柱退行性变(背景性) | 无单一专用编码 | 分布于肌肉骨骼章节多个细化编码 | M47–M48 系列 |
| 脊柱退行性变(背景性) | 无单一专用编码 | 分布于肌肉骨骼章节多个细化编码 | M47–M48 系列 |
注:ICD-11 5A80 系 WHO ICD-11 MMS 内分泌、营养或代谢疾病章节下骨质疏松症编码,与站内 VerSe 条目一致并经编码资料库核实;移行椎与椎体压缩为影像学形态术语,无一一对应专用码,编码实践中以组合编码表达。
编码使用提示:CTSpine1K 本身不含任何诊断标签,其掩膜只回答"这里是第几节椎体";把上述疾病编码挂接到病例层面时,依据的是各子集的来源人群背景(筛查/肿瘤/感染),而非影像判读结论。若研究需要病例级疾病标签,应回到各来源子集的原论文与其临床附录获取,不得由本数据集的脊柱掩膜反推诊断。
§2.1b SNOMED CT 映射
| 标签/概念 | ICD-11 | SNOMED CT 码 | 术语 |
|---|---|---|---|
| 骨质疏松症 | 5A80 | 64859006 | Osteoporosis(disorder) |
| 骨质疏松性椎体压缩骨折 | 5A80.0 | 64859006 + 部位编码组合表达 | Osteoporosis with vertebral pathological fracture |
| 移行椎/计数异常 | — | — | Transitional vertebra(形态学描述概念) |
| 椎体结构(正常解剖) | — | — | Vertebra(body structure) |
注:SNOMED CT 编码经站内编码实践复核;"—"表示该概念在对应术语系统中无一一对应专用码,实践中以描述概念或组合编码表达,禁止以相近码强行映射。
§2.2 疾病与解剖简介
脊柱由 7 节颈椎(C1–C7)、12 节胸椎(T1–T12)、5 节腰椎(L1–L5)及骶尾椎构成,是承重与运动的核心中轴骨。CTSpine1K 的标签体系延伸到 L6,以覆盖两类常见计数变异:骶骨腰化(sacral lumbarization,第 1 骶椎部分或全部呈现腰椎形态)与腰椎骶化(lumbar sacralization,第 5 腰椎与骶椎部分融合),二者在数据集中分别有 17 个和 11 个标注椎体,属于典型罕见类。脊柱相关疾病负担巨大:骨质疏松性椎体骨折是最常见的脆性骨折类型,在中老年人群中患病率随年龄陡增;退行性椎间盘疾病与椎管狭窄则是腰背痛与行走功能障碍的主要病因,构成庞大的手术量来源。对这四类来源子集而言,脊柱多为"偶然椎体"(incidental spine)——原发检查目的并非脊柱,但脊柱完整入镜,这使数据集天然覆盖无症状人群的脊柱形态分布。
从形态学看,骨质疏松性椎体骨折的经典影像分型为楔形(wedge)、双凹(biconcave,鱼椎样)与粉碎(crush)三类,严重程度按 Genant 半定量分级从 0 级(正常)到 3 级(重度塌陷)递增;官方论文图 1 即以双凹形骨折为示例病例,并在 readme.txt 中保留此类疑难案例的索引。退行性病变谱系则包括椎间隙狭窄、骨赘形成、终板硬化与退行性滑脱,这些改变会重塑椎体边缘轮廓,是分割模型在老年人群中面临的主要形态干扰。就分型与分割的关系而言,实例级掩膜是所有上述分型的量化前提:没有逐椎体的准确分割,楔形角、压缩率与终板凹陷深度都无从测起——这正是 CTSpine1K 把"分割"而非"分级"作为第一任务的原因。
§2.3 临床任务定义
- 筛查:从胸腹部或头颈部 CT 中自动定位并计数椎体,辅助发现意外椎体压缩骨折与移行椎——COLONOG 子集 784 例中老年筛查人群正是此类"偶然发现"场景的量化样本。筛查场景对假阴性率敏感,漏掉一节移行椎可能导致后续节段全部错号。
- 诊断与分级:逐椎体分割是椎体压缩程度定量(如 Genant 半定量分级)、骨折自动判读的前置步骤;分割误差会直接传导为高度测量误差, Genant 分级对前中后缘高度的毫秒级偏差都很敏感。
- 术前规划:椎弓根螺钉置入需要每节段椎体的三维几何参数,实例级分割(而非整条脊柱二值掩膜)才能提供逐节段的入路与直径约束;错误实例合并会把 T11 的钉道规划套到 T12 上,属于不可接受错误。
- 预后与随访:连续 CT 中逐节段椎体配准与高度变化追踪,用于治疗效果评估与疾病进展监测;追踪的前提是两次检查中同一椎体获得同一编号,即 labelling 与 segmentation 必须同时可靠。
§2.4 患者人群画像
| 维度 | COLONOG | HNSCC-3DCT-RT | MSD T10 | COVID-19 |
|---|---|---|---|---|
| 来源场景 | CT 结肠造影筛查 | 头颈鳞癌放疗定位 | 肝脏病灶 CT | 新冠胸部 CT |
| 年龄(均值±标准差) | 56.7±6.1 岁 | 64.3±12.8 岁 | 未知 | 未知 |
| 性别 | 未报告 | 未报告 | 未报告 | 未报告 |
| 例数 | 784 | 31 | 150 | 40 |
| 临床特征 | 空腹肠道准备 | 治疗前/中/后扫描 | 腹部增强扫描为主 | 确诊住院患者 |
读表注意三点:其一,年龄仅覆盖 COLONOG 与 HNSCC 两个子集,四库整体年龄分布官方未汇总,任何"平均年龄 60 岁左右"式的整体表述都不成立;其二,性别在全数据集层面未报告,公平性分析缺少基线;其三,COLONOG 的空腹肠道准备与 HNSCC 的肿瘤治疗背景意味着"健康脊柱对照"在这个数据集中并不存在严格意义上的队列,脊柱形态均叠加在各类原发疾病的全身语境之上。
§2.5 临床价值
对放射科而言,自动椎体分割可把胸腹 CT 报告中"偶然椎体骨折"的漏检率显著降低,尤其在结肠筛查与肿瘤分期检查这些脊柱并非报告焦点的场景。对骨科与脊柱外科而言,逐节段实例分割是从影像到手术导航的第一公里——术前自动测量椎弓根直径与椎体旋转角,可将规划时间从手工的数十分钟压缩到秒级。对流行病学研究而言,1,005 例覆盖多设备、多人群的实例级椎体几何数据,可支撑椎体形态参数的人群分布刻画,为骨质疏松筛查阈值与人群参考区间提供数据基础。
在 AI 工程侧,价值还体现在"负空间"上:数据集刻意保留了完整视野与多协议差异,使研究者能够量化"脏变量"(层厚、肠道气体、金属伪影)对分割器的影响,而不必像在裁剪数据上那样把这些效应与解剖差异混在一起。官方 Test_VerSe 域间隙实验正是这一用法的示范——它把"换个数据分布掉多少分"变成了可复现的数字。
§2.6 金标准与标注参照
| 维度 | 内容 |
|---|---|
| 标注对象 | 每例 CT 中全部可见椎体(含边缘部分可见者),逐椎体实例标注 |
| 标注方式 | nnU-Net 预标注 + ITK-SNAP 人工逐层修正(半自动人机协同) |
| 标注者 | 初级标注员初修 → 两名高级标注员复核 → 脊柱外科医生(平均约 12 年阅片经验)裁定疑难 → 协调员随机双检 |
| 性质 | 研究用专家级参照标准(reference standard),非临床诊断报告 |
| 一致性保障 | 每完成 100 例重训预标注模型迭代提效;随机双检纠错后回流训练 |
| 已知瑕疵披露 | readme.txt 主动列出标注疑难的病理案例;VerSe 边缘标注差异曾在 2021-07-05 修正 |
| 可视化验证 | 掩膜与影像可在 ITK-SNAP、3D Slicer 中直接叠加检查 |
| 工作量估计 | 官方未公布总标注工时;预标注回流机制意味着每例人工成本随迭代递减 |
§3 数据集规格
§3.0 版本抉择矩阵
CTSpine1K 本体为单一版本,但存在多种获取形态。按需求选择:
| 你的需求 | 推荐获取渠道 | 大小 | 理由 |
|---|---|---|---|
| 快速上手、一行加载 | Hugging Face Raw 模式 | 约 150GB | snapshot_download 直接拉取 .nii.gz,保留原始结构 |
| 与 PyTorch/TensorFlow 深度集成 | Hugging Face Arrow 模式 | 约 1,100GB | 零拷贝随机访问 + 自动划分,但磁盘占用约为 Raw 的 7 倍 |
| 中国大陆网络环境 | 百度云官方盘 | 约 150GB | 提取码需邮件向作者申请(见 §6.2) |
| 欧洲合规托管环境 | AFRICAI XNAT 仓库 | 约 150GB | xnat.bmia.nl 托管,随 MICCAI 2024 AFRICAI 协议发布 |
| 只要标注、自备原图 | Google Drive 官方链接 | 数十 GB | 官方仅上传全部标注与部分图像,原图从 4 个来源站下载 |
渠道内容一致性:各渠道承载的都是 2021-07-05 冻结后的同一版标注,差别仅在分发方式与完整性;选择渠道时优先考虑网络环境与磁盘预算,而非"哪个更新"。
§3.1 模态详情
数据集为多排探测器 CT(MDCT)断层容积影像,未使用增强扫描统一协议、未包含 MRI 或 X 线。影像保留完整采集视野:COLONOG 为腹盆腔结肠筛查扫描,HNSCC-3DCT-RT 为头颈部放疗定位扫描,MSD T10 为腹部(肝脏)扫描,COVID-19 为非增强胸部扫描。全数据集平均尺寸为 (512, 512, 504±155) 体素,平均体素间距 (0.76±0.11, 0.76±0.11, 1.10±0.94) mm——面内分辨率高度一致而 z 轴层厚变异极大,是使用时必须显式处理的核心特征(见坑点 4)。
各子集的采集协议要点:COLONOG 出自 CT 结肠造影临床试验,每名受检者有仰卧与俯卧两套扫描,作者随机选取其一(选择记录见 Path.csv 与 dicom2nii.py),覆盖 Siemens、GE、Philips、Toshiba 多厂商设备;HNSCC-3DCT-RT 为头颈鳞癌患者治疗前、中、后时相的 3D 高分辨率扇束 CT,采用 Siemens 16 层 CT 标准临床协议;MSD T10 取自医学分割十项全能 task03_liver 的 201 例中筛选出的 150 例,NIfTI 原生格式;COVID-19 为疫情暴发收治期间 RT-PCR 确诊患者的非增强胸部 CT,从 632 人库中挑选 40 例。四个子集均剔除极低质量病例后入库,并统一重格式化、脱敏以满足贡献机构 IRB 政策。
§3.2 按子集样本数
| 子集 | 来源 | 例数 | 标注椎体数 | 平均尺寸(体素) | 平均间距(mm) | 年龄 |
|---|---|---|---|---|---|---|
| COLONOG | CT 结肠造影试验 | 784 | 8,022 | (512, 512, 542±58) | (0.75±0.08, 0.75±0.08, 0.81±0.16) | 56.7±6.1 岁 |
| HNSCC-3DCT-RT | 头颈鳞癌放疗 CT(Siemens 16 层) | 31 | 443 | (512, 512, 202±19) | (1.09±0.14, 1.09±0.14, 2.0) | 64.3±12.8 岁 |
| MSD T10 | 医学分割十项全能 task03_liver | 150 | 2,105 | (512, 512, 478±264) | (0.77±0.10, 0.77±0.10, 1.55±1.22) | 未知 |
| COVID-19 | 非增强胸部 CT | 40 | 602 | (512, 512, 93±76) | (0.79±0.09, 0.79±0.09, 4.5±1.34) | 未知 |
| 合计 | — | 1,005 | 11,172 | (512, 512, 504±155) | (0.76±0.11, 0.76±0.11, 1.10±0.94) | — |
注:论文正文第 2.1 节表述 COLONOG 为 825 例,Table 1 为 784 例(应与排除低质量病例有关);两者数字并存于文献,实际例数以官方 data_split.txt 清单为准。椎体区域分布为颈椎 419、胸椎 5,942、腰椎 4,712,另有骶骨腰化 17、腰椎骶化 11。
四类子集的 ID 前缀对照(文件名即身份,脚本解析的基础):
| ID 前缀模式 | 子集 | 示例 | 掩膜命名 |
|---|---|---|---|
| 1.3.6.1.4.1.9328.50.4.0xxx | COLONOG | 1.3.6.1.4.1.9328.50.4.0001.nii.gz | 同名 + _seg 后缀 |
| HN_Pxxx | HNSCC-3DCT-RT | HN_P001.nii.gz | HN_P001_seg.nii.gz |
| liver_xxx | MSD T10 | liver_0.nii.gz | liver_0_seg.nii.gz |
| volume-covid19-A-0xxx | COVID-19 | volume-covid19-A-0003_ct.nii.gz | 同名 + _seg 后缀 |
§3.3 数据格式
| 内容 | 格式 | 说明 |
|---|---|---|
| CT 容积 | NIfTI(.nii.gz) | 全部子集统一由 DICOM 重采样转换为 NIfTI |
| 分割掩膜 | NIfTI(*_seg.nii.gz) | 与影像同形(512×512×N),体素值为椎体编号 |
| COLONOG 元数据 | metadata_colonog.xlsx | 患者编号、设备厂商、性别等 |
| HNSCC 元数据 | metadata_neck.xlsx | 同上;MSD T10 与 COVID-19 无元数据文件 |
| 划分与病理清单 | data_split.txt、readme.txt | 官方三段划分 ID 清单;readme.txt 列出标注疑难的病理案例 |
| 体位选择记录 | Path.csv | COLONOG/HNSCC 每个入库病例所选体位/时相的权威记录 |
§3.4 存储大小
Hugging Face 镜像统计:Raw NIfTI 格式约 150GB;转换为 Apache Arrow 后约 1,100GB(膨胀约 7 倍,源于无压缩列式存储)。官方分发渠道(百度云、XNAT)为 Raw 格式。规划磁盘时建议按 Raw 200GB(含解压余量)或 Arrow 1.2TB 预留。
| 使用形态 | 磁盘需求 | 说明 |
|---|---|---|
| Raw 下载 + 原位使用 | 约 150GB | 推荐形态,.nii.gz 原封不动 |
| Raw + 重采样缓存 | 约 200GB | 缓存各向同性重采样结果(见 §6.3) |
| Arrow 全量转换 | 约 1,100GB | 仅在需要 HF datasets 高级特性时选用 |
| 标注包单独下载 | 数十 GB | 官方 GDrive 仅传全部标注 + 部分图像的形态 |
§3.5 标注方式
椎体实例标注采用"模型预标注 + 人工迭代修正"的弱自动流程:以 VerSe 公开数据训练的 nnU-Net 模型为每例生成候选掩膜,初级标注员在 ITK-SNAP 中逐层修正,全部修正结果经两名高级标注员复核,疑难案例送脊柱外科医生裁定,协调员再做随机双检。每完成 100 例即将人工修正结果回流重训模型,标注质量与效率随迭代同步提升。标注流程依赖 nnU-Net 特定历史 commit(058b695),复现标注流水线时需固定该版本(见坑点 8)。
流水线的五个阶段可概括为:(1) 种子模型训练——用 VerSe 公开数据训练初始分割器;(2) 候选掩膜推理——对每例新影像生成预测;(3) 逐层人工修正——初级标注员在 ITK-SNAP 修正全部切片;(4) 双重复核——两名高级标注员复核,疑难交脊柱外科医生(平均约 12 年阅片经验)裁定;(5) 随机双检与回流——协调员抽检纠错,修正结果并入训练集每 100 例重训一次。该设计的核心收益是把人工工时集中在模型不确定的体素上,同时用迭代重训持续压低候选掩膜的错误率。
§3.6 标注者资质与一致性
标注团队呈三级质控结构:初级标注员完成逐层修正;两名高级标注员独立复核全部案例;脊柱外科医生(平均阅片经验约 12 年)处理判读困难案例(如双凹形骨折、移行椎计数);协调员执行随机双检并将纠错案例回流训练。官方论文未公布逐例的标注者间一致性系数(如 Dice Kappa),但通过与 VerSe 基准的同模型结果对比间接验证了标注质量——同一 nnU-Net 在两个数据集上的结果水平相当。
从团队构成推断的标注强项与弱项:强项在解剖计数与边界修正——预标注把大部分体素已归对,人工只需处理边界与归属;弱项在"部分可见椎体"的协议一致性——这正是后来 VerSe 对比中出现 0.619 修正事件的地方。任何以标注为研究对象(而非以分割为研究对象)的工作,都应把这两点写进限制声明。
§3.7 采集周期
4 个来源子集采集周期各异:COLONOG 来自 CT 结肠造影临床试验,HNSCC-3DCT-RT 覆盖患者治疗前、中、后三个时相,COVID-19 子集采集于疫情暴发收治期间(RT-PCR 确诊),MSD T10 为公开挑战赛数据。官方论文未逐子集公布确切采集年份区间,本页面不作推断;数据集本体首发于 2021-05-31,最新镜像更新于 2025-05-25。对"同一受检者多份影像"的场景,官方通过 Path.csv 固化了每个入库病例的体位/时相选择记录,这是追溯采集语义的唯一权威工件;任何绕开 Path.csv 的自行转换都可能把未入册的体位或时相混入数据(见 §5.3 泄漏风险)。
§3.8 地域覆盖
数据为多中心公开数据整合:COVID-19 子集采集于中国疫情收治机构;COLONOG、HNSCC-3DCT-RT 与 MSD T10 来自北美与欧洲公开试验及挑战赛数据集;标注与质控工作由中国多家机构协作完成。使用时请注意"标注团队地域"与"影像采集地域"是两个不同概念,跨地域部署模型前应补充目标人群的本地化验证(见 §7.3)。
地域信息的工程含义:数据集内没有任何地理编码字段,上述地域归属只能通过追溯各子集原始论文获得。因此任何"按地区分组的性能分析"都必须先显式声明子集与地域的映射假设,并接受"子集 ≠ 地域"的近似误差。
§3.9 设备规格
COLONOG 涵盖 Siemens、GE、Philips、Toshiba 多厂商扫描仪;HNSCC-3DCT-RT 为 Siemens 16 层 CT 标准临床协议;MSD T10 与 COVID-19 子集的设备厂商信息未在数据集中结构化记录。与 VerSe(同样覆盖四大厂商但多为裁剪影像)相比,CTSpine1K 的设备多样性以"完整视野 + 多协议"的形式保留,metadata_colonog.xlsx 与 metadata_neck.xlsx 记录了对应子集的厂商与患者属性字段。
§3.10 深度溯源链
原始数据 → 作者侧筛选(剔除极低质量病例)→ DICOM 统一转 NIfTI(dicom2nii.py,Path.csv 记录 COLONOG/HNSCC 所选体位)→ 脱敏处理(满足贡献机构 IRB 政策)→ ITK-SNAP 人工标注流水线 → 三段划分(data_split.txt,2022-01-21 发布)→ 镜像分发(百度云/XNAT/GDrive/Hugging Face)。每个环节均有官方工件可追溯:体位选择看 Path.csv,划分看 data_split.txt,病理疑难案例看 readme.txt,转换逻辑看仓库内 dicom2nii.py。
溯源链的完整性评级:从"原始公开数据"到"NIfTI 影像 + 掩膜"两端的追溯都闭合,但中间的"逐例筛选清单"(哪些候选被剔除)未单独发布——这解释了正文 825 例与 Table 1 784 例的差异无法逐例对账。工程上建议把这一环节视为已知的追溯盲点,引用子集例数时统一采用 Table 1/data_split.txt 口径。
§4 数据结构
§4.0 目录树
官方发布包解压后的结构如下(Hugging Face Raw 模式目录为 rawdata/volumes 与 rawdata/labels,内容一致):
CTSpine1K/
├── trainset/ # 官方训练集(610 例)
│ ├── data/ # CT 影像(NIfTI,.nii.gz)
│ │ ├── 1.3.6.1.4.1.9328.50.4.0001.nii.gz # COLONOG 子集(SOP UID 前缀命名)
│ │ ├── HN_P001.nii.gz # HNSCC-3DCT-RT 子集
│ │ ├── liver_0.nii.gz # MSD T10 子集
│ │ └── volume-covid19-A-0003_ct.nii.gz # COVID-19 子集
│ └── gt/ # 逐椎体实例分割掩膜(同形 NIfTI)
│ ├── 1.3.6.1.4.1.9328.50.4.0001_seg.nii.gz
│ ├── HN_P001_seg.nii.gz
│ ├── liver_0_seg.nii.gz
│ └── volume-covid19-A-0003_ct_seg.nii.gz
├── test_public/ # 公开测试集(197 例),data/ + gt/ 同上
├── test_private/ # 私有测试集(198 例),data/ + gt/ 同上
├── metadata_colonog.xlsx # COLONOG 元数据(患者编号/厂商/性别等)
├── metadata_neck.xlsx # HNSCC 元数据
├── readme.txt # 病理疑难案例 ID 索引
└── data_split.txt # 官方三段划分 ID 清单(仓库根目录)
目录树的三条使用要点:其一,data/ 与 gt/ 文件名严格一一对应(影像名 + _seg 后缀),任何改名都会破坏配对;其二,COLONOG 的 SOP UID 式长文件名包含大量点号,glob 匹配与正则解析时注意区分点号与扩展名分隔;其三,metadata 与 readme 位于包根而非子文件夹内,跨 split 查询元数据时按 ID 前缀路由即可。
§4.1 DAIMS 字段字典
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| case_id | 文本 | 全局唯一病例标识,前缀区分子集 | 1.3.6.1.4.1.9328.50.4.0001;HN_P001 | 分组/划分/溯源 | 无 | 无缺失 | 见 §4.0 四类前缀 |
| image | 3D 容积 | CT 影像,NIfTI(.nii.gz) | (512, 512, 504) 体素 | 模型输入 | 设备间 HU 标定差异 | — | 512×512×(93–640) |
| vertebra_label | 整数标签 | 掩膜体素值,逐椎体实例编号 | 1(C1)… 25(L6) | 分割目标 | 边缘部分可见椎体已补标 | 0 = 背景 | 0–25 |
| subset | 派生文本 | 由 case_id 前缀推导的子集归属 | COLONOG | 域分析/分层评估 | 依赖前缀解析正确性 | — | 4 值枚举 |
| split | 派生文本 | 官方划分归属(data_split.txt) | trainset | 复现基准 | 自行划分即失配 | — | 3 值枚举 |
| manufacturer | 文本 | 设备厂商(仅 COLONOG/HNSCC 元数据表) | Siemens | 设备偏倚分析 | 其余子集缺失 | 空缺即无记录 | 多厂商枚举 |
| patient_gender | 文本 | 性别(仅部分元数据表) | F | 公平性分析 | 大量子集未报告 | 空缺即无记录 | F/M |
| pathology_flag | 文本 | readme.txt 列出的标注疑难病理案例 | biconcave 骨折案例 | 难例挖掘/消融 | 仅疑难案例列入 | 未列入即常规案例 | — |
| spacing | 3D 浮点元组 | 体素物理间距(mm),存于 NIfTI 头部 | (0.75, 0.75, 0.81) | 重采样与 mm 级指标 | 头部记录错误罕见但需抽查 | 无 | 0.75–1.09 / 0.81–4.5 |
| slice_index | 整数(派生) | 轴位切片序号,由 z 轴索引派生 | 0–503 | 2D 切片级训练 | 随方向定义变化 | 无 | 0–(N−1) |
§4.2 标签分布
椎体编号 1–25 依次对应 C1–L6,实例分布高度不均衡:颈椎 419(3.8%)、胸椎 5,942(53.2%)、腰椎 4,712(42.2%)、骶骨腰化 17、腰椎骶化 11。按标签值看,T1–T12 与 L1–L5 构成主体;C1 出现频率低且体积最小;L6 与两类移行椎为极端罕见类——官方基准中 L6 的 Dice 接近 0,属于"真实病理难例"而非标注缺陷(见坑点 3)。逐标签基准详见 §8.1。
标签值与解剖节段的完整对照(官方论文明确 “C1 to L6 labeled with integer values from 1 to 25”):
| 标签值 | 解剖节段 | 分组 | 标签值 | 解剖节段 | 分组 |
|---|---|---|---|---|---|
| 1 | C1(寰椎) | 颈椎 | 14 | T7 | 胸椎 |
| 2 | C2(枢椎) | 颈椎 | 15 | T8 | 胸椎 |
| 3 | C3 | 颈椎 | 16 | T9 | 胸椎 |
| 4 | C4 | 颈椎 | 17 | T10 | 胸椎 |
| 5 | C5 | 颈椎 | 18 | T11 | 胸椎 |
| 6 | C6 | 颈椎 | 19 | T12 | 胸椎 |
| 7 | C7 | 颈椎 | 20 | L1 | 腰椎 |
| 8 | T1 | 胸椎 | 21 | L2 | 腰椎 |
| 9 | T2 | 胸椎 | 22 | L3 | 腰椎 |
| 10 | T3 | 胸椎 | 23 | L4 | 腰椎 |
| 11 | T4 | 胸椎 | 24 | L5 | 腰椎 |
| 12 | T5 | 胸椎 | 25 | L6(含移行计数) | 腰椎延伸 |
| 13 | T6 | 胸椎 | 0 | 背景 | 非椎体 |
注:上表为官方标签值域的节段映射;逐标签值的实例计数官方未公布(仅公布颈椎/胸椎/腰椎/移行椎四组合计),使用时以掩膜实际连通域统计为准。颈段标签在头颈来源影像中未必全部入镜(视野自头颈部向下),胸腰段才是绝大多数病例的共有覆盖区。
§4.3 关键统计
- 总量:1,005 例 CT 容积、11,172 个标注椎体、500,000+ 张标注切片(512×512)。
- 形态:平均 (512, 512, 504±155) 体素;层内分辨率高度一致(面内约 0.75–0.79 mm),z 轴层厚 0.81–4.5 mm 跨子集差异极大。
- 病理覆盖:官方 readme.txt 列出标注疑难病理案例(含双凹形骨折、移行椎等),可作为难例子集直接调用。
- 元数据覆盖:4 个子集中仅 COLONOG 与 HNSCC 提供结构化元数据(约 81% 的例数),MSD T10 与 COVID-19 无元数据文件。
- 移行椎覆盖:骶骨腰化 17 个、腰椎骶化 11 个标注椎体,是公开 CT 椎体数据中少见的移行形态样本(对照 VerSe 未裁剪公开子集分别为 8 个与 3 个)。
| - 域间隙量化:同一 nnU-Net 在 Test_public 上整脊柱 DSC 0.985,在 VerSe 跨域集上降至 0.929(多椎体口径最低 0.395),为跨域研究提供了现成的参照系。
§4.4 数据层级
数据层级为:受检者(patient)→ CT 检查(scan,即一个 .nii.gz 容积)→ 轴位切片(slice,512×512)→ 椎体实例(vertebra,掩膜内连通编号)。需要特别注意两点:第一,数据集以"检查"为发布单位,同一受检者理论上有多个检查的情形集中于 HNSCC 子集(治疗前/中/后时相)与 COLONOG 子集(仰卧/俯卧体位),官方划分按受检者/病例为单位整理,使用者自行重划分时必须按 ID 前缀与 Path.csv 归组以防泄漏(见 §5.3);第二,掩膜层级是"实例"而非"脊柱整体",逐椎体连通域编号可直接用于实例级指标计算。
与典型院内部署的 DICOM 层级(Patient → Study → Series → Instance)对照:CTSpine1K 相当于把"Series"层重新发布为 NIfTI 单文件,Study 层的时间/设备信息部分被脱敏截断。做 DICOM 生态对接(PACS 入库、Radiomics 特征提取)时,需要从元数据表反向重建伪层级,并接受"检查日期不可恢复"这一约束。
§4.5 缺失值与信息性缺失
| 缺失内容 | 覆盖范围 | 缺失形态 | 处理建议 |
|---|---|---|---|
| 结构化元数据 | MSD T10(150 例)、COVID-19(40 例) | 无对应 xlsx 文件 | 设备/人群分析时按"未知"单独分层,禁止回填推断 |
| 年龄 | MSD T10、COVID-19 及整体 | 元数据表无该列或未报告 | 年龄相关分析限定 COLONOG/HNSCC 子集 |
| 性别 | 全部子集 | 论文未报告分布 | 公平性分析前需自建标注或放弃该维度 |
| 厂商 | MSD T10、COVID-19 | 无记录 | 设备偏倚分析以 COLONOG/HNSCC 为样本 |
| 采集日期 | 全部子集 | 脱敏移除/未提供 | 纵向漂移分析不可行,改用子集代理 |
| 病例级疾病标签 | 全部子集 | 未随数据集发布 | 疾病结论需回溯各来源子集原论文获取 |
数据集未设置"信息性缺失编码"(informatively missing codes)机制:元数据缺行即代表该属性不可得,掩膜内体素值 0 仅代表背景而非缺失。使用者构建表格型联合数据时,应自行引入显式的"缺失"类别,避免把空缺当作第三类取值参与统计。
§5 数据划分策略
§5.1 官方划分
官方将 1,005 例分为 trainset(610)、test_public(197)、test_private(198),另取 VerSe 公开 41 例为 Test_VerSe 跨域集。分子集构成如下:
| 子集 | trainset | test_public | test_private | 合计 |
|---|---|---|---|---|
| COLONOG | 480 | 152 | 152 | 784 |
| HNSCC-3DCT-RT | 20 | 5 | 6 | 31 |
| MSD T10 | 90 | 30 | 30 | 150 |
| COVID-19 | 20 | 10 | 10 | 40 |
| 合计 | 610 | 197 | 198 | 1,005 |
test_private 无公开标签,仅用于官方统一评测;社区复现与论文对比应以 test_public 为准。划分清单见仓库 data_split.txt(2022-01-21 发布)。使用时的三条速查规则:对比官方基准 → 只用 trainset 训练 + test_public 评测;需要验证集 → 从 trainset 内部切分且保持子集比例;需要跨域结论 → 另行在 VerSe 上评测并与官方 Test_VerSe 数字(整脊柱 0.929)对表,而不是动官方测试集。
§5.2 社区惯例与自定义划分
社区存在两类常见做法:其一,直接沿用官方三分法的 trainset + test_public 组合做方法对比(最主流,与 MELBA 基准可比);其二,将 trainset 内部再切 10–20% 作验证集用于早停与超参搜索(官方基准未设独立验证集,nnU-Net 默认流程自行处理)。从零自建 k 折交叉验证时,建议按"子集分层 + 受检者分组"双约束划分,保证每折内 4 个来源子集比例接近全量分布。
无论选择哪种做法,两条纪律不可破:第一,验证集一旦参与过模型选择,它报告的数字就不再是"测试性能",论文中必须如实标注角色;第二,任何自定义划分都要在发表时公开清单文件,否则结果不可复核——官方 data_split.txt 的存在正是为了让每个对比都落在同一张考卷上。
§5.3 泄漏风险与防线
CTSpine1K 的泄漏风险有三个具体来源,均源于"同一受检者多份影像"或"同源影像跨集出现":
- COLONOG 双体位:原始 CT 结肠造影试验中每名受检者有仰卧与俯卧两套扫描,官方仅选取其一(选择记录在 Path.csv)。若使用者绕过官方清单、自行从原始来源重新转换数据,极易把同一名受检者的两个体位分别放进训练与测试集,导致指标虚高。
- HNSCC 多时相:31 例覆盖治疗前后多时相扫描,同一患者的脊柱形态高度相似;任何自行划分必须按 HN_P 前缀(患者级)归组。
- 与来源数据集重叠:COLONOG、HNSCC-3DCT-RT、MSD task03_liver 的原始公开版本仍在各自站点流通。若研究管线同时使用这些来源数据(例如做肝脏分割),必须做跨数据集去重,否则预训练-评测链路会形成隐性泄漏。
防线:一切划分以官方 data_split.txt 为唯一事实来源;自建划分时先按 ID 前缀 + Path.csv 归组受检者,再行切分;论文报告中显式声明所用划分版本。三条防线中第一条成本最低、收益最高——它把泄漏风险从"研究者的记忆负担"变成"文件的事实约束",应无条件优先执行。
§5.4 交叉验证建议
官方基准因算力限制使用全部训练数据单轮训练(未做五折交叉验证)。复现研究若采用五折 CV,建议保留官方 test_public/test_private 不动,仅在 trainset(610 例)内部做 5 折,并按子集比例分层;每折训练成本可参考官方基准——RTX 3090 单卡约 15 天——五折需多卡并行或缩减架构。折间比较时注意:COLONOG 子集内部由 480 例构成训练主体,分层抽样能保证每折都有充足的腹部样本,但 HNSCC(31 例)每折仅约 6 例,其逐折指标波动大属于正常现象,不应据此删除该子集。
§5.5 外部验证建议
推荐的外部验证梯队:第一梯队 VerSe’19/'20(官方已构建 Test_VerSe 41 例对照,域间隙显著,是检验泛化的首选);第二梯队自建本院数据(不同设备/人群的脊柱 CT);第三梯队 Modic/骨折细分任务数据集(如 Genant 分级标注研究集)。报告时务必把域内(test_public)与域外(VerSe)指标分开呈现,禁止混列为同一"平均性能"。若自建数据集来自单一机构,还应在论文中声明"单中心外部验证"的局限,避免把便利样本包装成独立验证。
§6 AI 就绪指南
§6.0 云端快速启动
Hugging Face 镜像支持免注册脚本化下载,适合 Colab/云端工作站。最小可用子集建议从 test_public(197 例)或任意单子集开始,避免首次下载全量 150GB。三个环境提示:其一,Colab 免费档磁盘约 100GB,放不下全量数据,务必用 allow_patterns 过滤;其二,下载中断重跑即可断点续传(huggingface_hub 内置缓存校验);其三,Arrow 模式在云端同样有内存风险(见坑点 7),首选 Raw 模式。
# 仅下载 test_public 目录的原始 NIfTI 文件(约 30GB 量级)
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="alexanderdann/CTSpine1K",
repo_type="dataset",
allow_patterns=["rawdata/volumes/*", "rawdata/labels/*"],
local_dir="/data/ctspine1k",
)
§6.1 快速上手
以下代码假定数据已下载至 data_root,目录结构为 §4.0 所示官方结构(data/ 与 gt/ 平行,文件名以 _seg 后缀对应)。最小可用子集:官方 trainset 中任选一个子集前缀的文件即可跑通流程。data_root 的拼接关系为 data_root/{split}/data/{case_id}.nii.gz 与 data_root/{split}/gt/{case_id}_seg.nii.gz。
import nibabel as nib
import numpy as np
data_root = "/data/ctspine1k" # 官方解压根目录
case_id = "HN_P001" # 任选一例:四种前缀见 §4.0
img = nib.load(f"{data_root}/trainset/data/{case_id}.nii.gz")
seg = nib.load(f"{data_root}/trainset/gt/{case_id}_seg.nii.gz")
vol = np.asarray(img.dataobj) # HU 值三维数组
mask = np.asarray(seg.dataobj) # 0=背景, 1-25=椎体编号
spacing = img.header.get_zooms() # (sx, sy, sz) mm,z 轴层厚务必检查
labels = np.unique(mask) # 该病例实际包含的椎体编号
print(vol.shape, spacing, labels.tolist())
三个易踩的小坑:NIfTI 头部 spacing 的顺序是 (x, y, z),与多数深度学习框架的 (z, y, x) 张量轴顺序相反,混用是层厚错误的头号来源;labels 里出现 26 以上或负值说明掩膜被错误重采样过,该文件应弃用;HN_P001 不一定在 trainset 中,跨 split 使用同一 ID 前缀时先查 data_split.txt。
§6.2 数据获取
| 渠道 | 内容 | 大小 | 申请流程 |
|---|---|---|---|
| Hugging Face | 全量影像 + 标注(Raw/Arrow) | 约 150GB / 约 1,100GB | 免注册,pip install huggingface_hub 后脚本下载 |
| AFRICAI XNAT | 全量影像 + 标注 | 约 150GB | 访问 xnat.bmia.nl 项目页按流程注册下载 |
| 百度云官方盘 | 全量影像 + 标注 | 约 150GB | 提取码需邮件向作者申请(dengy066@gmail.com) |
| Google Drive | 全部标注 + 部分图像 | 数十 GB | 免申请直链;原始 COLONOG/HNSCC 影像需回各来源站下载 |
| 原始来源站 | COLONOG、HNSCC-3DCT-RT、MSD、COVID-19 原始 DICOM | 各站不同 | 按各站许可申请(HNSCC 为 TCIA 同名 collection) |
# 全量下载(Raw 格式,约 150GB,建议预留 200GB 磁盘)
pip install huggingface_hub
huggingface-cli download alexanderdann/CTSpine1K --repo-type dataset \
--local-dir /data/ctspine1k --local-dir-use-symlinks False
下载完成后校验文件数:data 与 gt 各 1,005 个 .nii.gz,且与 data_split.txt 的三个清单行数一致(610/197/198)。两个注意事项:其一,百度云渠道的提取码可能随时间轮换,申请邮件中说明"用途 + 机构 + 引用承诺"可显著提高回复率;其二,若坚持从四个来源站拼装原始数据,务必同时下载官方 Path.csv 与各站版本说明,拼装版与官方整理版在例数上可能有出入(见 §3.2 的 825/784 差异注)。
§6.3 预处理全流程
CTSpine1K 的预处理核心是三件事:Hu 值窗宽窗位裁剪、z 轴重采样、按椎体实例的标签处理。以下给出一条完整可运行的最小流水线:
import nibabel as nib
import numpy as np
from scipy.ndimage import zoom
def preprocess(case_id, data_root="/data/ctspine1k", split="trainset",
target_spacing=(1.0, 1.0, 1.0), hu_window=(-200, 800)):
"""单例预处理:HU 裁剪 + 各向同性重采样。
- hu_window:骨窗下界放宽到 -200 以保留软组织过渡带,上界 800 覆盖皮质骨;
- target_spacing:各向同性 1mm 是椎体分割的常用起点,nnU-Net 会自动
选择训练集中位数间距,也可直接沿用其决策;
- zoom 按轴分别计算缩放因子,标签用 order=0 最近邻避免插值出新编号。
"""
img = nib.load(f"{data_root}/{split}/data/{case_id}.nii.gz")
seg = nib.load(f"{data_root}/{split}/gt/{case_id}_seg.nii.gz")
vol = np.asarray(img.dataobj).astype(np.float32)
vol = np.clip(vol, *hu_window)
vol = (vol - hu_window[0]) / (hu_window[1] - hu_window[0])
sx, sy, sz = img.header.get_zooms()[:3]
factors = (sx / target_spacing[0], sy / target_spacing[1], sz / target_spacing[2])
vol_r = zoom(vol, factors, order=1)
mask = np.asarray(seg.dataobj)
mask_r = zoom(mask, factors, order=0) # 最近邻:标签不得插值
return vol_r.astype(np.float32), mask_r.astype(np.uint8), factors
参数速查:hu_window 取 (-200, 800) 时保留皮质骨与小梁骨的全部对比度,若下游只关心骨性结构可收紧到 (100, 700);target_spacing 选 1 mm 各向同性会让 COLONOG(0.81 mm)略微上采样、COVID-19(4.5 mm)大幅上采样,显存与时长都要按上采样后的体素数预算;标签重采样必须 order=0,任何插值都会在椎体边界产生非法标签值。
清洗与标准化建议:先剔除 readme.txt 列出的疑难病理案例做基线,再评估含难例的完整版;体素值标准化使用窗裁后 min-max(如上)或 Z-score(nnU-Net 风格,按训练集统计)。数据增强统一放到 §6.6 讨论。
一份可落地的清洗 checklist:(1) 对账文件数——data 与 gt 各 1,005 个,三个 split 行数 610/197/198;(2) 逐例校验 shape——影像与掩膜必须同形,x/y/z 不一致即损坏文件;(3) 校验标签域——掩膜唯一值必须落在 0–25;(4) 体位对账——COLONOG 案例与 Path.csv 逐条核对,防止双体位混入;(5) 记录 spacing——把每例 spacing 写入派生表,供分层统计与重采样审计;(6) 隔离难例——readme.txt 清单中的疑难案例打标,训练/评测可切换。
§6.4 PyTorch DataLoader
完整可运行的 Dataset 类:按官方划分读取、逐例重采样后裁出脊柱包围盒、训练时以椎体质心为中心裁 patch(缓解 512×512×500+ 的大容积显存压力):
import os
import random
import nibabel as nib
import numpy as np
import torch
from torch.utils.data import Dataset, DataLoader
from scipy.ndimage import zoom, center_of_mass
class CTSpine1KDataset(Dataset):
"""CTSpine1K 官方划分数据集(3D patch 训练)。
目录预期(data_root 拼接关系):
{data_root}/{split}/data/{case_id}.nii.gz # CT
{data_root}/{split}/gt/{case_id}_seg.nii.gz # 掩膜 0-25
最小可用子集:任选一个子集前缀(如 COLONOG 前 64 例)即可启动。
"""
def __init__(self, data_root, split="trainset", patch_size=(96, 96, 96),
target_spacing=(1.0, 1.0, 1.0), foreground_bias=0.5):
self.data_root, self.split = data_root, split
self.patch_size, self.spacing = patch_size, target_spacing
self.foreground_bias = foreground_bias
self.cases = sorted(f[:-7] for f in
os.listdir(os.path.join(data_root, split, "data"))
if f.endswith(".nii.gz"))
def _resample(self, arr, src_spacing, order):
factors = [s / t for s, t in zip(src_spacing, self.spacing)]
return zoom(arr, factors, order=order)
def __len__(self):
return len(self.cases)
def __getitem__(self, idx):
cid = self.cases[idx]
img = nib.load(os.path.join(self.data_root, self.split, "data", f"{cid}.nii.gz"))
seg = nib.load(os.path.join(self.data_root, self.split, "gt", f"{cid}_seg.nii.gz"))
vol = np.clip(np.asarray(img.dataobj).astype(np.float32), -200, 800)
mask = np.asarray(seg.dataobj)
vol = self._resample(vol, img.header.get_zooms()[:3], order=1)
mask = self._resample(mask, seg.header.get_zooms()[:3], order=0)
# 裁 patch:以概率 foreground_bias 聚焦某个前景椎体质心,否则随机
ps = self.patch_size
if random.random() < self.foreground_bias and mask.max() > 0:
lab = random.randint(1, 25)
voxels = np.argwhere(mask == lab)
center = voxels[random.randint(0, len(voxels) - 1)] if len(voxels) else None
else:
center = np.array([random.randint(0, s - 1) for s in mask.shape])
if center is None:
center = np.array(mask.shape) // 2
lo = np.clip(center - np.array(ps) // 2, 0, np.array(mask.shape) - ps)
x = vol[lo[0]:lo[0]+ps[0], lo[1]:lo[1]+ps[1], lo[2]:lo[2]+ps[2]]
y = mask[lo[0]:lo[0]+ps[0], lo[1]:lo[1]+ps[1], lo[2]:lo[2]+ps[2]]
return torch.from_numpy(x[None].copy()), torch.from_numpy(y.copy()).long()
loader = DataLoader(CTSpine1KDataset("/data/ctspine1k"), batch_size=2,
num_workers=4, pin_memory=True)
xb, yb = next(iter(loader)) # xb: (2,1,96,96,96) float32; yb: (2,96,96,96) int64
使用注意:Dataset 默认 foreground_bias=0.5,即一半 patch 以随机椎体质心为中心、一半完全随机——前者保前景密度,后者逼模型处理"空背景 + 部分脊柱"的构图,两者缺一不可。若做全卷积滑窗推理,把 getitem 换成整容积读取 + 推理端滑窗即可,训练端无需改动。Windows 用户注意 num_workers>0 需要在 if name == “main” 保护内实例化 DataLoader。
§6.5 坑点 8 个
⚠️ 坑点 1:COLONOG 双体位数据重复与泄漏(分类:数据泄漏)
问题:COLONOG 每名受检者有仰卧与俯卧两套 CT,官方仅选取其一并记录在 Path.csv。绕过官方清单自行从原始来源转换数据时,同一受检者的两个体位可能被分别划入训练与测试集,造成受检者级泄漏,分割指标虚高。
症状:自行重划分后 test 指标显著高于官方 test_public 基准(例如逐椎体 Dice 普遍提升 0.02 以上且方差异常小);检查 test 集内 SOP UID 前缀相邻编号时发现成对出现。
解决:
- 简单方法:一切划分严格采用仓库 data_split.txt 清单,绝不自行重切。
- 进阶方法:确需重划分时,先解析 case_id 前缀与 Path.csv 把影像归组到受检者,再按受检者切分;对 COLONOG 用 SOP UID 数值段做相邻配对检查。
- SOTA 方法:在数据卡与论文中显式声明"受检者级无泄漏划分"并开源分组脚本,供审稿人复核。
参考:官方 README 对 Path.csv 与 dicom2nii.py 的说明(github.com/MIRACLE-Center/CTSpine1K)。
⚠️ 坑点 2:与 VerSe 的跨数据集标注协议差异(分类:评估误用)
问题:VerSe 对扫描顶部/底部"部分可见"的椎体不标注,CTSpine1K 则标注全部可见椎体。两数据集的 Dice 不可直接横比——官方曾在论文早期版本报告 VerSe 上 Dice 0.619,补齐协议差异后修正为 0.766。
症状:把 CTSpine1K 训练的模型直接在 VerSe 上评测得到异常低的分数,或反之;两篇论文的"同模型不同数据集"数字相差 0.1 以上却找不到架构原因。
解决:
- 简单方法:域内(test_public)与域外(VerSe)指标分开报告,永不合并成单一均值。
- 进阶方法:评测前按 VerSe 协议裁掉未标注的边缘椎体再计算指标;或用官方补齐标注版(2021-07-05 更新)统一协议。
- SOTA 方法:报告协议归一化后的指标,并附逐标签差异表说明协议敏感性。
参考:官方 README 2021-07-05 更新说明;MELBA 论文 Table 2(0.766 与 0.840 对比)。
⚠️ 坑点 3:L6 与移行椎低分不是 Bug(分类:标签理解)
问题:标签 1–25 对应 C1–L6,L6、骶骨腰化(17 个椎体)、腰椎骶化(11 个椎体)为极端罕见类。官方基准中 L6 的 Dice 接近 0——模型把移行椎错位预测为相邻节段,这是真实病理难度而非标注错误。
症状:逐标签评测时 L6/移行椎类目 Dice 异常趋零,整体指标却被高频类拉平看不出来;把全部类目平均后误判"模型稳定"。
解决:
- 简单方法:指标必须逐标签计算并全表报告(参照官方 Table 2 形态),禁用单一均值掩盖罕见类。
- 进阶方法:训练时对罕见类做采样加权或拷贝粘贴增强;用 readme.txt 的病理疑难案例清单构建难例子集单独评测。
- SOTA 方法:引入椎体计数先验(链式/图约束建模 C1–L6 序列),让相邻节段计数约束移行椎归属。
参考:MELBA 论文 §3.2.1 对 L6 混淆的分析;官方 readme.txt 病理索引。
⚠️ 坑点 4:z 轴层厚跨子集差异 5 倍以上(分类:预处理陷阱)
问题:COLONOG 平均层厚约 0.81 mm 而 COVID-19 约 4.5 mm,HNSCC 为 2.0 mm。直接把不同子集按"体素"统一 resize 到固定尺寸会引入不同的物理尺度畸变,模型学到的是层厚伪迹而非解剖。
症状:模型在厚层子集(COVID-19/MSD)上 Dice 明显低于薄层子集(COLONOG);可视化发现预测掩膜沿 z 向呈台阶状锯齿。
解决:
- 简单方法:所有影像先重采样到统一各向同性间距(如 1×1×1 mm)再进网络。
- 进阶方法:采用 nnU-Net 的中位数间距策略(全训练集中位数约 0.76×0.76×1.10 mm 附近),配合按子集分层的验证指标。
- SOTA 方法:训练时做 z 向间距随机化(域随机化),评测时报告逐子集分组指标并做显著性检验。
参考:MELBA 论文 Table 1 各子集 spacing;nnU-Net 文档(github.com/MIC-DKFZ/nnUNet)。
⚠️ 坑点 5:COLONOG 占 78% 的子集主导偏倚(分类:偏倚陷阱)
问题:784/1,005 例来自结肠筛查场景,模型倾向学到"腹部 CT + 空腹肠道气体"的全局风格。官方论文明确推断:基准模型在 VerSe 上大幅掉分,与 COLONOG 空腹肠道气体含量变化混淆学习有关。
症状:训练损失收敛良好、test_public 表现正常,但任何非腹部来源影像(头颈、胸部)上分割失败率陡增;Grad-CAM 显示模型关注肠道气体区域而非脊柱。
解决:
- 简单方法:训练时按子集均衡采样(每 batch 四子集各约 1/4),牺牲部分收敛速度换取域鲁棒性。
- 进阶方法:对 COLONOG 降权(如按 1/√n 加权)+ 对小子集过采样;在验证集中固定各子集比例监控逐域指标。
- SOTA 方法:引入域对抗(DANN 风格)或域泛化(ERM+ 风格)目标,把"子集域"作为干扰变量显式剥离。
参考:MELBA 论文 §3.2.1 域间隙归因段;官方 Table 2 的 Test_VerSe 列。
⚠️ 坑点 6:获取渠道碎片化导致数据不完整(分类:工程陷阱)
问题:标注在 Google Drive/Hugging Face,而部分原始影像因免费存储限制未随包分发,COLONOG/HNSCC 原图分散在各自来源站;百度云提取码需邮件申请。拼凑多渠道数据时极易出现"有标注没影像"或例数不足。
症状:gt 文件数多于 data 文件数;data_split.txt 中部分 ID 找不到对应影像;下载中断后目录内出现残缺 .nii.gz。
解决:
- 简单方法:优先使用 Hugging Face 全量镜像(Raw 约 150GB),单一渠道拿全。
- 进阶方法:下载后立即校验——data 与 gt 各 1,005 个文件、三个 split 行数 610/197/198 逐一对账;对残缺文件重新下载而非跳过。
- SOTA 方法:把校验写成 CI 脚本(文件数 + nibabel 可读性 + shape 与掩膜一致性三重断言),纳入数据版本管理。
参考:官方 README “Downloading the CTSpine1K Dataset” 一节;MELBA 论文 Code availability。
⚠️ 坑点 7:Hugging Face Arrow 转换的内存与磁盘陷阱(分类:工程陷阱)
问题:Arrow 格式约 1,100GB(Raw 的约 7 倍);3D 体数据转换时 datasets 库会在内存中批量攒样本再写盘,默认批大小足以在普通工作站上触发 OOM。
症状:load_dataset(volumetric 3D) 阶段进程被 kill 或交换分区耗尽;磁盘在转换中途被 Arrow 分卷写满。
解决:
- 简单方法:放弃 Arrow,直接用 Raw 模式 + snapshot_download,自建 Dataset(见 §6.4)。
- 进阶方法:坚持 Arrow 时设 writer_batch_size=1 并用 htop 监控内存;按 2d config 逐切片转换可把内存压力降低一个量级。
- SOTA 方法:Raw 模式 + zarr/WebDataset 分片索引自建流式管线,兼顾随机访问与磁盘占用。
参考:Hugging Face 数据集页 README 的 Memory Warning 一节。
⚠️ 坑点 8:复现官方标注与基准必须固定 nnU-Net 老版本(分类:工程陷阱)
问题:官方标注流水线与基准基于 nnU-Net 特定历史 commit(058b695,v1 时代接口)。当前 nnU-Net v2 在安装、预处理命令与训练配置上均不兼容,直接用新版跑出的数字与 MELBA 论文不可比。另外官方基准因算力限制未做五折 CV、单卡训练约 15 天,算力预算常被低估。
症状:按最新 nnU-Net 文档安装后,官方 ReadMe 中的命令行报参数错误;或训练配置与论文不符导致复现数字偏差;单卡训练计划按"几天"排期结果拖到两周以上。
解决:
- 简单方法:按官方 README 链接 checkout nnU-Net commit 058b695 后安装,复现标注流程。
- 进阶方法:若坚持 nnU-Net v2,须在论文中声明框架版本差异并重跑全部对比方法,不可与 MELBA 数字直接同表比较。
- SOTA 方法:以容器(Docker + 固定 commit + 固定种子)封装官方基准,发布可复现镜像;排期按 RTX 3090 约 15 天/轮预估。
参考:官方 README 标注流水线一节的 commit 链接;MELBA 论文 Implementation Details。
§6.6 数据增强
安全增强(保持解剖与标签语义):
- ✅ 亮度/对比度抖动、高斯噪声、Gamma 变换(仅作用于影像通道)
- ✅ 镜像:仅限左右方向(脊柱近乎左右对称);禁止前后与上下翻转——会破坏椎体前后关系与重力方向语义
- ✅ 小角度旋转(±10°)与小幅弹性形变
- ✅ z 向间距抖动(域随机化,缓解坑点 4)
- ✅ 窗宽窗位随机化(在骨窗邻域内抖动,模拟不同重建协议)
- ✅ 局部失真块(模拟金属伪影与运动伪影的局部扰动)
危险增强(破坏标签或引入物理不可能样本):
- ❌ 对掩膜用线性插值(会产生 0.5 这类不存在的椎体编号)
- ❌ 全向翻转(椎体计数与前后语义错乱)
- ❌ 大幅旋转/剪切(>15° 后解剖关系失真,标注不再可信)
- ❌ 90° 重排式旋转(轴位变矢状,与原始采集几何不符)
- ❌ 跨子集风格迁移当作"增强"(会抹掉数据集赖以研究的域差异,实验不可解释)
- ❌ HU 值全局归一化到 [0, 1] 后再做"CT 值感知"操作(顺序错误会让窗裁失效)
一句话原则:增强只允许改变"成像风格",不允许改变"解剖事实"——凡可能改变椎体计数、节段顺序或边界语义的操作都在禁区。
§6.7 模型推荐
| 模型 | 适用场景 | 备注 |
|---|---|---|
| nnU-Net(3D full-resolution) | 官方基准复现、强基线 | 官方选择,RTX 3090 约 15 天/轮 |
| nnU-Net-ResEnc(L/M) | 算力充足追求更高精度 | 官方后续变体,需自行对齐预处理 |
| Swin UNETR / SegResNet | MONAI 生态、Transformer 主干 | 需较长训练周期与预训练权重 |
| TotalSegmentator(nnU-Net 系) | 全身多结构含椎体的快速推理 | 可作为伪标签或对比系统 |
| 2D U-Net + 多切片融合 | 资源受限、快速原型 | 牺牲层间连续性,慎用于手术规划场景 |
| MedNeXt / 纯卷积系变体 | 小样本消融与算力受限研究 | 训练成本低于 3D nnU-Net,逐标签鲁棒性需自行验证 |
选型决策路径:先问"要复现还是超越"——复现官方基准只有一条路(nnU-Net 固定 commit);追求超越则先在官方划分上跑通任一 nnU-Net 变体作为自家基线,再引入新架构对比。
§6.8 硬件需求
| 配置 | 显存 | 可行性 |
|---|---|---|
| RTX 3090(24GB) | 24GB | 官方基准配置,3D full-resolution nnU-Net 可跑通(约 15 天) |
| A100(40GB) | 40GB | 可加大 patch 或 batch,缩短至约 7–10 天(经验值) |
| RTX 4090(24GB) | 24GB | 与 3090 同档可行,时间更短 |
| 2D 切片训练 | 11GB | 任意 11GB+ 消费卡可跑,精度受限 |
| CPU 推理 | 内存 32GB+ | 单例推理可行(分钟级),仅适合离线小批量 |
存储建议:Raw 200GB(含余量)+ 重采样缓存 200GB;Arrow 方案预留 1.2TB。
§6.9 评估指标代码
官方采用逐标签 Dice(DSC)与 95 分位 Hausdorff 距离(HD95,mm)。逐标签计算要点:把预测与真值按椎体编号逐类二值化,空类跳过并记录:
import numpy as np
from scipy.ndimage import distance_transform_edt
def dice_per_label(pred, gt, max_label=25):
scores = {}
for lab in range(1, max_label + 1):
p, g = pred == lab, gt == lab
if not g.any(): # 真值无该椎体:跳过而非计 0
continue
denom = p.sum() + g.sum()
scores[lab] = 2.0 * (p & g).sum() / denom if denom else np.nan
return scores
def hd95_simplified(pred, gt, spacing):
"""两两类目 surface 距离的 95 分位(简化版:逐体素距离场)。"""
vals = []
for lab in np.unique(gt):
if lab == 0:
continue
p, g = pred == lab, gt == lab
if not (p.any() and g.any()):
continue
vals += list(distance_transform_edt(~p, sampling=spacing)[g])
vals += list(distance_transform_edt(~g, sampling=spacing)[p])
return float(np.percentile(vals, 95)) if vals else np.nan
工程提示:严格意义上的 HD95 需在表面点集间计算(如 MedPy 的 hd95),上例简化实现给出量级正确的体素距离场近似;正式论文评测建议使用 medpy.metric.binary.hd95。
逐标签覆盖率同样是必报指标:某测试病例视野不含 C1 时,C1 的"未命中"不应记入该标签的误差分母。推荐的呈现格式是"逐标签 DSC 全表 + 覆盖率列 + 整脊柱/多类两种均值分列",一次评测同时满足审稿人与工程复现两种读者。
§6.10 MLOps 笔记
- 数据版本化:把 data_split.txt、Path.csv、readme.txt 三个官方工件与数据快照一同纳入版本管理;任何重划分必须生成新的 split 清单文件并记录生成脚本 hash。
- 可复现性:固定 nnU-Net commit(坑点 8)、随机种子、CUDA/cuDNN 版本;基准训练 15 天量级,务必先跑 1 个子集前缀的 smoke test 再全量。
- 监控:训练中除总体 Dice 外,持续记录逐标签指标与逐子集指标两张曲线——罕见类崩溃与域过拟合都会先在这里显形。
- 评测隔离:test_private 无公开标签,任何对外报告只用 test_public 或自行留出的验证集;防止把 test_public 当验证集反复调参造成信息渗漏。
- 发布纪律:模型卡中标注训练子集构成(COLONOG 占比约 78%)、层厚分布与许可(CC BY-NC-SA 4.0 传染性约束下游模型分发方式)。
- 工件归档:data_split.txt、Path.csv、readme.txt 与预处理代码随模型一起打 tag;评审或复现请求时能一键还原"哪个版本的数据、哪个版本的代码、哪个种子"。
- 成本预判:官方基准单轮约 15 天(RTX 3090),任何消融实验都应先估算 GPU 时并做子集级冒烟测试,避免把算力预算花在注定失败的配置上。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解建议 |
|---|---|---|---|
| 子集主导偏倚 | COLONOG 占 784/1,005(约 78%),模型倾向腹部 CT 风格 | 高 | 均衡采样/降权;逐子集监控指标(见坑点 5) |
| 层厚分布偏倚 | z 轴层厚 0.81–4.5 mm 跨子集系统性差异 | 高 | 各向同性重采样后再训练(见坑点 4) |
| 人群偏倚 | 年龄仅覆盖 COLONOG(56.7±6.1 岁)与 HNSCC(64.3±12.8 岁)子集,其余未知;性别未报告 | 中 | 目标人群本地化验证后再下结论 |
| 偶然椎体偏倚 | 来源检查以非脊柱疾病为目的,严重脊柱病变人群代表性不足 | 中 | 与 VerSe(骨折患者为主)互补使用 |
| 标注协议差异 | 全可见椎体标注策略与 VerSe 裁剪/边缘不标注不同 | 中 | 跨集比较前统一协议(见坑点 2) |
| 许可约束 | CC BY-NC-SA 限制商业闭源使用 | 中 | 商业化前完成法务评估或获取商业授权 |
偏倚之间会相互放大:层厚偏倚与子集主导偏倚高度纠缠(厚层恰好集中在最小的两个子集),单独缓解任一项都可能让另一项的表现恶化——这正是 §6.5 坑点 4 与坑点 5 要求同时处理、并按"逐子集 × 逐标签"双维度监控的原因。
§7.2 标注质量
三级质控(初级标注员 → 两名高级标注员 → 约 12 年经验脊柱外科医生)加协调员随机双检构成完整闭环,每 100 例回流重训预标注模型。官方未公布逐例标注者间一致性系数;间接证据是同款 nnU-Net 在 CTSpine1K 与 VerSe 上的结果水平相当(整脊柱 DSC 0.985 对 0.929 量级),且论文据此明确声明"验证了标注质量"。readme.txt 主动披露疑难病理案例清单,属于透明的质量自报行为,可直接作为难例挖掘入口。
对标注质量的合理预期分三个层次:整脊柱轮廓(二分类)层面质量极高,可当金标准用;常规椎体(T1–L5)的实例边界在多数切片上达到专家复核水准;疑难结构(边缘部分可见椎体、双凹骨折、移行椎)建议逐例目检后再用于定量结论——官方把这些案例写进 readme.txt 而非静默混入,本身就是给使用者的信号。跨集复用标注时还需记住 2021-07-05 的 VerSe 边缘标注修正事件:标注协议的边缘定义本身就是质量的一部分。
§7.3 泛化性
| 部署场景 | 失效风险 | 证据 |
|---|---|---|
| 腹部 CT(与 COLONOG 同分布) | 低 | Test_public 中 152/197 来自 COLONOG,逐椎 DSC 0.85–0.97 |
| 头颈 CT | 中高 | HNSCC 仅 31 例且层厚 2.0 mm,训练覆盖极薄 |
| 胸部 CT(COVID 类厚层协议) | 高 | COVID-19 仅 40 例、层厚 4.5±1.34 mm,官方 Test_VerSe 上多椎 DSC 跌至 0.40–0.92 |
| 与 VerSe 类似的脊柱专用协议 | 高 | 官方域间隙实验:整脊柱 DSC 0.929 但多椎体最低 0.395(T8) |
| 儿童脊柱 | 高 | 全部子集以中老年成人为主,无儿童覆盖证据 |
| 低场强/国产设备重建链 | 中高 | 厂商覆盖不含更新兴的国产与低场设备,重建纹理差异未验证 |
表中的"失效风险"分级以官方公开证据为准:标注"高"的场景均有量化支撑(Test_VerSe 数字或子集例数),标注"中"的场景属于结构性推断而非实测结论——两者在引用时应区别对待。
§7.4 伦理
4 个来源子集在各自原始项目中分属不同 IRB 管辖;作者将全部 DICOM 重格式化为 NIfTI 并完成去标识化以满足贡献机构 IRB 政策。整合发布采用 CC BY-NC-SA 4.0,禁止商业用途、禁止闭源衍生(相同方式共享)。未含姓名、出生日期或精确检查日期;受检者级再识别风险低但非零(罕见形态组合),二次分发衍生标注时建议保留相同许可并附来源声明。
两点延伸判断:其一,胸部 COVID-19 子集的疫情背景使其人群具有特殊敏感性,基于该子集的衍生分析应避免可归因的个案呈现;其二,相同方式共享(SA)条款对"模型权重是否受染"在学界尚无定论,保守做法是衍生模型同样以非商业条款发布,或在产品化前寻求权利方的书面澄清。
§7.5 公平性
性别分布全数据集未报告,年龄仅两个子集可得,因此训练前的公平性画像几乎不可行。已知的结构性不均衡是场景性的而非人群性的:头颈与胸部子集合计仅 71 例,模型对这些场景的误差分布尚未被任何公开研究系统刻画。若下游应用涉及跨性别/跨年龄的椎体测量(如骨质疏松筛查),必须先在目标人群上校准,而非假设数据集分布代表性。
可执行的公平性最低动作:(1) 在评测报告中固定输出"逐子集 × 逐标签"的指标矩阵,让任何子集间的性能落差可见;(2) 对头颈与胸部两个小子集单独给出失败案例率而非平均 Dice;(3) 把"该数据集无性别/种族标注"写进模型卡的公平性限制栏——如实声明缺失本身就是公平性实践的一部分。
§7.6 数据漂移
数据集为静态快照(首发 2021,镜像更新至 2025-05),无采集日期字段,时间维度漂移不可直接测量。现实的漂移风险来自设备迭代:新扫描仪的重建算法(如深度学习重建)会改变噪声纹理与 HU 分布,2021 年前采集的分布对 2025 年后的设备可能已经偏移。建议部署侧以"子集域"代理"时间域"做漂移监控:对每批推理影像统计层厚、面内间距与 HU 直方图距离,超阈值即触发再校准流程。
漂移监控可以落地为一张三行流水账:每批推理影像记录"面内间距中位数 / z 轴层厚中位数 / 骨窗 HU 直方图与训练统计的 Wasserstein 距离",任何一项越出训练分布分位区间即报警。CTSpine1K 的四子集间距表(§3.2)恰好提供了四组"已知偏移"的参照点——新数据落在哪个子集的参数带内,就预期模型有哪个子集方向的退化幅度。
§7.7 DAIMS 数据质量自评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | metadata_colonog.xlsx/metadata_neck.xlsx 提供宽表元数据 |
| 2 | 唯一标识 | ✅ | case_id 全局唯一,前缀区分子集,data_split.txt 可核对 |
| 3 | 特殊字符 | ✅ | 文件名与 ID 遵循 ASCII 安全字符集 |
| 4 | 重复行 | ⚠️ | COLONOG 双体位若自行重转数据会引入受检者级重复,需按 Path.csv 自查 |
| 5 | 缺失编码 | ⚠️ | MSD T10 与 COVID-19 无元数据文件,缺失未编码 |
| 6 | 标签标识 | ✅ | 体素值 0–25 语义明确(0 背景、1–25 对应 C1–L6) |
| 7 | 罕见类分组 | ⚠️ | 移行椎/L6 未做结构化分组,仅 readme.txt 列举疑难案例 |
| 8 | 偏倚评估 | ✅ | 论文 Table 1/2 量化子集构成与域间隙 |
| 9 | 数据字典 | ✅ | 论文 §2 数据记录段 + 仓库 README 完整描述目录与字段 |
| 10 | 信息性缺失解释 | ⚠️ | 元数据空缺无逐字段解释,需使用者自行推断 |
| 11 | 设备记录 | ✅ | COLONOG/HNSCC 元数据表记录厂商;子集级设备说明见论文 |
| 12 | 共线性 | ✅ | 标签为椎体实例掩膜,无表格特征共线性问题 |
| 13 | 编码映射 | ✅ | 椎体编号对应 C1–L6 标准解剖序列,映射关系公开 |
| 14 | 时间戳处理 | ⚠️ | 采集日期被脱敏移除,纵向分析不可行 |
| 15 | 划分建议 | ✅ | 官方 610/197/198 划分 + data_split.txt 清单 |
| 16 | 泄漏讨论 | ⚠️ | 论文未系统讨论;双体位/多时相泄漏需按 §5.3 自行设防 |
| 17 | 标签分布 | ✅ | 11,172 个椎体按区域与移行类型公开分布(Table 1) |
| 18 | 测量偏倚 | ⚠️ | 年龄/性别覆盖不全,人群测量偏倚无法完整刻画 |
| 19 | 外部验证建议 | ✅ | 官方构建 Test_VerSe 跨域对照并量化域间隙 |
| 20 | 版本记录 | ✅ | 仓库 README 逐次更新(2021–2025),arXiv v1–v4 可溯 |
| 21 | 预处理脚本 | ✅ | dicom2nii.py、nnU-Net 配置与 HF 加载脚本齐备 |
| 22 | 合规要求 | ✅ | CC BY-NC-SA 4.0 明确;脱敏满足贡献机构 IRB |
| 23 | 多模态对齐 | ✅ | 单模态(CT)数据集,不适用对齐问题 |
| 24 | 去标识化 | ✅ | 重格式化 + 脱敏完成,无直接标识符 |
DAIMS 评分:20.5 / 24(17 项 ✅、7 项 ⚠️、0 项 ❌)。
评分解读:20.5/24 处于"高质量研究数据集"区间——标识、标签体系、划分与合规四大支柱全部到位,扣分集中在元数据覆盖(缺编码/缺时间戳/人群属性不全)与工程防泄漏(双体位重复风险、泄漏讨论缺位)两类。这 7 个 ⚠️ 全部不影响"能不能训模型",但会影响"结果能不能严格归因"。
对你意味着什么:(1) 直接采用官方 data_split.txt 与逐标签评测即可放心对标公开基准;(2) 任何涉及人群属性(年龄/性别)或纵向随访的结论都不要基于本数据集单独下;(3) 上手第一周先完成 §5.3 的三项泄漏自查与各向同性重采样,再谈调参;(4) 若你的下游是商业化产品,注意 CC BY-NC-SA 的非商业与相同方式共享约束需要在法务层面前置评估;(5) 把 §6.5 的坑点 1/2/3 纳入代码评审清单,它们覆盖了这个数据集约八成的真实返工场景。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| Test_VerSe(VerSe 公开 41 例) | 慕尼黑工业大学等(VerSe Challenge) | 椎体实例分割(nnU-Net) | 整脊柱 DSC 0.929;多椎 DSC 0.395–0.923 | 相对 Test_public(0.985/0.85–0.97)显著下降 | 域间隙明确存在,作者归因于 COLONOG 肠道气体风格与协议差异;补齐边缘标注协议后 VerSe 基准由 0.619 修正为 0.766 |
矩阵仅收录有同行评审支撑的结果(MELBA 2024 正式版论文);截至 2026-09 未见其他团队在同一官方划分上发布完整可比结果。
对这张稀疏矩阵的解读要克制:外部验证"只有一行"不是数据集缺陷,而是官方基准的诚实边界——第三方结果若要在同一协议下进入矩阵,必须开源划分对齐与逐标签指标,目前社区尚无满足该门槛的发表工作。使用者在自家论文中报告的跨域数字,其实就是在为这张矩阵添行。
§8 基准性能与生态
§8.1 官方基准与排行榜
| 排名 | 模型 | 性能(整脊柱 DSC / 多椎体 DSC 区间) | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1(官方基准) | nnU-Net 3D full-resolution | Test_public 0.985 / 0.85–0.97;Test_private 0.984 / 0.61–0.98;Test_VerSe 0.929 / 0.40–0.92(HD95 见论文 Table 2) | 2021/2024 | 自适应预处理 + 强增强 U-Net;1,000 epochs;RTX 3090 约 15 天 | Deng, Y. et al. CTSpine1K: A Large-Scale Dataset for Spinal Vertebrae Segmentation in Computed Tomography. MELBA 3, 824–832 (2024). arXiv:2105.14711 | 官方仓库 |
数值不可直接比较的说明:上表为唯一官方基准;后续工作若未严格采用官方 data_split.txt、逐标签协议与 HD95 采样设置,与表中数字不具可比性。整脊柱(二分类)与逐椎体(多类)两种口径也必须分开引用。截至 2026-09,官方排行榜未收录第三方提交,社区方法多以 test_public 自行报告。
逐椎体代表值(DSC/HD95,mm,摘自官方 Table 2 已公开行):
| 椎体 | Test_public | Test_private | Test_VerSe |
|---|---|---|---|
| C1 | 0.951 / 1.55 | 0.957 / 1.34 | 0.446 / 1.69 |
| C2 | 0.974 / 1.15 | 0.975 / 1.22 | 0.923 / 1.20 |
| C3 | 0.934 / 8.73 | 0.945 / 7.55 | 0.605 / 1.32 |
| C4 | 0.946 / 1.90 | 0.608 / 3.65 | 0.613 / 0.95 |
| T7 | 0.881 / 4.43 | 0.764 / 5.98 | 0.400 / 8.67 |
| T8 | 0.856 / 6.96 | 0.772 / 6.23 | 0.395 / 8.74 |
| T9 | 0.949 / 1.76 | 0.925 / 3.18 | 0.597 / 6.33 |
表中有两个值得驻足的信号:C4 在 Test_private 上的异常值(0.608)与 C3 的高 HD95(8.73 mm)说明颈椎上段在部分病例上仍不稳定;T7/T8 在三个测试集上同步走低,说明中胸段是全场景共同的难点(视野边缘、部分容积效应叠加)。L6 与移行椎因 Dice 接近 0 且官方未在已公开行中列出,未收于上表。
引用这批数字的三条纪律:引用整脊柱口径时注明"binary foreground";引用多类口径时给出区间而非单一均值(0.85–0.97 的内部跨度本身就是信息);引用 Test_VerSe 数字时必须同句注明"跨域、域间隙存在",防止被二次引用者当作同分布成绩。
§8.2 SOTA 总结与选型建议
把官方基准当"地板"而非"天花板":nnU-Net 在域内已接近饱和(整脊柱 0.985),当前更有价值的研究空间在三个方向——罕见类(L6/移行椎)的实例级鲁棒性、跨域(VerSe/本院数据)泛化、以及从分割到测量与分级的端到端下游任务。选型上:资源受限选 2D 原型验证后升级 3D nnU-Net;追求发表级结果优先 nnU-Net 系变体并在官方划分上报告逐标签全表。
三个方向各自的切入口:罕见类方向,从 readme.txt 难例清单构造评测子集,检验计数先验与采样策略的实际增益;跨域方向,把 Test_VerSe 的逐标签跌幅(C1 0.446、T8 0.395)当作靶子,任何能把这些数字拉高的方法都有清晰的发表故事;下游方向,椎体分割是"测量级"任务,报告 Dice 的同时给出前缘/后缘高度测量误差(mm)会显著增强临床说服力。
§8.3 评测协议
数据划分用官方 data_split.txt(610/197/198);指标为逐标签 DSC 与 HD95(mm,95 分位);空真值类跳过并单独报告覆盖率;整脊柱口径把全部椎体合并为前景二值计算,多类口径逐椎体计算后按椎体实例平均。禁止把 Test_VerSe 与 Test_public 混合平均;引用私有测试集结果仅限转述官方论文数字。
def official_protocol(pred_all, gt_all, spacings):
"""官方评测协议骨架:逐标签 DSC + 覆盖率 + HD95,分口径汇总。
pred_all/gt_all: list of (H, W, D) int 数组,值域 0-25
spacings: list of (sx, sy, sz) mm,逐例传入(z 轴必须真实)
"""
rows = []
for pred, gt, spc in zip(pred_all, gt_all, spacings):
assert pred.shape == gt.shape, "影像与掩膜必须同形"
dsc = dice_per_label(pred, gt) # §6.9 实现
cov = len(dsc) / len([l for l in np.unique(gt) if l > 0])
hd = hd95_simplified(pred, gt, spc) # 正式评测换 medpy.hd95
rows.append({"mean_dsc": np.nanmean(list(dsc.values())),
"label_coverage": cov, "hd95": hd})
# 汇总纪律:Test_public 与 Test_VerSe 分开统计,绝不混合平均
return rows
协议执行中的三个高频错误:把空真值标签记 0 分拉低均值(正确做法是跳过并报告覆盖率);HD95 忘传真实 spacing 导致 mm 口径失真;用二进制前景 Dice 冒充多类实例 Dice——两种口径在 CTSpine1K 上相差约 0.1 量级,审稿人一眼即知。
§8.4 相关数据集
| 数据集 | 模态 | 规模 | 与 CTSpine1K 的关系 |
|---|---|---|---|
| VerSe’19/'20 | CT | 公开未裁剪 41 例(挑战全集 460 例) | 官方跨域对照;预标注初始模型训练源 |
| xVertSeg / CSI2014 | CT | 数十例 | 早期脊柱分割基准,历史对照 |
| TotalSegmentator 训练数据 | CT | 1,200+ 例全身多结构 | 多结构含椎体,可作交叉验证参照 |
| spine-generic | 3T MRI | 数百例受试者 | MRI 模态互补,跨模态泛化研究 |
| MSD task03_liver(原始) | CT | 201 例 | CTSpine1K 从中筛出 150 例做椎体标注 |
| HNSCC-3DCT-RT(原始) | CT | TCIA 同名 collection | CTSpine1K 椎体标注的 31 例来源 |
| COLONOG(原始) | CT | 结肠造影试验全库 | CTSpine1K 椎体标注的最大来源 |
与上游来源数据集联合使用时的一条例行检查:CTSpine1K 已剔除极低质量病例并固定了体位选择,其子集规模与原始库并不相等(如 task03_liver 的 201 例对应本库 150 例)。做"原始库训练、本库评测"或反向实验时,必须先对齐 ID 清单再对比指标,直接比较库级例数会引入口径错误。
§8.5 关键论文 Top7
- Deng, Y. et al. CTSpine1K: A Large-Scale Dataset for Spinal Vertebrae Segmentation in Computed Tomography. MELBA 3, 824–832 (2024). arXiv:2105.14711 —— 数据集本体论文,含基准与域间隙分析。
- Isensee, F. et al. nnU-Net: a self-configuring method for deep learning-based biomedical image segmentation. Nature Methods 18, 203–211 (2021) —— 官方基准模型与标注流水线的引擎。
- Sekuboyina, A. et al. VerSe: A vertebrae labelling and segmentation benchmark for multi-detector CT images. Scientific Data 8, 218 (2021) —— 最主要的前辈数据集与跨域对照来源。
- Wasserthal, J. et al. TotalSegmentator: robust segmentation of 104 anatomic structures in CT images. Radiology: Artificial Intelligence 5, e230024 (2023) —— 展示以 CTSpine1K 类数据为基础的多结构分割生态。
- Antonelli, M. et al. The Medical Segmentation Decathlon. Nature Communications 13, 4128 (2022) —— MSD 计划背景,task03_liver 子集的直接来源。
- Yushkevich, P. A. et al. User-guided 3D active contour segmentation of anatomical structures: significantly improved efficiency and reliability. NeuroImage 31, 1116–1128 (2006) —— ITK-SNAP 原始论文,官方标注工具的方法学出处。
- Ronneberger, O. et al. U-Net: Convolutional Networks for Biomedical Image Segmentation. MICCAI 2015 —— nnU-Net 的架构源头,理解官方基准的必读前置。
§8.6 社区活跃度
官方 GitHub 仓库(MIRACLE-Center/CTSpine1K)自 2021 年持续维护,2025 年仍有镜像更新提交,约 34 次 fork;论文获 125+ 次引用(Google Scholar,截至 2026-09),引用曲线 2023 年后持续爬升。Hugging Face 镜像上线后(2025-05)社区下载 700+ 次(截至 2025-06 作者披露),问题支持通过 dengy066@gmail.com 邮件进行,无公开 issue tracker 讨论区。
活跃度的三个使用提示:其一,邮件支持是官方唯一答疑渠道,提问前先读 README 更新日志(多数问题已被 2021–2022 年的更新覆盖);其二,社区镜像(HF)由第三方维护(Alexander Dann),数据内容与官方一致但 issue 应先反馈官方仓;其三,引用曲线显示 2024 年 MELBA 正式发表与 MICCAI Open Data 收录后采用率明显加速,新发表的对比工作可优先检索 2024 年后的文献。
§8.7 生态快照
| 资源 | 类型 | 链接 | Star/热度截至 2026-09 | 推荐理由 |
|---|---|---|---|---|
| MIRACLE-Center/CTSpine1K | 官方仓库 | github | 官方主仓(fork 34+) | data_split.txt/Path.csv/标注流水线唯一权威来源 |
| alexanderdann/CTSpine1K | 社区镜像(HF) | huggingface | 700+ 下载(2025-06) | 一行加载 + Raw/Arrow 双模式 |
| AFRICAI XNAT 项目页 | 官方托管 | xnat.bmia.nl | MICCAI 2024 官方推荐 | 欧洲合规托管环境 |
| MELBA 论文页 | 正式版论文 | melba-journal.org | Vol 3 特刊收录 | 基准数字唯一权威出处 |
| nnU-Net | 依赖框架 | github | 医学分割事实标准 | 复现基准必备(注意固定 commit) |
| ITK-SNAP / 3D Slicer | 标注与可视化工具 | itksnap.org | 长期活跃开源项目 | 官方标注工具与掩膜目检首选 |
生态使用建议:以官方仓库为准绳、以 HF 镜像为下载入口、以 XNAT 为合规备份,三者覆盖"核实—获取—存证"的完整链路;任何第三方整理版(网盘转载、二次打包)都不建议作为一手来源,避免版本错配引入坑点 6 的文件对账问题。
§9 相关资源与引用
§9.1 官方资源
- 官方 GitHub 仓库(划分清单、Path.csv、标注流水线、预训练模型):github.com/MIRACLE-Center/CTSpine1K
- 论文预印本与正式版:arXiv:2105.14711、MELBA Vol 3
- 数据托管:Hugging Face、AFRICAI XNAT、百度云(提取码邮件申请)
- 标注流水线文档:仓库内 ReadMe.md 详述 nnU-Net 辅助标注流程与五个阶段;标注工具 ITK-SNAP 开源(亦兼容 3D Slicer 可视化)
- 上游框架:nnU-Net 官方仓库(复现标注与基准需 checkout 官方指定 commit)
- 咨询邮箱:dengy066@gmail.com(数据问题与百度云提取码)
§9.2 BibTeX 官方与关键文献引用
以下 BibTeX 覆盖数据集本体、基准框架与直接上游参照,可直接粘贴至论文参考文献;条目信息与 MELBA 正式版、Nature Methods 及 Scientific Data 原文核对一致。
@article{deng2024ctspine1k,
title = {CTSpine1K: A Large-Scale Dataset for Spinal Vertebrae Segmentation
in Computed Tomography},
author = {Deng, Yang and Wang, Ce and Hui, Yuan and Li, Qian and Li, Jun and
Luo, Shiwei and Sun, Mengke and Quan, Quan and Yang, Shuxin and
Hao, You and Liu, Pengbo and Xiao, Honghu and Zhao, Chunpeng and
Wu, Xinbao and Zhou, S. Kevin},
journal = {Machine Learning for Biomedical Imaging (MELBA)},
volume = {3},
pages = {824--832},
year = {2024},
note = {MICCAI 2024 Open Data special issue; arXiv:2105.14711}
}
@article{deng2021ctspine1k,
title = {CTSpine1K: A Large-Scale Dataset for Spinal Vertebrae Segmentation
in Computed Tomography},
author = {Deng, Yang and Wang, Ce and Hui, Yuan and others},
journal = {arXiv preprint arXiv:2105.14711},
year = {2021}
}
@article{isensee2021nnunet,
title = {nnU-Net: a self-configuring method for deep learning-based
biomedical image segmentation},
author = {Isensee, Fabian and Jaeger, Paul F. and Kohl, Simon A. A. and
Petersen, Jens and Maier-Hein, Klaus H.},
journal = {Nature Methods},
volume = {18},
pages = {203--211},
year = {2021}
}
@article{sekuboyina2021verse,
title = {VerSe: A vertebrae labelling and segmentation benchmark for
multi-detector CT images},
author = {Sekuboyina, Anjany and Husseini, Malek E. and Bayat, Alireza and
others},
journal = {Scientific Data},
volume = {8},
pages = {218},
year = {2021}
}
@inproceedings{ronneberger2015unet,
title = {U-Net: Convolutional Networks for Biomedical Image Segmentation},
author = {Ronneberger, Olaf and Fischer, Philipp and Brox, Thomas},
booktitle = {Medical Image Computing and Computer-Assisted Intervention (MICCAI)},
pages = {234--241},
year = {2015}
}
@article{yushkevich2006itksnap,
title = {User-guided 3D active contour segmentation of anatomical structures:
significantly improved efficiency and reliability},
author = {Yushkevich, Paul A. and Piven, Joseph and Hazlett, Heather Cody and
others},
journal = {NeuroImage},
volume = {31},
number = {3},
pages = {1116--1128},
year = {2006}
}
§9.3 引用指南
使用 CTSpine1K 数据或标注,必须引用 Deng et al. 2024(MELBA 正式版);复用官方基准数字或标注流水线,建议同时引用 Isensee et al. 2021(nnU-Net);与 VerSe 做对比时引用 Sekuboyina et al. 2021。衍生数据集再分发请保留 CC BY-NC-SA 4.0 许可并注明来源子集的原始出处。
两条实务提醒:其一,arXiv 版本(2021 v1 至 2024 v4)数字有过修正史(如 VerSe 基准 0.619→0.766),引用具体数字时一律以 MELBA 正式版为准;其二,四子集原始论文(结肠造影试验、HNSCC-3DCT-RT、MSD、COVID-19 数据集论文)在衍生使用对应子集时应一并引用,这也是 CC BY-NC-SA 学术规范与四个上游许可的共同要求。
§10 AI 使用声明卡
§10.1 AI 模型列表
本页面文本由大语言模型辅助起草(代码辅助补全),全部事实性数字、日期、许可与结论以 FACTS 检索核实清单与官方来源为准。
§10.2 AI 参与范围
AI 参与:初稿起草、结构组织、代码示例编写、表格整理。AI 不参与:事实核实(全部数字经 WebSearch 检索对照官方论文/仓库/HF 页面)、医学与许可判断(由编辑部审核)、最终定稿。AI 产出中的所有定量陈述在定稿前逐项回溯到 §10.3 输入来源列表中的原始出处,无法回溯的陈述一律删除。
§10.3 输入来源列表
本页面的全部事实性陈述可回溯至以下 15 条来源;按"官方一手来源优先、二手聚合信息仅作旁证"的原则排序。
- Deng, Y. et al. CTSpine1K: A Large-Scale Dataset for Spinal Vertebrae Segmentation in Computed Tomography. MELBA 3, 824–832 (2024). melba-journal.org/pdf/2025:037.pdf
- Deng, Y. et al. CTSpine1K…. arXiv:2105.14711 (2021, v1; 2024, v4). arxiv.org/abs/2105.14711
- CTSpine1K 论文 HTML 版(v2,数据记录与划分细节). arxiv.org/html/2105.14711v2
- CTSpine1K 论文 ar5iv 渲染版(Table 1/2 数字). ar5iv.labs.arxiv.org/html/2105.14711
- MIRACLE-Center/CTSpine1K 官方 GitHub 仓库 README(下载渠道与更新日志). github.com/MIRACLE-Center/CTSpine1K
- alexanderdann/CTSpine1K Hugging Face 数据集页(大小/加载方式/统计). huggingface.co/datasets/alexanderdann/CTSpine1K
- CTSpine1K.py 加载脚本(许可字段与官方引用条目). huggingface.co/datasets/alexanderdann/CTSpine1K/blob/main/CTSpine1K.py
- AFRICAI XNAT 项目页(xnat.bmia.nl/data/archive/projects/africai_miccai2024_ctspine1k)
- Google Scholar 引用记录(125+,截至 2026-09). scholar.google.com
- Starmans, M. & Tsirikoglou, J. MICCAI 2024 AFRICAI Imaging Repository White Paper(XNAT 上架依据)
- Isensee, F. et al. nnU-Net. Nature Methods 18, 203–211 (2021)
- Sekuboyina, A. et al. VerSe. Scientific Data 8, 218 (2021)
- Antonelli, M. et al. The Medical Segmentation Decathlon. Nature Communications 13, 4128 (2022)
- Wasserthal, J. et al. TotalSegmentator. Radiology: Artificial Intelligence 5, e230024 (2023)
- Yushkevich, P. A. et al. ITK-SNAP. NeuroImage 31, 1116–1128 (2006)
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| 规模/子集/划分数字 | 千方病案医学编辑部 | 对照论文 Table 1 与 data_split.txt 交叉核验 | ✅ 已通过/已验证 |
| 基准 DSC/HD95 数字 | 千方病案医学编辑部 | 对照 MELBA 论文 Table 2 逐项核验 | ✅ 已通过/已验证 |
| 许可与获取流程 | 千方病案医学编辑部 | 对照官方 README、HF 页面与论文 Usage Notes | ✅ 已通过/已验证 |
| ICD-11/SNOMED 编码映射 | 千方病案医学编辑部 | 对照 WHO ICD-11 与站内已审编码实践复核 | ✅ 已通过/已验证 |
| 医学背景与临床任务描述 | 千方病案医学编辑部 | 医学编辑部交叉审核 | ✅ 已通过/已验证 |
| 代码示例可运行性 | 千方病案医学编辑部 | 数据工程师逐段复核逻辑与接口 | ✅ 已通过/已验证 |
| 坑点与泄漏分析 | 千方病案医学编辑部 | 对照官方 README 更新日志与论文域间隙分析逐条验证 | ✅ 已通过/已验证 |
§10.5 AI 生成章节标注
§1–§10 初稿由 AI 辅助生成;§0 免责声明为站内统一固定文本;全部数字类内容均经人工对照来源核验后定稿。章节级人工重点复核对象为 §2 编码映射(医学风险最高)、§5.3 泄漏分析(方法论风险最高)与 §8.1 基准数字(引用风险最高)。
§10.6 最后人工审核日期
2026-09-05(与 §0 审核声明一致)。若数据集官方渠道发布新版本或修正,本页面将按站点流程重新进入审核更新,并在 §1.4 时间轴中先行记录。
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- ctpelvic1k — 共享标签:医学影像 / 骨骼肌肉影像 / CT / 医学图像分割
- nih-pancreas-ct — 共享标签:医学影像 / CT / 医学图像分割
- abdomenct-1k — 共享标签:医学影像 / CT / 医学图像分割
- word — 共享标签:医学影像 / CT / 医学图像分割
- totalsegmentator — 共享标签:医学影像 / CT / 医学图像分割
- han-seg — 共享标签:医学影像 / CT / 医学图像分割
- verse-spine — 共享标签:医学影像 / 骨骼肌肉影像 / CT / 医学图像分割
- ribfrac — 共享标签:医学影像 / 骨骼肌肉影像 / CT / 医学图像分割
- us-nerve-seg — 共享标签:医学影像 / 骨骼肌肉影像 / 医学图像分割
- radimagenet — 共享标签:医学影像 / 骨骼肌肉影像 / CT
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。
