100种动物语义分割数据集(A100-Seg)

100种动物语义分割数据集(A100-Seg)

代码详见:https://github.com/xiaozhou-alt/100-Class-Animal-Segmentation-Dataset-A100-Seg-


文章目录

  • 100种动物语义分割数据集(A100-Seg)
    • [1. 数据集概述](#1. 数据集概述)
      • [1.1 数据集背景与意义](#1.1 数据集背景与意义)
      • [1.2 数据集基本信息](#1.2 数据集基本信息)
  • [2. 数据获取与标注流程](#2. 数据获取与标注流程)
    • [2.1 图片获取](#2.1 图片获取)
    • [2.2 标注流程](#2.2 标注流程)
        • [2.2.1 标注工具:ISAT](#2.2.1 标注工具:ISAT)
        • [2.2.2 配置参数](#2.2.2 配置参数)
        • [2.2.3 具体步骤](#2.2.3 具体步骤)
  • [3. 数据集结构](#3. 数据集结构)
  • [4. 标注文件示例](#4. 标注文件示例)
    • [4.1 PNG 掩码(`antelope_001.png`)](#4.1 PNG 掩码(antelope_001.png))
    • [4.2 ISAT JSON 文件(`antelope_001.json`)](#4.2 ISAT JSON 文件(antelope_001.json))
  • [5. 模型训练效果](#5. 模型训练效果)
  • [6. 数据集使用说明](#6. 数据集使用说明)

1. 数据集概述

1.1 数据集背景与意义

语义分割是计算机视觉的核心任务之一,在自动驾驶、医学影像分析、智能监控、生态系统监测等领域具有广泛应用。然而,针对动物的细粒度语义分割数据集仍十分稀缺。现有主流分割数据集(如COCO-Stuff、ADE20K、Cityscapes)中动物类别较少,且多为"stuff"背景类别,缺乏对动物个体轮廓的高质量像素级标注。

为了推动动物分割领域的研究,我们构建了 A100-Seg 数据集,其核心特点如下:

  • 大规模动物种类 :包含 100 种常见及珍稀动物,覆盖哺乳类、鸟类、爬行类等。
  • 充足样本量 :每种动物 100~150 张 图像,总计 超过 11,000 张,保证模型训练的泛化能力。
  • 高精度像素级标注 :采用 SAM-ViT-B 自动预分割 + ISAT 人工精细修正,确保掩码边缘准确。
  • 纯净场景 :每张图像仅包含 一种动物,无多类别干扰,适合聚焦于动物轮廓分割。
  • 丰富标注格式 :同时提供 ISAT 原始 JSON (含多边形轮廓)和 PNG 二值掩码,方便二次处理。

目前公开数据集中,尚缺乏同时满足"100 种以上动物、每类≥100 张、像素级分割标注"的数据集,A100-Seg 填补了这一空白。

数据集下载:100种动物语义分割数据集

如果您使用了本项目的数据集,请使用如下方式进行引用:

tex 复制代码
ZHOU Haojing. 100种动物语义分割数据集[DS/OL]. V1. Science Data Bank, 2026[2026-06-13]. https://doi.org/10.57760/sciencedb.38760. DOI:10.57760/sciencedb.38760.

tex 复制代码
@misc{实例分割,
  author = {ZHOU Haojing},
  title  = {100种动物语义分割数据集},
  year   = {2026},
  doi    = {10.57760/sciencedb.38760},
  url    = {https://doi.org/10.57760/sciencedb.38760},
  note   = {CSTR: 31253.11.sciencedb.38760},
  publisher = {ScienceDB}
}

1.2 数据集基本信息

属性 说明
动物种类 100 种(详见 class.txt,按字母顺序排列)
图像总数 11354张图片
图像格式 PNG(RGB 彩色)
掩码格式 PNG(单通道,前景=255,背景=0)
标注工具 ISAT(基于 SAM-ViT-B 自动标注 + 人工修正)
标注配置 轮廓模式:保存所有轮廓;背景组号=0;动物组号=1
文件结构 images/动物名/图片.png annotations/masks/动物名/同名.png annotations/json/动物名/同名.json

对比现有公开数据集(COCO-Stuff、ADE20K、Oxford Pet、Stanford Dogs 等),A100-Seg 具有以下显著优势:

对比项 A100-Seg(本数据集) COCO-Stuff ADE20K Oxford Pet
动物种类 100 种 ~30 种动物 ~50 种动物 仅猫、狗
总样本量 11,000+ ~10,000(含动物) ~20,000(含非动物) ~7,400
每类样本量 100~150 不均衡(少则几十) 不均衡 约 200
标注粒度 像素级轮廓 像素级 像素级 像素级
标注质量 SAM+人工精修 多边形 多边形 多边形
场景纯净度 单种动物 多目标混合 复杂场景 单种动物
提供格式 PNG 掩码 + JSON JSON JSON PNG 掩码
适用任务 动物分割、细粒度识别 通用分割 场景解析 宠物分割

2. 数据获取与标注流程

2.1 图片获取

本数据集所有图片均从必应图片搜索获取,严格遵循版权规范,具体流程如下:

  1. 访问必应图片搜索页面,使用筛选器选择"Free to modify, share, and use"(可修改、分享及使用)权限,确保图片使用合规;

  2. 以羚羊(antelope)为例,搜索链接,按此方式依次搜索100种动物的图片;

  3. 使用Microsoft Edge浏览器扩展插件ImageAssistant,批量提取当前搜索页面的图片并下载;

  4. 人工清洗:剔除模糊、分辨率过低、动物主体不明确或存在版权争议的图片,确保每一张图片的可用性。

2.2 标注流程

采用 "AI 预标注 + 人工精修" 的半自动流程,兼顾效率与精度。

2.2.1 标注工具:ISAT

ISAT(Image Segmentation Annotation Tool)是一款支持交互式分割的标注工具,内置 SAM 模型,可大幅提升多边形标注效率。

2.2.2 配置参数
  • 分割模型SAM-ViT-B(精度与速度平衡的最佳选择)
  • 轮廓模式保存所有轮廓(保留每个连通区域的多边形,避免丢失细节)
  • 组号设置
    • __background__ 组号固定为 0(背景像素)
    • 所有动物类别组号统一为 1(前景像素,不同动物通过 label 名称区分)

注:由于每张图片仅包含一种动物,因此组号 1 对应唯一的前景类别,组内不同 label 仅用于标识物种名称。

2.2.3 具体步骤
  1. 自动预标注:加载原始图像,调用 SAM-ViT-B 模型生成初始分割掩码。
  2. 人工修正
    • 对自动生成的轮廓进行 添加、删除、移动 控制点,修正边缘误差。
    • 若模型漏标,使用多边形工具手动添加。
    • 若模型误标背景区域,使用"擦除"工具删除。
  3. 保存标注
    • 保存为 ISAT 原始 JSON 文件(包含多边形点集、类别名称、组号等)。
    • 同时导出 PNG 二值掩码(前景=白色,背景=黑色)。

标注结果展示:

3. 数据集结构

数据集采用清晰的层级文件夹结构,便于用户快速定位和使用数据,整体结构如下:

makefile 复制代码
A100-Seg/                      # 主文件夹
├─ images/                     # 原始图像文件夹
│  ├─ antelope/                # 动物名称子文件夹(与class.txt一致)
│  │  ├─ antelope_001.png
│  │  ├─ antelope_002.png
│  │  └─ ...
│  ├─ bear/
│  │  └─ ...
│  └─ ...(共100个动物子文件夹)
├─ annotations/                # 标注文件夹
│  ├─ masks/                   # 二值分割掩码(PNG格式)
│  │  ├─ antelope/
│  │  │  ├─ antelope_001.png
│  │  │  └─ ...
│  │  └─ ...
│  └─ json/                    # ISAT原始标注文件(JSON格式)
│     ├─ antelope/
│     │  ├─ antelope_001.json
│     │  └─ ...
│     └─ ...
├─ pic/                        # 说明文档用图片
├─ class.txt                   # 100种动物名称清单(每行一种)
├─ README.md
└─ README-zh.md

说明:

  • 原始图像{动物名}_{三位序号}.png,例如 antelope_001.png

  • 掩码图像 :与原始图像完全相同 的文件名,放置在 annotations/masks/{动物名}/ 下。

  • JSON 标注 :与原始图像完全相同 的文件名,放置在 annotations/json/{动物名}/ 下。

4. 标注文件示例

4.1 PNG 掩码(antelope_001.png

txt 复制代码
- 尺寸:与原始图像一致(宽度 × 高度)。
- 像素值:0(背景)或 255(前景动物)。
- 可视化:前景为白色,背景为黑色。

4.2 ISAT JSON 文件(antelope_001.json

json 复制代码
<?xml version="1.0" ?&gt;
&lt;annotation&gt;             {
    "info": {
        "description": "ISAT",
        "folder": "../images/antelope",
        "name": "antelope_001.png",
        "width": 1640,
        "height": 1025,
        "depth": 3,
        "note": ""
    },
    "objects": [
        {
            "category": "antelope",
            "group": 1,
            "segmentation": [
                [
                    776.0,
                    124.0
                ],
                ...
                [
                    778.0,
                    124.0
                ]
            ],
            "area": 202595.0,
            "layer": 1.0,
            "bbox": [
                371.0,
                124.0,
                942.0,
                960.0
            ],
            "iscrowd": false,
            "note": ""
        },
        {
            "category": "__background__",
            "group": 0,
            "segmentation": [
                [
                    508.0,
                    714.0
                ],
                ...
                [
                    502.0,
                    715.0
                ]
            ],
            "area": 984.5,
            "layer": 2.0,
            "bbox": [
                496.0,
                714.0,
                518.0,
                771.0
            ],
            "iscrowd": false,
            "note": ""
        }
    ]
}

5. 模型训练效果

本数据集已在一系列分割模型上进行初步训练,以下为模型性能指标:

此处仅以 SegFormer 为例,展示训练输出部分图像,更多请详见后文 Kaggle 链接:

输出展示:

原始图像-标签二值掩码-标签覆盖-预测二值掩码-预测覆盖

6. 数据集使用说明

  • 本数据集可直接用于目标检测模型的训练、验证与测试,支持DeepLab系列、SegFormer、UNet等主流模型;

  • 使用时需注意:images文件夹与annotations文件夹下的文件一一对应,class.txt为模型训练时的类别配置依据,需确保类别顺序不修改;

Kaggle 训练 log 记录链接:

A100-Seg_DeepLabV3(version 1)

A100-Seg_AttnUNet(version 2)

A100-Seg_SegFormer

A100-Seg_MiniFCN

A100-Seg_PSPNet

A100-Seg_Small-UNet

Hoofed

COCO-Animal

如果你喜欢我的文章,不妨给小周一个免费的点赞和关注吧!

相关推荐
DrMaker1 小时前
【无标题】
软件测试·python·测试工具·pyqt
MATLAB代码顾问1 小时前
Python数据分析项目实战:销售数据仪表盘
开发语言·python·数据分析
码云骑士1 小时前
07-Python装饰器从入门到源码(下)-带参数装饰器与wraps
开发语言·python
KIO no way1 小时前
AI发布工作流配置指南_用CSDN_AI数字营销把分发自动化
人工智能·python·自动化
盼小辉丶2 小时前
PyTorch强化学习实战(13)——噪声网络(NoisyNet-DQN)
pytorch·深度学习·强化学习
承渊政道2 小时前
【从零开始大模型开发与微调:基于PyTorch与ChatGLM】(从环境搭建到第一个训练闭环:PyTorch2.0深度学习入门实战)
人工智能·pytorch·深度学习·机器学习·语言模型·自然语言处理·pycharm
码云骑士2 小时前
09-Python模块导入机制-sys.path与循环导入的死锁式排查
开发语言·python
天佑木枫2 小时前
第5天:循环 —— 让程序重复执行
python
chen_zn952 小时前
pi*0.6的RECAP:VLA如何从成功、失败和人工纠正中继续学习
人工智能·深度学习·强化学习·具身智能·vla