数据描述
一、引言
在乳腺癌早期筛查领域,**乳腺X光片(钼靶)检测(BCDM)**是临床金标准——通过识别肿块、微钙化、结构不对称等异常特征,可将乳腺癌早期检出率提升40%以上,显著降低患者死亡率。
当前,AI技术在BCDM中的落地面临三大核心痛点:
- 高质量标注数据稀缺:乳腺异常区域(如微钙化)尺寸仅数毫米(ROI远小于自然图像),需放射科专家手动标注边界框,单张标注成本超百元,导致多数数据集标注精度低或规模小
- 跨域泛化能力差:不同医院的X光设备、成像协议差异大,模型在A医院数据集上训练后,在B医院数据上的敏感性常从90%骤降至50%以下
- 小病灶检测难:微小恶性病灶易被乳腺组织密度干扰,导致假阳性率(FPI)高,临床实用价值受限
此数据集正是针对上述痛点设计:含5.4万张图像的精选子集,它包含1000张乳腺X光片,其中200个恶性病例由两位专家放射科医生完成边界框级标注,既保证了标注权威性,又聚焦BCDM的核心需求(小病灶检测、跨域适配)。
其核心目标是为研究者提供"高精准标注+明确跨域研究支撑"的基准数据,推动乳腺癌检测算法(尤其是无监督域适应算法)的开发与验证。
二、内容主体
(一)数据集核心信息
(二)数据集核心优势
本数据集的核心竞争力在于"标注权威性+任务适配性+易用性",完美匹配BCDM算法从开发到验证的全流程需求,具体优势如下:
1. 标注权威精准,解决临床级数据稀缺痛点
- 专家级标注质量:200个恶性病例由两位专家放射科医生完成边界框标注,确保标注的临床权威性
- 小病灶精准定位:针对微钙化、小肿块等难检病灶进行精确边界框标注,支撑高精度检测算法训练
- 标准化标注格式:采用COCO Detection格式,与主流目标检测框架(Detectron2、mmdetection)无缝对接
2. 跨域研究支撑,解决泛化能力差痛点
- 多域数据来源:基于RSNA大规模乳腺筛查数据集,涵盖不同医院、设备、成像协议
- 明确域划分:提供源域(RSNA-BSD1K)与目标域(INBreast、DDSM)的明确划分,支撑无监督域适应研究
- 域间差异量化:通过统计特征分析,量化不同域间的分布差异,为域适应算法提供基准
3. 任务适配性强,解决算法验证难痛点
- BCDM专用设计:专门针对乳腺癌检测任务设计,包含恶性/良性病例的完整标注
- 多尺度病灶覆盖:从微钙化到大型肿块,覆盖不同尺度的恶性病灶,支撑多尺度检测算法
- 评估指标明确:提供FPI(假阳性率)与敏感性等临床关键指标,便于算法性能评估
(三)技术实现与使用指南
1. 数据加载与预处理
import json
import cv2
import numpy as np
from pathlib import Path
class RSNABSD1KDataset:
def __init__(self, data_root, ann_file, transform=None):
self.data_root = Path(data_root)
self.transform = transform
# 加载COCO格式标注
with open(ann_file, 'r') as f:
self.coco_data = json.load(f)
# 构建图像ID到标注的映射
self.image_id_to_anns = {}
for ann in self.coco_data['annotations']:
image_id = ann['image_id']
if image_id not in self.image_id_to_anns:
self.image_id_to_anns[image_id] = []
self.image_id_to_anns[image_id].append(ann)
def __getitem__(self, idx):
# 获取图像信息
image_info = self.coco_data['images'][idx]
image_path = self.data_root / 'images' / image_info['file_name']
# 读取图像
image = cv2.imread(str(image_path))
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 获取对应标注
image_id = image_info['id']
anns = self.image_id_to_anns.get(image_id, [])
# 构建边界框和标签
boxes = []
labels = []
for ann in anns:
bbox = ann['bbox'] # [x, y, width, height]
# 转换为[x1, y1, x2, y2]格式
x1, y1, w, h = bbox
x2, y2 = x1 + w, y1 + h
boxes.append([x1, y1, x2, y2])
labels.append(ann['category_id'])
if self.transform:
image = self.transform(image)
return {
'image': image,
'boxes': np.array(boxes) if boxes else np.zeros((0, 4)),
'labels': np.array(labels) if labels else np.zeros(0),
'image_id': image_id
}
2. 无监督域适应训练示例
# 使用D-MASTER算法进行无监督域适应训练
from d_master import DMasterTrainer
# 1. 配置源域和目标域数据
cfg = DMasterConfig()
# 源域配置
cfg.SOURCE.DATA_ROOT = "path/to/rsna-bsd1k"
cfg.SOURCE.ANN_FILE = "annotations/instances_full.json"
cfg.SOURCE.DOMAIN = "rsna"
# 目标域配置
cfg.TARGET.DATA_ROOT = "path/to/inbreast"
cfg.TARGET.ANN_FILE = "annotations/inbreast_val.json"
cfg.TARGET.DOMAIN = "inbreast" # 目标域:INBreast
# 模型与训练配置
cfg.MODEL.NAME = "d-master"
cfg.MODEL.BACKBONE = "resnet50"
cfg.TRAIN.EPOCHS = 20
cfg.TRAIN.BATCH_SIZE = 2
cfg.TRAIN.LR = 0.0001
cfg.EVAL.FPI_THRESHOLDS = [0.3] # 重点评估0.3 FPI下的敏感性
# 2. 启动UDA训练
trainer = DMasterTrainer(cfg)
trainer.train()
# 3. 评估跨域性能(目标域INBreast上的敏感性)
# 训练完成后,日志会输出:
# "Source Domain (RSNA-BSD1K) Sensitivity@0.3FPI: 0.82"
# "Target Domain (INBreast) Sensitivity@0.3FPI: 0.78" # 比传统SOTA提升17%
关键说明:D-MASTER的核心改进是"掩码退火特征重建"与"自适应置信度伪标签过滤",可有效提取域不变特征(如肿块的边缘、密度特征),减少源域与目标域的分布差异;训练时目标域仅输入图像(无标注),通过伪标签引导模型学习,无需手动标注目标域数据,大幅降低临床应用成本。
3. 效果可视化与部署建议
效果可视化:
- 边界框对比图:在乳腺X光片上叠加"专家标注边界框(红色)"与"模型预测边界框(绿色)",直观展示小病灶(如微钙化)的检测精度
- FPI-敏感性曲线:绘制不同FPI阈值(0.1/0.3/0.5)下的敏感性变化曲线,对比模型与传统SOTA的性能差异(如D-MASTER vs 普通Faster R-CNN)
- 跨域性能热力图:展示模型在RSNA-BSD1K(源域)、INBreast、DDSM(目标域)上的敏感性分布,验证泛化能力
部署建议:
- 系统集成:将训练好的模型集成到放射科PACS(影像归档和通信系统),通过API接口读取乳腺X光片,实时输出恶性区域边界框与置信度,辅助医生阅片
- 模型轻量化:若部署到边缘设备(如移动阅片终端),可使用TensorRT对模型量化(FP32→FP16),或采用YOLOv8n等轻量级模型,将推理时间控制在500ms以内
- 合规性:数据集虽可用于研究,但部署时需确保输入的乳腺X光片已完成患者去标识化(符合HIPAA、GDPR等隐私法规),且模型需通过医学伦理审核,明确"辅助诊断而非替代医生"
(四)数据集样例展示(文件夹结构与核心元素)
rsna-bsd1k/
├── annotations/
│ ├── instances_full.json # 全量1000张图像的标注
│ └── instances_val.json # 验证集图像标注
└── images/
├── train/ # 训练集图像(约800张)
│ ├── mammo_001.jpg
│ ├── mammo_002.jpg
│ └── ...
└── val/ # 验证集图像(约200张)
├── mammo_801.jpg
├── mammo_802.jpg
└── ...
标注说明:以instances_full.json中的某条标注为例,恶性病例的标注格式为:
{
"image_id": 1,
"bbox": [156, 230, 45, 38],
"category_id": 1,
"id": 1001
}
其中bbox对应乳腺X光片中恶性肿块的位置(xmin=156,ymin=230,width=45,height=38,单位为像素),category_id=1代表"malignant"(恶性);良性病例无annotations条目,仅在images中记录图像信息。
三、相关数据集对比
主流乳腺影像数据集概览
数据集选择建议
# 根据研究需求选择合适的数据集
def select_dataset(research_goal):
if research_goal == "肿块检测与分类":
return ["CBIS-DDSM", "INbreast"]
elif research_goal == "病理亚型识别":
return ["BreakHis"]
elif research_goal == "多模态预后分析":
return ["TCGA-BRCA"]
elif research_goal == "轻量级模型验证":
return ["UCI Wisconsin"]
else:
return ["RSNA-BSD1K"] # 默认推荐
数据使用建议
注意事项
- 伦理合规:部分数据集需签署数据使用协议(如TCGA-BRCA)
- 预处理:影像数据需统一归一化(如
Pixel ∈ [0,1])并增强(旋转/翻转) - 偏差修正:使用Stratified K-fold避免类别不均衡导致的评估偏差
四、总结
该数据集为乳腺癌检测和无监督域适应研究提供了高质量的基准数据,具有以下特点:
- 权威标注:200个恶性病例由专家放射科医生标注
- 跨域支撑:支持无监督域适应算法开发与验证
- 任务专用:专门针对BCDM任务设计,覆盖多尺度病灶
- 易于使用:标准COCO格式,与主流框架无缝对接
该数据集为研究者提供了从算法开发到临床部署的完整数据支撑,是乳腺癌AI检测领域的重要资源。
看了又看
验证报告
以下为卖家选择提供的数据验证报告:






