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
相关推荐
日常通勤穿搭26 分钟前
电商 AI 生图工具横评|AI 生成主图、详情套图工具哪家性价比高
人工智能·aigc·电商美工
Ai_easygo1 小时前
AI下半场_06_CSDN版_开源AI最后一公里
人工智能
jimmyleeee1 小时前
大模型安全之十五:AI Access Control:当“门禁”遇上会思考的系统
人工智能·安全
HIT_Weston1 小时前
224、【AI】【模型部署】基座模型研究:Qwen2 架构总览与 config 对照
人工智能·模型部署
我叫张土豆1 小时前
本体论、DDD、SDD、TDD:AI 编程时代的四层认知栈
java·人工智能
蓝速科技1 小时前
便民服务大厅 AI 数字人一体机场景适配与落地指南丨蓝速科技
大数据·网络·数据结构·人工智能·自然语言处理·数据分析·运维开发
IT_陈寒1 小时前
Vue的响应式更新把我坑惨了,原来问题出在这
前端·人工智能·后端
深圳市青牛科技实业有限公司 小芋圆1 小时前
GC1808:高性能、低成本的立体声音频ADC芯片
人工智能·嵌入式硬件·无人机·太阳能逆变器
龙腾AI白云2 小时前
孪生不止在工厂:能源、医疗与农业
人工智能·机器学习·scikit-learn·知识图谱
精益数智工坊2 小时前
云计算环境数据怎么同步?云计算集成方案有哪些?
大数据·人工智能·数据挖掘·数据可视化