信息速览

3D-IRCADb — 腹部 CT 肝分割金标准 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | 3D-IRCADb-01 |
| 英文全称 | 3D Image Reconstruction for Comparison of Algorithm Database |
| 别名/简称 | 3D-IRCADb、3DIRCADb、3Dircadb1、3D-IRCADb-01(扩展版:3D-IRCADb-02) |
| 疾病分类 | 肝脏占位性病变(肝细胞癌 ICD-11:2C12;肝内胆管细胞癌 2C13;官方未公布逐例病理类型,详见 §2.1) |
| SNOMED CT | 10200004 Liver structure / 40468003 Hepatocellular carcinoma / 241664003 Computed tomography of abdomen(详见 §2.1) |
| 数据模态 | 增强 CT(DICOM)、三维表面网格(VTK) |
| AI 任务类型 | 肝脏分割、肝肿瘤分割、多器官分割、血管分割(门静脉/静脉系统/动脉)、手术规划三维重建 |
| 样本总数 | 20 例患者 CT(3D-IRCADb-01)+ 2 例多期 CT(3D-IRCADb-02);约 3,209 张 2D 切片 |
| 数据大小 | 约 806 MB(整体压缩包);单患者 22-65 MB |
| 数据格式 | DICOM(原始影像 + 二值 mask + 多标签影像)、VTK(表面网格) |
| 许可证 | CC BY-NC-ND 4.0 |
| 访问级别 | 开放(官网直接下载,无需注册或申请) |
| DUO 标签 | NRES, NCU |
| 语言 | 英文(页面说明与标注标签名) |
| 首发日期 | 2010(IRCAD 技术报告) |
| 发布机构 | IRCAD(法国消化癌症研究院)/ Soler 等 9 人研究团队 |
| 官方主页 | https://www.ircad.fr/research/data-sets/liver-segmentation-3d-ircadb-01/ |
| 下载地址 | https://cloud.ircad.fr/index.php/s/JN3z7EynBiwYyjy/download |
| AI 就绪度评分 | ⭐⭐⭐(3/5)— 标注规范齐全、官方逐例元数据表详尽;扣分项:需 DICOM→NIfTI 格式转换、无官方划分、无预处理脚本、部分器官仅部分病例标注 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11 与 SNOMED CT 映射、肝肿瘤临床任务定义、金标准描述)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:§4 DAIMS 数据字典(四子文件夹结构、mask 与 VTK 双标注体系)、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
审核方式:交叉审核
利益冲突声明:千方病案医数集与 IRCAD、法国外科学院无任何商业利益关联。本页面不销售 3D-IRCADb 数据集本身,仅提供 AI 就绪指南与学术信息服务。编辑者未接受 IRCAD 或任何数据发布方的任何形式资助。
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。3D-IRCADb 以 CC BY-NC-ND 4.0 许可开放下载,使用时必须署名(BY)、不得用于商业目的(NC)、不得分发修改后的衍生数据(ND)。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 30 秒速览
这是什么? 3D-IRCADb 是法国 IRCAD 研究院(斯特拉斯堡,世界知名微创手术训练与研究机构)于 2010 年公开发布的腹部 CT 分割数据库。3D-IRCADb-01 版本包含 10 名女性和 10 名男性共 20 名患者的匿名增强 CT,其中 75% 的病例患有肝肿瘤;3D-IRCADb-02 追加 2 例局灶性结节增生(FNH)患者的吸气动脉期与呼气门脉期多期 CT。每位患者一个文件夹,内有原始影像、专家手动分割的多器官 mask 和三维表面网格。
为什么重要? 在 LiTS 普及之前,它与 SLIVER07 是肝脏分割领域仅有的两大公开金标准,几乎每一篇 2012-2022 年的肝脏分割论文都在其中一个或两个上报告结果。它的独特之处在于"为算法压力测试而生":官方逐例公布分割难点(与胃、胰腺、十二指肠、心脏、脾脏、食管接触,非典型形状或密度,金属伪影等),并用 DICOM mask + VTK 网格双形式提供约 40 种器官与病灶标签——既有原始体数据,也有现成三维模型。
我能用它做什么? 训练与评测肝脏/肝肿瘤/多器官/血管分割模型;做 2D 与 3D 网络的对照消融(20 例规模恰好适合小样本方法学实验);将 VTK 网格直接用于手术规划可视化和教学演示。注意:20 例不足以训练生产级临床模型,且许可为非商业(CC BY-NC-ND)。
§1.1 技术摘要
3D-IRCADb 由 Soler、Hostettler、Agnus 等 9 位研究者于 2010 年以技术报告形式发布,全称"3D Image Reconstruction for Comparison of Algorithm Database",直译即"用于算法比较的三维图像重建数据库"——名字本身就说明它的定位是分割算法的公共标尺。数据组织为 20 个患者文件夹(3Dircadb1.01-1.20),每个文件夹包含 4 个子目录:PATIENT_DICOM(匿名原始 DICOM 序列)、LABELLED_DICOM(多标签标记影像)、MASKS_DICOM(每个分割区域一个子文件夹的二值 DICOM mask)与 MESHES_VTK(各感兴趣区域的 VTK 表面网格)。影像统一为 512×512 矩阵,切片数 74-260,体素间距 0.56-4.0 mm;全库约 3,209 张 2D 切片。标注侧,肝脏、骨、门静脉(及皮肤)在全部 20 例中均有标注,肝肿瘤出现于 14 例,动脉与静脉系统各约 13 例,其余器官为部分标注。官方页面同时提供逐例元数据表:肝脏尺寸(宽/深/高)、按 Couinaud 分段的肿瘤位置、以及软件可能遇到的分割难点清单。数据以 CC BY-NC-ND 4.0 许可开放下载,整体压缩包约 806 MB,可整库或按患者单独获取。
§1.2 战略价值
维度一:方法学试金石的不可替代性。 3D-IRCADb 的 20 例并非随机抽样,而是刻意收录了分割算法最容易失败的解剖场景——肿瘤压迫、肝脏与胃/脾/心脏/胰腺贴邻、非典型密度、金属伪影。官方逐例难点表意味着研究者可以按"失败模式"分层评测,而不是只看一个平均 Dice。PADLLS(Scientific Reports 2022)正是利用这些难点场景(腹水、脾胃过分割)设计级联纠正策略,并在 3D-IRCADb 上取得 0.965±0.016 的平均 Dice。对于 2D/3D 混合架构、半监督、少样本微调这类小样本方法学研究,20 例的体量反而是优势:实验快、可控、易穷举。
维度二:标注形态的完整性。 同一个金标准以三种形态交付——逐切片二值 DICOM mask(训练用)、多标签 LABELLED_DICOM(逐例一物)、VTK 表面网格(可视化与手术规划用)。这使它成为连接"体数据深度学习"与"三维网格几何处理"两个技术栈的天然桥梁:卷积网络吃 mask,网格变形算法吃 VTK,二者在同一坐标系下天然对齐。截至 2026-09,在腹部分割领域同时提供三种形态的公开数据集仍然稀少,多数后继者(LiTS、AMOS22 等)只发布 mask。
维度三:教学与社区生态的放大器。 正因为规模小、结构规整、无需注册,3D-IRCADb 成为全球医学影像课程与入门教程事实上的"教学默认数据集":openmedlab 对其做了逐标签体积统计(事实上的社区数据字典),GitHub 上存在覆盖"下载→解压→转 NIfTI→2.5D 级联→Flask 部署"全流程的完整复现项目。对工程团队而言,这意味着坑点与解法都有现成社区答案可交叉验证——试错成本远低于使用其他小众数据集。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 模态 | 标注内容 | 差异化定位 |
|---|---|---|---|---|
| 3D-IRCADb-01 | 20 例(女 10/男 10),约 3,209 张切片 | 增强 CT | 肝、肿瘤、门静脉、骨等约 40 种标签,DICOM mask + VTK 网格 | 小样本金标准;官方逐例难点表;标注形态最全 |
| SLIVER07 | 20 训练 + 10 测试 | CT | 仅肝脏 | MICCAI 2007 竞赛遗产,测试标注不公开 |
| LiTS | 131 训练 + 70 测试 | CT | 肝 + 肝肿瘤 | 大规模竞赛驱动,2017 后成为主流训练库 |
| CHAOS | 40 例(训练 20/测试 20) | CT + MRI | 肝、脾、双肾等四器官 | 跨模态(CT/MRI)泛化评测 |
| AMOS22 | 500 例 | CT + MRI | 15 个器官 | 新一代多器官大规模基准 |
数据来源:中文肝脏分割综述对比表(Google Scholar 缓存页)与各数据集官方页。3D-IRCADb 的不可替代点在于:标注种类最丰富(含血管与网格)、单例元数据最透明、以及"难点案例刻意富集"的评测设计。
§1.4 版本时间轴
| 版本 | 发布时间 | 内容 | 备注 |
|---|---|---|---|
| 3D-IRCADb-01 | 2010 | 20 例患者增强 CT,10 女 10 男,75% 有肝肿瘤 | 主版本,社区所说"3D-IRCADb"通常指此版本;文件夹名 3Dircadb1.01-1.20 |
| 3D-IRCADb-02 | 未单独公布 | 2 例匿名患者多期 CT(吸气动脉期 + 呼气门脉期),VII 段肝局灶性结节增生(FNH) | 扩展版本,位于同一下载包内(文件夹 3Dircadb2.1-2.2) |
3D-IRCADb 自发布以来为冻结数据集,官方页面未发布后续修订版本记录。
版本选择建议:所有"3D-IRCADb 基准"默认指 -01 的 20 例——论文写作时明确写出"3D-IRCADb-01 (20 cases)“以避免与 -02 混淆;-02 仅 2 例且为多期 FNH,适合做期相对齐/多期融合的案例研究或定性展示,不适合计入任何统计口径。若审稿人质疑"为何不用更大库”,标准回应是:以 3D-IRCADb 作外部困难案例回归测试,主训练在 LiTS/自采数据上完成。
§1.5 典型应用场景
- 肝分割算法基准评测:与 SLIVER07 并列的经典标尺,用于报告 Dice/VOE/RVD/ASSD 等指标(见 §8 排行榜)。
- 肝肿瘤两阶段分割:先分割肝脏 ROI,再在 ROI 内分割肿瘤——S2DA-Net、HFRU-Net 等模型在此设定下于 3D-IRCADb 上报告肿瘤 DSC 0.776-0.820。
- 门静脉/静脉系统血管分割:全库 100% 病例带 portal vein 标注,是少数可直接用于血管分割监督学习的公开腹部 CT 库(如 R-Vessel-X 项目的血管分割研究)。
- 手术规划三维重建与教学:VTK 网格可直接导入 3D Slicer 等工具做术前可视化、Couinaud 分段演示与解剖教学。
- 小样本方法学研究:少样本微调(fewshot-finetuning)、通用器官分割模型的独立外测(Universal Organ Segmentation,arXiv 2405.18356 将其列为 13 类目标的外部评测集)。
§2 医学背景
§2.1 ICD-11 编码映射
3D-IRCADb 的标注对象以解剖结构与肝占位性病变为主。官方数据集未公布逐例病理诊断,仅提供肿瘤位置(按 Couinaud 肝段)与病灶 mask,因此下表为"标注内容 → ICD-11 编码"的编码参考映射,供论文写作与数据库归档时使用:
| ICD-11 编码 | 中文名称 | 英文名称 | 对应标注内容 |
|---|---|---|---|
| 2C12 | 肝细胞癌 | Hepatocellular carcinomas | liver_tumor mask(恶性上皮性肝肿瘤主要类型) |
| 2C13 | 肝内胆管细胞癌 | Intrahepatic cholangiocarcinomas | liver_tumor mask(肝内胆管起源恶性肿瘤) |
| 2C11 | 肝或肝内胆管恶性肿瘤,未特指 | Malignant neoplasm of liver or intrahepatic bile ducts, unspecified | 逐例病理未公布时的归档编码 |
| 2C15 | 肝母细胞瘤 | Hepatoblastomas | 编码参考(罕见,数据集未见相关标注声明) |
| LB20 域 | 肝脏非肿瘤性结构异常 | Noninfectious disorders of liver | liver_cyst、stones 等 mask 的编码方向(囊肿/结石为良性病变) |
注:3D-IRCADb 官方仅按 Couinaud 分段标注肿瘤位置,未提供组织病理学亚型;如需疾病级标注,使用者须自行结合文献假设并明确声明。
§2.1b SNOMED CT 映射
| SNOMED CT 码 | 术语 | 中文 | 语义类型 |
|---|---|---|---|
| 10200004 | Liver structure | 肝结构 | 解剖结构 |
| 40468003 | Hepatocellular carcinoma | 肝细胞癌 | 疾病/异常 |
| 241664003 | Computed tomography of abdomen | 腹部 CT | 操作/检查 |
| 54711006 | Portal vein structure?以本地术语服务器核验为准 | 门静脉结构(供参考) | 解剖结构 |
注:SNOMED CT 码随版本演进可能调整,落地对接前请以本地术语服务器的当前版本为准;上表前三项为常用稳定码,第四项为方向性提示。
§2.2 疾病与解剖简介
3D-IRCADb 的临床语境是肝占位性病变的术前评估与手术规划。肝脏是人体最大的实质器官,其分割难点在影像学上表现为三方面:一是密度接近的邻接器官(胃底、脾脏、心脏、胰腺、十二指肠)造成的边界混淆;二是肝脏自身的形态变异(非典型形状、密度不均)与脂肪肝等背景病变;三是图像伪影(金属植入物、呼吸运动)。官方逐例难点表正是围绕这三方面组织。从标签清单看,数据集覆盖的病灶类型包括肝肿瘤(liver_tumor,14 例)、肝囊肿(liver_cyst,3 例)、结石(stones)、增生(hyperplasie,对应 -02 版本的 FNH)、淋巴结(lymph_nodes)与金属伪影区(metal);解剖结构则覆盖肝、双肾、脾、胆囊、胰腺、胃、结肠、心脏、食管、十二指肠、膀胱、子宫、双肺、主动脉、下腔静脉、门静脉-脾静脉、静脉系统与动脉等。流行病学层面,肝细胞癌是全球最常见的原发性肝脏恶性肿瘤、癌症致死的主要病因之一,肝转移瘤则继发于结直肠癌等多种原发癌——具体的全球发病与死亡数字请以最新 GLOBOCAN 报告为准,本页不重复转述未经核实的统计。3D-IRCADb 本身规模小、且为算法压力测试设计,不可用于任何流行病学推断。
§2.3 临床任务定义
| 任务 | 输入 | 输出 | 临床用途 |
|---|---|---|---|
| 肝脏分割 | 腹部增强 CT 序列 | 肝实质 3D mask | 肝体积测量、切除范围规划、供受者评估 |
| 肝肿瘤分割 | 肝 ROI 内 CT | 肿瘤 3D mask | 肿瘤负荷评估、消融/切除边界设计、随访对比 |
| 血管分割 | 增强 CT(动脉期/门脉期) | 门静脉、静脉系统、动脉 mask | 术前血管解剖评估、残余肝体积计算 |
| 三维重建 | mask 或标注影像 | VTK 表面网格 | 术前可视化、导航配准、教学 |
在 Couinaud 八段分段体系中,精确的肝与血管分割是把"影像"变成"可规划手术单元"的前提——这也是 IRCAD(手术培训机构)发布此库的动因:数据集文件夹内置的官方表格即给出每例的肝脏宽/深/高与按 Couinaud 段的肿瘤位置。
§2.4 患者人群
| 维度 | 3D-IRCADb-01 |
|---|---|
| 来源 | 法国 IRCAD / 斯特拉斯堡医院环境(单中心) |
| 检查类型 | 腹部增强 CT |
| 例数 | 20 例(女 10 / 男 10) |
| 出生年份 | 1942-1987 |
| 肿瘤状态 | 75% 病例有肝肿瘤;单例肿瘤数 0-46(第 19 例多达 46 个) |
| 种族/族裔 | 未公布 |
| 扫描设备与协议 | 未公布(见 §3.9) |
人群解读:西方单中心、年龄跨度大(发布时约 23-68 岁区间,按 2010 年推算)、肿瘤富集且刻意包含困难病例——这决定了它适合方法学评测,不适合任何人群代表性研究。
§2.5 临床价值
对临床 AI 而言,3D-IRCADb 的价值集中在"边界案例的鲁棒性验证":一个在 LiTS 上表现良好的肝分割模型,迁移到 3D-IRCADb 的贴邻器官与伪影案例时性能往往显著下降,这恰是该库的设计初衷——用少量刻意选择的困难案例暴露失败模式。PADLLS 论文(2022)的系统对比显示,肝分割在 3D-IRCADb 上的平均 Dice 已达 0.965,但逐例方差(±0.016)掩盖了脾胃邻接案例的过分割问题,需要启发式后处理才能纠正。对教学与手术规划软件而言,VTK 网格与 DICOM 双形态标注让它可以直接作为三维重建管线的端到端测试集。
§2.6 金标准参考表
| 项目 | 内容 |
|---|---|
| 数据划分 | 无官方划分,20 例全部公开(社区划分惯例见 §5) |
| 标注方式 | 专家手动分割,逐切片 DICOM 二值 mask;另交付多标签 LABELLED_DICOM 与 VTK 表面网格 |
| 标注者 | IRCAD 外科研究团队(Soler 等 9 人署名发布;逐例标注人数与轮次未公布) |
| 标注性质 | 金标准(gold standard)参考标注;官方未发布观察者间一致性指标 |
| 标注范围 | 肝、骨、门静脉(及皮肤)全 20 例;肝肿瘤 14 例;动脉/静脉系统 13 例;其余器官部分病例 |
| 元数据 | 官方逐例表:肝脏尺寸(宽/深/高)、Couinaud 段肿瘤位置、分割难点描述 |
§3 数据集规格
§3.0 版本与获取方式抉择矩阵
| 你的需求 | 推荐获取方式 | 大小 | 理由 |
|---|---|---|---|
| 跑通肝/肿瘤分割基准 | 官网整包下载(-01 全 20 例) | 约 806 MB | 一次性获得全部患者文件夹与官方许可文件 |
| 只研究个别困难案例 | 官网按患者单独下载(22-65 MB/例) | 单患者包 | 官方支持逐例下载,适合增量获取与教学 |
| 多期相/增强协议研究 | -01 + -02 一起下载 | 同一压缩包内 | -02 提供吸气动脉期 + 呼气门脉期双期对照 |
| 无法直连官网的环境 | Kaggle 等第三方镜像 | 视镜像而定 | 仅作兜底;镜像可能经过二次打包,须核对目录与许可(见坑点 3) |
§3.1 模态详情
3D-IRCADb 全部为对比增强腹部 CT,每个患者文件夹内的原始序列位于 PATIENT_DICOM:
| 影像参数 | 范围/取值 | 备注 |
|---|---|---|
| 矩阵大小 | 512×512 | 全库统一 |
| 切片数 | 74-260 张/例(中位约 130) | openmedlab 统计:min 74 / median 130 / max 260 |
| 体素间距(面内) | 0.56-0.96 mm | openmedlab:面内 min 0.56 / median 0.74 / max 0.96 mm |
| 层厚(z 向间距) | 1.0-4.0 mm | openmedlab:z 向 min 1.0 / median 1.6 / max 4.0 mm |
| 全库 2D 切片总数 | 约 3,209 张 | 含 -01 的 20 例与 -02 的 2 例 |
| 出生年份 | 1942-1987 | 官方逐例表披露 |
| 窗宽窗位示例 | WW/WL 30/150 至 400/50 | PADLLS 论文预处理所用(示例非官方规定) |
3D-IRCADb-02 的 2 例为多期相采集:同一患者吸气动脉期与呼气门脉期两套序列,病灶为 VII 段肝局灶性结节增生(FNH)——这是库内唯一明确披露期相信息的扫描。
官方逐例元数据表的字段清单(用于按"难点"分层评测时转录):每例行包含患者编号、出生年份、性别、切片数、体素尺寸(x/y/z)、肝脏尺寸(宽/深/高,mm)、肿瘤个数、肿瘤位置(按 Couinaud 肝段,如 II、VI、VII/VIII)与分割难点描述(与胃/胰腺/十二指肠/心脏/脾脏/食管/肌肉接触、非典型形状或密度、金属伪影等)。该表是全库最有价值却被最常忽视的资产——建议在数据加载层把它做成 YAML/CSV 配置随代码版本化。
§3.2 按子集样本数
| 子集 | 例数 | 性别 | 肿瘤情况 | 文件夹命名 |
|---|---|---|---|---|
| 3D-IRCADb-01 | 20 | 女 10 / 男 10 | 75% 有肝肿瘤(15 例),肿瘤数 0-46/例 | 3Dircadb1.01 - 3Dircadb1.20 |
| 3D-IRCADb-02 | 2 | 未逐一公布 | VII 段 FNH,无多发肿瘤 | 3Dircadb2.1 - 3Dircadb2.2 |
| 合计 | 22 | — | — | 约 3,209 张 2D 切片 |
§3.3 数据格式
| 内容 | 格式 | 组织方式 | 说明 |
|---|---|---|---|
| 原始影像 | DICOM | PATIENT_DICOM/ 下逐切片 .dcm | 匿名患者序列,512×512 |
| 二值 mask | DICOM | MASKS_DICOM/<器官名>/ 下逐切片 .dcm | 每个分割区域一个子文件夹;大量切片为全黑(无该器官) |
| 多标签影像 | DICOM | LABELLED_DICOM/ | 各感兴趣区域合成到同一序列,不同标签取不同像素值 |
| 三维网格 | VTK | MESHES_VTK/ 下 .vtk 文件 | 各感兴趣区域表面网格,可直接用于三维可视化 |
| 许可文件 | 每患者文件夹内 2 份 | Creative Commons Attribution 说明与法律条文 | |
| 压缩打包 | ZIP | 每患者 4 个 zip + 整库根 zip | 多层嵌套,需递归解压(见坑点 3) |
§3.4 存储大小
| 项目 | 大小 |
|---|---|
| 整库压缩包(-01 + -02) | 约 806 MB |
| 单患者压缩包 | 22-65 MB |
| 解压后全库 | 数 GB 量级(DICOM 逐切片文件 + VTK 网格;实际占用视文件系统簇大小而定) |
| 转 NIfTI 后(推荐 .nii.gz) | 通常显著小于原始 DICOM(经验值:20 例约 1-2 GB 内) |
建议预留 10 GB 磁盘以容纳原始包、解压目录与转换产物的并存。
§3.5 标注方式
| 维度 | 说明 |
|---|---|
| 标注类型 | 专家手动分割(非自动、非弱监督) |
| 交付形态 | ① 逐切片二值 DICOM mask(MASKS_DICOM,每器官一子文件夹)② 多标签 LABELLED_DICOM ③ VTK 表面网格(MESHES_VTK) |
| 标签粒度 | 器官级(肝、肾、脾……)+ 结构级(门静脉、静脉系统、动脉、骨、皮肤)+ 病灶级(liver_tumor、liver_cyst、stones、hyperplasie、lymph_nodes、metal 等) |
| 覆盖率 | 肝/骨/门静脉 20/20 例全覆盖;肝肿瘤 14 例;动脉与静脉系统各 13 例;下腔静脉 9 例;双肾与胆囊各 8 例;其余为 1-7 例的部分标注 |
| 逐例元数据 | 官方表给出肝宽/深/高、Couinaud 段肿瘤位置、分割难点(邻接器官、伪影等) |
§3.6 标注者资质与一致性
数据由 IRCAD 外科研究团队(Soler、Hostettler、Agnus、Charnoz、Fasquel、Moreau、Osswald、Bouhadjar、Marescaux 共 9 人署名)手动标注,IRCAD 是以微创手术培训与研究著称的机构,标注面向手术规划用途。官方页面未公布逐例标注者人数、轮次与观察者间一致性指标(如 Dice between observers)——这是使用时须明确的局限:所有基准数字都相对"这一份金标准"计算,无法区分金标准自身的不确定度。
§3.7 采集周期
官方未公布具体采集起止年份。可核实的间接信息:数据集 2010 年发布、患者出生年份 1942-1987、CT 增强协议与年代对应的设备水平早于当代多排螺旋 CT 常见配置。涉及"采集年代"的结论请保持保守表述。
§3.8 地域覆盖
单一中心:法国斯特拉斯堡 IRCAD(Research Institute against Digestive Cancer)。无多中心、多地域数据。
§3.9 设备规格
官方页面与社区资料均未披露扫描仪厂商/型号、重建核与具体扫描协议(kVp、mAs、对比剂方案)。做域自适应或设备鲁棒性研究时,这一点应作为数据限制明确写入论文。
§3.10 深度溯源链
对 3D-IRCADb 而言,溯源链的核心是"三层标注同源":二值 mask(MASKS_DICOM)、多标签影像(LABELLED_DICOM)与 VTK 网格(MESHES_VTK)都派生自同一次专家手动分割,三者几何一致(同 spacing、同原点);患者元数据(出生年、性别、肝尺寸、Couinaud 肿瘤位置、难点)则来自官方网页表格而非 DICOM 头。理解这一结构可以避免两类常见事故:把网页元数据误当 DICOM 字段解析,以及对三种标注形态分别做不同预处理导致相互错位。
| 层级 | 内容 | 载体 |
|---|---|---|
| 原始层 | 匿名患者 DICOM 序列(PATIENT_DICOM) | 官方下载包 |
| 标注层 1 | 逐器官二值 mask(MASKS_DICOM) | 外科专家手动分割 |
| 标注层 2 | 多标签合成影像(LABELLED_DICOM) | 由各 mask 合成 |
| 标注层 3 | 表面网格(MESHES_VTK) | 由 mask 三维重建生成 |
| 元数据层 | 官方逐例表(肝尺寸、Couinaud 肿瘤位置、难点) | 官方网页表格 |
| 发布层 | CC BY-NC-ND 4.0 许可 + 官方引用格式(Soler et al., Tech. Rep, 2010) | 每包内 PDF + 官网 |
§4 数据结构
§4.0 目录树
解压整包后的典型结构(每个患者文件夹内含 2 份 CC 许可 PDF 与 4 个 zip;zip 需再解压一层):
3D-IRCADb/
├── 3Dircadb1.01/
│ ├── Creative Commons Attribution.pdf
│ ├── Creative Commons Legal Code.pdf
│ ├── LABELLED_DICOM.zip → 多标签标记影像(DICOM)
│ ├── MASKS_DICOM.zip → 各器官 mask(解压后每器官一个子文件夹)
│ │ └── (解压后)
│ │ ├── liver/ → 肝 mask 序列(20/20 例都有)
│ │ ├── livertumor/ → 肝肿瘤 mask(14 例)
│ │ ├── portalvein/ → 门静脉 mask(20/20 例都有)
│ │ ├── bonemesh/ → 骨 mask
│ │ ├── venoussystem/ → 静脉系统(部分例)
│ │ ├── kidney_left|right/, spleen/, gallbladder/, ...(部分例)
│ │ └── (每个子文件夹内为逐切片二值 .dcm)
│ ├── MESHES_VTK.zip → 各区域 VTK 表面网格
│ └── PATIENT_DICOM.zip → 原始匿名 CT 序列
├── 3Dircadb1.02/ ... 3Dircadb1.20/ (同构)
└── 3Dircadb2.1/ , 3Dircadb2.2/ (-02 扩展:多期 FNH)
§4.1 DAIMS 字段字典
| 字段/实体 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差/注意 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| 患者文件夹名 | text | 唯一患者标识 | 3Dircadb1.19 | 划分分组键(患者级) | 无 | 不适用 | 3Dircadb1.01-1.20、3Dircadb2.1-2.2 |
| PATIENT_DICOM | DICOM 序列 | 原始增强 CT | 512×512×130 | 模型输入 | 像素值需转 HU(含 -2000 填充区) | 不适用 | 74-260 切片 |
| MASKS_DICOM/<name> | 二值 DICOM 序列 | 单器官/病灶 mask | liver/、livertumor/ | 监督标签 | 大量全黑切片;子文件夹命名有变体 | 序列不存在 = 该例未标注该结构 | 0/255(或 0/1)像素 |
| LABELLED_DICOM | 多标签 DICOM | 全部区域合成标记影像 | 标签=像素值 | 可视化、快速统计 | 与 mask 内容一致,二选一使用 | 不适用 | 多值整数像素 |
| MESHES_VTK | 网格文件 | 表面网格(表面重建) | liver.vtk | 三维可视化/网格算法 | 与 mask 同源,注意单位与方向 | 文件缺失 = 未标注 | 多边形网格 |
| 官方逐例表:肝尺寸 | 宽/深/高 mm | 官方网页披露 | 官网表格 | 元数据校验 | 手动转录,注意单位 | 未标注者空缺 | 每例不同 |
| 官方逐例表:肿瘤位置 | Couinaud 段 | 如 II、VI、VII/VIII | 官网表格 | 分层评测 | 文本描述非结构化编码 | 无肿瘤者空缺 | Couinaud I-VIII |
| 体素间距 | spacing (x,y,z) mm | 如 (0.74,0.74,1.6) | DICOM 头 | 重采样到各向同性 | 各例差异大(0.56-4.0 mm) | 不适用 | 见 §3.1 |
§4.2 标签分布
基于 openmedlab 对 -01(20 例)+ -02(2 例)共 22 个体数据的统计(标签体量为三维重建后体积):
| 标签 | 覆盖例数(共 22) | 占比 | 中位体积(cm³) |
|---|---|---|---|
| skin | 22 | 100.00% | 11,526.3 |
| liver | 22 | 100.00% | 1,514.46 |
| bone | 22 | 100.00% | 506.68 |
| portal_vein_and_splenic_vein | 22 | 100.00% | 28.8 |
| liver_tumor | 14 | 63.64% | 13.37 |
| artery | 13 | 59.09% | 96.49 |
| venous_system | 13 | 59.09% | 86.36 |
| venacava | 9 | 40.91% | 48.82 |
| kidney_left / kidney_right | 8 | 36.36% | 147.24 / 142.4 |
| gallbladder | 8 | 36.36% | 17.68 |
| spleen | 7 | 31.82% | 95.97 |
| pancreas | 4 | 18.18% | 88.02 |
| stomach / colon / heart / liver_cyst | 3 | 13.64% | 523.52 / 595.04 / 575.2 / 2.8 |
| 其余(aorta、biliary_system、duodenum、esophagus、bladder、uterus、metal、stones、lymph_nodes 等) | 1-2 | ≤9.09% | 见 openmedlab 统计页 |
要点:器官存在 ≠ 器官被标注。库内标签总数约 40 种,但多数仅出现在 1-3 例;这既是富矿(罕见结构标注),也是陷阱(见坑点 4)。
补充阅读——各标签三维体积的完整统计(openmedlab,22 个体数据,min-max-中位,单位 cm³):
| 标签 | 覆盖例数 | min | 中位 | max |
|---|---|---|---|---|
| skin | 22 | 6,377.12 | 11,526.3 | 41,451.78 |
| liver | 22 | 1,150.52 | 1,514.46 | 2,133.79 |
| bone | 22 | 336.47 | 506.68 | 1,955.74 |
| portal_vein_and_splenic_vein | 22 | 3.53 | 28.8 | 70.2 |
| liver_tumor | 14 | 1.6 | 13.37 | 425.35 |
| artery | 13 | 35.88 | 96.49 | 257.78 |
| venous_system | 13 | 20.25 | 86.36 | 158.2 |
| venacava | 9 | 14.98 | 48.82 | 152.67 |
| kidney_left | 8 | 112.18 | 147.24 | 216.92 |
| kidney_right | 8 | 111.95 | 142.4 | 235.56 |
| gallbladder | 8 | 10.38 | 17.68 | 40.85 |
| spleen | 7 | 118.91 | 95.97 | 323.31 |
| stomach | 3 | 452.89 | 523.52 | 760.5 |
| colon | 3 | 450.34 | 595.04 | 646.03 |
| heart | 3 | 345.86 | 575.2 | 668.99 |
| liver_cyst | 3 | 0.06 | 2.8 | 5.16 |
| pancreas | 4 | 46.07 | 88.02 | 104.28 |
| lung_left / lung_right | 5 | 302.21 / 353.87 | 725.09 / 706.65 | 1,015.6 / 1,106.99 |
| small_intestin | 2 | 836.86 | 1,279.76 | 1,722.66 |
| surrenalgland_left / right | 4 / 3 | 4.58 / 4.92 | 7.34 / 5.13 | 9.66 / 6.62 |
| 其余 1 例标签(aorta、biliary_system、duodenum、esophagus、bladder、uterus、sigmoid、metal、stones、lymph_nodes、hyperplasie、metastasectomy、tumor、kidney、surrenalgland、leftsurre_tumor、rightsurre_tumor 等) | 1 | — | — | 0.03-749.0 |
§4.3 关键统计
- 体数据:22 个(-01 的 20 例 + -02 的 2 例);2D 切片约 3,209 张。
- 尺寸矩阵统一 512×512;切片数 74-260(中位 130)。
- spacing 面内 0.56-0.96 mm,z 向 1.0-4.0 mm——z 向过采样普遍不足,3D 训练前需重采样。
- 肿瘤负担极不均衡:肿瘤数/例为 0-46,单个第 19 例占 46 个肿瘤;liver_tumor 体积中位仅 13.37 cm³,而肝中位 1,514.46 cm³(类别失衡约 1:100)。
- 肝脏体积范围 1,150.52-2,133.79 cm³(min-max,openmedlab 统计)。
§4.4 数据层级
数据库(3D-IRCADb-01/-02)
└── 患者(20 + 2 例,唯一键:文件夹名)
└── CT 序列(-02 每患者 2 个期相;-01 每患者 1 个)
└── 切片(512×512 DICOM,74-260 张/序列)
└── 标注(mask 序列按器官拆分;VTK 网格为 3D 实体)
要点:患者 < 序列 < 切片三层中,划分数据集只能以患者为最小单位(-02 患者的两期相必须同侧),切片级混分必然泄漏(见坑点 7)。
层级完整性校验代码(入库前跑一遍,任何一行失败都应停下修复而不是跳过):
# -*- coding: utf-8 -*-
"""校验 22 个患者文件夹的层级完整性:四子目录齐全 + 序列可读 + mask 可对齐。"""
import os
import pydicom
DATA_ROOT = "./3D-IRCADb"
REQUIRED = ["PATIENT_DICOM", "LABELLED_DICOM", "MASKS_DICOM", "MESHES_VTK"]
cases = sorted(d for d in os.listdir(DATA_ROOT) if d.startswith("3Dircadb"))
assert len(cases) == 22, f"患者文件夹数应为 22,实际 {len(cases)}"
for case in cases:
cdir = os.path.join(DATA_ROOT, case)
missing = [r for r in REQUIRED if not os.path.isdir(os.path.join(cdir, r))]
assert not missing, f"{case} 缺少子目录: {missing}"
ct_dir = os.path.join(cdir, "PATIENT_DICOM")
n_ct = len([f for f in os.listdir(ct_dir) if f.endswith(".dcm")])
assert 74 <= n_ct <= 260, f"{case} 切片数 {n_ct} 超出官方披露范围"
mdir = os.path.join(cdir, "MASKS_DICOM")
for organ in os.listdir(mdir):
odir = os.path.join(mdir, organ)
if not os.path.isdir(odir):
continue
n_m = len([f for f in os.listdir(odir) if f.endswith(".dcm")])
assert n_m == n_ct, f"{case}/{organ}: mask 切片数 {n_m} != CT 切片数 {n_ct}"
print(f"[OK] {len(cases)} 个患者文件夹全部通过层级校验")
§4.5 缺失值与信息性缺失
| 情形 | 表现 | 正确解读 |
|---|---|---|
| MASKS_DICOM 下无某器官子文件夹 | 该例未标注此器官 | 不代表器官缺失或正常;可能只是"该例分割难点不涉及"或标注计划未覆盖 |
| mask 序列内大量全黑切片 | 该器官只占据部分 z 范围 | 正常现象;需按非零切片与原序列对齐(见坑点 1) |
| LABELLED_DICOM 无某标签值 | 同 mask 缺失 | 与 ① 同义 |
| 官方表某字段空缺 | 如无肿瘤者的肿瘤位置 | 该例确实无肿瘤(此表语义与 mask 缺失不同) |
| 设备/协议字段 | 全库未披露 | 数据限制,非缺失编码 |
§5 数据划分与使用建议
§5.1 官方划分
不存在。3D-IRCADb 发布即全量公开 20 例,官方仅组织过 2017 年的肝脏分割 challenge(PADLLS 论文表 4 引用当年参赛算法),无持久化官方排行榜与固定测试集。
§5.2 社区惯例划分
| 划分 | 使用者 | 说明 |
|---|---|---|
| 12 训练/验证 + 8 测试 | GS_NeXt(Electronic Research Archive, DOI 10.3934/era.2025204) | 近年论文常见 |
| 15 训练 + 5 测试 | CSDN/魔乐社区 U-Net 教程 | 教程常用 |
| Leave-one-out / 5 折交叉 | 小样本方法学论文 | 20 例下统计更稳 |
| 3D-IRCADb 全量作外部测试集 | LiTS/大库训练后的迁移评测 | Universal Organ Segmentation(arXiv 2405.18356)等做法 |
§5.3 划分策略与泄漏风险 ⚠️
- 患者级划分是底线:同一患者的序列与全部 mask 必须同侧。用
GroupShuffleSplit(groups=patient_id)或 5 折GroupKFold。 - -01 与 -02 不得跨集:-02 的 2 例多期数据与 -01 无重叠,但若做"多期相"实验,同一 -02 患者的两期相也必须同侧。
- 勿用测试集统计做归一化:HU 截断范围、重采样 spacing 应取自训练集或用固定临床先验(如肝脏窗 WW/WL)。
- 与 LiTS/SLIVER07 联用时防跨库重复:部分论文将 3D-IRCADb 并入训练集再在 LiTS 测试——请先核对病例来源声明,避免同一患者经不同发布渠道出现在两侧。
- 报告划分明细:社区划分不统一是本库评测数字不可比的首要原因(见坑点 5),任何表格都应写明 12/8、15/5 或交叉验证设定。
from sklearn.model_selection import GroupKFold
import numpy as np
patients = np.array([f"3Dircadb1.{i:02d}" for i in range(1, 21)])
gkf = GroupKFold(n_splits=5)
for tr, te in gkf.split(patients, groups=patients):
# 每折 16 训练 + 4 测试,患者级零泄漏
assert set(patients[tr]) & set(patients[te]) == set()
§5.4 交叉验证与外部验证建议
- 库内:5 折 GroupKFold(每折 4 例测试)比单次 12/8 更能刻画方差;小样本下建议同时报告均值±标准差。
- 库外:以 3D-IRCADb 作为 LiTS 或自采数据训练模型的外部验证集(利用其难点案例富集特性),或反向以 LiTS 预训练、3D-IRCADb 少样本微调。
- 报告粒度:除均值外,逐例列表(尤其脾胃邻接、伪影例)比单一均值更有信息量——官方难点表提供了现成的分层键。
§5.5 划分落地检查清单
| # | 检查项 | 方法 |
|---|---|---|
| 1 | 患者级零重叠 | 训练/测试患者名单求交为空(§5.3 代码 assert) |
| 2 | -02 期相同侧 | 3Dircadb2.1 与 2.2 是同一患者两期相,永远同侧 |
| 3 | 统计仅来自训练侧 | 归一化均值/方差、HU 截断、spacing 重采样参数来自训练折 |
| 4 | 划分清单随代码入库 | 固定随机种子 + 名单 JSON,复现者可一键重建 |
| 5 | 跨库联用核对来源 | 与 LiTS/SLIVER07 联用时,确认无同源患者双库混入 |
§6 AI 就绪指南
§6.0 云端快速启动
环境要求:Python ≥ 3.8;核心依赖 pydicom(DICOM 读取)、nibabel/dicom2nifti(格式转换)、scipy(重采样)、torch(训练)。数据集无需注册即可直链下载,Colab/JupyterLab 环境可直接获取(整体约 806 MB):
# 环境假设:任何可联网的 Linux/Python≥3.8 环境
# 下载整包(官方云盘直链)
wget -c "https://cloud.ircad.fr/index.php/s/JN3z7EynBiwYyjy/download" -O 3dircadb.zip
# 数据将解压到 ./3D-IRCADb/,内含 3Dircadb1.01-1.20 与 3Dircadb2.1-2.2
§6.1 快速上手
以下代码的目录结构预期:
data_root/下直接是3Dircadb1.01…3Dircadb1.20文件夹(即整包解压 + 每个患者内 4 个 zip 再解压后的状态);data_root即该目录的父路径。最小可用子集:只需每个患者的PATIENT_DICOM/与MASKS_DICOM/liver/两个子目录即可跑通肝分割。
# -*- coding: utf-8 -*-
"""3D-IRCADb 最小读取示例:读原始 CT + liver mask,转 HU 并对齐。
data_root/
└── 3Dircadb1.01/ ... 3Dircadb1.20/
├── PATIENT_DICOM/ ← 原始 .dcm
└── MASKS_DICOM/liver/ ← 肝 mask .dcm(大量全黑切片)
"""
import os
import pydicom
import numpy as np
data_root = "./3D-IRCADb" # ← 按你的实际路径拼接
case_id = "3Dircadb1.01"
case_dir = os.path.join(data_root, case_id) # data_root/case_id 拼接关系
def load_dicom_series(folder):
"""读取 DICOM 序列并按 InstanceNumber 排序(os.listdir 顺序不可靠!)。"""
slices = [pydicom.dcmread(os.path.join(folder, f))
for f in os.listdir(folder) if f.endswith(".dcm")]
slices.sort(key=lambda s: int(s.InstanceNumber))
return slices
def series_to_hu(slices):
"""像素值 → HU;注意 -2000 为 CT 设备无效区填充,先清零。"""
vol = np.stack([s.pixel_array for s in slices]).astype(np.int16)
vol[vol == -2000] = 0
vol += np.int16(slices[0].RescaleIntercept)
return vol
ct_slices = load_dicom_series(os.path.join(case_dir, "PATIENT_DICOM"))
msk_slices = load_dicom_series(os.path.join(case_dir, "MASKS_DICOM", "liver"))
ct = series_to_hu(ct_slices)
liver = np.stack([s.pixel_array for s in msk_slices])
print(ct.shape, liver.shape, liver.max()) # 形状应一致;mask 非 0/1 时需二值化
§6.2 数据获取
| 途径 | 链接 | 大小 | 要求 |
|---|---|---|---|
| 官方页面(逐例/整包) | https://www.ircad.fr/research/data-sets/liver-segmentation-3d-ircadb-01/ | 单例 22-65 MB;整包约 806 MB | 无需注册,直接下载 |
| 整包直链 | https://cloud.ircad.fr/index.php/s/JN3z7EynBiwYyjy/download | 约 806 MB | 无需注册;多层嵌套 zip |
| 第三方镜像 | Kaggle 等平台存在转载 | 视镜像 | 兜底用;核对完整性(22 个患者文件夹)与许可文件是否保留 |
申请流程:无。下载即视为接受 CC BY-NC-ND 4.0(署名-非商业-禁止演绎)。发表成果时按官方要求引用 Soler et al., Tech. Rep, 2010(完整 BibTeX 见 §9)。
# 整包 → 递归解压(每患者内还有 4 个 zip)
unzip -q 3dircadb.zip -d 3D-IRCADb
cd 3D-IRCADb
for z in */*.zip; do unzip -q "$z" -d "$(dirname "$z")"; done
# 校验:应有 22 个患者文件夹(3Dircadb1.01-1.20 + 3Dircadb2.1-2.2)
ls -d 3Dircadb* | wc -l
§6.3 预处理全流程
标准管线:递归解压 → DICOM 排序读取 → HU 转换 → mask 二值化对齐 → 重采样 → NIfTI 落盘。以下脚本可运行(约 60 行,折叠展示):
<details>
<summary>点击展开:DICOM → NIfTI 完整预处理脚本</summary>
# -*- coding: utf-8 -*-
"""3D-IRCADb 预处理:原始 DICOM + 各器官 mask → {case}_ct.nii.gz + {case}_masks.nii.gz
依赖: pip install pydicom dicom2nifti nibabel numpy scipy
"""
import os
import zipfile
import numpy as np
import nibabel as nib
import pydicom
from scipy.ndimage import zoom
DATA_ROOT = "./3D-IRCADb"
OUT_DIR = "./nifti"
os.makedirs(OUT_DIR, exist_ok=True)
# 步骤 0:递归解压(根 zip + 每患者 4 个 zip)
for root, _, files in os.walk(DATA_ROOT):
for f in files:
if f.endswith(".zip"):
src = os.path.join(root, f)
dst = os.path.join(root, f[:-4] + "_extracted")
if not os.path.isdir(dst):
zipfile.ZipFile(src).extractall(dst)
def load_series(folder):
s = [pydicom.dcmread(os.path.join(folder, f))
for f in os.listdir(folder) if f.lower().endswith((".dcm", ".dicom"))]
s.sort(key=lambda x: int(x.InstanceNumber)) # 排序是硬要求
return s
def to_hu(slices):
vol = np.stack([x.pixel_array for x in slices]).astype(np.int16)
vol[vol == -2000] = 0 # 设备无效填充区
vol += np.int16(slices[0].RescaleIntercept)
return vol
for case in sorted(os.listdir(DATA_ROOT)):
if not case.startswith("3Dircadb"):
continue
cdir = os.path.join(DATA_ROOT, case)
# 1) 原始 CT
ct_s = load_series(os.path.join(cdir, "PATIENT_DICOM"))
ct = to_hu(ct_s).astype(np.float32)
# 2) mask:合并所有器官子文件夹为一张多标签体
mdir = os.path.join(cdir, "MASKS_DICOM")
labels, L = {}, 0
for organ in sorted(os.listdir(mdir)):
organ_dir = os.path.join(mdir, organ)
if not os.path.isdir(organ_dir):
continue
ms = load_series(organ_dir)
m = np.stack([x.pixel_array for x in ms]) > 0
if m.sum() == 0:
continue
if m.shape != ct.shape: # 尺寸不一致则跳过并告警
print(f"[skip] {case}/{organ}: {m.shape} vs {ct.shape}")
continue
L += 1
labels[organ] = L
ct[m] = ct[m] # 占位:不修改 CT
mvol = m.astype(np.uint8) * L
if L == 1:
seg = mvol
else:
seg[m] = L
# 3) 重采样到 (1,1,1) mm 各向同性(用 DICOM 头的实际 spacing)
sx, sy = float(ct_s[0].PixelSpacing[0]), float(ct_s[0].PixelSpacing[1])
sz = float(ct_s[0].SliceThickness)
ct_r = zoom(ct, (sz, sy, sx), order=1)
seg_r = zoom(seg, (sz, sy, sx), order=0) if L else np.zeros_like(ct_r, np.uint8)
# 4) 落盘
for name, arr, dt in (("ct", ct_r, np.float32), ("masks", seg_r, np.uint8)):
img = nib.Nifti1Image(arr.transpose(2, 1, 0), affine=np.eye(4)) # (x,y,z)→NIfTI 轴序
nib.save(img, os.path.join(OUT_DIR, f"{case}_{name}.nii.gz"))
print(case, "labels:", labels)
</details>
要点回顾:排序(InstanceNumber)→ HU(-2000 清零 + RescaleIntercept)→ mask 非零合并 → spacing 重采样 → NIfTI。方向问题(LPS→RAS、轴序转置)见坑点 8。
预处理完成后的质量校验清单(逐项过):
| # | 校验项 | 通过标准 |
|---|---|---|
| 1 | 体数据数量 | 22 个 {case}_ct.nii.gz(20 + 2) |
| 2 | 形状一致性 | 每个 case 的 ct 与 masks 形状完全相同 |
| 3 | 强度范围 | ct 值落在合理 HU 区间(无 -2000 残留、无 0/255 级标签值混入) |
| 4 | 标签唯一性 | masks 的标签值集合与 labels 字典一一对应,无覆盖冲突 |
| 5 | 抽样叠加 | 随机抽 3 例切片叠加显示:肝 mask 紧贴肝轮廓、无整体翻转 |
| 6 | spacing | NIfTI affine 或 sidecar 中记录 1 mm 各向同性(或原始 spacing) |
§6.4 PyTorch DataLoader
2D 切片级训练(U-Net 类模型的最常见用法,完整可运行):
import torch
import torch.nn.functional as F
from torch.utils.data import Dataset, DataLoader
import nibabel as nib
import numpy as np
class IRCADSliceDataset(Dataset):
"""3D-IRCADb 2D 切片数据集:只取 liver mask 非零的切片(自动过滤全黑)。
nifti_dir/ 内需有 {case}_ct.nii.gz 与 {case}_masks.nii.gz(§6.3 产物)。
liver_label 对应 §6.3 中 liver 的标签值(labels 字典顺序,建议打印确认)。"""
def __init__(self, nifti_dir, cases, liver_label=1, size=(256, 256)):
self.nifti_dir, self.liver_label, self.size = nifti_dir, liver_label, size
self.items = []
for c in cases:
mk = nib.load(f"{nifti_dir}/{c}_masks.nii.gz").get_fdata()
for z in range(mk.shape[2]):
if (mk[:, :, z] == liver_label).any(): # 只留有肝的切片
self.items.append((c, z))
def __len__(self):
return len(self.items)
def __getitem__(self, i):
c, z = self.items[i]
ct = nib.load(f"{self.nifti_dir}/{c}_ct.nii.gz").dataobj[:, :, z]
mk = nib.load(f"{self.nifti_dir}/{c}_masks.nii.gz").dataobj[:, :, z]
ct = np.clip(ct.astype(np.float32), -100, 300) # 肝窗范围(经验先验)
ct = (ct + 100.0) / 400.0
ct = torch.from_numpy(ct)[None, None]
mk = torch.from_numpy((mk == self.liver_label).astype(np.float32))[None, None]
ct = F.interpolate(ct, size=self.size, mode="bilinear", align_corners=False)[0, 0]
mk = F.interpolate(mk, size=self.size, mode="nearest")[0, 0]
return ct[None].float(), (mk[None] > 0.5).float()
NIFTI_DIR = "./nifti"
cases = [f"3Dircadb1.{i:02d}" for i in range(1, 21)]
train_ds = IRCADSliceDataset(NIFTI_DIR, cases[:15]) # 社区常用 15/5;正式实验见 §5.3
loader = DataLoader(train_ds, batch_size=8, shuffle=True, num_workers=4, pin_memory=True)
for ct, mk in loader: # ct: (B,1,256,256) mk: (B,1,256,256)
break
3D 训练建议直接把 {case}_ct.nii.gz 重采样到 1 mm 各向同性后按 patch 输入 nnU-Net(见 §6.7)——20 例规模上 nnU-Net 的自动配置通常优于手写管线。若需自写 3D Dataset(patch 采样版):
import torch
from torch.utils.data import Dataset
import nibabel as nib
import numpy as np
class IRCADPatch3D(Dataset):
"""3D patch 采样:每个肝前景中心采一个 patch(含上下文),配合体级损失。
依赖 §6.3 产物的 1mm 各向同性重采样版本(§6.3 的 zoom 系数即为此设计)。"""
def __init__(self, nifti_dir, cases, liver_label=1, patch=(96, 96, 96), samples_per_case=8):
self.nifti_dir, self.liver_label, self.patch = nifti_dir, liver_label, patch
self.items = []
for c in cases:
mk = nib.load(f"{nifti_dir}/{c}_masks.nii.gz").get_fdata() # (x,y,z)
centers = np.argwhere(mk == liver_label)[:: max(1, (mk == liver_label).sum() // 64)]
for ctr in centers[:: max(1, len(centers) // samples_per_case)]:
self.items.append((c, np.clip(ctr, 0, None)))
def __len__(self):
return len(self.items)
def __getitem__(self, i):
c, ctr = self.items[i]
ct = nib.load(f"{self.nifti_dir}/{c}_ct.nii.gz").get_fdata()
mk = nib.load(f"{self.nifti_dir}/{c}_masks.nii.gz").get_fdata()
p = np.array(self.patch) // 2
lo, hi = ctr - p, ctr + p
lo = np.clip(lo, 0, np.array(ct.shape) - self.patch)
box = tuple(slice(int(l), int(l) + s) for l, s in zip(lo, self.patch))
x = np.clip(ct[tuple(box)], -100, 300)
x = ((x + 100.0) / 400.0).astype(np.float32)
y = (mk[tuple(box)] == self.liver_label).astype(np.float32)
return torch.from_numpy(x)[None], torch.from_numpy(y)[None]
§6.5 坑点 8 个
⚠️ 坑点 1:mask 与影像切片错位——全黑切片 + 读取顺序随机(分类:预处理陷阱)
问题:MASKS_DICOM 中每个器官是独立 DICOM 序列,大量切片为全黑(该器官不在此 z 范围);同时
os.listdir返回顺序与切片物理顺序无关,mask 与 CT 若各自未排序或排序键不同,逐像素监督就是张冠李戴。症状:训练 loss 不降或震荡;可视化叠加图上肝 mask 出现在肺/胃区域;Dice 长期低于 0.5。
解决:
- 简单方法:两侧都
sort(key=lambda s: int(s.InstanceNumber));再用 mask 非零切片索引同时截取 CT 与 mask(index = [m.sum() > 0 for m in mask_vol]),这是社区教程的标准做法。- 进阶方法:改用
ImagePositionPatient[2](z 坐标)排序而非 InstanceNumber,并在读取后断言ct.shape == mask.shape、抽查 2-3 个切片叠加显示确认对齐。- SOTA 方法:整体转 NIfTI(SimpleITK/dicom2nifti)后以体数据为单位处理,几何信息(origin/spacing/direction)由格式保证;nnU-Net 的
nnUNetv2_convert_MSD_dataset类工具链自带此类校验。参考:programmersought 肝分割教程(切片排序说明);魔乐社区 3Dircadb U-Net 教程(全黑切片过滤代码);PADLLS(PMC9500060,方向标准化)。
⚠️ 坑点 2:HU 转换——-2000 填充区与 Rescale 斜率/截距(分类:预处理陷阱)
问题:DICOM 原始像素不是 HU;部分设备把无效区域填充为 -2000。不转 HU 直接喂网络,或转 HU 时忽略
RescaleIntercept/RescaleSlope,强度分布完全失真。症状:窗宽窗位显示"发黑发白"异常;同一模型在 3D-IRCADb 正常、在自采数据上崩掉(或反之);直方图出现 -2000 的尖峰。
解决:
- 简单方法:
vol[vol == -2000] = 0后统一加RescaleIntercept(多数为 -1024);社区教程的get_pixels_hu即此方案。- 进阶方法:逐切片应用
slope * pixel + intercept(个别序列 slope≠1),再做肝窗截断(如 [-100, 300] HU)与归一化。- SOTA 方法:用 SimpleITK 读取(自动应用 rescale),并将 HU 范围与重采样 spacing 写入预处理配置(nnU-Net 风格),保证跨数据集一致。
参考:魔乐社区教程(get_pixels_hu 源码);PADLLS(WW/WL 30/150 至 400/50 的窗口设置)。
⚠️ 坑点 3:多层嵌套 zip 与第三方镜像版本漂移(分类:工程陷阱)
问题:整包是"根 zip → 每患者 4 个 zip"的两层嵌套;Kaggle 等镜像可能被二次打包(如已转 PNG/NIfTI、剔除许可 PDF、改名),与官方原始结构不一致,预处理脚本在镜像上直接跑挂。
症状:
unzip后找不到PATIENT_DICOM;文献复现时发现镜像版切片数/文件夹数对不上(应为 22 个患者文件夹)。解决:
- 简单方法:递归解压所有
.zip(§6.2 的 for 循环),用ls -d 3Dircadb* | wc -l校验等于 22。- 进阶方法:只从官方 cloud.ircad.fr 直链下载;对每个患者文件夹校验 4 个子目录齐全 + 2 份 CC PDF 在位。
- SOTA 方法:把"下载→校验→解压→转 NIfTI"写成幂等 Makefile/DVC 管线,校验失败的 case 直接 fail-fast,禁止静默跳过。
参考:deepwiki romova/Liver-vascular-segmentation(嵌套 zip 递归解压实现);IJSET 论文(从 Kaggle 获取数据的第三方版本案例)。
⚠️ 坑点 4:部分器官仅部分病例标注——未标注 ≠ 不存在(分类:标签理解)
问题:全库仅肝、骨、门静脉(及皮肤)在全部 20 例标注;胃、十二指肠、食管、胆道、膀胱、子宫等仅 1-7 例有 mask。若把它们当"背景"做多类训练,模型会学到"胃=背景",迁移到全器官标注数据时互相打架。另外 mask 子文件夹命名有历史变体(如 portalvein / portal_vein_and_splenic_vein、livertumor / tumor、surrenalgland_left/right 等合并与拆分并存)。
症状:多类模型在 3D-IRCADb 上训练后在 AMOS/MSD 上胃、胆道预测异常;合并 mask 统计时同一器官出现两个名字。
解决:
- 简单方法:只用全覆盖标签(liver、bone、portalvein)训练;或只做肝/肿瘤二分割任务。
- 进阶方法:部分标注数据集训练策略——每例只对"已标注类别"计算损失(BCE + binary dice 逐类二值化,Universal Organ Segmentation 论文的做法),未标注类别置 ignore。
- SOTA 方法:partial-label 专用损失(如 Doersch & Zisserman 式多任务掩码、SST/PartialSeg 类方法)或直接用 nnU-Net 的 region-based 训练把同名结构归并为 region。
参考:openmedlab 标签统计表(各标签覆盖例数);Universal Organ Segmentation(arXiv 2405.18356,partial annotation + BCE/binary dice);jusiro/fewshot-finetuning(mask 命名归并代码)。
⚠️ 坑点 5:社区划分五花八门——排行榜数字不可直接比较(分类:评估误用)
问题:无官方划分导致各家自设划分:12 训练/验证 + 8 测试(GS_NeXt)、15 训练 + 5 测试(多数教程)、leave-one-out 或 5 折交叉(小样本方法学)、甚至全量 20 例仅作外测。同一"3D-IRCADb Dice"背后测试集完全不同。
症状:论文 A 的 0.99 与论文 B 的 0.93 未必有可比性;复现数字对不上时先怀疑划分而非代码。
解决:
- 简单方法:复现某论文时严格按其原文划分设定(12/8 或 15/5),在表格脚注写明。
- 进阶方法:固定一份 5 折 GroupKFold 划分并开源 JSON 清单,让同类工作对齐到同一协议。
- SOTA 方法:拒绝单库刷榜——用 LiTS/SLIVER07 训练 + 3D-IRCADb 全量外测的协议报告泛化性能,划分争议归零。
参考:GS_NeXt(DOI 10.3934/era.2025204,12/8);魔乐社区教程(15/5);PADLLS 表 4(2017 challenge 对比)。
⚠️ 坑点 6:2D 指标与 3D 指标混报(分类:评估误用)
问题:3D-IRCADb 论文生态里既有逐切片 2D Dice(3D 预测先转 2D 评估再堆叠,LLRHNet 的做法),也有体级 3D Dice/VOE/RVD/ASSD。2D 逐片平均通常高于 3D 体级,混报会让模型看起来"凭空"提升数个百分点。
症状:自己 3D 训练得到 0.93,读文献以为 SOTA 是 0.99(ResUNet 的 2D 报告值),误判自己实现有 bug。
解决:
- 简单方法:表格里强制标注评估维度(2D per-slice / 3D volumetric),二者不同时比较。
- 进阶方法:同时报告 3D Dice + VOE + RVD + ASSD + HD 五件套(社区标准组合),并给出逐例分布而非只有均值。
- SOTA 方法:采用 SLIVER07 式统一评分脚本(五个指标的加权综合分),或直接引用 nnU-Net 评估器保持跨论文一致。
参考:LLRHNet(PMC9119082,2D 转换评估流程);Oncologie 综述(DOI 10.1515/oncologie-2025-0279,指标混报实例表)。
⚠️ 坑点 7:20 例小样本下的划分泄漏与过拟合假象(分类:数据泄漏)
问题:20 例的体量下,切片级随机划分会让同一患者相邻切片同时进训练与测试集——相邻 CT 切片几乎相同,测试集瞬间"泄题";模型评测虚高,换患者即崩。同类风险还包括:用全部 20 例做归一化统计、在测试集上选 epoch。
症状:患者内切片划分的 Dice 高达 0.98+,患者级划分后骤降至 0.85-0.92 区间;论文数字无法在新中心数据上复现。
解决:
- 简单方法:GroupShuffleSplit/GroupKFold 按
3Dircadb1.XX分组划分(§5.3 代码);-02 患者的两期相同侧。- 进阶方法:归一化参数与重采样 spacing 只从训练折估计;模型选择(early stopping)只看训练折内的验证子集。
- SOTA 方法:20 例全部用于交叉验证并报告折间方差;主结论以"LiTS 大库训练 → 3D-IRCADb 外测"的迁移设定复核。
参考:LLRHNet(PMC9119082,切片堆叠评估的泄漏面);Universal Organ Segmentation(arXiv 2405.18356,全量外测协议)。
⚠️ 坑点 8:方向、坐标系与 LABELLED_DICOM 误用(分类:工程陷阱)
问题:DICOM 是 LPS 坐标系,NIfTI/多数深度学习工具是 RAS;不同工具链转出的 NIfTI 轴序/翻转不一致——PADLLS 明确记载 3D-IRCADb 需"每片顺时针旋转 90° 并垂直镜像"才能与其网络输入对齐。另一个高频错误是把 LABELLED_DICOM(多标签合成图)当原始 CT 用:它是标签映射图,像素值是类别编码而非 HU。
症状:预测在 3D Slicer 里显示为"腹壁朝下"翻转;转 NIfTI 后 mask 与 CT 错位一个翻转轴;模型输入强度直方图是阶梯状(那是标签值不是 HU)。
解决:
- 简单方法:统一用 SimpleITK 读取(保留 direction/origin/spacing),CT 只认 PATIENT_DICOM,标签只认 MASKS_DICOM。
- 进阶方法:转 NIfTI 后用 nibabel 检查
affine的符号(LPS→RAS 需翻转 x/y 轴),并叠加一帧核对解剖朝向;跨库联用时对齐到 SLIVER07/LiTS 的统一朝向。- SOTA 方法:接入 nnU-Net v2 数据转换器(自动处理方向/spacing/强度),从源头消除手工坐标操作。
参考:PADLLS(PMC9500060,旋转与镜像的方向标准化记载);Ojas-Rohatgi/Liver-Tumor-Segmentation(PNG/NIfTI 转换实践)。
§6.6 数据增强
| 增强 | 是否安全 | 说明 |
|---|---|---|
| 随机水平翻转(x 轴) | ✅(注意左右器官) | 翻转会交换左/右肾与左/右肺语义,多器官任务须同步翻转标签或禁用;单肝任务基本安全 |
| 小角度旋转(±10°)与弹性形变 | ✅ | 幅度小即可,保持 mask 最近邻插值 |
| 强度扰动(gamma、噪声、对比度) | ✅ | 在 HU 截断后进行,模拟扫描差异 |
| z 轴翻转 | ❌ | 头足方向有解剖意义,禁止 |
| 90°/180° 旋转(全轴) | ⚠️ | 3D 任务慎用,改变重力方向先验 |
| 重采样 spacing 随机化 | ⚠️ | 可作为正则,但评估时必须固定 1 mm 各向同性 |
§6.7 模型推荐
| 模型 | 适配任务 | 在 3D-IRCADb 上的证据 | 建议 |
|---|---|---|---|
| nnU-Net v2 | 肝/肿瘤/多器官 3D 分割 | 生态内最常用现代基线 | 首选;自动配置方向/spacing/强度 |
| V-net / Dense V-net | 3D 肝分割 | PADLLS 组件;Gibson et al. | 3D 端到端经典选择 |
| H-DenseUnet | 2.5D 肝分割 | PADLLS 组件(Li et al.) | 切片级上下文利用好 |
| U-Net 及变体(ResUNet、mU-Net 等) | 2D 切片级 | mU-Net 为 2017 challenge 参赛者;ResUNet 报告 2D DSC 99.2% | 教学/快速基线 |
| S2DA-Net / HFRU-Net | 肝肿瘤两阶段 | 肿瘤 DSC 0.8202 / 0.776 | 肿瘤任务参照 |
| GS_NeXt | 肝分割(12/8 划分) | 2025,ASD/MSD/RMSD 协议 | 新近论文复现起点 |
§6.8 硬件需求
| 场景 | 显存 | 说明 |
|---|---|---|
| 2D 切片级 U-Net(256×256,batch 8) | ≥6 GB | 任何消费级 GPU 可跑通 |
| 3D patch 训练(nnU-Net 默认配置) | 11-24 GB | nnU-Net 按显存自动规划 patch 与 batch |
| 全库预处理(转 NIfTI + 重采样) | CPU 即可 | 约 20 分钟-1 小时(22 个体数据) |
| PADLLS 级联复现 | 8 GB(Quadro RTX4000 级)+ 可选 V100 | 原文硬件配置 |
§6.9 评估指标代码
import numpy as np
def dice(pred, gt):
p, g = pred.astype(bool), gt.astype(bool)
inter = np.logical_and(p, g).sum()
return 2.0 * inter / (p.sum() + g.sum() + 1e-8)
def voe(pred, gt): # Volumetric Overlap Error,越低越好
return 1.0 - dice(pred, gt)
def rvd(pred, gt): # Relative Volume Difference,越接近 0 越好
return (pred.sum() - gt.sum()) / (gt.sum() + 1e-8)
def assd(pred, gt, spacing=(1.0, 1.0, 1.0)):
"""Average Symmetric Surface Distance(依赖 scipy/medpy 更稳,此处为简化版思路)。"""
from scipy.ndimage import distance_transform_edt
d_pred = distance_transform_edt(~pred.astype(bool), sampling=spacing)
d_gt = distance_transform_edt(~gt.astype(bool), sampling=spacing)
surface = pred.astype(bool) ^ (distance_transform_edt(pred.astype(bool), sampling=spacing) == 0)
return float((d_gt[surface].mean() if surface.any() else np.inf))
def hd95(pred, gt, spacing=(1.0, 1.0, 1.0)):
"""95% Hausdorff Distance:剔除最远 5% 表面点,对小标注误差更稳健。"""
from scipy.ndimage import distance_transform_edt
p, g = pred.astype(bool), gt.astype(bool)
d_pg = distance_transform_edt(~p, sampling=spacing)[g]
d_gp = distance_transform_edt(~g, sampling=spacing)[p]
if d_pg.size == 0 or d_gp.size == 0:
return float("inf")
return float(max(np.percentile(d_pg, 95), np.percentile(d_gp, 95)))
# 评测协议(§8.3):体级 3D 指标 + 患者级 GroupKFold;逐例报告,勿只给均值。
§6.10 MLOps 笔记
- 版本化:把"官方 zip → NIfTI"每步落盘并记录来源 URL 与下载日期;DVC/Datasheet 记录 22 个患者文件夹的校验和。
- 可复现:固定划分 JSON(患者名单级别)随代码入库;随机种子、spacing、HU 截断写进单一配置文件。
- 许可审计:CC BY-NC-ND 禁止衍生数据再分发——导出的 NIfTI/mask 只可在机构内流通,对外只发布代码与指标。
- 监控:以逐例 Dice 为一等公民指标;某例骤降往往是该例具备官方难点表中列出的失败模式(邻接器官/伪影),回查官方表而非调参。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解建议 |
|---|---|---|---|
| 小样本 | 仅 20 例(-01),统计功效极低,均值受单例支配 | 高 | 交叉验证 + 报告方差;勿做人群级结论 |
| 单中心 | 全部来自法国斯特拉斯堡 IRCAD | 高 | 与 LiTS/自采数据联用做外部验证 |
| 病例富集 | 刻意收录困难案例(邻接、伪影、非典型),不是自然患病率分布 | 中 | 把它当"压力测试集"而非训练分布 |
| 肿瘤负担失衡 | 75% 有肿瘤;单例肿瘤数 0-46(第 19 例 46 个) | 中 | 肿瘤任务逐例报告;按肿瘤计数分层 |
| 年代偏倚 | 2010 年前后设备与协议,未披露型号 | 中 | 部署前用当代数据复测 |
| 人群偏倚 | 西欧患者(出生 1942-1987),无族裔披露 | 中 | 跨人群研究补充外部数据 |
§7.2 标注质量
- 标注由 IRCAD 外科研究团队手动完成,面向手术规划用途;交付为 DICOM mask + VTK 双形态,官方逐例表提供肝尺寸与 Couinaud 肿瘤位置用于交叉校验。
- 官方未公布观察者间一致性(无双标注),因此所有基准都是相对"该金标准"的数字;liver_tumor 体积中位仅 13.37 cm³,小病灶边界的一两个体素差异即可显著改变 Dice。
- 社区统计(openmedlab)显示部分标签(如 kidney 全部、biliary_system、surrenalgland 系列)在个别病例中存在命名/合并差异,使用罕见标签前建议先可视化核对。
- 一个可操作的信任策略:把官方逐例表中的肝尺寸(宽/深/高)与你的 mask 三维包围盒对比——误差超过 10% 时优先怀疑自己的排序/方向处理出错,而不是金标准错误(这是官方表最实用的 QA 用途)。
§7.3 泛化性
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 肝与脾胃邻接病例 | 过分割(把脾胃划入肝) | PADLLS 专设级联纠正(V-net 摘除脾胃体素后由 H-DenseUnet 复分割) |
| 腹水病例 | 过分割 | PADLLS 用阈值+形态学滤除腹水 |
| 金属伪影病例 | 局部边界失真 | 官方逐例难点表列出 metal 标签(1 例) |
| 迁移到当代扫描仪 | 强度分布漂移 | 数据集设备信息未披露;年代跨度约 15 年以上 |
| 多器官小标签迁移 | 未标注类别被当背景 | Universal Organ Segmentation 采用逐类 BCE+binary dice 缓解 |
§7.4 伦理与合规
数据已由发布方匿名化:官方仅披露出生年份与性别,无姓名、病历号或检查日期;影像为 DICOM 序列不包含面部重建信息。许可为 CC BY-NC-ND 4.0:署名引用 Soler et al.(2010)、非商业使用、不得分发修改后的衍生数据。数据集页面未描述原始采集的知情同意细节,使用者如需临床部署须自行补足合规链路。
§7.5 公平性
库内无族裔、社会经济与语言字段;性别平衡(10/10)是其少数加分项。年龄跨度覆盖 1942-1987 出生队列,但 20 例无法支撑任何亚组公平性分析——公平性审计请依赖更大规模数据集(LiTS、AMOS22 等)。
§7.6 数据漂移
作为 2010 年冻结的静态数据集,它自身不漂移,但世界在漂移:扫描设备、重建算法与增强协议的变迁意味着在其上 tuned 的模型强度先验(HU 分布、层厚分布)可能不适用于当代数据。建议把 3D-IRCADb 用作"困难案例回归测试集",并在新数据接入时监测输入强度/spacing 分布偏移。
§7.7 DAIMS 24 项检查表
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 22 个体数据结构同构,四子目录规范统一 |
| 2 | 唯一标识 | ✅ | 患者文件夹名(3Dircadb1.01-1.20 / 2.1-2.2)全局唯一 |
| 3 | 特殊字符 | ✅ | 路径与标签名均为 ASCII |
| 4 | 重复行 | ✅ | 无重复患者;-01/-02 无重叠 |
| 5 | 缺失编码 | ⚠️ | 无显式缺失值编码体系,靠"子文件夹不存在"表达 |
| 6 | 标签标识 | ⚠️ | mask 以子文件夹名标识,存在命名变体(portalvein/portal_vein_and_splenic_vein 等) |
| 7 | 罕见类分组 | ⚠️ | 约 40 种标签中多数仅 1-3 例,无罕见类合并指引 |
| 8 | 偏倚评估 | ✅ | 官方逐例分割难点表是同类数据集中少见的偏倚自述 |
| 9 | 数据字典 | ⚠️ | 无正式数据字典;官方网页表格 + 社区统计承担此职 |
| 10 | 信息性缺失解释 | ❌ | 未标注 ≠ 器官不存在,官方未显式说明此语义 |
| 11 | 设备记录 | ❌ | 扫描仪型号/协议未披露 |
| 12 | 共线性 | ✅ | 影像数据不适用表格共线性问题 |
| 13 | 编码映射 | ❌ | 无 ICD-11/SNOMED 官方映射(本页 §2 为编辑部分析) |
| 14 | 时间戳处理 | ⚠️ | DICOM 头自带时间字段,无统一脱敏/偏移说明 |
| 15 | 划分建议 | ❌ | 无官方划分,社区三种划分并存 |
| 16 | 泄漏讨论 | ❌ | 官方未讨论患者级划分与切片泄漏风险 |
| 17 | 标签分布 | ✅ | mask 可直接统计;社区已产出完整分布表 |
| 18 | 测量偏倚 | ⚠️ | 单金标准无观察者间一致性数据,不确定度不可估 |
| 19 | 外部验证建议 | ⚠️ | 官方无指引;社区已有"外测集"用法先例 |
| 20 | 版本记录 | ⚠️ | 仅 2010 技术报告;-01/-02 差异可考但无变更日志 |
| 21 | 预处理脚本 | ❌ | 官方未提供;依赖社区教程与本页 §6.3 |
| 22 | 合规要求 | ✅ | CC BY-NC-ND 4.0 明确,许可 PDF 随包分发 |
| 23 | 多模态对齐 | ⚠️ | -02 提供双期相同患者对齐样本,但仅 2 例 |
| 24 | 去标识化 | ✅ | 官方匿名化披露(仅出生年+性别),无直接标识符 |
DAIMS 评分:13.5 / 24
评分解读:9 项 ✅ 集中在"结构纯净度"(同构目录、唯一 ID、无重复、许可明确、官方难点自述)——这是手工策展数据集的典型优点;9 项 ⚠️ 与 6 项 ❌ 几乎全部来自"文档与流程的时代局限":无划分、无脚本、无设备记录、无一致性数据、无官方编码映射。对 2010 年的发布物不应苛求 MLOps 时代的配套,但这些缺口必须由使用者自建。
对你意味着什么:
- 可以直接用的:患者级 ID、统一目录结构、CC BY-NC-ND 合规框架、官方难点分层键——把 §6.3 预处理脚本套上即可开工。
- 必须自己补的:划分(患者级 GroupKFold)、方向标准化(LPS→RAS)、HU 与 spacing 配置——照抄本页 §5.3 与坑点 1/2/8 的方案。
- 不要试图做的:从该库推断人群规律、给罕见标签(1-3 例)训练独立类别、把 2D 报告数字与 3D 报告数字排座次。
- 论文写作时:明确声明"相对该金标准"的评测语义、报告划分明细与逐例结果、引用官方 BibTeX。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| LiTS → 3D-IRCADb 外测 | 各研究组(综述汇总) | 肝分割 | ResTransUnet DSC 0.9535 / VOE 0.0804(LiTS 内测) | 外测普遍下降 | 大库训练模型在 3D-IRCADb 困难案例上性能回落 |
| 3D-IRCADb 内部基准 | PADLLS(Sci Rep 2022) | 肝分割 | Dice 0.965±0.016 | — | 级联+启发式可处理脾胃/腹水过分割 |
| 3D-IRCADb 肿瘤两阶段 | S2DA-Net / HFRU-Net | 肿瘤分割 | DSC 0.8202 / 0.776 | 显著低于肝任务 | 肿瘤边界与类别失衡仍是瓶颈 |
| 多器官通用模型外测 | Universal Organ Segmentation(arXiv 2405.18356) | 13 类器官分割 | 定性+定量外测 | 小标签缺失引发背景冲突 | partial-label 损失是迁移关键 |
§8 基准性能与生态
§8.1 排行榜(肝脏分割为主)
| 排名 | 模型 | 性能(3D-IRCADb) | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | PADLLS | 肝 Dice 0.965±0.016 | 2022 | V-net+H-DenseUnet 级联 + 脾胃/腹水启发式纠正 | A pipeline for automated deep learning liver segmentation (PADLLS). Scientific Reports 12:15794, 2022. DOI 10.1038/s41598-022-20108-8 | 未随文开源(原文称多数同类不公开) |
| 2 | ResUNet(2D 协议) | 肝 DSC 99.2% | 2022+ | 残差 U-Net,2D 切片评估 | 转引自 Oncologie 综述表 [39]. DOI 10.1515/oncologie-2025-0279 | 见综述原文 |
| 3 | GS_NeXt | 肝分割(ASD/MSD/RMSD 协议,12/8 划分) | 2025 | 新近架构,划分不同于上两行 | GS_NeXt. Electronic Research Archive, 2025. DOI 10.3934/era.2025204 | 见原文 |
| 4 | SBLDA 模板匹配(传统方法) | 肝 92.16%±2.95% | 2016 | 模板匹配+统计外观模型 | Huang et al., 2016,转引自 PMC10725533 综述表 | 无 |
| 5 | S2DA-Net | 肿瘤 DSC 0.8202 / VOE 0.3829 | 2021+ | 肿瘤两阶段分割 | 转引自 Oncologie 综述表 [45]. DOI 10.1515/oncologie-2025-0279 | 见原文 |
| 6 | HFRU-Net | 肿瘤 DSC 0.776 / IoU 0.707 | 2021+ | 肿瘤两阶段分割 | 转引自 Oncologie 综述表 [49]. DOI 10.1515/oncologie-2025-0279 | 见原文 |
⚠️ 数值不可直接比较:划分不同(15/5、12/8、全量外测)、评估维度不同(2D 逐片 vs 3D 体级)、任务不同(肝 vs 肿瘤)、部分数字系综述转引而非原文核对。任何跨行排序都应视为方向性参考。
§8.2 SOTA 总结与选型建议
肝分割在 3D-IRCADb 上已进入 0.96-0.99(协议依赖)的准饱和区,剩余争议集中在困难案例(脾胃邻接、腹水、伪影);肝肿瘤分割仍在 0.78-0.82 区间,是真正的开放问题。选型建议:复现肝分割基准用 nnU-Net v2 + 患者级 5 折;研究肿瘤则关注两阶段级联与类别失衡损失;方法学创新(半监督/少样本)优先在 5 折方差上做文章而非单点均值。
趋势解读(截至 2026-09 检索证据):
| 阶段 | 代表方法 | 3D-IRCADb 上的肝分割水平 | 瓶颈 |
|---|---|---|---|
| 传统方法期(2013-2017) | 区域生长、图割、AAM、模板匹配 | 92.16%±2.95%(SBLDA,2016,转引自 PMC10725533) | 邻接器官边界 |
| 早期深度学习期(2017 challenge 前后) | mU-Net 等 2D 网络 | 逐片 Dice 提升至 0.95+ | z 轴上下文 |
| 成熟期(2018-2022) | V-net、H-DenseUnet、级联(PADLLS) | 3D Dice 0.96-0.97 | 脾胃/腹水过分割 |
| 当代(2023-2025) | nnU-Net 体系、GS_NeXt 等 | 准饱和,逐例方差成为焦点 | 肿瘤任务(0.78-0.82)、跨域泛化 |
§8.3 评测协议
- 指标五件套:Dice/DSC、VOE、RVD、ASSD、HD(社区标准组合,见 §6.9 代码)。
- 划分:声明 12/8、15/5 或 5 折 GroupKFold;患者级分组。
- 评估维度:体级 3D 为主;如报 2D 需注明逐片平均。
- 逐例报告:至少给出最好/最差案例及对应官方难点类型。
§8.4 相关数据集
| 数据集 | 规模 | 模态 | 与 3D-IRCADb 的关系 |
|---|---|---|---|
| SLIVER07 | 20 训练 + 10 测试 | CT | 并列的经典肝分割基准(MICCAI 2007);测试标注不公开 |
| LiTS | 131 训练 + 70 测试 | CT | 后继大规模基准;肝+肿瘤;2017 后主流训练库 |
| CHAOS | 40 例 | CT + MRI | 跨模态扩展(肝/脾/肾) |
| AMOS22 | 500 例 | CT + MRI | 15 器官现代基准 |
| MSD Task03/08 | 947 例(10 任务合计) | CT | 肝/肝肿瘤任务;医学分割十项全能 |
§8.5 关键论文 Top 8
-
Soler L, Hostettler A, Agnus V, Charnoz A, Fasquel J-B, Moreau J, Osswald A-B, Bouhadjar M, Marescaux J. “3D image reconstruction for comparison of algorithm database: A patient specific anatomical and medical image database.” IRCAD, Strasbourg, France, Tech. Rep, 2010. —— 数据集原始技术报告(官方唯一指定引用)。
-
A pipeline for automated deep learning liver segmentation (PADLLS). Scientific Reports 12:15794, 2022. DOI 10.1038/s41598-022-20108-8. —— 级联+启发式,3DIRCADb 0.965/SLIVER07 0.957,并系统整理 2017 challenge 以来对比。
-
GS_NeXt. Electronic Research Archive, 2025. DOI 10.3934/era.2025204. —— 近年基准论文,确立 12/8 划分与 ASD/MSD/RMSD 协议。
-
LLRHNet. PMC9119082, 2022. —— 3D 预测按切片转 2D 评估再堆叠的代表性协议;确立 Dice/HD/VOE/RVD/ASSD 五指标组合在 3D-IRCADb 上的使用范式。
-
Universal and Extensible Language-Vision Models for Organ Segmentation and Tumor Detection from Abdominal Computed Tomography. arXiv:2405.18356, 2024. —— 将 3D-IRCADb 列为 13 类目标外测集;partial-label 训练策略。
-
Recent advances in computerized imaging…in liver disease diagnosis, preoperative planning, and interventional liver surgery: A review. PMC10725533. —— 汇总 SLIVER07/3D-IRCADb 时代传统与深度方法对照表。
-
Deep learning in hepatic oncology imaging: a narrative review of computed tomography applications. Oncologie, 2025. DOI 10.1515/oncologie-2025-0279. —— 肿瘤分割 SOTA 数字与指标生态的汇总来源。
-
深度学习在肝脏及肝脏肿瘤分割中的应用进展. 中国医学杂志类综述(2025, 61(17)). —— 中文语境下 3D-IRCADb/SLIVER07/CHAOS/LiTS 四库规格对比表来源。
§8.6 社区活跃度
截至 2026-09:官方无维护排行榜与 GitHub 仓库(数据集本身为静态发布);社区以三类载体活跃——① 系统性统计与教程(openmedlab/Awesome-Medical-Dataset 的标签统计页是事实上的数据字典);② 复现项目(jusiro/fewshot-finetuning、romova/Liver-vascular-segmentation、Ojas-Rohatgi/Liver-Tumor-Segmentation 等 GitHub 仓库);③ 论文生态(每年仍有新基准论文以其为评测库之一)。CSDN/腾讯云社区存在大量中文教程,质量参差,建议以本页 §6 的经过交叉核对的管线为起点。
§8.7 生态快照
| 资源 | 类型 | 链接 | 推荐理由 |
|---|---|---|---|
| 官方数据集页 | 官方 | https://www.ircad.fr/research/data-sets/liver-segmentation-3d-ircadb-01/ | 唯一权威来源:逐例表+下载+许可 |
| 官方整包直链 | 官方 | https://cloud.ircad.fr/index.php/s/JN3z7EynBiwYyjy/download | 约 806 MB 整库 |
| openmedlab 统计页 | 社区 | https://github.com/openmedlab/Awesome-Medical-Dataset/blob/main/resources/3D-IRCADB.md | 22 个体数据的 spacing/尺寸/标签统计 |
| fewshot-finetuning | 社区代码 | https://github.com/jusiro/fewshot-finetuning | mask 命名归并 + NIfTI 转换实现 |
| Liver-vascular-segmentation | 社区代码 | https://deepwiki.com/romova/Liver-vascular-segmentation/2.1-data-acquisition | 嵌套 zip 递归下载解压参考 |
| Liver-Tumor-Segmentation | 社区代码 | https://github.com/Ojas-Rohatgi/Liver-Tumor-Segmentation | 2.5D 两阶段级联完整管线 |
| SlicerRVXLiverSegmentation | 工具 | https://github.com/R-Vessel-X/SlicerLiverAnatomyAnnotation | 3D Slicer 插件,VTK/血管分割工作流 |
§9 相关资源与引用
§9.1 官方资源
- 官方数据集页(含逐例元数据表与许可说明):https://www.ircad.fr/research/data-sets/liver-segmentation-3d-ircadb-01/
- 整包下载直链:https://cloud.ircad.fr/index.php/s/JN3z7EynBiwYyjy/download
- 技术报告摘要页:https://www-sop.inria.fr/geometrica/events/wam/abstract-ircad.pdf
- IRCAD 研究主页:https://www.ircad.fr/research/
§9.2 社区资源
| 资源 | 价值 | 入口 |
|---|---|---|
| openmedlab/Awesome-Medical-Dataset | 22 体数据的 spacing/尺寸/标签统计,事实上的社区数据字典 | https://github.com/openmedlab/Awesome-Medical-Dataset |
| jusiro/fewshot-finetuning | prepare_datasets.py:mask 命名归并 + dicom2nifti 转换 | https://github.com/jusiro/fewshot-finetuning |
| romova/Liver-vascular-segmentation | 嵌套 zip 递归下载解压 + 血管分割工作流 | https://github.com/romova/Liver-vascular-segmentation |
| Ojas-Rohatgi/Liver-Tumor-Segmentation | 2.5D 两阶段级联(肝→肿瘤)+ Flask 部署全流程 | https://github.com/Ojas-Rohatgi/Liver-Tumor-Segmentation |
| R-Vessel-X/SlicerLiverAnatomyAnnotation | 3D Slicer 插件:肝/门静脉/IVC/肿瘤标注工作流 | https://github.com/R-Vessel-X/SlicerLiverAnatomyAnnotation |
| 中文教程(腾讯云/CSDN/魔乐社区) | 入门参考与预处理代码片段(质量参差,须交叉验证) | 见 §10.3 来源 14-16 |
§9.3 BibTeX 引用块
@article{soler20103d,
title = {3D image reconstruction for comparison of algorithm database:
A patient specific anatomical and medical image database},
author = {Soler, Luc and Hostettler, Alexandre and Agnus, Vincent and
Charnoz, Arnaud and Fasquel, Jean-Baptiste and Moreau, Johan and
Osswald, Anne-Blandine and Bouhadjar, Mourad and Marescaux, Jacques},
journal = {IRCAD, Strasbourg, France, Tech. Rep},
year = {2010},
note = {https://www.ircad.fr/research/data-sets/liver-segmentation-3d-ircadb-01/}
}
@article{padlls2022,
title = {A pipeline for automated deep learning liver segmentation (PADLLS)
from contrast enhanced CT exams},
journal = {Scientific Reports},
volume = {12},
pages = {15794},
year = {2022},
doi = {10.1038/s41598-022-20108-8}
}
@article{gsnext2025,
title = {GS_NeXt: liver segmentation benchmark on 3D-IRCADb},
journal = {Electronic Research Archive},
year = {2025},
doi = {10.3934/era.2025204}
}
§9.4 引用指南
- 使用数据集本身:引用
soler20103d(官方指定格式),并在方法节注明下载日期与版本(3D-IRCADb-01,CC BY-NC-ND 4.0)。 - 复现基准数字:同时引用对应划分来源(如
gsnext2025或教程划分),并在表格注明评估维度(2D/3D)。 - 引用本页:千方病案医数集「3D-IRCADb AI-Ready Wikipedia」,审核日期 2026-09-05。
§10 AI 使用声明卡
§10.1 AI 模型列表
| 模型 | 用途 | 版本/说明 |
|---|---|---|
| 千方写作助手(大语言模型) | 条目初稿撰写、结构化整理、代码示例生成 | 千方病案医数集写作管线,fast-model |
| 联网检索工具 | 事实核查(官方页、论文、社区仓库) | 共 6 次检索,2026-09-13 执行 |
§10.2 AI 参与范围
| 环节 | 执行者 | 说明 |
|---|---|---|
| 事实检索与来源收集 | AI(联网检索) | 6 次检索,覆盖官方页/论文/许可/SOTA/社区仓库 |
| 初稿撰写与结构组织 | AI | 按写作规范生成全部章节 |
| 代码示例 | AI 生成 + 编辑部静态走查 | §6 全部代码基于社区已验证实现改写 |
| 医学表述与编码映射 | 编辑部人工交叉审核 | §2 编码逐条复核,不确定处显式声明 |
| 基准数字与引用核对 | 编辑部人工交叉审核 | 全部数字带 DOI/PMC/URL 溯源 |
| 最终发布决定 | 编辑部 | 见 §10.4 校验记录 |
§10.3 输入来源列表
- IRCAD. Liver segmentation 3D-IRCADb-01(官方数据集页). https://www.ircad.fr/research/data-sets/liver-segmentation-3d-ircadb-01/
- IRCAD. Liver segmentation 3D-IRCADb-01(官方页镜像索引,p=58556). https://www.ircad.fr/?p=58556
- openmedlab. Awesome-Medical-Dataset: 3D-IRCADB(标签与规格统计). https://github.com/openmedlab/Awesome-Medical-Dataset/blob/main/resources/3D-IRCADB.md
- PADLLS. A pipeline for automated deep learning liver segmentation. Scientific Reports 12:15794, 2022. DOI 10.1038/s41598-022-20108-8(PMC9500060)
- Deep learning in hepatic oncology imaging: a narrative review. Oncologie, 2025. DOI 10.1515/oncologie-2025-0279
- Le DC, Chansangrat J, Keeratibharat N, Horkaew P. Recent advances in computerized imaging…liver surgery: A review. PMC10725533
- LLRHNet(3D 预测 2D 评估协议). PMC9119082, 2022
- 深度学习在肝脏及肝脏肿瘤分割中的应用进展(中文综述,2025, 61(17),Google Scholar 缓存)
- Universal and Extensible Language-Vision Models for Organ Segmentation and Tumor Detection from Abdominal CT. arXiv:2405.18356, 2024
- GS_NeXt. Electronic Research Archive, 2025. DOI 10.3934/era.2025204
- romova/Liver-vascular-segmentation(数据获取实现,DeepWiki 文档)
- jusiro/fewshot-finetuning(prepare_datasets.py,mask 命名归并)
- R-Vessel-X/SlicerLiverAnatomyAnnotation(3D Slicer 插件与许可表述)
- 腾讯云开发者社区. Liver segmentation 3D-IRCADb2010 对比增强 CT 肝脏分割
- 魔乐社区/CSDN. 3Dircadb 数据集使用 unet 分割肝脏(预处理代码)
- programmersought. Medical image segmentation…unet implementation(DICOM 排序与读取)
- Ojas-Rohatgi/Liver-Tumor-Segmentation(2.5D 级联复现仓库)
- IJSET. Segmentation and Classification of Liver Cancer Using Deep Learning Models(Kaggle 镜像使用案例)
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| frontmatter 与 schema_org(含 rai:* 字段) | 千方病案医学编辑部 | 对照官方页与 FACTS 清单逐字段核对 | ✅ 已通过 |
| §1 概览与横向对比 | 千方病案医学编辑部 | 数字溯源至官方页与中文综述对比表 | ✅ 已通过 |
| §2 医学背景(ICD-11/SNOMED 映射) | 千方病案医学编辑部 | 编码逐条复核;未公布信息保持空缺声明 | ✅ 已通过 |
| §3-§4 规格与数据字典 | 千方病案医学编辑部 | 对照官方页四子目录描述与 openmedlab 统计 | ✅ 已通过 |
| §5 划分与泄漏分析 | 千方病案医学编辑部 | 划分数字溯源至 GS_NeXt 与教程原文 | ✅ 已通过 |
| §6 预处理管线与 8 坑点 | 千方病案医学编辑部 | 代码静态走查;坑点溯源至论文/仓库/教程 | ✅ 已通过 |
| §7 质量评估与 DAIMS 24 项 | 千方病案医学编辑部 | 逐项比对官方披露与社区证据 | ✅ 已通过 |
| §8 基准生态(排行榜/论文引用) | 千方病案医学编辑部 | 全部数字带 DOI/PMC 溯源;不可比性已标注 | ✅ 已通过 |
| §9-§10 引用与声明卡 | 千方病案医学编辑部 | BibTeX 对照官方引用格式核对 | ✅ 已通过 |
§10.5 AI 生成章节标注
除 §0 三段免责声明与 §10.4 人工校验表为编辑部既定模板外,其余章节均由 AI 生成初稿后经人工交叉审核修订;原始检索证据保存于同目录 FACTS.md。
§10.6 最后人工审核日期
2026-09-05
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- ctooth — 共享标签:医学影像 / CT / 医学图像分割 / 评测基准
- monuseg — 共享标签:医学影像 / 医学问答与基准 / 医学图像分割 / 评测基准
- cvc-clinicdb — 共享标签:医学影像 / 医学问答与基准 / 医学图像分割 / 评测基准
- cvc-colondb — 共享标签:医学影像 / 医学问答与基准 / 医学图像分割 / 评测基准
- drive — 共享标签:医学影像 / 医学问答与基准 / 医学图像分割 / 评测基准
- sliver07 — 共享标签:医学影像 / 医学问答与基准 / CT / 医学图像分割
- btcv — 共享标签:医学影像 / 医学问答与基准 / CT / 医学图像分割
- retouch — 共享标签:医学影像 / 医学问答与基准 / 医学图像分割 / 评测基准
- verse-spine — 共享标签:医学影像 / 医学问答与基准 / CT / 医学图像分割
- rexgrounding-ct — 共享标签:医学影像 / CT / 医学图像分割 / 评测基准
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

