导管位置而非病灶 — 三万张胸片的置管质控标注

30,083 张胸片 · 11 个二值标签 · 3,791 名患者

来源 https://www.kaggle.com/competitions/ranzcr-clip-catheter-line-classification/data发布时间: 2026-10-29最后更新: 2026-10-29 阅读 9
导管位置而非病灶 — 三万张胸片的置管质控标注

信息速览

数据集名称导管位置而非病灶 — 三万张胸片的置管质控标注
数据类型人工标注,影像数据,竞赛数据
规模三千七百九十一名患者,对应三万零八十张胸片
接入方式https://www.kaggle.com/competitions/ranzcr-clip-catheter-line-classification/data

RANZCR CLiP 是一场为期三个月的 Kaggle 竞赛留下的数据资产,全称 Catheter and Line Position Challenge。它要求算法看着一张胸片,回答一个在影像科每天都有人问、却长期没有公开标签的问题:病人身上的管子,插到位了没有。

它标的东西很窄:气管插管、鼻胃管、中心静脉导管,外加一列只记「有没有」的 Swan-Ganz 导管。它不标肺炎、不标结节、不标气胸。整个数据集的价值不在于规模,而在于它把「管端停在哪一节椎体旁边」这种过去只存在于放射科医师脑子里的判断,拆成了可以计算的十一列零和一。

有两件事必须先纠正,否则后面全部会读歪。第一,这些胸片不是澳大利亚或新西兰的病人,影像全部来自美国 NIH 公开的 ChestX-ray14,澳新提供的是标注者与标注规范;第二,十一列里没有胸腔引流管,官方为了压低任务复杂度,明确把它排除在外。一屏速览见下表。

维度 内容
全称 RANZCR CLiP — Catheter and Line Position Challenge
主办 澳大利亚与新西兰放射学会(RANZCR),会址悉尼
影像来源 美国 NIH ChestX-ray14,NIH 临床中心采集
标注来源 澳新两地 29 名放射科医师,MD.ai 平台
训练规模 30,083 张胸片,3,791 名患者,年龄中位数 49 岁
影像级标注 50,612 条阳性标记,平均每张约 1.7 条
分割标注 17,999 条管端掩码
标签数量 11 列二值,覆盖四类器械
判定档位 正常 / 临界 / 异常,鼻胃管另加「成像不全」
任务形式 多标签二分类,逐列算 AUC 再平均
公开测试 3,582 张,标签不公开
隐藏测试 约 1.4 万张,仅竞赛期间可提交评分
数据体积 13.13 GB,33,699 个文件
竞赛周期 2020-12-14 开赛,2021-03-16 截止
参赛规模 8,335 人报名,1,547 支队伍,28,112 次提交
奖金 五万美元,冠军 1.6 万
许可 竞赛规则,非商业使用,禁止再分发与再识别
论文 Scientific Data,DOI 10.1038/s41597-021-01066-8

§1 它到底是什么

1.1 一句话:它标的是「器物停在哪」,不是「组织长成什么」

绝大多数胸片数据集在回答同一类问题:这片肺里有没有异常密度。答案落在肺实质,落在结节、浸润、积液、气胸这些组织学或病理生理学的对象上。标签的语义是「病」。

RANZCR CLiP 换了一个对象。它关心的是外来器物——一根塑料管——的末端投影落在哪两节肋骨之间。这个末端本身不是病变,它甚至不该出现在一个健康人的胸片里。它之所以成为标注对象,是因为位置错了会死人:鼻胃管误入气道,官方引用的文献给出的比例是最高百分之三,其中四成出现并发症;气管插管在手术室外置入时,位置不当的比例可达四分之一。这些数字都写在竞赛页的说明里,是用来解释「为什么要做这件事」的。

所以这份数据的语义坐标是「医源性风险」,不是「疾病」。这个差别决定了很多下游用法:它不适合当作疾病分类的预训练语料,但非常适合当作医疗安全质控模型的监督源。前者问「这人病了吗」,后者问「这套操作做对了吗」。

对照项 疾病型胸片集 本数据集
标注对象 肺实质、胸膜、纵隔的异常 外来器物的管端位置
标签语义 存在某种病理 某种操作是否到位
典型任务 分类、检测、分割病灶 多标签分类、管端定位
错误代价 漏诊、延误治疗 管端过深或过浅、穿孔、误吸
对应科室 放射诊断 重症、急诊、麻醉、护理质控

1.2 三条最常见的错误期待

第一条是把「十一类」理解成「十一种管子」。实际只有四类器械,其中三类各拆成三个档位,一类只有存在性。真正被反复计数的对象是「档位」,不是「器械种类」。

第二条是把它当成有序回归问题。三个档位确实有顺序——正常、临界、异常——但官方发布的是三个独立二值列,不是一列有序标签。有人会用 argmax 把三列压回一档,这一步在数学上可行,代价是丢掉「一张片同时有两条导管、状态不同」的情形,而那恰恰是临床上最需要提醒的场景。

第三条是以为它自带疾病标签。它没有。要疾病标签,只能回到上游的 ChestX-ray14,按 StudyInstanceUID 把两边接起来,而这一步会引入新的泄漏风险,详见 §5。

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

你的处境 它能帮你什么
要做 ICU 置管后的自动复核,判断要不要叫医师回来看片 提供三档位置判定作为监督信号,正负样本都有真实分布
手上只有院内几百张带管胸片,想先做预训练 三万张的量级足以训出一个可迁移的编码器,再在院内小样本上微调
想研究「标注定义如何影响模型行为」 同一批像素有官方书面定义与三档判定,是现成的定义敏感性实验材料
要做管端分割,但缺乏像素级标注 近一万八千条掩码可直接用于分割预训练
想论证某个模型在「器物类目标」上的表现 与病灶类任务形成对照,可写进讨论一节
需要核对某篇论文用的到底是哪一批胸片 与 ChestX-ray14 的 StudyInstanceUID 可直接对齐验证

1.4 不适合谁:四条边界

如果你的需求是「训练一个能看出肺炎的模型」,它给不了你任何病灶标签,去用 CheXpert 或 VinBigData 那类带病灶标注的集子。

如果你的需求是「评估某家医院的置管质量」,它给不了你院内数据,也代表不了你的病人群体——影像来自美国一家联邦医院,标注者是澳新的放射科医师,两端都不在你的机构里。

如果你的需求是「拿到一批可以商用的训练数据」,它给不了你商用授权。竞赛规则写的是非商业使用,且禁止再分发。

如果你的需求是「覆盖全部类型的管线」,它给不了你胸腔引流管、起搏导线、体外膜肺的插管。官方只做了三类加一个存在性标记。

§2 数据构成与规格

2.1 三个规模口径,先说清哪个是哪个

「这个数据集有多少张图」这个问题没有单一答案,取决于问的是哪一层。

第一层是官方宣传口径:竞赛页写「用四万张图像训练和测试你的模型」,致谢段写标注团队「标注了超过四万次检查」。这是整个标注工程的覆盖面。

第二层是可下载的训练集:train.csv 有三万零八十行,对应三万零八十张 JPEG,来自三千七百九十一名患者。这是唯一有标签、能直接用来训练的部分,也是论文里反复出现的那个数。

第三层是测试:公开测试集三千五百八十二张,随竞赛数据一起下发但不给标签;隐藏测试集约 1.4 万张,只在竞赛期间用于评分,从未公开。

三个数字之间存在一处官方自身的不一致。三万零八十加三千五百八十二加约一万四千 约等于四万八千,明显超过「四万」的宣传口径;而数据页又写隐藏测试集「约为公开测试的四倍」。竞赛讨论区里有人直接追问过这个矛盾,组织方没有给出统一解释,只回复了关于定义与任务拆分的内容。处理办法很简单:引用规模时只引 train.csv 的行数,那是唯一能被任何人复核的数字;宣传口径与隐藏测试规模一律标注为「官方表述,未公开可核」。

口径 数字 有无标签 能否复核
宣传覆盖面 约四万次检查 — 否,仅官方表述
训练集 三万零八十张 有,11 列 是,train.csv 行数
公开测试 3,582 张 无 是,sample_submission.csv 行数
隐藏测试 约 1.4 万张 无,从不公开 否
患者数 三千七百九十一名 — 论文给出,可由 PatientID 去重复核

2.2 字段字典

train.csv 只有十三列,是这份数据里最不需要解释的部分:一个影像标识、一个患者标识、十一个标签。train_annotations.csv 只有三列,存的是管端掩码。

字段 所在文件 类型 含义
StudyInstanceUID train.csv / sample_submission.csv / train_annotations.csv 字符串 DICOM 检查实例号,与 JPEG 文件名一一对应
PatientID train.csv 字符串 患者级不透明标识,同一患者的多张片共用
ETT - Abnormal train.csv 0/1 气管插管管端异常
ETT - Borderline train.csv 0/1 气管插管管端临界
ETT - Normal train.csv 0/1 气管插管管端正常
NGT - Abnormal train.csv 0/1 鼻胃管管端异常
NGT - Borderline train.csv 0/1 鼻胃管管端临界
NGT - Incompletely Imaged train.csv 0/1 鼻胃管成像不全,无法判定
NGT - Normal train.csv 0/1 鼻胃管管端正常
CVC - Abnormal train.csv 0/1 中心静脉导管管端异常
CVC - Borderline train.csv 0/1 中心静脉导管管端临界
CVC - Normal train.csv 0/1 中心静脉导管管端正常
Swan Ganz Catheter Present train.csv 0/1 片上存在 Swan-Ganz 导管
label train_annotations.csv 字符串 该条掩码属于十一列中的哪一列
data train_annotations.csv 字符串 掩码的行程编码,按「起点 长度」成对排列

这里有一个命名上的历史包袱需要交代:论文正文把鼻胃管写作 NET(nasoenteric tube,鼻肠管),Kaggle 的列名写作 NGT(nasogastric tube,鼻胃管)。两者指的是同一组标注,只是学科习惯不同——放射科更倾向于用「鼻肠管」覆盖幽门后置管的情形,竞赛页面沿用了更常见的「鼻胃管」。看到论文表格的 NET 与 CSV 的 NGT 不一致时,不要以为是两套标签。

2.3 一条记录的完整解剖

取 train.csv 里任意一行,它的信息量是这样的:一个三十几位的 DICOM 实例号、一个患者号、十一个 0 或 1。没有年龄、没有性别、没有设备型号、没有采集日期、没有体位描述。整份数据把「影像之外的上下文」压到了最低。

这种极简带来一个直接后果:所有分层分析都只能靠 PatientID 去做。想看模型在不同人群上的表现,没有年龄可用;想控制设备差异,没有厂商字段。上游 ChestX-ray14 本身也只有年龄、性别与几个视图相关的粗字段,而且那些字段并不随本数据集一起下发。

一段最省事的读取代码长这样,它同时把十一列的实际阳性数打出来,顺手验证列名有没有拼写差异。

#-- 只依赖 pandas,读完就能看到 11 列各自的正样本数
import pandas as pd

LABELS = [
    "ETT - Abnormal", "ETT - Borderline", "ETT - Normal",
    "NGT - Abnormal", "NGT - Borderline", "NGT - Incompletely Imaged", "NGT - Normal",
    "CVC - Abnormal", "CVC - Borderline", "CVC - Normal",
    "Swan Ganz Catheter Present",
]

df = pd.read_csv("train.csv")
missing = [c for c in LABELS if c not in df.columns]
print("缺列:", missing)
print("影像数:", len(df), " 患者数:", df["PatientID"].nunique())
print("每张片平均阳性数:", round(df[LABELS].sum(axis=1).mean(), 3))
for c in LABELS:
    print(f"{c:28s} {int(df[c].sum()):6d}  {df[c].mean():.3%}")

跑完会看到两个有用的数:一是每张片平均阳性数约 1.7,说明绝大多数胸片只命中一到两列;二是十一列的阳性率从千分之三到七成不等,跨度三个数量级。

2.4 十一列的实际分布

列名 阳性数 占训练集的比例 备注
CVC - Normal 21,323 70.9% 含 Swan-Ganz 自动带入的部分
CVC - Borderline 8,460 28.1% 位置可接受但理想上应调整
ETT - Normal 7,240 24.1% 含全部气管造口病例
NGT - Normal 4,799 16.0% 管端距胃食管交界十厘米以上
CVC - Abnormal 3,198 10.6% 过深、异位、成环
NGT - Incompletely Imaged 2,748 9.1% 片内管段不足,无法判定
ETT - Borderline 1,138 3.8% 偏高或偏低但未越界
Swan Ganz Catheter Present 830 2.8% 只记存在,不判位置
NGT - Borderline 530 1.8% 越过交界但不足十厘米
NGT - Abnormal 267 0.9% 入气道或在食管内成环
ETT - Abnormal 79 0.26% 管端在隆突及以下或过高

这张表最该被记住的是最后一行。79 例,占千分之二点六。整个竞赛的评价指标是十一列 AUC 的算术平均,这意味着「ETT - Abnormal」这一列在总分里的权重,与占了七成样本的「CVC - Normal」完全相同。一个模型只要在这一列上排序能力差一点,总分就会被拖下去;而三千张的验证集里,这一列的正样本只有个位数,AUC 的方差极大。这是理解这份数据所有排行榜波动的钥匙。

2.5 目录结构与落盘形态

下载后是一个平铺的结构:train/ 下三万零八十三个 JPEG,test/ 下三千五百八十二个 JPEG,三个 CSV,外加两套 TFRecord。整包 13.13 GB、33,699 个文件,是竞赛数据页给出的统计。

TFRecord 的存在值得单独说一句。它是给代码竞赛准备的——提交时不允许联网,也不允许读取竞赛数据目录之外的东西,于是把 JPEG 与标签预打包成定长记录,省掉每个 Notebook 重新解码的时间。对今天的使用者,TFRecord 基本没有价值:你要做的是自己的预处理,直接用 JPEG 更灵活。

路径 内容 数量级
train/ 训练用 JPEG,文件名即 StudyInstanceUID 三万零八十三个
test/ 公开测试 JPEG,无标签 三千五百八十二个
train.csv 十三列标签表 三万零八十行
sample_submission.csv 十一列全零的提交模板 三千五百八十二行
train_annotations.csv 管端掩码,行程编码 一万七千九百九十九条
train_tfrecords/ 训练集打包版本 若干分片
test_tfrecords/ 公开测试集打包版本 若干分片

2.6 与同类胸片资源的字段差异

把库里几份胸片集并排看,字段密度的差别一目了然。疾病型数据集通常有十几个到二十几个疾病列,外加年龄性别;本数据集只有十一列,且全部围绕器械。

资源 标签对象 列数量级 是否有文本 是否可商用
ChestX-ray14 十四种胸部异常 十四列 无 是,公开许可
CheXpert 十四种观察项,含不确定档 十四列三态 有报告 研究用途
VinBigData 二十二类局部病灶,带框 框级 无 依渠道而定
本数据集 四类器械的位置档位 十一列二值 无 否,竞赛规则
MIMIC-CXR 报告文本加十四类弱标签 十四列 有报告 凭证化访问

值得注意的是「不确定」这一档的处理方式差异。CheXpert 把不确定作为独立的三态之一,训练时可以屏蔽;本数据集把「说不准」显式变成了一列——NGT - Incompletely Imaged 就是「因为片子没拍全,所以判不了」。这是一个很务实的设计:它把「成像不足」与「位置异常」分开了,避免把拍不全的片子硬塞进正常或异常。

§3 身份层:这批影像到底是谁的

3.1 一次反向操作:不拍新片,重标旧片

常规的数据集建设路径是:找医院、调影像、写规范、组织标注。RANZCR CLiP 走的是另一条路——影像用现成的,标注从零做。

具体做法写在论文里:先用一个在 MIMIC-CXR 上训练的模型,从 ChestX-ray14 里筛出疑似含导管或管线的胸片,把候选范围从十一万张压到几万张;再把这些片子交给放射科医师逐张判定。也就是说,模型只负责「这张片有没有管子」这一层粗筛,所有关于「管子位置对不对」的判断都是人工做的。

这个设计省掉的是影像采集与伦理审批——ChestX-ray14 本身已经公开、已经去标识、已经有 IRB 豁免的基础。论文对此的表述很直接:两个源数据集都是公开的,因此 IRB 批准被豁免。换来的是标注成本:五万条影像级标注加一万八千条像素级勾画,由二十九名医师分摊。

3.2 患者数与片数:一人近八张

平均每位患者 7.9 张胸片。这个比例远高于一般胸片集——ChestX-ray14 整体是三十万张对应三万余名患者,比例接近十比一,但那是全部住院与门诊影像的混合。

七点九这个数说明这批人是「反复拍片的人」:插了管的重症患者,往往一天一张甚至一天数张床旁片,用来确认管端没有移位。这批影像因此天然带有时间序列结构——同一个 PatientID 下的多张片,很可能记录的是同一根管子在不同时点的位置。这是一个被严重低估的用法:它让「管端随时间的漂移」成为可研究的对象,而不只是静态分类。

同时它也是一个陷阱。同一患者的片子高度相似,若按影像随机划分训练与验证,模型可以靠记住病人而不是学会判位置来刷分。论文没有讨论划分方案,竞赛也没公布;这件事只能由使用者自己做。

3.3 去标识做了什么,没做什么

去标识是继承来的,不是这一轮做的。论文的原话是:所用的两个源数据集都经过预先去标识。本数据集没有额外公布自己的去标识流程,也没有随数据下发 DICOM 头。

实际落到手上的信息只有两个标识:StudyInstanceUID 与 PatientID。前者是 DICOM 的检查实例号,本身不含姓名或日期;后者是不透明的患者编号。图像像素层面,ChestX-ray14 当年做过文字区域遮蔽处理,但那是上游的事,本数据集没有重新处理,也没有公布处理清单。

需要提醒的一点:JPEG 转换会丢弃 DICOM 里的所有元数据,包括设备参数、曝光条件、采集时间。这意味着用这份数据做「设备相关性」或「时间趋势」分析是不可能的,不是难,是字段根本不存在。

3.4 边界:它代表不了澳新人群

这是最容易被写错的一条。标注者来自墨尔本与悉尼的几家医院——皇家墨尔本医院、Alfred 医院、Monash 医院、东部健康等,论文作者单位也都在这几处。但影像来自美国马里兰州的 NIH 临床中心。

于是这份数据有两套地理属性,且方向相反:影像代表的是美国联邦医院的重症人群,标注代表的是澳新放射科医师的判断习惯。任何一句「这反映了澳大利亚的置管实践」都是错的,正确的说法是「这反映了澳新放射科医师如何判定美国一家医院影像上的管端位置」。

这个区分在方法学上不是吹毛求疵。当你要论证模型的跨机构泛化能力时,影像来源决定你能不能声称「跨人群」,标注来源决定你能不能声称「跨阅片者」。这份数据能支持后者,不能支持前者。

§4 标签层:三档判定是怎么切出来的

4.1 四个解剖地标

整套标注规范建立在四个地标上,全部可以在正位胸片上目测定位:隆突(左右主支气管下壁的交点)、主动脉弓上缘(主动脉结的顶)、腔房交界(右心缘与中间支气管下缘的交点)、胃食管交界(左膈内侧缘)。

为了让医师不需要拿尺子量,规范把距离换算成了肋骨:上胸区「两根后肋」约等于三点五厘米,下胸区「四根后肋」约等于十厘米。论文配了三张示意图专门讲这个换算,因为它是整套定义里最容易出现观察者差异的一步。

地标 用于 判定要点
隆突 气管插管 管端必须在隆突之上,越界即异常
主动脉弓上缘 气管插管、中心静脉导管 管端高于此处为正常下限的参照
腔房交界 中心静脉导管 管端应在其上方,越过即进入右房
胃食管交界 鼻胃管 管端需越过此界十厘米以上才算正常

4.2 气管插管:三档,外加一条造口特例

正常:管端在主动脉弓上缘之上,或距隆突超过两根后肋。

临界:管端低于主动脉弓,或距隆突不足两根后肋(偏低);或高出隆突两倍「两根后肋」即约七厘米(偏高)。

异常:管端位于隆突水平或以下,或高至第一胸椎水平及以上。

造口特例:所有气管造口导管一律记入「ETT - Normal」。这一条需要单独记,因为它意味着这一列里混入了生理上完全不同的一类器物——造口管本来就短,不存在「管端距隆突几厘米」的问题,但规范选择把它们统一归入正常。做细分研究时,这一列不是纯净的气管插管集合。

「ETT - Abnormal」只有 79 例,正是这套定义的直接结果。管端越过隆突是插得太深,属于必须立刻处理的错误,临床上发生率本来就低;而「偏高」这一侧的容错被放宽到了七厘米,大量轻微偏高被归入了临界而不是异常。定义的保守性,直接决定了这一列只有两位数样本。

4.3 鼻胃管:四档,多出来的一档是「拍不全」

正常:管端距胃食管交界十厘米以上。

临界:管端越过交界但不足十厘米,或管身在胃内打折。

异常:管端位于气管支气管肺系统内,或停在胃食管交界以上的食管内,或路径上成环、卷曲。

成像不全:片内可见的管段不足以判断位置。规范补充了一条细则——如果管端跑出了片外,但片内可见的管段超过十厘米,仍算作信息充分,判为正常。

第四档是这份数据设计上最聪明的地方。胸片是床旁拍的,视野常常切掉膈下,鼻胃管的末端经常就在片外。硬判会制造大量假阳性,直接丢弃会浪费样本,于是单独设一档把「证据不足」显式表达出来。做模型时,这一列的正确用法不是去预测它,而是拿它当掩码——预测其他三列时把这一部分样本降权或剔除。

4.4 中心静脉导管:三档,覆盖范围比字面宽

正常:管端投影于上腔静脉,位于主动脉弓上缘以下、腔房交界以上,且管身与血管壁夹角小于四十五度。

临界:沿预期路径但停在近端上腔静脉;或在上腔静脉内但夹角大于四十五度;或略低于腔房交界但管端仍在右房上三分之一以内。

异常:管端低于右房上三分之一;未沿预期路径;路径上成环或打折;异位于奇静脉、胸内静脉、主动脉或血管外。

这里的「CVC」是个宽口径概念。论文明确写出,CVC 这一类包含输液港、Hickman 导管、普通中心静脉导管与 PICC。也就是说,一列「CVC - Normal」背后至少有四种器物,它们的入路、长度、正常位置各不相同,却被压进同一个判定框架。做细分时必须知道这一点。

4.5 Swan-Ganz 那一列为什么不算位置标签

第十一列叫「Swan Ganz Catheter Present」,只有一个含义:片上有没有这根导管。它不判位置,理由写在论文里——Swan-Ganz 通常经中心静脉鞘置入,本身位置随鞘走,单独判它意义不大。

更关键的一条规则是:所有带 Swan-Ganz 的片子,被自动标记为「CVC - Normal」。这是一条约定,不是一次判定。它解释了为什么 CVC 三列的阳性数之和会超过影像总数,也解释了为什么「CVC - Normal」这一列不能直接当作「中心静脉导管位置正常」的独立证据——里面有一部分是自动填充的。

器械家族 列数 阳性合计 与影像数的关系
气管插管 3 8,457 小于影像数,部分片子无插管
鼻胃管 4 8,344 小于影像数,部分片子无鼻胃管
中心静脉导管 3 32,981 大于影像数,存在多管并存与自动填充
Swan-Ganz 1 830 独立存在性标记

4.6 标签不互斥,这是结构而不是瑕疵

不少人看到三档就会默认它们是 one-hot:一张片只能属于正常、临界、异常之一。数据不支持这个假设。CVC 三列合计三万二千九百八十一,比三万零八百零三的总影像数还多,唯一解释是同一张片可以同时命中同一家族的两列——比如病人身上有两条中心静脉导管,一条位置正常、一条过深。

这不是标注错误,是任务设定:每一列独立判定,一列一个二分类头。理解这一点会直接影响损失函数的选择:用 softmax 会强制三档互斥,等于把一个合法情形判成非法;用逐列 sigmoid 才对。

4.7 一万八千条掩码:被低估的那一半

一万七千九百九十九条人工勾画的管端掩码,是这份数据里最容易被忽略的部分。它只覆盖一部分训练样本,官方说明是「作为额外信息提供」,不参与评分。

但它的价值在竞赛之后反而上升了。分类任务已经有大量现成方案,管端分割却缺乏公开数据;近一万八千条掩码足够训一个可用的管端检测器,而管端位置一旦能定位成坐标,三档判定就可以退化成几何计算——量一下管端到隆突的像素距离,再除以肋骨间距,判定就不再依赖黑箱。

竞赛里的高分方案大多走了这条路:先用掩码训分割或强监督教师模型,再把中间特征蒸馏给分类学生模型。这个思路在赛后写成的复盘里被反复提到,也是这份数据对方法学的实际贡献。

§5 交付层:怎么取、怎么读、怎么用

5.1 三道门

第一道是账号。数据页不登录只能看到文件名清单与体积,看不到内容。

第二道是规则同意。页面写明「要查看这些数据,你需要同意竞赛规则」,点击后账号才获得下载权限。同意的是竞赛规则全文,其中包含非商业使用与禁止再分发的条款。

第三道是竞赛形态。这是一场代码竞赛,隐藏测试集只在提交时可见,任何下载路径都拿不到它。

三道门叠加的结果是:训练集与公开测试集可下载,隐藏测试集永久不可得,且整份数据的使用范围被规则限定。

5.2 下载与校验

Kaggle 提供命令行工具,认证后可以按竞赛名拉取。下载完先数文件,比看进度条可靠。

#-- 配置令牌后按竞赛名拉取;先确认目录为空,避免半包覆盖
pip install --quiet kaggle
mkdir -p ranzcr && cd ranzcr
kaggle competitions download -c ranzcr-clip-catheter-line-classification -q
unzip -q ranzcr-clip-catheter-line-classification.zip
printf 'train jpg: '; ls train | wc -l
printf 'test  jpg: '; ls test  | wc -l
printf 'csv 行数:  '; wc -l < train.csv
du -sh .

跑完应该看到训练 JPEG 三万零八十三个、测试 JPEG 三千五百八十二个、train.csv 三万零八十行(含表头)。三个数只要有一个对不上,说明包没下完整,重下比排查快。

5.3 解码管端掩码

train_annotations.csv 的 data 列是行程编码,格式为「起点 长度 起点 长度」,起点从 1 开始计数。解码后是一张与原图同尺寸的二值掩码。

#-- 行程编码按列优先展开;若结果看起来被转置,把 order 换成 "C" 再试一次
import numpy as np
import pandas as pd
from PIL import Image

def rle_decode(rle: str, shape, order: str = "F") -> np.ndarray:
    s = rle.split()
    starts = np.asarray(s[0::2], dtype=np.int64) - 1
    lengths = np.asarray(s[1::2], dtype=np.int64)
    flat = np.zeros(shape[0] * shape[1], dtype=np.uint8)
    for st, ln in zip(starts, lengths):
        flat[st:st + ln] = 1
    return flat.reshape(shape, order=order)

ann = pd.read_csv("train_annotations.csv")
row = ann.iloc[0]
img = Image.open(f"train/{row['StudyInstanceUID']}.jpg")
h, w = img.size[1], img.size[0]
mask = rle_decode(row["data"], (h, w))
print(row["label"], mask.shape, int(mask.sum()))

解码后做一次目视检查是必要的:把掩码叠加到原图上,看它是否正落在管身上。这一步能同时验证编码方向、宽高顺序与是否需要对 JPEG 做缩放。官方说明影像已上采样到原始分辨率,但不同来源的片子尺寸并不统一,逐张读 Image.size 比假设一个固定尺寸安全。

5.4 按患者分组划分

这是整份数据上最容易出错、也最影响结论的一步。同一患者平均近八张片,随机划分会让近似的片子同时出现在训练与验证两侧。

#-- 按 PatientID 分组做五折,保证同一患者的片子只落在一侧
import pandas as pd
from sklearn.model_selection import GroupKFold

LABELS = [
    "ETT - Abnormal", "ETT - Borderline", "ETT - Normal",
    "NGT - Abnormal", "NGT - Borderline", "NGT - Incompletely Imaged", "NGT - Normal",
    "CVC - Abnormal", "CVC - Borderline", "CVC - Normal",
    "Swan Ganz Catheter Present",
]

df = pd.read_csv("train.csv")
gkf = GroupKFold(n_splits=5)
for fold, (tr, va) in enumerate(gkf.split(df, groups=df["PatientID"])):
    a, b = df.iloc[tr], df.iloc[va]
    overlap = set(a["PatientID"]) & set(b["PatientID"])
    rare = int(b["ETT - Abnormal"].sum())
    print(f"fold {fold}: 训练 {len(a)} 验证 {len(b)} 患者重叠 {len(overlap)} 稀有列正样本 {rare}")

输出里「患者重叠 0」是必须看到的;「稀有列正样本」那一列会让你立刻明白为什么五折交叉验证在这份数据上不稳——有些折的验证集里,异常插管只有个位数样本。

5.5 三个工程坑

第一个坑是把 test/ 当成有标签的验证集。它没有标签,sample_submission.csv 是十一列全零的模板,拿它算指标只会得到零。要用验证集,只能自己从 train.csv 里切。

第二个坑是假设所有 JPEG 同尺寸。上游 ChestX-ray14 的影像尺寸并不完全统一,虽然多数是方形,但缩放与填充策略不同会直接改变管端的相对位置,进而影响以肋骨间距为尺度的判定。

第三个坑是在提交环境里联网。竞赛当时禁止提交 Notebook 访问网络,很多人把预训练权重写成了下载链接,本地跑得通、提交就失败。今天不再受这条限制,但如果你要复现当年的排行榜成绩,这个约束仍然成立。

§6 与库内条目的关系

这份数据在库内的位置很特殊:它是唯一一个标签对象是「器物」而不是「组织」的胸片集。围绕它的互链有三条轴。

第一条是影像同源轴。它的像素来自 ChestX-ray14,而库内没有收录 ChestX-ray14 本身;能间接对接的是同样源自 MIMIC 体系的 mimic-cxr,两者在病例维度上不重叠,但同属美国重症人群的胸片,适合做跨库一致性讨论。

第二条是任务范式轴。chexpert 代表「观察项三态标注」,vinbigdata-cxr 代表「病灶框标注」,siim-acr-pneumothorax 代表「单病种像素标注」,本数据代表「器物位置标注」。四者构成一条从「有没有病」到「操作对不对」的谱系,横向对比时能说清标签语义的差异。

第三条是可用性与许可轴。openi-iu-xray、medpix-nlm 是教学型资源,规模小、许可宽松;本数据规模大、许可收紧。做选型时这两端经常被放在一起比。

库内条目 与本数据的关系 什么时候该转过去
vinbigdata-cxr 同为胸片,但标的是病灶框 需要病灶定位而非器物判定
chexpert 同为多标签,但标的是观察项三态 需要疾病标签、且能接受不确定档
mimic-cxr 同源体系的重症胸片,带报告 需要文本监督或时间序列
openi-iu-xray 教学型胸片,规模小 只需要少量示例、要宽松许可
medpix-nlm 病例教学库,带图注 需要典型病例对照阅读
padchest 西班牙语区胸片,标签更杂 需要跨语种、跨人群对照
siim-acr-pneumothorax 单病种像素标注 做气胸分割
radqa 放射报告问答 需要文本侧任务

检索路径建议是:先按「标签对象」筛——要器物还是要病灶;再按「许可」筛——能不能商用;最后才看规模。倒过来做,很容易被三万张这个数字吸引,落地时才发现授权过不去。

§7 质量评估与局限性

7.0 阅读本节前需要知道的一件事

用评价疾病数据集的尺子来量它,会得出完全错误的结论。

疾病数据集的常见评价维度是:类别覆盖是否全面、阳性率是否接近人群患病率、标注是否经过病理金标准确认。这三条放在本数据上全部不适用——它本来就不打算覆盖疾病,阳性率由「插管病人里出错的概率」决定而不是人群患病率,而管端位置没有病理金标准,只有专家共识。

正确的评价框架应该问三件事:定义是否可复现、标注者之间是否一致、类别不平衡是否被诚实披露。这三条它都做了正面回应,代价是另外三件事它做不到:没有临床结局随访、没有跨机构验证、没有独立的第三方复核。

7.1 五维评分

维度 评价 依据
定义清晰度 高 四个解剖地标加肋骨换算,论文配图逐条说明
标注一致性 中高 三成双标、一成三标,Dawid-Skene 合并,抽检分歧约一成五
类别平衡性 低 最稀列与最密列相差两个数量级
可复现性 中 数据可下载,但预处理脚本只公开了一部分
许可友好度 低 非商业、禁止再分发,无开放许可替代入口

7.2 定义本身是可争议的

「管端应停在隆突上方两厘米」这类说法在教科书里有,但没有全球统一数值。论文自己承认了这一点:导管的最佳位置没有单一定义,观察者的感知能力与经验差异会带来变异。

更麻烦的是体位。大量床旁片存在旋转、吸气不足、非标准投照,论文的原话是「这让严格套用定义变得困难,标注者被要求在这些情况下使用临床判断」。一旦引入「临床判断」,定义的可复现性就打折了。

第三层是投影本身。胸片是三维物体的二维投影,长度会被系统性低估。论文对此的判断很坦率:正因为如此,他们采用的定义偏保守,用它训练出来的模型在真实场景里很可能偏高敏感度——也就是更容易报「异常」。这句话对部署很重要:一个在这份数据上训练到 AUC 零点九七的模型,放到临床上大概率会多报,而不是少报。

7.3 一致性是怎么做出来的

流程值得完整复述一遍,因为它是这份数据最扎实的部分。

每位标注者先接受三十分钟培训,培训内容是定义与示例片;标注过程中持续抽检,发现与定义不符就反馈;标注者彼此看不到对方结果。约三成的片子由两人独立标注,一成由三人标注。合并用改进的 Dawid-Skene 模型——一种同时估计「每条标签的真值」与「每个标注者的可靠性」的迭代方法。

合并结果抽了 5,100 条交给资深标注者复核,分歧率约一成五。这一成五没有再迭代,而是被当作金标准反过来再训一次模型,最终高可靠度的标注者被允许单人标注剩余片子。

这里有一个必须诚实指出的取舍:允许高可靠度标注者单人标注,等于用历史表现替代了即时复核。它提高了效率,也让「单人标注的那部分样本没有第二双眼睛」成为事实。论文没有公布这部分占比,只公布了双标与三标的占比。

7.4 类别不平衡的具体后果

十一列 AUC 取算术平均,是官方指标。这个指标对稀有列极其敏感。

设想一个模型在十列上做到零点九八,在「ETT - Abnormal」上只有零点八五。算术平均下来是零点九六八。看起来还不错。但那一列的验证样本可能只有几十个正例,AUC 的置信区间宽到正负零点一。换句话说,排行榜上零点零零一的差距,很可能完全落在噪声里。

这也解释了赛后复盘里一个反复出现的观察:前排队伍的分差极小,很多方案在私有榜上大幅换位。不是模型不稳,是指标在稀有列上的方差太大。

列 阳性率 3,000 张验证集的期望正例 对该列 AUC 的稳定程度
CVC - Normal 70.9% 约 2,100 稳定
ETT - Normal 24.1% 约 720 稳定
NGT - Abnormal 0.9% 约 27 波动明显
ETT - Abnormal 0.26% 约 8 极不稳定

7.5 外部验证矩阵

验证类型 是否做过 说明
同源留出 是 竞赛的隐藏测试集,同属 ChestX-ray14 筛选池
跨机构 否 全部影像来自单一联邦医院
跨阅片者 部分 二十九名标注者构成内部多样性,但没有独立机构复核
与临床结局对照 否 无随访、无并发症记录
与器械金标准对照 否 无透视、无术后确认

这张表的读法是:它能证明「模型学会了这批标注者的判断」,不能证明「模型能在别的医院替代医师」。

7.6 DAIMS 就绪度自查

按 DAIMS 的常见检查项过一遍,能看出它离「可直接进入生产流程」还有多远。数据能否直接加载:能,JPEG 加 CSV,没有专有格式。标识是否唯一:能,StudyInstanceUID 一图一号。是否有官方划分:有,训练与测试固定,但患者级隔离未公开。是否有数据字典:有,十一列的名字本身就带语义,论文另给了定义。是否有许可声明:有,但只有竞赛规则一种形态。是否有预处理文档:部分,论文描述了上采样与转 JPEG,但没有发布完整脚本。是否可追溯原始采集:能追到 ChestX-ray14,但追不到具体检查日期与设备。是否有版本号:没有,竞赛数据页不设版本,这一点与 PhysioNet 类资源差别很大。

倒数第二项值得展开。可追溯性的断点在 JPEG 转换:一旦转成 JPEG,曝光参数、设备型号、采集时间全部消失,而这些恰恰是判断「这张片为什么拍得不好」的关键。做质量归因研究时,这个断点无法绕过。

7.7 它为何能持续

一个竞赛数据集在赛后通常会慢慢失效:链接失效、无人维护、逐渐被更新的集子取代。这一份没有,原因有三层。

第一层是需求刚性。置管位置复核是每天发生的操作,不是研究选题。只要还有中心静脉导管被插进去,就有人需要自动判位。这个需求不会因为某个数据集过时而消失。

第二层是替代品的缺失。论文里有一句判断很关键:MIMIC-CXR 与 ChestX-ray14 里确实含导管,但「目前没有公开的标签描述这些导管的存在或位置」。五年过去,这句话大体仍然成立——公开的、带管端位置标签的胸片集,仍然只有这一份。

第三层是机构承载。它不是某个博士生的毕业作品,而是澳新放射学会以学会名义推动的项目,背后还有 MD.ai 提供标注工具、Kaggle 提供分发。学会有持续维护的动机:置管安全是它的专业议题。

三层叠加的结果是:即使数据页最终下线,它已经被几十篇论文引用、被上百个 Notebook 复现,事实上成了这个细分任务的标准基准。

§8 生态位与历史

8.1 时间线

2020 年 12 月 14 日开赛,2021 年 3 月 8 日截止报名与组队,3 月 16 日最终提交截止。同年 10 月 29 日,数据描述论文在 Scientific Data 上线。

这个顺序值得注意:论文比竞赛晚了七个月。也就是说,在论文可引用之前,已经有上千支队伍在用这份数据,引用只能指向竞赛页面。这解释了为什么早期文献里对它的引用格式五花八门,有的引 Kaggle,有的引竞赛名,有的直接引数据页 URL。

8.2 竞赛留下了什么

8,335 人报名,1,854 人实际参与,1,547 支队伍,28,112 次提交,五万美元奖金分给前七名。

比名次更有价值的是赛后公开的方案。它们共同确认了一件事:在这份数据上,纯分类不够,把管端先定位出来再判档位,效果明显更好。这条经验后来被广泛迁移到其他「器物检测」类任务上——比如确认喂养管、确认引流管、确认起搏导线。

竞赛还留下了一个副产品:公开 Notebook 里大量的数据探索代码,成为后续使用者理解十一列分布的事实参考。这也带来一个问题,很多人直接抄了探索结论却没核对口径,于是「三万张」「四万张」「四万八千张」在不同文章里混用,见 §2.1。

8.3 在胸片公开集谱系里的位置

代际 代表资源 主要贡献 本数据的位置
第一代 ChestX-ray14 证明弱监督可做多标签 建立在它之上
第二代 CheXpert、MIMIC-CXR 引入不确定档与报告文本 未使用文本
第三代 VinBigData、RSNA 系列 医师逐例画框 不用框,用掩码与档位
第四代 多中心、多模态集 跨机构泛化 单中心,未进入
旁支 本数据集 把标签对象换成器物 这一支几乎没有同类

最后一行是它真正的生态位。它不是第四代的一员,也不是第三代的一个变体,而是另开了一支:标签对象从「组织」换成了「器物」。这一支目前成员极少,公开可用的只有它。

8.4 社区的两个稳定用法

第一个是分类基线。直接用十一列训多标签模型,报逐列 AUC 与平均值。这条路门槛最低,也是绝大多数引用它的论文的做法。

第二个是分割辅助。先用一万八千条掩码训管端分割,再拿分割结果做几何判定,或者把分割特征蒸馏进分类器。这条路在竞赛里被证明有效,在赛后研究中被反复复用。

还有第三种正在成形:把它当作「操作质量」标签源,与院内数据联调,做置管后的自动预警。这条路目前缺少公开的落地报告,主要障碍是许可——非商业条款让医院的信息化厂商很难直接使用。

8.5 为什么没有第二个同类数据集

一个自然的疑问是:既然需求这么刚性,为什么五年过去没有出现竞品。

原因大概是标注成本的结构。疾病标签可以靠报告文本弱监督,几万张片的标签几乎免费;管端位置没法从报告里可靠抽取——报告里写「管端位置良好」的比例不高,写了也未必描述具体位置。于是只能靠医师逐张看,一张片几十秒,三万张就是几百小时的人力。没有学会级别的组织能力,做不动。

第二个原因是器械种类太多。这份数据只做了三类,就已经需要二十九名医师、四轮一致性迭代。要做全,成本会翻几倍。

§9 使用指引

9.1 三种角色的路径

角色 第一步 第二步 不要做
算法研究者 读论文的标签定义一节 按患者分组切验证集 别用随机划分报指标
临床信息化团队 核对许可是否覆盖你的场景 在院内小样本上做外部验证 别把公开集指标当验收标准
数据工程 先数文件、校验完整性 写解码与缓存管线 别假设 JPEG 尺寸统一

9.2 一条最短的可用流程

先把数据落盘并校验数量,再读 CSV 打出十一列分布确认列名,然后按 PatientID 做五折,最后训一个逐列 sigmoid 的多标签模型,损失用带权重的二元交叉熵——权重按每列正样本数的倒数开方,避免稀有列被淹没。

评估时不要只看平均 AUC。把十一列拆开报,特别是把「ETT - Abnormal」单列拿出来看置信区间。如果这一列的验证正例少于三十个,任何结论都不该写进论文的主表。

部署前必须做的一件事是阈值校准。平均 AUC 只关心排序,不关心阈值;而临床要的是「超过多少分就提醒」。在这份数据上,由于定义保守,模型会系统性地偏高报异常,阈值需要往外推。

9.3 引用方式

引用这份数据有两层:数据本身引竞赛页面,方法学引论文。规范写法是把两者都给,并注明使用的是训练集还是公开测试集,因为隐藏测试集的成绩无法复核。

如果只引论文,会漏掉「数据以竞赛形式发布、许可受竞赛规则约束」这个关键信息;如果只引竞赛页,会漏掉标签定义的完整出处,使用者无法判断你的标签理解是否正确。

§10 AI 使用声明

项目 声明
性质 公开的器械位置标注集,非诊断数据集
适用用途 多标签分类预训练、管端分割、质控模型研究、标注方法学研究
不建议用途 疾病诊断、治疗决策、器械选型
伦理边界 不得用于再识别;不得声称代表澳新或美国人群
商业使用 竞赛规则禁止,需另行授权
引用要求 同时引竞赛页面与 Scientific Data 论文
版本状态 无版本号,以竞赛数据页当前状态为准
已知缺陷 类别极不平衡、单中心影像、无临床结局

生成式模型在复述这份数据时,最容易说错四个数。第一个是影像总数,把宣传口径的四万当成可下载量。第二个是标签数,把十一列说成十一种器械。第三个是患者数,把患者数说成影像数。第四个是最稀列样本量,把 79 说成七百九或者干脆不提。

还有一类错误不属于数字,属于定位:把「标注者来自澳新」写成「数据来自澳新」。这一句错下去,整段关于人群代表性的讨论都会失效。

常见误读(避坑清单)

常见说法 实际情况 证据
「这是澳大利亚的胸片数据集」 影像是美国 NIH 临床中心的,澳新只提供标注者 竞赛致谢段感谢 NIH 提供 ChestX-ray14;论文写影像来自该库
「11 类是 11 种管子」 只有四类器械,三类各拆三档,一类只记存在 数据页列名,三档共用同一器械前缀
「有胸腔引流管」 没有,官方明确排除 竞赛讨论区组织方回复:为降复杂度未纳入胸腔引流等
「标签是位置对错的二分类」 是三档有序判定加一档成像不全,逐列独立 论文标签定义一节
「三档互斥,一张片只能中一列」 不互斥,同一家族可同时命中两列 CVC 三列合计超过影像总数
「Swan-Ganz 那一列判的是位置」 只记存在与否 数据页列名与论文说明
「所有气管插管都是插管」 气管造口一律并入正常档 论文写明造口管全部记入正常
「三万张就是全部」 三万是可下载训练集,另有公开与隐藏测试 数据页与 sample_submission 行数
「按影像随机切分就行」 同一患者平均近八张,必须按患者分组 PatientID 去重后为三千七百九十一
「许可是 CC BY 之类可以商用」 竞赛规则,非商业,禁止再分发 竞赛规则 Data Access 段原文
「测试集有标签可以自评」 公开测试集无标签,隐藏集从不公开 sample_submission 为全零模板
「标注是模型生成的」 模型只做预筛,位置判定全部人工 论文方法节与致谢的标注者名单

FAQ

Q1:这批胸片是澳大利亚或新西兰的病人吗?
不是。影像全部来自美国 NIH 公开发布的 ChestX-ray14,采集于 NIH 临床中心。澳新提供的是二十九名标注者与一套书面判定规范。把影像来源与标注来源混为一谈,是引用这份数据时最高频的错误。

Q2:11 个标签里到底有没有胸腔引流管?
没有。十一列是三档气管插管、四档鼻胃管、三档中心静脉导管,加一列 Swan-Ganz 存在性。组织方在竞赛讨论区明确说过,为降低任务复杂度,没有纳入胸腔引流管等其他管线。

Q3:三档判定和「在体内 / 不在体内」是什么关系?
完全不同的判据。「在不在体内」是存在性判断,而这套标签假设器械已经在体内,判的是管端相对解剖地标停得合不合适。正常、临界、异常三档对应的是「不用动」「最好调整」「必须立刻调整」,是处置紧迫度,不是有无。

Q4:为什么最稀的一列只有 79 例?
因为定义保守。气管插管越过隆突才算异常,而「偏高」这一侧放宽到了隆突上方约七厘米,大量轻微偏高被归入临界档。定义的宽严直接决定了样本量,这不是抽样偏差。

Q5:能不能只用它训一个通用的胸片编码器?
可以,但要清楚它学到的是「器物」特征。三万张的量级足够训一个可迁移的骨干,不过由于影像全部来自单一机构,学到的纹理与设备特征也单一。用作预训练起点可以,用作泛化性证据不行。

Q6:训练集和测试集在患者层面隔离吗?
官方没有公布。train.csv 提供 PatientID,你能确认训练集内部有三千七百九十一名患者;但公开测试集与隐藏测试集的患者构成从未披露。稳妥做法是假设未隔离,自己从训练集里切一份按患者分组的验证集,所有结论以它为准。

Q7:图像有 DICOM 头吗?
没有。全部是 JPEG,DICOM 元数据在转换时被丢弃。设备型号、曝光参数、采集时间都取不到。需要这些字段时,只能回到上游 ChestX-ray14 按 StudyInstanceUID 关联,且上游本身也不含完整设备参数。

Q8:分割掩码覆盖多少张图?
论文给的是一万七千九百九十九条掩码,条数不等于张数——一张片可以有多条器械的掩码。官方没有公布被覆盖影像的确切数量,只说是一部分训练样本。做分割任务时按条数规划,不要按张数。

Q9:现在还能下载吗?
数据页仍在,文件清单与体积可见,但下载需要登录 Kaggle 并接受竞赛规则。隐藏测试集从来不提供。如果所在机构无法接受「非商业使用、禁止再分发」这两条,就没有合规的获取路径。

Q10:为什么排行榜前几名的分差那么小?
因为指标是十一列 AUC 的算术平均,其中一列的正样本只占千分之二点六。这一列在验证集上的 AUC 方差极大,模型能力之外的因素占比很高。分差小不等于水平接近,只说明指标的分辨率到了极限。

附录 A:标注类别全表

序号 列名 器械 档位 阳性数 判据摘要
1 ETT - Abnormal 气管插管 异常 79 管端在隆突及以下,或高至第一胸椎
2 ETT - Borderline 气管插管 临界 1,138 低于主动脉弓,或距隆突不足两根后肋,或高出约七厘米
3 ETT - Normal 气管插管 正常 7,240 管端在主动脉弓上缘之上;含全部气管造口
4 NGT - Abnormal 鼻胃管 异常 267 入气道、停在食管内、路径成环
5 NGT - Borderline 鼻胃管 临界 530 越过胃食管交界但不足十厘米,或胃内打折
6 NGT - Incompletely Imaged 鼻胃管 证据不足 2,748 片内管段不足以判断;管端出片但可见超十厘米者除外
7 NGT - Normal 鼻胃管 正常 4,799 管端距胃食管交界十厘米以上
8 CVC - Abnormal 中心静脉导管 异常 3,198 过深至右房下三分之二、异位、成环、血管外
9 CVC - Borderline 中心静脉导管 临界 8,460 近端上腔静脉、夹角过大、略入右房上部
10 CVC - Normal 中心静脉导管 正常 21,323 上腔静脉内、弓下交界上、夹角小于四十五度;含 Swan-Ganz 自动带入
11 Swan Ganz Catheter Present Swan-Ganz 导管 存在性 830 只记有无,不判位置

附录 B:文件与字段

文件 行数或数量 关键字段 用途
train.csv 三万零八十条数据行 StudyInstanceUID、PatientID、11 列标签 训练与自建验证
sample_submission.csv 三千五百八十二条 StudyInstanceUID、11 列 公开测试集清单,标签全零
train_annotations.csv 17,999 行 StudyInstanceUID、label、data 管端掩码,行程编码
train/ 三万零八十个 JPEG 文件名为 StudyInstanceUID 影像
test/ 三千五百八十二个 JPEG 同上 公开测试影像,无标签
train_tfrecords/ 若干分片 序列化的图像与标签 竞赛提交环境专用
test_tfrecords/ 若干分片 序列化的图像 竞赛提交环境专用

附录 C:术语表

术语 含义
CLiP Catheter and Line Position 的缩写,竞赛与数据集共用此名
ETT 气管插管,含经口、经鼻与气管造口三类
NGT / NET 鼻胃管 / 鼻肠管,本数据中指同一组标注,列名用 NGT
CVC 中心静脉导管,宽口径,含输液港、Hickman、PICC
Swan-Ganz 肺动脉漂浮导管,本数据只记存在与否
隆突 左右主支气管分叉处下壁,气管插管的深度红线
腔房交界 上腔静脉与右心房交界,中心静脉导管的深度红线
胃食管交界 食管入胃处,鼻胃管位置判定的基准
两根后肋 上胸区约三点五厘米的目测换算单位
四根后肋 下胸区约十厘米的目测换算单位
三档判定 正常、临界、异常,对应不用动、最好调、必须调
成像不全 因视野裁切导致无法判定,独立成一列
行程编码 用「起点 长度」成对描述二值掩码的压缩格式
Dawid-Skene 同时估计标签真值与标注者可靠性的迭代模型
平均列 AUC 逐列算 ROC 曲线下面积再取算术平均
患者级划分 同一患者的全部影像只落在一侧,防止泄漏
医源性风险 由诊疗操作本身带来的伤害可能,本数据的核心语义

附录 D:十条一句话问答

问题 一句话答案
谁做的 澳新放射学会组织,二十九名放射科医师标注
影像哪来的 美国 NIH 的 ChestX-ray14
多少张 可下载的训练集三万零八十张
多少患者 三千七百九十一名,平均每人近八张
几个标签 十一列二值,覆盖四类器械
判什么 管端相对解剖地标的位置,分三档
有分割吗 有,一万七千九百九十九条管端掩码
能商用吗 不能,竞赛规则限定非商业
还有测试集吗 公开三千五百八十二张无标签,隐藏集约一万四千张
最强的替代品 目前没有同类公开集

附录 E:许可与引用

许可方面只有一条路径:Kaggle 竞赛规则。原文的关键句是非商业使用,且禁止再分发与再识别。论文没有提供 CC 类许可,数据页也没有第二个入口。这意味着任何衍生分发——包括把影像打包进你自己的数据集、镜像到内部服务器再对外提供——都落在禁止范围内。模型权重是否受约束,规则没有明说,稳妥理解是「用它可以,卖它不行」。

引用建议给两条,缺一不可:

Seah J, Law M, Culliton P, Dowd S. RANZCR CLiP - Catheter and Line Position
Challenge. Kaggle; 2020. https://www.kaggle.com/competitions/
ranzcr-clip-catheter-line-classification

Tang JSN, Seah JCY, Zia A, et al. CLiP, catheter and line position dataset.
Scientific Data. 2021;8. doi:10.1038/s41597-021-01066-8

第一条给数据出处与许可,第二条给标签定义的方法学依据。只引第二条会漏掉使用约束,只引第一条会让使用者无法核对标签语义。

编辑说明

事实核验集中在 2026 年 10 月 29 日,来源为 Kaggle 竞赛概览页、数据页、规则页与讨论区,Scientific Data 论文(DOI 10.1038/s41597-021-01066-8,PMID 34711836)全文,以及若干赛后公开方案的说明。未下载任何影像,因此本篇不含分布统计,也不含需要全量数据才能得出的数字。

规模采用「可核口径优先」原则:30,083 取自 train.csv 行数与论文,三千五百八十二取自 sample_submission 行数,隐藏测试规模只写官方表述的约数。官方宣传的四万与三者相加的差异未被调和,已在 §2.1 说明,未做取舍性改写。

标签的中英文命名差异(论文 NET 与 CSV 的 NGT)按「同一组标注的两种习惯」处理,未视为两套标签。

许可部分只复述规则原文的关键限定,未对「模型权重是否受约束」给出确定性结论,因为这属于法律解释而非页面事实。

与库内 vinbigdata-cxr、chexpert、mimic-cxr 等篇的分工是任务范式层与数据层,若同一数字在不同篇出现不一致,以官方页面原文为准。


相关数据集导航

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

  • spr-xray-age — 共享标签:医学影像 / X光影像 / 图像分类 / 挑战赛数据集
  • chexpert — 共享标签:医学影像 / X光影像 / 图像分类
  • nih-chestx-ray14 — 共享标签:医学影像 / X光影像 / 图像分类
  • image-embeddings-mimic-cxr — 共享标签:医学影像 / X光影像 / 图像分类
  • mimic-cxr-jpg — 共享标签:医学影像 / X光影像 / 图像分类
  • acouslic-ai — 共享标签:医学影像 / 图像分类 / 挑战赛数据集
  • cxr-lt — 共享标签:医学影像 / X光影像 / 图像分类 / 挑战赛数据集
  • rsna-series — 共享标签:医学影像 / X光影像 / 挑战赛数据集
  • padchest — 共享标签:医学影像 / X光影像 / 图像分类
  • brax — 共享标签:医学影像 / X光影像 / 图像分类

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

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

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

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