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
相关推荐
Raink老师1 小时前
【AI面试临阵磨枪-97】多模态 RAG:图文混合切块、跨模态检索、多模态生成?
人工智能
winlife_1 小时前
全程用 AI 做一款商业级手游 · EP0 立项:能做到吗、怎么做、边界在哪
人工智能·unity·ai编程·游戏开发·商业化·mcp·funplay
keykey6.1 小时前
反向传播与梯度下降:神经网络如何学习
开发语言·人工智能·深度学习·机器学习
晚笙coding1 小时前
从零讲透 LangChain 提示词模板:不只是 Prompt,而是“可复用的 AI 指令工厂”
人工智能·langchain·prompt
码农杂谈00071 小时前
AI + 制造,正在从“能用“迈向“好用“ !网易创新企业大会回顾
人工智能
在水一缸1 小时前
深度解析:基于 3D Gaussian Splatting 技术的编辑器实践与原理
计算机视觉·3d·编辑器·aigc·3d建模·nerf·3d编辑器
烟雨江南7851 小时前
地铁越江隧道盾构机控制室大功率液压马达强低频共振降噪与离线智能参数抄报 ASR 方案
人工智能·语音识别·ai质检
RD_daoyi1 小时前
GEO优化能为企业带来哪些价值?
大数据·人工智能·学习·搜索引擎·chatgpt
鲲鹏AI探索局1 小时前
大模型问答里的品牌信息一致性检查:先做定位,再做内容
人工智能·大模型·aigc