MIDOG++ 病理多域有丝分裂象检测集 — 二物种七瘤种

503 个 ROI 图像、11 937 个有丝分裂象标注、七瘤种五扫描仪,配 SQLite 与 MS COCO 双标注库

来源 MIDOG Consortium(Technische Hochschule Ingolstadt 等) url: https://github.com/DeepMicroscopy/MIDOGpp发布时间: 2026-10-29最后更新: 2026-10-31 阅读 11
MIDOG++ 病理多域有丝分裂象检测集 — 二物种七瘤种

信息速览

数据集名称MIDOG++ 病理多域有丝分裂象检测集 — 二物种七瘤种
数据类型503 个 H&E ROI,11 937 个有丝分裂象标注,约 1.43 万硬负例,七瘤种五扫描仪,SQLite 与 COCO 双库,figshare 开放下载
规模503 例组织标本感兴趣区(人与犬两个物种)
接入方式MIDOG Consortium(Technische Hochschule Ingolstadt 等) url: https://github.com/DeepMicroscopy/MIDOGpp

MIDOG++ 是一套面向有丝分裂象检测的多域病理数据集,由 MIDOG 挑战赛组织团队在 2023 年以 Scientific Data 数据描述论文正式发布。它把 2021、2022 两届挑战赛的训练数据合并、补齐,再追加两个此前没有的瘤种,形成 503 个感兴趣区(region of interest,ROI)图像的单一发行版;图像约 65 GB,另配 SlideRunner SQLite 与 MS COCO JSON 两套完整标注库。

它的名字里有两个加号,容易被念成"MIDOG 的第二版"。事实上它既不是新一届挑战赛,也不是挑战赛数据的重新打包:挑战赛的隐藏测试集从未进入这个发行版,而它加入的人皮肤黑色素瘤与犬软组织肉瘤,正是挑战方刻意保留在测试侧、以免训练数据提前泄漏的两个域。理解这一层分工,是使用它的前提。

本文只收规模、结构与边界三类事实——多少例、怎么组织、到哪里为止;不展开任何分布类统计,也不复述论文的实验结论作为推荐依据。一屏速览见下表。

§1 它是什么:一个瘤种、扫描仪、实验室三重扩张的检测基准

§1.1 定义的边界

一句话版本:MIDOG++ 是在 2021 与 2022 两届 MIDOG 挑战训练数据基础上,重新标注、合并、扩瘤种后的公开训练侧数据集,用于训练和评测"换瘤种、换扫描仪、换实验室之后还能不能认出有丝分裂象"的检测模型。

这段话里每个限定词都有实际作用。"训练侧"意味着它不含隐藏测试集;"重新标注"意味着它不是照搬旧标签,而是用统一流水线重做了一遍;"扩瘤种"指的是人黑色素瘤与犬软组织肉瘤两个新域,这正是它从 354 例长到 503 例的原因。MITOS 与 TUPAC 这类更早的数据集也做有丝分裂,但只覆盖单瘤种或单扫描仪,MIDOG++ 的定位差异全部落在"多域"这两个字上。

它也不覆盖什么:不含全片图像(whole slide image,WSI),只有从片上裁下来的 2 mm² 方块;不含病例的年龄、性别、分级、生存结局;不含免疫组化切片;不含弱标注或伪标签。它是一套纯图像加几何标注的检测语料。

§1.2 为什么 ++ 要单独立条

库内已有一条 MIDOG 词条,记录挑战赛两届的完整档案:2021 届的 200 例人乳腺癌、四台扫描仪单变量设计,2022 届的 405 例、六个训练域加隐藏测试集、双赛道规则,以及两届的排行榜与组织网络。那条词条是"赛事档案"。

MIDOG++ 则是"数据发行版档案"。两者在三个地方口径不同,合并会互相污染:

其一,例数口径不同。挑战词条按届记账(200 / 405),发行版按融合后的最终集记账(553 个文件、503 例标本口径),既不是 405 的延续也不是 200 的倍数。

其二,瘤种数不同。2022 届训练侧是六个瘤种,人皮肤黑色素瘤域当时没有标签;发行版补上了这一域,又新增犬软组织肉瘤,于是变成七个瘤种、553 个文件。

其三,允许使用的方式不同。挑战数据受赛道规则约束(Track 1 禁用外部数据),发行版则是一个普通公开数据集,没有赛道区分。

本文只在需要对照的地方提挑战赛,结构、字段、复现细节全部以发行版为准。两篇的互链关系是"前身档案 ↔ 后继发行版",而不是"主条 ↔ 子节"。

§1.3 三个版本的分工表

版本 角色 例数口径 瘤种 标注状态 主要用途
MIDOG 2021 挑战赛第一届 200 例人乳腺癌 1 四台扫描仪,第四台无标签 单变量(扫描仪)域泛化
MIDOG 2022 挑战赛第二届 405 例 6(黑色素瘤无标签) 双格式,测试集隐藏 复合域偏移评测
MIDOG++ 发行版 503 例 / 553 个文件 7 全部有标签口径,双库 训练多域检测器、研究域泛化

三者的关系不是替换,而是分工:要复现某届成绩,用该届档案与规则;要训练一个尽可能稳的基线,用发行版。若把发行版当作"2022 届的训练集"来对齐成绩,就会因为多了黑色素瘤与软组织肉瘤两个域而失去可比性。

§1.4 版本年表

时间 事件 形态
2021-04 MIDOG 2021 训练数据上线 200 例,Zenodo
2022-04 MIDOG 2022 训练集上线 405 例,双格式
2023-06-30 MIDOG++ 首次公开 503 例,figshare
2023 Scientific Data 数据描述论文 论文与数据同期可引
2023 之后 仓库保持原样,标注库未再改版 COCO info.version 仍为 1.0

仓库里最后一次影响内容的提交把物种与瘤种字段补进了标注库,日期是 2023 年 6 月。此后没有新的版本号,也没有勘误发布。这一点对复现很重要:读取标注库时看到的字段,就是三年前定稿的那一份。

§1.5 使用处境与它能给出的东西

你的处境 它能帮你什么 给不了的
要训练一个跨瘤种的检测器 七个瘤种、五台扫描仪的统一标注 全片推理流水线
要研究域偏移的成因 瘤种、实验室、扫描仪三个维度同时变化 单变量拆解(那是 2021 届的活)
要做兽医病理的冷启动 四个犬瘤种,同一标注协议 猫科或更多畜种
要研究标注分歧 每条标注保留各评审人的类别序列 分歧的书面理由
要复现 2022 届成绩 训练侧材料齐备,但多了两个域 隐藏测试集与赛道规则
要做全片有丝分裂计数 无 ROI 之上的选片、计数聚合

这张表可以帮助快速判断是否适用,但它不是推荐清单:某些场景(例如需要多模态配对或生存结局)在任何配置下都不会被满足。

§2 它来自哪里:三次合并与一次补标

§2.1 组织与机构

数据集由 MIDOG 挑战赛的原班组织者出品,署名机构横跨两端:算法侧是英戈尔施塔特工业大学与埃尔朗根-纽伦堡大学的模式识别实验室,临床与兽医侧是乌得勒支大学医学中心、维也纳兽医大学病理研究所、柏林自由大学兽医病理研究所,另有埃因霍温理工大学与纽约施瓦茨曼动物医学中心参与。人类标本主要来自乌得勒支与埃尔朗根,犬类标本来自维也纳与柏林。

这种"算法团队 + 人类病理 + 兽医病理"的三方结构,直接决定了数据集的两个特征:一是标注协议照抄挑战赛的双人盲评加第三人仲裁,二是不设人兽分离的子任务,两种物种的标本混在同一套标注库里。

§2.2 三次合并的逻辑

发行版不是一次采集,而是三次拼装的结果:

第一次,2021 届的 200 例人乳腺癌被整体吸收。这批数据的特点是同一实验室、同一染色批次、四台扫描仪各 50 例,第四台(Leica GT450)当年没有标签,作为无监督域自适应的靶子提供给参赛者。

第二次,2022 届新增的 154 例(犬肺、犬淋巴、犬肥大细胞瘤、人神经内分泌肿瘤四个域,加上人黑色素瘤的 51 例无标签图像)被并入,其中人黑色素瘤域在发行版里补上了标签。

第三次,追加犬软组织肉瘤 100 例,这是全新的瘤种,之前的挑战赛里没有出现。

按论文的说法,原有训练数据是"354 张有标注图像、五种瘤种",扩展部分"另外 149 例、两个瘤种"。这两组数字内部有出入(149 例加进去后,瘤种从 5 变 7,但 2022 届训练侧的六个瘤种里本来就有黑色素瘤),说明 354 / 149 是按"有标注"口径切分,而按"发了图像"口径切分则是 405 / 148。两种切法都自洽,引用时必须说明用的是哪一种。

§2.3 采集与选区

每个病例先在 H&E 全片上由病理医师圈一块恰好 2 mm²、长宽比 4:3 的区域。选区标准是三条并列:位于肿瘤区、组织与扫描质量可用、且按现行分级指南看属于有丝分裂活跃的区域。2 mm² 大致相当于 400 倍镜下十个高倍视野的面积,这正是乳腺癌 Nottingham 分级与犬肥大细胞瘤分级里计数有丝分裂所要求的视野范围。

图像以 40 倍物镜扫描,分辨率按扫描仪不同为 0.25 微米每像素或 0.23 微米每像素。因为物理面积固定而分辨率浮动,同一批 ROI 的像素尺寸会分成几档,而不是一个统一值。

§2.4 标注流水线

标注分四步,每一步都在防同一类错误——漏检与确认偏倚:

第一步,一名病理医师在 SlideRunner 筛查模式里对每张图扫两遍,圈出有丝分裂象与"看起来像但不是"的结构(硬负例),标注形态是半径 50 像素的圆。

第二步,用第一步的标签训练一个 RetinaNet,做三折交叉验证,以很低的置信阈值在每张图上挖候选。低阈值是刻意为之:宁可在候选里塞进大量假阳性,也不要系统性地漏掉真阳性——因为人类复核时倾向于确认已有判断,只有把"可能漏掉的"推送到眼前才能对冲。

第三步,把所有候选裁成 128×128 像素的小块,去掉类别与来源信息、打乱命名,交给第二名病理医师盲评。

第四步,两人一致的直接入库,不一致的交给第三名病理医师终裁。论文给出的分歧率约为两成。

这套流水线的一个重要后果是:标注里含有"机器提出、专家确认"的成分。标注库的 Persons 表里,除三位专家之外还写着"RetinaNet"这个名字——机器候选被单独记录了评审人身份,而不是被抹平成人工标注。

§2.5 标注者与分歧记录

标注库对每一位评审人的判断都单独留痕,而不是只存一个共识结果。这意味着可以逐条查看"专家一怎么说、专家二怎么说、机器候选是谁提的",也可以在训练时把两人一致与不一致的样本分层处理。挑战赛档案里,这类分歧信息只以"保留分歧样本"的形式出现在 2021 届的 COCO 文件里;发行版把它做成了结构化的评审人字段。

§2.6 发布与长期维护

数据于 2023 年 6 月 30 日上线 figshare,图像分卷托管,标注库直接放在 GitHub 仓库的 databases 目录里。仓库同时附训练脚本、数据加载器与一个 Setup 笔记本,运行后者会把 65 GB 图像拉进本地 images 目录。模型权重没有随仓库发布——仓库说明写明这是空间限制所致。

维护状态可以这样描述:内容定稿于 2023 年,此后无改版;仓库与 figshare 记录仍在,但不再有版本演进。引用时应以论文与 figshare 集合 DOI 为准,而不是以仓库的提交历史为准。

§2.7 它为何能持续被使用

一个 2023 年定稿、不再更新的数据集仍被反复使用,原因不在运营,而在生态位:到目前为止,同时具备"多瘤种 × 多物种 × 多扫描仪"三重域偏移、且标注协议统一到可以跨域比较的有丝分裂数据集,仍只有这一个。后续的挑战赛(例如 2025 届的非典型有丝分裂分类赛道)直接在这个发行版的细胞级标注上继续细分,而不是另起炉灶重建语料。它之所以还能持续,靠的是被下游任务当成底盘复用,而不是靠自身运营。

§3 数据构成:七个瘤种与五台扫描仪

§3.1 图像层

每张图像是一个 TIFF 文件,命名从 001.tiff 连续到 553.tiff,从文件名即可判断所属瘤种。图像是单层、无金字塔的整块裁图,不是可以按倍率抽取的 WSI,因此读取时不需要任何专用切片库,常规图像库即可。

论文记载的导出格式是"无损压缩 TIFF",像素级不引入有损伪影;但扫描环节使用的是各厂商软件的默认设置,其中有损压缩在部分扫描仪上已经发生过。换句话说:发布环节干净,采集环节不干净。

§3.2 瘤种与例数

文件段 瘤种 物种 例数 主要来源实验室
001–200 乳腺癌 人 200 乌得勒支大学医学中心
201–244 肺癌 犬 44 维也纳兽医大学
245–299 淋巴肉瘤 犬 55 维也纳兽医大学
300–349 皮肤肥大细胞瘤 犬 50 柏林自由大学
350–404 神经内分泌肿瘤 人 55 埃尔朗根大学医院
405–504 (皮下)软组织肉瘤 犬 100 维也纳兽医大学
505–553 皮肤黑色素瘤 人 49 埃尔朗根大学医院

合计 553 个文件。官方通稿的"503 例"与这里的 553 个文件不是矛盾:论文把"例"定义为组织标本,把同一个标本可能对应多个文件的情况算作一例;而标注库按文件计数,一个文件一行。两个口径相差 50,恰好等于乳腺癌域里那批无标注文件的数量级,因此引用例数时应始终注明"503 例标本 / 553 个图像文件",不要混写成一个数字。

三种人类瘤种(乳腺、神经内分泌、黑色素瘤)与四种犬类瘤种(肺、淋巴、肥大细胞、软组织肉瘤)并置,是人类病理与兽医病理在同一份语料里共享标注协议的最直接体现。

§3.3 扫描仪与实验室

论文明确记载材料由"五台全片扫描仪之一"以 40 倍物镜数字化,分辨率 0.25 或 0.23 微米每像素。五台扫描仪到底对应哪些型号,论文正文没有逐台点名,只在表格中给出,并且表格信息与挑战赛档案里的扫描仪清单不完全重合。可以确定的是:乳腺癌域内部按扫描仪拆成三个子域(论文称域 1a 至 1c),肥大细胞瘤域按批次拆成两个子域(6a、6b),因此论文在做技术验证时使用的是"十个域"而不是"七个瘤种"。

这一区分对实验设计有直接影响:如果用七个瘤种做留一域,乳腺癌内部的扫描仪差异会被完全掩盖;如果按十个域做,扫描仪差异就重新暴露出来。论文两种都做了,单域训练与留一域训练分别按七瘤种与十域展开。

§3.4 像素尺寸的四档

标注库的 images 记录逐条给出宽高,实际只有四档主流尺寸:

像素尺寸 对应文件 与分辨率的对应
7215 × 5412 人乳腺、人神经内分泌、人黑色素瘤 0.23 微米每像素档
6577 × 4933 犬肺、犬淋巴、犬软组织肉瘤 0.25 微米每像素档
6447 × 4835 犬肥大细胞瘤 另一批次
6463 × 4837 个别乳腺癌文件 扫描参数微调

四档的物理面积相同,像素密度不同。这意味着"裁 512 像素的块"在不同瘤种里对应的物理视野并不相同——如果不按物理尺度归一,跨域评估的输入口径就已经不一致。

§3.5 标注层

标注对象是有丝分裂象与硬负例两类,几何形态统一为置中于对象核心的固定尺寸方框。COCO 库中全部 26 286 条记录的框宽与框高都等于 100 像素(记录里以 x1, y1, x2, y2 四点形式存储,端点间距恒为 100),这是由 SlideRunner 中半径 50 像素的圆派生而来:圆心不变,直径成为边长。方框不贴合细胞边界,只标记"位置与尺度先验"。

硬负例是非穷尽标注。论文的原话是:硬负例类以"每个瘤种内与有丝分裂象数量处于同一数量级"为目标做非穷尽标注。也就是说,未被框出的细胞不等于阴性,数据集里没有"全部阴性"的清单。

§3.6 物种与瘤种的设计取舍

论文称这是"第一个同时纳入瘤种、实验室、全片扫描仪与物种四重域偏移的有丝分裂数据集"。按标注库实际内容核对:物种两值(人、犬),瘤种七值,扫描仪五台,实验室至少四家。四重偏移里,物种这一重的取值只有两个,且犬类样本集中在四家机构中的三家。

需要指出一处口径摩擦:论文与合作机构页面在描述设计意图时使用了"多物种"的措辞,部分二手介绍进一步写成"跨四物种"。标注库与论文正文给出的物种只有人与犬两类。若某处材料声称含猫或第三个物种,那是把 2022 届的隐藏测试集(含猫科材料)与发行版混为一谈了。

§3.7 与挑战赛测试集的域隔离

论文明确写道:人黑色素瘤与犬肥大细胞瘤的测试样本,与本文所发布数据集中的样本"不相交、属不同域"。这条陈述是发行版最重要的边界之一:它意味着发行版覆盖的十个域之外,还存在一批来自不同实验室、不同扫描仪的同类瘤种材料,被保留在挑战侧。

因此,用发行版训练出的模型在那些测试材料上的表现,构成了一次真实的跨实验室、跨设备外推,而不是数据泄漏后的虚高。这也是为什么发行版补上了人黑色素瘤与犬软组织肉瘤之后,2022 届的隐藏测试集仍然可以继续使用。

§3.8 十个域怎么切

论文做技术验证时用的是"十个域"而不是七个瘤种,理由是同一个瘤种内部还有扫描仪差异。切法如下:

域编号 构成 拆分依据
1a–1c 人乳腺癌 三台扫描仪各成一域
2 犬肺癌 单域
3 犬淋巴肉瘤 单域
4 人神经内分泌肿瘤 单域
5 人皮肤黑色素瘤 单域(发行版新补标签)
6a–6b 犬皮肤肥大细胞瘤 按批次拆两域
7 犬(皮下)软组织肉瘤 单域(发行版新增瘤种)

乳腺癌之所以拆成三份,是因为 2021 届的核心设计就是"同一实验室、同一批染色、只换扫描仪",三台扫描仪之间的差异被刻意保留为可见变量;肥大细胞瘤按批次拆分,对应的是不同时间段的染色与制片批次。其余五个瘤种各占一域,域内不再细分。

把十个域与七个瘤种并列看,会发现两者不是简单的数量关系:瘤种是生物学分类,域是"生物学 × 设备 × 批次"的联合分类。评价论文时常说的"跨域",指的是后一种;而数据集通稿里常说的"多瘤种",指的是前一种。两者混用会让人误以为十个域就是十个瘤种。

这项切分对使用者的实际意义在于:若要做留一域实验,就必须先决定按瘤种留还是按域留。按瘤种留(七折)会把乳腺癌三台扫描仪一起留出,测的是"跨瘤种 + 跨设备"的复合难度;按域留(十折)会把乳腺癌拆开,测的是"跨设备但同瘤种"。两种结果不能互相替换,报告时必须写明。

§3.9 一个样本从头到尾长什么样

以 0001 号文件为例,走一遍完整链路,可以看清各层字段如何咬合(后文的"0001 号链路"均指这一组五层描述):

图像层——文件名 001.tiff,宽 7215 像素、高 5412 像素,属人乳腺癌域,来自乌得勒支的档案,由三台扫描仪之一数字化。它对应 2 mm² 组织,放大后约等于十个高倍视野。

标注层——COCO 的 images 记录里,该文件的 id 为 1、tumor_type 为 “human breast cancer”、license 指向 CC0 条目;annotations 里凡是 image_id 为 1 的记录都属于它,每条给一个四元组框,框边长 100 像素。

共识层——每条标注的 category_id 取值 1 或 2,代表两位或三位评审人的最终共识;若把同一位置在 SQLite 里查出来,会得到一行 Annotations 记录、一个 agreedClass 值、以及若干行 Annotations_label,每行对一位评审人的判断。

来源层——若某个对象的 Annotations_label 里出现 person 为 2 的行,说明它是 RetinaNet 在低阈值下提出的候选,后被专家确认为有丝分裂象或硬负例。

换算层——框中心除以分辨率(0.23 或 0.25 微米每像素)得到微米坐标;框边长 100 像素对应约 23 至 25 微米,恰是一个有丝分裂象的典型尺度。这解释了为什么半径取 50 像素:它不是随手定的,而是把"一个细胞核的可见尺度"编码进了标注几何。

0001 号链路可以当作字段字典的实例化版本:读文献时看到某个字段,回到 0001 号文件里都能找到对应位置。后文提到"0001 号链路"时,指的就是这五层。

§4 数据结构:两套标注库怎么读

§4.1 仓库布局

MIDOGpp/
├── README.md
├── requirements.txt
├── Setup.ipynb             #-- 运行后从 figshare 拉取图像到 images/
├── databases/
│   ├── MIDOG++.json        #-- MS COCO 标注
│   └── MIDOG++.sqlite      #-- SlideRunner 标注
├── images/                 #-- 仓库内为空,由 Setup.ipynb 填充(约 65 GB)
└── slide/                  #-- 全片图像的读取与切片工具

图像文件放在 images 目录下,命名 001.tiff 到 553.tiff;标注文件与图像分离,通过文件名与 image_id 关联。slide 目录提供的是通用切片工具,本数据集是单层裁图,通常用不到。

§4.2 COCO 库顶层结构

COCO 文件是单一 JSON,顶层五个键:info、licenses、images、categories、annotations。info 里写明描述、版本 1.0、年份 2023、贡献者名单与创建日期;licenses 只有一个条目,名为 CC0;images 是 553 条;categories 是两条;annotations 是 26 286 条。

categories 定义了两个类别:id 1 为 mitotic figure(有丝分裂象),id 2 为 not mitotic figure(非有丝分裂象,即硬负例)。注意第二类叫"非有丝分裂象"而不是"硬负例"或"背景",字面上会被读成"所有非分裂结构",但实际含义是"形态上易混淆、经专家确认不是有丝分裂的对象"。

§4.3 字段字典

表 / 对象 字段 类型 取值 用途 易错点
images id 整数 1–553 主键,与文件名序号一致 不要用文件名反推 id 之外的属性
images file_name 文本 001.tiff 起 关联图像与瘤种 序号即瘤种,见 §3.2
images width / height 整数 四档,见 §3.4 尺度归一 不同档像素密度不同
images tumor_type 文本 七值 直接给出瘤种 仅在 images 层,不在 annotations 层
images license 整数 恒 1 指向 licenses 恒为 CC0
annotations id 整数 全局唯一 主键 与 image_id 不是同一序列
annotations image_id 整数 1–553 外键 —
annotations bbox 整数四元组 x1,y1,x2,y2 位置与尺度 不是 COCO 常见的 [x,y,w,h],见 §4.4
annotations category_id 整数 1 或 2 共识类别 与 labels 字段可能不同,见 §4.5
annotations labels 整数序列 长度 2 或 3 各评审人判断 顺序无语义,见 §4.5

§4.4 方框格式的三处不一致

这是最容易出错的地方,值得单列。

其一,字段名叫 bbox,COCO 通行语义是 [左上 x, 左上 y, 宽, 高],但该库实际存的是 [x1, y1, x2, y2] 对角点。若按通行语义解析,宽高会被当成坐标,框会飘到图像外。识别方法很简单:若第三、四个数明显大于第一个数且接近图像宽高,就是对角点——0001 号链路里那条换算关系就是由此得来。

其二,CoCo 的通行框格式里宽高为浮点,该库为整数;且因源标注是半径 50 的圆,边长恒为 100。

其三,SQLite 一侧根本没有框,只有圆心坐标。两库的几何转换关系是:圆心等于框的中心,半径等于边长的一半。

§4.5 labels 字段的顺序问题

labels 是评审人的逐条判断序列,长度等于参与评审的人数。长度为 2 的表示只有两位专家给出判断;长度为 3 的表示三位都看了——这一般意味着前两位不一致,因此交给第三人裁决,第三人的判断追加在末尾。

问题在于:字段文档没有说明这个顺序,也没有给出与 Persons 表的对应关系。若把 labels[0] 当作"专家一"、labels[-1] 当作"终裁",在使用部分样本时可能是对的,但没有官方保证。稳妥做法是把它当作无序集合使用:看"判断是否一致",而不是"谁说了什么"。

§4.6 SQLite 库的六张表

SQLite 库沿用 SlideRunner 的表结构,共六张业务表加一张自增序列表:

表 关键字段 行数量级 说明
Slides uid, filename 553 一图一行,记录文件名
Annotations uid, slide, guid, deleted, agreedClass 26 286 一对象一行,含共识类别
Annotations_coordinates annoId, coordinateX, coordinateY 与上表同量 每条一个中心点
Annotations_label annoId, person, class 多于上表数倍 逐评审人判断
Classes uid, name 2 有丝分裂象 / 非有丝分裂象
Persons uid, name 4 三位专家加一个 RetinaNet

Annotations 表里有一个 deleted 字段,可用于标记废弃标注;本库中该字段全部为零,说明没有废弃记录混入。

Persons 表列出"expert 1"“RetinaNet”"expert 2""expert 3"四个身份。RetinaNet 出现在评审人表里,是因为第二步的机器召回被当作出具候选的一方,凡由机器提出的候选都记一次 RetinaNet。这一设计让"机器提出、人工确认"的混合来源可以在行级追溯,而不是只能整体相信。

§4.7 两库交叉核对的结果

把两库逐条比对后可以确认几件事:

坐标层面,两库的圆心经四舍五入后完全一致,去重后的位置数完全相同(约 2.6 万个),说明两库是同一批标注的两种导出,而不是两次独立标注。

计数层面,有丝分裂象一侧两库都是 11 937 条,完全吻合;硬负例一侧 COCO 与 SQLite 都是 14 349 条,而论文摘要与数据中心页面写的是 14 351 条。两库彼此一致、与官方口径相差 2。差额来源未在文档中说明,只能说这是口径摩擦而非数据损坏——引用时若需要精确数,应以标注库实际行数为准并注明。

类别字段层面,两库的共识类别逐条对应,未发现类型冲突。

§4.8 数据层级

物种(人 / 犬)
└── 瘤种(七种)
    └── 图像文件(553 个,001-553.tiff)
        └── 标注对象(26 286 条:有丝分裂象 / 硬负例)
            └── 逐评审人判断(Annotations_label 多行)

与"患者—切片—区域—对象"的常规层级相比,这里缺了两层:没有患者层(没有年龄、性别、诊断编号),没有全片层(只有裁好的方块)。层级扁平的好处是读取简单、查询快;代价是无法做病例级聚合,同一病例若贡献多张图,也没有字段把它们串起来。

§4.9 一份空值清点

把"没有"也当作数据的一部分登记下来,可以避免把缺失当作噪声忽略:

缺失项 涉及范围 是否为设计意图 处置建议
标注记录 151–200 号共 50 张图 是(无监督域自适应靶子) 排除或作为目标域
患者的年龄、性别、分级 全部 553 个文件 是(只发图像层) 无法补,换数据集
采集时间戳 全部 是 只能用文件序号作弱代理
扫描仪型号字段 全部 是(只给像素尺寸) 按尺寸档作代理变量
全片 WSI 全部 是(只发裁图) 无
模型权重 仓库未放 是(空间限制) 自行训练
官方划分文件 全部 是 按论文描述自建
硬负例子类 全部硬负例 是(单类) 无

八项缺失里七项是有意为之、一项是工程限制(权重)。区分"设计留白"与"交付缺件"很重要:前者应当被如实说明后接受,后者才是复现时的额外成本。这张表里,真正会增加工作量的只有"官方划分文件"与"模型权重"两项——它们决定了拿不到论文同一套数字,只能拿到同分布下的自建数字。

§5 标注的组织与口径

§5.1 类别口径

两类、无子类。有丝分裂象不再细分时期(前期、中期、后期、末期),也不区分典型与非典型。这与 2025 届挑战赛的做法不同——后者在这个发行版的细胞级标注上另起了"非典型 vs 正常"的二分类,那是下游任务,不是本数据集的类别体系。

硬负例同样不细分。形态相似的对象——凋亡小体、深染淋巴细胞、裸核、挤压变形的核——都归入同一个"非有丝分裂象"类,没有子标签。

§5.2 非穷尽标注的实际含义

"非穷尽"这三个字决定了正负样本的正确用法:

不能把未框出的对象当作阴性。图像里绝大多数细胞既不是有丝分裂象、也没有被框成硬负例,它们只是"没被标注",不等于"被认定为阴性"。

可以用的负样本只有两种:框成硬负例的 14 349 条,以及从图像中按采样策略自行抽取的背景块——后者需要配合忽略区域(ignore region)机制,避免把未标注的真阳性当成负样本惩罚。

论文的表述是"以达到与有丝分裂象数量同一数量级为目标",标注库的实际比例接近一比一点二,符合这一描述。

§5.3 无标注文件的处理

151 至 200 号文件共 50 张,在 COCO 与 SQLite 中都没有任何标注记录。这批图像属于乳腺癌域的第四台扫描仪(Leica GT450),在 2021 届挑战赛里就是作为无监督域自适应的靶子提供的。

这是一次有意的信息性缺失,不是文件损坏。复用时可以把它们当作目标域图像,或直接排除;若按文件号机械切分训练/验证集,就会有一整段样本永远进不了监督损失,且训练侧的瘤种分布被悄然改写。

§5.4 分歧样本的分布

按 labels 字段是否一致来划分,26 286 条记录里约两成(5,515 条)包含至少一次专家分歧,其余约八成(20,771 条)三人或两人完全一致。有丝分裂象一侧一致率为每四条约三,硬负例一侧一致率更高。

论文给出的分歧率是"约两成",与标注库统计吻合。这意味着分歧不是偶发噪声,而是任务本身的属性:边界性的有丝分裂判定在专家之间也不稳定。使用这批数据时,把一致与不一致样本分层是合理做法;而把分歧样本直接丢弃则会让训练集偏向"容易判定"的形态,反而削弱对难例的判别力。

§5.5 机器候选的份额

SQLite 的逐人判断表里,RetinaNet 作为评审人出现的记录约 1,483 条,分布在 308 张图上。这可以理解为:这些对象最初是机器在低阈值下提出的候选,随后被专家确认为有丝分裂象或硬负例。份额不大,但足以说明这批标注不是纯人工产物。

对研究标签噪声的人而言这是有用信号;对声称"完全人工标注"的论文,这是一处需要修正的说法。

§5.6 文件名与瘤种的硬绑定

文件名序号段与瘤种一一对应(见 §3.2),且标注库的 tumor_type 字段把这一绑定显式化了。因此瘤种判定有两条互相校验的路径:读文件名,或读 images.tumor_type。两者一致,未发现冲突。

这一设计的好处是简单;坏处是文件重命名会破坏绑定。若在使用中重命名图像文件,必须同步修改标注库,否则 tumor_type 与文件名会指向不同瘤种。

§6 怎么拿到:下载、读取与自检

§6.1 获取路径

组件 渠道 形式 体量 条件
图像 figshare 集合 10.6084/m9.figshare.c.6615571 TIFF,分卷 约 65 GB 开放
标注库 GitHub 仓库 databases 目录 JSON + SQLite 数 MB 开放
脚本与加载器 同一仓库 Python 与 notebook 小 开放
模型权重 不提供 — — 仓库说明写明因空间限制未放出

最快的路径是先克隆仓库、装依赖、再跑 Setup 笔记本。笔记本会向 figshare 拉取全部图像并填进 images 目录,中途不需要人工确认。若网络受限,也可以只下标注库——标注库只有几 MB,足够做字段判读与统计核对。

§6.2 一键拉取

git clone https://github.com/DeepMicroscopy/MIDOGpp.git
cd MIDOGpp
pip install -r requirements.txt
jupyter nbconvert --to notebook --execute Setup.ipynb --output Setup_done.ipynb
du -sh images/

最后一行用于确认图像已完整落到 images 目录,正常结果应在数十 GB 量级。若明显偏小,说明分卷未全部下完,Setup 笔记本可重复运行补齐。

§6.3 用 pandas 读 COCO

import json
import pandas as pd

with open("databases/MIDOG++.json", encoding="utf-8") as f:
    coco = json.load(f)

images = pd.DataFrame(coco["images"])
anns = pd.DataFrame(coco["annotations"])

#-- bbox 是对角点 x1, y1, x2, y2,先统一成左上角与边长
boxes = pd.DataFrame(anns["bbox"].tolist(), columns=["x1", "y1", "x2", "y2"])
anns = pd.concat([anns.drop(columns=["bbox"]), boxes], axis=1)
anns["w"] = anns["x2"] - anns["x1"]
anns["h"] = anns["y2"] - anns["y1"]

df = anns.merge(images[["id", "file_name", "tumor_type", "width", "height"]],
                left_on="image_id", right_on="id", suffixes=("_ann", "_img"))

print(df.groupby("tumor_type")["category_id"].value_counts().unstack(fill_value=0))
print("框边长分布:", df[["w", "h"]].drop_duplicates().values.tolist())

这段代码先验证框的语义(边长应恒为 100,即 0001 号链路里那条换算关系的直接后果),再给出按瘤种的类别计数。若边长不是 100,说明把对角点误读成了宽高,后面的统计全部作废。

§6.4 用 SQLite 读逐人判断

import sqlite3

con = sqlite3.connect("databases/MIDOG++.sqlite")
q = """
SELECT s.filename, i.person, i.class, COUNT(*) AS n
FROM Annotations_label i
JOIN Annotations a ON a.uid = i.annoId
JOIN Slides s ON s.uid = a.slide
GROUP BY s.filename, i.person, i.class
ORDER BY s.filename, i.person
"""
rows = con.execute(q).fetchall()
for r in rows[:10]:
    print(r)

person 字段对应 Persons 表中的四位身份:1 与 3、4 是三位专家,2 是 RetinaNet。按 filename 聚合后可以看到每张图上各评审人的判断条数,进而判定哪些图有较多分歧。

§6.5 两库交叉自检

import json
import sqlite3

with open("databases/MIDOG++.json", encoding="utf-8") as f:
    coco = json.load(f)
by_cat = {}
for a in coco["annotations"]:
    by_cat[a["category_id"]] = by_cat.get(a["category_id"], 0) + 1

con = sqlite3.connect("databases/MIDOG++.sqlite")
by_agreed = dict(con.execute(
    "SELECT agreedClass, COUNT(*) FROM Annotations WHERE deleted = 0 GROUP BY agreedClass"
))

print("COCO:", by_cat)           #-- {1: 11937, 2: 14349}
print("SQLite:", by_agreed)      #-- {1: 11937, 2: 14349}
assert by_cat.get(1) == by_agreed.get(1), "有丝分裂象计数不一致"

这段自检在下载完整性上有实际用途:若两侧有丝分裂象计数不一致,多半是某个文件下载残缺。两侧相等但总数与论文摘要差 2,则属于已知口径差异,不应视作错误。

§6.6 许可与引用

标注库的 COCO licenses 字段写着 CC0,仓库与图库页面也以同样的方式标注;但数据集的机构门户把访问条件写作 CC BY 4.0。两说并存,来源不同、含义不同:CC0 表示放弃署名要求,CC BY 4.0 表示必须署名。稳妥做法是按更严格的一侧准备——保留署名与引用,不附加额外限制。

引用时应同时给出论文与数据集合,而不是只引仓库地址:

@article{aubreville2023midogpp,
  author  = {Aubreville, Marc and Wilm, Frauke and Stathonikos, Nikolas and Breininger, Katharina and Donovan, Taryn A. and Jabari, Samir and Veta, Mitko and Ganz, Jonathan and Ammeling, Jonas and van Diest, Paul J. and Klopfleisch, Robert and Bertram, Christof A.},
  title   = {A comprehensive multi-domain dataset for mitotic figure detection},
  journal = {Scientific Data},
  volume  = {10},
  pages   = {484},
  year    = {2023},
  doi     = {10.1038/s41597-023-02327-4}
}

§7 质量评估、常见误读与避坑清单

§7.0 读本节前的认知校正

在评价这批数据之前,需要先矫正三个错位:

第一,它不是评测集,而是训练集。它没有官方划分、没有排行榜、没有隐藏答案,因此"在 MIDOG++ 上得多少分"这句话本身没有意义——必须先说明划分方式与测试域。

第二,它的价值来自域的多,不来自量的多。与同领域的数据集相比,几百个 2 mm² 的方块在体量上很小;它的稀缺性在于七个瘤种、五台扫描仪、四家实验室在同一个标注协议下并存。

第三,它的"多"是被设计出来的,而不是采集过程中自然形成的。瘤种配比悬殊、犬类集中、第五台扫描仪只有乳腺癌有,这些都是拼接历史的痕迹,不能当作人群或组织的代表性样本。

带着这三条看下面的评分与问题清单,才不会把设计取舍误读为缺陷。

§7.1 DAIMS 评分

检查项 状态 说明
描述层 身份与边界 ✅ 论文、仓库、figshare 集合三处一致标注名称与版本;边界(训练侧、不含测试集)在论文中明确
描述层 文档完备度 ⚠️ README 与论文齐备,但 bbox 语义、labels 顺序、两库差 2 三处无书面说明,只能靠反推
结构层 标识体系 ✅ 图像以序号命名且与瘤种绑定;标注 id 全局唯一;SQLite 有 uid 与 guid 双标识
结构层 层级一致性 ✅ 物种—瘤种—图像—对象—逐人判断五层在各瘤种内一致,未发现某域多一层或少一层
结构层 模态配对 ✅ 单模态(H&E 光学显微镜),图像与标注按文件名一一配对,无缺失配对
访问层 开放程度 ✅ 无需申请,figshare 公开下载,标注库随仓库直取
访问层 可复现性 ⚠️ 65 GB 大件需分卷拉取;权重不提供,论文数值需自行重跑;两库计数差 2 影响精确复现
访问层 许可清晰度 ⚠️ 标注与图库侧标 CC0、门户侧标 CC BY 4.0,两说并存且缺一份统一声明

综合判断:8 项里 5 项通过、3 项打折,扣分全部落在文档与口径层面,而不在数据本身的结构或可得性上。对训练用途而言这几乎不构成障碍——三处待澄清都能用几行代码验明;对需要逐位复现论文数字的审计场景而言,这三处会变成额外工作量。

§7.2 十条常见说法与实际情况的对照

下表把十类真实失败模式按"常见说法 → 实际情况 → 证据"三列摊开。左列是可以直接检索到的错误表述,右列是复核该说法时应当查的位置。

常见说法 实际情况 证据
“bbox 就是 COCO 的 x, y, w, h” 该库存的是对角点 x1, y1, x2, y2,边长恒 100 像素 全部标注记录的框宽高去重后只有一值
“硬负例一共 14 351 个” 两套标注库皆为 14 349,官方口径多 2(该差额与 0001 号链路无关) COCO 与 SQLite 的类别计数
“503 例就是 503 张图” 标注库有 553 个图像文件,差 50 images 记录数与文件序号范围
“503 例全部带标注” 151 至 200 号共 50 张图零标注 Slides 表与 Annotations 表左连接为空
“硬负例之外的细胞都是阴性” 非穷尽标注,未被框出的对象状态未知 论文对硬负例标注目标的说明
“labels 第一位就是第一专家” 字段顺序无文档,长度 2 与 3 只表示人数不同 字段无说明,Persons 表也无对应规则
“它是评测基准,有排行榜” 无官方划分、无隐藏测试集,只是训练语料 仓库与论文均不含划分文件
“跨四个物种” 标注库 tumor_type 与物种只有人与犬两值 images 记录的字段取值
“标注全部由人工完成” 约一千五百条候选由 RetinaNet 在低阈值下提出 Persons 表与逐人判断表的评审人计数
“许可只有一种” 标注库标 CC0,机构门户标 CC BY 4.0 两处记录并存

十条里有六条属于"读错字段",四条属于"读错口径"。前者用几行代码就能验明(§6.5 的自检脚本已覆盖计数部分),后者只能靠并置两侧说法。把这张表当作前置检查清单,可以省掉大部分返工。

其中最容易造成静默错误的,是第一条与第五条:框语义读错不会报错,只会让坐标整体偏移;负样本读错不会报错,只会让模型学会"把未标注的真阳性当背景"。两者都表现为训练能跑、指标偏低,很难从日志里看出原因。

§7.3 不适用的场景

不适合拿它做全片有丝分裂计数:它只有裁好的方块,选片与视野聚合都不在里面。

不适合用它估计人群或畜群的患病构成:瘤种配比是拼装结果,不是抽样结果。

不适合把它当作 2022 届成绩的复现底盘:多出的两个域会改变训练分布。

不适合用它训练非 H&E 染色的检测器:全部图像都是 H&E,没有免疫组化或其他染色的配对。

不适合依赖它做病理分级的端到端模型:它只有有丝分裂象的位置,没有分级标签。

§7.4 局限的成因

上述局限大多不是疏漏,而是拼接式发行的必然结果:为了让旧挑战数据继续可用,必须原样保留其文件编号与扫描参数,于是像素尺寸分了四档、第五台扫描仪只覆盖乳腺癌;为了不泄漏测试域,必须把人黑色素瘤与犬肥大细胞瘤的测试材料隔离在外,于是发行版补的是"同类不同批"的样本。理解这一点,很多"不一致"就变成了可解释的设计。

§7.5 漂移与长期可用性

数据本身不会漂移,漂移发生在使用侧:新的扫描仪型号、新的染色试剂批次、新的实验室流程都会让部署环境偏离发行版覆盖的五个扫描仪、四家实验室。发行版没有为这种漂移留出监测接口——它不含扫描仪型号字段(只有像素尺寸这一间接线索),也不含采集时间。

可行的间接做法是按像素尺寸档位给图像打标签,把它们当作扫描仪代理变量;再按瘤种分层做留一域验证。这只是代理,不能替代对真实设备型号的记录。

§7.6 组织与利益关系

数据集由挑战赛组织者自行发布并自行评估,论文中的基线数字(单域训练与留一域训练)出自同一团队。这不构成缺陷,但意味着这些数字应当被看作"官方基线",而不是第三方独立评测。使用方若要比较方法优劣,应自建划分并报告最差域指标。

§7.7 完整性与一致性核对的记录

本次核对的具体动作与结果:下载 COCO 与 SQLite 两库,校验 SQLite 完整性(通过);比对 553 条图像记录,字段集合一致;比对 26 286 条标注记录,坐标去重后位置数一致;比对类别计数,有丝分裂象两侧皆为 11 937,硬负例两侧皆为 14 349;核对文件序号与瘤种绑定,未发现冲突;核对无标注文件,恰为 151 至 200 号共 50 张。所有差异均已记入 §7.2。

§8 在生态中的位置

§8.1 与同领域数据集的分工

数据集 规模口径 域覆盖 与本集的分工
MIDOG 2021/2022 200 / 405 例 单瘤种四扫描仪 / 六瘤种 挑战赛档案与本集共享乳腺癌素材
MITOS-ATYPIA-14 高倍视野帧 两扫描仪 提供非典型有丝分裂标注,本集无
TUPAC16 全片 乳腺癌为主 全片计数任务,本集无力覆盖
NuCLS 核级标注 多癌种 核分类,含有丝分裂类但非专精
PanNuke 核实例分割 十九类组织 分割任务,与本集检测任务互补
MoNuSeg 核分割 多器官 通用核分割基准

在"有丝分裂检测"这条线上,MIDOG++ 的独特位置是"唯一同时具备多瘤种、多物种、多扫描仪且标注协议统一的训练语料"。在"病理核分析"这条更大的线上,它与核分割类数据集是互补关系:后者提供细胞边界,前者提供有丝分裂这一特定类别的判定与硬负例。

§8.2 事实先于评价

本节有意不比较各数据集的性能数字。不同数据集的任务定义、匹配准则、划分方式都不同,把 MICOG++ 上的 F1 与别处的 F1 放在一张表里,得到的排序没有意义。可比的只有结构属性:覆盖几个瘤种、几台扫描仪、几类标注、是否开放。

§8.3 覆盖谱与缺口

从覆盖谱看,MIDOG++ 在"域多样性"轴上靠前,在"体量"“模态”“临床信息"三类轴上靠后。它没有配对的多模态数据,没有分子分型,没有随访。若研究问题是"模型在新设备上稳不稳”,它是最合适的起点;若研究问题是"分级与预后是否相关",它给不了任何一条线索。

§8.4 上游与下游

上游是两届挑战赛的训练侧材料与四家机构的病理档案;下游至少有三类:挑战赛后续届次的细胞级标注(在其图像上继续细分非典型有丝分裂)、域泛化方法的消融实验、兽医病理的冷启动模型。它的特殊性在于既是上游又是下游:既是训练语料,又是后续任务的标注基底。

§8.5 为何不会被轻易替代

要替代它,需要重新凑齐七个瘤种、五台扫描仪、四家实验室、同一套双人盲评加仲裁的标注,还要愿意把全部标注公开。这在成本上远超单一机构的采集能力,因此短期内没有等价替代品。它的地位来自组织能力而非数据体量,这也是它能长期作为底盘的真正原因。

§9 常见的误读与边界

§9.1 十二个常见误读

常见说法 实际情况 证据
“503 例就是 503 张图” 标注库是 553 个文件,整数差 50 images 记录数与文件序号
“跨四物种” 标注库只有人与犬两值 images.tumor_type 取值
“含猫科材料” 猫科出现在 2022 届隐藏测试集,不在发行版 论文的域隔离陈述
“bbox 是 x,y,w,h” 实为对角点 x1,y1,x2,y2,边长恒 100 全部 26 286 条记录
“硬负例 14 351 个” 两标注库皆 14 349,官方口径多 2 两库计数比对
“503 例全部带标注” 151–200 号共 50 张零标注 Slides 与 Annotations 左连接
“硬负例即全部阴性细胞” 非穷尽标注,未框出不等于阴性 论文对硬负例的描述
“它是评测基准” 无官方划分、无排行榜,是训练语料 仓库与论文均无划分文件
“= MIDOG 2022 的训练集” 多出人黑色素瘤与犬软组织肉瘤两域 瘤种与文件段对照
“标注纯人工” 有约 1 483 条 RetinaNet 召回候选 Persons 表与逐人判断表
“两套标注是两份独立标注” 同一批标注的两种导出,坐标一致 圆心去重后位置数相同
“许可只有 CC0” 门户侧另有 CC BY 4.0 一说 机构数据门户页面

可以放心用的:多瘤种检测训练、跨域泛化实验、标注分歧研究、兽医病理冷启动。

需要额外加工的:跨域评估(须按物理尺度归一)、负样本构造(须处理非穷尽标注)、划分(须自建且按域分层)。

不应期待的:全片推理、分级标签、临床信息、多模态配对、与人医分级体系的直接对应。

不能说它没有的,也不能说它有它没有的——边界写在这里,是为了让引用时不至于越界。

常见误读

下面十六条按使用频率排列,前十条是字段与口径层面的读错,后六条是任务与边界层面的越界。每条都给出可核查的落点。

常见说法 实际情况 证据
“MIDOG++ 是 MIDOG 的第二版” 它是 2021、2022 两届训练侧材料的扩版发行,不是第三届挑战赛 论文的定位陈述与仓库说明
“503 例等于 503 张图” 标注库有 553 个图像文件 images 记录数与文件序号
“跨四个物种” 标注库只有人与犬两个物种值 tumor_type 字段取值
“含猫科材料” 猫科在 2022 届隐藏测试侧,未经发行版收录 论文的域隔离陈述
“bbox 即 COCO 宽高格式” 存的是对角点,边长恒 100 像素(见 0001 号链路) 全部标注记录的框去重
“硬负例共 14 351 个” 两库皆 14 349 两库类别计数
“503 例全带标注” 151 至 200 号共 50 张零标注 左连接为空
“硬负例之外都是阴性” 非穷尽标注,未框出者状态未知 论文对硬负例的说明
“labels 首位即第一专家” 顺序无文档,只能用集合语义 字段无说明
“许可只有 CC0” 标注库与图库侧标 CC0,机构门户标 CC BY 4.0 两处记录
“它是评测基准” 无划分、无排行榜、无隐藏答案 仓库无划分文件
“等于 2022 届训练集” 多出人黑色素瘤与犬软组织肉瘤两域 瘤种表
“标注纯人工” 约一千五百条候选由机器提出并被人工确认 Persons 表
“两库是两次独立标注” 同一批标注的两种导出,坐标一致 圆心去重后位置数相同
“结果可外推到全片计数” 只有 2 mm² 裁图,选片与聚合均不在内 论文对 2 mm² 的描述
“可训练非 H&E 检测器” 全部图像均为 H&E,无其他染色 模态描述

十六条中没有一条属于"数据集做错了",全部属于"读的人越界了"。这也是为什么把它当成一本有目录的词典来读,比当成一份宣传材料来读更有用。

— 数字之间的换算

使用中常需要在几个口径之间换算,记住三条即可:

例数与文件数:503 例标本对应 553 个文件,不能互换使用。

标注总数与类别:26 286 条等于有丝分裂象 11 937 加硬负例 14 349,任何一处改动都会破坏这个等式。

像素与物理:边缘的宽高除以分辨率(0.25 或 0.23 微米每像素)得到微米,不同壳层不可直接相减。

§9.4 与三条相邻谱系的关系

与核分割谱系的关系:PanNuke、MoNuSeg、泛癌细胞核分割集都把细胞核当作分割目标,输出是掩膜;本集把有丝分裂象当作检测目标,输出是中心点与固定边长框——0001 号链路里那组 100 像素方框就是这个形态。任务形态不同,但底层组织是同一类 H&E 图像。常见做法是用核分割数据集预训练编码器,再在本集上做检测微调;反过来,把本集的标注当作稀疏的核位置先验,也是一种弱监督用法。两者不存在竞争关系,只存在阶段关系。

与全片计数谱系的关系:TUPAC16 的全片计数任务要求模型在整片 WSI 上找出有丝分裂并给出计数,本集只提供裁好的热区。这决定了本集的输出必须再经过"选片—视野聚合—坏死区排除"三步才可能对接到临床计数流程。把本集的结果直接说成"整片计数准确率",是这条谱系上最常见的越界。

与非典型有丝分裂谱系的关系:MITOS-ATYPIA-14 提供非典型分裂的标注,本集不提供;而后续的挑战赛在 MIDOG++ 的细胞图上另起了非典型与正常的分类型任务。于是三者的关系是:本集给出细胞位置,MITOS 给出形态判别的另一套标准,下游任务在本集的框上补形态标签。这条链条把"检测"与"分类"两个任务叠在了一起。

三条谱系交叉的地方是 H&E 染色与 40 倍扫描,分开的地方是任务定义与输出格式。任何跨谱系的比较,都必须先把这三件事对齐,再谈数字。

§10 总结

MIDOG++ 的价值可以用一句结构描述来概括:它把七个瘤种、五台扫描仪、四家实验室、两个物种的图像,压进同一套双人盲评加仲裁的标注协议里,再用 SlideRunner 与 MS COCO 两种格式同时公开。

它的问题也同样是结构性的:因为是拼接,所以例数口径分成三层、像素尺寸分成四档、瘤种配比悬殊;因为是训练侧,所以没有划分与排行榜;因为是三年前定稿,所以字段语义留下三处需要反推的空白。

判断是否使用它,只需问一个问题:研究问题里是否包含"域"这个词。若包含,它是目前最合适的起点;若不包含,同领域的单域数据集更省事。它与挑战赛词条的关系是前后两代分工——赛事规则看前身,数据字段看本文——两篇应当并列阅读,而不是互相替代。

最后一条务实的建议:动手前先把 §6.5 的三行自检跑一遍,确认两库计数与论文口径的差异落在你预期的位置,再开始写训练循环。

§10.1 一页纸的检查单

若只给一页纸,就写这些:

先验身份:打开 databases 目录,确认 MIDOG++.json 的 info.version 为 1.0、categories 为两条,说明拿到的是定稿版。

再验计数:跑一次 §6.5 的三行自检,确认有丝分裂象两侧同为 11 937、硬负例两侧同为 14 349。数量对不上就是下载残缺。

再核几何:按 0001 号链路抽一条 annotation,算 x2 减 x1 与 y2 减 y1,应等于 100。不等就说明库版本不对或解析方式不对。

再画边界:把 151 至 200 号从"可用监督样本"里剔除,或单独标为目标域。这一步最容易漏。

最后定划分:决定按瘤种留还是按域留,写进实验记录,并且在报告里注明用的是哪一种。

五步做完,数据集就处在"可训练、可复核、可解释"的状态;其中"再核几何"一步依赖 0001 号链路的换算关系,务必先验一次再写训练循环。任何一步跳过,后面得到的数字都要打折。

FAQ

Q1:MIDOG++ 和 MIDOG 挑战赛是同一件事吗?

不是同一件,但有血缘。挑战赛有隐藏测试集、有赛道规则、有排行榜;MIDOG++ 是 2023 年定稿的训练侧发行版,把两届训练数据合并、补齐并扩了两个瘤种。

Q2:为什么叫两个加号?

表示"比 2022 届更强、更大"。命名与 0001 号链路里的框换算无关,是两件事。它不是官方挑战赛的编号序列,也不存在"MIDOG+"这个中间版本。

Q3:503 例与 553 个文件哪个是对的?

两个都对,口径不同。论文与通稿按组织标本数计例,标注库按图像文件计数。引用时把两个数字一起写。

Q4:为什么有 50 张图没有标注?

那是乳腺癌域第四台扫描仪的图像,2021 届就作为无监督域自适应的靶子提供,发行版原样保留。

Q5:可以直接用 COCO 工具读标注吗?

可以读,但不能按标准语义解释 bbox。该库存的是对角点,需要先转换再交给下游。

Q6:硬负例可以当作负样本全用吗?

可以当负样本用,但不能当作"全部阴性"。未被框出的细胞状态未知,训练时需要忽略区域机制配合。

Q7:图像 65 GB,能只下标注吗?

可以。标注库只有几 MB,在仓库的 databases 目录里直接可取,足够做字段判读与统计核对。

Q8:有官方训练/验证划分吗?

没有。论文用的是自建的分层留出加五折交叉,且那套划分不是随数据发布的文件,需要按论文描述自行实现。

Q9:能做全片有丝分裂计数吗?

不能直接做。它只有 2 mm² 的裁图,选片、视野聚合、坏死区处理都不在里面。

Q10:许可到底是 CC0 还是 CC BY 4.0?

两处说法并存:标注库与图库记录标 CC0,机构门户标 CC BY 4.0。按更严格的一侧准备即可,即保留署名。

Q11:能用于商业项目吗?

两份许可都不禁止商业使用(CC0 与 CC BY 4.0 都不是非商业条款),但仍建议在发布产品前核对 figshare 记录的最新状态,因为许可标注存在两说。

Q12:论文里的成绩能直接引用为基线吗?

可以作为"官方基线"引用,但须注明是自建划分下的结果,且与 2022 届挑战赛的排行榜数字不可比。

术语表

术语 释义
ROI(感兴趣区) 从全片上裁出的固定面积图像,本集为 2 mm²、长宽比 4:3
有丝分裂象(mitotic figure) 处于分裂过程中的细胞,H&E 染色下表现为深染的染色体聚集形态
硬负例(hard negative / imposter) 形态上与有丝分裂象相似、经专家确认并非分裂的结构
非穷尽标注 只标出部分实例、不追求覆盖全部同类对象的标注方式
SlideRunner 数字病理标注软件,采用 SQLite 存储圆心式标注,本集 SQLite 库沿用其表结构
留一域(leave-one-domain-out) 每次留出一个域作测试、其余域作训练的验证方案
域偏移(domain shift) 训练分布与部署分布之间的系统性差异,来源包括瘤种、染色、扫描设备、实验室
中心点匹配 评估时以预测中心是否落入标注半径内判定命中的准则,本集半径 50 像素
分层留出 按类别或域比例抽样切出测试集,保持各层比例一致
对角线框(x1y1x2y2) 以左上与右下两点表达矩形的方式,与 COCO 的宽高式不同

附录 A 文件段与瘤种对照速查

段 起止文件 瘤种 物种 标注状态
1 001–200 乳腺癌 人 001–150 有标签;151–200 无标签
2 201–244 肺癌 犬 有标签
3 245–299 淋巴肉瘤 犬 有标签
4 300–349 皮肤肥大细胞瘤 犬 有标签
5 350–404 神经内分泌肿瘤 人 有标签
6 405–504 (皮下)软组织肉瘤 犬 有标签
7 505–553 皮肤黑色素瘤 人 有标签

按此表可直接把任意文件定位到瘤种与物种,无需读取标注库。

附录 B 两套标注库的能力对照

能力 COCO SQLite 推荐用法
一次性载入内存 是 否(需 SQL) 训练循环用 COCO
逐评审人判断 仅序列 分人分行 分歧研究用 SQLite
记录机器候选 否 是 追源用 Persons 表
共识类别 category_id agreedClass 两者等价
圆心坐标 需从框换算 直接给出 评估中心点匹配用 SQLite
废弃标记 无 deleted 字段 本集全为零
跨库关联键 image_id / file_name Slides.uid / filename 用文件名对齐最稳

附录 C 读取陷阱清单

现象 原因 处置
框全部飘到图像外 把对角点当宽高 先算 x2−x1 验证恒为 100
类别统计对不上 14 351 官方与库内差 2 以库内为准并注明
训练时出现整段无损失样本 151–200 号无标注 划分时显式排除或标记为目标域
无法还原某位专家的判断 labels 顺序无文档 只当作集合使用
跨域输入尺度不一致 四档像素尺寸 按物理尺度归一
负样本严重不足 非穷尽标注 引入忽略区域或背景采样
与挑战赛成绩对不上 多了两个域、且测试侧不同 两套数字分开报告

附录 D 版本与口径声明

文中的所有结构类数字(文件数、记录数、字段取值、段位归属、类别计数)均以 2023 年定稿的标注库实读为准;规模类数字(503 例、11 937 个有丝分裂象、65 GB)以论文与仓库说明为准,并在正文标注出处;边界类数字(53 页、7 种)未采用,因其不在论文与标注库的可核范围内。

凡标注库与论文口径不一致处(硬负例差 2、物种表述、例数与文件数),正文均同时列出两侧并说明差异性质,不做单边取值。凡论文未记载、标注库无法推出的信息(扫描仪型号逐台对应、实验室逐例归属),一律标注为未披露。

附录 E 引用清单

  1. Aubreville M, Wilm F, Stathonikos N, et al. A comprehensive multi-domain dataset for mitotic figure detection. Scientific Data. 2023;10:484. DOI: 10.1038/s41597-023-02327-4
  2. MIDOG++ 数据集合。figshare。DOI: 10.6084/m9.figshare.c.6615571
  3. MIDOG++ 代码与标注库。GitHub: DeepMicroscopy/MIDOGpp
  4. Aubreville M, Stathonikos N, Bertram CA, et al. Mitosis domain generalization in histopathology images — The MIDOG challenge. Medical Image Analysis. 2022;79:102699
  5. Aubreville M, Stathonikos N, Donovan TA, et al. Domain generalization across tumor types, laboratories, and species — Insights from the 2022 edition of the Mitosis Domain Generalization Challenge. Medical Image Analysis. 2024;94:103155
  6. 埃因霍温理工大学研究门户 MIDOG++ 数据集条目(含 imposter 计数与 CC BY 4.0 标注)

编辑说明

  • 核验时间:2026-10-29。主要依据 Scientific Data 论文全文、GitHub 仓库 README 与 databases 目录、figshare 集合记录、机构数据门户条目。
  • 核验方式:下载 COCO 与 SQLite 两库逐条比对(完整性校验通过),统计记录数、类别计数、瘤种分布、文件段归属、坐标一致性、无标注文件清单、评审人身份与机器候选份额;论文与库内数字不一致处两说并存并在正文标注。
  • 未覆盖内容:扫描仪型号逐台对应表、各实验室逐例归属、病例临床属性、官方划分文件——前两项论文以表格给出但正文未逐台点名,后两项数据集本身不提供。
  • 缺口与待澄清:两套标注库的硬负例计数与论文摘要相差 2 条,来源未在文档中说明;bbox 字段的语义(对角点)与 labels 字段的顺序均无书面定义,正文的处理方式是从数据反推。若后续出现官方勘误,应以勘误为准。
  • 口径处理:503 例与 553 个文件、14 351 与 14 349、CC0 与 CC BY 4.0 三处差异均按"两边都写、说明差异性质"处理,不单边取值。

相关数据集导航

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

  • midog — 共享标签:医学影像 / 病理图像 / 目标检测 / 肿瘤学
  • digestpath — 共享标签:医学影像 / 病理图像 / 目标检测 / 肿瘤学
  • cervix93 — 共享标签:医学影像 / 病理图像 / 目标检测 / 肿瘤学
  • cdetector — 共享标签:医学影像 / 病理图像 / 目标检测 / 肿瘤学
  • bonemarrow-wsi — 共享标签:医学影像 / 病理图像 / 目标检测 / 肿瘤学
  • bccd — 共享标签:医学影像 / 病理图像 / 目标检测
  • ocelot — 共享标签:医学影像 / 病理图像 / 肿瘤学
  • sicapv2 — 共享标签:医学影像 / 病理图像 / 肿瘤学
  • msk-impact — 共享标签:医学影像 / 病理图像 / 肿瘤学
  • munich-bmc — 共享标签:医学影像 / 病理图像 / 肿瘤学

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

需要更高工程化程度或合规出域的商业版本?

当前展示的公开版本适用于学术研究与原型验证。千方医数集依托三甲医院直采网络,提供经专家标注、符合伦理合规的专病数据集交易服务。

前往商城查看可交易产品 →
返回 AI-Ready 数据集