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
相关推荐
程序员cxuan40 分钟前
虽迟但到!GPT-5.6 终于来了!
人工智能·后端·程序员
ZhengEnCi3 小时前
Q03-UI设计进阶技巧-让界面更高级的7个核心原则
人工智能
IT_陈寒3 小时前
React的这个渲染问题连官方文档都没说清楚
前端·人工智能·后端
不加辣椒4 小时前
第12章 工具调用与 Agent 提示工程
人工智能
用户1693176172664 小时前
前端给AI消息做日期分组与时间线
人工智能
i晟4 小时前
Claude Code Harness 深度拆解:从你敲回车到模型回复,中间发生了什么
人工智能
用户252736278145 小时前
【踩坑复盘】我在本地跑 RAG 知识库时踩了 5 个大坑,吐血整理避坑指南
人工智能
大模型真好玩6 小时前
LangChain DeepAgents 速通指南(九)—— 生产级智能体框架 DeepAgents Code 源码导读
人工智能·langchain·agent
用户018349301698 小时前
用Zustand管理AI多会话状态
人工智能
武子康10 小时前
调查研究-198 Agent 到底该记住什么?读懂《What Must Generalist Agents Remember?》
人工智能·openai·agent