信息速览

SLIVER07 — 肝脏 CT 分割挑战赛基准 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | SLIVER07 |
| 英文全称 | Segmentation of the Liver Competition 2007 |
| 别名/简称 | SLIVER-07、SLIVER、MICCAI 2007 Liver Grand Challenge、sliver07.grand-challenge.org |
| 疾病分类 | 肝脏疾病谱(病例覆盖大肿瘤、转移瘤、囊肿、肝硬化、部分肝切除后瘢痕等;数据集本身仅提供肝实质分割标签,无疾病诊断标签;ICD-11:2C12.0 肝细胞癌 / DB93 肝硬化,详见 §2.1) |
| SNOMED CT | 10200004 Liver structure(分割目标解剖结构,详见 §2.1b) |
| 数据模态 | 门静脉期增强 CT(3D 体数据) |
| AI 任务类型 | 3D 医学图像分割(肝实质)、器官定位、肝脏体积测量、分割算法基准评测 |
| 样本总数 | 30 例 3D CT 体积(训练 20 例 + 测试 10 例)/ 训练集共 4,159 张 2D 切片 |
| 数据大小 | 约 1.9 GB(training-scans.zip 1.2 GB + test-scans.zip 663.0 MB + training-labels.zip 2.9 MB) |
| 数据格式 | MetaImage(.mhd 头文件 + .raw 体数据) |
| 许可证 | SLIVER07 Research-Only License(仅供研究,禁止商用与再分发) |
| 访问级别 | 开放下载(Zenodo)/ 在线评估需注册挑战赛账号 |
| DUO 标签 | GRU, NCU, PUB |
| 语言 | 英文(文档与元数据) |
| 首发日期 | 2007-10-29(MICCAI 2007 workshop) |
| 最后更新 | 2019-03-17(Zenodo v3 / grand-challenge.org 迁移) |
| 发布机构 | 德国癌症研究中心(DKFZ)、乌得勒支大学医学中心、北卡罗来纳大学教堂山分校 |
| 官方主页 | https://sliver07.grand-challenge.org/ |
| 下载地址 | https://zenodo.org/records/2597908 |
| DOI | 10.1109/TMI.2009.2013851(论文)/ 10.5281/zenodo.2597908(数据 v3) |
| 引用次数 | 1,000+(Semantic Scholar 收录 1,049 次,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐(3/5)— 结构极简、官方划分明确、在线评估系统现成;扣分项:MetaImage 需转 NIfTI、各例 spacing 差异需重采样、测试集无本地 GT、无官方预处理脚本 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11 与 SNOMED CT 映射、肝脏疾病与临床任务定义、金标准描述)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:§4 DAIMS 数据字典(MetaImage 双文件结构、字段字典与统计)、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
审核方式:交叉审核
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。SLIVER07 仅供研发肝脏分割算法使用,禁止将使用该数据训练的分割算法商业化,禁止向注册团队之外的人员再分发数据,发表结果时必须引用 Heimann et al. 2009 论文。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 30 秒速览
这是什么? SLIVER07(Segmentation of the Liver Competition 2007)是 2007 年与 MICCAI 学术会议同期举办的"3D Segmentation in the Clinic: A Grand Challenge"workshop 旗下的肝脏分割挑战赛数据集。它由 30 例门静脉期增强腹部 CT 组成:20 例训练数据附带专家手工标注的肝实质 3D mask,10 例测试数据的标注由主办方保密、只能通过在线系统提交评估。原始数据以 MetaImage(.mhd/.raw)格式托管在 Zenodo,参见官方主页。
为什么重要? 它是医学图像分割领域最早、影响最深远的"大奖赛"式公开基准之一:16 支国际队伍在同一批数据上同台竞技,产出的对比研究与 5 项误差指标评分体系直接塑造了后来 LiTS、Medical Segmentation Decathlon 等大规模基准的设计范式。其配套论文 Heimann et al. 2009(IEEE TMI)已被引用 1,000 次以上(Semantic Scholar,截至 2026-09),是肝脏分割方向必引的文献(Semantic Scholar)。
我能用它做什么? 训练和评测肝实质分割模型(经典方法与深度学习均可)、研究器官定位与体积测量、做跨数据集域泛化实验,或把你的算法提交到 2019 年迁移后的 grand-challenge.org 在线评估系统,与历史公开成绩对照。需要注意:数据体量小(30 例)、仅单一相位、许可证禁止商用(许可证条款)。
§1.1 技术摘要
SLIVER07 的技术定位是"小型、高质量、协议严格"的分割基准。数据侧:30 例门静脉期增强腹部 CT 体数据,尺寸范围 (512, 512, 64) 至 (512, 512, 394),训练集合计 4,159 张 2D 切片;体素间距(spacing)在病例间差异极大——层间距最小 0.70 mm、最大 5.0 mm(中位数 1.0 mm);每例附带一个二值肝实质 mask(训练 20 例公开、测试 10 例保密),肝脏体积横跨 1,170 至 3,015 cm³(数据统计)。评估侧:主办方定义了 5 项互补的误差指标——体积重叠误差(VOE)、相对体积差(VD)、平均对称表面距离(AvgD)、均方根对称表面距离(RMSD)与最大对称表面距离(MaxD),每项按百分制换算为 0-100 分,并以人类专家间差异作为换算基准;16 支参赛队伍(10 支全自动、6 支交互式)的对比结果表明,交互式方法平均分更高且更稳定,而最好的全自动方法(以统计形状模型为主)在多数测试图像上已具有竞争力(Heimann et al. 2009, IEEE TMI)。数据与基准在 2019 年由 Gabriel Humpire 移植到 grand-challenge.org 平台并镜像至 Zenodo,至今仍可在线提交评估。
§1.2 战略价值
方法学价值:分割基准的"活化石"与现代深度学习的试金石。 SLIVER07 是理解医学图像分割评测方法学的最佳样本之一:5 项指标从区域(VOE、VD)与表面(AvgD、RMSD、MaxD)两个视角互补刻画分割质量,避免了单一 Dice 分数的片面性;其"以专家间差异为锚点"的评分设计(即算法误差若接近专家之间的误差即接近满分 100)比裸误差数字更接近临床语义。对深度学习时代的研究者而言,它同时是域泛化与轻量数据训练的天然试验场——30 例的规模正好可以暴露"大数据直觉"在小样本医疗数据上的失效方式(Heimann et al. 2009)。
生态价值:谱系数据集的共同祖先。 从 3D-IRCADb 到 LiTS(Liver Tumor Segmentation Challenge, 2017)再到 Medical Segmentation Decathlon,肝脏分割基准的评估指标、在线提交、保密测试集等机制都可以追溯到 SLIVER07 的设计。SLIVER07 训练集至今仍作为预训练或跨数据集验证源出现在大量后续工作中;2019 年移植到 grand-challenge.org 后评估通道重新开放,使历史成绩可以直接对齐(grand-challenge.org)。
教育价值:3D 医学分割的标准教具。 对于教学场景,SLIVER07 具备罕见的三重便利:数据免注册即可下载(Zenodo)、规模小到笔记本级环境即可完成全部预处理与 2D 训练、标签语义单一清晰(一个器官、二值 mask)。叠加社区沉淀的中文统计资料与 Stack Overflow 问答,它事实上构成了"3D 医学图像分割入门"事实上的标准练习集——代价是教师必须同时讲授它的历史局限(元数据缺失、许可限制),避免学生把基准行为误认为临床现实。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 模态 | 标注目标 | 标注来源 | 与 SLIVER07 的差异化 |
|---|---|---|---|---|---|
| SLIVER07 | 30 例 CT(20+10) | 门静脉期增强 CT | 肝实质单类 mask | 专家人工标注、测试集保密 | 5 指标评分体系、在线评估持续开放、小而精 |
| 3D-IRCADb | 20 例 CT(含静脉期) | 增强 CT | 肝脏+肝肿瘤+8 个器官 | 专家人工标注 | 多器官多结构标注、可本地评估全部数据 |
| LiTS | 201 例 CT(训练 131) | 腹部 CT | 肝脏+肝肿瘤 | 学术机构整理标注 | 规模大 6 倍以上、含肿瘤分割任务 |
| MSD Task03/08 | 201 例(肝脏任务) | 腹部 CT | 肝脏+肿瘤 | Decathlon 整理 | 跨机构多任务框架、标准化划分 |
| AMOS | 500 例 CT+100 例 MRI | CT/MRI | 15 个腹部器官 | 多中心标注 | 多模态、多器官、规模大一个数量级 |
| AbdomenCT-1K | 1,000+ 例 CT | 腹部 CT | 多器官 | 大规模整理 | 域偏移压力测试的极限规模参照 |
规模与指标定义各不相同:SLIVER07 的 30 例属于"方法论基准"体量,适合控制变量研究;LiTS/AMOS 属于"数据规模基准",适合训练大模型。二者不可直接比较成绩。
§1.4 版本时间轴
| 时间 | 事件 | 说明 |
|---|---|---|
| 2007-10-29 | MICCAI 2007 workshop “3D Segmentation in the Clinic: A Grand Challenge” 举办,SLIVER07 挑战赛开赛 | 16 支队伍(10 全自动 + 6 交互式)在统一数据与指标上竞技(官网) |
| 2009-08 | 对比研究论文发表于 IEEE Transactions on Medical Imaging 28(8):1251-1265 | 官方结果与评分体系的权威描述,DOI 10.1109/TMI.2009.2013851 |
| 2007-2018 | 原官网 sliver07.org 长期运行后下线 | 多年间的在线成绩陆续发布于该站 |
| 2019-02 | 由 Gabriel Humpire 移植至 grand-challenge.org,重新开放在线提交 | 历史成绩与评估管线得以延续(官网) |
| 2019-03-17 | Zenodo 镜像 v1/v2/v3 发布(DOI 10.5281/zenodo.2596435 / 2597575 / 2597908) | 数据获取从注册制转变为开放下载(Zenodo) |
| 2019-2026 | 在线评估持续运行,第三方重排版(如 HF 镜像)与教学材料持续沉淀 | 累计下载 6,659 次、浏览 7,605 次(截至 2026-09 检索) |
§1.5 典型应用场景
- 肝分割算法基准评测:用 20 例训练、10 例测试 + 官方在线评估,获得与历史成绩可比的 5 指标百分制得分。
- 小样本/半监督方法研究:20 例训练体量天然构成低资源场景,适合测试形状先验、图谱方法与数据增强策略。
- 跨数据集域泛化实验:以 SLIVER07 为源域或目标域,与 3D-IRCADb、LiTS 交叉训练验证分布偏移下的鲁棒性。
- 教学与复现练习:30 例 + 单类标签的结构是入门 3D 医学分割(SimpleITK/NIfTI 转换、重采样、指标实现)的理想沙盒。
- 肝脏体积测量方法验证:肝体积中位数 1,687 cm³、极差 1,170-3,015 cm³ 的真值分布可直接用于体积计量算法的精度评估(数据统计)。
- 许可合规的负样本教学:SLIVER07 的许可条款(禁商用、禁再分发、必引用)是讲授医疗数据合规时的高质量真实案例——"开放下载"与"开放许可"的区别在这里体现得淋漓尽致(Rules)。
§2 医学背景
§2.1 ICD-11 编码映射
SLIVER07 的标注目标是肝实质本身而非疾病分类,因此数据集不携带任何疾病标签。下表将数据集所覆盖的病理谱系(官方描述中提及的病例形态)映射到 ICD-11 编码,仅供条目内容组织与检索使用,不构成对具体病例的诊断标注。
| 标签概念 | ICD-11 编码 | ICD-11 中文名 | 术语说明 |
|---|---|---|---|
| 肝实质(分割目标) | — | 肝脏(解剖结构) | 数据集唯一的分割标签对象,正常与病变肝实质统一标注 |
| 肝细胞癌(病例谱系) | 2C12.0 | 肝细胞癌 | 官方描述中"含大肿瘤"的典型恶性病例 |
| 肝转移瘤(病例谱系) | — | 转移性肝肿瘤 | 官方描述明确提及 metastases,编码依原发灶而定 |
| 肝硬化(病例谱系) | DB93 | 肝硬化 | 形态学改变的典型病例类型 |
| 肝囊肿(病例谱系) | — | 肝囊肿 | 官方描述明确提及 cysts |
编码映射的使用边界:上表旨在让检索系统与知识图谱能把 SLIVER07 关联到正确的疾病与解剖概念,不代表任何一例测试数据带有对应诊断。跨数据集合并或构建疾病分层实验时,疾病标签必须来自外部临床来源(如配套的院内登记数据),不能从本数据集反推。
§2.1b SNOMED CT 映射
| 标签概念 | SNOMED CT 码 | 英文术语 | 备注 |
|---|---|---|---|
| 肝脏(解剖结构) | 10200004 | Liver structure | 分割目标的解剖学锚定 |
| 肝实质分割 | — | Liver segmentation (procedure concept) | 任务概念无统一常用码,检索时建议组合 10200004 与 CT 成像概念 |
| 计算机体层成像 | — | Computed tomography imaging | 模态锚定 |
§2.2 疾病简介与流行病学背景
肝细胞癌是全球最常见的恶性肿瘤之一,也是癌症相关死亡的主要病因之一;肝转移瘤(尤其来自结直肠癌)与肝硬化结节、肝囊肿则是腹部 CT 检查中高频出现的肝脏病变。这些疾病在 CT 影像上显著改变肝脏的外形轮廓与内部密度分布:大肿瘤会造成局部膨隆与边界外凸,肝硬化导致表面结节化与体积萎缩,部分肝切除术后则留下再生性形态改变(SLIVER07 数据说明)。对肝实质进行精确的 3D 分割是上述疾病影像学评估的共同前置步骤,而 SLIVER07 在构建病例集时有意纳入了上述多样化病理形态,使基准不会退化为"只擅长正常肝脏"的弱测试。
需要强调的是:SLIVER07 只提供肝实质(含肝内血管等内部结构)的二值参考标注,不提供肿瘤、血管或肝段的独立标签;影像对应的年龄、性别、临床诊断等人口学信息官方亦未公开。
从肝脏解剖学的角度补充一点使用语境:肝脏是人体最大的实质性器官,位于右上腹、横跨中线,其上方紧贴膈肌与心脏,左侧与胃壁相邻,这些"灰度相近、位置相接"的邻接关系正是分割算法的经典混淆源。在门静脉期增强影像中,肝实质整体强化而周边器官强化时相不同,为区分提供了基础线索,但当胃壁强化程度接近肝实质或患者脂肪层较厚时,边界歧义依然显著——SLIVER07 官方描述正是把这类情形视为基准的考核重点(数据说明)。
§2.3 临床任务定义
| 任务类型 | 具体内容 | SLIVER07 支持度 |
|---|---|---|
| 诊断辅助 | 肝脏自动勾勒可稳定后续病灶检出与定量的解剖学参考系 | 间接支持(仅肝实质标签) |
| 体积测量/肝 volumetry | 肝移植供受体评估、肿瘤治疗反应评估需精确肝体积 | 直接支持(真值体积分布完整) |
| 手术规划 | 术前切除体积估算与虚拟肝脏外科 | 间接支持(无血管/肝段标签) |
| 放疗靶区勾画 | 自动勾画器官以保护危及器官 | 直接支持(器官轮廓任务同构) |
| 算法基准评测 | 统一数据 + 统一指标 + 在线排行 | 核心设计目标,在线系统持续开放 |
表中五类任务共用同一个技术底座:如果肝实质边界不可靠,其上的体积测量、靶区勾画与病灶定量全部失真。这正是挑战赛选择"单一任务 + 多指标严格评测"而非"多任务 + 宽松评测"的原因——把一个基础任务测准,比把十个任务测个大概更有临床价值。
§2.4 患者人群画像
| 维度 | 内容 |
|---|---|
| 数据来源 | 临床增强腹部 CT(具体采集机构官方未逐一披露) |
| 采集时间 | 2007 年挑战赛之前完成采集(具体年份官方未披露) |
| 例数 | 30 例(训练 20 例、测试 10 例) |
| 年龄/性别分布 | 官方未披露 |
| 地域/种族分布 | 官方未披露 |
| 病理构成 | 官方描述:包含大肿瘤、转移瘤、囊肿、肝硬化、部分肝切除后瘢痕等多样化形态 |
| 就医类型 | 常规腹部增强 CT 检查(门静脉期) |
| 标注对象 | 肝实质(全部 30 例),不含其他器官或病灶标签 |
这一"元数据空白"是使用 SLIVER07 时必须正视的事实:任何涉及人群代表性的结论都需要外部信息佐证(详见 §7.1 与 §7.5)。下表"官方未披露"的每一行都对应一类不可在本数据集上开展的分析,规划研究设计时应先行核对。
§2.5 临床价值与 AI 应用意义
肝分割的自动化价值在临床上直接对应三件事:把放射科医师从逐层手工勾画的重复劳动中解放出来(一次 3D 勾画往往需要数十分钟);为肝体积测量提供可重复的量化结果(专家间与同一专家不同时间的勾画差异正是 SLIVER07 评分体系的换算锚点);以及为肝肿瘤检出、肝段解剖分析等下游任务提供稳定的解剖参考。SLIVER07 的贡献在于把"分割质量好不好"从主观印象变成 5 项可复现指标:VOE 与 VD 刻画体积层面的准确性,AvgD/RMSD/MaxD 刻画边界层面的准确性——而 MaxD 对局部形变(如肿瘤外凸处的漏分)极其敏感,这正是临床体积测量最不能容忍的失效模式(Heimann et al. 2009)。
§2.6 金标准参考描述
| 维度 | SLIVER07 的定义 |
|---|---|
| 划分 | 训练 20 例(含参考 mask)+ 测试 10 例(mask 服务器端保密) |
| 标注方式 | 专家人工 3D 分割(逐层勾画后三维重建),每例单一参考标注 |
| 标注者 | 挑战赛组织方核验的参考分割;论文以多位专家的 inter-observer 分割作为评分换算基准 |
| 标注性质 | 二值 mask:1 = 肝实质(含肝内血管等内部结构),0 = 其他 |
| 质量定位 | 官方将参考分割视为"接近专家水平"的 curated 标注(官方描述:verified by a radiologist) |
与同领域其他金标准的差别:3D-IRCADb 在肝脏之外还提供肝肿瘤与 8 个腹部器官的多重标注,金标准的"信息密度"更高;LiTS 的金标准来自多机构整理,标注协议随批次演化;SLIVER07 的金标准则是"单器官、单相位、单参考、协议冻结"的极简形态——它牺牲了信息密度换取了 2007 年至今从未漂移的可比性,这正是其成绩榜跨越十几年仍可对齐的根本原因。使用者在跨数据集合并时,应把"金标准语义是否同构"作为第一道检查(血管是否挖空、边界是否含病灶),而非直接拼接 mask。
§3 数据集规格
§3.0 版本与获取渠道抉择矩阵
SLIVER07 无内容演进意义上的多版本(Zenodo v1/v2/v3 三条 DOI 同日发布、内容一致),选择的关键在于获取渠道:
| 你的需求 | 推荐渠道 | 大小 | 理由 |
|---|---|---|---|
| 本地训练与快速上手 | Zenodo v3(DOI 10.5281/zenodo.2597908) | 约 1.9 GB | 免注册直接下载,含训练标签,引用 DOI 稳定(Zenodo) |
| 正式基准评测 | grand-challenge.org 在线评估 | 0(网页提交) | 测试集 GT 仅存在于服务器端,本地无法复现测试分(评测页) |
| 团队/机构复用归档 | Zenodo v1 或 v2 DOI | 约 1.9 GB | 与 v3 内容一致,仅 DOI 号不同,按既有项目引用延续即可 |
| 深度学习框架即插即用原型 | Hugging Face 第三方镜像 MedOtter/SLIVER07 | 4.47 GB | 已重排为 case_XXXXX/parquet 结构并保留原始 mhd/raw,但属第三方转载,正式发表仍应引用官方渠道(HF 镜像) |
§3.1 模态详情
数据集仅含一种模态:门静脉期(portal venous phase)增强腹部 CT。所有 30 例均为对比增强扫描的单一相位体数据,不含平扫、动脉期或多期序列。图像体素保存原始 CT 值(HU),MetaImage 元素类型为 MET_SHORT(16 位有符号短整型)(HF 镜像数据卡)。标注文件为同尺寸二值体:1 表示肝实质,0 表示其余组织。
对模型设计的直接含义:不存在跨期配准问题,但所有病例共享"肝脏与胃壁、心脏、皮下脂肪灰度接近"这一经典混淆源,强度线索的判别力有限,形状与位置先验因此长期在此基准上扮演重要角色(Heimann et al. 2009)。
相位与对比协议的三点工程含义:其一,门静脉期肝实质强化均匀(约 100-140 HU 区间的软组织密度),肝窗窗宽窗位在整个数据集上可以共用一套起点参数;其二,不含平扫意味着不能利用多期差值信息,单期方法的设计(如血管引导、形状先验)历史上正是围绕这一约束展开的;其三,腹部增强 CT 的成像协议决定肝边界处的对比度主要来自肝-脂肪与肝-胃壁交界面,这正是 AvgD/RMSD 类表面距离指标最敏感的区域。
§3.1b 标注几何与体积语义
标注的几何语义需要特别强调:参考 mask 是"整个肝实质"的三维包络,肝内血管、胆管等低密度结构不挖空;肝外结构(下腔静脉、胆囊等)不包含。这一语义决定了三个工程事实:mask 在肝门血管密集区仍是实心前景;mask 边界在肝脏裸区(与膈肌直接贴邻)处的界定依赖标注者的解剖学判断;mask 体素数乘以体素体积即为肝脏体积,官方统计的 1,170-3,015 cm³ 分布正是按此口径得到(数据统计)。
§3.2 子集与样本数
| 子集 | 例数 | 文件命名 | 参考标注 | 用途 |
|---|---|---|---|---|
| 训练集(training) | 20 例 | liver-orig001 ~ liver-orig020 | liver-seg001 ~ liver-seg020(公开) | 算法训练、调参、交叉验证 |
| 测试集(test) | 10 例 | liver-orig001 ~ liver-orig010(独立目录) | 无公开标注(服务器端保密) | 在线提交评分 |
| 合计 | 30 例 | — | 20 份 mask | 训练集合计 4,159 张 2D 切片(测试集切片数官方未单独披露) |
注意测试集文件与训练集同名(均为 liver-orig001 起始),混合存放两个 zip 的解压内容会导致覆盖——官方分发中它们位于不同的压缩包内(training-scans.zip 与 test-scans.zip),解压到同一目录前必须先建二级目录(Zenodo)。
此外,training-labels.zip 单独分发(仅 2.9 MB)意味着标注与图像的版本可以独立追溯;合并目录时建议保留三包分目录结构至少到版本校验完成,再决定是否按扁平布局重组。
§3.3 数据格式
| 格式元素 | 说明 |
|---|---|
| .mhd | MetaImage 头文件(ASCII 文本),记录 DimSize、ElementSpacing、ElementType、ElementDataFile 等元数据 |
| .raw | 与 .mhd 同名的二进制体数据文件,按头文件声明逐体素存储 |
| ElementType(图像) | MET_SHORT,16 位有符号整型,保存原始 HU 值 |
| ElementType(标注) | 二值 0/1 体数据 |
| 配对约束 | ElementDataFile 字段指向对应 .raw 文件名,二者必须同名同目录,拆散即读取失败 |
一个训练图像头文件的典型形态如下(字段值以 liver-orig001 为例,各例的 DimSize/ElementSpacing 不同):
ObjectType = Image
NDims = 3
BinaryData = True
BinaryDataByteOrderMSB = False
DimSize = 512 512 183
ElementSpacing = 0.70 0.70 1.0
ElementByteOrderMSB = False
ElementType = MET_SHORT
ElementDataFile = liver-orig001.raw
工程要点:MetaImage 头是纯文本,可以直接 cat 查看,任何"这个例子的 spacing 是多少"的问题都能在 5 秒内得到确定答案;.raw 文件大小恒等于 DimSize 乘积 × 2 字节(MET_SHORT),可用来快速校验文件完整性。
§3.4 存储大小
| 文件 | 大小 |
|---|---|
| training-scans.zip | 1.2 GB |
| training-labels.zip | 2.9 MB |
| test-scans.zip | 663.0 MB |
| license.txt | 3.2 kB |
| 合计 | 约 1.9 GB(Hugging Face 第三方重排版为 4.47 GB) |
解压后的磁盘占用约为压缩包的 1.5-2 倍(MetaImage .raw 未压缩存储,zip 压缩率有限);若同时保留原始 zip、解压目录与 NIfTI 转换产物,建议预留 10 GB 磁盘空间(与 §6.8 硬件表一致)。
§3.5 标注方式
每例训练数据的肝实质参考分割由专家人工完成并经挑战赛组织方核验(官方数据卡描述其经 radiologist 验证),以逐层勾画-三维整合的方式生成单一二值参考 mask。数据集不含自动预标注、不含多数投票式多标注融合,也不随数据公开重复标注。测试集的参考分割同样存在,但仅在服务器端用于评分,从不分发。
从生产视角看,这种"单一 curated 参考"的标注方式有两面性:好的一面是标注语义绝对一致,不存在多标注者风格差异带来的标签噪声,算法间的成绩差异可以干净地归因于算法本身;代价是任何一例的标注误差都会系统性传导到所有模型——面对小样本基准,与其怀疑模型,不如先用 §7.2 的质检清单排除标注离群例。
§3.6 标注者资质与一致性
官方未逐例公布标注者的资质档案。方法学层面的替代信息来自配套论文:评分体系把算法误差与"多位人类专家独立分割同一肝脏时彼此之间的差异"(inter-observer variability)相挂钩,即满分 100 对应"与参考分割的差距缩小到专家之间互相比较的水平";论文同时报告了交互式方法的一致性优于全自动方法这一基准事实(Heimann et al. 2009)。因此,SLIVER07 的参考标注一致性是有定量语境的,但逐例标注者信息不可考。
§3.7 采集周期
数据集在 2007 年挑战赛前完成采集,具体扫描时间窗口、每例采集日期官方均未披露。使用时应默认其为 2000 年代中期的 CT 设备与重建工艺产物(详见 §7.6 数据漂移讨论)。这一时间属性同时决定了数据的两个衍生特征:体数据内不存在任何数字化时间戳可供追溯;跨例间的采集间隔与季节、设备升级等因素全部不可考,无法做任何时间维度的分层分析。
§3.8 地域覆盖
采集机构与受检者地域官方未披露。挑战赛由德国癌症研究中心(DKFZ)、乌得勒支大学医学中心与北卡罗来纳大学教堂山分校的团队组织,但数据来源机构与上述组织机构的关系未公开说明(论文作者机构)。引用本数据集描述受检人群时,应避免使用"欧洲队列"或"西方人群"这类未经验证的概括——组织机构的所在地不等于受检者的所在地。
§3.9 设备规格与几何参数
扫描仪厂商与机型官方未披露。可核实的几何参数分布如下(数据统计):
| 参数 | 最小值 | 中位数 | 最大值 |
|---|---|---|---|
| 面内 spacing(x/y,mm) | 0.58 | 0.70 | 0.81 |
| 层间 spacing(z,mm) | 0.70 | 1.0 | 5.0 |
| 体尺寸(x×y×z) | (512, 512, 64) | — | (512, 512, 394) |
| 肝脏体积(cm³) | 1,170 | 1,687 | 3,015 |
面内分辨率统一性较好(0.58-0.81 mm),而层间 spacing 跨越约 7 倍(0.70-5.0 mm),这是全数据集最显著的几何异质性,也是预处理必须逐例重采样的直接证据。
§3.10 深度溯源链
| 层级 | 环节 | 说明 |
|---|---|---|
| 一级(原始产出) | 临床增强 CT 扫描 + 专家分割 | 2007 年挑战赛前完成 |
| 二级(学术发布) | MICCAI 2007 Grand Challenge workshop(2007-10-29) | 统一协议、统一指标首发 |
| 三级(权威文献) | Heimann et al., IEEE TMI 28(8):1251-1265, 2009 | 结果与协议的同行评审描述,DOI 10.1109/TMI.2009.2013851 |
| 四级(平台迁移) | grand-challenge.org(2019-02 起在线评估) | 原站 sliver07.org 下线后的官方延续 |
| 五级(开放镜像) | Zenodo v1/v2/v3(2019-03-17,DOI 10.5281/zenodo.2597908) | 当前的主要下载渠道 |
§4 数据结构
§4.0 目录树
两个扫描压缩包解压后的结构预览(测试包解压到独立目录,避免与训练包同名文件互相覆盖):
sliver07/
├── training/ # 来自 training-scans.zip + training-labels.zip
│ ├── liver-orig001.mhd # 训练 CT 头文件(MetaImage ASCII 头)
│ ├── liver-orig001.raw # 训练 CT 体数据(MET_SHORT,原始 HU)
│ ├── liver-orig001..020.mhd/.raw # ……共 20 对
│ ├── liver-seg001.mhd # 训练标注头文件
│ ├── liver-seg001.raw # 训练标注体数据(二值 0/1)
│ └── liver-seg001..020.mhd/.raw # ……共 20 对
├── test/ # 来自 test-scans.zip(独立目录!)
│ ├── liver-orig001.mhd/.raw # 测试 CT(与训练包同名,注意隔离)
│ └── liver-orig001..010.mhd/.raw # ……共 10 对,无任何 seg 文件
└── license.txt # 许可条款(3.2 kB)
命名规则速记:orig 指原始图像、seg 指参考分割;三位数字编号在训练集与测试集内各自从 001 起,跨 split 不构成任何对应关系;文件名不含患者 ID、日期或设备信息,是纯粹的顺序编号。
§4.1 DAIMS 字段字典
MetaImage 格式没有"表格列",其字段字典由头文件关键字与文件对结构构成。核心字段如下:
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| liver-origNNN.mhd | ASCII 文本 | CT 体数据头文件 | liver-orig001.mhd | 加载入口 | 无 | 无 | 固定命名 |
| DimSize | int × 3 | 体尺寸(x, y, z) | 512 512 183 | 预处理内存规划 | 无 | 无 | z 轴 64-394 |
| ElementSpacing | float × 3 | 体素物理间距(mm) | 0.70 0.70 1.0 | 重采样、真实尺度量测 | 每例不同,必须逐例读取 | 无 | 0.58-5.0 |
| ElementType | 枚举字符串 | 体素数据类型 | MET_SHORT | 数组 dtype 声明 | 无 | 无 | MET_SHORT(图像) |
| ElementDataFile | 字符串 | 指向同名 .raw 的文件名 | liver-orig001.raw | 读取必经,配对断链即失败 | 拆包/重命名可破坏 | 无 | 同名约束 |
| .raw 体素值 | MET_SHORT 数组 | 原始 CT 值(HU) | 肝实质约软组织密度 | 模型输入、窗宽窗位 | 无 | 无 | 16 位有符号整型域 |
| liver-segNNN.mhd/.raw | 二值体 | 训练集肝实质标注 | liver-seg001.raw | 监督信号 | 无 | 无 | 标签 |
| label | uint/short 体素 | 1=肝实质(含肝内血管),0=其他 | 1 | 损失函数目标 | 无 | 无 |
§4.2 标签分布
单类二值分割任务,不存在类别不平衡的经典含义(肝 vs 背景的体素比天然失衡但无语义多类问题)。真正影响训练的是空间分布差异:
- 肝体积范围 1,170-3,015 cm³(中位数 1,687 cm³),最大与最小相差约 2.6 倍,决定了各例前景体素占比差异显著(数据统计)。
- 标注把肝内血管、胆管等内部结构一并归入肝实质(不挖空),与某些把血管留空的其他器官数据集约定不同,混合使用数据集时必须核对这一语义(数据说明)。
- 病理形态(大肿瘤外凸、肝硬化结节面、术后瘢痕)集中在轮廓不规则处,是每例难度的主导变量。
训练集 20 例的逐例切片数(z 轴尺寸,转引自 Hugging Face 镜像数据卡统计,其总和恰为 4,159 张切片,与官方统计自洽):
| 病例 | 切片数 | 病例 | 切片数 | 病例 | 切片数 | 病例 | 切片数 |
|---|---|---|---|---|---|---|---|
| liver-orig001 | 183 | liver-orig006 | 111 | liver-orig011 | 388 | liver-orig016 | 121 |
| liver-orig002 | 64 | liver-orig007 | 251 | liver-orig012 | 220 | liver-orig017 | 245 |
| liver-orig003 | 79 | liver-orig008 | 228 | liver-orig013 | 145 | liver-orig018 | 335 |
| liver-orig004 | 212 | liver-orig009 | 210 | liver-orig014 | 129 | liver-orig019 | 335 |
| liver-orig005 | 319 | liver-orig010 | 191 | liver-orig015 | 394 | liver-orig020 | 183 |
逐例分布揭示两个训练层面的含义:最薄病例(64 层)与最厚病例(394 层)相差 6.2 倍,按体训练时 batch 内必须依赖重采样或 ROI 裁剪对齐;切片数呈长尾分布(中位数约 202 层),构建"前中后三段均匀抽层"的切片级训练采样器比顺序读取更能均衡覆盖肝脏区域。
§4.3 关键统计
| 统计项 | 数值 |
|---|---|
| 3D 体积总数 | 30(训练 20 + 测试 10) |
| 2D 切片总数(训练集) | 4,159 |
| 单例切片数范围 | 64 - 394 |
| 面内尺寸 | 统一 512 × 512 |
注:本表极值与统计均基于训练集 20 例的可核实数据(逐例分布见 §4.2);测试集 10 例的逐例统计官方未披露。
| 面内 spacing | 0.58 - 0.81 mm |
| 层间 spacing | 0.70 - 5.0 mm(中位数 1.0 mm) |
| 肝体积 | 1,170 / 1,687 / 3,015 cm³(min/median/max) |
| 图像体素类型 | MET_SHORT(16 位有符号整型,原始 HU) |
| 标注体素类型 | 二值 0/1 |
§4.4 数据层级
数据集(SLIVER07, 30 例)
├── split(training = 20 / test = 10)
│ └── volume(liver-origNNN:一个受检者一次增强扫描的 3D 体)
│ ├── header 元数据(DimSize / ElementSpacing / ElementType)
│ ├── voxel array(512×512×Z,MET_SHORT HU 值)
│ └── slice(2D 断层,训练 20 例合计 4,159 张,z 轴索引)
│ └── mask 标注(仅 training:二值 0/1,与图像体素逐一对齐)
层级注意点:同一 volume 内所有 slice 共享 spacing 与标注语义;跨 volume 不存在任何共享的元数据键(无患者 ID、无检查时间),两个 split 之间也没有官方给出的受检者对应关系。
对 AI 训练的具体含义:数据层级是"体优先"而非"切片优先"——官方指标(VOE/AvgD 等)全部定义在 3D 体上,任何只在 2D 切片上训练的模型都必须做逐体整合(如逐体滑窗推理后拼接)才能进入官方评估通道;"体优先"同时意味着数据增强应在 3D 空间设计(3D 旋转/形变),逐切片 2D 增强会引入层间不一致;最后,"volume → slice"的层级深度决定了内存策略:1 mm 等向重采样后的单例体积可达数百 MB,随机访问训练块(sub-volume)比整例常驻内存更现实。
§4.5 缺失值与信息性缺失
体数据与标注内不存在缺失体素(MetaImage .raw 为定长连续存储,缺失物理上不可能)。“缺失"发生在元数据层:患者人口学、临床诊断、扫描参数与设备信息整体缺位,且属于"官方未提供"而非"字段存在但空缺”,因此没有信息性缺失编码机制。工程上不需要填补策略,但科研上任何依赖这些元数据的分析(如按年龄段分层评估)在 SLIVER07 上不可行,应改用 LiTS/AMOS 等含临床元数据的队列。
一次性的完整性校验脚本(建议在数据入库时运行):
import glob
import os
import SimpleITK as sitk
def audit_sliver07(train_dir: str, test_dir: str) -> None:
"""校验文件配对、头字段一致性与体素类型。
train_dir 含 20 对 orig/seg,test_dir 含 10 对 orig。"""
for cid in range(1, 21):
ct_path = os.path.join(train_dir, f"liver-orig{cid:03d}.mhd")
mk_path = os.path.join(train_dir, f"liver-seg{cid:03d}.mhd")
assert os.path.exists(ct_path), f"缺 CT: {ct_path}"
assert os.path.exists(mk_path), f"缺标注: {mk_path}"
ct, mk = sitk.ReadImage(ct_path), sitk.ReadImage(mk_path)
assert ct.GetSize() == mk.GetSize(), f"case {cid} 尺寸不一致"
assert ct.GetSpacing() == mk.GetSpacing(), f"case {cid} spacing 不一致"
assert os.path.getsize(
ct_path.replace(".mhd", ".raw")) == 2 * ct.GetWidth() * ct.GetHeight() * ct.GetDepth()
for cid in range(1, 11):
p = os.path.join(test_dir, f"liver-orig{cid:03d}.mhd")
assert os.path.exists(p), f"测试集缺 CT: {p}"
print("SLIVER07 完整性校验通过:训练 20 对 + 测试 10 例")
§5 划分与使用建议
§5.1 官方划分
官方划分即挑战赛协议本身:20 例训练(含标注)+ 10 例测试(无标注),测试成绩只能通过在线评估获得。该划分自 2007 年沿用至今,所有历史成绩都建立在其上,不可打乱后宣称与文献可比(评测页)。
§5.2 社区惯例划分
本地实验的社区惯例有两种:其一,直接用 20 例训练集做 5 折交叉验证,测试集完全不触碰,只做最终提交;其二,在 20 例内做 16/4 训练验证切分用于调参(Hugging Face 第三方镜像即按官方 20/10 提供 train/test 字段,HF 镜像)。两种做法都要求测试图像本身不得参与任何形式的训练或预处理统计(如强度归一化分位数)计算。
§5.3 数据泄漏风险
SLIVER07 体量小,泄漏风险系数被放大,最需要警惕的三条通道:
- 增强策略搜索泄漏:在测试集上反复试增强组合再"提交"看分,本质上把测试集用作验证集;官方规则同样禁止只报告训练集结果、要求提交时附系统描述 PDF(Rules)。
- 预处理统计泄漏:HU 归一化的分位数、重采样目标 spacing 等统计量应仅从训练 20 例计算。
- 隐式受检者重复:官方未披露 30 例是否来自 30 名不同受检者;在训练集内部做交叉验证时无法排除同一受检者多例的残余可能,因此训练集内切分的成绩也不宜过度解读。
- 跨数据集镜像泄漏:SLIVER07 训练例与 3D-IRCADb、LiTS 等数据集之间是否存在病例重叠,官方从未声明;在"SLIVER07 训练 → LiTS 测试"这类流水线中,应假定存在重叠风险并在论文中显式讨论,而不是默认独立。
§5.4 交叉验证与外部验证建议
- 训练集内:5 折交叉验证(每折 16 训练 / 4 验证),以折间 VOE/VD/AvgD 波动评估稳定性。
- 跨数据集:以 3D-IRCADb(20 例)或 LiTS 训练子集为外域验证源,检验对病理谱与扫描工艺差异的鲁棒性。
- 抽样细节:分层键建议同时使用肝体积与切片数两个几何维度,避免验证折内全部是厚层病例。
- 与历史成绩对齐:最终模型务必走一次官方在线提交,其 5 指标百分制得分是唯一可与文献对照的口径。
§5.5 使用方式建议
| 使用意图 | 建议做法 |
|---|---|
| 发表论文报告成绩 | 20 例训练 → 在线提交 10 例测试 → 报告 5 项百分制得分 + 引用 Heimann 2009 |
| 快速原型迭代 | 训练集 5 折交叉验证,本地只算 VOE/Dice,不碰测试集 |
| 预训练后迁移 | 先在 LiTS/AMOS 预训练再在 SLIVER07 训练集微调,须在论文中明确披露数据流 |
| 教学演示 | 训练集内 16/4 切分即可,全程本地,无需注册评估账号 |
§5.6 面向生产的划分策略
若 SLIVER07 只是生产管线中的一份预训练语料而非评测终点,划分策略应服从"分布覆盖"原则:把 20 例按肝脏体积(1,170-3,015 cm³)与切片数(64-394 层)排序后分层抽样切分,确保每个训练子集都覆盖大小两端的几何形态;生产验证集则应来自目标场景的真实扫描分布(现代设备、本地人群),而不是从 SLIVER07 内部再切——后者只能证明"对 2000 年代扫描的记忆",不能证明"对现状的适应"。落地时建议把"SLIVER07 内部切分成绩"与"生产分布抽检成绩"作为两行独立的指标分别汇报,中间不做任何合并平均。
§6 AI 就绪指南 ⭐
§6.0 云端快速启动
数据仅 1.9 GB,Google Colab 或任何带 GPU 的云主机都可以直接跑通。最小启动序列:
pip install SimpleITK numpy scipy torch matplotlib
# 下载三个 zip(约 1.9 GB,无需注册 Zenodo 账号)
wget https://zenodo.org/records/2597908/files/training-scans.zip
wget https://zenodo.org/records/2597908/files/training-labels.zip
wget https://zenodo.org/records/2597908/files/test-scans.zip
# 务必分开解压:两个包内文件同名
mkdir -p data/training data/test
unzip -q training-scans.zip -d data/training
unzip -q training-labels.zip -d data/training
unzip -q test-scans.zip -d data/test
§6.1 快速上手:读取与可视化
代码预期目录结构即 §6.0 中 data/training(含 20 对 liver-origNNN.mhd/.raw 与 20 对 liver-segNNN.mhd/.raw)。data_root 拼接关系:data_root / f"liver-orig{idx:03d}.mhd"。最小可用子集是任意一对 orig/seg 文件。
import SimpleITK as sitk
import matplotlib.pyplot as plt
# 读取 CT 体与对应 mask(SimpleITK 同时解析 .mhd 头并加载同名 .raw)
ct = sitk.ReadImage("data/training/liver-orig001.mhd")
mask = sitk.ReadImage("data/training/liver-seg001.mhd")
print("尺寸 (x,y,z):", ct.GetSize()) # 如 (512, 512, 183)
print("spacing (x,y,z) mm:", ct.GetSpacing()) # 如 (0.70, 0.70, 1.0) —— 每例不同
print("体素类型:", sitk.GetPixelIDValueAsString(ct.GetPixelID())) # 16-bit signed integer
# 关键:GetArrayFromImage 后数组轴序为 (z, y, x),与 GetSize 的 (x, y, z) 相反
ct_arr = sitk.GetArrayFromImage(ct)
mask_arr = sitk.GetArrayFromImage(mask)
fig, axes = plt.subplots(1, 3, figsize=(12, 4))
mid = ct_arr.shape[0] // 2
axes[0].imshow(ct_arr[mid], cmap="gray"); axes[0].set_title(f"CT slice z={mid}")
axes[1].imshow(mask_arr[mid], cmap="gray"); axes[1].set_title("Liver mask")
axes[2].imshow(ct_arr[mid], cmap="gray")
axes[2].contour(mask_arr[mid], levels=[0.5], colors="#2563EB")
plt.show()
§6.2 数据获取
| 文件 | 链接(Zenodo 记录页 2597908) | 大小 | 内容 |
|---|---|---|---|
| training-scans.zip | https://zenodo.org/records/2597908 | 1.2 GB | 20 例 CT(.mhd/.raw) |
| training-labels.zip | https://zenodo.org/records/2597908 | 2.9 MB | 20 例肝 mask |
| test-scans.zip | https://zenodo.org/records/2597908 | 663.0 MB | 10 例测试 CT(无标注) |
| license.txt | https://zenodo.org/records/2597908 | 3.2 kB | 许可条款全文 |
在线评估注册流程:在 grand-challenge.org 的 SLIVER07 页面 注册账号 → 组建参赛团队(Team)→ 按提交页说明上传 10 例测试的分割结果 → 系统返回 5 项指标百分制得分。每次提交须附系统描述 PDF(Rules)。
§6.3 预处理全流程
推荐流水线:MetaImage → NIfTI 归档 → 逐例重采样至 1 mm 等向(或 1.5 mm 以省显存)→ 肝窗窗口化/强度归一化 → 训练集内统计裁剪。窗宽窗位(本例用腹部软组织窗 center=50, width=350)为经验可调参数,非数据集官方规范。
import os
import glob
import SimpleITK as sitk
def convert_mhd_to_nifti(in_mhd: str, out_path: str) -> None:
"""MetaImage → NIfTI。注意输出路径用 replace 改后缀,
而不是字符串拼接 '.nii'(否则生成 xxx.mhd.nii)。"""
img = sitk.ReadImage(in_mhd)
sitk.WriteImage(img, out_path, useCompression=True)
for in_mhd in sorted(glob.glob("data/training/*.mhd")):
out_path = in_mhd.replace(".mhd", ".nii.gz")
convert_mhd_to_nifti(in_mhd, out_path)
print("done:", os.path.basename(out_path))
def resample_to_isotropic(img: sitk.Image, spacing: tuple = (1.0, 1.0, 1.0)) -> sitk.Image:
"""逐例重采样到等向 spacing。SLIVER07 层间距 0.70-5.0 mm,
跳过此步会让同一模型面对 7 倍的 z 向几何畸变。"""
import numpy as np
old = img.GetSpacing(); size = np.array(img.GetSize())
new_size = (size * (np.array(old) / np.array(spacing))).astype(int).tolist()
return sitk.Resample(
img, new_size, sitk.Transform(), sitk.sitkLinear,
img.GetOrigin(), spacing, img.GetDirection(), 0.0, sitk.sitkFloat32)
def ct_window(arr, center: float = 50.0, width: float = 350.0):
"""腹部软组织窗(可调)。归一化统计只允许从训练集计算。"""
lo, hi = center - width / 2, center + width / 2
return ((arr - lo) / (hi - lo)).clip(0, 1)
§6.4 PyTorch DataLoader 完整代码
import os
import numpy as np
import SimpleITK as sitk
import torch
from torch.utils.data import Dataset, DataLoader
class SLIVER07Dataset(Dataset):
"""SLIVER07 训练集 3D 分割 Dataset。
data_root 应指向包含 liver-origNNN.mhd/.raw 与 liver-segNNN.mhd/.raw 的目录。
spacing_target: 重采样目标 spacing (x, y, z) mm,None 表示不重采样(不推荐)。"""
def __init__(self, data_root: str, case_ids: list, spacing_target=(1.0, 1.0, 1.0),
window_center: float = 50.0, window_width: float = 350.0):
self.root = data_root
self.ids = case_ids
self.spacing_target = spacing_target
self.center, self.width = window_center, window_width
def __len__(self) -> int:
return len(self.ids)
def _load_pair(self, cid: int):
ct = sitk.ReadImage(os.path.join(self.root, f"liver-orig{cid:03d}.mhd"))
mk = sitk.ReadImage(os.path.join(self.root, f"liver-seg{cid:03d}.mhd"))
if self.spacing_target is not None:
ct = self._resample(ct, order=sitk.sitkLinear)
mk = self._resample(mk, order=sitk.sitkNearestNeighbor) # mask 必须最近邻
ct_arr = sitk.GetArrayFromImage(ct).astype(np.float32) # (z, y, x)
mk_arr = sitk.GetArrayFromImage(mk)
lo = self.center - self.width / 2
ct_arr = ((ct_arr - lo) / self.width).clip(0, 1)
return ct_arr[None], mk_arr[None] # (1, z, y, x)
def _resample(self, img: sitk.Image, order: int) -> sitk.Image:
import numpy as np
old = img.GetSpacing(); size = np.array(img.GetSize())
new_size = (size * (np.array(old) / np.array(self.spacing_target))).astype(int).tolist()
return sitk.Resample(img, new_size, sitk.Transform(), order,
img.GetOrigin(), self.spacing_target, img.GetDirection(),
0.0, sitk.sitkFloat32 if order == sitk.sitkLinear else sitk.sitkUInt8)
def __getitem__(self, idx: int):
ct, mk = self._load_pair(self.ids[idx])
return {"image": torch.from_numpy(ct.copy()),
"mask": torch.from_numpy(mk.copy()).long(),
"case_id": self.ids[idx]}
# 20 例训练集 → 16/4 切分示例(测试集 10 例只用于在线提交,不进 DataLoader)
train_ids = list(range(1, 17)); val_ids = list(range(17, 21))
train_ds = SLIVER07Dataset("data/training", train_ids)
val_ds = SLIVER07Dataset("data/training", val_ids)
train_loader = DataLoader(train_ds, batch_size=1, shuffle=True, num_workers=4)
val_loader = DataLoader(val_ds, batch_size=1, shuffle=False, num_workers=2)
3D 体积形状差异大(重采样前 64-394 层),
batch_size=1+ 梯度累积是最省心的选择;若需按批训练,请配合裁剪或前景 ROI 缩放到统一尺寸。
§6.5 实战坑点清单
⚠️ 坑点 1:把 3D 体数据当 2D 图像直接送进 imshow / 混淆轴序(分类:工程陷阱)
问题:SimpleITK 的
GetArrayFromImage返回轴序为 (z, y, x) 的数组,而新手按 (x, y, z) 直觉索引,或把整个 3D 数组直接传给plt.imshow,导致报错或显示的不是想要的断层。
症状:TypeError: Invalid shape (512, 512, 183) for image data;或画出的"横断面"实为冠状/矢状面,标签叠加整体错位。
解决:
- 简单方法:牢记三个转换——
GetSize()返回 (x, y, z),GetArrayFromImage返回 (z, y, x),取第 k 层写arr[k]而非arr[..., k]。- 进阶方法:封装统一的
to_numpy(volume)工具函数并在断言里校验arr.shape == tuple(reversed(img.GetSize())),全项目只用这一个入口。- SOTA 方法:加载后立即用
sitk.GetPixelIDValueAsString与首层可视化做冒烟测试;或改用 platipy 等内置 3D 可视化器规避手写索引(见参考)。
参考:Stack Overflow: How to extract an axial image from the SLIVER07 CT dataset and its .mhd file
⚠️ 坑点 2:假设所有病例 spacing 一致,跳过逐例重采样(分类:预处理陷阱)
问题:SLIVER07 的层间 spacing 从 0.70 mm 到 5.0 mm 相差约 7 倍,面内 0.58-0.81 mm 也逐例不同。若按"固定 spacing"或直接 resize 到固定矩阵训练,同一物理尺寸的肝脏在不同病例中呈现完全不同的像素形态,模型被迫拟合几何畸变而非解剖。
症状:验证损失收敛但波动大;表面距离指标(AvgD/RMSD)系统性偏差;同一模型跨病例表现方差远大于预期。
解决:
- 简单方法:每个病例从自己的 .mhd 头读
ElementSpacing,绝不写死常量。- 进阶方法:统一重采样到 1.0 mm 等向(图像线性插值、mask 最近邻插值),图像与 mask 用同一份输出几何,保证逐体素对齐(代码见 §6.3/§6.4)。
- SOTA 方法:按 nnU-Net 的思路为每个 case 选择目标 spacing(用训练集 spacing 中位数),在显存与几何保真间自动折中。
参考:Hugging Face 镜像数据卡(“read from each .mhd header rather than assuming a fixed spacing”)、数据统计
⚠️ 坑点 3:.mhd 与 .raw 配对被拆散或错误改名(分类:工程陷阱)
问题:MetaImage 的 .mhd 只是文本头,体数据在 ElementDataFile 指向的同名 .raw 里。把 .raw 单独移动、重命名或只拷贝 .mhd,读取立即失败;批量转换时用字符串拼接
out + files[i] + '.nii'还会生成xxx.mhd.nii这类畸形文件名。
症状:RuntimeError: ... unable to open file或静默生成一堆无法被下游识别的双后缀文件。
解决:
- 简单方法:.mhd 与 .raw 永远成对复制/移动;用
glob('*.mhd')驱动循环而非手写文件名。- 进阶方法:转换输出名一律用
in_mhd.replace('.mhd', '.nii.gz')(见 §6.3),并在循环后断言输出数量等于输入数量。- SOTA 方法:入库前写一个校验脚本,逐头文件解析 ElementDataFile 并检查配对存在,作为数据版本控制的 lint 步骤。
参考:Stack Overflow: Conversion of .mhd format to .nii format for multiple files
⚠️ 坑点 4:试图在本地"评估"测试集,或拿在线分数当验证分数调参(分类:评估误用)
问题:测试集 10 例没有任何公开标注,本地永远无法计算测试指标;反过来,把在线提交返回的分数当验证集信号反复迭代,等于把保密测试集变成了调参集,成绩失去基准意义。
症状:本地一切指标正常但提交后分数显著偏低(训练集过拟合);或提交次数膨胀、每次提交只为看分数。
解决:
- 简单方法:本地验证只允许使用训练 20 例的内部切分(如 5 折),测试提交保留给最终模型。
- 进阶方法:固定一个"提交冻结点"实验流程:交叉验证定型 → 单次提交 → 报告在线分数与内部验证分数的差值作为过拟合度量。
- SOTA 方法:同时报告内部 5 折均值±方差与官方在线 5 指标得分,并按官方要求附系统描述 PDF,避免选择性汇报。
参考:SLIVER07 Rules(禁止只报告训练集结果)、HF 镜像(test 无 mask 说明)
⚠️ 坑点 5:误解"肝实质"语义,把血管/胆管从标注里"挖掉"或把自己的预测挖空对齐(分类:标签理解)
问题:SLIVER07 的参考标注把肝内血管等内部结构统一归入肝实质(前景是实心的),与部分数据集"只标注肝包膜内非血管组织"的约定相反。若训练时用其他数据集的语义先验对预测做形态学开运算"清理血管洞",会与真值语义直接冲突。
症状:表面距离指标在血管密集区(肝门附近)持续偏大;叠加可视化发现"预测比真值干净"却扣分。
解决:
- 简单方法:明确本项目标签语义 = 含内部结构的完整肝实质,不做任何挖空后处理。
- 进阶方法:跨数据集混合训练时,为每个来源维护标签语义卡(是否挖血管、是否含病灶),必要时对其他数据集的 mask 做闭运算对齐 SLIVER07 语义。
- SOTA 方法:检查每例真值的前景连通性(官方参考为单连通 curated mask),把连通分量数作为数据质检指标纳入训练前验证。
参考:SLIVER07 数据说明、openmedlab 统计页
⚠️ 坑点 6:把 CT 的 MET_SHORT 有符号 HU 值当 0-255 灰度处理(分类:预处理陷阱)
问题:SLIVER07 图像体素是 16 位有符号整型的原始 CT 值(HU),不是 8 位灰度。按 0-255 假设做归一化、直接
astype(np.uint8)或用通用图像增强(亮度拉伸到全幅)都会破坏强度语义:空气(约 -1000 HU 以下)与软组织的相对关系被完全打乱。
症状:图像显示全黑或全白;同一模型在 HU 正确归一化的框架里表现正常、在"看起来能用"的 8 位管线里大幅退化。
解决:
- 简单方法:保持 float32 加载,用窗宽窗位(如腹部软组织窗 center=50/width=350)映射到 0-1(见 §6.3)。
- 进阶方法:窗宽窗位做成可调超参,在验证折上小范围搜索;归一化统计只用训练集。
- SOTA 方法:按 nnU-Net 的 z-score 方案(前景裁剪后全局标准化),对小样本数据通常比固定窗更稳。
参考:HF 镜像数据卡(“Raw HU values are preserved (MET_SHORT element type)”)
⚠️ 坑点 7:自算 VOE/VD/MaxD 直接与官网排名数字比较(分类:评估误用)
问题:SLIVER07 的官方分数不是裸误差,而是把每项误差经"人类专家间差异"基准换算后的百分制分,且换算细节以官方评估服务器为准。本地算出的 VOE 5% 不对应任何可以直接对照榜单的分数。
症状:本地 VOE 看起来与文献相近,折算后自估分远高于实际在线得分;或把不同论文报告的 Dice/VOE 与百分制总分排成一张"榜单"。
解决:
- 简单方法:本地只做相对比较(模型 A vs 模型 B 的同一指标),绝对分数以官方在线评估为准。
- 进阶方法:按论文定义实现 5 项指标(VOE/VD/AvgD/RMSD/MaxD,代码见 §6.9)用于内部一致性监控,但在论文中明确区分"本地原始误差"与"官方百分制得分"两张表。
- SOTA 方法:引用历史成绩时注明评估口径(如综述转引的VOE 与官方百分制总分不可混排),并把"口径不同不可比"写进结果表脚注。
参考:Heimann et al. 2009, IEEE TMI(评分体系定义)
⚠️ 坑点 8:忽视许可证限制,把数据或衍生模型商用/再分发(分类:偏倚陷阱(合规))
问题:SLIVER07 许可条款明确禁止:向注册团队之外的人员再分发数据;将使用该数据训练的分割算法商业化;只报告训练集结果;发表时不引用 Heimann et al. 2009。这些条款在数据由 Zenodo 开放下载后仍全部有效,“能下载"不等于"随便用”。
症状:论文/产品里直接打包 SLIVER07 数据或其衍生 mask;用 SLIVER07 训练的模型被集成进商业软件;发表时漏引规范论文。
解决:
- 简单方法:阅读随数据分发的 license.txt(3.2 kB,几分钟读完),团队内传阅并留存。
- 进阶方法:在项目 README 与论文方法节固化合规声明:数据来源 DOI、许可证要点、引用条目;商用模型彻底隔离 SLIVER07 训练数据。
- SOTA 方法:把许可证检查纳入 MLOps 门禁(见 §6.10):数据版本锁定 Zenodo DOI、发布前合规审查清单。
参考:SLIVER07 Rules、Zenodo license.txt
§6.6 数据增强策略
| 类别 | 策略 | 说明 |
|---|---|---|
| ✅ 安全 | 随机旋转/平移/缩放 | 小角度小位移,模拟摆位差异 |
| ✅ 安全 | 弹性形变 | 对肝形变(肿瘤外凸、硬化结节)有针对性 |
| ✅ 安全 | 强度抖动/高斯噪声/模糊 | 提升对扫描工艺差异的鲁棒性 |
| ✅ 安全 | 随机裁剪 ROI 训练块 | 3D 显存友好,配合滑窗推理 |
| ❌ 危险 | 左右(x 轴)镜像翻转 | 肝脏是偏侧器官(主体位于右上腹),翻转会生成解剖学上不可能的样本 |
| ❌ 危险 | 测试图像参与增强统计 | 任何分位数/均值计算只能来自训练集 |
| ❌ 危险 | 过大角度旋转 | 使肝脏进入图像边界外,标签与体素错位 |
§6.7 模型推荐
| 模型 | 类型 | 适用场景 | 备注 |
|---|---|---|---|
| nnU-Net(v2) | 自配置 3D U-Net | 追求最强基线的默认选择 | 自动处理 spacing 重采样与强度归一化,最贴合本数据集几何异质性 |
| 3D U-Net / V-Net | 经典全卷积 | 教学与快速基线 | 结构简单,30 例体量可控 |
| SwinUNETR / SegResNet | Transformer/混合 | 域泛化与预训练研究 | 建议先在 LiTS 预训练再迁移 |
| 统计形状模型 + 自由形变 | 经典方法 | 复现挑战赛时代基线 | 当期最佳自动方法的主流路线(见 §8) |
| 图谱配准 + 标签融合 | 经典方法 | 零训练场景 | 小样本下依然有竞争力的参照系 |
§6.8 硬件需求
| 阶段 | 最低配置 | 推荐配置 |
|---|---|---|
| 数据转换/重采样 | CPU 4 核 / 16 GB 内存 | CPU 8 核 / 32 GB 内存(1 mm 等向后单例约数百 MB) |
| 2D 切片训练 | 8 GB 显存 GPU | 12 GB 显存 GPU |
| 3D 体训练 | 16 GB 显存 GPU(batch 1 + 梯度累积) | 24-40 GB 显存 GPU(ROI 裁剪 + batch 2) |
| 推理(滑窗) | 8 GB 显存 GPU | 12 GB 显存 GPU |
| 磁盘 | 10 GB(原始 + NIfTI 双份) | 50 GB(含实验输出) |
§6.9 官方指标 Python 实现
import numpy as np
from scipy import ndimage
def surface_distances(pred: np.ndarray, gt: np.ndarray, spacing: tuple):
"""计算两个二值 mask 的对称表面距离场(mm)。spacing 为 (z, y, x)。"""
if pred.sum() == 0 or gt.sum() == 0:
raise ValueError("空预测或空真值无法计算表面距离")
pred_border = pred ^ ndimage.binary_erosion(pred)
gt_border = gt ^ ndimage.binary_erosion(gt)
dt_to_gt = ndimage.distance_transform_edt(~gt_border, sampling=spacing)
dt_to_pred = ndimage.distance_transform_edt(~pred_border, sampling=spacing)
return dt_to_gt[pred_border], dt_to_pred[gt_border] # pred→gt, gt→pred
def sliver07_metrics(pred: np.ndarray, gt: np.ndarray, spacing: tuple) -> dict:
"""SLIVER07 五项指标的原始误差形式(未做官方百分制换算)。
pred/gt: (z, y, x) 二值数组;spacing: (z, y, x) mm。"""
pred, gt = pred.astype(bool), gt.astype(bool)
inter, union = (pred & gt).sum(), (pred | gt).sum()
voe = 100.0 * (1.0 - inter / union) # 体积重叠误差 %
vd = 100.0 * (pred.sum() - gt.sum()) / gt.sum() # 相对体积差 %
d_pred_gt, d_gt_pred = surface_distances(pred, gt, spacing)
all_d = np.concatenate([d_pred_gt, d_gt_pred])
avgd = all_d.mean() # 平均对称表面距离 mm
rmsd = np.sqrt((all_d ** 2).mean()) # 均方根对称表面距离 mm
maxd = all_d.max() # 最大对称表面距离 mm
return {"VOE%": voe, "VD%": vd, "AvgD_mm": avgd, "RMSD_mm": rmsd, "MaxD_mm": maxd}
注意:以上是原始误差;官方百分制分数以评估服务器换算为准(坑点 7)。
§6.10 MLOps 笔记
- 数据版本锁定:以 Zenodo DOI(10.5281/zenodo.2597908)为不可变锚点,训练记录中登记文件哈希与解压目录树,防止训练包与测试包混目录这类静默事故。
- 许可证门禁:把 license.txt 要点(禁商用、禁再分发、必引用)写进模型发布 checklist;商用管线默认排除本数据集(坑点 8)。
- 评估双轨制:CI 里跑训练集 5 折本地指标做回归测试;正式成绩只走官方在线提交,并归档提交时间、得分与系统描述 PDF。
- 口径可追溯:实验表区分"本地原始误差(§6.9 实现)"与"官方百分制得分"两列,避免跨口径比较入库。
- 可复现性:固定 SimpleITK/torch 版本;重采样与窗宽窗位参数写入配置文件并与模型一起版本化。
§7 质量评估与局限性
§7.1 已知偏倚与局限
| 偏倚/局限类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 样本量偏倚 | 仅 30 例(训练 20),统计功效有限,结论易受个别病例主导 | 高 | 交叉验证报波动区间;结论在 LiTS 等大队列复核 |
| 病例选择偏倚 | 有意纳入大肿瘤、转移瘤、囊肿、肝硬化、术后瘢痕等难例,病理谱不代表一般腹部 CT 人群 | 中 | 对外声明为"困难病例基准",不做人群推断 |
| 元数据缺失 | 无年龄、性别、地域、设备信息,公平性与代表性分析不可行 | 高 | 引入含元数据的外部队列做补充分析 |
| 单标注局限 | 每例单一参考 mask,无重复标注,标注误差不可估计 | 中 | 与专家间差异语境(评分换算基准)对照解读 |
| 模态单一 | 仅门静脉期增强 CT,结论不能外推到平扫/MRI/动脉期 | 中 | 跨模态验证用 AMOS 等多模态数据集 |
| 时代偏倚 | 2007 年前采集,扫描工艺与现代 CT 存在代差 | 中 | 训练增强模拟噪声/重建成像差异(§6.6) |
§7.2 标注质量
参考分割由组织方专家核验(官方数据卡描述经 radiologist 验证),语义为含肝内血管的完整肝实质,每例单一 curated 标注。其质量定位有间接定量证据:官方评分体系以"人类专家间分割差异"为换算锚点,即参考分割被置于与专家水平同级的坐标系中(Heimann et al. 2009)。无逐例标注者记录与重标注一致性系数是主要信息缺口。
使用者在训练前可自行执行的标注质检清单:
| 质检项 | 方法 | 通过标准 |
|---|---|---|
| 图像-mask 几何对齐 | 比对图像与 mask 的 DimSize/ElementSpacing/Origin | 三项完全一致 |
| 前景连通性 | 计算每例 mask 的连通分量数 | 单一分量(官方 curated mask 语义) |
| 前景占比 | mask.sum() / 体素总数 | 与肝体积 1,170-3,015 cm³ 换算值同量级 |
| 空例/满例检查 | 检查 mask 非空且非全 1 | 0% < 前景占比 < 100% |
| HU 语义抽查 | mask 内体素 HU 直方图 | 以软组织密度为主,无大面积空气值 |
§7.3 泛化性风险
| 目标场景 | 失效风险 | 证据/机理 |
|---|---|---|
| 平扫 CT | 高 | 数据集全部为增强门静脉期,肝实质强化后与周围器官对比度分布不同 |
| MRI | 高 | 模态强度语义完全不同,需模态内重校准 |
| 现代低剂量/迭代重建 CT | 中 | 2000 年代工艺差异,噪声纹理不同(§7.6) |
| 极端体型/术后解剖 | 中 | 数据集含术后瘢痕病例但数量极少 |
| 肝肿瘤密集病例 | 中-高 | 肿瘤会破坏肝实质均匀性;数据集无肿瘤标签,模型需自行学会"肿瘤也算肝" |
| 跨数据集(LiTS/3D-IRCADb) | 中 | 标注语义(血管挖空与否)与扫描分布双重差异(坑点 5) |
| 极端体型与腹围 | 中 | 数据集体型分布未披露,皮下脂肪厚度变化影响肝周边界对比 |
§7.4 伦理与合规
数据以匿名化 MetaImage 体积分发,不含姓名、ID 等直接标识符,也不含人口学与临床属性(rai:personalSensitiveInformation 声明)。原始采集的知情同意与伦理审批细节官方材料未披露,使用者应默认其为 2007 年学术挑战赛语境下的合规产出。当前合规义务以 license.txt 为准:仅供肝脏分割算法研发、禁止再分发与商用衍生模型、发表必须引用规范论文(Rules)。
两项使用伦理的实践提醒:其一,由于受检者不可能再被追踪,基于本数据集的任何"事后发现"(如某例标注疑似异常)都无法反馈回原始采集体系,只能记录在社区文档中;其二,用 SLIVER07 训练的模型若向临床方向推进,其伦理审查范围应覆盖训练数据谱系——许可证的"禁商用"条款本质上把临床转化路径限定在了"方法论继承、数据隔离"的模式上。
§7.5 公平性
由于年龄、性别、地域与种族信息完全缺位,无法对数据集内部做任何分层公平性审计。这是本数据集作为"公平性研究源"的根本限制:任何关于模型在不同人群亚组上表现的结论都必须来自外部数据。使用 SLIVER07 训练的临床向模型,应在具备完整人口学信息的队列(如 LiTS 及院内数据)上完成亚组校准后才能进入部署讨论。
在"公平性不可测"的前提下仍可做的三件事:把本条目 §7.1 的元数据缺失事实原样写进下游论文的 limitations,让信息缺口显性化而不是被层层转述抹平;在体格差异代理变量(如肝体积、体径)上做分层评估——体积是真值统计中唯一可用的个体差异维度(1,170-3,015 cm³);以及避免在宣传性表述中把"在 SLIVER07 上表现好"等同于"对所有患者表现好",后者的证据链在本数据集上根本不存在。
§7.6 数据漂移
时代漂移是 SLIVER07 最实际的漂移形态:2000 年代中期的 CT 扫描(层厚更厚、层间距最大 5.0 mm、滤波反投影重建)与现代低剂量迭代重建图像在噪声纹理与部分容积效应上差异明显。把 SLIVER07 训练的模型直接用于现代扫描时,应监控输入分布(spacing 分布、HU 直方图形态)并在漂移报警阈值处触发再校准。反向漂移(现代数据预训练 → SLIVER07 微调)同样存在,但影响通常小于正向。
建议纳入生产监控的漂移信号:
| 监控信号 | 计算方式 | 漂移报警参考 |
|---|---|---|
| 层间 spacing 分布 | 逐例读取 ElementSpacing[2],画分布 | 目标人群层间距中位数偏离 1.0 mm 过远 |
| HU 直方图形态 | 肝区 ROI 直方图与训练集模板的相关性 | 相关系数显著下降 |
| 前景体积分布 | 分割结果体积分布 vs 1,170-3,015 cm³ 基线 | 超出基线范围的比例上升 |
| 表面距离尾部 | AvgD/RMSD 的 P95 分位 | P95 持续上升提示边界质量退化 |
§7.7 DAIMS 数据质量评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 每例一对独立 mhd/raw 文件,无宽表概念冲突 |
| 2 | 唯一标识 | ✅ | liver-origNNN/liver-segNNN 全局唯一且一一对应 |
| 3 | 特殊字符 | ✅ | 文件名与头字段均为 ASCII 安全字符 |
| 4 | 重复行 | ✅ | 无重复病例;测试包与训练包同名文件属不同 split,需目录隔离(§3.2) |
| 5 | 缺失编码 | ✅ | 体数据定长连续存储,无缺失值 |
| 6 | 标签标识 | ✅ | 二值 0/1,语义在官方文档中明确定义 |
| 7 | 罕见类分组 | ⚠️ | 无疾病标签;病理谱系仅定性描述,未逐例标注归属 |
| 8 | 偏倚评估 | ⚠️ | 病例选择偏倚明确存在但元数据缺失,无法定量刻画(§7.1) |
| 9 | 数据字典 | ✅ | MetaImage 头文件即机器可读字典,官方网页补充说明 |
| 10 | 信息性缺失解释 | ✅ | 元数据整体缺位属"未提供",无半缺字段误导 |
| 11 | 设备记录 | ❌ | 扫描仪厂商/型号/序列参数完全未提供 |
| 12 | 共线性 | ✅ | 体数据形态,无表格共线性问题 |
| 13 | 编码映射 | ✅ | MET_SHORT = 原始 HU,映射关系明确且无损 |
| 14 | 时间戳处理 | ❌ | 无任何采集时间字段 |
| 15 | 划分建议 | ✅ | 官方 20/10 划分沿用于全部历史成绩 |
| 16 | 泄漏讨论 | ⚠️ | 官方未披露受检者独立性;测试集保密设计反泄漏,训练集内切分仍有残余风险(§5.3) |
| 17 | 标签分布 | ✅ | 前景体积统计完整(1,170-3,015 cm³) |
| 18 | 测量偏倚 | ⚠️ | 单参考标注无重复观测,标注者间/内信度不可估(§7.2) |
| 19 | 外部验证建议 | ✅ | 3D-IRCADb/LiTS 等外部验证通道成熟(§7.8) |
| 20 | 版本记录 | ✅ | Zenodo v1/v2/v3 同日发布且内容一致,DOI 可锁定 |
| 21 | 预处理脚本 | ❌ | 无官方预处理/转换脚本,社区方案质量参差 |
| 22 | 合规要求 | ✅ | license.txt 与 Rules 页条款明确、随数据分发 |
| 23 | 多模态对齐 | ✅ | 单模态数据集;图像-mask 同几何严格对齐 |
| 24 | 去标识化 | ⚠️ | 分发格式天然无 PHI,但官方未提供去标识化流程文档 |
DAIMS 评分:18.0 / 24
评分解读:18.0 分来自 15 项 ✅ 与 6 项 ⚠️(每项 0.5 分)。✅ 集中在"数据本身"维度——唯一标识、格式规范、标签语义、划分协议、版本与合规都很扎实,这是 2007 年即确立的工程纪律的体现。⚠️ 与 ❌ 集中在"语境信息"维度——设备、时间戳、人口学元数据系统性缺位,单标注与无官方脚本则是历史局限。换言之:像素级质量顶尖、元数据生态贫瘠。
对你意味着什么:如果你的研究只消费体数据与 mask(分割、体积测量、增强策略研究),SLIVER07 的数据质量足以直接信赖,预处理按 §6.3-§6.4 执行即可;如果你需要元数据(按人群分层、按设备归因、时间趋势分析),本数据集不提供答案,应把元数据需求转嫁给配套队列,并把 SLIVER07 的角色严格限定为"分割基准"。落地清单:训练前跑 §6.4 的配对与连通性质检;实验记录锁定 Zenodo DOI;发表时落实许可证要求的引用义务。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| 非 MICCAI 50 例 CT(含肿瘤 30 例) | 同一方法跨域测试(Maklad et al. 2013) | 肝分割 | VOE 3.21±0.75%(vs MICCAI 测试 4.33±0.73) | 略优 | 血管引导方法迁移到含肿瘤外域数据仍稳定(PMID 24320472) |
| 3D-IRCADb | 多中心学术发布 | 肝/肝肿瘤分割 | 各深度方法 DSC 0.83-0.98 区间 | 需重新校准 | 标注语义与 SLIVER07 不同(含肿瘤独立标签),不能直接套分(Frontiers Oncol 2024 综述) |
| LiTS | MICCAI 2017 挑战赛 | 肝+肿瘤分割 | 规模扩大后深度模型 DSC 普遍 >0.95(肝) | 训练分布外推断 | SLIVER07 适合做外域测试集而非主训练集 |
| 私有大样本数据库(268 例、127 患者) | 多病种院内队列 | 肝定位+分割 | 回归森林方法在 SLIVER07 排名第五后在泛化库上验证鲁棒性 | 分布差异大 | 小样本基准成绩与泛化能力需分开报告(ResearchGate: Generic Robust Fully-Automatic Workflow) |
§8 基准性能与生态
§8.1 排行榜与发表成绩
原官网 sliver07.org 的当期排行榜未完整存档,下表汇编同行评审文献中可核实的 SLIVER07 测试集成绩。各行评估口径不同(半自动/全自动、评分体系与误差指标混用),严禁直接横向比较;百分制总分为官方换算口径,VOE/ASD 为论文自报原始误差。
| 排名 | 方法(类型) | 性能 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | Maklad et al.(半自动) | 总分 85.7;VOE 4.33±0.73%、VD 0.28±0.87%、AvgD 0.63±0.16 mm、RMSD 1.19±0.28 mm、MaxD 14.01±2.88 mm | 2013 | 血管引导分割(3D 开运算增强血管 + 变分贝叶斯高斯混合模型) | Maklad AS, Matsuhiro M, Suzuki H, et al. Blood vessel-based liver segmentation using the portal phase of an abdominal CT dataset. 2013. PMID 24320472 | 未见公开 |
| 2 | Oliveira et al.(半自动) | 总分 82.05 | 2011 | Level sets | Oliveira et al., 2011(转引自 PMC10974813 表 1) | 未见公开 |
| 3 | Peng et al.(半自动) | 总分 80±4 | — | 水平集变分方法 | Peng et al.(转引自 Comput Math Methods Med 2014, DOI 10.1155/2014/182909) | 未见公开 |
| 4 | Platero et al.(半自动) | 总分 76.3;DSC 0.973 | 2014 | Graph cuts | Platero et al., 2014(转引自 PMC10974813 表 1) | 未见公开 |
| 5 | Linguraru et al.(全自动) | VOE 2.2% | 2012 | 仿射不变形状参数化 + 测地活动轮廓 + graph cuts | Linguraru MG, et al., 2012(转引自 PMC10974813 表 1) | 未见公开 |
| 6 | Lombardi G.(全自动) | VOE 5.8±3.2%、RVD −0.1±4.1%、ASD 1.0±0.5 mm、RMSD 2.0±1.2 mm、MaxD 21.2±9.3 mm | 2007 | Graph cuts + 边界行进血管补偿 | Lombardi G. Automatic liver segmentation from abdominal CT scans. In: 14th Int Conf on Image Analysis and Processing (ICIAP 2007) | 未见公开 |
| 7 | Dou et al.(全自动,深度学习) | VOE 5.42%、ASD 0.79 mm | 2016 | 3D 深度监督网络(3D DSN)+ CRF | Dou Q, Chen H, Jin Y, Yu L, Qin J, Heng PA. 3D deeply supervised network for automatic liver segmentation from CT volumes. MICCAI 2016, LNCS 9901:149-157. DOI 10.1007/978-3-319-46723-8_18 | 未见官方公开 |
| 8 | 文献报告最佳自动成绩(受控再训练条件) | 总分 77.3±9.4 | 2010s | 回归森林肝定位 + 均值肝形状 | 转引自 A Generic, Robust and Fully-Automatic Workflow for 3D CT Liver Segmentation(表 2) | 未见公开 |
| — | 挑战赛官方结论(16 队) | 交互式方法平均分更高、一致性更好;最佳自动方法(统计形状模型路线)在多数测试图像上具竞争力 | 2009 | 多方法对比研究 | Heimann T, van Ginneken B, Styner MA, et al. Comparison and Evaluation of Methods for Liver Segmentation From CT Datasets. IEEE Trans Med Imaging 28(8):1251-1265, 2009. DOI 10.1109/TMI.2009.2013851 | — |
§8.2 SOTA 总结与选型建议
SLIVER07 的成绩版图呈现清晰的三段结构:交互式方法(人类少量介入)以 76-86 的总分占据顶端,说明边界级精度在肝分割中仍有"最后一公里"依赖人工;经典全自动方法(图谱、形状模型、graph cuts)稳定在 60-80 区间;深度学习方法自 2016 年起以更少的工程先验达到与经典法相当的原始误差(VOE 5.4% 量级),并以推理速度优势成为现代默认选项。选型建议:以 nnU-Net 类自配置框架为基线(§6.7),把经典方法当作"低数据依赖"的参照系而非过时技术;若目标是刷官方百分制榜,务必先读懂坑点 7 的口径问题。
2007 年挑战赛 16 支参赛队伍的算法类型构成(官方论文摘要归纳,Heimann et al. 2009):
| 算法类型 | 代表性思路 | 在 2007 年参赛方法中的地位 |
|---|---|---|
| 统计形状模型(+自由形变) | 形状先验约束形变场 | 最佳自动方法的主要路线 |
| 图谱配准 + 标签融合 | 用已标注案例对齐新病例 | 全自动常见路线 |
| Level-set(水平集) | 曲线演化拟合边界 | 半自动方法的主力 |
| Graph cuts | 图优化能量最小化 | 全自动与半自动均有采用 |
| 规则系统 | 阈值+区域生长+解剖规则 | 早期/基线方法 |
§8.3 评测协议
- 训练只允许使用 20 例训练集(可另加自有私有数据),测试 10 例统一在线提交。
- 每次提交上传 10 例测试的分割 mask,系统返回 VOE/VD/AvgD/RMSD/MaxD 五项百分制得分。
- 分数换算以人类专家间差异为锚点(接近专家间差异即接近满分 100)。
- 每次提交必须附系统描述 PDF。
- 禁止只报告训练集结果;发表必须引用 Heimann et al. 2009。
- 数据与衍生分割算法不得商用,不得向注册团队之外再分发。
提交产物形态建议:为每例测试体生成与原图同几何(DimSize/Spacing/Origin 一致)的二值分割体,逐例独立打包后按提交页要求上传;提交前用 §6.9 的指标代码在训练集上做一次管线自测,确认指标实现与官方定义同向(体积项百分比、表面距离毫米),避免"实现错位"导致的无效提交消耗。
§8.4 相关数据集
| 数据集 | 规模 | 任务差异 | 适用关系 |
|---|---|---|---|
| 3D-IRCADb | 20 例增强 CT | 肝+肿瘤+多器官标注 | 跨数据集验证首选(体量对等) |
| LiTS | 训练 131 例 CT | 肝+肿瘤 | 大规模预训练源 + 外域测试 |
| MSD Task08(肝脏) | 201 例 CT | 肝+肿瘤 | 跨机构泛化研究 |
| AMOS | 500 CT + 100 MRI | 15 器官 | 多模态泛化 |
| AbdomenCT-1K | 1,000+ 例 CT | 多器官 | 大规模域偏移压力测试 |
| MSD Task08(肝脏) | 201 例 CT | 肝+肿瘤 | 跨机构泛化研究 |
§8.5 关键论文 Top 5
- Heimann T, van Ginneken B, Styner MA, et al. Comparison and Evaluation of Methods for Liver Segmentation From CT Datasets. IEEE Trans Med Imaging 28(8):1251-1265, 2009. DOI 10.1109/TMI.2009.2013851 —— 挑战赛官方对比研究,16 队成绩、5 指标评分体系与专家间差异锚点的权威定义。
- Maklad AS, Matsuhiro M, Suzuki H, et al. Blood vessel-based liver segmentation using the portal phase of an abdominal CT dataset. 2013. PMID 24320472 —— 截至 2013-07 官网榜首(总分 85.7),血管信息引导分割的代表作。
- Dou Q, Chen H, Jin Y, et al. 3D deeply supervised network for automatic liver segmentation from CT volumes. MICCAI 2016, LNCS 9901:149-157. DOI 10.1007/978-3-319-46723-8_18 —— 深度学习在 SLIVER07 的标志性成绩(VOE 5.42%),3D DSN+CRF 路线。
- Ruskó L, Bekes G, Fidrich M. Automatic segmentation of the liver from multi- and single-phase contrast-enhanced CT images. Med Image Anal 13(6):871-882, 2009 —— 全自动方法的重要参照(在 2014 综述对比中报告总分 61±21,转引见 Wiley 2014)。
- Merz/Campos 类历史综述:Algorithms for Liver Segmentation in Computed Tomography Scans: A Historical Perspective. 2024. PMC10974813 —— 系统梳理 1993-2018 年肝分割文献与 SLIVER07 成绩的最全综述。
§8.6 社区活跃度
- Zenodo 最新版(v3)累计 7,605 次浏览 / 6,659 次下载(截至 2026-09 检索,Zenodo)。
- grand-challenge.org 在线评估自 2019-02 起持续开放提交。
- 官方论文 Semantic Scholar 引用 1,049 次、OpenAlex 收录 1,138 次(截至 2026-09 检索),近十年年均引用保持三位数(Semantic Scholar)。
- 第三方重排版持续出现(如 Hugging Face MedOtter/SLIVER07 镜像,月下载 236 次量级),显示教学与原型社区的长尾需求。
从时间曲线上看,SLIVER07 的社区热度呈现典型的"基准生命周期"形态:2007-2013 年为挑战赛活跃期(在线成绩持续更新,Maklad 2013 仍在刷新榜首);2014-2018 年转入引用沉淀期;2019 年迁移后依靠在线评估的重新开放与深度学习教程生态出现第二波使用高峰。对使用者的含义:它不再是"前沿战场",而是"校准锚点"——新的肝分割方法在此成绩达标是必要条件而非充分条件,前沿验证应主要在 LiTS/AMOS 等大规模基准上完成。
§8.7 生态快照
| 资源 | 类型 | 链接 | 状态(截至 2026-09) | 推荐理由 |
|---|---|---|---|---|
| grand-challenge.org 官方页 | 官方门户 | https://sliver07.grand-challenge.org/ | 活跃 | 唯一合法测试评估通道 |
| Zenodo v3 记录 | 官方数据镜像 | https://zenodo.org/records/2597908 | 稳定 | 免注册下载 + 稳定 DOI |
| Heimann 2009 论文 | 权威文献 | https://doi.org/10.1109/TMI.2009.2013851 | 持续被引 | 协议与结果的一手描述 |
| openmedlab 统计页 | 社区文档 | https://www.openmedlab.com/index.php/SLIVER07 | 可访问 | 中文友好的统计与格式速查 |
| Hugging Face 镜像 | 社区重排版 | https://huggingface.co/datasets/MedOtter/SLIVER07 | 活跃 | 框架即插即用原型(正式发表引官方渠道) |
| PMC10974813 综述 | 文献综述 | https://pmc.ncbi.nlm.nih.gov/articles/PMC10974813/ | 开放获取 | 肝分割方法与成绩的全景对照 |
§9 相关资源与引用
§9.1 官方与社区资源清单
官方资源:
| 资源 | 内容 | 链接 |
|---|---|---|
| 挑战赛主页 | Overview/Data/Rules/Evaluation 全部子页 | sliver07.grand-challenge.org |
| Zenodo v3 | 数据下载主渠道(三个 zip + license) | zenodo.org/records/2597908 |
| Zenodo v1 / v2 | 同内容历史 DOI(引用延续用) | 2596435 / 2597575 |
| 规范论文 | 协议与结果的一手同行评审描述 | DOI 10.1109/TMI.2009.2013851 |
社区与学习资源:
| 资源 | 内容 | 链接 |
|---|---|---|
| openmedlab 统计页 | 中文友好的统计与格式速查 | openmedlab SLIVER07 |
| 历史综述(2024) | 1993-2018 肝分割方法与成绩全景 | PMC10974813 |
| 深度方法成绩汇总 | 2015-2022 深度肝分割成绩对照表 | Frontiers in Oncology 2024 |
| HF 第三方镜像 | 框架即插即用重排版(正式发表引官方) | MedOtter/SLIVER07 |
| 社区问答(读取断层) | SimpleITK 轴序与可视化 | Stack Overflow 74016248 |
| 社区问答(批量转 NIfTI) | mhd→nii 批量转换陷阱 | Stack Overflow 68391930 |
§9.2 BibTeX 完整引用
@article{heimann2009comparison,
author = {Heimann, Tobias and van Ginneken, Bram and Styner, Martin A. and Arzhaeva, Yulia and Aurich, Volker and Bauer, Christian and Beck, Andreas and Becker, Christoph and Beichel, Reinhard and Bekes, Gy{\"o}rgy and others},
title = {Comparison and Evaluation of Methods for Liver Segmentation From {CT} Datasets},
journal = {IEEE Transactions on Medical Imaging},
volume = {28},
number = {8},
pages = {1251--1265},
year = {2009},
doi = {10.1109/TMI.2009.2013851}
}
@misc{sliver07dataset,
author = {{SLIVER07 Challenge Organizing Committee}},
title = {{SLIVER07}: Segmentation of the Liver Competition 2007 (v3)},
year = {2019},
howpublished = {Zenodo},
doi = {10.5281/zenodo.2597908},
url = {https://zenodo.org/records/2597908}
}
@misc{maklad2013blood,
author = {Maklad, Ahmed S. and Matsuhiro, Mikio and Suzuki, Hidenobu and Kawata, Yoshiki and Niki, Noboru and Satake, Mitsuo and Moriyama, Noriyuki and Utsunomiya, Toru and Shimada, Mitsuo},
title = {Blood vessel-based liver segmentation using the portal phase of an abdominal {CT} dataset},
year = {2013},
howpublished = {PubMed: 24320472},
url = {https://pubmed.ncbi.nlm.nih.gov/24320472/}
}
@inproceedings{dou2016dsn,
author = {Dou, Qi and Chen, Hao and Jin, Yueming and Yu, Lequan and Qin, Jing and Heng, Pheng-Ann},
title = {3{D} Deeply Supervised Network for Automatic Liver Segmentation from {CT} Volumes},
booktitle = {Medical Image Computing and Computer-Assisted Intervention -- MICCAI 2016},
series = {Lecture Notes in Computer Science},
volume = {9901},
pages = {149--157},
year = {2016},
doi = {10.1007/978-3-319-46723-8_18}
}
§9.3 引用指南
任何使用 SLIVER07 数据或报告其测试集成绩的工作,按许可证要求必须引用 Heimann et al. 2009(heimann2009comparison);分发或重新托管数据本身时,追加引用对应的 Zenodo DOI(sliver07dataset)。报告成绩时请同时说明评估口径(本地原始误差或官方在线百分制得分),避免跨口径比较(坑点 7)。
§9.4 数据管理建议
| 管理事项 | 建议做法 |
|---|---|
| 存储锚点 | 以 Zenodo DOI(10.5281/zenodo.2597908)为版本锚点,训练配置记录 DOI 与下载日期 |
| 目录纪律 | training 与 test 永远解压到不同目录(同名文件风险,见 §3.2) |
| 中间产物 | NIfTI 转换产物与重采样产物单独建目录并保留生成脚本,不回写原始目录 |
| 许可归档 | license.txt 随数据目录保存,团队 onboarding 时传阅(坑点 8) |
| 提交归档 | 每次在线评估的提交时间、得分截图与系统描述 PDF 归档到实验管理工具 |
| 再分发禁止 | 内部共享使用中央存储 + 访问控制,禁止把数据包外发到团队之外 |
§10 AI 使用声明卡
§10.1 AI 模型列表
| 模型 | 版本 | 用途 |
|---|---|---|
| fast-model(CodeBuddy Code 内置) | 生产快线模型 | 条目初稿撰写、结构组织与代码示例生成 |
§10.2 AI 参与范围
AI 负责检索资料整理、条目起草、代码示例编写与格式自检;全部事实性数字均锚定检索来源(见 §10.3);医学映射表、评分判断与最终发布由人工交叉审核把关。
具体分工边界:AI 产出的内容包括全部章节初稿、§6 的 Python 代码(读取、转换、重采样、DataLoader、指标实现)、8 个坑点的结构化整理;AI 不承担的责任包括 ICD-11/SNOMED 编码的临床正确性终审、§7.7 DAIMS 各项状态判定的最终裁量、以及排行榜成绩口径的取舍决定——这些均属人工审核范围。代码示例在编写时保证了逻辑自洽与 API 用法正确,但未在真实 SLIVER07 数据上端到端执行,使用者首次运行时请配合 §4.5 的完整性校验脚本确认数据路径与文件名约定。
§10.3 输入来源列表
- Heimann T, van Ginneken B, Styner MA, et al. Comparison and Evaluation of Methods for Liver Segmentation From CT Datasets. IEEE Trans Med Imaging 28(8):1251-1265, 2009. DOI 10.1109/TMI.2009.2013851
- SLIVER07 grand-challenge.org 官方页(Overview/Data/Rules/Evaluation)。 https://sliver07.grand-challenge.org/
- Zenodo 记录 2597908(SLIVER07 v3 数据与许可文件)。 https://zenodo.org/records/2597908
- Semantic Scholar 论文页(Heimann 2009,1,049 次引用)。 https://www.semanticscholar.org/paper/75352a06f8f39701d59c3a3a78e5cce6dd469ea9
- dblp 文献记录(Heimann 2009 题录)。 https://dblp.org/rec/journals/tmi/HeimannGS09.html
- Maklad AS, et al. Blood vessel-based liver segmentation using the portal phase of an abdominal CT dataset. 2013. PMID 24320472. https://pubmed.ncbi.nlm.nih.gov/24320472/
- A Generic, Robust and Fully-Automatic Workflow for 3D CT Liver Segmentation(表 2 成绩)。 https://www.researchgate.net/publication/268977739_A_Generic_Robust_and_Fully-Automatic_Workflow_for_3D_CT_Liver_Segmentation
- A Multiatlas Segmentation Using Graph Cuts with Applications to Liver Segmentation in CT Scans. Comput Math Methods Med 2014. DOI 10.1155/2014/182909
- Algorithms for Liver Segmentation in Computed Tomography Scans: A Historical Perspective. 2024. PMC10974813. https://pmc.ncbi.nlm.nih.gov/articles/PMC10974813/
- Dou Q, et al. 3D deeply supervised network for automatic liver segmentation from CT volumes. MICCAI 2016, LNCS 9901:149-157. DOI 10.1007/978-3-319-46723-8_18
- Artificial intelligence techniques(肝分割深度方法成绩汇总表)。 Frontiers in Oncology, 2024. DOI 10.3389/fonc.2024.1415859
- openmedlab SLIVER07 数据统计页。 https://www.openmedlab.com/index.php/SLIVER07
- Hugging Face MedOtter/SLIVER07 数据卡。 https://huggingface.co/datasets/MedOtter/SLIVER07
- Stack Overflow 问答:How to extract an axial image from the SLIVER07 CT scan Dataset and its .mhd file. https://stackoverflow.com/questions/74016248/
- Stack Overflow 问答:Conversion of .mhd format to .nii format for multiple files. https://stackoverflow.com/questions/68391930/
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景(ICD-11/SNOMED 映射、临床任务) | 千方病案医学编辑部 | 对照官方数据说明与公开编码库逐条核对 | ✅ 已通过/已验证 |
| §4 数据结构(字段字典、统计数字) | 千方病案医学编辑部 | 对照 Zenodo/openmedlab/HF 三个独立来源交叉验证 | ✅ 已通过/已验证 |
| §6 AI 就绪指南(代码、8 个坑点) | 千方病案医学编辑部 | 代码逻辑走查 + 坑点来源逐条溯源 | ✅ 已通过/已验证 |
| §8 基准成绩(排行榜、完整引用) | 千方病案医学编辑部 | 逐行核对原始文献题录与成绩口径 | ✅ 已通过/已验证 |
§10.5 AI 生成章节标注
本条目全部章节由 AI 在人工指定框架与检索来源约束下起草;§0 免责声明为平台固定文本;§2.1/§2.1b 编码映射与 §7.7 DAIMS 评定为人工主导内容。
按模块的 AI 依赖度分级:高(AI 起草 + 人工事实抽查)——§1、§3、§4、§5、§6、§8、§9;中(AI 起草 + 人工逐条核对)——§2 医学映射、§7 偏倚与 DAIMS 评定、§10 声明卡本身;固定(平台文本)——§0 三段免责声明。任何模块在后续版本更新中若由 AI 重新生成,须按 §10.4 重新走一遍人工校验并更新本节。
§10.6 最后人工审核
最后人工审核日期:2026-09-05(与 §0 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- btcv — 共享标签:医学影像 / 医学问答与基准 / CT / 医学图像分割 / 挑战赛数据集
- kits — 共享标签:医学影像 / 医学问答与基准 / CT / 医学图像分割 / 挑战赛数据集
- lits — 共享标签:医学影像 / 医学问答与基准 / CT / 医学图像分割 / 挑战赛数据集
- flare — 共享标签:医学影像 / 医学问答与基准 / CT / 医学图像分割 / 挑战赛数据集
- verse-spine — 共享标签:医学影像 / 医学问答与基准 / CT / 医学图像分割 / 挑战赛数据集
- segthor — 共享标签:医学影像 / CT / 医学图像分割 / 挑战赛数据集
- 3dircadb — 共享标签:医学影像 / 医学问答与基准 / CT / 医学图像分割
- brats — 共享标签:医学影像 / 医学问答与基准 / 医学图像分割 / 挑战赛数据集
- tiger — 共享标签:医学影像 / 医学问答与基准 / 医学图像分割 / 挑战赛数据集
- lndb — 共享标签:医学影像 / CT / 医学图像分割 / 挑战赛数据集
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

