信息速览
INFOBOX
| 数据集名称 | Tufts Dental Database |
| 英文全称 | Tufts Dental Database: A Multimodal Panoramic X-Ray Dataset for Benchmarking Diagnostic Systems |
| 别名 / 简称 | TDD、Tufts Dental |
| 疾病分类 | 牙科综合。核心映射:DA00–DA0Z 牙齿发育异常 / DA60–DA6Z 龋齿 / DB00–DB0Z 牙髓及根尖周疾病 / DG50–DG5Z 牙周组织疾病 |
| SNOMED CT | 367743000 Caries of tooth / 30083003 Impacted tooth / 40930008 Periapical abscess / 28558006 Dental cyst / 24141000119108 Alveolar bone loss |
| 数据模态 | 影像(全景 X 射线)+ 眼动追踪热力图 + 文本(异常描述) |
| AI 任务类型 | 语义分割、实例分割、目标检测、异常分类、多模态融合、可解释 AI |
| 样本总数 | 1,000 张全景牙科 X 射线影像(340 张含异常,660 张无异常) |
| 数据大小 | ~2 GB |
| 数据格式 | JPEG(影像)/ PNG(掩码与热力图)/ CSV(文字描述) |
| 许可证 | CC BY 4.0 |
| 访问级别 | 注册后开放(提供邮箱、机构隶属、使用意图后获取访问权限) |
| DUO 标签 | GRU |
| 语言 | 英文 |
| 首发日期 | 2021-10-04(IEEE JBHI 在线发表) |
| 最后更新 | 2022-04(IEEE JBHI Vol. 26 No. 4 正式出版) |
| 发布机构 | Tufts University, Panetta Visualization, Sensing & Simulation Research Laboratory(与 Tufts University School of Dental Medicine 合作) |
| 官方主页 | https://tdd.ece.tufts.edu/ |
| 下载地址 | https://tdd.ece.tufts.edu/(注册后下载) |
| DOI | 10.1109/JBHI.2021.3117575 |
| 引用次数 | 168+(ResearchGate,截至 2026-07) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 六组件多模态标注 + 五级异常分类 + 眼动追踪 + 基准评测;扣分项:样本量有限(1,000 张)、单一中心来源、无独立测试集划分、无人口统计学元数据 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:[千方病案医学编辑部]交叉审核:§2 医学背景(ICD-11 映射、临床任务定义、金标准描述)、§7 偏倚分析。
数据工程审核者:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-08-04
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。部分数据集要求额外资质认证(如 PhysioNet CITI Training)。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
Tufts Dental Database (TDD) 是 Tufts University 于 2021 年发布的牙科全景 X 射线多模态数据集,包含 1,000 张全景放射影像,配备专家级异常标注、牙齿分割掩码(52 类 ISO 3950 编码)和上下颌 ROI 掩码。
它的独特价值在于首次将放射科医生的诊断推理过程量化融入数据集——通过眼动追踪记录医生阅片时的注视热力图,配合思维出声协议(think-aloud protocol)捕捉医生的诊断推理文本,为构建具备人类视觉推理逻辑的可解释 AI 系统提供了模板。原始论文已被引用 168 余次。
你可以用它来:训练牙齿自动分割与编号模型、研究如何将专家注意力先验融入深度学习提升异常检测性能、或者开发可解释的牙科辅助诊断系统。
§1.1 摘要
Tufts Dental Database 由 Tufts University 电气与计算机工程系 Panetta Visualization, Sensing & Simulation Research Laboratory 与 Tufts University School of Dental Medicine 联合构建,数据采集自 2014 年 1 月至 2016 年 12 月的电子病历数据库。1,000 张全景 X 射线影像使用 OP100 Orthopantomograph(Instrumentarium Imaging/Kavo Kerr)和 Plammeca Promax 2D 两型设备拍摄,经 IRB 批准后去标识化处理。
数据集的核心创新在于六组件多模态设计:除常规的全景影像和异常掩码外,还包含(1)灰度与量化彩色双版本的眼动追踪注视热力图,(2)五级异常分类体系(解剖位置 / 边缘特征 / 放射密度 / 对周围结构影响 / 异常类别),(3)思维出声协议产生的异常文字描述,以及(4)52 类 ISO 3950(FDI 双位记法)牙齿标注掩码。这一设计使 TDD 成为牙科 AI 领域唯一同时包含图像、掩码、眼动和文本四种模态的公开数据集。
§1.2 战略价值分析
技术创新维度:TDD 是首个将眼动追踪(eye-tracking)技术系统性融入牙科医学影像数据集的研究。眼动追踪注视热力图记录了放射科医生在阅片过程中注意力驻留的空间分布——哪些区域被反复审视、哪些区域被快速略过——这为 AI 系统提供了"专家关注什么"的先验知识。配合思维出声协议的文本记录,研究者可以首次构建"看到什么 → 想到什么 → 判定什么"的完整诊断推理链,推动从黑盒分类到可解释推理的范式转变。
生态推动维度:TDD 填补了牙科 AI 领域长期缺乏标准化、多模态、公开可下载基准数据集的空白。在 TDD 发布前,最大公开全景 X 射线数据集仅 1,500 张(Jader 数据集)且仅含牙齿标注,无异常信息。TDD 不仅提供了异常标注和五级分类体系,还提供了图像增强和牙齿分割的完整基准评测(FPN / U-Net / U-Net++ / PSPNet / DeepLabV3 / DeepLabV3+ 六种架构 × VGG19 / ResNet18 / ResNet50 三种骨干),使后续研究者可以直接在统一基准上比较方法。自 2021 年发布以来已被 168+ 篇论文引用,成为牙科 AI 研究的事实标准数据集之一。
§1.3 同类数据集横向对比
| 数据集 | 样本量 | 模态 | 标注方式 | 核心差异化 |
|---|---|---|---|---|
| Tufts Dental Database | 1,000 | 全景 X 射线 + 眼动追踪 + 文本 | 专家级(五级异常分类 + 52 类牙齿 + 眼动热力图) | 唯一含眼动追踪和思维出声协议 |
| Jader Dataset | 1,500 | 全景 X 射线 | 牙齿标注(每颗牙标记) | 规模略大但无异常标注 |
| Abdi Dataset | 116 | 全景 X 射线 | 下颌骨分割(2 名牙医) | 小规模,仅下颌骨 |
| AE Rad | 120 | 根尖片 X 射线 | 龋齿标注 | 仅关注龋齿,根尖片非全景 |
| UFBA UESC | 1,500 | 全景 X 射线 | 牙齿分割(半自动修正) | 无异常/眼动数据 |
| Multi-center Dataset (2024) | 6,580 | 全景 X 射线 | 阻生齿/牙周炎/龋齿(3 中心) | 多中心多任务,但无眼动 |
§1.4 版本演进时间轴
| 时间 | 事件 |
|---|---|
| 2014-01 ~ 2016-12 | 数据采集期(Tufts University School of Dental Medicine 电子病历数据库) |
| 2021-10-04 | IEEE JBHI 在线发表(DOI: 10.1109/JBHI.2021.3117575),数据集同步公开发布 |
| 2022-04 | IEEE JBHI Vol. 26 No. 4 正式出版(pp. 1650-1659) |
| 2022-2026 | 被广泛引用为牙科 AI 基准数据集,衍生多项分割与检测研究(U-Net / Mask R-CNN / YOLOv11 / RT-DETR 等) |
§1.5 典型 AI 应用场景
- 牙齿自动分割与编号:利用 52 类 ISO 3950 标注训练实例分割模型(Mask R-CNN / U-Net),实现全景 X 射线中每颗牙齿的自动检测、分割和 FDI 编号
- 异常检测与分类:基于五级异常分类体系训练多标签分类或语义分割模型,自动识别龋齿、根尖病变、阻生齿等异常
- 专家注意力先验融合:将眼动追踪热力图作为注意力掩码或蒸馏目标,引导深度学习模型关注放射科医生关注的诊断关键区域
- 可解释 AI 系统:结合注视热力图和思维出声文本构建"视觉→推理→结论"的可解释诊断链
- 图像增强基准:使用数据集提供的六种增强算法基准(HE / CLAHE / BBHE / DFHE / GF)评测预处理效果
§2 医学背景
§2.1 ICD-11 疾病编码映射
| 数据集标注类别 | ICD-11 编码 | ICD-11 术语 |
|---|---|---|
| 龋齿 | DA60 | Dental caries |
| 根尖周炎/根尖脓肿 | DB00.0 | Periapical abscess without sinus |
| 牙髓炎 | DB01.0 | Pulpitis |
| 阻生齿 | DA00.1 | Impacted tooth |
| 牙周骨丧失 | DG50.0 | Periodontitis |
| 含牙囊肿 | DG20.0 | Dentigerous cyst |
| 牙齿修复体 | MA30.B0 | Dental restoration device |
§2.1b SNOMED CT 映射
| 数据集标签 | ICD-11 | SNOMED CT | SNOMED CT 术语 |
|---|---|---|---|
| Caries | DA60 | 367743000 | Caries of tooth (disorder) |
| Impacted tooth | DA00.1 | 30083003 | Impacted tooth (disorder) |
| Periapical abscess | DB00.0 | 40930008 | Periapical abscess (disorder) |
| Dental cyst | DG20.0 | 28558006 | Dentigerous cyst (disorder) |
| Alveolar bone loss | DG50.0 | 24141000119108 | Alveolar bone loss (finding) |
| Dental restoration | MA30.B0 | 24145002 | Dental restoration (procedure) |
| External root resorption | DA0A.0 | 28893001 | Root resorption (disorder) |
§2.2 疾病简介与流行病学
牙科疾病是全球最普遍的慢性健康问题之一。根据 WHO 数据,全球约 35 亿人受口腔疾病影响,其中未治疗的恒牙龋齿是最常见的非传染性疾病。全景 X 射线摄影(panoramic radiography,又称 orthopantomography, OPG)是牙科最常用的影像学检查手段,一次曝光即可获取上下颌骨、全部牙齿及周围结构的完整影像,成本低、辐射剂量小,在基层口腔诊疗中广泛使用。
然而,全景 X 射线的解读高度依赖放射科医生的经验——同一张影像中可能同时存在龋齿、根尖病变、阻生齿、骨丧失等多种异常,且异常区域往往微小、边界模糊,容易出现漏诊和误诊。AI 辅助诊断系统有望缓解这一问题,但需要高质量、多模态的标注数据来训练。
§2.3 临床任务定义
| 任务类型 | 描述 | 对应 AI 能力 |
|---|---|---|
| 牙齿分割与编号 | 识别每颗牙齿的边界并分配 FDI 编号(1-32 永久牙 + 1-20 乳牙) | 实例分割 + 多类分类 |
| 异常检测 | 检测全景影像中是否存在异常区域 | 二分类 + 目标检测 |
| 异常分类与定位 | 按五级体系分类异常并定位其空间位置 | 多标签分类 + 语义分割 |
| 诊断推理建模 | 利用眼动追踪和思维出声数据建模专家诊断推理过程 | 多模态融合 + 注意力建模 |
| 图像增强 | 提升全景 X 射线影像的对比度和边缘清晰度 | 图像到图像生成 |
§2.4 患者人群特征
| 维度 | 特征 |
|---|---|
| 数据来源 | Tufts University School of Dental Medicine 电子病历数据库(单一中心) |
| 采集时间 | 2014 年 1 月至 2016 年 12 月 |
| 设备型号 | OP100 Orthopantomograph(Instrumentarium Imaging/Kavo Kerr)+ Plammeca Promax 2D |
| 入排标准 | 纳入:最佳诊断质量(无鬼影伪影、无铅围裙伪影、无重叠伪影、正确包含髁突、前牙无模糊/变形)。排除:技术缺陷影像 |
| 去标识化 | 采集后去标识化,移除患者年龄、性别及其他 PHI 信息 |
| 伦理审批 | Tufts University School of Dental Medicine IRB 批准 |
| 地域 | 美国马萨诸塞州波士顿 |
| 人口统计学 | 未释放(去标识化后无年龄/性别/种族信息) |
§2.5 临床意义
全景 X 射线是牙科初诊的标准影像学检查,但基层口腔医生与资深放射科专家之间在异常检出率上存在显著差距。AI 辅助诊断系统可以:(1)自动标注可疑区域减少漏诊;(2)在专科医生匮乏的地区提供辅助诊断支持;(3)缩短阅片时间提升临床效率。TDD 的眼动追踪数据为构建"像专家一样看、像专家一样想"的 AI 系统提供了独特的训练信号。
§2.6 金标准 / 参考标准
| 数据划分 | 标注方式 | 标注者 | 金标准性质 |
|---|---|---|---|
| 全部 1,000 张 | 专家手动标注(牙齿掩码 + 异常掩码 + 五级分类) | Tufts University School of Dental Medicine 临床专家与学生(使用 Labelbox 平台) | 专家标注(非病理金标准) |
| 眼动追踪子集 | 眼动仪记录注视点 + 思维出声录音转文本 | 放射科医生(阅片时佩戴眼动追踪设备) | 过程性金标准(诊断推理过程) |
| 增强评测基准 | 六种增强算法 × 全部 1,000 张 | 自动化(AME / LogAME 质量评分) | 算法基准(非金标准) |
| 分割评测基准 | 85% 训练 / 15% 验证,六种架构 × 三种骨干 | 自动化(PA / IoU / Dice 评分) | 算法基准(非金标准) |
注意:TDD 的异常标注基于放射科医生的影像学判断,未经组织病理学确认。标注由专家与学生共同完成,标注者间一致性数据未在原始论文中报告。
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐使用 | 大小 | 理由 |
|---|---|---|---|
| 牙齿分割 / 编号研究 | Radiographs + Expert Teeth Masks | ~1 GB | 1,000 张影像 + 52 类 ISO 3950 掩码,足够训练 U-Net / Mask R-CNN |
| 异常检测 / 分类研究 | Radiographs + Abnormality Masks + Text | ~1.2 GB | 含五级分类异常掩码和文字描述,340 张含异常 |
| 眼动追踪 / 可解释 AI | Radiographs + Gaze Maps (gray + quantized) | ~1.5 GB | 含灰度和量化彩色双版本注视热力图 |
| 全部六组件多模态 | 完整数据集 | ~2 GB | 六组件全部下载,支持最复杂的多模态融合研究 |
§3.1 模态详细说明
Tufts Dental Database 包含四种数据模态:
- 影像模态:全景 X 射线摄影(panoramic radiography),840 × 1,615 像素,JPEG 格式,灰度图像
- 掩码模态:像素级分割掩码,PNG 格式,包含牙齿掩码(52 类)、异常掩码和上下颌 ROI 掩码
- 眼动追踪模态:注视热力图,PNG 格式,提供灰度版(gray gaze map)和量化彩色版(quantized gaze map)两种
- 文本模态:异常文字描述,CSV 格式,基于思维出声协议记录的放射科医生口头描述
§3.2 样本统计
| 组件 | 数量 | 格式 | 说明 |
|---|---|---|---|
| 全景 X 射线影像 | 1,000 张 | JPEG(840×1,615 px) | 全部去标识化 |
| 专家牙齿掩码 | 1,000 张 | PNG | 52 类(32 永久 + 20 乳牙),ISO 3950 编码 |
| 异常掩码 | 1,000 张 | PNG | 340 张含异常标注,660 张无异常 |
| 眼动追踪热力图(灰度) | 1,000 张 | PNG | 注视点密度灰度图 |
| 眼动追踪热力图(量化) | 1,000 张 | PNG | 注视点密度彩色量化图 |
| 异常文字描述 | 1,000 条 | CSV | 五级分类文字描述 |
| 上下颌 ROI 掩码 | 1,000 张 | PNG | 上颌与下颌区域标注 |
§3.3 数据格式
| 文件类型 | 格式 | 尺寸 | 说明 |
|---|---|---|---|
| 全景影像 | JPEG | 840 × 1,615 px | 8-bit 灰度 |
| 牙齿掩码 | PNG | 840 × 1,615 px | 52 类像素值标注 |
| 异常掩码 | PNG | 840 × 1,615 px | 二值/多类标注 |
| 注视热力图(灰度) | PNG | 840 × 1,615 px | 8-bit 灰度,值越高注视越多 |
| 注视热力图(量化) | PNG | 840 × 1,615 px | 彩色,按注视密度分量化级 |
| ROI 掩码 | PNG | 840 × 1,615 px | 上颌/下颌区域 |
| 文字描述 | CSV | — | 每张影像一行,五级分类字段 |
§3.4 存储大小
| 版本 | 压缩后大小 | 解压后大小 |
|---|---|---|
| 完整数据集(六组件) | ~2 GB | ~5 GB |
| 仅影像 + 牙齿掩码 | ~1 GB | ~2.5 GB |
| 仅影像 + 异常掩码 | ~1.2 GB | ~3 GB |
§3.5 标注方式与流程
┌──────────────────────────────────────────────────────────────┐
│ TDD 标注流程 │
├──────────────────────────────────────────────────────────────┤
│ │
│ 1. 数据采集 (2014.01 - 2016.12) │
│ ├── Tufts University School of Dental Medicine │
│ ├── OP100 Orthopantomograph + Plammeca Promax 2D │
│ ├── 电子病历数据库随机选取 │
│ └── IRB 批准 + 去标识化 │
│ │
│ 2. 质量筛选 │
│ ├── 纳入:最佳诊断质量 │
│ │ ├── 无鬼影伪影 │
│ │ ├── 无铅围裙伪影 │
│ │ ├── 无重叠伪影 │
│ │ ├── 正确包含髁突 │
│ │ └── 前牙无模糊/变形 │
│ └── 1,000 张入选 │
│ │
│ 3. 牙齿标注 (Labelbox 平台) │
│ ├── 临床专家 + 学生 │
│ ├── 每颗牙边界轮廓绘制 │
│ ├── ISO 3950 (FDI) 编号标注 (52 类) │
│ └── 生成牙齿分割掩码 │
│ │
│ 4. 异常标注 (五级分类体系) │
│ ├── Level 1: 解剖位置 (Anatomical Location) │
│ ├── Level 2: 边缘特征 (Peripheral Characteristics) │
│ ├── Level 3: 放射密度 (Radiodensity) │
│ ├── Level 4: 对周围结构影响 (Effects on Surrounding) │
│ ├── Level 5: 异常类别 (Abnormality Category) │
│ └── 生成异常掩码 + 文字描述 │
│ │
│ 5. 眼动追踪采集 │
│ ├── 放射科医生佩戴眼动仪阅片 │
│ ├── 记录注视点坐标 + 驻留时间 │
│ ├── 同步思维出声录音 → 转文本 │
│ └── 生成灰度 + 量化彩色注视热力图 │
│ │
│ 6. ROI 标注 │
│ └── 上下颌感兴趣区域 (maxillomandibular ROI) │
│ │
└──────────────────────────────────────────────────────────────┘
§3.6 五级异常分类体系
TDD 的异常分类体系是牙科影像数据集中最系统的多维度描述框架:
| 级别 | 分类维度 | 说明 | 示例 |
|---|---|---|---|
| Level 1 | 解剖位置 | 异常位于哪个解剖结构 | 牙冠、牙根、牙槽骨、下颌管 |
| Level 2 | 边缘特征 | 异常区域的边界形态 | 清晰、模糊、不规则、分叶状 |
| Level 3 | 放射密度 | 异常区域相对于周围组织的 X 射线透射性 | 透射(radiolucent)、阻射(radiopaque)、混合 |
| Level 4 | 对周围结构影响 | 异常对邻近解剖结构的影响 | 牙根吸收、骨皮质膨隆、牙移位 |
| Level 5 | 异常类别 | 最终诊断分类 | 龋齿、根尖病变、囊肿、阻生齿、修复体 |
§3.7 基准评测协议
原始论文提供了两类基准评测:
图像增强基准:
| 算法 | 全称 | AME 均分 | LogAME 均分 | 排名 |
|---|---|---|---|---|
| CLAHE | Contrast Limited Adaptive Histogram Equalization | 24.32 | 0.3702 | 1 |
| HE | Histogram Equalization | — | — | — |
| BBHE | Brightness Preserving Bi-Histogram Equalization | — | — | — |
| DFHE | Dual Finite Histogram Equalization | — | — | — |
| GF | Guided Filtering | — | — | — |
牙齿分割基准(85% 训练 / 15% 验证,Adam 优化器,lr=1e-3,150 epochs,batch=16,NVIDIA Tesla V100 32GB):
| 架构 | 骨干 | Pixel Acc. | IoU | Dice |
|---|---|---|---|---|
| U-Net | ResNet50 | ~96% | ~88% | ~93% |
| U-Net++ | ResNet50 | ~96% | ~88% | ~93% |
| FPN | ResNet50 | ~95% | ~86% | ~92% |
| DeepLabV3+ | ResNet50 | ~95% | ~86% | ~92% |
| PSPNet | ResNet50 | ~95% | ~85% | ~91% |
| nnUNet | — | ~95% | ~86% | ~92% |
| CE-Net | — | 92.67% | — | — |
| 全部平均 | — | 95.01% | 86.19% | 91.96% |
§3.8 工具生态
| 工具 / 框架 | 用途 | 链接 |
|---|---|---|
| Labelbox | 数据标注平台(牙齿 + 异常标注) | https://labelbox.com/ |
| PyTorch / detectron2 | Mask R-CNN 实例分割 | https://github.com/facebookresearch/detectron2 |
| segmentation_models_pytorch | U-Net / FPN / DeepLab 分割 | https://github.com/qubvel/segmentation_models.pytorch |
| nnUNet | 医学图像自配置分割 | https://github.com/MIC-DKFZ/nnUNet |
| OpenCV | 图像增强(CLAHE / HE) | https://opencv.org/ |
§3.9 ISO 3950 牙齿编号系统
TDD 使用 ISO 3950(FDI 双位记法)标注每颗牙齿,共 52 类:
| 象限 | 右上 (18-11) | 左上 (21-28) | 左下 (38-31) | 右下 (41-48) |
|---|---|---|---|---|
| 永久牙 | 18→11 (8 颗) | 21→28 (8 颗) | 31→38 (8 颗) | 41→48 (8 颗) |
| 乳牙 | 55→51 (5 颗) | 61→65 (5 颗) | 71→75 (5 颗) | 81→85 (5 颗) |
- 永久牙:32 颗(4 象限 × 8 颗),编号 11-18 / 21-28 / 31-38 / 41-48
- 乳牙:20 颗(4 象限 × 5 颗),编号 51-55 / 61-65 / 71-75 / 81-85
- 十位数表示象限,个位数表示齿位(1=中切牙 → 8=第三磨牙)
§3.10 深度溯源链
患者就诊 (Tufts Dental Clinic, 2014-2016)
└── 全景 X 射线拍摄 (OP100 / Plammeca Promax 2D)
└── 影像存储至电子病历数据库
└── IRB 批准后随机选取 1,000 张
└── 去标识化 (移除 PHI)
├── 牙齿标注 (Labelbox, 专家+学生)
│ └── 52 类 ISO 3950 掩码
├── 异常标注 (五级分类体系)
│ ├── 异常掩码 (PNG)
│ └── 文字描述 (CSV)
├── 眼动追踪采集 (放射科医生)
│ ├── 灰度注视热力图
│ └── 量化彩色注视热力图
└── ROI 标注
└── 上下颌掩码
§4 数据结构详解
§4.0 目录结构
tufts_dental_database/
├── radiographs/ # 1,000 张全景 X 射线影像
│ ├── 001.jpg
│ ├── 002.jpg
│ └── ... 1000.jpg
├── expert_masks/ # 专家牙齿分割掩码
│ ├── 001.png
│ └── ... 1000.png
├── abnormality_masks/ # 异常区域掩码
│ ├── 001.png
│ └── ... 1000.png
├── gaze_maps_gray/ # 灰度注视热力图
│ ├── 001.png
│ └── ... 1000.png
├── gaze_maps_quantized/ # 量化彩色注视热力图
│ ├── 001.png
│ └── ... 1000.png
├── text_descriptions/ # 异常文字描述
│ └── descriptions.csv # 五级分类字段
├── roi_masks/ # 上下颌 ROI 掩码
│ ├── 001.png
│ └── ... 1000.png
└── README.md # 数据集说明文档
§4.1 DAIMS 标准化数据字典
| 字段名 | 类型 | 说明 | 示例值 |
|---|---|---|---|
image_id |
string | 影像唯一标识符 | “001” |
image_path |
string | 影像文件路径 | “radiographs/001.jpg” |
image_width |
int | 影像宽度(像素) | 1615 |
image_height |
int | 影像高度(像素) | 840 |
teeth_mask_path |
string | 牙齿掩码文件路径 | “expert_masks/001.png” |
teeth_classes |
int[] | 影像中出现的牙齿类别编号 | [18, 17, 16, …, 48] |
has_abnormality |
bool | 是否包含异常 | true |
abnormality_mask_path |
string | 异常掩码文件路径 | “abnormality_masks/001.png” |
anatomical_location |
string | Level 1: 解剖位置 | “牙根” |
peripheral_characteristics |
string | Level 2: 边缘特征 | “模糊” |
radiodensity |
string | Level 3: 放射密度 | “透射” |
effects_on_surrounding |
string | Level 4: 对周围结构影响 | “牙根吸收” |
abnormality_category |
string | Level 5: 异常类别 | “根尖病变” |
gaze_map_gray_path |
string | 灰度热力图路径 | “gaze_maps_gray/001.png” |
gaze_map_quantized_path |
string | 量化热力图路径 | “gaze_maps_quantized/001.png” |
roi_mask_path |
string | ROI 掩码路径 | “roi_masks/001.png” |
§4.2 异常分布统计
| 统计项 | 数值 |
|---|---|
| 总影像数 | 1,000 |
| 含异常影像 | 340(34%) |
| 无异常影像 | 660(66%) |
| 标注者 | 临床专家 + 学生(2 人) |
| 标注平台 | Labelbox |
| 牙齿类别总数 | 52(32 永久 + 20 乳牙) |
| 编号系统 | ISO 3950(FDI 双位记法) |
§4.3 眼动追踪数据格式
眼动追踪数据是 TDD 的核心差异化资产,每张影像对应两个版本的注视热力图:
| 版本 | 格式 | 通道 | 说明 |
|---|---|---|---|
| 灰度版 (gray) | PNG | 1 通道 (8-bit) | 像素值越高表示注视时间越长 |
| 量化版 (quantized) | PNG | 3 通道 (RGB) | 按注视密度分为多个量化级别,用不同颜色表示 |
注视热力图生成原理:
- 放射科医生佩戴眼动追踪仪阅片
- 眼动仪以高频(通常 60-120 Hz)记录注视点坐标
- 对注视点进行核密度估计生成注视密度图
- 灰度版:将密度图归一化到 0-255
- 量化版:将密度图按阈值分为若干级别,每级赋不同颜色
§4.4 数据完整性
| 完整性维度 | 状态 | 说明 |
|---|---|---|
| 影像完整性 | ✅ 100% | 1,000 张影像全部可用 |
| 牙齿掩码完整性 | ✅ 100% | 1,000 张全部有专家标注 |
| 异常掩码完整性 | ✅ 100% | 1,000 张全部有标注(含 660 张"无异常") |
| 眼动追踪完整性 | ✅ 100% | 1,000 张全部有灰度 + 量化热力图 |
| 文字描述完整性 | ✅ 100% | 1,000 张全部有五级分类文字描述 |
| ROI 掩码完整性 | ✅ 100% | 1,000 张全部有上下颌 ROI |
| 人口统计学元数据 | ❌ 0% | 去标识化时移除年龄/性别/种族 |
§5 数据划分与使用建议
§5.1 官方划分
TDD 原始论文中未提供标准 train/val/test 划分,仅提供了用于基准评测的 85%/15% 训练/验证划分。后续研究中最常用的划分方式为:
| 划分方案 | 来源 | 训练集 | 验证集 | 测试集 |
|---|---|---|---|---|
| 原始论文 (85/15) | Panetta et al. 2021 | 850 | 150 | — |
| Mask R-CNN (76/19/7) | Rubiu et al. 2023 | 760 | 190 | 70 |
| CS231N (80/10/10) | Stanford 2022 | 800 | 100 | 100 |
| 常见 (70/15/15) | 社区实践 | 700 | 150 | 150 |
§5.2 推荐划分策略
推荐划分:70% Train / 15% Val / 15% Test (随机种子 = 42)
┌──────────────────────────────────────────────────┐
│ 1,000 张全景影像 │
│ ├── Train (700): 模型训练 │
│ ├── Val (150): 超参调优 + 早停 │
│ └── Test (150): 最终评估(仅用一次) │
│ │
│ 分层采样:按 has_abnormality (340/660) 比例分配 │
│ ├── Train: 238 含异常 + 462 无异常 │
│ ├── Val: 51 含异常 + 99 无异常 │
│ └── Test: 51 含异常 + 99 无异常 │
└──────────────────────────────────────────────────┘
§5.3 自定义划分建议
| 研究目标 | 推荐划分 | 理由 |
|---|---|---|
| 牙齿分割(52 类实例) | 80/10/10 | 实例分割需要更多训练数据 |
| 异常检测(二分类) | 70/15/15 按异常比例分层 | 避免正负样本不均影响 |
| 眼动追踪建模 | 70/15/15 | 需保证训练集含足够多样化的注视模式 |
| 跨任务联合训练 | 80/10/10 + 多任务加权 | 牙齿分割作为辅助任务提供空间先验 |
§5.4 数据泄漏风险
| 风险点 | 严重程度 | 说明 | 缓解措施 |
|---|---|---|---|
| 患者级泄漏 | ⚠️ 中 | 1,000 张影像可能来自同一患者的多次就诊,但数据集未提供患者 ID | 无法完全规避;如有患者 ID 需按患者划分 |
| 设备级泄漏 | 🟢 低 | 仅两种设备型号,混合使用 | 按设备型号分层抽样 |
| 标注者泄漏 | 🟢 低 | 仅 2 名标注者,标注风格一致 | 无需特殊处理 |
| 增强泄漏 | ⚠️ 中 | 85/15 划分无独立测试集 | 必须保留独立测试集,不可在验证集上选模型后直接报告 |
§5.5 外部验证数据集
| 数据集 | 规模 | 用途 | 说明 |
|---|---|---|---|
| UFBA UESC | 1,500 张 | 牙齿分割跨域验证 | 不同设备、不同人群 |
| Multi-center (2024) | 6,580 张 | 多任务跨域验证 | 3 中心,含阻生齿/牙周炎/龋齿 |
| Clujana | 108 张 | 龋齿分割验证 | 罗马尼亚数据,可测试泛化性 |
| Noor Medical | 116 张 | 下颌骨分割验证 | 伊朗数据,设备差异大 |
§6 AI 就绪指南
§6.0 云端快速启动
<details>
<summary>📦 快速启动代码(点击展开)</summary>
# === Tufts Dental Database 快速启动 ===
# 前置:从 https://tdd.ece.tufts.edu/ 注册并下载数据集
import os
import cv2
import numpy as np
from pathlib import Path
from torch.utils.data import Dataset, DataLoader
import torch
import torch.nn as nn
# 1. 数据路径配置
DATA_ROOT = "tufts_dental_database"
RAD_DIR = os.path.join(DATA_ROOT, "radiographs")
MASK_DIR = os.path.join(DATA_ROOT, "expert_masks")
GAZE_DIR = os.path.join(DATA_ROOT, "gaze_maps_gray")
ABNORM_DIR = os.path.join(DATA_ROOT, "abnormality_masks")
# 2. 自定义 Dataset(牙齿分割 + 眼动热力图加载)
class TuftsDentalDataset(Dataset):
def __init__(self, image_ids, root=DATA_ROOT, size=(512, 512), augment=False):
self.ids = image_ids
self.root = root
self.size = size
self.augment = augment
def __len__(self):
return len(self.ids)
def __getitem__(self, idx):
img_id = self.ids[idx]
# 加载影像
img = cv2.imread(
os.path.join(self.root, "radiographs", f"{img_id}.jpg"),
cv2.IMREAD_GRAYSCALE
)
img = cv2.resize(img, self.size)
# 加载牙齿掩码
mask = cv2.imread(
os.path.join(self.root, "expert_masks", f"{img_id}.png"),
cv2.IMREAD_GRAYSCALE
)
mask = cv2.resize(mask, self.size, interpolation=cv2.INTER_NEAREST)
# 加载眼动热力图(作为注意力先验)
gaze = cv2.imread(
os.path.join(self.root, "gaze_maps_gray", f"{img_id}.png"),
cv2.IMREAD_GRAYSCALE
)
gaze = cv2.resize(gaze, self.size)
gaze = gaze.astype(np.float32) / 255.0
# 归一化
img = img.astype(np.float32) / 255.0
img = (img - 0.5) / 0.5 # 标准化到 [-1, 1]
if self.augment:
if np.random.rand() > 0.5:
img = np.fliplr(img).copy()
mask = np.fliplr(mask).copy()
gaze = np.fliplr(gaze).copy()
return {
"image": torch.from_numpy(img).unsqueeze(0).float(),
"mask": torch.from_numpy(mask).long(),
"gaze": torch.from_numpy(gaze).unsqueeze(0).float()
}
# 3. 划分数据集
all_ids = [f"{i:03d}" for i in range(1, 1001)]
np.random.seed(42)
np.random.shuffle(all_ids)
train_ids = all_ids[:700]
val_ids = all_ids[700:850]
test_ids = all_ids[850:]
train_ds = TuftsDentalDataset(train_ids, augment=True)
val_ds = TuftsDentalDataset(val_ids, augment=False)
test_ds = TuftsDentalDataset(test_ids, augment=False)
train_loader = DataLoader(train_ds, batch_size=8, shuffle=True, num_workers=4)
val_loader = DataLoader(val_ds, batch_size=8, shuffle=False)
print(f"Train: {len(train_ds)}, Val: {len(val_ds)}, Test: {len(test_ds)}")
# Train: 700, Val: 150, Test: 150
</details>
§6.1 U-Net 牙齿分割训练
<details>
<summary>🔧 U-Net 分割训练代码(点击展开)</summary>
# === U-Net 牙齿分割(复现原始论文基准) ===
# 参考:Panetta et al. 2021, Table IV
# Adam, lr=1e-3, weight_decay=1e-4, 150 epochs, batch=16
import torch
import torch.nn as nn
import torch.optim as optim
from segmentation_models_pytorch import Unet
# 模型配置(复现论文最佳架构)
model = Unet(
encoder_name="resnet50",
encoder_weights="imagenet",
in_channels=1, # 灰度 X 射线
classes=53, # 52 类牙齿 + 1 背景
)
model = model.cuda()
# 优化器(复现论文超参)
optimizer = optim.Adam(
model.parameters(),
lr=1e-3,
weight_decay=1e-4
)
scheduler = optim.lr_scheduler.ReduceLROnPlateau(
optimizer, mode=''''''''''''''''min'''''''''''''''', factor=0.5, patience=10
)
criterion = nn.CrossEntropyLoss()
# 训练循环
best_dice = 0
for epoch in range(150):
model.train()
for batch in train_loader:
imgs = batch["image"].cuda()
masks = batch["mask"].cuda()
outputs = model(imgs)
loss = criterion(outputs, masks)
optimizer.zero_grad()
loss.backward()
optimizer.step()
# 验证
model.eval()
val_dice = evaluate_dice(model, val_loader)
scheduler.step(val_dice)
if val_dice > best_dice:
best_dice = val_dice
torch.save(model.state_dict(), "best_unet_tdd.pth")
print(f"Epoch {epoch+1}/150 | Dice: {val_dice:.4f} | Best: {best_dice:.4f}")
# 目标:PA ~96%, IoU ~88%, Dice ~93%(论文基准)
</details>
§6.2 Mask R-CNN 实例分割(牙齿编号)
<details>
<summary>🔧 Mask R-CNN 训练代码(点击展开)</summary>
# === Mask R-CNN 牙齿实例分割 + 编号 ===
# 参考:Rubiu et al. 2023 (98.4% accuracy, Dice=0.87)
# detectron2 实现
from detectron2.config import get_cfg
from detectron2.engine import DefaultTrainer
from detectron2 import model_zoo
cfg = get_cfg()
cfg.merge_from_file(
model_zoo.get_config_file(
"COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"
)
)
# 数据集注册(需转为 COCO 格式)
cfg.DATASETS.TRAIN = ("tufts_dental_train",)
cfg.DATASETS.TEST = ("tufts_dental_val",)
cfg.DATALOADER.NUM_WORKERS = 4
# 模型配置
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url(
"COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"
)
cfg.MODEL.ROI_HEADS.NUM_CLASSES = 52 # 32 永久 + 20 乳牙
cfg.MODEL.ROI_HEADS.BATCH_SIZE_PER_IMAGE = 128
# 训练配置(复现 Rubiu et al.)
cfg.SOLVER.IMS_PER_BATCH = 10 # batch size
cfg.SOLVER.BASE_LR = 0.001 # 学习率
cfg.SOLVER.MAX_ITER = 300 * 76 # 300 epochs × 760 images / 10 batch
cfg.SOLVER.STEPS = (30000,) # 学习率衰减
cfg.SOLVER.GAMMA = 0.1
# 数据增强
cfg.INPUT.AUGMENTATIonevent-blocked= [
"BrightnessTransform",
"ContrastTransform",
"CropTransform",
"ResizeShortestEdgeTransform",
]
# 训练
os.makedirs(cfg.OUTPUT_DIR, exist_ok=True)
trainer = DefaultTrainer(cfg)
trainer.resume_or_load(resume=False)
trainer.train()
# 评估目标:正确检测率 98.4%, Dice 0.87
</details>
§6.3 眼动追踪注意力融合
<details>
<summary>🔧 眼动热力图作为注意力先验(点击展开)</summary>
# === 眼动追踪注意力引导分割 ===
# 将注视热力图作为空间注意力先验融入 U-Net
class GazeGuidedUNet(nn.Module):
"""利用眼动追踪热力图作为注意力先验的 U-Net"""
def __init__(self, num_classes=53):
super().__init__()
# 预训练 U-Net 骨干
self.unet = Unet(
encoder_name="resnet50",
encoder_weights="imagenet",
in_channels=1,
classes=num_classes
)
# 眼动注意力分支
self.gaze_encoder = nn.Sequential(
nn.Conv2d(1, 32, 3, padding=1),
nn.ReLU(),
nn.Conv2d(32, 64, 3, padding=1),
nn.ReLU(),
nn.AdaptiveAvgPool2d((512, 512)),
nn.Conv2d(64, 1, 1),
nn.Sigmoid()
)
def forward(self, x, gaze):
# 提取 U-Net 编码器特征
features = self.unet.encoder(x)
# 眼动注意力图
gaze_attention = self.gaze_encoder(gaze)
gaze_attention = nn.functional.interpolate(
gaze_attention, size=features[-1].shape[2:],
mode=''''''''''''''''bilinear'''''''''''''''', align_corners=False
)
# 特征调制(gaze-guided attention)
features = list(features)
features[-1] = features[-1] * gaze_attention
# 解码
decoder_output = self.unet.decoder(*features)
output = self.unet.segmentation_head(decoder_output)
return output
# 训练时同时输入影像和眼动热力图
model = GazeGuidedUNet(num_classes=53).cuda()
optimizer = optim.Adam(model.parameters(), lr=1e-3, weight_decay=1e-4)
for epoch in range(150):
for batch in train_loader:
imgs = batch["image"].cuda()
gazes = batch["gaze"].cuda()
masks = batch["mask"].cuda()
outputs = model(imgs, gazes)
loss = nn.CrossEntropyLoss()(outputs, masks)
optimizer.zero_grad()
loss.backward()
optimizer.step()
</details>
§6.4 图像增强基准复现
# === TDD 图像增强基准复现 ===
# 参考:Panetta et al. 2021, Table III
# CLAHE 最佳:AME=24.32, LogAME=0.3702
import cv2
import numpy as np
def apply_enhancement(image, method="clahe"):
"""应用六种增强算法之一"""
if method == "he":
# 直方图均衡化
return cv2.equalizeHist(image)
elif method == "clahe":
# CLAHE(论文最优)
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
return clahe.apply(image)
elif method == "bbhe":
# 亮度保持双直方图均衡
m = np.mean(image)
lower = image[image <= m]
upper = image[image > m]
result = np.zeros_like(image)
if len(lower) > 0:
result[image <= m] = cv2.equalizeHist(lower)
if len(upper) > 0:
result[image > m] = cv2.equalizeHist(upper)
return result
elif method == "gf":
# 引导滤波
gf = cv2.ximgproc.createGuidedFilter(
guide=image, radius=8, eps=0.01
)
return gf.filter(image)
else:
return image
# 评估指标:AME 和 LogAME
def compute_ame(enhanced):
"""计算 Absolute Mean Enhancement"""
return np.mean(np.abs(enhanced.astype(float)))
def compute_logame(enhanced):
"""计算 Logarithmic AME"""
return np.log1p(np.mean(np.abs(enhanced.astype(float))))
§6.5 坑点与解决方案
| # | 坑点 | 严重程度 | 具体表现 | 解决方案 |
|---|---|---|---|---|
| 1 | 无标准 train/test 划分 | ⚠️ 高 | 原始论文仅 85/15 train/val,无独立测试集 | 自行保留 15% 作为测试集,按异常比例分层采样 |
| 2 | 异常类别不平衡 | ⚠️ 高 | 340/1000 含异常(34%),且具体异常类型分布不均 | 使用 Focal Loss / 过采样 / 类别加权 |
| 3 | 52 类牙齿编号不均衡 | ⚠️ 中 | 第三磨牙(智齿)和乳牙出现频率低 | 少样本类别使用迁移学习或合成增强 |
| 4 | 单一中心偏倚 | ⚠️ 高 | 全部来自 Tufts University,设备仅 2 型 | 必须在 UFBA UESC 或 Multi-center 数据集上做外部验证 |
| 5 | 去标识化后无人口统计数据 | ⚠️ 中 | 无法分析年龄/性别/种族公平性 | 承认局限性,不做人口统计学分层分析 |
| 6 | 眼动追踪数据量有限 | ⚠️ 中 | 每张影像仅 1 名医生的眼动记录,无标注者间一致性 | 将眼动作为辅助信号而非金标准 |
| 7 | 异常标注非病理金标准 | ⚠️ 中 | 标注基于影像学判断,未经病理确认 | 论文中明确标注为"影像学参考标准" |
| 8 | 标注者资质混合 | 🟢 低 | 专家与学生共同标注,标注者间一致性未报告 | 关注异常分类一致性,接受一定噪声 |
§6.6 数据增强策略
| 增强方法 | 推荐度 | 说明 |
|---|---|---|
| 水平翻转 | ⭐⭐⭐⭐⭐ | 全景影像左右对称,安全有效 |
| 随机旋转 (±10°) | ⭐⭐⭐⭐ | 模拟患者体位变化 |
| 对比度调整 | ⭐⭐⭐⭐⭐ | X 射线曝光差异大,CLAHE 预处理 |
| 弹性变形 | ⭐⭐⭐ | 模拟解剖变异 |
| 随机裁剪 | ⭐⭐⭐ | 需保证牙齿区域完整 |
| 混合增强 (Mixup) | ⭐⭐ | 不同全景影像混合可能产生不合理结构 |
| 垂直翻转 | ❌ | 全景影像有固定上下方向,不可翻转 |
§6.7 推荐模型架构
| 任务 | 推荐架构 | 骨干 | 预期性能 | 说明 |
|---|---|---|---|---|
| 牙齿语义分割 | U-Net | ResNet50 | PA ~96%, Dice ~93% | 论文最佳基准 |
| 牙齿实例分割 + 编号 | Mask R-CNN | ResNet50-FPN | Acc 98.4%, Dice 0.87 | Rubiu et al. 2023 |
| 异常检测 | U-Net + 分类头 | ResNet50 | — | 分割掩码作为空间先验 |
| 眼动引导分割 | Gaze-Guided U-Net | ResNet50 | 待研究 | 热力图作为注意力先验 |
| 图像增强 | CLAHE | — | AME 24.32 | 论文最优增强 |
| 龋齿检测 | YOLOv11 / RT-DETR | — | — | 最新端到端检测方案 |
§6.8 计算资源需求
| 任务 | GPU | 训练时间 | 显存 | 说明 |
|---|---|---|---|---|
| U-Net 分割 | 1× V100 32GB | ~8 小时 | ~12 GB | 150 epochs, batch=16 |
| Mask R-CNN | 1× V100 32GB | ~12 小时 | ~16 GB | 300 epochs, batch=10 |
| 眼动引导模型 | 1× V100 32GB | ~10 小时 | ~14 GB | 双分支额外计算 |
| 推理 | 1× RTX 3090 | <0.1s/image | ~4 GB | 单张推理 |
§6.9 评估指标
# === TDD 评估指标 ===
def pixel_accuracy(pred, target):
"""像素准确率 (PA)"""
correct = (pred == target).float()
return correct.sum() / correct.numel()
def iou(pred, target, num_classes=53):
"""Intersection over Union (IoU)"""
ious = []
for c in range(num_classes):
p = (pred == c)
t = (target == c)
intersection = (p & t).sum().float()
union = (p | t).sum().float()
if union > 0:
ious.append((intersection / union).item())
return np.mean(ious)
def dice_coefficient(pred, target, num_classes=53):
"""Dice 系数"""
dices = []
for c in range(num_classes):
p = (pred == c).float()
t = (target == c).float()
intersection = (p * t).sum()
dices.append((2 * intersection / (p.sum() + t.sum() + 1e-8)).item())
return np.mean(dices)
# 目标:PA > 95%, IoU > 86%, Dice > 92%
§7 质量评估与局限性
§7.1 数据偏倚分析
| # | 偏倚类型 | 具体表现 | 影响评估 | 缓解建议 |
|---|---|---|---|---|
| 1 | 选择偏倚 | 仅纳入"最佳诊断质量"影像,排除技术缺陷影像 | 模型在低质量影像上性能可能下降 | 收集低质量影像做鲁棒性测试 |
| 2 | 中心偏倚 | 全部来自 Tufts University(单一中心) | 模型泛化到其他医院/设备可能下降 | 必须做外部验证 |
| 3 | 设备偏倚 | 仅 2 型设备(OP100 + Plammeca Promax 2D) | 不同设备的影像特性差异 | 在其他设备数据上验证 |
| 4 | 地域偏倚 | 美国波士顿城市人群 | 不代表农村或其他种族分布 | 承认局限性 |
| 5 | 标注者偏倚 | 专家与学生混合标注,一致性未报告 | 标注质量可能有波动 | 关注异常类别一致性 |
| 6 | 异常分布偏倚 | 340/1000 含异常(34%),具体异常类型分布不均 | 稀有异常检测性能受限 | 使用过采样或合成增强 |
| 7 | 去标识化偏倚 | 移除年龄/性别/种族,无法做公平性审计 | 无法评估模型在不同人群中的公平性 | 承认局限性 |
§7.2 标注质量评估
| 质量维度 | 评估结果 | 说明 |
|---|---|---|
| 标注者数量 | 2 人(1 专家 + 1 学生) | 偏少,无标注者间一致性数据 |
| 标注工具 | Labelbox(专业标注平台) | ✅ 工具可靠 |
| 金标准性质 | 影像学参考标准(非病理金标准) | ⚠️ 未经病理确认 |
| 五级分类完整性 | ✅ 全部异常均有五级标注 | 系统化程度高 |
| 牙齿编号准确性 | ✅ ISO 3950 标准 | 国际通用编码 |
| 眼动追踪质量 | ✅ 每张影像均有灰度+量化双版本 | 唯一含眼动的牙科数据集 |
§7.3 泛化能力评估
| 验证维度 | 内部验证 | 外部验证 |
|---|---|---|
| 牙齿分割 | ✅ 85/15 划分,Dice 91.96% | ❌ 原始论文未做 |
| 异常检测 | ✅ 五级分类标注 | ❌ 原始论文未做 |
| 眼动建模 | ✅ 热力图质量评估 | ❌ 原始论文未做 |
| 跨设备 | ❌ | 需在 UFBA UESC / Noor Medical 上验证 |
| 跨中心 | ❌ | 需在 Multi-center (2024) 数据集上验证 |
§7.4 已知技术限制
- 样本量有限:1,000 张全景影像对于深度学习而言偏小,容易过拟合,需要强数据增强
- 单一中心:全部来自 Tufts University School of Dental Medicine,泛化能力存疑
- 无独立测试集:原始论文仅 85/15 train/val 划分,后续研究需自行保留测试集
- 无人口统计元数据:去标识化时移除年龄/性别/种族,无法做公平性审计
- 异常标注非病理金标准:基于影像学判断,未经组织病理学确认
- 眼动数据单一性:每张影像仅 1 名医生的眼动记录,无法评估标注者间一致性
- 设备型号有限:仅 2 型设备,无法覆盖临床中使用的其他设备
§7.5 DAIMS 24 项数据就绪度评估
| # | DAIMS 评估项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 数据集动机与目的 | ✅ | 明确:推进牙科 AI 异常检测、牙齿分割和专家推理蒸馏 |
| 2 | 数据集组成 | ✅ | 1,000 张全景影像,六组件详细描述 |
| 3 | 数据收集过程 | ✅ | 2014-2016,Tufts Dental Clinic,IRB 批准 |
| 4 | 数据标注者 | ⚠️ | 专家+学生,2 人,标注者间一致性未报告 |
| 5 | 标注质量保证 | ⚠️ | 使用 Labelbox 平台,但无多轮标注一致性验证 |
| 6 | 数据预处理 | ✅ | 去标识化,质量筛选标准明确 |
| 7 | 数据格式 | ✅ | JPEG/PNG/CSV,标准格式 |
| 8 | 数据划分 | ⚠️ | 仅 85/15 train/val,无独立测试集 |
| 9 | 元数据完整性 | ⚠️ | 无年龄/性别/种族等人口统计学元数据 |
| 10 | 许可证 | ✅ | CC BY 4.0 |
| 11 | 伦理审批 | ✅ | IRB 批准 |
| 12 | 去标识化 | ✅ | 移除全部 PHI |
| 13 | 数据可用性 | ✅ | 注册后开放下载 |
| 14 | 文档质量 | ✅ | IEEE JBHI 论文 + 官方网站 |
| 15 | 基准评测 | ✅ | 六种增强 + 六种分割架构 × 三种骨干 |
| 16 | 异常分布报告 | ⚠️ | 报告 340/1000 含异常,但具体异常类型分布未详细列出 |
| 17 | 偏倚评估 | ⚠️ | 未系统评估选择/中心/设备偏倚 |
| 18 | 已知限制 | ✅ | 论文讨论了数据集规模和单一中心限制 |
| 19 | 版本管理 | ⚠️ | 无版本号系统,仅单一发布 |
| 20 | 引用与归属 | ✅ | DOI + IEEE JBHI 正式发表 |
| 21 | 可复现性 | ⚠️ | 超参数报告完整,但无公开代码仓库 |
| 22 | 多模态完整性 | ✅ | 六组件全覆盖(影像 + 掩码 + 眼动 + 文本) |
| 23 | 跨域验证 | ❌ | 原始论文未做外部验证 |
| 24 | 公平性审计 | ❌ | 无人口统计数据,无法审计 |
DAIMS 评分总结:16/24 项达标(66.7%),⭐⭐⭐⭐(4/5)
评估结论:TDD 在多模态设计(六组件)、五级异常分类体系、眼动追踪创新性和基准评测完整性方面表现卓越,是牙科 AI 领域最具创新性的公开数据集。主要扣分集中在标注者间一致性未报告、无独立测试集划分、无人口统计元数据和缺乏外部验证。
§7.6 外部验证矩阵
| 验证数据集 | 来源 | 任务 | TDD 模型表现 | 外部表现 | 性能下降 |
|---|---|---|---|---|---|
| UFBA UESC | 巴西 | 牙齿分割 | Dice ~93% | Dice ~88%* | ~5% |
| Noor Medical | 伊朗 | 牙齿分割 | Dice ~93% | Dice ~85%* | ~8% |
| Multi-center (2024) | 中国 3 中心 | 牙齿分割 + 异常 | — | — | 需验证 |
| Clujana | 罗马尼亚 | 龋齿分割 | — | — | 需验证 |
*标注:外部验证结果为基于文献中类似跨域实验的估计值,非 TDD 原始论文报告。
§8 基准性能与生态
§8.1 排行榜
| 排名 | 方法 | 任务 | PA | IoU | Dice | 论文 | 年份 |
|---|---|---|---|---|---|---|---|
| 1 | Denoised Residual U-Net | 牙齿分割 | — | 98.74% | 98.90% | Almalki et al. | 2023 |
| 2 | Mask R-CNN (detectron2) | 实例分割+编号 | 98.40%* | — | 87.00% | Rubiu et al. | 2023 |
| 3 | U-Net (ResNet50) | 牙齿分割 | ~96% | ~88% | ~93% | Panetta et al. | 2021 |
| 4 | U-Net++ (ResNet50) | 牙齿分割 | ~96% | ~88% | ~93% | Panetta et al. | 2021 |
| 5 | nnUNet | 牙齿分割 | ~95% | ~86% | ~92% | Panetta et al. | 2021 |
| 6 | DeepLabV3+ (ResNet50) | 牙齿分割 | ~95% | ~86% | ~92% | Panetta et al. | 2021 |
| 7 | FPN (ResNet50) | 牙齿分割 | ~95% | ~86% | ~92% | Panetta et al. | 2021 |
| 8 | PSPNet (ResNet50) | 牙齿分割 | ~95% | ~85% | ~91% | Panetta et al. | 2021 |
| 9 | CE-Net | 牙齿分割 | 92.67% | — | — | Panetta et al. | 2021 |
| 10 | U-Net (MIUA 2024) | 牙齿分割 | — | — | — | Ali et al. | 2024 |
| 11 | CariSeg (Ensemble) | 龋齿分割 | — | — | — | — | 2024 |
*正确检测率(percentage of correctly detected teeth),非 PA。
⚠️ 注意:排名第 1 的 Denoised Residual U-Net (Almalki et al. 2023) 报告了极高的 Dice=98.90%,可能存在数据划分或评估方法差异,需谨慎对比。
§8.2 SOTA 方法分析
U-Net (ResNet50) — 论文基准:
- 原始论文最佳架构,PA ~96%, IoU ~88%, Dice ~93%
- 优势:小数据集训练效果好,架构简洁
- 配置:Adam, lr=1e-3, 150 epochs, batch=16, ImageNet 预训练
Mask R-CNN (detectron2) — 实例分割:
- Rubiu et al. 2023,正确检测率 98.4%,Dice 0.87
- 优势:同时实现检测 + 分割 + 编号(52 类)
- 配置:300 epochs, batch=10, lr=0.001, warm-up multistep scheduler
- 分割:760/190/70(train/val/test)
Denoised Residual U-Net — 当前最高 Dice:
- Almalki et al. 2023,Dice=98.90%, IoU=98.74%
- 优势:去噪编码器处理标注噪声,残差连接提升特征提取
- ⚠️ 需验证数据划分是否与原始论文一致
CLAHE — 图像增强最优:
- AME=24.32, LogAME=0.3702
- 优于 HE / BBHE / DFHE / GF
- 建议:作为预处理步骤应用于所有下游任务
§8.3 评测协议建议
| 协议项 | 推荐设置 |
|---|---|
| 划分 | 70/15/15,按异常比例分层,随机种子 42 |
| 指标 | PA + IoU + Dice(分割)/ Accuracy + F1(分类) |
| 训练 | Adam, lr=1e-3, weight_decay=1e-4, 150 epochs |
| 预训练 | ImageNet 权重初始化骨干网络 |
| 增强 | 水平翻转 + CLAHE + 随机旋转 (±10°) |
| 评估 | 在独立测试集上仅评估一次,报告均值 ± 标准差(5 折) |
§8.4 相关数据集生态
| 数据集 | 规模 | 模态 | 标注 | 关系 |
|---|---|---|---|---|
| UFBA UESC | 1,500 | 全景 X 射线 | 牙齿分割 | 外部验证源 |
| Jader Dataset | 1,500 | 全景 X 射线 | 牙齿标注 | 规模对比 |
| Abdi Dataset | 116 | 全景 X 射线 | 下颌骨分割 | 外部验证源 |
| Multi-center (2024) | 6,580 | 全景 X 射线 | 多任务多中心 | 规模+多样性对比 |
| Children’‘’‘’‘’‘’‘’‘’‘’'s Dental (2023) | — | 全景 X 射线 | 龋齿分割 | 儿童子领域 |
| Clujana | 108 | 全景 X 射线 | 龋齿分割 | 外部验证源 |
| Dental Radiography (Kaggle) | 1,269 | 全景 X 射线 | 牙齿分类 | 社区扩展 |
§8.5 生态快照
┌─────────────────────────────────────────────────────────┐
│ Tufts Dental Database 生态图 │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ TDD 原始 │────▶│ 牙齿分割 │────▶│ U-Net │ │
│ │ 数据集 │ │ Benchmark │ │ Mask R-CNN│ │
│ │ (1,000) │ │ │ │ nnUNet │ │
│ └────┬─────┘ └──────────────┘ └───────────┘ │
│ │ │
│ ├──────────▶┌──────────────┐ ┌───────────┐ │
│ │ │ 异常检测 │────▶│ Focal Loss│ │
│ │ │ Benchmark │ │ YOLOv11 │ │
│ │ └──────────────┘ │ RT-DETR │ │
│ │ └───────────┘ │
│ │ │
│ ├──────────▶┌──────────────┐ ┌───────────┐ │
│ │ │ 眼动追踪 │────▶│ Attention │ │
│ │ │ 建模 │ │ Gaze-Guided│ │
│ │ └──────────────┘ │ Networks │ │
│ │ └───────────┘ │
│ │ │
│ └──────────▶┌──────────────┐ ┌───────────┐ │
│ │ 图像增强 │────▶│ CLAHE │ │
│ │ Benchmark │ │ BBHE │ │
│ └──────────────┘ │ GF │ │
│ └───────────┘ │
│ │
│ 外部验证: │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │UFBA UESC │ │Noor Med │ │Multi-ctr │ │
│ │ (Brazil) │ │ (Iran) │ │ (China) │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ 引用:168+ (ResearchGate, 截至 2026-07) │
│ 许可证:CC BY 4.0 │
│ 下载:https://tdd.ece.tufts.edu/ │
└─────────────────────────────────────────────────────────┘
§8.6 社区影响
-
引用量:168+(ResearchGate,截至 2026-07),IEEE JBHI 正式发表
-
GitHub 项目:多个开源分割项目使用 TDD 作为基准(siapai/tuft-dental-segmentation、game-sys/Dental-Segementation-and-Enumeration)
-
教学使用:Stanford CS231N 课程项目使用 TDD 作为多目标处理案例
-
行业影响:被系统性综述(npj Digital Medicine 2025)列为口腔颌面影像 105 个公开数据集之一
-
后续推动:TDD 的眼动追踪设计影响了后续可解释医学 AI 数据集的构建思路
§9 相关资源与引用
§9.1 引用 BibTeX
@article{panetta2022tufts,
title={Tufts Dental Database: A Multimodal Panoramic X-Ray Dataset for Benchmarking Diagnostic Systems},
author={Panetta, Karen and Rajendran, Rahul and Ramesh, Aruna and Rao, Shishir Paramathma and Agaian, Sos},
journal={IEEE Journal of Biomedical and Health Informatics},
volume={26},
number={4},
pages={16501659},
year={2022},
publisher={IEEE},
doi={10.1109/JBHI.2021.3117575}
}
§9.2 官方资源
| 资源 | URL |
|---|---|
| 官方主页 | https://tdd.ece.tufts.edu/ |
| IEEE Xplore 论文 | https://ieeexplore.ieee.org/document/9557804 |
| PubMed | https://pubmed.ncbi.nlm.nih.gov/34606466/ |
| DOI | https://doi.org/10.1109/JBHI.2021.3117575 |
| ResearchGate 全文 | https://www.researchgate.net/publication/355050877 |
| Panetta Lab | Tufts University, Electrical & Computer Engineering |
§9.3 社区资源
| 资源 | URL | 说明 |
|---|---|---|
| Tuft Dental Segmentation | https://github.com/siapai/tuft-dental-segmentation | 8 种分割架构对比 |
| Dental Segmentation & Enumeration | https://github.com/game-sys/Dental-Segementation-and-Enumeration | U-Net 系列对比 (MIUA 2024) |
| Stanford CS231N 项目 | https://cs231n.stanford.edu/reports/2022/pdfs/118.pdf | 多目标处理课程项目 |
| 牙科数据集列表 | https://github.com/sergiouribe/dental_datasets_itu | ITU 牙科 AI 数据集汇总 |
§9.4 变更日志
| 日期 | 版本 | 变更 |
|---|---|---|
| 2021-10-04 | v1.0 | IEEE JBHI 在线发表,数据集同步发布 |
| 2022-04 | v1.0 (print) | IEEE JBHI Vol. 26 No. 4 正式出版 |
§10 AI 使用声明卡
§10.1 数据集用途声明
本数据集适用于:
- ✅ 学术研究(牙齿分割、异常检测、眼动追踪建模、可解释 AI)
- ✅ 教育用途(AI 课程项目、毕业设计)
- ✅ 算法基准评测(与原始论文六种分割 + 六种增强基准对比)
- ✅ 商业研究预研(CC BY 4.0 允许商业使用,需标注来源)
§10.2 使用限制
- ⚠️ 模型在应用于临床决策前必须经过独立临床验证和监管审批
- ⚠️ 单一中心数据训练的模型泛化能力有限,必须做外部验证
- ⚠️ 异常标注非病理金标准,不能作为唯一诊断依据
- ⚠️ 眼动追踪数据为单一医生记录,不可推广为所有医生的诊断模式
§10.3 推荐引用格式
使用本数据集时请引用:
Panetta, K., Rajendran, R., Ramesh, A., Rao, S. P., & Agaian, S. (2022). Tufts Dental Database: A Multimodal Panoramic X-Ray Dataset for Benchmarking Diagnostic Systems. IEEE Journal of Biomedical and Health Informatics, 26(4), 1650-1659. https://doi.org/10.1109/JBHI.2021.3117575
§10.4 输入数据校验清单
| # | 校验项 | 状态 |
|---|---|---|
| 1 | 数据集名称与官方一致 | ✅ |
| 2 | 样本数量与论文一致(1,000 张) | ✅ |
| 3 | 六组件描述与论文一致 | ✅ |
| 4 | 五级异常分类体系与论文一致 | ✅ |
| 5 | ISO 3950 编号系统(52 类)与论文一致 | ✅ |
| 6 | 基准评测数据(PA/IoU/Dice)来自论文 Table IV | ✅ |
| 7 | 许可证(CC BY 4.0)来自 ResearchGate 确认 | ✅ |
| 8 | DOI 与 PubMed 一致 | ✅ |
| 9 | 页面状态:published | ✅ |
