医学图像多器官分割数据集数据集概述本数据集为医学图像语义分割数据集包含来自18 个病例的共2,211 张切片图像及其对应的分割掩码适用于多器官/多结构自动分割任务的训练与评估。原图掩码图像掩码图像RGB格式基本信息属性值总图像数2,211 张病例数18 个图像分辨率512 × 512 像素图像格式PNG图像类型灰度图8-bit单通道分割类别数8 类含背景训练集1,658 张75%测试集553 张25%目录结构data/ ├── images/ # 原始灰度图像2,211 张 ├── masks/ # 标签掩码 - 索引格式2,211 张单通道像素值 0-7 ├── masks_rgb/ # 标签掩码 - RGB 可视化格式2,211 张三通道彩色图 ├── color_map.txt # 类别颜色映射表 ├── train.txt # 训练集文件列表 ├── test.txt # 测试集文件列表文件命名规范文件命名格式为case{病例编号}_slice{切片编号}.png病例编号4 位数字如0005、0040切片编号3 位数字如000、142示例case0006_slice109.png表示第 6 号病例的第 109 张切片。病例分布病例切片数病例切片数case0005117case0026131case0006131case002788case0007163case002889case0009149case0030153case0010148case003193case0021143case0033104case002396case003498case0024124case003799——case003990——case0040195分割标签与颜色映射数据集包含 8 个分割类别标签定义及颜色映射如下标签值颜色RGB 值说明0⬛ 黑色(0, 0, 0)背景1⬜ 白色(255, 255, 255)类别 12 红色(0, 0, 255)类别 23 绿色(0, 255, 0)类别 34 蓝色(255, 0, 0)类别 45 黄色(0, 255, 255)类别 56 紫色(255, 0, 255)类别 67 青色(255, 255, 0)类别 7注意color_map.txt中的 RGB 值采用 OpenCV 的 BGR 格式。掩码文件格式数据集提供两种掩码格式masks/— 索引格式格式单通道灰度图Mode:L像素值0–7对应上表中的标签值用途直接用于模型训练可作为交叉熵损失等标准分割损失的输入masks_rgb/— RGB 可视化格式格式三通道彩色图Mode:RGB像素值按颜色映射表着色用途可视化展示、结果对比、论文插图数据集划分数据集已预先划分好训练集与测试集train.txt1,658 个文件名每行一个用于模型训练test.txt553 个文件名每行一个用于模型评估文件列表中的文件名为images/目录下的文件名对应的掩码文件在masks/和masks_rgb/目录中具有相同的文件名。类别分布不均衡各标签在掩码中的像素占比存在明显不均衡标签近似像素占比0背景~92%5~1.8%4~0.25%3~0.19%7~0.29%1~0.15%6~0.10%2~0.06%建议在训练时采用加权损失函数如 Weighted Cross-Entropy、Dice Loss 或 Focal Loss来缓解类别不均衡问题。使用示例PyTorch Dataset 示例importosimporttorchimportnumpyasnpfromPILimportImagefromtorch.utils.dataimportDatasetclassSegmentationDataset(Dataset):def__init__(self,root_dir,splittrain,transformNone):self.root_dirroot_dir self.transformtransform self.splitsplit# 读取文件列表list_fileos.path.join(root_dir,f{split}.txt)withopen(list_file,r)asf:self.filenames[line.strip()forlineinfifline.strip()]def__len__(self):returnlen(self.filenames)def__getitem__(self,idx):fnameself.filenames[idx]# 读取图像和掩码imageImage.open(os.path.join(self.root_dir,images,fname))maskImage.open(os.path.join(self.root_dir,masks,fname))imagenp.array(image)masknp.array(mask)# 像素值 0-7ifself.transform:image,maskself.transform(image,mask)else:imagetorch.from_numpy(image).unsqueeze(0).float()/255.0masktorch.from_numpy(mask).long()returnimage,mask# 使用datasetSegmentationDataset(path/to/data,splittrain)可视化掩码示例importmatplotlib.pyplotaspltfromPILimportImage# 读取原始图像和 RGB 掩码imageImage.open(images/case0006_slice109.png)mask_rgbImage.open(masks_rgb/case0006_slice109.png)fig,axesplt.subplots(1,2,figsize(10,5))axes[0].imshow(image,cmapgray)axes[0].set_title(原始图像)axes[0].axis(off)axes[1].imshow(mask_rgb)axes[1].set_title(分割掩码RGB)axes[1].axis(off)plt.tight_layout()plt.show()注意事项像素值范围原始图像为 8-bit 灰度图像素值范围 [0, 255]输入模型前建议归一化至 [0, 1]类别不均衡背景像素占约 92%前景类别占比很小请采用适当的损失函数或数据增强策略数据划分训练集与测试集已固定划分请勿混用以保证实验公平性掩码使用训练时请使用masks/目录下的索引格式掩码masks_rgb/仅供可视化使用数据集地址https://download.csdn.net/download/FL1623863129/90010785