Synapse腹部CT多器官分割数据集png图片+掩码图片+颜色映射表

医学图像多器官分割数据集

数据集概述

本数据集为医学图像语义分割数据集,包含来自 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 位数字(如 00050040
  • 切片编号 :3 位数字(如 000142

示例:case0006_slice109.png 表示第 6 号病例的第 109 张切片。


病例分布

病例 切片数 病例 切片数
case0005 117 case0026 131
case0006 131 case0027 88
case0007 163 case0028 89
case0009 149 case0030 153
case0010 148 case0031 93
case0021 143 case0033 104
case0023 96 case0034 98
case0024 124 case0037 99
--- --- case0039 90
--- --- case0040 195

分割标签与颜色映射

数据集包含 8 个分割类别,标签定义及颜色映射如下:

标签值 颜色 RGB 值 说明
0 ⬛ 黑色 (0, 0, 0) 背景
1 ⬜ 白色 (255, 255, 255) 类别 1
2 🟥 红色 (0, 0, 255) 类别 2
3 🟩 绿色 (0, 255, 0) 类别 3
4 🟦 蓝色 (255, 0, 0) 类别 4
5 🟨 黄色 (0, 255, 255) 类别 5
6 🟪 紫色 (255, 0, 255) 类别 6
7 🩵 青色 (255, 255, 0) 类别 7

注意color_map.txt 中的 RGB 值采用 OpenCV 的 BGR 格式。


掩码文件格式

数据集提供两种掩码格式:

masks/ --- 索引格式

  • 格式 :单通道灰度图(Mode: L
  • 像素值:0--7,对应上表中的标签值
  • 用途:直接用于模型训练,可作为交叉熵损失等标准分割损失的输入

masks_rgb/ --- RGB 可视化格式

  • 格式 :三通道彩色图(Mode: RGB
  • 像素值:按颜色映射表着色
  • 用途:可视化展示、结果对比、论文插图

数据集划分

数据集已预先划分好训练集与测试集:

  • train.txt:1,658 个文件名,每行一个,用于模型训练
  • test.txt:553 个文件名,每行一个,用于模型评估

文件列表中的文件名为 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 示例

python 复制代码
import os
import torch
import numpy as np
from PIL import Image
from torch.utils.data import Dataset

class SegmentationDataset(Dataset):
    def __init__(self, root_dir, split='train', transform=None):
        self.root_dir = root_dir
        self.transform = transform
        self.split = split

        # 读取文件列表
        list_file = os.path.join(root_dir, f'{split}.txt')
        with open(list_file, 'r') as f:
            self.filenames = [line.strip() for line in f if line.strip()]

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

    def __getitem__(self, idx):
        fname = self.filenames[idx]

        # 读取图像和掩码
        image = Image.open(os.path.join(self.root_dir, 'images', fname))
        mask = Image.open(os.path.join(self.root_dir, 'masks', fname))

        image = np.array(image)
        mask = np.array(mask)  # 像素值 0-7

        if self.transform:
            image, mask = self.transform(image, mask)
        else:
            image = torch.from_numpy(image).unsqueeze(0).float() / 255.0
            mask = torch.from_numpy(mask).long()

        return image, mask

# 使用
dataset = SegmentationDataset('path/to/data', split='train')

可视化掩码示例

python 复制代码
import matplotlib.pyplot as plt
from PIL import Image

# 读取原始图像和 RGB 掩码
image = Image.open('images/case0006_slice109.png')
mask_rgb = Image.open('masks_rgb/case0006_slice109.png')

fig, axes = plt.subplots(1, 2, figsize=(10, 5))
axes[0].imshow(image, cmap='gray')
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()

注意事项

  1. 像素值范围:原始图像为 8-bit 灰度图,像素值范围 0, 255,输入模型前建议归一化至 0, 1
  2. 类别不均衡:背景像素占约 92%,前景类别占比很小,请采用适当的损失函数或数据增强策略
  3. 数据划分:训练集与测试集已固定划分,请勿混用以保证实验公平性
  4. 掩码使用 :训练时请使用 masks/ 目录下的索引格式掩码,masks_rgb/ 仅供可视化使用
    数据集地址:https://download.csdn.net/download/FL1623863129/90010785
相关推荐
AI78408 小时前
开源与闭源博弈:正在决定未来AI产业的生态走向
人工智能·开源
集芯微电科技有限公司8 小时前
PC3100H 专为TFT-LCD面板偏置电源设计双输出100m电流
人工智能·单片机·嵌入式硬件·神经网络·生成对抗网络
无忧智库9 小时前
智慧电厂:引领发电行业新革命(PPT)
大数据·人工智能
Oflycomm9 小时前
物理AI时代的“连接底座”:Wi-Fi 7模组如何撑起具身智能的神经网络
人工智能·深度学习·神经网络·物联网·具身智能·wifi7
hughnz9 小时前
海上钻井平台的“绿色革命”:如何破解能源世界的“不可能三角”
人工智能
遥感知识服务9 小时前
盐碱地、白屋顶和裸土都很亮,卫星怎样分清?
人工智能·算法·机器学习
Microvision维视智造9 小时前
火腿肠里有没有异物?穿刺针尖有没有毛刺?——视觉检测守护“舌尖上的安全“
人工智能·计算机视觉·视觉检测
147API9 小时前
Claude for Teachers 发布后,教育 AI 工作流怎样做标准对齐与数据验收
人工智能
浪潮BB机9 小时前
解决会议纪要错字多,2026年主流语音识别软件横评与优化方案
人工智能·语音识别·效率工具·ai工具·录音转写·会议纪要
飞凌嵌入式9 小时前
工业无死角视觉方案:RV1126B平台AVS全景拼接+目标检测
人工智能·数码相机·目标检测