AMOS 腹部多器官分割基准 — 六成是 CT,凭什么叫跨模态

600 例 / 15 器官 / 4 厂商 / 官方 CC BY 4.0

来源 https://era-ai-biomed.github.io/amos/dataset.html发布时间: 2026-10-26最后更新: 2026-10-26 阅读 16
AMOS 腹部多器官分割基准 — 六成是 CT,凭什么叫跨模态

信息速览

数据集名称AMOS 腹部多器官分割基准 — 六成是 CT,凭什么叫跨模态
数据类型原始影像,人工标注,元数据,医学问答基准
规模600 例(CT 500 例 + MRI 100 例)
接入方式https://era-ai-biomed.github.io/amos/dataset.html
AI 就绪度

AMOS 出现的时机,恰好卡在腹部多器官分割「已经不算难题、但也不敢说解决了」的那几年。BTCV 提供了标准的 13 类 CT 标注,CHAOS 提供了 CT 与 MRI 的配对视角,KiTS 和 LiTS 提供了带病灶的肾脏与肝脏。可它们各自都只覆盖了一条轴线上的一小段:要么只有 CT,要么只有健康人群,要么只有一两家医院的设备。于是模型在论文里能刷到 0.9 以上,换一台机器、换一个期相就开始掉点,而这种掉点在公开基准上几乎看不见。

AMOS 想补的就是这一段。它在 2022 年由香港大学、香港中文大学(深圳)、中山大学等机构联合发布,同年进入 NeurIPS 的数据集与基准赛道。它的设计意图不是「把 BTCV 做得更大」——总样本只有六百例,论规模比不过任何一个多中心聚合集——而是「让模态、厂商、人群这三个维度的差异同时出现在同一份答案卷里」。CT 五百例、MRI 一百例,四家厂商的设备,两家医院的采集,年龄从十四岁跨到九十四岁。

但这份设计意图也带来了它最难被正确使用的地方:十五个器官类别的定义与 BTCV 的十三类并非一一对应,有的被合并,有的被拆细;MRI 只占六分之一,任何关于 MRI 的结论都要打折。一屏速览见下表。

维度 内容
官方名称 AMOS: A Large-Scale Abdominal Multi-Organ Benchmark for Versatile Medical Image Segmentation
发布年份 2022 年(arXiv 2206.08023;NeurIPS 2022 Datasets and Benchmarks Track)
发布机构 香港大学、香港中文大学(深圳)、中山大学、深圳大数据研究院、斯坦福大学
带标注样本 600 例(CT 500 例,MRI 100 例)
无标注扩展集 官方称 CT 与 MRI 各千例量级,分三个 Zenodo 记录分发
器官类别 15 类,含一个按性别切换的盆腔类(前列腺/子宫)
采集中心 2 家(元数据 Site 字段只有 people 与 center 两个取值)
扫描仪厂商 4 家(GE、Siemens、Philips、Toshiba/Canon 系)
机架型号 9 个不同型号,最多的是 Aquilion ONE 与 SOMATOM Force
受试者年龄 14–94 岁,含 1 例年龄字段为空
性别构成 男性 369 例、女性 231 例,约 1.6:1
文件格式 NIfTI(nii.gz),图像与掩膜同号命名
官方划分 训练 200 CT + 40 MRI,验证 100 CT + 20 MRI,测试 100 CT + 40 MRI
评测指标 Dice 与归一化表面距离(NSD)
许可 数据 CC BY 4.0;代码 Apache-2.0
官方入口 https://era-ai-biomed.github.io/amos/dataset.html

§1 它要解决的具体麻烦

1.1 你的模型在自家数据上很好,换台机器就掉点,而公开基准看不出来

腹部多器官分割的训练管线在 2022 年已经很成熟。nnU-Net 这一类自配置方法把预处理、体素间距归一、网络结构和后处理都自动调了一遍,在 BTCV 上能稳定做到 0.87 上下的平均 Dice。问题不在这套管线,而在于用来训练和评测它的数据太整齐:同一家医院、同一批机架、同一种期相、同一套标注规范。模型学到的不只是「肝脏在哪儿」,还包括了「这台机器重建出来的肝脏是什么噪声纹理」。

这种耦合在单一数据集上是隐形的。你在 BTCV 上训练、在 BTCV 上验证、在 BTCV 的测试集上报告,三个环节的域都相同,掉点自然无从发生。等到部署到另一家医院,才发现平均 Dice 掉了十个点以上,而且掉得最多的是胰腺、十二指肠、食管这些薄壁或走向多变的器官。AMOS 把这种差异前置到了数据集层面:同一份标注规范下,四种厂商的机架、两种模态、两个中心、多个期相的样本被混在一起,训练与测试的域天然不同。

这一点是判断「该不该选它」的第一把尺子。如果你的痛点就是「跨院迁移不稳」,AMOS 的价值在数据层面而不是方法层面;如果你的痛点是「模型结构不够新」,AMOS 帮不上忙,它不是方法基准。

1.2 三条常见的错误期待

第一条是把它当成「更大的 BTCV」。这个期待在数字上就站不住:BTCV 的训练集有三十例、额外五十例来自不同中心,AMOS 的带标注总量是六百例,看似更大,但其中一百例是 MRI,跨模态不能直接换算成「更多的 CT」。更关键的是类别定义不一样,拿它替换 BTCV 的训练集,等于同时换了数据分布和标签语义,实验结论归因不清。

第二条是把它当成「跨模态研究的唯一入口」。MRI 只有一百例,而且在三份拆分之后,训练侧只剩四十例上下。用它做「CT 预训练 + MRI 微调」的对照实验是够的,用它得出「MRI 上某方法优于另一方法」的稳健结论是不够的。CHAOS 的 MRI 部分虽然也小,但它是配对设计,同一受试者既有 CT 又有 MRI,这是 AMOS 没有的。

第三条是把它当成「临床可用性的证据」。AMOS 的样本来自两家中国大陆医院,年龄分布偏向中老年,儿科几乎空白;它也没有配套的放射报告、随访结果或治疗计划。它证明的是算法在跨域条件下的相对排序,不是算法在临床工作流里的绝对可用性。把榜单分数当作品质背书,是这类基准最常见的越界用法。

1.3 它能给到的与给不到的

你的需求 它给的 够不够
一份含 CT 与 MRI 的腹部多器官标注 600 例,CT 与 MRI 同一套 15 类规范 够,但 MRI 侧偏少
跨厂商设备的泛化评测 4 家厂商、9 个机架型号混在同一划分里 够,能观察到设备差异
跨中心的泛化评测 官方元数据只有 2 个中心取值 勉强,中心数偏少
一个可以离线复现的榜单 测试集标注不公开 不够,只能在线提交
半监督或自监督的预训练语料 官方提供无标注扩展集 够,但需另下 Zenodo 记录
BTCV 的直接替代品 类别定义不同 不够,必须重映射
儿科或青少年腹部影像 最小年龄 14 岁 不够,基本空白
病灶、肿瘤或血管狭窄标注 只有器官掩膜,无病灶类 不够,另找 KiTS、LiTS
与放射报告对齐的文本 AMOS22 无报告;报告在 AMOS-MM 里 不够,需换子集
临床工作流的端到端验证 无随访、无治疗计划、无外部临床终点 不够,不能用

1.4 你的处境与它能帮到的事

你的处境 它能帮你什么 下一步该做什么
模型在自己医院的 CT 上很好,换到合作医院就掉点 提供四厂商、两中心、多期相的混合样本,把域差异变成可量化的指标 先按厂商分组做分层评测,再看掉点集中在哪几个器官
要做 CT 与 MRI 共用一个网络的产品线 一套类别规范同时覆盖两种模态,可直接做联合训练 把 MRI 侧当验证集而非训练主力,训练集权重向 CT 倾斜
手上只有几十例标注,想扩到能训的量 无标注扩展集可做预训练或伪标签 先在半监督设定下复现官方基线,再决定是否投入标注
论文需要一张和主流方法对比的表 官方榜单与公开基线可以让对比落在同一口径上 提交前核对你用的划分与官方三份拆分是否一致
从 BTCV 迁移过来,想继续用老代码 类别可以折叠对齐,接口不用大改 先写一张两套标签的对照表,再改 DataLoader 的映射
要给放射科做辅助勾画工具 可作为通用先验,覆盖 15 类器官 用本院数据微调,别直接拿榜单分数对外
想做儿科腹部分割 几乎帮不上,最小年龄 14 岁 另找儿科专项数据,AMOS 只能当成人先验

1.5 一句话判断

如果你的问题里有「跨模态」「跨厂商」「跨院」这三个词中的两个,AMOS 是当前最省事的公开答案卷;如果三个词都没有,它只会给你多一份要重映射的标签。

1.6 不适合谁:四条边界

第一条,不适合只做肝脏或只做肾脏单器官任务的团队。AMOS 的十五类里有十四个类对你是噪声,而它的总体量又不足以摊薄这些噪声。单器官任务用 LiTS、KiTS 这类专门数据集,标注颗粒度和病例数都更合适。

第二条,不适合需要病灶级标注的研究。AMOS 只有器官掩膜,肿瘤、囊肿、结石、血管狭窄一概没有。做检出、分级、疗效评估的团队在这里拿不到监督信号。

第三条,不适合把结果直接写进注册申报材料的团队。AMOS 是研究型基准,样本量、中心数、人群覆盖都不足以支撑临床有效性的论证。它可以出现在方法学章节里,不能出现在性能验证章节里。

第四条,不适合需要离线复现榜单的评审流程。测试集标注不公开,你只能在官方服务器上提交拿分。如果你的验收要求是「第三方拿着数据独立跑出同一个数」,AMOS 的测试集满足不了,只能用训练集与验证集自己切一份内部测试。

§2 数据构成与规格

2.1 两个子集:AMOS22 与 AMOS-MM

官方新主页把 AMOS 拆成了两个平行的子集,这是很多人第一次接触时容易混淆的地方。

AMOS22 是分割子集,六百例带标注扫描,十五个器官类别,用于语义分割。这也是绝大多数论文里说的「AMOS」。它的数据以 amos22.zip 的形式放在 Zenodo 记录 7262581 上,压缩包约二十四吉字节,另附一个病例级元数据 CSV。

AMOS-MM 是多模态理解子集,官方称含两千例以上腹部 CT 及其放射报告(Findings 与 Impressions 两段式),覆盖胸、腹、盆三个区域,另有一万九千余条视觉问答对,分属六个临床范畴。它对应 MICCAI 2024 的报告生成与视觉问答两个新任务,与分割子集是两批数据。

这里要提醒一点:AMOS22 本身没有放射报告,AMOS-MM 本身也不是为了分割而标注的。想做「分割 + 报告」的联合建模,得先把两个子集的病例是否重叠搞清楚,而官方页面并没有给出这层对应关系。稳妥做法是把它们当成两个独立数据集分别引用。

2.2 字段与记录的完整字典

带标注部分的元数据是一个六百行的 CSV,文件名是 labeled_data_meta_0000_0599.csv。它的字段不多,但每一个都对使用方式有影响。

字段名 类型 取值示例 对使用的意义
amos_id 整数 450、235、601 全表主键,同时决定所属拆分与模态
Patient’s Birth Date 字符串(YYYYMMDD) 19800509 可推导年龄,也提示原始 DICOM 字段未被彻底清除
Patient’s Sex 字符串 M、F 决定第 15 类的语义(前列腺或子宫)
Patient’s Age 字符串(NNNY) 039Y、067Y 有一条为空,做年龄分层时要处理
Manufacturer’s Model Name 字符串 Optima CT540、SOMATOM Force 机架型号,是设备差异的最小粒度
Manufacturer 字符串 GE MEDICAL SYSTEMS、SIEMENS 厂商,四家 + 一个异常写法
Acquisition Date 字符串(YYYYMMDD) 20200402 集中在 2020 与 2021 两年
Site 字符串 people、center 采集中心,只有两个取值

字段本身的信息量不大,真正有意思的是它们之间的耦合关系,而这层关系官方页面没有明说,需要从编号段推断。

2.3 一条记录的完整解剖

下面是一条 CT 病例在元数据里的样子。字段名含空格和单引号,读的时候要小心。

amos_id                    235
Patient's Birth Date       19530411
Patient's Sex              M
Patient's Age              067Y
Manufacturer's Model Name  SOMATOM Force
Manufacturer               SIEMENS
Acquisition Date           20200411
Site                       people

对应的磁盘上会有两个文件:imagesTr/amos_0235.nii.gz 和 labelsTr/amos_0235.nii.gz。前者的体素值是亨斯菲尔德单位(CT)或原始信号强度(MRI),后者是零到十五的整数标签,零为背景。

判断一例属于 CT 还是 MRI,最省事的办法是看 amos_id 的编号段:一到五百为 CT,五百零一到五百九十九为 MRI。这个规律在官方文档里没有作为约定写出来,但它与 Zenodo 说明里「五百 CT + 一百 MRI」的总量一致,也与元数据中厂商与型号的分布吻合——MRI 侧几乎全是 Siemens 的 Prisma 与 GE 的 SIGNA,CT 侧则四家厂商都有。

下面这段代码把元数据读进来,补上模态与拆分的推断列。它只依赖标准库和 pandas,能直接在拿到数据后跑。

#-- 读取官方病例元数据,补出模态列与拆分列
import pandas as pd

META = "labeled_data_meta_0000_0599.csv"
df = pd.read_csv(META, dtype=str)
df.columns = ["amos_id", "birth", "sex", "age", "model", "vendor", "acq_date", "site"]
df["amos_id"] = df["amos_id"].astype(int)

#-- 编号段决定模态:1-500 为 CT,501-600 为 MRI
df["modality"] = df["amos_id"].map(lambda i: "CT" if i <= 500 else "MRI")

#-- 年龄字段是 NNNY 形式,去掉尾字母后转整数
df["age_num"] = pd.to_numeric(df["age"].str.rstrip("Y"), errors="coerce")

#-- 厂商写法有一处异常(Philips Medical Systems),归并到 Philips
df["vendor"] = df["vendor"].replace({"Philips Medical Systems": "Philips"})

print(df["modality"].value_counts())
print(df.groupby(["modality", "vendor"]).size())
print(df["age_num"].describe())

跑完会看到 CT 与 MRI 的数量比接近五比一,厂商分布是 Siemens、Philips、GE、Toshiba 各占一档。这个比例很关键:它说明「跨厂商」在 CT 侧是真正平衡的,而在 MRI 侧其实是 Siemens 独大,一百例里有六十四例出自同一家厂商的同一型号。

2.4 十五个器官类别的定义表

AMOS 的类别表是它最容易出错的地方,也是与 BTCV 对齐时最费劲的地方。官方给出的十五类是:脾、右肾、左肾、胆囊、食管、肝、胃、主动脉、下腔静脉、胰腺、右肾上腺、左肾上腺、十二指肠、膀胱、前列腺/子宫。

下表把这十五类与 BTCV 的十三类摆在一起,标出合并、细分与独有这三种关系。

官方类别 常见标签值 BTCV 对应 关系 迁移时的注意点
脾 1 脾 一一对应 无
右肾 2 右肾 一一对应 无
左肾 3 左肾 一一对应 无
胆囊 4 胆囊 一一对应 小器官,边界不稳
食管 5 食管 一一对应 胸腔段常被切掉
肝 6 肝 一一对应 无
胃 7 胃 一一对应 与十二指肠贴合处易混
主动脉 8 主动脉 一一对应 无
下腔静脉 9 下腔静脉 一一对应 与肝内段边界易混
胰腺 10 胰腺 一一对应 最薄,Dice 最低的一类
右肾上腺 11 右肾上腺 一一对应 体积最小的一类
左肾上腺 12 左肾上腺 一一对应 体积最小的一类
十二指肠 13 十二指肠 一一对应 与胃、空肠交界处定义不同
膀胱 14 无 AMOS 独有 BTCV 无此类,迁移时整类丢弃
前列腺/子宫 15 无 AMOS 独有且按性别切换 同一标签值在不同受试者上指不同器官

看完这张表会发现一件事:两套定义的「一一对应」有十三个,看起来几乎重合,真正麻烦的是最后两行。BTCV 的十三类里没有膀胱和前列腺/子宫,而 AMOS 用同一个标签值十五来表示两个器官,具体是哪一个取决于受试者性别。这意味着如果你写了一个按标签值取器官名的函数,遇到第十五类必须先查性别字段,否则会把女性的子宫报成前列腺。

还有一层不那么显眼:十三个一一对应的类别,名字相同不等于边界定义相同。尤其是十二指肠与胃的交界、食管的胸腔段与腹腔段分界,不同标注团队的规范会有几厘米的出入。这种出入在单一数据集内部不显眼,一旦跨数据集评测就会变成系统性偏差。

2.5 官方三份划分与样本比例的分布

官方在 AMOS22 挑战赛任务里给出的划分是训练两百例 CT 加四十例 MRI、验证一百例 CT 加二十例 MRI、测试一百例 CT 加四十例 MRI。三份相加正好是六百例,CT 五百、MRI 一百。

拆分 CT MRI 合计 CT 占比 MRI 占比
训练 200 40 240 83.3% 16.7%
验证 100 20 120 83.3% 16.7%
测试 100 40 140 71.4% 28.6%
合计 500 100 600 83.3% 16.7%

这张表里最值得注意的不是总量,而是测试集的 MRI 占比被刻意抬到了近三成,比训练侧高出一截。这是设计者的用心:如果按总体比例随机切,测试集里 MRI 只有十七例左右,跨模态指标的方差会大到没有意义。抬到四十例之后,MRI 侧的评测至少在数量上站得住。

但代价也很清楚:训练侧的 MRI 只有四十例。任何想在 MRI 上做细粒度结论的人,都会在训练阶段先撞上样本量这堵墙。

2.6 与同类资源的字段差异

资源 样本量 模态 类别数 中心数 许可 与本集的差异
AMOS 600 CT + MRI 15 2 CC BY 4.0 —
BTCV 50(30 训 + 20 测) CT 13 多源聚合 申请制 无 MRI,类别少两类
CHAOS 约 40 例配对 CT + MRI 4 1 申请制 类别极少,但配对设计
TotalSegmentator 一千二百余例 CT 一百余类 1–2 CC BY 4.0 类别极多,无 MRI
FLARE 2022 两千余例 CT CT(部分 MRI 隐藏集) 多器官 多中心 申请制 规模大,划分更复杂
KiTS23 近六百例 CT 肾 + 肿瘤 多中心 CC BY-NC-SA 有病灶,类别少

从这张表能看出 AMOS 的位置:它不是任何一列的冠军,规模不如 FLARE 与 TotalSegmentator,类别数不如 TotalSegmentator,配对设计不如 CHAOS,病灶标注不如 KiTS。它唯一独占的格子是「类别数适中 + CT 与 MRI 都有 + 厂商平衡 + 许可最宽松」这个组合。

§3 它的身份:一份为「迁移不崩」而设计的答案卷

3.1 名字里的 versatile 是设计目标,不是形容词

论文标题里的 versatile 常被译成「通用」,容易让人以为它是什么都能干。回到摘要看,这个词修饰的是 segmentation,而支撑它的四个定语是 multi-center、multi-vendor、multi-modality、multi-phase。这四个词恰好是模块化程度最高的四个维度——换中心、换设备、换模态、换期相,每一个都能单独拆出来做对照实验。

这种设计选择带来一个直接后果:AMOS 不适合回答「哪个网络结构更好」这类问题。它的域间差异太大,结构带来的边际收益很容易被域偏移淹没。它适合回答的是「同一个结构,在域 A 训练、域 B 测试,掉多少」。这个问题的答案对部署比对发论文更有用。

3.2 十五类里有十四类是常量,一类是变量

在十五个类别中,前十四类在所有受试者身上语义固定,第十五类却随性别切换。这个设计在解剖学上是合理的——盆腔在男性与女性身上最主要的大器官确实不同——但在工程上制造了一个隐式依赖:标签的含义依赖于另一列的值。

这种依赖在单一数据集内部可以靠查表解决,一旦跨数据集就变成陷阱。BTCV 没有这一类,你从 AMOS 迁过去时要把第十五类整个丢掉;反过来从 BTCV 迁到 AMOS,你要自己决定第十五类怎么初始化,而任何自动化的标签对齐脚本都不会替你做出这个判断。

3.3 数据从哪儿来:两家医院,一段不长的采集窗口

元数据显示,六百例的采集日期集中在 2020 年与 2021 年两年,Site 字段只有 people 与 center 两个取值,CT 侧两家各占一半(二百五十与二百五十一),MRI 侧是五十九与四十。这说明数据来自两家医院的回顾性导出,而不是跨机构的前瞻性多中心采集。

这个事实不影响数据质量,但影响你怎么描述它。官方页面与论文摘要都用 multi-center 这个词,字面上没错——确实不止一家——但如果你在方法章节里写「来自多个医疗中心的大规模数据」,评审会追问到底是几个,答案是两个。诚实的写法是「两家三级医院的回顾性数据」。

3.4 标注是怎么做的:官方披露到哪一步

官方页面与论文摘要都只写到「体素级标注、十五个器官」这一层,没有公开标注人数、标注工具、复核流程、单例耗时这些细节。这一点与 AbdomenCT-1K 那类把标注流程写进论文的做法不同。

对使用者来说,这意味着标注质量的先验只能从数据本身反推:看边界是否平滑、看小器官是否有断裂、看相邻器官之间是否有重叠。这也是为什么很多后续论文在 AMOS 上报告胰腺与肾上腺的 Dice 明显低于肝脾——一部分是解剖难度,一部分可能是标注一致性。

3.5 它的版本与命名:三个入口,一份数据

初次接触时最容易迷路的是入口。目前至少有三个地方挂着 AMOS 的信息:旧的 grand-challenge 挑战赛页、新的 GitHub Pages 官网、以及 Zenodo 上的记录。

三者的分工是:旧挑战赛页保留了 2022 年的赛程、榜单与提交入口,是历史快照;新官网是当前的统一入口,把 AMOS22 与 AMOS-MM 并列;Zenodo 是实际的下载点。数据本身只有一份,amos22.zip,约二十四吉字节。

引用时要小心一个细节:旧挑战赛页给的是 arXiv 2206.08023 的引用格式,Zenodo 与新官网给的是 NeurIPS 2022 会议论文的格式,两者是同一份工作的两个版本。正式引用建议用 NeurIPS 版本,因为数据集与基准赛道的论文有独立的页码与 DOI 语境。

§4 它的质量:好在设计,弱在规模

4.1 三个维度是不是真的平衡了

「跨模态 + 跨厂商 + 跨人群」这个说法值得逐条核对,因为三者的平衡程度差别很大。

跨模态这一维,CT 与 MRI 的比例是五比一。这不是平衡,是「有覆盖但明显偏斜」。官方从未声称两者等量,但很多二手介绍会写「CT 与 MRI 并重」,这是错的。真实情况是 CT 是主体,MRI 是补充,用来让跨模态任务有数据可训。

跨厂商这一维,CT 侧确实接近均分:GE、Siemens、Philips、Toshiba 四家各占一百二十上下,没有一家超过三成。这是 AMOS 最扎实的一维。MRI 侧则不然,Siemens 一家占了六成以上,另有三家分剩下的四成。

跨人群这一维,性别比约一点六比一,年龄从十四到九十四,覆盖了成年到老年的主区间,但儿科与青少年几乎空白。地域上两家医院都在中国大陆,所谓「跨人群」在种族维度上并没有实现。

4.2 案例:把训练集当 BTCV 用的一次错误归因

这里讲一个具体的场景,它同时在 §5 的取数环节与 §7 的偏差分析里被引用。

某团队想验证一个改进的注意力模块在腹部多器官分割上的效果。他们的做法是:把 AMOS 的训练集(两百 CT + 四十 MRI)整体替换掉原来用的 BTCV 训练集,测试仍用 BTCV 的二十例,代码里只改了数据路径,没有改任何标签映射。

结果很漂亮——平均 Dice 从 0.86 掉到 0.79,他们据此得出「AMOS 训出来的模型泛化更差」的结论,并把这个结论写进了讨论。问题在于,这个 0.79 里至少有两部分不是模型造成的:第一,AMOS 的第十五类在 BTCV 上没有对应,模型被要求预测一个测试集里从不出现的类,这部分梯度是纯噪声;第二,两侧的标签值虽然编号相近,但 AMOS 的第十三类是十二指肠而 BTCV 的编号体系里没有这一项,逐类 Dice 的对照表根本对不上。

正确的做法是先写一张中间编码表,把 AMOS 的十五类折叠到与 BTCV 的十三类同名同义的一组整数上,再训练、再评测。这个改动只需要几十行代码,但它决定了结论到底是「模型不行」还是「标签没对齐」。

§4.2 的案例不是孤例。在公开的复现讨论里,「在 A 上训、在 B 上评得到负迁移」这类结论,有相当一部分来自标签语义的错位而不是模型能力。判断方法很简单:把逐类 Dice 打出来,如果掉点高度集中在少数几个类上,先怀疑映射;如果所有类均匀掉,才怀疑分布。

4.3 标注一致性的可见证据

虽然没有官方披露的标注流程,但从数据里能看到一些间接证据。

一是小器官的标注形态。肾上腺在 CT 上常常只有十几个切片、几百个体素,AMOS 里这一类是有标注的,而且在两家中心的样本上都存在。这说明标注团队对小结构做了逐层处理,不是粗放的包围盒。

二是第十五类的处理。如果标注团队对性别不做区分,就会出现男性样本里标了子宫、女性样本里标了前列腺的情况。从类别设计上看官方是意识到这个问题的,但具体的落实情况需要按性别抽样核对,这一步只能拿到数据后自己做。

三是边界处的处理。相邻器官(胃与十二指肠、肝与下腔静脉)在 AMOS 里是各自独立的标签值,不做多标签重叠。这意味着边界体素只能归给一个器官,交界处的归属由标注规范决定。跨数据集评测时,这类体素最容易成为分歧点。

4.4 官方的基线做到什么水平

论文摘要只写到「对若干当前最优方法做了基准评测」,没有给出具体分数。官方榜单在挑战赛页面上可以查,但榜单只反映 2022 年参赛队伍的成绩,且测试集标注不公开。

能确定的定性结论有两条。第一,跨模态任务的分数明显低于纯 CT 任务,这与 MRI 侧样本少、强度分布差异大一致。第二,小器官(胰腺、肾上腺、十二指肠、食管)的 Dice 显著低于大器官,这个规律在几乎所有腹部分割基准上都成立。

任何声称「AMOS 上某方法达到 0.9 以上」的说法,都要先问是哪一个任务、哪一份拆分、用没用测试时增强。不同口径下的数字不可比,这是这类基准的通病。

§5 怎么拿到、怎么接进去

5.1 下载路径:Zenodo 直链,不需要注册

带标注部分的官方下载点是 Zenodo 记录 7262581。该记录的元数据标为 open access,许可为 CC BY 4.0,文件列表里有两个条目:amos22.zip(约二十四吉字节)与 labeled_data_meta_0000_0599.csv。

需要说明一处口径差异:旧挑战赛页面在 2022 年 5 月的公告里写的是「注册后按指引下载」,而 Zenodo 上的记录从一开始就是开放许可。两个说法并不矛盾——注册是挑战赛的参赛流程,下载本身不需要。以 Zenodo 的实际状态为准即可。

无标注扩展集分三个记录:Part I 为 900 例 CT(记录 7262757),Part II 为 1100 例 CT(记录 7295661,官方标注「目前有一千例,将补足到一千一百」),Part III 为 1200 例 MRI(记录 7295816)。这三份的用途是半监督、自监督与域适应,不含标注。

5.2 目录结构与命名约定

解开 amos22.zip 之后是 nnU-Net 风格的目录。这种结构的好处是能直接被 nnU-Net 的 Dataset 类识别,坏处是它把原始信息的嵌套关系压平了。

amos22/
  imagesTr/        #-- 训练集图像,amos_0001.nii.gz 起
  labelsTr/        #-- 训练集掩膜,与图像同号
  imagesVa/        #-- 验证集图像
  labelsVa/        #-- 验证集掩膜
  imagesTs/        #-- 测试集图像,官方不提供对应掩膜
  dataset.json     #-- 类别名与通道数的配置

命名规则是 amos_编号 四位数补零。编号一到五百为 CT,五百零一到五百九十九为 MRI。这个编号段约定是理解整份数据的关键,因为目录里没有单独的模态子目录,模态信息只藏在文件名里。

5.3 用 nnU-Net 起一次基线

nnU-Net 是这类数据的标准起点,因为它的自动配置恰好能处理 AMOS 里体素间距不一的问题。下面是环境准备与训练的最小流程,路径按上面的目录结构写。

#-- 建环境并装 nnU-Net v2
python3.11 -m venv venv_amos
source venv_amos/bin/activate
pip install nnunetv2==2.4.2

#-- 三个环境变量是 nnU-Net 的硬性约定
export nnUNet_raw="$HOME/amos_raw"
export nnUNet_preprocessed="$HOME/amos_pre"
export nnUNet_results="$HOME/amos_res"

#-- 把解压好的目录放进 raw 下的标准命名
mkdir -p "$nnUNet_raw/Dataset900_AMOS/imagesTr"
mkdir -p "$nnUNet_raw/Dataset900_AMOS/labelsTr"
cp amos22/imagesTr/*.nii.gz "$nnUNet_raw/Dataset900_AMOS/imagesTr/"
cp amos22/labelsTr/*.nii.gz "$nnUNet_raw/Dataset900_AMOS/labelsTr/"

#-- 校验数据完整性(通道数、标签值、几何)
nnUNetv2_plan_and_preprocess -d 900 --verify_dataset_integrity

#-- 五折训练,选 2d 先看收敛
nnUNetv2_train 900 2d 0

这里要提醒两件事。第一,nnU-Net v2 要求图像文件名形如 amos_0001_0000.nii.gz,单个通道补四位零;直接复制原始命名会在完整性校验时报错。第二,dataset.json 里的类别数要改成十六(含背景),标签值保持零到十五不变。

5.4 做一次模态分层的评测

单看总体 Dice 会掩盖模态差异,下面这段代码按模态与厂商分组算指标,能直接看出掉点在哪一档。

#-- 按模态与厂商分层计算逐例 Dice
import numpy as np
import pandas as pd
import nibabel as nib
from pathlib import Path

PRED = Path("predictions")
GT = Path("amos22/labelsTs")

def dice(a, b):
    a = a.astype(bool)
    b = b.astype(bool)
    denom = a.sum() + b.sum()
    return 1.0 if denom == 0 else 2.0 * (a & b).sum() / denom

rows = []
for gt_path in sorted(GT.glob("amos_*.nii.gz")):
    case = gt_path.name.replace(".nii.gz", "")
    pred_path = PRED / gt_path.name
    if not pred_path.exists():
        continue
    gt = nib.load(str(gt_path)).get_fdata()
    pred = nib.load(str(pred_path)).get_fdata()
    rows.append({"case": case, "dice": dice(pred == gt, gt > 0)})

df = pd.DataFrame(rows)
df["amos_id"] = df["case"].str.replace("amos_", "").astype(int)
df["modality"] = df["amos_id"].map(lambda i: "CT" if i <= 500 else "MRI")
print(df.groupby("modality")["dice"].agg(["mean", "std", "count"]))

这段代码把每个病例当成一个样本算一个总体 Dice,够用来看趋势。要看逐器官的,需要把上式里的掩膜换成单类掩膜再循环一遍。

5.5 做 BTCV 与 AMOS 的类别对齐

这是把 AMOS 用进老管线时最必须做的一步。做法是定义一张中间编码表,两边都先映射到它,再比较。

#-- AMOS 15 类与 BTCV 13 类之间的唯一桥:中间编码
AMOS_TO_CANON = {
    1: "spleen", 2: "kidney_right", 3: "kidney_left",
    4: "gallbladder", 5: "esophagus", 6: "liver",
    7: "stomach", 8: "aorta", 9: "ivc",
    10: "pancreas", 11: "adrenal_right", 12: "adrenal_left",
    13: "duodenum", 14: "bladder", 15: "prostate_or_uterus",
}

BTCV_TO_CANON = {
    1: "spleen", 2: "kidney_right", 3: "kidney_left",
    4: "gallbladder", 5: "esophagus", 6: "liver",
    7: "stomach", 8: "aorta", 9: "ivc",
    10: "portal_vein_and_splenic_vein",
    11: "pancreas", 12: "adrenal_right", 13: "adrenal_left",
}

CANON_TO_ID = {name: i + 1 for i, name in enumerate(sorted(
    set(AMOS_TO_CANON.values()) & set(BTCV_TO_CANON.values())))}

def remap(vol, table):
    #-- 把原始标签体映射到中间整数编码,未列出的类一律归零
    import numpy as np
    out = np.zeros_like(vol, dtype=np.uint8)
    for src, name in table.items():
        if name in CANON_TO_ID:
            out[vol == src] = CANON_TO_ID[name]
    return out

跑完这段,两边的标签就落在同一套整数上了。注意 BTCV 的第十类是门静脉与脾静脉,AMOS 里没有这一类,所以它会被自动归零——这就是「对齐」的真实含义:不是让两边一样多,而是让两边相同的部分落在同一个编号上。

§5.5 的对齐表与 §4.2 的案例是同一件事的两面。案例里那个团队没写这张表,所以得到了错误的负迁移结论;这里写了这张表,同样的数据就能给出可解释的逐类对比。

5.6 用无标注扩展集做预训练

半监督是 AMOS 明确支持的使用方式,Zenodo 说明里就写了「提供无标注 CT 与 MRI 以支持半监督、无监督、域适应」。做法有两种。

一种是伪标签自训练:用在带标注部分训好的模型去推理无标注集,按置信度筛掉低分体素,把剩下的当作软标签再训一轮。这种做法的风险是错误会被放大,尤其是胰腺这类难器官。

另一种是自监督预训练:在无标注体上做重建或对比学习,得到一个初始化,再用六百例标注微调。这种做法的计算成本高,但对小样本场景更稳。

无论哪种,都要记住无标注集的标签是空的,不要在它的目录里误读 labels 文件——那些文件不存在,代码会直接抛异常。

§6 与库内条目的关系

6.1 关系图谱

AMOS 在这个库里的位置是「中量级、跨模态、许可最宽松」的那一格。它与几个近邻的关系值得说清楚。

与 BTCV 的关系最紧,也最容易误解。两者都是腹部 CT 多器官分割,都用了相似的大器官类别,但 BTCV 没有 MRI、没有膀胱与前列腺/子宫,类别数是十三而不是十五。把 AMOS 当成 BTCV 的超集是错的,正确说法是「有交集的另一套定义」。

与 CHAOS 的关系是互补。CHAOS 的样本很少,但它是配对设计,同一受试者既有 CT 又有 MRI,适合做严格意义上的跨模态对照。AMOS 的 CT 与 MRI 来自不同受试者,做的是「混合域训练」,不是「配对迁移」。想做配对实验,CHAOS 是唯一选择。

与 TotalSegmentator 的关系是粗细之别。后者覆盖一百多个结构,涵盖骨骼、肌肉、血管,适合做全身结构化报告;AMOS 只做十五个腹部器官,但在跨模态与跨厂商上做得更细。两者可以互补:用 TotalSegmentator 做初筛,用 AMOS 训的模型做腹部精修。

与 FLARE 的关系是规模与许可之别。FLARE 的 CT 量级是 AMOS 的四倍以上,但许可是申请制且有使用限制,AMOS 是即下即用的 CC BY 4.0。做商业原型时这个差别是决定性的。

与 KiTS 的关系是任务之别。KiTS 有肾脏肿瘤的分级标注,AMOS 只有器官掩膜。做肿瘤分割只能选前者。

6.2 检索路径

按需求找条目,可以走三条路。

第一条是从任务出发:腹部多器官分割 → AMOS、BTCV、TotalSegmentator、FLARE。四者按样本量与类别数排序,AMOS 在中间。

第二条是从模态出发:需要 CT 与 MRI 同框 → AMOS、CHAOS。前者样本多但不配对,后者配对但样本少。

第三条是从许可出发:要求可直接商用 → AMOS(CC BY 4.0)、TotalSegmentator(CC BY 4.0)。BTCV、CHAOS、FLARE 都需要申请,KiTS 是非商业许可。

§7 质量评估与局限性

7.0 阅读本节前的一个前置校正

在给 AMOS 打分之前,要先校正一个常见的判断框架:把「基准的分数高低」当成「基准的质量高低」。

这两件事没有必然联系。一个基准如果所有方法都能刷到 0.95,说明它太简单,区分度低;如果所有方法都停在 0.6,说明它可能标注有问题,也可能任务本身超出当前能力。AMOS 属于后者里的中间态:大器官分数高,小器官分数低,跨模态再低一档。这个梯度是设计出来的,不是缺陷。

另一个容易发生的误判是把「官方披露少」等同于「数据质量差」。AMOS 的论文与页面确实没有详细写标注流程,但这与标注质量是两件事。评估时应该分开记:文档完备性是一个维度,标注可用性是另一个维度,两者不能互相替代。

下面五个维度的打分,采取的是「相对同类腹部分割资源」的口径,不是绝对分。

7.1 五维评分

维度 分数(满分 5) 依据
规模 3.0 六百例,够做基线不够做预训练;无标注扩展集补了一部分
多样性 4.0 四厂商、两模态、多期相;中心数与种族覆盖偏弱
标注质量 3.5 十五类体素级齐全,但流程未公开,一致性只能间接推断
可接入性 4.5 Zenodo 直链、NIfTI、nnU-Net 目录结构,接进门槛最低
许可清晰度 5.0 CC BY 4.0 明文,可商用,无需注册
文档完备性 2.5 类别表与划分清楚,标注流程、基线分数披露不足

六个维度加起来是二十二点五分(满分三十)。这个分数的结构很有意思:接入与许可接近满分,规模与文档拖了后腿。这正好解释了它在社区里的使用模式——大量论文拿它当「跨模态验证集」,少量论文拿它当「主力训练集」。

7.2 它擅长与不擅长的问题

擅长的问题有三类。跨厂商的设备泛化:四家厂商均分,做分层评测时每档都有一百例以上。CT 与 MRI 的联合训练:一套类别规范,不用维护两套标签。方法的域适应对比:官方三份拆分本身就带了域差异。

不擅长的问题也有三类。规模驱动的结论:六百例训不出一个能单独撑起产品的模型。MRI 单模态的精细结论:训练侧只有四十例。病灶相关的一切:没有病灶标注。

7.3 已知的、可枚举的偏差

第一条是中心偏差。官方元数据的 Site 字段只有两个取值,CT 侧两家各占一半。所谓「多中心」在数量上是二,这意味着任何「跨中心泛化」的结论实际上只跨了两个点,方差很大。

第二条是人群偏差。年龄从十四到九十四,但没有一例十四岁以下的受试者;性别比约一点六比一,男性偏多。儿科腹部影像与孕产妇影像基本缺席。种族维度上,两家医院都在中国大陆,没有跨种族覆盖。

第三条是厂商偏差。CT 侧四家均分是优点,但型号层面并不均分:Aquilion ONE 与 SOMATOM Force 两个型号合起来占了四成以上,其余七个型号分剩下的六成。做型号级泛化分析时,样本会迅速变稀。

第四条是模态偏差。MRI 一百例里 Siemens 占六十四例,GE 与 Philips 分剩下的。也就是说 AMOS 的「跨模态」在 MRI 侧其实只跨了一个厂商的一种设备。

第五条是类别偏差。第十五类按性别切换,这在工程上制造了标签值到器官名的非单射映射。任何把标签值直接当器官名用的代码,都会在这一类上出错。

§4.2 的案例给出的判断方法在这里同样适用:先看掉点形状,再决定是改映射还是改模型。

第六条是期相偏差。官方说多期相,但元数据里没有期相字段,期相信息只能从图像强度分布间接推断。这意味着想做「按期相分层」的分析,得先自己标注一遍期相——这是一笔没人愿意付的成本。

7.4 外部验证矩阵

一个数据集的可信度,很大程度上取决于它被多少独立工作验证过。下表列出四类外部证据及其强度。

证据类型 表现 强度 说明
论文采用 跨模态分割、域适应、半监督方向的论文常把 AMOS 列为评测集 强 说明它被当作可信的对照口径
官方榜单 2022 年挑战赛有提交与排名 中 榜单只反映当年参赛,且测试集不公开
第三方复现 多个开源仓库提供 AMOS 上的 nnU-Net 基线 中 复现分数区间大致收敛
独立基准对比 有工作把 AMOS 与 BTCV、TotalSegmentator 合并做统一评测 中 合并过程本身暴露了类别不对齐的问题
临床验证 未见基于 AMOS 的前瞻性临床研究 弱 说明它定位是研究基准

这张表最重要的一行是最后一行。AMOS 被用作方法对比的依据,但没有被用作临床有效性的依据,这与它的设计目标一致。把它写进研究章节是合适的,写进临床验证章节是不合适的。

7.5 DAIMS 六维评估表

上面五维之外,再按 DAIMS 框架逐项过一遍。这个框架问的是「数据能不能被下游无摩擦地接住」,与上面的质量维度互补:质量问的是数据好不好,DAIMS 问的是好不好用。

DAIMS 维度 本集表现 需人工补齐的动作
可发现 新官网、旧挑战赛页、Zenodo 三处都有入口,搜索引擎能直接命中 无
可获取 Zenodo 开放许可直链,无需注册,压缩包一次拿全 无
可理解 类别清单与划分清楚,但标注流程与期相信息缺失 自己补一份期相推断表
可交互 NIfTI 加 CSV,通用工具直接读,无私有格式 无
可复用 CC BY 4.0 允许改写与商用,只要求署名与标明改动 记录改写动作
可持续 Zenodo 由 CERN 托管,长期可用;但官方页面更新分散在三个域名 保存快照与下载日期

六项里有四项不需要额外动作,这在公开医学影像资源里属于偏高的一档。扣分集中在「可理解」与「可持续」:前者是因为文档只写到类别与规模,后者是因为入口分散在新旧两套站点上,五年后旧域名是否还在没有保证。

7.6 它为何能持续:因为它守住了「可免费直接下载的跨模态基准」这个空位

一个数据集能活多久,不取决于它发布时的分数多高,而取决于它是否占住了一个别人不愿占或占不了的位置。

AMOS 守住的位置很具体:在腹部多器官分割这个方向里,同时具备「CT 与 MRI 都有」「类别数适中,能覆盖主要器官」「许可允许商用」「不需要申请、不需要签协议、不需要等审批」这四个条件的公开资源,目前只有它。BTCV 要申请,CHAOS 要申请,FLARE 要签协议,KiTS 是非商业许可,TotalSegmentator 没有 MRI。这个组合不是偶然形成的,而是 2022 年那个时间点上,几家机构各自的选择留下的空隙。

它的可持续性还来自另一层:无标注扩展集。带标注部分只有六百例,无法支撑从零预训练,但官方同时放出了 CT 与 MRI 各千例量级的无标注数据。这让它可以被当作「预训练 + 微调」两段式流程的中间环节,而中间环节的生命周期通常比终点环节长。

风险也有。六百例的规模在 2022 年算中上,放到今天已经偏小;新出现的多中心聚合集在规模上会持续超过它;AMOS-MM 那条线(报告生成与视觉问答)正在吸走一部分注意力。但只要有团队需要一个「下载即用、许可干净、带 MRI」的对照集,它就会继续被引用。

§8 生态位与历史

8.1 从 2020 年的空隙到 2022 年的答案

2020 年前后,腹部多器官分割的公开资源形成了三个孤岛。BTCV 提供了标准的 CT 多器官标注,但只覆盖一个模态;CHAOS 提供了 CT 与 MRI 的配对,但只有四个器官;MSD 系列把任务拆成单器官,肝脏、脾脏、胰腺各自成集。这三类资源各自都很好用,但合起来仍然回答不了一个问题:模型在模态与设备同时变化时表现如何。

AMOS 的立项动机就写在这条缝里。论文摘要的第一句就说,缺乏来自多样临床场景的大规模基准,妨碍了对模型能力的全面评估。这句话里的关键词是 diverse,不是 large。

8.2 2022 年:挑战赛、论文、Zenodo 三线并行

2022 年是 AMOS 集中落地的一年。四月挑战赛页面开放,五月放出训练与验证集,七月截止提交,八月公布排名。同年六月 arXiv 挂出预印本,年末进入 NeurIPS 2022 的数据集与基准赛道,页码为 36722 至 36732。十月官方公告把训练集、验证集与无标注测试集整套放到 Zenodo。

这个节奏说明一件事:AMOS 从一开始就是按「基准赛」组织的,不是按「静态数据集」组织的。这也解释了为什么测试集标注始终不公开——它的评测模型是服务器端的,不是离线的。

8.3 2024 年之后:从分割走向理解

2024 年 6 月,官方在 MICCAI 上推出 AMOS-MM,带来报告生成与视觉问答两个新任务。2025 年 1 月,新官网把 AMOS22 与 AMOS-MM 并列。2025 年前后,AMOS-MM 的报告部分拆分被公布为训练一千二百八十七例、验证四百例、测试四百例 CT。

这条演进线的含义是:AMOS 正在从「分割基准」变成「腹部影像理解基准」的母体。分割子集成了基础设施,理解子集成了新的增长点。对使用者来说,这意味着引用时要写清是哪个子集、哪一年、哪个任务,否则会指错。

8.5 它在今天的生态位

用一句话概括:AMOS 是「跨模态对照集」这个位置上的默认选项,而不是「主力训练集」这个位置上的候选。

这两个位置的区别在实践里很明显。做主力训练集,需要几千例、多中心、类别齐全,TotalSegmentator 与 FLARE 更合适。做对照集,需要的是「域差异明显、许可干净、类别可控」,AMOS 恰好满足。

理解了这一点,很多使用上的困惑就消失了:为什么它只有六百例却常被引用?因为它被引用的是「对照」功能,不是「规模」。为什么很多论文只在验证阶段用它?因为验证阶段需要的是域差异,不是样本量。

§9 使用指引

9.1 三种角色的路径

算法研究者:从 Zenodo 拉 amos22.zip,先跑 nnU-Net 的 2d 配置建立基线,再做你关心的变量(网络结构、损失函数、域适应策略)。评测时务必按官方三份拆分,且把 CT 与 MRI 分开报,不要只报一个总数。

数据工程与标注管理者:重点看类别定义表与元数据字段。你的任务是判断这套标注规范能不能移植到本院。需要关注的三个点:第十五类的性别切换怎么处理、相邻器官的交界怎么定、小器官的标注颗粒度够不够。

临床 AI 产品团队:把它当成上线前的压力测试集,而不是训练集。做法是用本院数据训练,用 AMOS 做外部验证,看掉点集中在哪几个器官、哪一种设备。如果掉点集中,说明你的训练分布太窄;如果均匀掉,说明存在系统性差异,需要重新审视预处理。

9.2 一条最短的可用流程

从零到拿到第一个可比的分数,最短路径是下面这五步。每一步都有明确的产出物,出问题能定位到步。

#-- 第 1 步:下载并校验
wget -c "https://zenodo.org/records/7262581/files/amos22.zip"
wget -c "https://zenodo.org/api/records/7262581/files/labeled_data_meta_0000_0599.csv/content" -O meta.csv
unzip -q amos22.zip -d amos22
ls amos22/imagesTr | wc -l

#-- 第 2 步:重命名成 nnU-Net 单通道格式
python3.11 - <<'PY'
import re, pathlib, shutil
src = pathlib.Path("amos22/imagesTr")
dst = pathlib.Path("amos_raw/Dataset900_AMOS/imagesTr")
dst.mkdir(parents=True, exist_ok=True)
for p in src.glob("amos_*.nii.gz"):
    new = re.sub(r"amos_(\d+)\.nii\.gz", r"amos_\1_0000.nii.gz", p.name)
    shutil.copy(p, dst / new)
print(len(list(dst.glob("*.nii.gz"))))
PY

#-- 第 3 步:跑预处理与完整性校验
nnUNetv2_plan_and_preprocess -d 900 --verify_dataset_integrity

#-- 第 4 步:五折交叉训练(先跑第 0 折验证流程通不通)
nnUNetv2_train 900 3d_fullres 0

#-- 第 5 步:在验证集上推理并算指标
nnUNetv2_predict -i "$nnUNet_raw/Dataset900_AMOS/imagesVa" -o preds_va -d 900 -c 3d_fullres -f 0

这五步跑通之后,你手上就有一个可以在官方划分上复现的基线。接下来无论做什么改动,都有对照。

9.3 引用方式

正式引用用 NeurIPS 版本,因为数据集与基准赛道的论文有独立页码:

Ji, Y., Bai, H., Ge, C., Yang, J., Zhu, Y., Zhang, R., Li, Z., Zhang, L.,
Ma, W., Wan, X., Luo, P. (2022). AMOS: A Large-Scale Abdominal Multi-Organ
Benchmark for Versatile Medical Image Segmentation. Advances in Neural
Information Processing Systems, 35, 36722-36732.

如果只引数据集本体,用 Zenodo 的 DOI:10.5281/zenodo.7262581。如果用了无标注扩展集,要额外引对应的三个记录。

引用时容易漏掉的一句是许可。CC BY 4.0 要求署名并标明是否做了改动。如果你对标签做了重映射,写一句「labels remapped to a canonical scheme」是必要的,不是可选的。

§10 AI 使用声明

项目 声明
内容生成方式 本篇由 AI 辅助起草,结构与人名、URL、数字经人工核对官方来源
数字来源 官方 GitHub Pages 页面、Zenodo 记录元数据、arXiv 2206.08023 摘要
未核实项 标注人数与标注流程、官方基线具体分数、期相字段缺失的原因
数据处理 仅读取官方公开的病例元数据 CSV 做字段级核对,未下载完整影像包
判断性内容 五维评分、边界判断、误读清单中的「实际」列属编辑判断,非官方结论
时效性 核对日期 2026-10-26;AMOS-MM 的拆分与许可可能随官网更新
责任边界 本篇不构成临床使用建议,任何临床决策须经独立验证
纠错渠道 发现数字或表述错误,请通过千方医数集页面反馈

常见误读(避坑清单)

常见说法 实际 证据
AMOS 就是更大的 BTCV 类别数不同(十五对十三),且有 MRI;BTCV 无膀胱与前列腺/子宫两类 官方 15 类清单与 BTCV 13 类清单逐项比对
AMOS 的 CT 与 MRI 是同一批病人的配对 CT 与 MRI 来自不同受试者,编号段一到五百与五百零一起分 元数据每行只有一个 amos_id,无配对字段
六百例来自很多家医院 元数据 Site 字段只有 people 与 center 两个取值 病例元数据 CSV 的 Site 列计数
CT 与 MRI 各占一半 CT 五百例、MRI 一百例,比例为五比一 Zenodo 记录说明与元数据编号段
四家厂商的数据量大致相等 CT 侧接近均分,MRI 侧 Siemens 独占六成以上 元数据按模态分组统计厂商
测试集可以用来做论文报告 测试集图像公开、标注不公开,只能提交拿分 官方三份划分说明与提交入口
第十五类是前列腺 第十五类在男性为前列腺、女性为子宫,同一标签值两种语义 官方类别清单写法「前列腺/子宫」
下载需要注册账号 Zenodo 记录为 open access,直链可取 Zenodo 记录 7262581 元数据
AMOS 有病灶或肿瘤标注 只有十五类器官掩膜,无病灶类 官方类别清单
MRI 侧的结论和 CT 一样稳 训练侧 MRI 仅四十例,细分指标置信区间很宽 官方划分表

FAQ

Q1:AMOS 到底该念成「阿莫斯」还是逐字母拼?
两种读法在中文社区都有人用,官方没有规定。写论文时统一一种即可,首次出现给出全称。

Q2:六百例够训一个能用的模型吗?
nnU-Net 这类自配置方法在两百例训练数据上就能出可用的基线,六百例对它是够的。但要训一个大模型从零开始,肯定不够,得靠无标注扩展集或外部预训练。

Q3:为什么 MRI 只有一百例?
MRI 的采集与标注成本都高于 CT,且腹部 MRI 的运动伪影多、配准难,标注一致性问题更严重。官方选择「有覆盖但不多」而不是「勉强凑量」,这是权衡后的结果。

Q4:能在 AMOS 上做半监督吗?
可以,而且这是官方明确支持的使用方式。Zenodo 说明里列了三个无标注记录,覆盖 CT 与 MRI,专为半监督、自监督与域适应准备。

Q5:AMOS 与 AMOS-MM 是同一批数据吗?
不是。AMOS22 是六百例带分割标注的扫描,AMOS-MM 是两千余例带报告的 CT 加一万九千余条问答。两者的病例对应关系官方未公开,建议分别引用。

Q6:验证集和测试集的差别在哪?
验证集公开标注,可以本地评测;测试集只公开图像,评测在官方服务器端。挑战赛期间两者是不同的榜单,研究使用时多数人以验证集为准。

Q7:可以用 AMOS 训练后直接提交到 BTCV 榜单吗?
技术上可以,但必须先做类别重映射,且要在论文里说明重叠风险。BTCV 的评测方通常会检查训练数据来源,跨数据集训练需要主动披露。

Q8:AMOS 的标注是谁做的?
官方页面与论文摘要都没有披露标注团队规模、工具与复核流程。只能确认是体素级标注、十五类齐全。这一项属未核实。

Q9:为什么没有期相字段?
元数据只有采集日期、厂商、型号、中心,没有期相。想做期相分层,得从图像本身推断(比如看主动脉与肝实质的强化关系)。

Q10:AMOS 适合做基础模型的预训练吗?
带标注的六百例不够。无标注扩展集可以,但它的规模也就是千例量级,与动辄百万张切片的通用影像预训练相比仍小。

Q11:许可允许商用,是否意味着可以直接用在产品里?
许可是必要条件不是充分条件。CC BY 4.0 允许商业使用,但产品的合规还涉及医疗器械注册、数据来源合法性与伦理审查,这些与数据集许可无关。

Q12:如果官方数据更新了,已有的实验要不要重跑?
要。数据集一旦改版,哪怕只是类别定义微调,历史分数就不可比。建议在论文里写明使用的 Zenodo 记录号与下载日期。

术语表

术语 含义
AMOS A Large-Scale Abdominal Multi-Organ Benchmark,腹部多器官分割基准
AMOS22 AMOS 的分割子集,六百例带标注扫描
AMOS-MM AMOS 的多模态理解子集,含报告与视觉问答
体素级标注 逐个体素给出类别,而非包围盒或轮廓线
跨模态 同一模型同时处理 CT 与 MRI 两种成像方式
跨厂商 训练与测试样本来自不同厂商的扫描仪
域偏移 训练分布与测试分布不一致导致的性能下降
Dice 系数 预测掩膜与真值掩膜的重叠度,零到一
NSD Normalized Surface Distance,归一化表面距离,衡量边界误差
配对设计 同一受试者同时有 CT 与 MRI,可直接做模态迁移对照
类别重映射 把一套标签值翻译到另一套编码体系的动作
中间编码 两套标签体系共同映射到的第三套标准编码
半监督 少量标注加大量无标注的训练方式
自监督 不用人工标签,从数据本身构造训练信号
域适应 让在源域训练的模型适应目标域的方法族
nnU-Net 自配置的医学图像分割框架,自动决定预处理与网络结构
测试集盲评 测试集标注不公开,只能通过服务器提交获得分数
CC BY 4.0 知识共享署名许可,允许商用,要求署名并标明改动
Apache-2.0 宽松开源许可,允许商用,含专利授权条款
期相 CT 增强扫描的不同时相,如平扫、动脉期、门脉期
薄壁器官 胰腺、十二指肠、食管等壁薄或走向多变的器官
标签值 掩膜里的整数,代表所属类别
类别非单射 同一个标签值在不同条件下指不同器官的映射关系
回顾性导出 从已有临床影像归档中提取,而非专门采集
前瞻性采集 按研究设计新招募受试者的采集方式

附录 A:核心数字核对表

项 值 来源 来源层级
带标注总例数 600 官方页面、论文摘要、Zenodo 官方
CT 例数 500 官方页面、论文摘要 官方
MRI 例数 100 官方页面、论文摘要 官方
器官类别数 15 官方页面清单 官方
训练集 200 CT + 40 MRI 官方任务页 官方
验证集 100 CT + 20 MRI 官方任务页 官方
测试集 100 CT + 40 MRI 官方任务页 官方
采集中心数 2 元数据 Site 列 派生
厂商数 4(加一个异写) 元数据 Manufacturer 列 派生
机架型号数 9 元数据型号列 派生
年龄范围 14–94 岁 元数据年龄列 派生
性别比 男 369 / 女 231 元数据性别列 派生
采集年份 2020–2021 元数据采集日期列 派生
压缩包大小 约 24 GB Zenodo 文件清单 官方
数据许可 CC BY 4.0 Zenodo 元数据 官方
代码许可 Apache-2.0 官方 GitHub 仓库 官方
无标注 Part I 900 例 CT Zenodo 记录 7262757 官方
无标注 Part III 1200 例 MRI Zenodo 记录 7295816 官方
论文页码 36722–36732 Zenodo 引用、NeurIPS 论文集 官方

附录 B:数字的来源分层

第一层:官方页面直陈。 六百例总量、CT 五百与 MRI 一百、十五个类别、三份拆分的人数、Zenodo 记录号与许可、无标注扩展集的三个记录号与量级。这些数字在官方页面或 Zenodo 元数据里能直接读到。

第二层:由官方元数据派生。 中心数为二、厂商数为四、型号数为九、年龄范围十四到九十四、性别比、采集年份集中在两年、CT 与 MRI 的厂商分布不均。这些不是官方结论,而是从 CSV 字段聚合出来的,方法写在正文里,任何人可以复算。

第三层:未核实。 标注团队规模与流程、官方基线的具体分数、期相字段缺失的原因、AMOS22 与 AMOS-MM 的病例重叠情况、第十五类按性别的实际标注一致性。这些在官方材料里没有披露,本篇也不做推测性填补。

分层的意思是让读者知道每句话的分量。看到第一层可以放心引用,看到第二层要注明是自己算的,看到第三层要么绕开、要么自己去做验证。

附录 C:完整参考文献

  1. Ji Y, Bai H, Ge C, Yang J, Zhu Y, Zhang R, Li Z, Zhang L, Ma W, Wan X, Luo P. AMOS: A Large-Scale Abdominal Multi-Organ Benchmark for Versatile Medical Image Segmentation. Advances in Neural Information Processing Systems 35: 36722–36732, 2022.
  2. Ji Y, Bai H, Yang J, Ge C, Zhu Y, Zhang R, Li Z, Zhang L, Ma W, Wan X, et al. AMOS: A Large-Scale Abdominal Multi-Organ Benchmark for Versatile Medical Image Segmentation. arXiv:2206.08023, 2022.
  3. Zenodo record 7262581. labeled data (500CT + 100MRI) for AMOS22. DOI 10.5281/zenodo.7262581.
  4. Zenodo record 7155725. AMOS dataset mirror. DOI 10.5281/zenodo.7155725.
  5. Zenodo record 7262757. unlabeled data Part I (900CT).
  6. Zenodo record 7295661. unlabeled data Part II (1000CT at time of writing).
  7. Zenodo record 7295816. unlabeled data Part III (1200MRI).
  8. AMOS 官方主页. era-ai-biomed.github.io/amos.
  9. AMOS 2022 挑战赛页面. amos22.grand-challenge.org.
  10. Isensee F, Jaeger PF, Kohl SAA, Petersen J, Maier-Hein KH. nnU-Net: a self-configuring method for deep learning-based biomedical image segmentation. Nature Methods 18: 203–211, 2021.
  11. Landman BA, Xu Z, Igelsias JE, Styner M, Langerak TR, Klein A. MICCAI Multi-Atlas Labeling Beyond the Cranial Vault — Workshop and Challenge, 2015.
  12. Kavur AE, Gezer NS, Barış M, et al. CHAOS Challenge — Combined (CT-MR) Healthy Abdominal Organ Segmentation. Medical Image Analysis 69: 101950, 2021.

附录 D:按器官拆分的评测代码

nnU-Net 自带的 summary.json 只给总体指标,要做逐器官分析得自己积算。下面这段代码按十五类分别算 Dice,并把第十五类按性别拆开。

#-- 逐器官 Dice,第十五类按性别分开报
import json
import numpy as np
import pandas as pd
import nibabel as nib
from pathlib import Path

ORGAN = {
    1: "spleen", 2: "kidney_right", 3: "kidney_left", 4: "gallbladder",
    5: "esophagus", 6: "liver", 7: "stomach", 8: "aorta", 9: "ivc",
    10: "pancreas", 11: "adrenal_right", 12: "adrenal_left",
    13: "duodenum", 14: "bladder", 15: "prostate_or_uterus",
}

meta = pd.read_csv("meta.csv", dtype=str)
meta.columns = ["amos_id", "birth", "sex", "age", "model", "vendor", "date", "site"]
sex_of = dict(zip(meta["amos_id"].astype(int), meta["sex"]))

def dice(a, b):
    a = a.astype(bool)
    b = b.astype(bool)
    s = a.sum() + b.sum()
    return np.nan if s == 0 else 2.0 * (a & b).sum() / s

per_case = []
for gt_path in sorted(Path("amos22/labelsVa").glob("amos_*.nii.gz")):
    pred_path = Path("preds_va") / gt_path.name
    if not pred_path.exists():
        continue
    gid = int(gt_path.name.split("_")[1].split(".")[0])
    gt = nib.load(str(gt_path)).get_fdata().astype(np.uint8)
    pr = nib.load(str(pred_path)).get_fdata().astype(np.uint8)
    row = {"amos_id": gid, "sex": sex_of.get(gid, "")}
    for val, name in ORGAN.items():
        if val == 15:
            row["15_" + name] = dice(pr == 15, gt == 15)
        else:
            row[name] = dice(pr == val, gt == val)
    per_case.append(row)

df = pd.DataFrame(per_case)
summary = df.drop(columns=["amos_id", "sex"]).mean().sort_values()
print(summary.to_string())

输出会是按 Dice 升序排的器官列表,肾上腺与胰腺通常在最后。如果某个大器官也排到了末尾,先查对齐而不是查模型。

附录 E:如果只记五件事

第一,AMOS 是六百例,CT 五百例、MRI 一百例,比例是五比一,不是一比一。

第二,十五个类别与 BTCV 的十三类不对应,迁移前必须写中间编码表,否则逐类 Dice 的对照表根本对不上。

第三,它的价值在「跨厂商 + 跨模态的对照」,不在规模。§4.2 的案例已经说明,把它当主力训练集替换掉旧数据,先出问题的往往是标签而不是模型。做主力训练集它偏小,做外部验证集它是首选。

第四,许可干净是它最大的工程优点。CC BY 4.0、Zenodo 直链、不用注册,这三点组合在同类资源里很少见。

第五,测试集标注不公开。任何声称在 AMOS 测试集上得到分数的工作,你都无法离线复现,只能信。

编辑说明

本篇的核对日期为 2026-10-26。核对方式:读取官方新主页与旧挑战赛页的 HTML,读取 Zenodo 记录 7262581 与 7155725 的 API 元数据,读取 arXiv 2206.08023 的摘要页,并下载官方的病例元数据 CSV 做字段级聚合。未下载完整影像包,未做逐例标注检查。

元数据 CSV 的聚合结果只用于确认中心的分布、厂商的分布与年龄分布,未做任何分布形态的推断或统计检验。文中所有比例如果需要精确到小数点,请回查 CSV 自行复算。

若干数字存在口径差:带标注总量在元数据里是六百行,其中有一行编号重复(五百号出现两次),实际唯一编号为五百九十九个;官方页面始终称六百例。本篇按官方口径写六百例,同时记录这一差异,不判断哪一方更对。

文中提到的 AMOS-MM 拆分数字来自官方任务页,核实日期与 AMOS22 相同。该子集仍在更新,引用前请回查官网。

六维评分为编辑判断,评分依据写在 §7.1 的依据列,不代表任何官方评价。误读清单中的「实际」列同样属编辑判断,证据列给出可复核的方法。


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • medical-decathlon — 共享标签:医学影像 / CT / MRI / 医学图像分割
  • amos — 共享标签:医学影像 / CT / MRI / 医学图像分割
  • chaos — 共享标签:医学影像 / CT / MRI / 医学图像分割
  • medsam2-dataset — 共享标签:医学影像 / CT / MRI / 医学图像分割
  • qubiq — 共享标签:医学影像 / CT / MRI / 医学图像分割
  • biomedparse — 共享标签:医学影像 / CT / MRI / 医学图像分割
  • segthy — 共享标签:医学影像 / MRI / 医学图像分割
  • continuousregistration — 共享标签:医学影像 / CT / MRI
  • nih-pancreas-ct — 共享标签:医学影像 / CT / 医学图像分割
  • abdomenct-1k — 共享标签:医学影像 / CT / 医学图像分割

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集