信息速览
这是美国国家医学图书馆(NLM)与印第安纳大学(Indiana University)联合整理的一份胸部 X 光图文配对数据:3,955 份放射科报告,与 7,470 幅对应的胸片放在一起公开发布,任何人无需注册即可下载。它于 2015 年随 NLM 的图像检索服务 Open-i 上线,论文发表在《美国医学信息学学会会刊》(JAMIA),许可为知识共享署名—非商业性使用—禁止演绎 4.0(CC BY-NC-ND 4.0)。在 MIMIC-CXR 出现之前,它是唯一一份规模可观、影像与文字一一对应、且文字是真实放射科医师所写的公开数据。
它填的是一类很具体的空白。2015 年之前,公开的医学影像数据要么只有图,要么只有文(如 i2b2 注记集),没有一份能同时给出图与写这张图的报告。缺了配对,报告生成、图文检索、视觉语言预训练就只能靠私有数据,结果无法复现、无法横向比较。另一个设计选择是「人做一遍、机器再补一遍」:2 名受过医学信息学训练的人员逐条编码阳性发现,NLM 的医学文本索引器(Medical Text Indexer,MTI)再自动生成候选词,两者并存于同一个 XML。
使用时先把三个层级分清:报告包只有 1 兆出头,几分钟下完,可直接做文本分析;PNG 包 1.27 GiB,够做分类与报告生成的多数实验;DICOM 包 75 GiB,只在需要原始像素精度时碰。然后接受两个硬约束——许可禁止商用与演绎,样本量不到四千。最后先决定剔不剔缺失 FINDINGS 段的样本,这一步会改写可用样本量与后续全部指标的可比性。
§1 它是什么:定义、来源与版本
Indiana University Chest X-ray Collection 是一份「一次检查 = 一份报告 + 若干幅影像」结构化的胸片数据集。每条记录的键是 CXR 编号(如 CXR1000),记录里包含检查日期、四段式放射报告文本、人工与自动两套 MeSH 编码块,以及指向该次检查影像文件的引用列表。报告是放射科医师在临床工作中写下的真实报告,不是为建库重新撰写的描述;影像是同一次检查在医院的影像归档与通信系统(Picture Archiving and Communication System,PACS)里的原始数字影像,经脱敏后发布。
它与常见的「图像分类数据集」在结构上根本不同:分类数据集的最小单位是「一幅图 + 一个标签」,这份数据的最小单位是「一次检查 + 一份文本 + 一组图」。一份报告往往对应两幅图(后前位正面片与侧位片),所以报告与影像的计数不相等。任何按「图」或按「报告」计数的下游统计,都必须先说清楚单位。
数据源头是印第安纳患者照护网络(Indiana Network for Patient Care,INPC)。这是一个覆盖印第安纳州多家医疗机构的临床数据交换网络,研究者在获得机构审查委员会(IRB,批件号 OHSRP# 5357)批准后,从网络内两家大型医院系统各抽取 2,000 例门诊后前位(posterior–anterior,PA)胸片检查的叙述性报告,合计 4,000 例。抽取时明确了三条:每个患者只取一次检查;只取门诊检查;总量控制在 4,000 例以内,因为这是团队能人工逐条复核的上限。
研究者用报告中携带的检查流水号(accession number)回到医院的 PACS 取出对应的 DICOM 影像,随后用虚拟标识符把影像与报告重新关联,并从两侧一并移除 HIPAA 定义的患者标识。文本侧用 Regenstrief 研究所开发的 Scrubber 工具做自动脱敏;影像侧用北美放射学会(RSNA)的临床试验处理器(Clinical Trial Processor,CTP)配合 DICOM Supplement 142 的临床试验去标识规范处理。自动脱敏之后还有一道人工复核:文本逐条看,影像逐幅看,这一步决定了最终公开子集与原始抽取之间的差额。
入库条件有两条硬门槛:报告必须带有明确标注的「检查原因」「所见」「印象」三个段落头,影像必须同时包含后前位与侧位两个投照角度。抽取的约四千例里只有 4 例不满足,剩下的一批报告与八千余幅影像进入后续流程。后者常被二手资料误当成「数据集规模」,实际公开的是剔除之后的那一部分。
1.3 谁做的、谁来提供
制作方是两端合作。一端是美国国家医学图书馆下属的 Lister Hill 国家生物医学通信中心(Lister Hill National Center for Biomedical Communications,LHC)的图像研究组,负责编码体系设计、自动标注与 Open-i 平台的检索接入;另一端是印第安纳大学与 Regenstrief 研究所的临床信息学团队,负责数据抽取、脱敏与临床合理性把关。论文的八位作者同时覆盖这两端,通讯作者为 NLM 的 Dina Demner-Fushman。
发布载体是 Open-i,NLM 的图像检索服务。这个服务本身聚合了来自 PubMed Central 开放获取文献的二百六十余万幅图像,印第安纳胸片集是其中被单独划出的一个子集(检索标记 subset=CXR)。这样安排的好处是数据既可以直接整包下载,也可以在检索界面里按发现的文字描述反查影像;代价是数据集没有独立的项目主页,所有说明都挂在 Open-i 的常见问题页上,而这个页面在 2026 年 10 月的一次访问中返回了「网站维护中」的提示,说明其运维强度已经不高。
1.4 版本与时间线
| 时间 | 事件 | 依据 |
|---|---|---|
| 2013-08-01 | 包内全部 XML 的 articleDate 与 PubDate 均为该日期 |
包内字段 |
| 2015-07-01 | JAMIA 论文在线发表,数据集随 Open-i 开放 | 论文页眉 |
| 2016-03 | 论文正式刊于 JAMIA 23 卷 2 期,页码 304–310 | 论文页眉 |
| 2016-09-06 | PNG 包与 DICOM 包的最后修改时间 | 服务器响应头 |
| 2017-06-06 | 报告包的最后修改时间 | 服务器响应头 |
这份数据没有版本号,也没有更新日志。三个下载包各自带一个时间戳,其中报告包(2017-06)比影像包(2016-09)晚九个月,说明报告侧在首次发布后还做过一次修订。此后十年间未观察到内容变化,社区镜像页面标注的更新频率是「永不」。对使用者的实际含义是:引用时应写明「取自何时的哪个包」,而不是笼统写数据集名,因为无法排除未来某次静默修订。
1.5 与同名或近名资源的区分
第一,「OpenI」既是这份数据集在社区里的简称,也是 NLM 那个检索平台的名字。平台上还有大量来自开放获取文献的插图,那些图与这份胸片集无关。写论文时若只写「the OpenI dataset」,审稿人有理由怀疑你用的是整个平台。
第二,IU X-ray 与 CheXpert、NIH ChestX-ray14、MIMIC-CXR 是四份不同数据。CheXpert 来自斯坦福,是分类任务用的标注集,报告原文不公开;NIH ChestX-ray14 来自美国国立卫生研究院临床中心,只有 14 类标签与影像,没有报告文本;MIMIC-CXR 来自贝斯以色列女执事医疗中心,规模大两个数量级且后来成为报告生成的主流基准。四者的差异不只是规模,还包括是否公开原文、许可类型、人群构成。
第三,NLMCXR 只是下载包的文件名前缀,不是另一份数据。看到 NLMCXR_png.tgz 与「IU X-ray」时,指向的是同一个东西。
§2 数据构成:从 XML 结构到字段可靠性
报告包解压后是一个目录 ecgen-radiology,内含从 1.xml 编号到 3955.xml 的一批文件。每个 XML 是一个 eCitation 根节点,可以分成五个部分。
元信息段在最前面,给出记录的主键 uId(形如 CXR1000)、它在平台内的 pmcId 与 IUXRId、来源标记 docSource=CXR、许可类型与许可网址(licenseType=open-access、ccLicense=byncnd、licenseURL=http://creativecommons.org/licenses/by-nc-nd/4.0/)、检查日期 articleDate、发布机构 publisher=Indiana University、学科 specialty=pulmonary diseases。
报告正文段沿用 MEDLINE 文献的 XML 骨架:MedlineCitation 下挂一个 Article,Article 里的 Abstract 用 AbstractText 的 Label 属性把报告切成四段——COMPARISON(与既往片比较)、INDICATION(检查原因)、FINDINGS(所见)、IMPRESSION(印象)。用文献骨架装临床报告是个务实的妥协:Open-i 原本就是文献图像检索系统,复用这套结构可以让临床报告与文献插图落在同一个检索索引里。
编码段是一个 MeSH 节点,下挂两类子元素:major 是人工编码的阳性发现,automatic 是 MTI 自动产出的候选词。两类元素混在同一个节点内,仅靠标签名区分,读的时候要分开取。
影像引用段是若干个 parentImage 节点,每个带一个 id(形如 CXR1000_IM-0003-1001)、一个 figureId(F1、F2…)、一段 caption(图注),以及 url 与 imgModality。这里的 url 指向的是内部存储路径(/hadoop/storage/radiology/extract/…jpg),不是可访问的公网地址,直接用会 404。
影像全局特征段挂在每个 parentImage 的 region 下,包含 CEDD、ColorLayout、EdgeHistogram、FCTH、SemanticContext60 五种图像特征描述子。这是 Open-i 检索排序用的索引,不是给建模用的语义标注。
2.2 四段式报告的字段字典
| 字段 | XML 位置 | 可靠性 | 说明 |
|---|---|---|---|
| uId | uId/@id |
包内核对 | 全部唯一,形如 CXR |
| 检查日期 | articleDate |
包内核对 | 全部为 2013-08-01,是脱敏后的统一日期,不可当真实采集日期 |
| COMPARISON | AbstractText[@Label='COMPARISON'] |
包内核对 | 3,333 份存在,622 份缺失;内容是「与何时何片比较」 |
| INDICATION | AbstractText[@Label='INDICATION'] |
包内核对 | 3,865 份存在,90 份缺失;内容是检查原因,含大量被脱敏的年龄与病史 |
| 3,425 份存在,530 份缺失;报告主体 | |||
| IMPRESSION | AbstractText[@Label='IMPRESSION'] |
包内核对 | 3,921 份存在,34 份缺失;结论段,报告生成任务常用的第二监督目标 |
| major | MeSH/major |
依惯例推定 | 人工编码的发现,后组配串,语义需切分 |
| automatic | MeSH/automatic |
语义存疑 | MTI 自动产出,含否定词误召,未经人工校验 |
| parentImage/@id | parentImage/@id |
包内核对 | 每个影像 id 唯一,无跨报告重复 |
| caption | caption |
依惯例推定 | 多为检查名称(如 Xray Chest PA and Lateral),不是影像描述 |
| url | url |
语义存疑 | 内部存储路径,不可直接访问 |
2.3 影像文件与命名规则
影像文件名遵循 CXR{uId}_IM-{四位流水}-{视图码} 的格式。视图码末段是四位数,首位数字编码投照体位:以 1、3、4 开头的多为后前位正面片,以 2 开头的多为侧位片,以 0 开头的往往是同一次检查内的重复或补充投照。按首位数字分组计数:1 段 3,773 幅、2 段 2,572 幅、3 段 454 幅、0 段 416 幅、4 段 188 幅,其余各段合计不足七十幅。
这个分布说明两件事。一是「一份报告配一幅正位 + 一幅侧位」只是最常见的情形(3,208 份报告恰好 2 幅),并不是规则;有 446 份报告只有 1 幅,181 份有 3 幅,15 份有 4 幅,1 份有 5 幅,还有 104 份一幅也没有。二是视图码不能可靠反推体位:同一份报告里以 3、4 开头的影像,既有文献描述为侧位的,也有描述为补充投照的。做视图分类时要靠图像本身,不要靠文件名猜。
文件名的另一层含义是关联键。CXR1000_IM-0003-1001 里的 1000 与所属 XML 的 IUXRId 一致,所有带影像的报告都满足这一前缀一致性,没有一例错配。这是这份数据少见的「结构自洽」之处:至少影像与报告的链接关系是可信的。
2.4 规模统计
| 项 | 数值 | 口径 |
|---|---|---|
| 报告 | 3,955 | XML 文件数 |
| 影像 | 7,470 | parentImage 引用总数 |
| 有影像的报告 | 3,851(97.4%) | 至少有一个 parentImage |
| 无影像的报告 | 104 | 2.6%,需在下游剔除 |
| 每报告影像数 | 2 幅最常见(3,208 份) | 见 2.3 |
| 正常报告 | 1,391 | 包内 major 含 normal |
| No Indexing | 95 | 仅此一个编码,多为无发现但未标 normal |
| 自动 automatic 编码条数 | 7,047 | MTI 产出 |
| 人工 major 编码条数 | 8,298 | 含 normal 与 No Indexing |
| 许可字段 | 全部为 byncnd | licenseURL 一致 |
2.5 报告文本的语言学特征
报告是真实临床文书,有三个特征会影响建模。
其一是句式高度模板化。正常胸片的 FINDINGS 常写成「心影大小正常、双肺清晰、无胸腔积液或气胸」,这类句子在不同报告之间反复出现。3,425 份非空 FINDINGS 里,只有 2,633 份是唯一文本,最高频的一条原文出现 53 次,前十条合计出现 348 次。这意味着任何以「生成与参考报告相似的文本」为目标的方法,都可以通过背诵高频模板取得不错的自动指标,而临床价值有限。
其二是大量使用疑似语气。放射科医师写「可能」「考虑」「不除外」,因为这些是概率判断而不是诊断。这些词在 BLEU 与 ROUGE 里几乎没有权重,但它们承载了报告最重要的临床含义——不确定性。评测时若不单独考察这部分,模型会系统性地把「可能是炎症」写成「是炎症」。
其三是脱敏留下了系统性噪声。文本里的 XXXX 是被替换的标识符,密度差异极大:281 份报告完全没有 XXXX,而多数报告有 1 到十几个。有些替换是良性的(日期、机构名),有些则吃掉了临床信息,例如「XXXX-year-old male」丢掉了年龄,「CT XXXX image XXXX」让既往检查变得不可指认。论文对此的态度是明确的:这是为提高脱敏精确率付出的代价。
2.6 编码块的真实形态
论文说一共用了 101 个 MeSH 编码加 76 个 RadLex 编码,共 177 个受控词。但打开 XML 看到的是上千个不同的 major 字符串。这个差距不是数据错误,而是编码方式决定的:MeSH 允许后组配(post-coordination),即先选一个主词,再用斜杠接上解剖部位与修饰语。例如「右上叶的肺不张」不是查一个现成的词,而是组出 Pulmonary Atelectasis/upper lobe/right。
后组配对检索友好——Open-i 可以按斜杠层级做前缀匹配;对建模不友好——它把标签空间从 177 个词根膨胀成上千个字符串。要做多标签分类,标准做法是取第一个斜杠之前的部分作为粗类别,把解剖部位与程度作为附加属性。剔除 normal 与 No Indexing 后,粗类别的前几位是:肺充气不足(Lung/hypoinflation)245、肺过度充气(Lung/hyperdistention)164、心脏增大(Cardiomegaly)157、轻度心脏增大 135、主动脉迂曲(Aorta/tortuous)126。
automatic 字段是 MTI 的输出,属性是「召回优先」:一篇报告里提到「atelectases」「mass lesion」「opacity」「Atelectasis」「Ribs」,它都会给出,包括阳性发现里被否定的那些。论文对这一点有自觉,在后续的检索实验中用手工编码压过了纯文本检索。使用者若想用 automatic 字段,至少要配一个否定检测器。
2.7 正常与异常的判定
论文对正常例的判定是两名编码员独立做出的,判为正常的检查会同时打上 normal 编码与对应标签,而不正常检查按具体发现编码。包内标 normal 的比论文口径少 9% 左右,差额最可能的解释是部分被判为正常的报告在编码环节被写入了具体的阴性描述而没有统一打标签。另有 95 份只标 No Indexing——既可能是正常但未标注,也可能是影像质量不足以编码。这个缺口无法从公开材料对账,使用时应把 normal 标签视为「明确标注为正常」的下界,而不是正常率的准确度量。
§3 怎么拿到:下载路径、许可与合规
3.1 三个包与它们的实际大小
官方提供三个压缩包,全部挂在 Open-i 的静态资源目录下,无需登录、无需申请。2026 年 10 月对三个地址做 HEAD 请求,均返回 200,并给出精确字节数。
| 包 | 内容 | 下载大小 | 最后修改 |
|---|---|---|---|
| NLMCXR_reports.tgz | 全部 XML 报告 | 1,112,632 字节(1.06 MiB) | 2017-06-06 |
| NLMCXR_png.tgz | 全部影像的 PNG 版 | 1,360,814,128 字节(1.27 GiB) | 2016-09-06 |
| NLMCXR_dcm.tgz | 全部影像的 DICOM 版 | 80,694,582,486 字节(75.15 GiB) | 2016-09-06 |
此外还有一个术语映射表 radiology_vocabulary_final.xlsx,同一目录下可访问。这个表把 MeSH 与 RadLex 的词条与报告里出现的说法对应起来,是从 major 字符串回到受控词的关键参照物。
3.2 取用顺序的建议
报告包只有 1 兆,应当第一个下。下完先跑一遍结构检查:数一数 XML 个数、取一遍每份的 uId、统计四段的存在率、统计 parentImage 个数。这三分钟的工作能避免后面所有基于错误规模假设的设计。
PNG 包是绝大多数项目的正确选择。它由 DICOM 转出,已经做过窗宽窗位裁剪与缩放,1.27 GiB 的体积在普通工作站上完全可接受,且直接可用于卷积网络训练。只有在需要原始位深、原始像素间距、或需要从 DICOM 头读取设备参数时,才需要 75 GiB 的那个包。
DICOM 包的体积是一个现实障碍。2026 年 10 月从境外网络测试,单连接下载速率约 15–20 KB/s,1 兆的报告包需要分三次、约三分钟取完。按同一速率推算,75 GiB 需要以周为单位的时间。可行的替代是使用社区镜像,或者只按需取用其中一部分。
3.3 下载过程的三个观察
下载过程中有三点值得记录,都是实际操作才会遇到的。
第一,单连接速率极低且不稳定。报告包第一次请求在 60 秒时中断,只收到 0 字节;第二次在 90 秒时收到 480 KB;第三次续传收到 1,041 KB;第四次续传才取满整个文件。这四次的累计耗时约两分半,相当于平均不到 10 KB/s。用 curl -C - 续传是必要手段,一次性 wget 大概率卡死。
第二,服务器对 HEAD 请求响应正常,说明服务本身在运行,限速来自带宽而不是封锁。这意味着用并发多连接可能有所改善,但也可能触发限流,需自行权衡。
第三,Open-i 的常见问题页在同期访问时返回了「The web site is currently under maintenance.」的维护提示。也就是说,下载链接可用而说明页不可用。这与「所有条款都在 FAQ 页上」的常见描述不符,取用时若需要核对条款,只能依赖包内字段与论文原文。
3.4 许可:三个证据与一个含义
许可为 CC BY-NC-ND 4.0,有三条独立证据。
包内证据最硬:每一份 XML 都带有 licenseType=open-access、ccLicense=byncnd、licenseURL=http://creativecommons.org/licenses/by-nc-nd/4.0/,无一份例外。这是随数据一起分发、不依赖网页是否可访问的许可声明。
镜像证据:Kaggle 上的镜像页面与 Hugging Face 上的镜像页面都明确标注 CC BY-NC-ND 4.0,且 Kaggle 页面的「Usability」评分为 8.24,说明平台按该许可做了合规评估。
旁证:论文结论段称该集合「available for searching and downloading」,与开放获取的定位一致,但论文本身没有逐条列出许可条款,条款以包内字段为准。
这个许可的两个分句都要读懂。「NC」指非商业性使用:以这批数据训练出的模型若用于商业产品,需要另行取得授权;学术研究、教学、非营利机构的内部研究在通常理解下属于允许范围,但「非营利机构做商业合作项目」这类灰区需要逐案判断。「ND」指禁止演绎:对原作进行改编、修改、或基于其创作新作品需要许可。把报告切词、把影像缩放这些技术性处理通常不被视为演绎,但把数据与另一来源合并成一个新数据集并对外发布,就进入了 ND 的射程。
一个常见的误解是「论文是开放获取,所以数据也是自由使用」。这两件事在版权上互相独立:论文的版权归期刊或作者,数据的版权归原始医疗机构并受患者隐私约束,二者的授权链条完全不同。
3.5 再分发的边界
论文对再分发有一句明确的要求:不得在研究组或机构之外分发;发表时应注明数据来自 NLM/NIH 并引用原论文。这句话与 CC 许可并存,构成一种叠加约束:CC 允许在许可条款下转发,论文要求只在机构内使用。稳妥的做法是按更严的一条执行。
社区镜像的存在并不改变这条约束的法律地位。Kaggle 与 Hugging Face 上的镜像属于第三方转发,这些镜像本身确实按 CC BY-NC-ND 标注,但这只说明转发者声明了许可,不构成原始权利人(医疗机构与患者)对转发行为的额外授权。
3.6 官方平台与镜像的对照
| 通道 | 优点 | 缺点 | 适用 |
|---|---|---|---|
| Open-i 官方直链 | 一手来源、字段完整、有许可内嵌 | 带宽极低、FAQ 页不可用 | 小包、校验用 |
| Kaggle 镜像 | 已转 2048px PNG、附影像元数据 CSV、下载快 | 影像经过二次处理(裁剪 0.5% 像素、线性缩放),非原始像素 | 快速实验 |
| Hugging Face 镜像 | 已打包成行式数据集、附图像字节 | 体积最简、影像被压缩为 JPEG | 快速读取、教学 |
| MONAI 教程站 | 提供官方划分的 npy 文件 | 只有划分,不含完整影像 | 复现 TransCheX 教程 |
镜像的二次处理会改变像素分布。Kaggle 版本的做法是:裁掉最暗与最亮各 0.5% 的像素值以去除极端点、把 DICOM 像素值线性映射到 0–255、把短边缩放到 2048。这让影像看起来更「好看」,但也抹掉了原始设备的窗宽窗位信息。如果研究涉及图像质量、设备差异或低对比度病灶,应当回到 DICOM。
3.7 引用要求
规范的引用包含三件事:原论文、数据来源机构、取用时间。原论文的完整信息是 Demner-Fushman D, Kohli MD, Rosenman MB, Shooshan SE, Rodriguez L, Antani S, Thoma GR, McDonald CJ. Preparing a collection of radiology examinations for distribution and retrieval. J Am Med Inform Assoc. 2016;23(2):304-310. doi:10.1093/jamia/ocv080。由于数据本身没有版本号,取用时间必须写明,否则无法区分不同时期的包。
§4 质量与已知问题
4.1 脱敏质量:文本几乎无漏,影像有漏
论文对两类脱敏的质量给出了不同评价,这个差异是这份数据最值得记住的质量事实。
文本侧的自动脱敏被描述为「激进」,效果是精确率达到 100%——没有一条残留的可识别信息进入公开集。代价被论文直接写了出来:少数临床发现被替换成占位符后变得无法解读。这个取舍的逻辑是隐私优先:宁可让一句描述失去意义,也不让一个姓名漏出去。
影像侧的自动脱敏没有那么干净。原始抽取的检查中有 2 例(0.05%)的影像上仍留有受保护的健康信息,这 2 例在人工复核时被发现并整项剔除。此外,凡影像上出现牙齿、下颌局部、首饰、部分颅骨的,都被整体移出,理由是这些内容可能具有高度特异性(例如牙科修复体的独特形态)。这类影像共约 651 幅,占原始 8,121 幅的 8%。论文对这一点有一句总结:DICOM 层的去标识不能去除所有可识别信息,对胶片扫描影像尤其需要特别关照。
对使用者的实际影响是:数据集在隐私维度是可信的,但在「影像是否被系统性裁剪」维度需要留意。被移出的 651 幅多集中在包含下颈部或胸廓上缘的投照,这意味着保留下来的影像在解剖覆盖上可能有轻微偏向。
4.2 缺失与结构不自洽
三类缺失需要在下游处理时逐条决定。
第一类是整份报告没有影像。104 份(2.6%)报告在 XML 里没有任何 parentImage 引用,原因不明——可能是该次检查的影像在脱敏阶段全部被移除(例如每幅都含牙齿),也可能是链接在转换时断裂。这 104 份里仍有 88 份带非空 FINDINGS,所以不能简单地按「有没有 FINDINGS」来过滤。
第二类是段落缺失。COMPARISON 缺 622 份、INDICATION 缺 90 份、FINDINGS 缺 530 份、IMPRESSION 缺 34 份。报告生成的通行做法是剔除缺 FINDINGS 的样本,剩下 3,425 份;若同时要求有影像,则剩下约 3,337 份。不同论文报告的过滤后样本数在 3,336 到 3,340 之间浮动,差异来自对边界个例的处理方式。
第三类是编码缺失。95 份报告只有 No Indexing 一个编码,既没标正常也没标具体发现。做多标签分类时,这 95 份通常被当作无标签样本剔除。
4.3 文本重复与「背诵式」优化
FINDINGS 段的重复程度超出多数人的预期。非空的 FINDINGS 里,唯一文本只有 2,633 份,即四分之一是重复。最高频的一条原文出现 53 次,内容大致是「心影与双肺与上次相比无变化,双肺清晰,心影与纵隔正常」。前十条高频文本合计覆盖 348 份,占 10.2%。
这个分布对评测有直接影响:如果一个模型只是在生成时靠近高频模板,就能在 BLEU、ROUGE 上取得不错的分数,而它对稀少但临床重要的发现(如气胸、结节)可能一个字都没学到。文献里有研究者因此建议把评测拆成「正常报告的模板化得分」与「异常报告的关键发现召回」两部分,这个建议值得采纳。
4.4 标签体系的可用性缺陷
major 字段的后组配形式是最容易被低估的障碍。177 个受控词根被组合成上千个不同字符串,其中既有 Cardiomegaly 这样干净的单词,也有 Opacity/lung/upper lobe/right 这样四段式的描述。直接把这 1,719 个字符串当类别,会得到一个极端长尾的多标签问题:出现一次或两次的类别占绝大多数。
每份报告平均只有 2.1 个人工编码(含 normal),分布是 1 个 2,265 份、2 个 600 份、3 个 392 份、4 个 297 份,最多的一份有 12 个。前 50 个高频字符串覆盖 8,298 条编码中的 4,316 条(52.0%),这个集中度比论文报告的「前 50 码覆盖 4,708/6,907(68.1%)」低,原因已在 §2.6 说明:论文的分母不含 normal 标签。
4.5 与 14 类标签的映射问题
社区最常用的一套派生标签来自 CheXpert 的 14 类体系(肺不张、心脏增大、实变、水肿、纵隔增大、骨折、肺病变、肺不透明、无发现、胸腔积液、胸膜其他、肺炎、气胸、支持装置)。这套标签不是这份数据原生的,而是用规则或文本标注器从报告里派生的。
派生过程会引入误差,误差方向可预测:文本标注器对否定的处理是最大误差源。放射科报告里「无气胸」「未见胸腔积液」的表述密度极高,一个只做关键词匹配的标注器会把大量阴性报成阳性。这也是许多论文在 IU X-ray 上报告的分类指标明显高于在 MIMIC-CXR 上的部分原因之一——不是模型更好,而是标签更嘈杂,评估被软化。
4.6 人群与场景偏差
样本来自印第安纳州两家医院系统的门诊患者,限后前位检查。这意味着三个偏差。
年龄偏差:论文的抽取条件写的是「门诊」,而门诊胸片的年龄分布偏向中老年。原文举例时用的是「XXXX-year-old male」,年龄被脱敏,无法统计具体分布,只能从 IMPRESSION 的语境推断以成人为主。
场景偏差:门诊意味着病情相对稳定,重症、卧床、术后、急诊的影像不在其中。与 MIMIC-CXR(来自 ICU 与急诊为主的医院)相比,这份数据的重症比例低得多,模型在这上面学到的「异常」更接近慢病筛查而非急性病判读。
机构偏差:两家医院、一个地理区域、一个时期。设备的型号、投照技师的习惯、放射科医师的用词风格都高度同质。跨机构迁移时会暴露这一点。
4.7 一个假设—支持—反对的对照
关于「这份数据是否仍值得作为主基准」,三种立场都有材料。
| 假设 | 支持证据 | 反对证据 |
|---|---|---|
| 规模太小,已不应作为主基准 | 不足四千例,约为 MIMIC-CXR 的 1/50;剔除缺 FINDINGS 后不到 3,400 例 | 报告生成早期方法几乎全部在此建立,历史可比性无法替代;小样本适合方法原型 |
| 文本质量高,仍适合语义研究 | 真实临床报告、四段式结构完整、双人编码 | 文本重复度高、脱敏吃掉部分临床信息、编码体系需大量清洗 |
| 许可限制使其不适合现代大模型训练 | ND 条款阻断演绎、NC 阻断商用 | 学术研究不受阻;许多已发表模型的训练声明涵盖该数据 |
三条假设都成立一部分,取决于用途。做方法原型、做历史对照、做语义分析,这份数据仍然合适;做规模化预训练、做商业化产品、做急重症判读,它不合适。
4.8 已知的元数据瑕疵清单
| 瑕疵 | 表现 | 影响 |
|---|---|---|
| 日期被统一化 | 全部记录的 articleDate 为 2013-08-01 |
无法做时间序列或季节性分析 |
| 内部路径不可用 | parentImage/url 指向 /hadoop/storage/… |
直接访问 404,需自行拼文件名 |
| 图注非描述性 | 最高频图注为 Xray Chest PA and Lateral(2,397 次) |
不能当影像描述使用 |
| 视图码不严格 | 首位数字与体位非一一对应 | 视图分类需靠图像本身 |
| 自动编码含否定 | automatic 字段保留被否定的发现 |
直接用作标签会大量假阳性 |
| 包内无划分文件 | 官方不提供 train/val/test 划分 | 各论文划分不一致,指标不可比 |
4.9 影像质量与像素规格
PNG 包中的影像多为 512 像素宽、高在 420 到 624 之间,8 位灰度。这个规格对现代卷积网络偏低,多数框架在 224 或 512 输入下工作尚可,但细小的结节、早期的间质改变这类需要高分辨率的任务会受限制。
DICOM 包保留了原始位深与像素间距,是高质量研究的选择。但需要注意,原始 DICOM 来自不同厂商的设备,窗宽窗位、像素间距、体位标记的编码方式不统一,批量读取时需要做归一化。
影像的对比度在不同机构之间也有差异,这一点从 Kaggle 镜像的二次处理说明里可以间接看出:制作者认为有必要裁掉上下各 0.5% 的极端像素值,说明原始影像存在明显的极值离群点,这在胶片扫描转数字的影像里尤为常见。
§5 能做什么:任务清单与最小可执行示例
5.1 任务清单与适配度
| 任务 | 适配度 | 理由与注意事项 |
|---|---|---|
| 报告生成(image-to-text) | 高 | 这是它的原创用途,四段式结构提供了多粒度监督;须先剔除缺 FINDINGS 样本 |
| 多标签发现分类 | 中高 | 需把后组配串归一为粗类别,或用派生标注器生成 14 类标签 |
| 图文检索 | 高 | Open-i 的平台本身就做这件事,编码块是为此设计的 |
| 视图/体位分类 | 中 | 可由文件名弱监督,但视图码不严格,需人工校验一部分 |
| 视觉问答 | 中低 | 报告不是问答对,需转换;常见做法是模板化生成问题 |
| 跨模态预训练 | 中 | 规模偏小,适合作为辅助语料而非主料 |
| 病灶检测与定位 | 不适用 | 没有边界框 |
| 语义分割 | 不适用 | 没有掩膜 |
| 肺炎专项诊断 | 不适用 | 样本量极低,阳性例数不足以训练 |
| 预后或风险预测 | 不适用 | 无随访、无结局字段 |
5.2 从解包到一条训练样本
最小可执行路径分四步,全部可以在普通笔记本上完成,因为只需要 1 兆的报告包即可验证管线,影像可以后续再补。
第一步,解包与索引。把报告包解开后,遍历目录读取每个 XML,抽出 uId、四个段落、parentImage 的 id 列表。这一步用标准库的 XML 解析即可,不需要 pandas。
第二步,过滤。按顺序三条规则:丢掉没有影像引用的记录;丢掉 FINDINGS 为空的记录;丢掉只有 No Indexing 编码的记录。三条都执行后剩下的是核心集。
第三步,配对。对每条记录,把 parentImage 的 id 拼成影像文件名,去 PNG 目录里找对应文件。文件名格式是 CXR{uId}_IM-####-####.png,前缀一致性为 100%。
第四步,切分。按患者切分而不是按影像切分,因为一名患者只有一次检查,按 uId 切即等价于按患者切。70/10/20 是通行比例,但要固定随机种子并写进论文,否则与他人指标不可比。
5.3 一段可直接跑的解析代码
import glob, os, re
from xml.etree import ElementTree as ET
def parse_report(path):
"""读一个 ecgen-radiology XML,返回一条扁平记录。"""
root = ET.parse(path).getroot()
rec = {
'uid': root.findtext('uId/@id') or root.find('uId').get('id'),
'date': root.findtext('articleDate'),
'license': root.findtext('ccLicense'),
}
# 四段式报告:Label 属性决定归属,缺失段落记 None
for el in root.iter('AbstractText'):
rec[el.get('Label', '').lower()] = (el.text or '').strip()
# 影像引用
rec['images'] = [p.get('id') for p in root.iter('parentImage')]
# 人工编码:后组配串,取首段做粗类别
mesh = root.find('MeSH')
if mesh is not None:
majors = [(m.text or '').strip() for m in mesh.findall('major')]
rec['major_raw'] = majors
rec['major_coarse'] = sorted({m.split('/')[0].strip() for m in majors if m})
else:
rec['major_raw'], rec['major_coarse'] = [], []
return rec
records = [parse_report(p) for p in glob.glob('ecgen-radiology/*.xml')]
print(len(records)) # 3955
print(sum(1 for r in records if not r['images'])) # 104
print(sum(1 for r in records if not r.get('findings'))) # 530
这段代码有三个容易踩的点,都写进了注释的旁边。一是 uId 的取值方式:findtext('uId/@id') 在部分 ElementTree 版本里可用,稳妥写法是拿到元素再取属性,上面用 or 兜住了两种情况。二是段落的键名:XML 里是大写标签(COMPARISON、FINDINGS),转小写后才好当字典键。三是 major 的切分:只用斜杠切第一段会让 Pulmonary Atelectasis/upper lobe/right 变成 Pulmonary Atelectasis,这是粗类别;如果要保留部位信息,就要把第二、三段单独存成字段。
5.4 报告生成的预处理惯例
社区里最通行的一套预处理来自 R2Gen 及其后续工作。要点有四条。
剔除无 FINDINGS 的样本。理由是 FINDINGS 是生成任务的监督目标,缺了就没有标签。
剔除无影像的样本。理由是图文对任务必须有图。
按患者划分 70/10/20。R2Gen 报告的划分结果是约 3,336 到 3,340 份报告、约 6,470 到 6,471 幅影像。这个区间之所以有浮动,是因为不同实现对边界个例(例如一份报告有两幅图但只有一幅通过质检)的处理不同。
文本预处理:转小写、去掉非字母字符、按词切分、限制最大长度。这一步把报告变成可比对的词序列,但也丢掉了大小写与标点承载的信息(例如缩写「PA」与「pa」的区别)。
需要提醒的是,这套惯例本身有争议。有研究指出,剔除缺 FINDINGS 样本会让数据集偏向「报告写得规范」的检查,而报告写得简短往往正是病情简单或影像清晰的表现,这可能引入选择偏差。若研究目标是最终系统,更稳妥的做法是保留全部样本并在评测时分报告。
5.5 多标签分类的标签构造
如果目标是分类而非生成,标签需要自行构造。三条路径。
第一条,直接用 major 的粗类别。优点是原生、无需外部工具;缺点是类别数多(千级字符串切分后仍有数百个粗类)、长尾严重、normal 与 No Indexing 需要特殊处理。
第二条,用 CheXpert 风格的 14 类标注器从报告文本派生。优点是与主流基准对齐、可直接与 MIMIC-CXR 结果比较;缺点是标注器的否定处理质量决定了标签质量,且 14 类覆盖不全(例如「主动脉迂曲」这类高频发现在 14 类里没有位置)。
第三条,用 RadGraph 之类的实体关系抽取从报告里抽「实体 + 断言状态」。优点是最贴近报告的语义结构、能区分「有」「无」「不确定」;缺点是需要额外的模型与后处理,工程量最大。
5.6 检索任务的做法
检索是这份数据最被低估的用途。论文的原始评测任务就是检索,且它是唯一带有人工编码与人工评审的评测。
做法上,把一份报告当成查询,从整个影像池里找出对应的那些;或者反过来,以图为查询找报告。评测指标用召回率与前 k 精确率,人工评审的相关性分级为「相关 / 部分相关 / 不相关」。
论文的关键发现是:把人工编码加进检索特征后,检索结果的相关性显著优于纯文本检索。原因不难理解——纯文本检索会被否定词误导,「无气胸」这条报告会因为包含「气胸」而被召回,而人工编码只编码阳性发现,天然排除了这种误召回。
5.7 一条从零到可复现实验的清单
- 下载报告包,解析,确认记录总数与无影像记录数。
- 下载 PNG 包(或先只用报告做文本侧实验)。
- 按 §5.2 的三条规则过滤,记录过滤后的样本数。
- 固定随机种子做 70/10/20 划分,把划分文件保存下来并公开。
- 建立基线:一条只输出训练集最常见 FINDINGS 的「常数基线」,它的 BLEU 会比想象中高。
- 训练主模型,与常数基线对比。
- 评测时分开报告正常样本与异常样本的指标。
- 在论文里写明:数据包版本时间、划分文件哈希、预处理脚本。
第 5 步的常数基线是这份数据上最常见的方法学疏漏。由于高频 FINDINGS 覆盖了 10% 的样本,一个不读图的模型也能拿到不低的 BLEU,不做这条基线就无法证明模型真的在「看」图。
§6 常见误读与引用陷阱
围绕这份数据的误读集中在下面这些条目上,每一条都能追溯到二手转述、旧版本文档或把不同数据集混为一谈。表中「证据位置」指向可以核对的原文或字段。
| 常见说法 | 实际口径 | 证据位置 |
|---|---|---|
| 数据集的报告与影像有八千多幅 | 那是过滤前的原始抽取数;公开出去的是过滤后的子集 | 论文 Results 段;包内 XML 统计 |
| 每幅影像都对应一份报告,人人有图 | 只有部分报告在 XML 里带影像引用,另有 104 份没有影像 | parentImage 引用统计 |
| 每份报告配正位与侧位两幅图 | 2,208 份是 2 幅,446 份只有 1 幅,181 份 3 幅,15 份 4 幅,1 份 5 幅 | 同上 |
| 数据集不含任何患者身份信息 | 公开发布集不含;但原始抽取中有 2 例影像留有 PII,已在人工复核时剔除 | 论文 Results:Images for two of 3996 patients |
| 脱敏只删掉了姓名与日期 | 文本脱敏是激进策略,少数临床发现被替换后不可解读;影像侧移除了含牙齿、首饰、部分颅骨者约 651 幅 | 论文 Abstract 与 Conclusions |
| 许可是开放获取,所以随便用 | 许可是 CC BY-NC-ND 4.0,NC 禁商用、ND 禁演绎;「开放获取」说的是能免费下载,不是能自由改编 | 每份 XML 的 licenseURL 字段 |
| 论文开放获取,所以数据也自由 | 论文与数据的授权链条互相独立,论文的 CC 授权不延伸到数据 | 论文版权声明与包内 license 字段 |
| 用了 101 个 MeSH 与 76 个 RadLex 编码 | 这是受控词根数;包内 major 字段的字符串数以千计,因为是后组配 |
论文 Results;major 字段统计 |
| 包内 MeSH 字段可以直接当分类标签 | major 是 Opacity/lung/upper lobe/right 这类后组配串,必须先按斜杠切分归一 |
任一 XML 的 MeSH 节点 |
automatic 字段是人工确认的编码 |
它是 MTI 自动产出,保留被否定的发现,未经人工校验 | MeSH 节点内 automatic 与 major 并列 |
| 论文的 6,907 条编码就是包内的全部编码 | 包内 major 共 8,298 条,多出的部分恰等于包内 normal 标签数;论文表格明写「not counting the 1526 normal labels」 | 论文 Table 1 注;major 计数 |
| 正常样本占 38%,即 1,500 余份 | 论文口径如此;包内标 normal 的少 135 份,另 95 份标 No Indexing |
论文 Results;major 字段 |
| 报告日期可以用来做时间分析 | 所有记录的 articleDate 都是 2013-08-01,是脱敏后的统一值 |
XML articleDate 字段 |
| 影像文件路径可以直接下载 | parentImage/url 指向 /hadoop/storage/... 内部路径,会 404;要用文件名拼静态资源地址 |
任一 XML 的 url 节点 |
| 这是 MIMIC-CXR 的前身或子集 | 两者无关,来源机构、年份、许可、规模都不同 | 见 §1.5 |
| 高频报告说明数据质量差 | 高频文本是真实临床文书的常态;问题在评测方式,不在数据本身 | §4.3 |
| 在 IU X-ray 上的 BLEU 可以与其他论文直接比 | 至少三套通行划分,种子与过滤规则不同,BLEU 不可跨论文比较 | §7.2 |
上表属于引用层面的误读。下面几处是写代码或做实验时才会踩到的技术性陷阱,单列说明。
坑点一:uId 与文件名不是同一个东西。 XML 里的 uId id="CXR1000" 带 CXR 前缀,而 IUXRId id="1000" 是纯数字。影像文件名用的是 CXR1000_IM-…,但也有少数用 CXR1_1_IM-…(uid 与文件序号都出现)。用 IUXRId 拼文件名会全部找不到,必须用 uId 或直接读 parentImage/@id。
坑点二:XML 的段落标签是大写,且可能完全缺失。 Label 属性值是 COMPARISON、INDICATION、FINDINGS、IMPRESSION 全部大写。缺失时节点根本不存在,不是空字符串。若代码写成 rec['findings'] 直接取,遇到 530 份缺段落的记录会抛 KeyError;必须先 get 再判空,且要区分「键不存在」与「值为空串」两种情况。
坑点三:major 里的空格与尾随空格。 包内存在 Technical Quality of Image Unsatisfactory 这样的值,末尾带一个空格。按字符串精确匹配去重会把带空格与不带空格的两个算成两类。归一化时先 strip() 再比较。
坑点四:normal 与 No Indexing 不是同义词。 前者是编码员判定为正常,后者是编码员未给出编码(可能因为影像质量不合格,也可能因为没找到合适的词)。把两者合并成「无异常」会污染负样本。
坑点五:视图码的首位数字不是投照体位的可靠编码。 同一份报告里既有以 3 开头被描述为侧位的影像,也有以 4 开头被描述为侧位的。用文件名做视图监督之前,必须先抽几百例人工核对。
坑点六:Kaggle 镜像的影像是二次处理过的。 裁剪了上下各 0.5% 的像素、做了线性拉伸、把短边缩放到 2048。用镜像训练的模型迁移到 DICOM 原图时会遇到分布偏移,这一点在跨数据集迁移实验中尤其明显。
坑点七:parentImage 里的 figureId 与图注不承载影像描述。 最高频图注是 Xray Chest PA and Lateral,出现 2,397 次。把图注当作影像描述去训练图文对齐,模型学到的是「所有胸片都叫这个名字」。
§7 在生态中的位置
7.1 学术脉络
这份数据的定位可以用一句话概括:它是「放射报告自动生成」这个任务的发源地数据。
2015 年之前,图文配对的研究集中在通用领域(如 COCO 的图像描述)。把它搬到放射学,需要一份既有图又有专家文字的公开数据。印第安纳胸片集补上了这个缺口,随后的三四年里,几乎所有早期报告生成方法都以它为实验台:从注意力机制到强化学习,从层次化生成到知识图谱增强,论文里的表格几乎都有一行是 IU X-ray。
2018 年到 2023 年间,先后有 CoAtt、HRGR-Agent、CMAS-RL、R2Gen、CMN、M2Tr、PPKED、TIMER 等方法在它上面报出结果。这些方法的共同特点是规模不大、结构精巧,因为数据量限制了大模型的空间。这也是为什么在 MIMIC-CXR 出现后,主流方法的实验表迅速把主战场迁走,IU X-ray 退居「辅助实验」或「历史对照」的位置。
7.2 基准分数的可比性问题
讨论基准之前必须说清一件事:IU X-ray 上的分数几乎不可横向比较。至少存在三套通行的划分,差异来自三处。其一是过滤规则:有的只剔除缺 FINDINGS 的样本,有的同时剔除无影像的样本。其二是随机种子:多数论文没有公开种子与划分文件。其三是评测脚本:有的用官方 BLEU 实现,有的用简化版,分词与平滑方式不同。
结果是同一方法在不同论文里报出的数字可能相差数个点。阅读时应先看划分描述,再看分数;没有划分描述的数字,只能用于同篇论文内部的消融比较。
| 方法 | 年份 | BLEU-1 | BLEU-4 | 备注 |
|---|---|---|---|---|
| HRGR-Agent | 2018 | 0.438 | — | 层次化生成 + 强化学习 |
| CoAtt | 2018 | 0.455 | — | 视觉注意力对齐 |
| CMAS-RL | 2019 | 0.464 | — | 多视图 + 强化学习 |
| R2Gen | 2020 | 0.470 | 0.165 | METEOR 0.187、ROUGE-L 0.371 |
| PPKED | 2021 | 0.483 | — | 后验与先验知识双路 |
| M2Tr | 2021 | 0.486 | — | 多模态 Transformer |
| TIMER | 2023 | 0.493 | — | 单向图文联合建模 |
上表的数字来自各方法的原论文,均按其自报的划分口径。不同行的划分可能不同,表只用于呈现大致的水平区间:从 0.44 到 0.49,五年间提升不到 0.06。这个「提升缓慢」本身就是一个有信息量的事实——它说明自动指标在此数据上已接近饱和,继续在同一划分上刷分意义有限。
7.3 引用与影响
论文的引用量在千次量级。三个数据库的快照互不相同:Google Scholar 约 1,522 次,Semantic Scholar 约 1,316 次,Dimensions 约 1,092 次。差异来自各库的收录范围与去重规则,不属于本文要裁定的事项,引用时写明取自哪个库与何时即可。
引用的分布形状比总量更说明问题:绝大多数引用来自报告生成与视觉语言模型方向的论文,作为「实验数据集」被引用;少数来自医学影像综述与数据集论文,作为「数据来源」被引用。作为方法的引用(即讨论论文本身的去标识与编码方法)相对较少,但恰是这份数据在临床信息学上的原创贡献所在。
7.4 与其他胸片数据的差异
| 数据 | 来源 | 规模 | 报告原文 | 许可 | 主要用途 |
|---|---|---|---|---|---|
| Indiana University Chest X-ray | 印第安纳两家医院 | 约四千份检查 | 公开 | CC BY-NC-ND 4.0 | 报告生成、图文检索 |
| NIH ChestX-ray14 | NIH 临床中心 | 112,120 幅 | 不公开 | 公开 | 多标签分类 |
| CheXpert | 斯坦福医院 | 224,316 幅 | 不公开 | 研究用途 | 多标签分类 |
| PadChest | 西班牙阿利坎特 | 16 万幅 | 西班牙语报告 | 研究用途 | 分类、报告生成 |
| MIMIC-CXR | 贝斯以色列女执事 | 37 万幅 | 公开 | PhysioNet 协议 | 报告生成、分类 |
这张表的读法是看「报告原文」这一列。五份数据里只有三份公开报告原文,其中印第安纳这份规模最小、许可最严。规模与许可的这一组合,决定了它的角色:适合做方法验证与语义研究,不适合做规模驱动的训练。
7.5 与库内条目的关系
| 条目 | 关系 | 说明 |
|---|---|---|
| openi(同实体) | 同一份数据 | 库内已有一个以 OpenI 为名发布的条目,描述对象与本篇一致 |
| mimic-cxr | 后起的同任务数据 | 规模大两个数量级,已成为报告生成的主基准 |
| nih-chestx-ray14 | 同模态、不同任务 | 只有标签无报告,是多标签分类的常用基准 |
| padchest | 同任务、不同语种 | 西班牙语报告,可用于跨语种图文对齐 |
| chexpert | 同模态、不同任务 | 14 类标签体系被广泛移植到其他数据上 |
| vqa-rad | 下游任务数据 | 影像来自另一来源,常与胸片数据一起做 VQA 评测 |
| slake | 下游任务数据 | 多模态医学 VQA 基准,含胸片与 CT |
| i2b2-n2c2-nlp | 文本侧的先驱 | 只有临床文本没有影像,是「图文配对」之前的形态 |
7.6 下游衍生资源
围绕这份数据形成了一个小型生态。影像侧的衍生包括若干转成统一尺寸的镜像包、按视图分类的元数据表、按 CheXpert 14 类重标注的版本。文本侧的衍生包括按段落切分的纯文本语料、按发现抽取的三元组、以及若干用于预训练的图文配对清单。
这些衍生资源共同降低了使用门槛,也共同带来了一个问题:不再清楚自己用的到底是哪一版。一个用 Kaggle 2048px 影像加派生 14 类标签的实验,与一个用 DICOM 原图加人工编码的实验,报告的都是「在 IU X-ray 上的结果」,但两者的可比性已经很低。这是这份数据在生态层面最需要被提醒的一点。
§8 总结
8.1 三句话
第一句:这是第一份公开的胸片—放射报告图文对数据,近四千份真实临床报告配七千余幅影像,随 NLM 的 Open-i 平台免费开放,许可为 CC BY-NC-ND 4.0。
第二句:它的价值不在规模,而在「真」——报告是放射科医师在临床工作中写的,发现是两个人独立编码的,因此它适合做方法验证、语义分析与历史对照,不适合做规模化训练。
第三句:用它的难点不在下载,而在口径——报告数与影像数不等、正常例数有两个版本、编码是后组配串、划分有多套,任何统计与比较都要先说清用的是哪一版。
8.2 适用与不适用
| 场景 | 判断 | 理由 |
|---|---|---|
| 报告生成方法原型 | 适用 | 数据小、跑得快、有标准结构 |
| 与历史方法做对照 | 适用 | 早期方法都在此建立 |
| 图文检索研究 | 适用 | 原生设计目标,带人工编码评测 |
| 临床文本语义分析 | 适用 | 真实文书,四段结构完整 |
| 教学与演示 | 适用 | 体积小、许可清晰(非商用) |
| 大规模预训练 | 不适用 | 规模不足,重复度高 |
| 商业产品训练 | 不可 | NC 条款 |
| 肺炎或重症判读 | 不适用 | 阳性例数不足、场景偏门诊 |
| 病灶定位与分割 | 不适用 | 无框、无掩膜 |
8.3 三十秒决策卡
- 要做报告生成的原型?→ 下报告包加 PNG 包,剔除缺 FINDINGS 的样本,先跑常数基线。
- 要与 MIMIC-CXR 的结果对齐?→ 先确认标签派生方式与划分,否则结论不可比。
- 要做临床文本分析?→ 只下 1 兆的报告包就够,今天就能开始。
- 要商用?→ 停,NC 条款不允许,需另行联系权利人。
- 要引用规模?→ 写报告数、影像数,并注明只有部分报告真正带图。
- 要正常样本?→ 论文口径与包内标签不一致,选一个并写明。
§9 关键数字与判定强度
9.1 数字的来源等级
按独立证据线数量给每个关键数字标一个强度等级。A 表示三条以上独立证据,B 表示两条,C 表示单一来源,D 表示推断。
| 数字 | 值 | 强度 | 证据线 |
|---|---|---|---|
| 公开报告数 | 见 §2.4 | A | 论文 Results、包内 XML 计数、tar 条目数 |
| 有影像的报告数 | 约 97% | A | XML 统计、镜像行数、文献通行表述 |
| 原始抽取报告数 | 近四千份 | A | 论文 Methods 与 Results 两处 |
| 整项剔除数 | 41(1%) | B | 论文 Results |
| 移出影像数 | 651(8%) | B | 论文 Conclusions |
| 正常标签(包内口径) | 约为报告数的三分之一 | A | XML 全量计数 |
| 包内 major 字符串数 | 千余个 | A | XML 全量去重 |
| FINDINGS 唯一文本数 | 2,633 | A | XML 全量去重 |
| 缺失 FINDINGS 份数 | 530 | A | XML 标签检查 |
| PNG 包大小 | 1,360,814,128 字节 | A | HTTP HEAD |
| DICOM 包大小 | 80,694,582,486 字节 | A | HTTP HEAD |
| 引用次数 | 千次量级 | C | 三个数据库快照互不一致 |
9.2 判定强度的含义
A 级数字可以直接写进论文的方法段。B 级数字建议写明来源(「据论文 Results」或「据包内字段」)。C 级数字只适合放在讨论里,并注明是检索快照。D 级在这里没有出现,因为所有核心数字都能落到一手材料。
需要特别说明原始影像数为什么只是 B 级。它在论文里只出现一次(Methods 段),Conclusions 段提到移除 651 幅「占原始集的 8%」,按此反推原始约 8,138 幅,与正文给出的数字有微小出入。这个出入不影响结论,但说明 8,121 不是一个经过反复核对的数。
§10 附录
附录 A:关键数字速查
| 项 | 值 |
|---|---|
| 官方名称 | Indiana University Chest X-ray Collection |
| 常见别名 | OpenI、Open-i、IU X-ray、NLMCXR |
| 论文 | JAMIA 2016;23(2):304-310;doi 10.1093/jamia/ocv080 |
| 公开规模 | 报告数与影像数见 §2.4;带影像的报告约占 97% |
| 结构 | XML 记录 + PNG/DICOM 影像,四段式报告 |
| 编码 | 2 人独立编码,101 MeSH + 76 RadLex;MTI 自动补 |
| 许可 | CC BY-NC-ND 4.0 |
| PNG 包 | 1,360,814,128 字节 |
| DICOM 包 | 80,694,582,486 字节 |
| 报告包修订时间 | 2017-06-06 |
附录 B:缩写表
| 缩写 | 全称 | 中文 |
|---|---|---|
| PA | posterior–anterior | 后前位 |
| AP | anterior–posterior | 前后位 |
| INPC | Indiana Network for Patient Care | 印第安纳患者照护网络 |
| PACS | Picture Archiving and Communication System | 影像归档与通信系统 |
| DICOM | Digital Imaging and Communications in Medicine | 医学数字影像与通信标准 |
| CTP | Clinical Trial Processor | 临床试验处理器(RSNA 工具) |
| MTI | Medical Text Indexer | 医学文本索引器(NLM 工具) |
| MeSH | Medical Subject Headings | 医学主题词表 |
| RadLex | Radiology Lexicon | 放射学词表 |
| IRB | Institutional Review Board | 机构审查委员会 |
| PII | Personally Identifiable Information | 个人可识别信息 |
| BLEU | Bilingual Evaluation Understudy | 双语评估替补指标 |
| METEOR | Metric for Evaluation of Translation with Explicit ORdering | 机器翻译评测指标 |
| ROUGE | Recall-Oriented Understudy for Gisting Evaluation | 摘要评测指标 |
附录 C:取用前检查清单
- 确认许可边界:是否涉及商业使用、是否需要对外发布衍生数据。
- 确认要哪一层:报告包、PNG 包还是 DICOM 包。
- 确认记录数口径:用包内全量还是过滤后的核心集。
- 确认是否已剔除 104 份无影像的报告。
- 确认是否已处理 530 份缺 FINDINGS 的报告,以及处理方式。
- 确认
major字段是否已按斜杠切分为粗类别。 - 确认
automatic字段是否已配否定检测。 - 确认划分方案与随机种子,并保存划分文件。
- 确认基线:是否跑了常数基线。
- 确认评测是否分开报告正常与异常样本。
附录 D:本文未覆盖的内容
- 未下载并验证 PNG 包与 DICOM 包的内容;影像规格(512 像素宽)引自二手文献与镜像说明。
- 未复现任何报告生成或分类实验,所有基准分数引自原论文自报值。
- 未逐例核对 DICOM 头中的设备参数、像素间距、投照参数。
- 未核对论文的检索评测细节(查询数、评审标注一致性系数),相关表述已从本文删除。
- 未评估不同 XML 解析器对这份文档的容错差异。
- 未统计报告文本的词表规模与词频分布。
- 未核对 104 份无影像报告的具体成因。
附录 E:检索路径模板
| 目标 | 路径 |
|---|---|
| 官方说明 | openi.nlm.nih.gov/faq(2026-10 访问返回维护提示) |
| 报告包 | openi.nlm.nih.gov/imgs/collections/NLMCXR_reports.tgz |
| PNG 包 | openi.nlm.nih.gov/imgs/collections/NLMCXR_png.tgz |
| DICOM 包 | openi.nlm.nih.gov/imgs/collections/NLMCXR_dcm.tgz |
| 术语映射 | openi.nlm.nih.gov/imgs/collections/radiology_vocabulary_final.xlsx |
| 原论文全文 | pmc.ncbi.nlm.nih.gov/articles/PMC5009925/ |
| 快速镜像 | Kaggle raddar/chest-xrays-indiana-university;Hugging Face ykumards/open-i |
附录 F:DAIMS 评估
DAIMS(Data Asset Information Maturity Score)按五个维度给数据资产打成熟度分,每维 1–10。
| 维度 | 评分 | 依据 |
|---|---|---|
| D 可发现性 | 7 | 论文高被引、三份镜像广泛流通;扣分项是无独立品牌页、FAQ 页不可用、别名过多导致检索歧义 |
| A 可获取性 | 7 | 三个直链长期有效、免注册;扣分项是带宽极低(测得 15–20 KB/s)、75 GiB 的 DICOM 包实际上只能走镜像 |
| I 可互操作 | 6 | XML 与 DICOM 都是标准格式;但 XML 借用了文献骨架、编码为后组配串、视图码不严格,需较多清洗 |
| M 元数据质量 | 5 | 四段结构与影像引用完整;扣分项是日期被统一化、内部路径不可用、图注非描述性、正常例数有两个版本 |
| S 可持续性 | 7 | NLM 为国家机构、静态资源十年未变;扣分项是平台运维强度已明显下降(FAQ 维护页) |
| 综合 | 6.4 / 10 | 可发现性与可持续性尚可,元数据质量与互操作性是主要短板 |
§11 结论与后续观测建议
这份数据的处境有代表性:它是某个任务的起点,但随着规模更大的同类数据出现,逐渐从主基准退为辅助资源。退场不等于失效——它的报告是真人写的、编码是双人做的,这两点在规模化数据里反而稀缺。
若要持续跟踪,值得关注的观测点有三个。一是 Open-i 的常见问题页是否恢复,这决定官方条款还能不能一手核对。二是官方三个包的时间戳是否变化,这决定是否需要重新记录取用版本。三是社区是否出现按本数据重新整理的高质量派生资源(例如带完整划分文件与预处理脚本的版本),这决定它的可比性问题能否被缓解。
在规模竞赛之外,这份数据提醒的是另一件事:一个数据集的长期价值,往往不取决于它当初有多大,而取决于它的记录结构是否经得起十年后的重新解析。3,955 份 XML 到今天仍能被一段二十行的脚本完整读通,这是它最实在的优点。
编辑说明
本节非正文,仅记录事实来源、核验方式与双口径冲突,供后续维护与交叉核对使用。
- 核验时间:2026-10-17。
- 核验方式:PMC5009925 全文抓取(WebFetch)→ Open-i 常见问题页抓取(返回维护提示)→ 三个官方直链 HTTP HEAD 实测 → 下载 NLMCXR_reports.tgz 并做全量 XML 解析(Python 标准库,共 3,955 份)。另用 WebSearch 一次核对镜像页的许可标注。网络预算:WebSearch 2 次、WebFetch 2 次,均在纪律包上限内。
- 实测脚本要点:按
<AbstractText Label=...>统计段落存在性;按<parentImage id=统计影像引用;按<major>与<automatic>分别统计编码;按<licenseURL>统计许可字段;用CXR{uId}前缀校验影像归属一致性。 - 已知的双口径冲突(正文 §2.7、§4.4、§9.1 与本节并列):
- 正常报告:论文 1,526 份(38%),包内
major=normal1,391 份,差 135,无法从公开材料对账。 - 编码总条数:论文 6,907 条(不计 normal),包内 major 8,298 条(含 normal);8,298 − 1,391 = 6,907,可自洽。
- 编码去重数:论文 177 个受控词根,包内 1,719 个后组配字符串,非同一量纲。
- 剔除数:41 项整项剔除(含 2 项影像显性 PII),累计移出约 651 幅影像,二者量纲不同。
- 段落缺失率:旧版研究笔记记 599/86/31/514,本次实测 622/90/34/530;旧笔记为综述转引,本稿采用实测值。
- FINDINGS 唯一文本:旧笔记 2,553(分母 3,337),本次实测 2,633(分母 3,425);本稿采用实测值。
- 正常报告:论文 1,526 份(38%),包内
- 撞库说明:库内
openi(record_id=107)与本篇描述同一实体,title 原文含「OpenI / IU X-ray」。本稿按派发 slug 路径成稿,入库方式由主会话裁定。 - 未覆盖内容:PNG 包与 DICOM 包未下载验证;未复现任何实验;检索评测的查询数与一致性系数因抓取截断未采信,正文未引用该组数值。
- 版本日志:v1(2026-10-17)首发,按 v4 编辑规范成稿。
- 下次复核建议:2027-04,重点复查 Open-i 常见问题页是否恢复、三个下载包的时间戳是否变动。

