---
title: multiyolo-det-seg
canonical_url: "https://www.modelscope.cn/datasets/learnai2/multiyolo-det-seg"
md_url: "https://www.modelscope.cn/datasets/learnai2/multiyolo-det-seg.md"
repository: learnai2/multiyolo-det-seg
chinese_name: "室内检测分割联合数据集"
last_updated: 2026-08-14
license: CC-BY-4.0
storage_size: "1.1 GB"
downloads: 2485
stars: 0
---

# multiyolo-det-seg

> multiyolo-det-seg - learnai2 在 ModelScope 开源的数据集。一个包含检测和分割的数据集

learnai2/multiyolo-det-seg 是 ModelScope 魔搭社区上的数据集，存储大小 1.1 GB，采用 CC-BY-4.0 许可。

- **Repository**: learnai2/multiyolo-det-seg
- **License**: CC-BY-4.0
- **Storage size**: 1.1 GB
- **Downloads**: 2485
- **Stars**: 0
- **Last updated**: 2026-08-14

Source: https://www.modelscope.cn/datasets/learnai2/multiyolo-det-seg

---

# multiyolo-det-seg 多任务数据集

## 数据集简介

本数据集面向**单模型多任务（目标检测 + 语义分割）**场景，原始图像采集自**办公室场景**，用于训练一个一次前向同时输出「戴口罩/不戴口罩人员检测框」与「人/桌面/地面分割掩码」的 YOLOv5 改造模型。

- 检测任务（Detection）：**2 类** —— `0=戴口罩`、`1=不带口罩`
- 分割任务（Segmentation）：**5 类** —— `0=背景`、`1=桌面`、`2=戴口罩的人`、`3=地面`、`4=不戴口罩的人`

数据集同时提供检测标注（YOLO txt）、分割彩色掩码（PNG）、以及原始检测 JSON，方便复现或自行转换格式。

## 数据规模

| 子集 | 数量 | 格式 | 说明 |
|---|---|---|---|
| detdata/images/train | 396 | .jpg | 训练检测原图 |
| detdata/images/val | 396 | .jpg | 验证检测原图 |
| detdata/labels/train | 396 | .txt | 训练检测标注（YOLO 格式） |
| detdata/labels/val | 396 | .txt | 验证检测标注（YOLO 格式） |
| segimages/train | 396 | .jpg | 训练分割原图 |
| segimages/val | 396 | .jpg | 验证分割原图 |
| seglabels/train | 396 | .png | 训练分割彩色掩码 |
| seglabels/val | 397 | .png | 验证分割彩色掩码 |
| json_det | 396 | .json | 检测原始标注（json，转换源） |
| dataset_extra | 3956 | 混合 | 另一批次原始导出（未接训练主链） |
| video/1.mp4 | 1 | .mp4 | RTSP 推流部署演示素材（53 MB） |

- 数据总量约 **1.1 GB / 7522 个文件**。
- 检测类别分布（训练集统计）：`1=不带口罩` 样本明显多于 `0=戴口罩`。

## 目录结构

```
dataset/
├── detdata/                 # 检测数据
│   ├── images/
│   │   ├── train/           396 张 .jpg
│   │   └── val/             396 张 .jpg
│   └── labels/
│       ├── train/           396 个 .txt（YOLO 格式）
│       └── val/             396 个 .txt
├── segimages/               # 分割原图（与 detdata 同源）
│   ├── train/               396 张 .jpg
│   └── val/                 396 张 .jpg
├── seglabels/               # 分割彩色掩码
│   ├── train/               396 个 .png
│   └── val/                 397 个 .png
├── json_det/                # 检测原始标注（json）
│   └── *_det.json           396 个
├── dataset_extra/           # 另一批次导出（未接训练主链，见注意事项）
│   ├── json_det/ json_seg/ png/ png_seg/   各 989 个
└── video/
    └── 1.mp4                # RTSP 推流演示素材（53 MB）
```

## 标注格式

### 1. 检测标注（YOLO 格式）

`detdata/labels/{train,val}/*.txt`，每行一个目标，格式为：

```
<class_id> <x_center> <y_center> <width> <height>
```

- 坐标均已**归一化到 [0,1]**（相对于图像宽高）。
- `class_id`：`0=戴口罩`、`1=不带口罩`。

### 2. 分割标注（彩色掩码）

`seglabels/{train,val}/*.png` 为 **RGB 彩色掩码**。像素类别由 **`R 通道值 + G 通道值`** 共同编码（非单通道灰度，也非直接 BGR 颜色），映射关系如下：

| R + G 数值 | 类别 id | 语义 |
|---|---|---|
| 0 | 0 | 背景 background |
| 85 | 1 | 桌面 desktop |
| 170 | 2 | 戴口罩的人 person with mask |
| 254 | 3 | 地面 ground |
| 340 | 4 | 不戴口罩的人 person without mask |

解码示例代码（取自训练代码 `SegmentationDataset.py:mask_generate`）：

```python
def mask_generate(self, mask):
    gt = np.zeros((mask.shape[0], mask.shape[1]))
    mask = mask[:, :, 0] + mask[:, :, 1]      # R + G
    gt[mask == 85]  = 1
    gt[mask == 170] = 2
    gt[mask == 254] = 3
    gt[mask == 340] = 4
    gt[mask == 255] = 0
    return gt
```

可视化调色板 `peotable_COLORMAP`（仅用于推理结果上色显示，不影响类别编码）：

```python
peotable_COLORMAP = [
    [70, 70, 70],    # 0 背景  -> 灰
    [255, 255, 0],   # 1 桌面  -> 黄
    [0, 85, 255],    # 2 戴口罩的人 -> 蓝
    [0, 170, 0],     # 3 地面  -> 绿
    [204, 43, 41],   # 4 不戴口罩的人 -> 红
]
```

### 3. 原始标注（json）

`json_det/*_det.json` 为检测任务的原始 JSON 标注，是 `tools/peojson2yolo.py` 生成 YOLO txt 的源数据。

## 文件对应关系

所有图片、检测标注、分割掩码、json 标注**以文件名（不含扩展名）一一对应**。例如：

```
2021-10-21 09-29-59_102_6120
```

这一 basename 同时存在于 `detdata/images/`、`detdata/labels/`(`.txt`)、`segimages/`、`seglabels/`(`.png`)、`json_det/`(`.json`) 中，可直接按文件名配对。

## 使用方式

本数据集配合多任务 YOLOv5 仓库使用（`train.py` / `detect.py` / `SegmentationDataset.py` / `models/yolov5s_city_seg.yaml`）。

`data/bdd_det_seg.yaml` 关键配置：

```yaml
train: ./dataset/detdata/images/train/
val:   ./dataset/detdata/images/val/
segtrain: ./dataset
segval:   ./dataset
nc: 2
names: ['mask', 'no_mask']
n_segcls: 5
```

训练示例：

```bash
pip uninstall wandb
python train.py \
  --data ./data/bdd_det_seg.yaml \
  --cfg  ./models/yolov5s_city_seg.yaml \
  --weights ./weights/yolov5s.pt \
  --batch-size 18 --epochs 200 --img-size 832
```

## 注意事项

1. **`dataset_extra/` 未接入训练主链路**：它是同一场景另一批次的原始导出（含 `json_det/json_seg/png/png_seg` 各 989 个文件，约 410 MB）。若需并入训练，请自行整理目录与 `data/bdd_det_seg.yaml` 配置。
2. **`video/1.mp4` 与训练无关**：仅用于 RTSP 推拉流部署（`main.py` / `main_new.py`）的演示素材。
3. **分割掩码通道**：务必按 `R+G` 数值解码类别，不要按单通道灰度或 BGR 颜色直接解读。
4. 检测类别在部分旧配置文件中曾写作 `['0','1']`，其实际语义为 `0=戴口罩 / 1=不带口罩`。

## License

CC BY 4.0。如用于研究或产品，请合理署名。
