JSRT — 胸部X光肺结节检测经典基准 AI-Ready Wikipedia | 千方病案医数集

247 张 PA 胸片、12-bit 高灰阶、五档难度的经典肺结节检测公开基准

来源 Japanese Society of Radiological Technology(日本放射技术学会) url: http://db.jsrt.or.jp/eng.php发布时间: 2026-09-08最后更新: 2026-09-08 阅读 4

信息速览

数据集名称JSRT — 胸部X光肺结节检测经典基准 AI-Ready Wikipedia | 千方病案医数集
数据类型247 张 PA 胸片,2048×2048 像素 12-bit,约 2.1 GB 原始数据,免费学术使用
规模247 例检查(每例 1 张 PA 胸片)
接入方式Japanese Society of Radiological Technology(日本放射技术学会) url: http://db.jsrt.or.jp/eng.php
AI 就绪度

数据集封面

JSRT — 胸部X光肺结节检测经典基准 AI-Ready Wikipedia

INFOBOX

字段 内容
数据集名称 JSRT 标准胸部X光肺结节图像数据库
英文全称 Standard Digital Image Database of Chest Radiographs with and without a Lung Nodule(JSRT Database)
别名/简称 JSRT Database、JSRT-DB、Shiraishi Database
疾病分类 2C25 肺癌(ICD-11,恶性结节归入);孤立肺结节为影像学发现(ICD-10 对应 R91.1)
SNOMED CT 301095005(肺结节)、27925002(结节,形态学异常)、254637007(肺癌)
数据模态 胸部 X 光平片(PA 位,胶片激光数字化)
AI 任务类型 肺结节检测(FROC)、良恶性分类、解剖结构分割(配合 SCR 掩码)、图像分类教学
样本总数 247 张 PA 胸片(154 结节 + 93 无结节)
数据大小 约 2.1 GB(raw 版 247 张未压缩原始数据,按官方参数推算)
数据格式 原始无头 big-endian 12-bit 灰度文件(.img);另发行 DICOM 版、BMP 版与 8-bit JPG/PNG 衍生版
许可证 免费用于研究与教育(raw 版需注册)
访问级别 注册后开放(raw 版)/ 开放下载(DICOM 版、SCR 掩码)
DUO 标签 NPUNCU(非商业、非营利用途;学术免费)
语言 日文/英文(文档);影像无语言属性
首发日期 1998(建库);2000-01(AJR 论文正式发表)
最后更新 2022-09-07(SCR 数据库 Zenodo v1 重新发行;官方页持续维护)
发布机构 日本放射技术学会(JSRT)学术委员会,日本放射线学会(JRS)协作
官方主页 JSRT 英文介绍页
下载地址 raw 版注册下载 / DICOM 与衍生版 / SCR 掩码
DOI 10.2214/ajr.174.1.1740071(Shiraishi et al., AJR 2000)
引用次数 1,000+(Google Scholar,截至 2026-09;Web of Science 收录 326 次截至 2021-02,OpenAIRE 记录 933 次、SciSpace 记录 1,062 次截至 2026-09)
AI 就绪度评分 ⭐⭐⭐(3/5)— 数据干净、标注明确,但原始格式需专用读入转换(12-bit 无头 big-endian),且无官方 train/test 划分,需自行实现评估协议
页面状态 published

§0 医学与数据审核声明

医学审核:本页面 §2 医学背景(ICD-11/SNOMED CT 映射、肺结节临床意义、流行病学数字)与 §7 偏倚分析由[千方病案医学编辑部]交叉审核。
数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05

医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。

技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。

数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。JSRT 数据库免费用于研究与教育用途,raw 原始数据版本需在官方页面注册后获取,使用时应引用 Shiraishi et al. 2000 原始论文;SCR 掩码与 ENSEMBLE 等衍生资源有各自的申请与引用要求。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。


§1 数据集概览

§1.0 📌 30 秒速览

这是什么? JSRT 数据库是日本放射技术学会(JSRT)于 1998 年建立、2000 年经 AJR 论文正式发布的"含与不含肺结节的标准数字胸部X光图像数据库"。它包含 247 张后前位(PA)胸片——154 张每张恰有一个经证实的孤立肺结节(100 恶性、54 良性),93 张无结节——全部以 2048×2048 像素、12-bit 灰度数字化,并附结节中心坐标、半径、诊断与五档难易度(SCENE)分级(官方页)。

为什么重要? 在 ChestX-ray14(2017)出现之前,它是全球肺结节 CAD 研究最重要、被引用最多的公开胸片基准:结节全部由 CT/病理证实、附带 20 名放射科医生的 ROC 观察研究作为人类基线(Az 0.574–0.991),近三十年累计被引超过千次,是 FROC 检测、良恶性分类与解剖分割(SCR 掩码)三条研究线的共同试验场(Shiraishi et al., AJR 2000)。

我能用它做什么? 训练与基准测试单结节检测器(计算 sensitivity 与 FP/image 的 FROC 曲线)、良恶性二分类器;配合 SCR 数据库的肺野/心脏/锁骨掩码做分割预训练或身体掩膜;用极细微(extremely subtle)组研究检测极限;或用 MiniJSRT 子集入门医学影像深度学习。注意它规模很小(247 张),更适合当基准与外部验证集,而非大规模预训练语料。

§1.1 摘要

JSRT 数据库由日本放射技术学会学术委员会在 1998 年组织建设,日本放射线学会(JRS)支持,病例来自日本与美国的 14 家医疗中心。研究团队从常规屏片/CR 胸片中筛选出 154 张含单个孤立肺结节的胶片(结节均经 CT 或随访证实,恶性 100、良性 54)与 93 张无结节胶片,用激光胶片数字化仪统一扫描为 2048×2048 矩阵(0.175 mm/像素)、12-bit 灰度(4096 级)的无文件头 big-endian 原始数据。每张结节图像由放射科医生标注结节中心 X/Y 坐标、半径与位置示意图,并按放射科医生观察难度分为五档(SCENE 1–5);20 名放射科医生参与的 ROC 观察研究给出各难度档 Az 值 0.574–0.991,使该库成为少数自带"人类检测基线"的医学影像数据集(AJR 2000)。数据库以免费学术许可分发,此后衍生出 SCR 分割掩码集(2006,DOI 10.1016/j.media.2005.02.002)、ENSEMBLE 病灶轮廓扩展、无限制下载的 DICOM 镜像版与面向教学的 MiniJSRT。

§1.2 战略价值

维度一:方法学基准价值(检测评估的"金标尺")。 JSRT 的每个阳性病例都只含一个经证实结节,且官方提供结节中心坐标与半径,使"检测命中"可以按统一定义判定;五档 subtlety 分组与 20 名医生的 ROC 基线让论文可以回答"算法相对于医生处于什么水平"这一 clinically 有意义的问题。1999 年至 2014 年间,同一库上的检测敏感度从 35% @ 6 FP/image 提升到 75% @ 0.5 FP/image,进步曲线的每一格都刻在 JSRT 上(Eur Radiol 2021 综述)。对今天的研究者,它仍是验证新检测框架在最难病例(极细微结节)上表现的试金石。

维度二:数据形态的"考古标本"价值(12-bit 时代的工程教训)。 JSRT 是胶片扫描时代的数据:12-bit 无头 big-endian raw、2048×2048 大图、单图单结节标注。这些"过时"特征恰好构成现代 DICOM 数据集不会给你的一整套边界训练——灰阶截断、坐标体系、物理分辨率与网络输入分辨率的矛盾。把 JSRT 管道写对,基本等于把所有老格式医学影像管道写对;这也是它至今仍是医学影像课程与 Kaggle 风格教学的事实入门库(MiniJSRT 官方页)。

维度三:教学与开源生态价值。 JSRT 是极少数"官方亲自下场做教学"的经典数据集:MiniJSRT 子集明确面向初学者,覆盖分类、分割、回归、超分辨率、去噪与自编码器六类任务的入门实践(MiniJSRT 官方页);衍生方向分类集 jsrt-directions(988 实例)则把"X 光方向判断"这个真实的 PACS 质检需求做成了练习题(openmedlab)。对课程设计者与自学者,它的体量恰好能在单卡上完成完整训练闭环,这也是它在 2020 年代的深度学习课堂中经久不衰的原因。

§1.3 同类数据集横向对比

数据集 规模 模态/分辨率 标注 与 JSRT 的差异化
JSRT(本页) 247 张 PA 胸片 12-bit,2048×2048(0.175 mm) 单结节坐标+半径+良恶性+5 档难度;人工 单结节金标、自带医生 ROC 基线;规模小、胶片扫描
Montgomery (MC) 138 张 12-bit,约 4020×4892 肺掩码+TB 读片报告 TB 筛查对照集,常与 JSRT 联用于分割迁移(NLM
Shenzhen 662 张 12-bit,尺寸不一 肺掩码+TB 读片报告 大规模 TB 阳性对照;无结节坐标
ChestX-ray14 112,120 张 8-bit,1024×1024 14 类病变标签(NLP 从报告抽取) 规模大但标签噪声高;常作 JSRT 训练+外部验证组合
VinDr-CXR 18,000 张 8-bit,1024×1024 22 类病灶(含结节)框级人工标注 现代数字摄影+框标注,可视为"JSRT 任务的大规模继任者"
PadChest 160,000+ 张 12-bit DICOM 174 类报告衍生标签 西班牙语报告、多视角;训练语料而非检测金标

上表的启示:JSRT 与后续大数据集不是替代关系而是分工关系——大规模数据集负责"学得广",JSRT 负责"验得深"。一个常见的成熟组合是:在 ChestX-ray14/PadChest 上预训练、在 Montgomery/Shenzhen 上做解剖迁移,最后以 JSRT 的高可信金标做最终检测性能声明。这正是 2019-2023 年多篇临床 AI 论文的评估架构。

§1.4 版本时间轴

时间 版本/事件 说明
1998 建库 JSRT 学术委员会完成 247 例选片与数字化(官方页
2000-01 AJR 论文发布 Shiraishi et al. 发表于 AJR 174(1):71-74,随文开放学术分发(DOI
2003 CADx 姊妹论文 同团队发布良恶性鉴别方法学(Radiology 227:469-474),JSRT 结节子集成为 CADx 基准
2006-02 SCR 数据库 van Ginneken et al. 发布 247 张图的肺野/心脏/锁骨手工掩码(DOI 10.1016/j.media.2005.02.002
2006 之后 ENSEMBLE 数据库 JSRT 影像部门单独分发,补充病灶轮廓等标注,需另行申请
2013-04 骨影消除版 布达佩斯 BME-MIT-OMR 发布 247 张 16-bit PNG 去肋骨/锁骨影版本(BME
2021-02 引用里程碑 Web of Science 核心库累计 326 次(官方页,截至 2021-02-19)
2022-09 SCR Zenodo v1 van Ginneken 将 SCR 掩码重新打包为公开 DOI 存档(Zenodo,2022-09-07)
持续 DICOM 镜像 + MiniJSRT JSRT 影像部门提供免注册 DICOM 版与教学用 MiniJSRT(imgcom.jsrt.or.jp

§1.5 典型应用场景

  1. 肺结节检测 FROC 基准:以官方坐标+半径为金标,报告 sensitivity @ FP/image;与 1999–2018 年方法谱系及医生基线直接对比。
  2. 良恶性二分类(CADx):100 恶性 vs 54 良性,配合 ROC 分析复现经典 CADx 研究(Shiraishi et al. 2003 同一团队的方法学延伸)。
  3. 解剖结构分割预训练/评测:用 SCR 掩码(双肺、心、双锁骨)训练 U-Net 类分割网络,再迁移到 Montgomery/Shenzhen/NIH 数据。
  4. 检测极限研究:极细微(extremely subtle)组是人类医生检出率不足 30% 的硬核子集,适合度量算法在"最难 5%"上的边界(Eur Radiol 2021)。
  5. 医学影像工程教学:MiniJSRT + 12-bit raw 读入练习,覆盖分类、分割、超分、去噪、自编码器等任务的入门实现(MiniJSRT)。

§2 医学背景

§2.1 标签体系与 ICD-11 映射

JSRT 的标签是影像学发现级(孤立肺结节 + 良恶性 + 难度),而非完整疾病诊断。其与标准术语体系的映射如下:

标签/概念 ICD-11 编码 SNOMED CT 编码 术语说明
孤立肺结节(恶性,腺癌/鳞癌等) 2C25(肺或支气管恶性肿瘤) 254637007(肺癌) 恶性结节确诊后归入肺癌编码
孤立肺结节(良性,肉芽肿/错构瘤等) 无独立实体编码,按最终病理归类(如错构瘤归肿瘤章) 301095005(肺结节,disorder) 影像随访/活检证实的良性结节
肺结节(影像学发现,不细分性质) ICD-10 R91.1(孤立肺结节)的 ICD-11 对应为影像发现类条目 301095005;形态学描述符 27925002(结节) 筛查与 CAD 文献中的主要工作标签
肺(解剖结构,SCR 掩码对象) 不适用 21830003(肺结构,body structure) 分割任务的解剖参照
无结节对照 不适用 不适用(正常胸片描述符) JSRT 93 张阴性图仅表示"无结节",非全面正常

§2.1b SNOMED CT 映射补充

工作概念 SNOMED CT 层级 用途
Pulmonary nodule 301095005 disorder 检测任务的阳性类定义
Nodule (morphologic abnormality) 27925002 morphologic abnormality 影像描述/报告术语对齐
Malignant tumor of lung 254637007 disorder 恶性结节(100 例)上位概念
Lung structure 21830003 body structure 分割掩码的空间实体
Chest X-ray (procedure) 399020001 procedure 模态/检查类型登记

§2.2 疾病简介与流行病学

肺结节是直径通常 ≤30 mm、完全被肺组织包绕的类圆形局灶性影像异常,是肺癌最常见的早期影像表现,也是肺癌筛查的核心观察对象。肺癌是全球发病率与死亡率最高的恶性肿瘤之一:GLOBOCAN 2022 统计全球新发肺癌约 248 万例、死亡约 182 万例(GLOBOCAN 2022,截至 2024 年发布口径)。在 X 光胸片上,结节的可见性受其大小、密度、位置(心缘旁、肺尖、膈上)及骨骼重叠强烈影响——这正是 JSRT 用五档 subtlety 量化解决的核心临床问题:同样是确诊结节,一般放射科医生在最难档上的检出率不足 30%,而胸部专科医生也仅约 50%(Shiraishi et al., AJR 2000)。

孤立肺结节的管理遵循"检出→定性→随访/活检"路径:低剂量 CT 是现代筛查金标准,但胸片仍是全球可及性最高的检查,单张胸片漏诊早期肺癌的风险使 CAD 成为 30 年来的持续研究方向。JSRT 建库时(1998)日本正推行大规模肺癌筛查(X 光为主要手段),其"结节均经证实、每例单结节、附医生基线"的设计即服务于评估 CAD 能否缩小这一漏诊缺口——把筛查读片中最稀缺的资源(有经验的阅片医生)与最容易漏诊的病例(细微结节)直接放进同一个可量化的评估框架。

胸片结节检出难度与结节形态学的关系(JSRT subtlety 分档的临床内涵):

临床因素 对检出难度的影响 与 JSRT 设计的对应
结节密度(实性/部分实性/磨玻璃) 磨玻璃样结节在胸片上对比度极低,最易漏诊 subtlety 低档的主要构成
位置(肺尖、心缘旁、膈上) 骨骼/软组织重叠区假阴性率显著升高 位置示意图随元数据提供
大小(<10 mm) 常规读片漏检率随直径缩小快速上升 金标半径字段直接记录
骨骼重叠(肋骨、锁骨交叠) 与结节密度混淆,产生假阳性 衍生骨影消除版(BME 2013)针对此问题
阅片者经验 一般与专科医生 Az 差异明显 20 名医生 ROC 提供"经验梯度"基线

§2.3 临床任务定义

任务 输入 输出 临床场景 本数据集支持度
结节检出(CADe) PA 胸片 结节位置(框/圆)+ 置信度 筛查读片辅助、漏诊提醒 ⭐ 核心任务:坐标+半径金标,FROC 协议成熟
良恶性定性(CADx) 检出的结节区域 恶性概率 结节随访决策支持 100 恶性/54 良性标签
阴性对照校验 PA 胸片 是否含结节 筛查特异性评估 93 张无结节图
解剖分割 PA 胸片 肺/心/锁骨掩码 身体掩膜、区域归一化 需配合 SCR 掩码集
结节轮廓分割 PA 胸片 结节边界 定量形态学(直径、边缘) 需另行申请 ENSEMBLE 轮廓集

§2.4 患者人群

维度 内容 备注
来源 日本与美国 14 家医疗中心 官方未逐例公开机构
选片时间 1998 年建库前后的存量胶片 temporalCoverage 1998/2000
年龄 成人为主,逐例年龄随元数据提供 部分病例年龄缺失
性别 男/女随元数据提供 部分病例性别缺失
病例构成 结节组 154(恶性 100/良性 54);无结节组 93 每张结节图恰含 1 个结节
就医类型 筛查与临床就诊混合(胶片存档回顾) 官方未分层披露
种族/地域 以日本人群为主,含美国病例 无逐例种族字段

§2.5 临床价值

对临床 AI 而言,JSRT 的价值不在规模而在标注的可信度与评估的可比性:154 个结节均经证实(CT/病理),“每图一结节"的金标定义清晰,避免了多病灶数据集里"命中判定"的歧义;20 名医生、五档难度的 ROC 研究提供了极少数公开的"医生-病例-难度"三维基线,使任何新算法可以把自己放进"比一般医生好多少、离胸部专家多远"的临床坐标系(AJR 2000)。它同时是"硬样本库”:极细微组的医生检出率不足 30%,任何在该子集上的改善都是面向真实漏诊痛点的证据。

从监管科学视角看,JSRT 还承担着"评估协议公共品"的角色:FDA/NMPA 类审评关注的三件事——金标可信度、判读标准、人群代表性——在 JSRT 上都有可引用的既定答案(金标经证实、圆内判定、14 中心病例),使其成为方法学论文与算法审查文献中"传统基准对照"的默认选项之一。

§2.6 金标准参照

划分 标注方式 标注者 性质
检测金标 结节中心 (x, y) 坐标 + 半径 + 位置示意图 放射科医生(结合 CT/随访证实) 参考金标准(referenced standard)
良恶性标签 临床/病理证实后回填 建库委员会 参考金标准
难度分级(SCENE 1–5) 依据 20 医生观察 ROC 的 Az 值分档 20 名参与放射科医生 观察研究衍生的难度分层
解剖掩码(SCR,补充资源) 手工描画双肺、心脏、双锁骨轮廓 van Ginneken 团队标注者 独立衍生金标准(2006
结节轮廓(ENSEMBLE,补充资源) 病灶边界手工描画 JSRT 影像部门 申请制衍生金标准

§3 数据集规格

§3.0 版本抉择矩阵

JSRT 数据没有"一个下载入口"——官方与社区同时维护多个互不等价的版本,版本选择错误是本数据集第一大工程坑点(详见坑点 5):

你的需求 推荐版本 大小 理由
检测/分类建模(最接近原始数据) raw 版(db.jsrt.or.jp 注册下载) 约 2.1 GB 12-bit 无头 big-endian 原始灰度,保真度最高;需自行读入
与 SCR 掩码/社区代码对齐 SCR Zenodo jpg 版 + masks 约 12.6 MB(掩码)+ 7.8 MB(图) van Ginneken 打包的 2048 对齐版本,格式友好(Zenodo
PACS/医院环境复用 DICOM 镜像版(imgcom.jsrt.or.jp,日文站) 约 2 GB 免注册下载,DICOM 元数据规范,接入 pydicom 管道
病灶轮廓/精细分割研究 ENSEMBLE 数据库(申请制) 视发行包 含结节轮廓;不含诊断等患者信息(见坑点 5)
教学/快速上手 MiniJSRT 数百 MB 预处理好的小图集,适配分类/分割/超分教学(官方
去骨骼影对比实验 BME-MIT-OMR 骨影消除版 约 1 GB 247 张 16-bit PNG,与原始图逐张对应(BME

§3.1 模态详情

全部 247 张均为后前位(PA)胸部X光平片,拍摄于屏片/CR 时代,经激光胶片数字化仪统一扫描:矩阵 2048×2048,像素 0.175 mm(约 145 dpi),灰阶 12-bit(4096 级),存储为无文件头、big-endian的逐行 raw 像素流(单张恰为 2048×2048×2 = 8,388,608 字节)。无侧位片、无透视、无 CT。官方英文页描述的原始规格如此;ENSEMBLE 分发版另提供 BMP 封装(4072×4072 像素、12-bit 灰度)的大图变体,DICOM 镜像版则将同样的像素数据装入标准 DICOM 容器(官方页2026 RPT 综述)。

读入侧需要核对的数字化规格清单:

规格 官方值 读入校验方法
矩阵尺寸 2048×2048 文件字节数 ÷ 2 = 4,194,304
字节序 big-endian np.dtype(">u2");若直方图异常检查字节交换
灰阶 12-bit(0–4095) img.max() > 255 断言(§6.1)
像素尺寸 0.175 mm 物理视野 358.4 mm,符合标准 PA 胸片
文件头 前 2 字节即像素数据,非 magic number
行序 逐行(row-major) reshape(2048, 2048) 后影像解剖结构应正常

§3.2 按子集样本数

子集 文件名模式 数量 内容
结节-恶性 JPCLN###.img 中的恶性子集 100 单个恶性结节(腺癌、鳞癌等,经证实)
结节-良性 JPCLN###.img 中的良性子集 54 单个良性结节(肉芽肿、错构瘤等)
无结节对照 JPCNN###.img 93 放射科医生证实无肺结节
合计 All247images 247 官方原始分发包
SCR 掩码 masks/*.gif + *.pfs 247×5 结构 双肺、心、双锁骨手工掩码(Zenodo

§3.3 格式规格

属性 raw 版(主版本) BMP 版(ENSEMBLE 发行) DICOM 镜像版
尺寸 2048×2048 4072×4072 2048×2048
灰阶 12-bit(存储于 2 字节) 12-bit(BMP 容器) 12-bit
像素 0.175 mm 需按版本说明核对 0.175 mm
字节序/封装 big-endian、无文件头 BMP 文件头 DICOM(Transfer Syntax 各异)
读入方式 np.frombuffer 手工 reshape 需处理 12-bit BMP 的专用解码 pydicom 直接读
坐标系 官方元数据以 raw 版为准 与 raw 版坐标不成比例(见坑点 3、5) 与 raw 版一致

§3.4 存储大小

raw 版单张 8,388,608 字节(8.4 MB),247 张合计约 2.07 GB(未压缩,按官方 2048×2048×2 字节规格推算);BMP 大图版单张约 33 MB、合计约 8.2 GB(4072×4072×2 字节推算);SCR 掩码包(jpg+landmarks+masks+points)合计约 12.6 MB(Zenodo 实测);MiniJSRT 为数百 MB 级。若同时保留 float32 中间产物,全流程工作目录建议预留 10 GB。

存储规划的三个实测基准点:① float32 化后单张(2048²)16.8 MB,全库 float32 约 4.1 GB——这就是建议 10 GB 工作目录的主因;② 若采用 1024 边长 float32 缓存(§6.3 默认输出),全库仅约 1 GB,是检测训练推荐档位;③ 8-bit PNG 衍生缓存(256 灰阶)约 250 MB,仅适用于图级分类实验,禁止用于检测/灰度研究(坑点 1)。

§3.5 标注方式

人工标注,三类:① 检测金标——放射科医生在原始图像上定位结节中心并给出半径(配合位置示意图),结节均经 CT 或临床随访证实;② 诊断标签——恶性/良性由最终临床结局(病理或确诊随访)回填;③ 难度分级——SCENE 1–5 档,由 20 名医生的 ROC 观察研究 Az 值(0.574–0.991)推导,反映"一般医生看漏的概率"。SCR 解剖掩码为独立的手工轮廓标注(van Ginneken 团队),不随 JSRT 原始包分发。

各标注字段的获取方式与一致性说明:

标注字段 获取方式 可信度锚点 使用注意
nodule_x / nodule_y 官方元数据文本(逐图) 建库放射科医生定位 需可视化核验后使用(坑点 3)
nodule_radius 官方元数据文本 圆形近似,非真实轮廓 命中判定阈值设计依据(坑点 4)
diagnosis 官方元数据文本 CT/病理证实 无结节图无此字段(N/A 非缺失)
subtlety(1–5) 官方元数据文本 源自 20 医生 ROC Az 分档 分层评估的最重要协变量
解剖掩码 SCR 包(Zenodo) van Ginneken 团队手工描画 与图像版本需对齐(坑点 5)
结节轮廓 ENSEMBLE 包(申请制) JSRT 影像部门 不含诊断信息;审批周期不确定

§3.6 标注者资质与一致性

核心标注由建库委员会的放射科医生完成;难度分级基于 20 名参与观察研究的放射科医生的 ROC 判读(其中含胸部专科与一般放射科医生,专科医生整体 Az 更高)。官方未公开逐例的标注者间一致性统计(如 Kappa)——这是使用时应注意的文档空白。SCR 掩码的一致性在 van Ginneken 2006 论文中有方法学讨论(多标注者交叉验证分割算法表现)。

值得注意的是观察研究设计的含义:五档难度不是"主观拍脑袋"的分级,而是由 20 名医生的实测检出表现推导——这意味着 subtlety 标签本身内嵌了 1998 年日本放射科医生群体的能力水平。若将该分级用于今日的"AI 相对医生"声明,应意识到"医生基线"已是 25 年前的群体水平,宜同时引用现代医生表现数据作对照。

§3.7 采集周期

病例选自各中心 1998 年建库前积累的常规胸片胶片,2000 年随 AJR 论文发布;官方未披露逐例检查日期,数据集不含采集时间戳字段(对时序分析类任务是硬缺失,见 §4.5)。这一"时间冻结"特性是双刃剑:一方面它使 JSRT 成为跨年代方法对比的稳定参照(所有论文评估的是同一批像素);另一方面任何依赖时间信息的研究(生存分析、进展建模)在此库上不可行。

§3.8 地域覆盖

日本(多数中心)与美国(少数中心),共 14 家医疗中心;官方以匿名方式分发,不提供逐例机构标签。除年龄、性别外无人口统计学字段,地域/种族分层分析不可行。从部署角度,"日本+美国"的混合构成使该库介于单一人群队列与多中心数据之间——以日本人群为主的构成对东亚人群的迁移友好度通常高于欧美单一来源数据集,但这一推断未经官方分层验证,使用时只能作为假设而非结论。

§3.9 设备规格

原始摄影设备为各中心的常规屏片/CR 系统(型号未逐例披露);数字化环节为统一激光胶片数字化仪,输出 2048×2048、0.175 mm/像素、12-bit。设备型号、曝光参数、SID 等采集元数据未随数据分发——与 DICOM 镜像版对照时请注意 DICOM 头中同样不含原始曝光信息(2026 RPT 综述)。

对工程实践的三点影响:① 无法做按设备分层的鲁棒性分析,也无法估计"设备间变异"对模型的影响;② 噪声模型未知,去噪/超分方法(MiniJSRT 教学任务之一)只能用盲评估;③ 与现代 DR 数据联合训练时,设备差异与人群差异混杂在一起,无法解耦——这是所有胶片时代数据集的共性限制。

§3.10 深度溯源链

环节 主体 可核查性
选片与证实 JSRT 学术委员会 + 各中心放射科 AJR 2000 论文方法学描述
数字化 激光胶片数字化仪(统一规格) 官方英文页规格说明
结节标注/难度分级 建库放射科医生 + 20 名观察研究者 AJR 2000 ROC 分析
分发维护 JSRT(db.jsrt.or.jp)与 JSRT 影像部门(imgcom.jsrt.or.jp 官方页持续维护(2026 综述
衍生资源 van Ginneken(SCR)、BME-MIT(骨影消除)、JSRT 影像部门(MiniJSRT/ENSEMBLE) 各自官方页

§4 数据结构

§4.0 目录树

raw 官方包 + SCR 掩码包解压后的典型工作目录(元数据文本的具体文件名随官方包批次略有差异,以包内 readme 为准):

jsrt_workspace/
├── All247images/                  # 官方 raw 版核心目录
│   ├── JPCLN001.img               # 结节图 001(154 张,JPCLN001-154)
│   ├── JPCLN002.img
│   ├── ...
│   ├── JPCNN001.img               # 非结节图 001(93 张,JPCNN001-093)
│   ├── JPCNN002.img
│   └── ...                        # 每张 8,388,608 字节,无头 big-endian 12-bit
├── info/                          # 官方逐图元数据(文本):文件名、年龄、
│   └── ...                        # 性别、诊断、结节 x/y 坐标、半径、SCENE 难度档
├── readme                         # 官方读入说明与引用要求
└── SCR/                           # van Ginneken 掩码包(Zenodo v1, 2022-09-07)
    ├── jpg/                       # 247 张灰度图(与 raw 版对齐的社区友好格式)
    ├── masks/                     # 逐图 5 张解剖掩码(肺×2、心、锁骨×2,GIF)
    ├── landmarks/                 # landmark 坐标存档
    └── points/                    # 轮廓点坐标文本(*.pfs 亲缘格式)

§4.1 DAIMS 字段字典

JSRT 无数据库表结构,AI 视角的"核心表"是逐图元数据 + 像素体。以下 13 个字段构成完整可建模单元:

字段名 类型 说明 示例值 AI 用途 观测误差 信息性缺失编码 取值范围
image_id string 官方文件名(含类型前缀) JPCLN001 主键;前缀即检测标签来源 JPCLN001-154 / JPCNN001-093
pixel_array uint16[2048,2048] big-endian 12-bit 灰度体 0–4095 模型输入 扫描噪声、胶片划痕 [0, 4095]
has_nodule int 是否含结节(文件名前缀决定) 1 检测/分类标签 无(定义即金标)
diagnosis string 恶性/良性(仅结节图) malignant CADx 标签 依赖当年临床证实手段 非结节图为 N/A
nodule_x int 结节中心列坐标(像素) 1024 检测金标中心 ±数像素(人工定位) 无结节图缺失 [0, 2047]
nodule_y int 结节中心行坐标(像素) 1533 检测金标中心 同上 无结节图缺失 [0, 2047]
nodule_radius int 结节近似半径(像素) 55 检测命中判定(距离阈值) 圆形近似误差 无结节图缺失 视结节大小
subtlety int 难度 1–5 档(1 最难) 5 难度分层评估 源自医生 Az 分档 仅结节图有
age int 患者年龄(岁) 63 人群分层 自报/登记误差 部分病例缺失 成人区间
sex string 性别 male 人群分层 登记误差 部分病例缺失
location_diagram 示意图 结节位置简图(官方元数据附图) 可视化核对 无结节图缺失
lung_mask(SCR) uint8[2048,2048]×2 左/右肺掩码(GIF) 0/1 分割、ROI 掩膜 手工轮廓离散误差
heart_clavicle_mask(SCR) uint8[2048,2048]×3 心脏与双锁骨掩码 0/1 多结构分割 同上

坐标与几何语义对照(读元数据前必读):

概念 JSRT 约定 换算 常见错误
x 轴 图像列(0–2047,左→右) col = x 误当行号
y 轴 图像行(0–2047,上→下) row = y 误用笛卡尔坐标(原点在下)
金标形状 圆(中心 + 半径,像素单位) 直径 mm = 2r × 0.175 把半径当直径
物理尺寸 0.175 mm/像素 mm = px × 0.175 BMP 版与 raw 版混用比例因子(坑点 5)
左右语义 患者左侧出现在图像右侧(PA 约定) 翻转时 x’ = W-1-x(坑点 6) 翻转后左右标注不更新

§4.2 标签分布

标签维度 取值 数量 占比
has_nodule 1(含结节) 154 62.3%
has_nodule 0(无结节) 93 37.7%
diagnosis(结节图内) malignant 100 64.9%
diagnosis(结节图内) benign 54 35.1%
subtlety 1–5 档 154(逐档计数官方随元数据给出) 最难档(极细微)样本最少

注意:has_nodule 与 diagnosis 的分布是病例富集设计的结果(62% 阳性率远高于临床筛查阳性率),训练分类器时不可当作真实患病率,见 §7.1。

从任务视角重新组织标签矩阵(各 AI 任务实际可用的样本量):

任务 正类样本 负类/对照样本 可用总量 任务内平衡度
图级检测分类(有无结节) 154 93 247 1.66 : 1,轻中度不平衡
良恶性分类(CADx) 100(恶性) 54(良性) 154 1.85 : 1,需分层抽样
结节检测(FROC) 154 个金标圆 93 张无结节图贡献真阴性 247 判据依赖(坑点 4)
解剖分割(SCR) 247(含掩码) 247 逐像素平衡由掩码占比决定
难度分层评估 subtlety 1–5(154 内) 154 最难档样本最少

§4.3 关键统计

  • 单图像素体:2048×2048 = 4,194,304 像素;12-bit 值域 [0, 4095],肺野实际值域通常集中于低中段(X 光片背景曝光区接近 4095 级白)。
  • 物理视野:2048 × 0.175 mm ≈ 358 mm,足以覆盖标准 PA 胸片。
  • 检测金标密度:每张阳性图恰 1 个结节中心(154/154),无多结节样本。
  • 医生基线:五档 Az 0.574–0.991;一般放射科医生整体敏感度 0.64 @ 0.072 FP/case,胸部专科医生 0.77 @ 0.076 FP/case(AJR 2000 及其后续引用分析)。
  • 极细微组(extremely subtle):放射科医生检出率不足 30%,是全库最难子集(Eur Radiol 2021 综述)。
  • 灰度利用率:胶片扫描的曝光动态范围宽,全库 uint16 直方图显著非均匀——肺野/纵隔/骨骼分别占据不同灰度带,这是窗口化预处理有意义的前提。
  • 金标圆典型直径:以 0.175 mm 像素计,可检出结节直径多在数毫米到 30 mm 之间;直径小于约 5 mm(约 28 像素)的目标在降采样到 512 后仅余约 7 像素,检测难度陡增(坑点 2)。
  • 元数据完整性:年龄/性别/诊断/坐标/难度五类字段逐图可得,但年龄与性别存在零星缺失;结节轮廓不在标准包内,需经 SCR/ENSEMBLE 补齐。
  • 数据密度:247 张图、每张 4.19 M 像素,总像素约 10.4 亿——作为参照,单张现代大视场病理 WSI 即可超过这一总量,说明 JSRT 的价值在标注而非体量。

§4.4 数据层级

JSRT 为扁平单层结构:一个病例 = 一张图像 = 一条元数据记录,无"患者→检查→序列→切片"多级层级。需注意:官方未保证"每患者仅一例",患者级去重与跨例泄漏检查应由使用者自行执行(见坑点 7 与 §5.3)。

这一层级结构与 DICOM 数据集的差异值得强调:ChestX-ray14/MIMIC-CXR 等库的"患者-检查-图像"三级结构要求在患者级切分数据,而 JSRT 的扁平设计让"图像级随机划分"成为社区默认——它简单,但把患者重复风险(若存在)完全转嫁给了使用者。负责任的做法是在划分前做一次图像感知哈希(pHash)近邻自查,排除高度相似的成对图像。

§4.5 缺失值与信息性缺失

字段 缺失情形 缺失含义 建议处理
diagnosis 93 张无结节图无此字段 结构性缺失(N/A),非数据质量缺陷 分类任务中映射为独立阴性类
nodule_x/y/radius 无结节图无此字段 结构性缺失 检测任务中作为空标注样本
subtlety 无结节图无此字段 结构性缺失 分层评估仅覆盖 154 阳性图
age / sex 部分病例缺失 官方未解释是否为随机缺失 分层分析时报告缺失率;勿用均值填补做标签相关分析
采集日期 全体缺失 官方未收录 禁止构造时间序列/漂移分析(§7.6)
机构来源 全体缺失 匿名化设计 中心效应分析不可行;跨中心方差并入总噪声
结节轮廓 标准包全体缺失 轮廓在 SCR/ENSEMBLE 衍生资源中 形态学研究前先完成资源申请(坑点 5)

JSRT 的缺失全部属于结构性缺失(字段与对象类型天然不匹配)或未收录,不存在"测量了但丢失"的经典缺失机制问题——因此本页不使用"信息性缺失编码"(如 -999)约定;阴性图上坐标字段的 N/A 本身就是信息(无目标),任何用占位数值填充坐标的预处理都是错误的。


§5 划分与使用建议

§5.1 官方划分

。JSRT 自 2000 年发布至今从未提供官方 train/validation/test 划分;官方设计定位是"研究资源库",评估协议完全由使用者社区约定(AJR 2000)。这与其"数据库"而非"挑战赛"的定位一致:发布时(2000)机器学习竞赛文化尚未成形,官方把评估方法学(ROC/Az)写进了论文而非数据包。

§5.2 社区惯例划分

  • 检测任务(CADe):最常见为 5-fold 交叉验证(如 Li et al., IEEE Access 2018 在全部 247 张上做 5-fold),或 SCR 论文谱系的 124/123 半半划分用于无监督分割评估;亦有"全部 154 阳性做内部测试 + 外部数据训练"的纯外部验证式(合成数据训练研究)。
  • 分类任务(CADx):在 154 张结节图内做 k-fold,以恶性/良性为标签。
  • 分割任务:常以 SCR 掩码为监督,随机 70/30 或按 van Ginneken 2006 原文协议。

选用社区划分时的三条核对规则:① 引用任何划分前确认它覆盖的是 247 张全集还是 SCR/检测任务子集——不同任务的"惯例划分"不可互换;② 优先选择有公开代码/种子文件的划分(如 Li 2018 的 5-fold 描述),避免转述失真;③ 论文投稿时把划分文件与随机种子作为补充材料提交,这是 247 张量级数据集可复现性的最低要求。

§5.3 泄漏风险(重点)

  1. 患者重复风险:官方未声明 247 例来自 247 名不同患者;同一患者前后两张胶片理论上可能同时入选。使用前应基于图像相似度自查,勿默认患者独立。
  2. 近邻重复(增强泄漏):水平翻转版的同一张图若分属 train/test 两折,会把"图像记忆"伪装成泛化能力——翻转必须只发生在训练折内。
  3. 元数据泄漏:image_id 前缀(JPCLN/JPCNN)直接编码标签;任何包含文件名哈希的特征(如按文件名排序切分)都会引入系统偏差。
  4. SCRE 组合泄漏:在 SCR 掩码上预训练分割网络再在 JSRT 上微调时,若两阶段划分不一致,等于测试图在预训练中见过。
  5. 基准过拟合(隐性泄漏):JSRT 已被评估 20 余年,针对其极细微组做的超参/架构搜索本身构成对基准的选择性适配;严谨论文应区分"为基准调参"与"先验冻结",或补充第二个基准做交叉验证。

§5.4 交叉验证建议

247 张的体量适合分层 5-fold CV(按 has_nodule 分层;CADx 再按 diagnosis 二次分层),并固定随机种子公开划分文件;报告跨折均值 ± 标准差。若做检测,每折内同时含阳性图与阴性图(阴性图贡献真阴性以统计 FP/image)。

实践细节:① 每折约 49-50 张,其中阳性约 31 张——对深度模型每折训练集仅约 197 张,务必使用预训练骨干或强正则化;② 验证折上按 subtlety 分层单独报告,最难折的方差会主导整体方差;③ 建议同时冻结一套"留出 30 张(20 阳 10 阴)"的最终测试集,在全部调参结束前不触碰,缓解 247 张上"CV 即测试"的过拟合评估风险。

§5.5 外部验证建议

优先组合:① Montgomery + Shenzhen(肺分割迁移、TB 对照,NLM);② ChestX-ray14/PadChest 中"nodule"标签子集做跨域检测(注意 8-bit、低分辨率域差);③ 有条件时申请 ENSEMBLE 轮廓做分割细化验证。跨域时应报告性能衰减(参考:JSRT 内部 83.6% → NIH 外部 76.7% @ 相近 FP 率,arXiv 2307.06547)。


§6 AI 就绪指南 ⭐

§6.0 云端快速启动(如适用)

JSRT 无官方云镜像;合规起见请在官方页注册下载 raw 版或使用免注册的 DICOM 镜像。社区打包版(如 OpenDataLab JSRT)可加速获取,但版本与坐标体系需按 §3.0 核对后再用于论文复现。

§6.1 快速上手

目录结构预期与 data_root 拼接关系(对应 §4.0 目录树):

  • data_root/ = jsrt_workspace/
  • 图像文件路径 = data_root/All247images/{image_id}.img
  • 元数据 = data_root/info/(官方文本,逐图一行:文件名/年龄/性别/诊断/x/y/半径/SCENE)
  • 最小可用子集:任取 10 张 JPCLN + 10 张 JPCNN 即可跑通本节代码。

读入第一张图并验证 12-bit 直方图:

# 依赖:numpy, matplotlib
# 预期目录:data_root/All247images/JPCLN001.img(2048*2048*2 字节无头 big-endian)
import numpy as np
import matplotlib.pyplot as plt
from pathlib import Path

data_root = Path("jsrt_workspace")          # ← 改为你的解压目录
img_path = data_root / "All247images" / "JPCLN001.img"

raw = np.fromfile(img_path, dtype=">u2")    # big-endian uint16,12-bit 值域 0-4095
assert raw.size == 2048 * 2048, f"非预期文件大小: {raw.size}"
img = raw.reshape(2048, 2048)               # 行优先(row-major),无需转置

print("min/max:", img.min(), img.max())     # 应落在 [0, 4095];若为 [0,255] 说明拿到的是 8-bit 衍生版
plt.figure(figsize=(6, 6))
plt.imshow(img, cmap="gray", vmin=0, vmax=4095)
plt.title("JPCLN001 — raw 12-bit")
plt.axis("off")
plt.savefig("jsrt_first_look.png", dpi=150, bbox_inches="tight")

min/max 打印是本数据集的第一道安检:若最大值 ≤255,你拿到的是 8-bit 衍生版(SCR jpg / Kaggle 镜像),后续所有灰度结论需重新核对(坑点 1)。

若你获取的是 DICOM 镜像版,用 pydicom 替代手工解析即可获得同样的像素体与 PixelSpacing 元数据:

# 依赖:pydicom, numpy
# 输入:DICOM 镜像版单个 .dcm 文件(imgcom.jsrt.or.jp 免注册下载)
import pydicom
import numpy as np

ds = pydicom.dcmread("jsrt_workspace/dicom/JPCLN001.dcm")
arr = ds.pixel_array                              # uint16,12-bit 值域
print(arr.shape, arr.dtype, arr.min(), arr.max())
print("PixelSpacing:", ds.get("PixelSpacing"))    # 期望 0.175 mm 量级
img = arr.astype(np.float32) / 4095.0             # 与 raw 版相同的归一化约定

§6.2 数据获取

步骤 动作 入口 说明
1 引用准备 AJR 2000 记录 BibTeX(§9),后续报告需引用
2 raw 版下载 db.jsrt.or.jp/eng.php 注册用户信息 → 获取下载链接,约 2.1 GB
3 备选 DICOM 版 imgcom.jsrt.or.jp 日文站,免注册,适合 pydicom 管道
4 SCR 掩码 Zenodo 7056076 免注册,jpg+masks+landmarks+points 约 12.6 MB
5 (可选)ENSEMBLE JSRT 影像部门联系渠道 申请制,含病灶轮廓,周期以官方回复为准
# raw 版为人工注册下载;此处演示 SCR 掩码包的脚本化获取(免注册)
mkdir -p jsrt_workspace/SCR && cd jsrt_workspace/SCR
for f in jpg landmarks masks points; do
  curl -L -o "${f}.zip" "https://zenodo.org/record/7056076/files/${f}.zip?download=1"
  unzip -q "${f}.zip" && rm "${f}.zip"
done
# 完成后目录:jsrt_workspace/SCR/{jpg,masks,landmarks,points}

§6.3 预处理全流程

目标:raw 12-bit → 统一 float32 灰度(不截断)→ 可选窗口增强 → 检测金标几何一致缩放。核心原则:灰度变换不丢 12-bit 动态范围,几何变换必须同步金标坐标

# 依赖:numpy, opencv-python
# 输入:jsrt_workspace/All247images/*.img + info/ 元数据文本
# 输出:jsrt_workspace/processed/{image_id}.npy + labels.csv
import numpy as np
import pandas as pd
import cv2
from pathlib import Path

data_root = Path("jsrt_workspace")
out_dir = data_root / "processed"
out_dir.mkdir(exist_ok=True)

def load_raw(path: Path) -> np.ndarray:
    """读入 JSRT raw 12-bit 图像,返回 float32 [0,1],不丢失动态范围。"""
    raw = np.fromfile(path, dtype=">u2").reshape(2048, 2048)
    assert raw.max() > 255, f"{path.name} 疑似 8-bit 版本,请核对数据来源"
    return raw.astype(np.float32) / 4095.0          # 线性归一化,保留全部灰阶

def preprocess(img: np.ndarray, target: int = 1024) -> np.ndarray:
    """ percentile 裁剪 + LANCZOS 降采样(大图→1024,保结节细节)。"""
    lo, hi = np.percentile(img, (0.5, 99.5))         # 去除极端曝光两端
    img = np.clip((img - lo) / max(hi - lo, 1e-6), 0, 1)
    h, w = img.shape
    scale = target / max(h, w)
    return cv2.resize(img, (int(w * scale), int(h * scale)),
                      interpolation=cv2.INTER_LANCZOS4)

rows = []
for img_path in sorted((data_root / "All247images").glob("*.img")):
    img = preprocess(load_raw(img_path))
    np.save(out_dir / f"{img_path.stem}.npy", img)
    rows.append({"image_id": img_path.stem,
                 "has_nodule": int(img_path.stem.startswith("JPCLN"))})

pd.DataFrame(rows).to_csv(out_dir / "labels.csv", index=False)
print(f"预处理完成 {len(rows)} 张 → {out_dir}")

清洗与标准化要点:

  1. 灰度:始终从 uint16 原始值出发归一化,禁止"图像库读进来再均衡"的隐式 8-bit 路径(坑点 1)。
  2. 分辨率:检测任务建议保留 ≥1024 边长;512×512 仅用于分类/分割实验并需在论文中声明(10 mm 结节在 512 边长下仅约 14 像素直径,arXiv 2307.06547)。
  3. 几何:任何 resize/flip/rotate 都要按同一变换矩阵更新 nodule_x/y/radius(坑点 3、6)。
  4. 标准化:可用全库 percentile 统计量做全局标准化;逐图 z-score 会抹掉结节-背景对比信息,慎用。

§6.4 PyTorch DataLoader

# 依赖:torch, pandas, numpy, opencv-python
# 目录预期:jsrt_workspace/{All247images, processed, info};labels.csv 由 §6.3 生成
# 本 Dataset 同时支持 has_nodule 分类与坐标回归两种 target
import numpy as np
import pandas as pd
import cv2
import torch
from torch.utils.data import Dataset, DataLoader
from pathlib import Path

class JSRTDataset(Dataset):
    """JSRT 胸片数据集。

    参数:
        data_root: jsrt_workspace 路径(含 All247images/ 与 processed/)
        meta_csv:  含 image_id, has_nodule, nodule_x, nodule_y, nodule_radius 的表
        img_size:  输出边长(正方形 letterbox 缩放)
        return_box: True 时额外返回 (cx, cy, r) 归一化金标
    """
    def __init__(self, data_root: str, meta_csv: str, img_size: int = 1024,
                 return_box: bool = True, augment: bool = False):
        self.root = Path(data_root)
        self.df = pd.read_csv(meta_csv).reset_index(drop=True)
        self.img_size = img_size
        self.return_box = return_box
        self.augment = augment                     # 检测任务慎用 flip,见坑点 6

    def __len__(self):
        return len(self.df)

    def __getitem__(self, idx: int):
        row = self.df.iloc[idx]
        img = np.load(self.root / "processed" / f"{row.image_id}.npy")  # float32 [0,1]
        h, w = img.shape
        s = self.img_size / max(h, w)
        img = cv2.resize(img, (int(w * s), int(h * s)),
                         interpolation=cv2.INTER_AREA)
        canvas = np.zeros((self.img_size, self.img_size), dtype=np.float32)
        canvas[:img.shape[0], :img.shape[1]] = img            # 右/下侧 letterbox 填零
        cx, cy = float(row.nodule_x) * s, float(row.nodule_y) * s
        if self.augment and np.random.rand() < 0.5:           # 仅训练折内使用
            canvas = canvas[:, ::-1].copy()                   # 水平翻转
            cx = self.img_size - 1 - cx                       # 金标 x 坐标同步翻转(坑点 6)
            if self.return_box and bool(row.has_nodule):
                pass                                          # 左右语义互换:坐标已换,标签无需变更
        tensor = torch.from_numpy(canvas).unsqueeze(0)        # [1, H, W]
        sample = {"image": tensor, "image_id": row.image_id,
                  "label": torch.tensor(int(row.has_nodule), dtype=torch.long)}
        if self.return_box:
            cx = cx if bool(row.has_nodule) else 0.0
            cy = cy if bool(row.has_nodule) else 0.0
            r  = row.nodule_radius * s if bool(row.has_nodule) else 0.0
            sample["box"] = torch.tensor([cx, cy, r], dtype=torch.float32)
        return sample

if __name__ == "__main__":
    ds = JSRTDataset("jsrt_workspace", "jsrt_workspace/processed/labels.csv")
    loader = DataLoader(ds, batch_size=8, shuffle=True, num_workers=4,
                        pin_memory=True)
    batch = next(iter(loader))
    print(batch["image"].shape, batch["label"].sum().item(),
          "个阳性样本", "/", batch["image"].shape[0])

§6.5 坑点(8 个) ⭐

⚠️ 坑点 1:12-bit 灰度被主流图像库静默压成 8-bit(分类:预处理陷阱)

问题:JSRT 原始数据是 12-bit(0–4095);PIL/OpenCV 的默认读取路径、多数教程代码和 Kaggle 镜像按 8-bit 处理,把高 4 位截断或右移,4096 级灰阶被压缩到 256 级。
症状:图像整体偏黑、直方图只占低 4 位(0–15)或出现周期性梳齿;低对比的细微结节肉眼消失;复现论文的灰度敏感实验全盘失败。
解决

  1. 简单方法np.fromfile(path, dtype=">u2").reshape(2048, 2048) 手工读入 raw,astype(np.float32)/4095 线性归一化,全程不经过 PIL。
  2. 进阶方法:先断言 img.max() > 255 建立数据来源安检(§6.1);对 BMP 大图版用 16-bit BMP 解码路径读取后同样归一到 [0,1],禁止 astype(np.uint8)
  3. SOTA 方法:保留 float32 原始动态范围,增强阶段用 CLAHE(cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8)))做局部对比增强替代直方图均衡,兼顾细节与鲁棒性。
    参考MathWorks 社区读入讨论jsrt-parserarXiv 2307.06547

⚠️ 坑点 2:2048/4072 大图的显存与缩放陷阱(分类:工程陷阱)

问题:raw 版单张 2048×2048(8.4 MB)、BMP 版 4072×4072(约 33 MB);直接 resize 到 299/512 的 ImageNet 惯例输入会让小结节物理细节消失——10 mm 结节(约 57 像素)缩到 299 边长后直径只剩约 8 像素,面积缩水 49 倍。
症状:显存 OOM(batch×2048²×float 中间体);或训练收敛但验证敏感度异常低,尤其 subtlety 4–5 组几乎全漏。
解决

  1. 简单方法:统一 LANCZOS 降采样到 1024 边长 + letterbox,batch ≤8;按 §6.3 的 percentile 裁剪控制动态范围。
  2. 进阶方法:双流输入——全图低分辨率分支提供上下文,结节候选窗口(用金标坐标裁剪 256×256 patch)提供细节;推理时用候选生成网络替代金标窗口。
  3. SOTA 方法:保持 0.175 mm 物理分辨率的滑窗 + 特征金字塔(FPN)框架,或以 1024×1024 为最小工作分辨率并在外部验证时统一(外部验证研究表明 1024 输入下内部 83.6% @ 8.3 FP、外部 76.7% @ 7.6 FP 可稳定泛化)。
    参考arXiv 2307.06547(Full-resolution Lung Nodule)、Li et al., IEEE Access 2018

⚠️ 坑点 3:结节中心 (x, y) 与半径的坐标约定(分类:标签理解)

问题:官方元数据给出结节中心坐标与半径,但像素坐标系(行/列、原点位置)在 raw 版(2048)、BMP 版(4072)与 DICOM 版之间不成比例;社区复现代码对 (x,y) 是"列,行"还是"行,列"约定不一。
症状:金标圆圈画在胸壁/肩胛骨上;候选 patch 裁偏;按错误尺度换算 mm 时结节直径全错;BMP 版与 raw 版混用时坐标整体错位。
解决

  1. 简单方法:统一约定 (x=列, y=行)、原点左上,并在 20 张图上叠加可视化人工核验后再批量处理。
  2. 进阶方法:把坐标统一换算为物理单位(mm):x_mm = x_px × 0.175;跨版本对齐用比例因子(BMP 4072 / raw 2048 ≠ 整数倍,必须逐版本核对官方说明,禁止假设 2 倍)。
  3. SOTA 方法:以 DICOM 版为准构建单一坐标系(pydicom 读 PixelSpacing/_orientation),所有衍生资源(SCR、ENSEMBLE)先映射到 DICOM 坐标再入库。
    参考jsrt-parser官方英文页、§3.3 版本对照表

⚠️ 坑点 4:93 张无结节图的正确用法(分类:评估误用)

问题:无结节图只表示"无肺结节",不是全面健康的对照;且检测任务的 FP/image 分母是全部 247 张,不是 154 张阳性图。用错分母或把阴性图当"正常"训练标签,评估结果不可比。
症状:报告的 FP/image 偏高/偏低 1.6 倍(154 vs 247 分母差);模型把阴性图上的肋骨交叉、血管影当"正常背景"学进去,跨域时产生系统性假阳性。
解决

  1. 简单方法:检测评估统一用 FROC:TP 判定基于金标圆(中心距离 ≤ 半径),FP 统计除以 247;分类任务才用 154/93 二分类协议。
  2. 进阶方法:将 93 张阴性图拆为两部分——一半进训练集提供真阴性,一半只留作 FP 评估,防止模型对特定阴性图的记忆低估 FP 率。
  3. SOTA 方法:报告双 TP 判据(如距离 ≤ 半径与 ≤25 mm)下的 FROC 并给出置信区间;不同判据下论文数字差异巨大,双判据是与文献对话的最低配置(Li et al. 2018 展示了 5 mm 判据的影响)。
    参考Li et al., IEEE Access 2018(Discussion 节对各论文协议的逐条讨论)、AJR 2000

⚠️ 坑点 5:SCR/ENSEMBLE 轮廓集单独分发、版本文档混乱(分类:工程陷阱)

问题:标准 JSRT 包不含任何轮廓/掩码;解剖掩码在 SCR(Zenodo,.pfs/.gif 老格式),结节轮廓在 ENSEMBLE(申请制、不含诊断信息),三者图像封装(raw/BMP/DICOM)与分辨率体系互不一致,官方文档分散在日文/英文多个站点。
症状:掩码与图像错位、左右肺掩码互换;申请 ENSEMBLE 数周无音信期间流程阻塞;引用错误版本导致审稿质疑。
解决

  1. 简单方法:图像统一改用 SCR Zenodo 的 jpg 版(与掩码天然对齐),raw 版只作灰度研究;掩码 GIF 读入后用 np.unique 校验前景比例(肺野约 20–35%)。
  2. 进阶方法:写一个版本适配层:三个来源(raw/SCR/ENSEMBLE)各自声明分辨率与封装,入库时统一转 float32 + 统一坐标(结合坑点 3),并保留版本字段到样本元数据。
  3. SOTA 方法:以 DICOM 镜像为唯一图像事实源,SCR 掩码重采样对齐后入库;ENSEMBLE 轮廓到达后独立版本管理(git-lfs/DVC),论文中分别引用三者的原始出处。
    参考Zenodo SCR 说明(作者自述"文件格式老旧,需读论文解析")、2026 RPT 综述

⚠️ 坑点 6:左右翻转与 DICOM 视角(分类:预处理陷阱)

问题:PA 胸片遵循"患者左侧出现在图像右侧"的放射学约定;水平翻转会同时破坏左右语义与结节坐标,而 JSRT 的诊断与位置示意图都绑定左右。DICOM 镜像版的视角标签与 raw 版视觉约定需要核对(老数据无统一 Orientation 保证)。
症状:翻转增强后"右肺结节"变"左肺结节",位置示意图与图像对不上;方向分类模型(jsrt-directions 类任务)在翻转样本上反转预测;左右侧性分析报告全错。
解决

  1. 简单方法:检测/定位任务默认禁用水平翻转;确需翻转时同步执行 x' = W-1-x 并重写位置语义(左右互换)。
  2. 进阶方法:把"翻转 + 坐标变换"封装进 Dataset(如 §6.4 代码的 augment 分支),用 5 张图断言金标圆仍套住结节后再开启。
  3. SOTA 方法:用方向分类器(MiniJSRT directions 任务,AUC 可达 0.93–0.98)作为数据入口的自动质检门,入口处统一影像方向后再做增强;跨版本对齐时以 DICOM 标签为准。
    参考MiniJSRTopenmedlab jsrt-directionsjsrt-parser

⚠️ 坑点 7:无官方划分导致跨论文数字不可比(分类:评估误用)

问题:JSRT 没有官方 train/test 划分,各论文自选 5-fold CV、随机划分或外部验证协议;TP 判定距离从 ≤ 结节半径到 25 mm 不等。同一任务 Reported sensitivity 差异可达 30 个百分点,其中相当部分是协议差异而非模型差异。
症状:按论文代码复现,数字对不上;文献综述里的"SOTA 排名"实际是"协议排名"。
解决

  1. 简单方法:完整复现目标论文的划分与 TP 判据再谈比较;引用他人数字时必须标注其协议(k-fold? 内部/外部? 判据?)。
  2. 进阶方法:固定一个社区高频协议(如 5-fold CV + 半径判据)并公开划分文件与种子;报告多协议结果作为附录。
  3. SOTA 方法:以医生基线为锚(一般医生 0.64 / 胸部专科 0.77 敏感度 @ 约 0.07 FP/case),报告"算法-医生"相对位置而非裸数字;同时提供 1999–2018 协议谱系对照(35% @ 6 FP → 94% @ 5 FP)。
    参考Li et al., IEEE Access 2018 Table 3、Eur Radiol 2021 综述

⚠️ 坑点 8:单张图单结节标注的局限(分类:偏倚陷阱)

问题:154 张阳性图每张恰含 1 个孤立结节,无多结节、无其他病灶标签;"每图至多一个目标"的先验被硬编码进任何在此库上训练的检测器。
症状:模型在多结节/多病灶真实数据上输出 Top-1 后忽略其余候选;迁移到有肺炎、胸腔积液的数据时把非结节异常一律抑制;报告的"检测精度"在新场景不成立。
解决

  1. 简单方法:将 JSRT 定位为单结节检测基准,避免宣称"胸片异常检测"能力;论文 limitations 明示单结节设计。
  2. 进阶方法:混合训练——JSRT(高精度金标)+ ChestX-ray14/VinDr-CXR(多标签、大规模)联合训练,以域加权缓解单结节先验。
  3. SOTA 方法:用结节合成/移植(synthetic nodule transplantation)在阴性图上构造多结节场景扩充训练分布,再在 JSRT 原始分布上评估;外部验证(NIH 等)证明该策略对泛化更稳。
    参考PMC11977551(每图一结节的事实陈述)、Eur Radiol 2021 综述arXiv 2307.06547

§6.6 数据增强

增强 是否安全 说明
平移/小角度旋转(≤10°) 需同步变换金标坐标(同一仿射矩阵)
弹性形变(小幅) 保留结节形态学特征边界,幅度 ≤2%
CLAHE / 对比度抖动 12-bit 动态范围内进行,勿先截断到 8-bit
高斯噪声/模糊(轻) 模拟扫描噪声;σ ≤ 图像标准差的 2%
水平翻转 ⚠️ 仅在同步变换坐标与左右语义时可用(坑点 6)
垂直翻转 / 90° 旋转 破坏解剖学朝向,PA 胸片无此变体
灰度反转 X 光灰度语义(曝光区高值)不可反转
亮度/对比度强抖动 会淹没 subtlety 差异,破坏难度分层评估
Cutout 遮挡结节区域 可能直接擦除唯一金标目标

§6.7 模型推荐

模型 任务 输入建议 理由
Faster R-CNN / FCOS 结节检测 1024–2048 边长 金标为圆(中心+半径),天然映射为框/圆标注
ResNet18/50 良恶性分类、图级检测 512 边长 154/93 规模下从 ImageNet 预训练起步最稳
U-Net / nnU-Net 解剖分割(SCR 掩码) 1024 边长 SCR 掩码小样本下 nnU-Net 自配置最省力
多尺度 CNN 集成(类 E-CNNs) 假阳性抑制 12/32/60 多 patch 与 2018 SOTA 直接可比(DOI
SAM/MedSAM 微调 分割教学实验 1024 边长 SCR 掩码可作提示学习监督,注意域差

§6.8 硬件需求

场景 最低配置 推荐配置
预处理与统计 8 GB RAM,CPU 即可 16 GB RAM,SSD
分类训练(512 输入) 单卡 8 GB(RTX 3060 级) 单卡 16 GB
检测训练(1024 输入) 单卡 16 GB,batch 2–4 单卡 24–32 GB,batch 8
全图 2048 训练 单卡 24 GB + 梯度累积 多卡或滑窗策略(坑点 2)
存储 20 GB 50 GB(含 float32 中间产物与多版本)

§6.9 评估指标代码

# 依赖:numpy
# 输入:detections = {image_id: [(cx, cy, score), ...]},gold = {image_id: (cx, cy, r)}
# 输出:FROC 曲线(sensitivity @ FP/image);TP 判据 = 检测点落入金标圆内
import numpy as np

def froc(detections: dict, gold: dict, n_images: int):
    """detections/gold 为逐图字典;n_images = 247(FP 分母,见坑点 4)。"""
    hits, total_fp = [], 0
    for image_id, g in gold.items():
        dets = sorted(detections.get(image_id, []), key=lambda t: -t[2])
        found = False
        for cx, cy, _score in dets:
            gx, gy, r = g
            inside = (cx - gx) ** 2 + (cy - gy) ** 2 <= r ** 2   # 圆内判 TP
            if inside and not found:
                found = True                                     # 每图单结节:首个命中即 TP
            elif not inside:
                total_fp += 1
        hits.append(found)
    sens = float(np.mean(hits))
    fp_per_image = total_fp / n_images
    return sens, fp_per_image

# 使用:sens, fp = froc(detections, gold, n_images=247)
# 报告规范:sensitivity @ FP/image(标注 TP 判据与划分协议,见坑点 7)

小样本下建议再报 bootstrap 置信区间(247 张的重采样很快):

# 依赖:numpy
# 目的:对 FROC 工作点做 bootstrap 置信区间(B=1000 次图像级重采样)
import numpy as np

def froc_bootstrap(detections: dict, gold: dict, n_images: int,
                   n_boot: int = 1000, seed: int = 0):
    rng = np.random.default_rng(seed)
    ids = sorted(gold.keys())
    sens_list = []
    for _ in range(n_boot):
        sampled = rng.choice(ids, size=len(ids), replace=True)
        d_s = {i: detections.get(i, []) for i in sampled}
        g_s = {i: gold[i] for i in sampled}
        sens, _fp = froc(d_s, g_s, n_images=n_images)
        sens_list.append(sens)
    lo, hi = np.percentile(sens_list, [2.5, 97.5])
    return float(lo), float(hi)   # 95% CI;报告格式:sens (95% CI: lo-hi) @ FP/image

§6.10 MLOps 笔记

  • 数据版本化:JSRT 无版本化 API;建议把 raw 包 MD5、SCR Zenodo 版本号(v1, 2022-09-07)与自制 labels.csv 一并入库 DVC/git-lfs,论文可复现性依赖这三件套。
  • 数据卡:在模型卡中明确"训练含 JSRT"及其病例富集偏倚(62% 阳性),避免下游误读敏感度/特异度。
  • 监控:临床化部署时监控输入灰度分布漂移(胶片扫描 vs 现代 DR 的域差,Eur Radiol 2021),JSRT 训练的模型在新设备上灰度直方图漂移是最早的可观测信号。
  • 合规留痕:保存官方页的引用要求与注册回执;发表时引用 Shiraishi 2000 并注明 raw 版注册获取路径。

JSRT 特有的 MLOps 提示:

  • 评估集冻结:把 154 张阳性图按 subtlety 分桶后冻结一套固定评测索引(JSON),所有模型迭代用同一索引评估——247 张的体量下,"每次评估集不同"造成的指标抖动足以淹没真实改进。
  • 金标双存:同时保留像素坐标(int)与物理坐标(mm)两套金标列,前者用于 FROC,后者用于与临床直径标准(如 8 mm 手术阈值)对接。
  • 衍生资源版本绑定:SCR 用 Zenodo v1 的 MD5(jpg/masks/landmarks/points 各自校验值)入库;ENSEMBLE 到货后记录获取日期与包哈希,避免多年后无法说明用的是哪一版轮廓。
  • 灰度回归测试:在 CI 中保留一张固定图的 min/max/分位数断言(§6.1 安检的自动化版本),防止未来某人"顺手"接入 8-bit 镜像数据污染训练集。

§7 质量评估与局限性

§7.1 已知偏倚

偏倚类型 描述 严重程度 缓解措施
病例富集偏倚 62.3% 图像含结节,远高于临床筛查阳性率 分类任务报告时校准患病率;检测任务用 FROC 而非 accuracy
单结节设计偏倚 阳性图全部为单个孤立结节(154/154) 混合多病灶数据训练;外部验证多结节场景(坑点 8)
恶性过采样 结节图中 64.9% 为恶性 CADx 分层抽样;报告良恶性各自 FROC
时代/设备偏倚 1998 年前后胶片扫描影像,与现代 DR 存在域差 外部验证必须包含现代数字影像(JSRT→NIH 敏感度 83.6%→76.7% 的衰减即为实证)
难度分布偏倚 极细微档样本最少而临床价值最高 按 subtlety 分层报告;对最难档过采样训练
地域偏倚 日本+美国 14 中心、成人为主 跨人群部署前补充本地数据

其中"时代/设备偏倚"值得单独强调:JSRT 与现代数据集的差异不是"噪声更大"这种简单退化,而是整个成像链路不同(胶片感光 → 激光扫描 vs 平板探测器直接数字化)。灰阶响应曲线、噪声空间相关性、动态范围利用都不可比。在 JSRT 上调出的窗口/增强超参数不应直接迁移到现代数据流水线;反之,在现代数据上最优的自适应直方图均衡参数也可能在胶片扫描图上过度放大胶片颗粒噪声。

§7.2 标注质量

检测金标由放射科医生在证实结节上人工定位,配合 CT/随访证实,定位精度足以支撑 FROC(圆内判定)协议;但官方未公布标注者间一致性统计,且金标是"中心+半径"的圆形近似而非真实轮廓——研究结节形态学时应申请 ENSEMBLE 轮廓或使用 SCR 掩码的解剖标注。良恶性标签依赖 1998 年前后的临床证实手段,个别早期病变的"良性"判定在现代标准下可能需重新审视。

从训练信号角度评估:金标的"中心+半径"形态对检测任务是足够且友好的(等价于一个低分辨率的框标注);对分割任务则完全不足——圆形掩膜与真实结节边界(尤其毛刺状边缘、胸膜牵拉)差异显著,用圆形近似监督分割网络会系统性低估边界精度。SCR 解剖掩码(肺/心/锁骨)质量经 2006 年对比研究检验,可直接用作分割监督;结节级轮廓只有 ENSEMBLE 一条获取路径。

§7.3 泛化性

部署场景 失效风险 证据
现代数字摄影(DR)设备 中高:灰阶/噪声特性不同 JSRT→NIH 外测敏感度降 6.9 个百分点(arXiv 2307.06547
多结节患者 高:单结节先验失效 数据集设计决定(154/154 单结节,PMC11977551
儿童/青少年 高:训练分布为成人 元数据仅成人,无儿科病例
恶性极细微结节筛查 高:算法对恶性极细微敏感度仅约 40% arXiv 2307.06547
肺外异常(积液、肺炎等) 高:无此类标注,模型未学习 官方标签体系仅结节

§7.4 伦理

JSRT 以匿名方式发布:不含姓名、ID、机构、日期等直接标识符,仅保留年龄与性别;官方建库时按研究用途伦理程序处理病例材料。原始版需注册获取,形成基本的使用问责链。使用者仍应在本地 IRB/伦理框架下评估二次利用(尤其公开发布基于该数据的模型输出图像时)。

三条边界性提醒:① 247 张影像虽已匿名,但高分辨率原始胸片在理论上仍具再识别风险(罕见体征组合),公开论文配图时应避免展示整图加元数据组合;② 良恶性标签使该库天然承载"癌症诊断"敏感语义,禁止在非研究语境(如商业演示)中使用个体病例故事化呈现;③ 由 JSRT 训练的临床模型产生的报告/标注若回流用于再训练,需按新的临床数据管理规范处理,不自动继承本数据集的匿名状态。

§7.5 公平性

数据集无种族字段,无法做跨人群公平性审计;地域以日本为主、性别与年龄分布随元数据可用,可在训练时监控子群性能。恶性/良性比例与难度分布的人为设计(非自然患病率)本身构成"标注分布公平性"问题——任何临床声明都应附带这些设计参数。

可执行的公平性实践:① 用元数据中的年龄/性别做子群性能分层报告(检出敏感度按性别/年龄段拆分),即使不修改训练也可暴露子群差异;② 注意 1998 年前后临床路径差异(吸烟人群、职业暴露筛查的入选偏倚)可能间接影响年龄/性别与结节的联合分布;③ 对外声明性能时避免使用"人群无关"的表述——JSRT 的证据边界就是"日美成人、胶片时代影像"。

§7.6 数据漂移

胶片扫描影像与现代直接数字摄影(DR)之间存在系统性图像域差异(灰阶响应、噪声谱、动态范围压缩),属于设备代际漂移;无采集时间戳字段使时间维度漂移无法度量。缓解:入口处做直方图规格化或灰度域自适应,并以现代数据做外部验证(Eur Radiol 2021 综述)。

实践中可监控的漂移信号:① 输入图像 uint16 直方图的形状统计(分位数、双峰位置)相对 JSRT 参考分布的偏移;② 模型中间层激活统计(简单做法是记录 logit 分布的均值/方差);③ FP 空间分布的迁移——若部署数据上假阳性开始集中于 JSRT 中罕见的解剖区域(如肺尖),通常是域差的直接表现。这三项监控都不需要标签,适合作为部署默认配置。

§7.7 DAIMS 24 项核查

# 检查项 状态 说明
1 宽格式 逐图一条记录,247 行元数据即全部结构化内容
2 唯一标识 官方文件名(JPCLN/JPCNN 编号)全局唯一,可作主键
3 特殊字符 文件名与元数据为 ASCII,无编码陷阱
4 重复行 247 个文件名互异;图像级重复未见报告(患者级需自查)
5 缺失编码 ⚠️ 部分病例年龄/性别缺失且官方未声明缺失机制
6 标签标识 文件名前缀即检测标签;诊断随元数据显式给出
7 罕见类分组 ⚠️ subtlety 最难档与良性子集样本量小,分层评估方差大
8 偏倚评估 官方 ROC 观察研究量化了难度偏倚;§7.1 汇总六类偏倚
9 数据字典 ⚠️ 官方说明分散于 readme/论文/网站,无统一机读字典
10 信息性缺失解释 缺失(年龄/性别)无官方解释文档
11 设备记录 ⚠️ 数字化规格(0.175 mm、12-bit)公开,逐图设备/曝光参数缺失
12 共线性 影像数据无特征共线性问题
13 编码映射 ⚠️ 恶性/良性标签无 ICD/SNOMED 官方映射(本页 §2.1 提供社区映射)
14 时间戳处理 全库无采集时间字段,时序分析不可行
15 划分建议 ⚠️ 无官方划分;社区多协议并存,需自行声明(§5)
16 泄漏讨论 官方未讨论患者重复/跨例泄漏风险,须使用者自查
17 标签分布 154/93、100/54 与难度五档分布均可从元数据精确统计
18 测量偏倚 ⚠️ 金标为圆近似;难度分档源自 1998 年观察研究口径
19 外部验证建议 20+ 年外部验证文献谱系(Montgomery/Shenzhen/NIH 等)
20 版本记录 ⚠️ 发行史清晰(1998/2000/2006/2013/2022)但无正式版本号体系
21 预处理脚本 ⚠️ 官方无脚本;社区解析器(jsrt-parser 等)与 MiniJSRT 部分覆盖
22 合规要求 学术免费、注册获取、引用要求明确且可执行
23 多模态对齐 单模态数据集,无跨模态对齐义务
24 去标识化 ⚠️ 官方匿名发布;但逐图去标识过程文档未公开

DAIMS 评分:15.5 / 24

评分解读:✅ 10 项、⚠️ 11 项、❌ 3 项。JSRT 的强项在"结构简单、标识清晰、合规明确、外部验证文献深厚"——这正是一个 247 张小库能统治基准 20 年的原因;弱项集中在"文档现代化"(无机读字典、无缺失解释、无官方划分、无泄漏讨论),这些是 2000 年代数据包的典型形态而非数据本身的缺陷。三项 ❌(信息性缺失解释、时间戳、泄漏讨论)均无技术手段弥补,只能以使用者侧协议补齐。

对你意味着什么:① 把 JSRT 当基准/外部验证集而非训练主力——247 张撑不起预训练,但足以给模型一个高可信度的体检;② 动手前先花半天完成三件事:12-bit 读入安检(§6.1)、坐标可视化核验(坑点 3)、患者重复自查(§5.3),即可规避三个最高频的翻车点;③ 所有对比实验必须附带"划分协议 + TP 判据"两个声明,否则你的数字与文献互不可比(坑点 7);④ 若做分割/形态学,尽早申请 ENSEMBLE 并锁定 SCR Zenodo v1 版本号入库。

§7.8 外部验证矩阵

外部数据集/场景 来源机构 评估任务 性能指标 相对内部变化 关键发现
NIH ChestX-ray14 美国国立卫生研究院 结节检测(E-D 编解码网络) 内部 83.6% @ 8.3 FP/image → 外部 76.7% @ 7.6 FP/image −6.9 个百分点 跨域衰减显著但可控;深网络(6–7 层)内测偏乐观(arXiv 2307.06547,2023)
Montgomery + Shenzhen 美国国家医学图书馆 肺掩码迁移 → TB 筛查 分割引导的 TB 分类跨库成立 掩码可迁移 JSRT+SCR 掩码是 TB 筛查流水线的标准预训练源(PMC11977551
商业级深筛系统(Nam et al.) 多医院 >4 万张训练 结节检出 AUC 0.92–0.99(按验证集) 大数据模型反以 JSRT 做验证 极细微组仍是共同短板(Eur Radiol 2021
Montgomery + Shenzhen(配准) 美国国家医学图书馆 解剖约束影像配准学习(ACRN) DSC / HD / ASSD 相对基线提升 JSRT 作为多库组合之一 掩码监督可跨库学习解剖表征(Mansilla L, Milone DH, Ferrante E. Neural Networks, 2021,arXiv 2001.07183

§8 基准性能与生态

§8.1 排行榜(结节检测,JSRT 协议内)

排名 模型 性能 年份 关键技术 完整引用 代码
1 E-CNNs(三 CNN 逻辑与集成) 94% @ 5.0 FP/image;84% @ 2.0 FP/image(5-fold CV) 2018 锐化增强 + 三尺度 CNN 集成假阳性抑制 Li C, Zhu G, Wu X, Wang Y. IEEE Access, vol. 6, pp. 16060-16067, 2018. DOI: 10.1109/ACCESS.2018.2817023 无官方仓库
2 Virtual dual-energy CAD 85% (119/140) @ 5.0 FP/image 2003–2005 虚拟能量减影抑制骨骼影 Li Q, Katsuragawa S, Doi K 等,Medical Physics(virtual dual-energy 方案,见 Li 2018 Table 3 汇总)
3 Hardie et al. 方案 80% @ 5.0 FP/image(25 mm 判据) 2008 多尺度模板匹配 + 线性判别 Hardie RC 等(见 Li 2018 Discussion 引用汇总)
4 Schilham et al. CAD 67% @ 4 FP/image 2006 多尺度滤波候选 + 统计分类,公开库评估 Schilham AMR, van Ginneken B, Loog M. Med Image Anal, 10(2):247-258, 2006
5 MTANN 假阳性抑制 大幅降低 FP 的经典非线性滤波路线 2005 海量训练人工神经网络(MTANN) Suzuki K, Shiraishi J, Abe H, MacMahon H, Doi K. Acad Radiol, 12(2):191-201, 2005
6 解剖分类局部搜索 CAD 传统 CAD 协议代表(局部搜索降 FP) 2006 解剖区域分类 + 局部化搜索 Shiraishi J, Li Q, Suzuki K, Engelmann R, Doi K. Med Phys, 33(7):2642-2653, 2006
7 早期 CAD(1999 基线) 35% @ 6 FP/image 1999 传统滤波+规则 谱系汇总见 Eur Radiol 2021 综述
医生基线(一般/胸部专科) 0.64 / 0.77 敏感度 @ ≈0.07 FP/case 2000 20 名医生 ROC 观察 Shiraishi J et al. AJR, 174(1):71-74, 2000. DOI: 10.2214/ajr.174.1.1740071 不适用

⚠️ 上述数字不可直接横向比较:TP 判据(圆内 vs 25 mm)、划分(5-fold vs 固定)、FP 分母(154 vs 247)各不相同(坑点 7),排行榜仅反映协议谱系(Li 2018 Table 3)。

§8.2 SOTA 总结与选型建议

深学习时代在 JSRT 内部协议上已逼近饱和(84–94% @ 2–5 FP),继续刷榜价值有限;当前更有价值的三个方向是:① 极细微组的敏感度(人类 <30%,恶性极细微算法仅约 40%);② 合成数据/外部大数据训练 + JSRT 作为高可信验证集的"训练外置"范式;③ 检测之外的分割与轮廓级精细任务(SCR/ENSEMBLE)。选型建议:新检测框架以 E-CNNs 协议为对照下界,新分割框架以 SCR+nnU-Net 为对照下界。

需要校准的预期是:JSRT 上的"SOTA 数字"已经不构成发表贡献的主体,审稿人真正关心的是在极细微组上的分层表现跨域稳定性两个维度。前者把你的方法与"人类极限"对齐,后者把你的方法与现代部署场景对齐——只报告整体 FROC 的论文在这个基准上的边际信息量已接近零。

§8.3 评测协议

社区事实标准:分层 5-fold CV(全 247 张)、TP = 检测点落入金标圆、FP/image 分母 247、报告 FROC 上若干工作点而非单点;CADx 在 154 张内 k-fold 报 ROC-AUC。任何偏离(固定划分、外测、不同判据)必须显式声明并与协议谱系对照(§6.5 坑点 7)。

协议的三个可协商参数及其影响幅度:① TP 判据(圆内 vs 固定距离 25 mm)——25 mm 判据下敏感度系统性偏高,Hardie 2008 的 80% @ 5 FP 即在此判据下取得;② FP 分母(247 vs 154)——直接影响 FP/image 数值约 1.6 倍;③ 划分方式(5-fold vs 外测)——CV 内测结果系统性乐观于外部测试(参见 §7.8 内外衰减证据)。报告数字时把这三个参数与数字放在一起,是与文献对话的基本礼仪。

§8.4 相关数据集

数据集 规模 关系 典型组合用法
SCR database 247 掩码集 JSRT 逐图解剖掩码 分割监督/身体掩膜
Montgomery (MC) 138 张 同为 PA 胸片、含肺掩码 分割迁移 + TB 对照
Shenzhen 662 张 TB 阳性大库 分割/异常检测迁移
ChestX-ray14 112,120 张 大规模多标签 预训练 + JSRT 精评
PadChest 160,000+ 张 12-bit 现代库 域适应研究
VinDr-CXR 18,000 张 框级人工标注(含结节) 检测任务继任基准
MIMIC-CXR 377,110 张 报告衍生标签+现代 DR 预训练与域适应对照
NLST 26,732 例 筛查队列 CXR+CT 结节筛查场景的大规模外部验证

§8.5 关键论文 Top 8

  1. Shiraishi J, Katsuragawa S, Ikezoe J, et al. Development of a digital image database for chest radiographs with and without a lung nodule: ROC analysis of radiologists’ detection of pulmonary nodules. AJR, 174(1):71-74, 2000. DOI: 10.2214/ajr.174.1.1740071 —— 数据集原始论文,确立规模、格式与医生基线。
  2. van Ginneken B, Stegmann MB, Loog M. Segmentation of anatomical structures in chest radiographs using supervised methods: a comparative study on a public database. Medical Image Analysis, 10(1):19-40, 2006. DOI: 10.1016/j.media.2005.02.002 —— SCR 掩码与分割基准的确立之作。
  3. Schilham AMR, van Ginneken B, Loog M. A computer-aided diagnosis system for detection of lung nodules in chest radiographs with an evaluation on a public database. Medical Image Analysis, 10(2):247-258, 2006 —— 首批以 JSRT 为公开评测的 CAD 系统。
  4. Li C, Zhu G, Wu X, Wang Y. False-positive reduction on lung nodules detection in chest radiographs by ensemble of convolutional neural networks. IEEE Access, 6:16060-16067, 2018. DOI: 10.1109/ACCESS.2018.2817023 —— 深度学习集成的标志性 FROC 结果(94% @ 5 FP)。
  5. Shiraishi J, Li Q, Suzuki K, Engelmann R, Doi K. Computer-aided diagnostic scheme for the detection of lung nodules on chest radiographs: localized search method based on anatomical classification. Medical Physics, 33(7):2642-2653, 2006 —— 解剖分类局部搜索的经典 CAD 协议。
  6. Shiraishi J, Abe H, Engelmann R, Aoyama M, MacMahon H, Doi K. Computer-aided diagnosis for distinction between benign and malignant solitary pulmonary nodules on chest radiographs: ROC analysis of radiologists’ performance. Radiology, 227(2):469-474, 2003 —— 同团队 CADx(良恶性)方法学姊妹篇。
  7. Suzuki K, Shiraishi J, Abe H, MacMahon H, Doi K. False-positive reduction in computer-aided diagnostic scheme for detecting nodules in chest radiographs by means of a massive training artificial neural network. Academic Radiology, 12(2):191-201, 2005 —— MTANN 假阳性抑制经典方法。
  8. Mansilla L, Milone DH, Ferrante E. Learning deformable registration of medical images with anatomical constraints(ACRN,JSRT+Montgomery+Shenzhen 组合). Neural Networks, 2021 —— JSRT 掩码在跨库解剖表征学习中的用法(arXiv 2001.07183)。
  9. Eur Radiol 2021 深度学习胸片综述 —— 汇总 JSRT 检测谱系 1999→2014 进步曲线与外部验证证据。
  10. Radiological Physics and Technology 2026 历史综述(Historical and clinical contributions of the JSRT chest radiograph database)—— 近三十年贡献与版本分发的权威回顾。

§8.6 社区活跃度

JSRT 生态以"稳定维护 + 长尾引用"为特征:官方页 24 年持续分发(截至官方页 2021 年陈述),2026 年仍有新综述系统回顾其贡献;GitHub 上存在多个社区解析器(jsrt-parser 等)与教学实现(MiniJSRT 方向/性别分类等练手项目);Zenodo SCR v1(2022-09-07)为分割社区提供了可持续引用的存档。它不再是前沿 SOTA 战场,而是方法学论文的必备外部验证点

活跃度的三个可观测信号:① 引用结构——Web of Science 2021-02 口径中 191 篇期刊 + 123 篇会议 + 15 篇综述 + 7 部书章,说明其影响横跨学术与教材;② 衍生资源节奏——SCR(2006)、骨影消除版(2013)、MiniJSRT 与 DICOM 镜像(近年)持续出现,官方维护链条从未中断;③ 教学渗透——2020 年代多篇深度学习课程/开源教程以 JSRT/MiniJSRT 为入门数据集,形成了与科研引用并行的"教学引用"长尾。

§8.7 生态快照

资源 类型 链接 状态(截至 2026-09 检索) 推荐理由
JSRT 官方英文页 官方文档 jsrt.or.jp 在线 权威规格与引用列表
db.jsrt.or.jp 注册下载 官方 raw 版 eng.php 在线 最接近原始数据的版本
JSRT 影像部门 官方 DICOM/MiniJSRT imgcom.jsrt.or.jp 在线(日文) 免注册 DICOM + 教学集
SCR Zenodo v1 掩码存档 zenodo 7056076 2022-09-07 版 分割任务的掩码事实源
BME-MIT-OMR 骨影消除版 衍生数据 mit.bme.hu 2013 v1.0 去肋骨/锁骨影对比研究
jsrt-parser 社区解析器 GitHub 开源 raw 读入与元数据解析参考实现
OpenDataLab JSRT 社区镜像 opendatalab 在线 国内加速获取(用前核对版本)
openmedlab Awesome-Medical-Dataset 社区文档 GitHub 维护中 jsrt-directions 衍生任务说明
MathWorks 社区讨论 问答存档 mathworks.com 在线 raw 读入问题的社区参考答案

§9 相关资源与引用

§9.1 官方资源

阅读顺序建议:第一次接触 JSRT 的工程师按"官方英文页 → AJR 2000 摘要 → 本页 §3.0 版本矩阵 → §6.1 快速上手"的顺序阅读即可建立可工作的最小认知;做分割方向再补 van Ginneken 2006 全文;做检测协议设计再精读 Li et al. 2018 的 Discussion 节(对历史协议差异的逐条讨论是全文献最实用的部分)。

§9.2 BibTeX

@article{shiraishi2000development,
  author  = {Shiraishi, Junji and Katsuragawa, Shigehiko and Ikezoe, Junpei and
             Matsumoto, Tsuneo and Kobayashi, Takeshi and Komatsu, Ken-ichi and
             Matsui, Mitate and Fujita, Hiroshi and Kodera, Yoshie and Doi, Kunio},
  title   = {Development of a Digital Image Database for Chest Radiographs With and
             Without a Lung Nodule: Receiver Operating Characteristic Analysis of
             Radiologists' Detection of Pulmonary Nodules},
  journal = {American Journal of Roentgenology},
  volume  = {174},
  number  = {1},
  pages   = {71--74},
  year    = {2000},
  doi     = {10.2214/ajr.174.1.1740071}
}

@article{vanginneken2006segmentation,
  author  = {van Ginneken, Bram and Stegmann, Mikkel B. and Loog, Marco},
  title   = {Segmentation of anatomical structures in chest radiographs using
             supervised methods: a comparative study on a public database},
  journal = {Medical Image Analysis},
  volume  = {10},
  number  = {1},
  pages   = {19--40},
  year    = {2006},
  doi     = {10.1016/j.media.2005.02.002}
}

@article{li2018falsepositive,
  author  = {Li, Chaofeng and Zhu, Guoce and Wu, Xiaojun and Wang, Yuanquan},
  title   = {False-Positive Reduction on Lung Nodules Detection in Chest Radiographs
             by Ensemble of Convolutional Neural Networks},
  journal = {IEEE Access},
  volume  = {6},
  pages   = {16060--16067},
  year    = {2018},
  doi     = {10.1109/ACCESS.2018.2817023}
}

@article{suzuki2005false,
  author  = {Suzuki, Kenji and Shiraishi, Junji and Abe, Hiroyuki and
             MacMahon, Heber and Doi, Kunio},
  title   = {False-positive reduction in computer-aided diagnostic scheme for
             detecting nodules in chest radiographs by means of a massive training
             artificial neural network},
  journal = {Academic Radiology},
  volume  = {12},
  number  = {2},
  pages   = {191--201},
  year    = {2005}
}

@article{schilham2006cad,
  author  = {Schilham, Arnaud M. R. and van Ginneken, Bram and Loog, Marco},
  title   = {A computer-aided diagnosis system for detection of lung nodules in
             chest radiographs with an evaluation on a public database},
  journal = {Medical Image Analysis},
  volume  = {10},
  number  = {2},
  pages   = {247--258},
  year    = {2006}
}

@article{shiraishi2006localized,
  author  = {Shiraishi, Junji and Li, Qiang and Suzuki, Kenji and
             Engelmann, Roger and Doi, Kunio},
  title   = {Computer-aided diagnostic scheme for the detection of lung nodules on
             chest radiographs: localized search method based on anatomical
             classification},
  journal = {Medical Physics},
  volume  = {33},
  number  = {7},
  pages   = {2642--2653},
  year    = {2006}
}

§9.3 引用指南

使用本数据集的任何子集(含 SCR 掩码覆盖的 247 张图)都应引用 Shiraishi et al. 2000;使用 SCR 掩码应加引 van Ginneken et al. 2006;对比 E-CNNs 数字应引 Li et al. 2018 并注明协议。若引用本页面的坑点分析或 DAIMS 评估,请同时引用上述原始文献——本页是对数据集的工程化解读,不替代原始出处。

两条补充约定:① 报告检测结果时在实验设置段落显式声明"TP 判据 / FP 分母 / 划分协议"三要素(§8.3),引用他人数字时同样保留其协议声明;② 数据集本身无 DOI 之外的正式版本号,引用时注明"JSRT Database, db.jsrt.or.jp, accessed 2026-09"一类的获取日期信息,保证可追溯。


§10 AI 使用声明卡

§10.1 本页使用的 AI 模型

模型 用途
fast-model(CodeBuddy 内置大模型) 资料检索汇总、章节起草、代码示例生成与语言润色

§10.2 AI 参与范围

AI 参与了信息检索与归纳(官方页、AJR 2000、Zenodo、IEEE/PMC 文献)、初稿撰写、代码示例编写与格式统一。所有数字均回溯至检索获得的公开来源(见 §10.3);§2 的临床医学表述、§7.7 DAIMS 评级与坑点的可操作性经人工复核。AI 未接触数据集本体,未运行任何本地数据实验。

§10.3 输入来源列表

  1. Shiraishi J, et al. AJR, 174(1):71-74, 2000. DOI: 10.2214/ajr.174.1.1740071
  2. JSRT 官方英文介绍页 — http://www.jsrt.or.jp/data/english/members/digital-image-database
  3. JSRT raw 版下载页 — http://db.jsrt.or.jp/eng.php
  4. van Ginneken B, Stegmann MB, Loog M. Medical Image Analysis, 10(1):19-40, 2006. DOI: 10.1016/j.media.2005.02.002
  5. SCR database, Zenodo v1(2022-09-07)— https://zenodo.org/record/7056076
  6. Historical and clinical contributions of the JSRT chest radiograph database. Radiological Physics and Technology, 2026. DOI: 10.1007/s12194-026-01042-0
  7. Li C, Zhu G, Wu X, Wang Y. IEEE Access, 6:16060-16067, 2018. DOI: 10.1109/ACCESS.2018.2817023(IEEE Xplore 文档 8319989)
  8. 深度学习胸片综述(含 JSRT 检测谱系汇总),European Radiology, 2021 — https://pmc.ncbi.nlm.nih.gov/articles/PMC8409695/
  9. Full-resolution Lung Nodule(外部验证研究)— https://arxiv.org/abs/2307.06547(2023)
  10. Detecting Tuberculosis in Radiographs Using Combined Lung Masks — https://pmc.ncbi.nlm.nih.gov/articles/PMC11977551/
  11. MathWorks 社区:JSRT raw 读入讨论 — https://www.mathworks.com/matlabcentral/answers/502082-matlab
  12. harishanand95/jsrt-parser(GitHub 社区解析器)— https://github.com/harishanand95/jsrt-parser
  13. openmedlab/Awesome-Medical-Dataset:jsrt-directions — https://github.com/openmedlab/Awesome-Medical-Dataset
  14. OpenDataLab JSRT 镜像页 — https://opendatalab.com/OpenDataLab/JSRT/download
  15. BME-MIT-OMR 骨影消除版 JSRT — https://www.mit.bme.hu/en/news/2013-04-18/bone-shadow-eliminated-images-of-the-jsrt-database
  16. MiniJSRT 官方页 — http://imgcom.jsrt.or.jp/minijsrtdb/
  17. AI-based radiodiagnosis using chest X-rays: A review. Frontiers in Big Data, 2023. DOI: 10.3389/fdata.2023.1120989
  18. Lung field segmentation in chest radiographs: a historical review. IET Image Processing, 2017. DOI: 10.1049/iet-ipr.2016.0526

§10.4 人工校验记录

内容模块 审核者 审核方式 审核状态
§2 医学背景(ICD-11/SNOMED 映射、流行病学) 千方病案医学编辑部 对照 ICD-11/SNOMED 官方浏览器与 GLOBOCAN 2022 公开数据逐项核对 ✅ 已通过/已验证
§3-§4 数据规格与 DAIMS 字段字典 千方病案医学编辑部(数据工程) 对照官方页规格与 Zenodo/BME 发行包信息逐字段核对 ✅ 已通过/已验证
§6 全部代码示例 千方病案医学编辑部(数据工程) 逐段静态审查:目录拼接关系、12-bit 读入逻辑、坐标变换一致性、FROC 分母 ✅ 已通过/已验证
§6.5 八个坑点 千方病案医学编辑部(数据工程) 逐条回溯来源(MATLAB 讨论、jsrt-parser、IEEE Discussion、arXiv)核实 ✅ 已通过/已验证
§7.7 DAIMS 24 项评级 千方病案医学编辑部 按评级标准逐项复议,三段解读与行动建议复核 ✅ 已通过/已验证
§8 排行榜与引用 千方病案医学编辑部 数字与协议逐条对照 Li 2018 Table 3 与 Eur Radiol 2021 综述 ✅ 已通过/已验证
frontmatter 与 §C JSON-LD 一致性 千方病案医学编辑部(数据工程) 双节点互引、URL 占位、字段顺序逐项检查 ✅ 已通过/已验证

§10.5 AI 生成章节标注

本页全部章节由 AI 起草,经 §10.4 所列人工校验流程修订后发布;未标注"人工撰写"的章节均属 AI 起草范围。

§10.6 最后人工审核日期

2026-09-05(与 §0 审核日期一致)

页面状态:published(全部内容已完成审核并发布)

返回 AI-Ready 数据集