
简介行人实例分割数据集面向计算机视觉开发者、算法工程师及高校研究人员聚焦行人目标的精细化识别与轮廓分割任务。资源共2000个文件以1226个txt标注文件、772张jpg图像为主另含1个yaml配置文件与1份docx说明文档压缩包约96.18MB原生YOLO实例分割格式可直接对接YOLOv5、YOLOv8等主流框架。数据划分为训练集1131张、验证集48张、测试集47张每个行人实例包含50余个多边形轮廓点能精确捕捉复杂姿态与遮挡情况并覆盖监控、航拍等多视角及不同光照、天气条件。该数据集可服务于智能安防中的异常行为检测与人群密度分析、自动驾驶感知系统的行人轮廓分割、服务机器人与AR场景的实时人物融合也可作为实例分割算法基准测试及行人重识别的前期处理支持。目前已有277人学习下载适合需要快速开展行人分割实验与多任务迁移的读者参考使用。1. 行人实例分割数据集1131 张训练图能跑出什么名堂如果你正在做智能安防、自动驾驶感知或者服务机器人方向的项目大概率绕不开一个核心问题去哪里找一份标注质量过硬、格式又不用二次转换的行人实例分割数据。我最近拆了一份名为「行人实例分割数据集」的资源包训练集 1131 张、验证集 48 张、测试集 47 张全部是 YOLO 实例分割格式每个行人实例带 50 个以上的多边形轮廓点。这个量级不算大但对于验证算法可行性、做行业数据集的基准测试、或者给行人重识别任务做前期预处理已经够用了。它适合两类人一是想快速跑通实例分割训练流程的工程师二是需要一份干净行人数据做迁移学习起点的研究者。下面我从数据拆包、格式解析、训练配置到踩坑排查完整走一遍。2. 拆开数据包YOLO 实例分割格式到底长什么样2.1 目录结构与文件命名规律拿到压缩包解压后你会看到图片文件和对应的标注文件混在一起或者按 images/labels 分目录存放。从项目正文给出的文件名来看图片命名有几个明显特征一部分是man-2753309_640_jpg.rf.14351e36d8e0202f3c8632dde3545b7c.jpg这种带rf.哈希后缀的这是 Roboflow 平台导出时的典型命名方式另一部分是FudanPed00010_png.rf.24bc61111192b90017b72ae025a6eaaa.jpg和PennPed00092_png.rf.d747021a6d529c4502e5226340da2f36.jpg说明数据混合了 FudanPed 和 PennPed 两个经典行人数据集的样本。这种混合来源意味着场景多样性有保障但也意味着你在做类别映射时要确认标注一致性。常见做法是解压后先跑一遍目录统计确认图片和标注文件一一对应# 统计图片数量和标注数量 find ./dataset -name *.jpg -o -name *.png | wc -l find ./dataset -name *.txt | wc -l # 检查是否有图片缺失对应标注 for img in $(find ./dataset/images -name *.jpg); do base$(basename $img .jpg) if [ ! -f ./dataset/labels/${base}.txt ]; then echo 缺失标注: $img fi done这段脚本的逻辑很直接先分别统计图片和标注文件总数理论上两者应该相等。然后逐个检查每张图片是否有同名 txt 标注文件输出缺失项。参数上注意图片扩展名可能是 jpg 或 png 混合脚本里要同时覆盖。如果发现缺失大概率是解压不完整或者原始数据就有遗漏需要重新下载或手动剔除。2.2 YOLO 实例分割标注格式逐字段解析YOLO 实例分割的标注文件和普通检测格式不同每行代表一个实例格式是class-index x1 y1 x2 y2 ... xn yn其中坐标是归一化到 0-1 之间的多边形轮廓点。以行人实例为例一行可能有 50 多个点对这就是摘要里说的「50 轮廓点标注」。我一般会写个小脚本先可视化几条标注确认坐标没跑偏import numpy as np import cv2 def visualize_annotation(img_path, label_path): img cv2.imread(img_path) h, w img.shape[:2] with open(label_path, r) as f: for line in f: parts line.strip().split() class_id int(parts[0]) coords np.array([float(x) for x in parts[1:]]).reshape(-1, 2) # 反归一化到像素坐标 coords[:, 0] * w coords[:, 1] * h pts coords.astype(np.int32).reshape((-1, 1, 2)) cv2.polylines(img, [pts], isClosedTrue, color(0, 255, 0), thickness2) cv2.imwrite(vis_output.jpg, img) visualize_annotation(./dataset/images/FudanPed00010_png.rf.24bc61111192b90017b72ae025a6eaaa.jpg, ./dataset/labels/FudanPed00010_png.rf.24bc61111192b90017b72ae025a6eaaa.txt)逻辑说明读取图片获取宽高然后逐行解析标注文件。parts[0]是类别索引这里只有 Person 一类所以通常是 0。后面的坐标两两一组先反归一化乘回像素尺寸再用cv2.polylines画闭合多边形。参数上isClosedTrue保证轮廓闭合thickness2方便肉眼观察。跑完打开vis_output.jpg如果轮廓贴合行人边缘说明标注没问题如果轮廓乱飞可能是归一化坐标被误读成了绝对坐标。2.3 训练/验证/测试集划分的验证摘要里写得很清楚训练集 1131 张、验证集 48 张、测试集 47 张。这个划分比例大概是 92:4:4验证集和测试集偏小。对于快速验证没问题但如果你要做严格的模型调优48 张验证集可能不够稳定。我一般会先确认划分文件是否存在# 假设数据集中有 train.txt / val.txt / test.txt wc -l ./dataset/train.txt ./dataset/val.txt ./dataset/test.txt如果资源包里没有现成的划分文件你需要自己按 8:1:1 重新分。注意保持同一视频序列的帧不要跨集分布否则验证集精度会虚高。这个坑后面会细说。3. 用 YOLOv8 跑通训练配置文件与参数怎么设3.1 数据集 YAML 配置文件的写法YOLOv8 训练实例分割任务需要一个 dataset.yaml 文件指定路径、类别数和类别名。针对这份行人数据集配置如下# person_seg.yaml path: /home/user/datasets/person_seg # 数据集根目录 train: images/train # 训练集图片相对路径 val: images/val # 验证集图片相对路径 test: images/test # 测试集图片相对路径 nc: 1 # 类别数只有 Person 一类 names: 0: person # 类别名称逻辑说明path是根目录train/val/test是相对于根目录的子路径。YOLOv8 会自动在对应路径下找同名的 labels 文件夹读取标注。nc: 1表示单类别names字典的键必须从 0 开始。常见错误是路径写成绝对路径但没加引号或者 labels 文件夹命名不一致导致找不到标注。3.2 训练命令与关键参数解读配置文件准备好后直接用 CLI 启动训练yolo segment train \ dataperson_seg.yaml \ modelyolov8n-seg.pt \ epochs100 \ imgsz640 \ batch16 \ lr00.01 \ patience20 \ projectruns/segment \ nameperson_exp参数逐个说modelyolov8n-seg.pt用的是 nano 版分割模型参数量小、训练快适合先跑通流程如果精度不够再换yolov8s-seg.pt或yolov8m-seg.pt。epochs100配合patience20表示 20 轮没有提升就早停避免过拟合。imgsz640是输入分辨率和原始图片的 640 宽度一致不需要额外缩放。batch16在 8GB 显存上基本能跑如果 OOM 就降到 8。lr00.01是初始学习率YOLOv8 默认会用余弦退火调度。训练过程中重点看三个指标box_loss和seg_loss是否稳定下降mask mAP50是否在上升。如果 seg_loss 震荡厉害可能是学习率偏大或者 batch 太小导致梯度噪声大。3.3 推理验证与结果解读训练完成后用验证集跑一遍推理确认模型实际效果yolo segment predict \ modelruns/segment/person_exp/weights/best.pt \ source./dataset/images/test \ conf0.25 \ saveTrue \ save_txtTrueconf0.25是置信度阈值低于这个值的检测框会被过滤。save_txtTrue会把预测结果保存成 YOLO 格式的 txt方便后续做定量对比。推理完打开输出目录重点看两类问题一是漏检行人密集区域有没有整片没框出来二是轮廓贴合度多边形是否紧贴人体边缘。如果轮廓明显偏大或偏小可能是训练轮次不够或者标注本身有偏差。4. 避坑与排查行人实例分割训练中的五个血泪教训4.1 验证集 mAP 虚高但测试集崩了现象训练日志里 mask mAP50 到了 0.85但拿测试集一跑只有 0.5 出头。原因验证集和训练集来自同一视频序列的相邻帧画面几乎一样模型相当于在「背答案」。解决重新划分数据集时按视频序列或场景分组确保同一场景的图片只出现在一个集合里。如果原始数据没有序列信息至少按图片哈希前缀分组避免FudanPed00010和FudanPed00012分到不同集合。4.2 标注坐标归一化基准不一致现象可视化时轮廓整体偏移有的偏左上有的偏右下。原因部分标注文件用的是绝对像素坐标另一部分用的是归一化坐标混在一起训练导致模型学乱。解决写脚本检查所有标注文件的最大坐标值如果超过 1.0 说明是绝对坐标需要除以图片宽高做归一化。统一之后再重新训练。4.3 单类别数据集误设 nc 导致训练报错现象启动训练时报AssertionError: nc ! len(names)。原因dataset.yaml 里nc写成了 2 或更多但names里只有一个 person。解决确认nc等于names字典的键值对数量。这份数据集只有 Person 一类nc: 1不能多写。4.4 图片格式混合导致读取失败现象训练中途报cv2.error或图片读取为空。原因数据集中 jpg 和 png 混用某些 png 带透明通道YOLOv8 默认按三通道读取时出错。解决统一转成 jpg 格式或者用 PIL 读取时强制转 RGB。批量转换命令mogrify -format jpg -background white -alpha remove ./dataset/images/*.png4.5 小目标行人轮廓点太少导致分割质量差现象远处的小尺寸行人分割 mask 几乎是个点IoU 很低。原因原图 640 宽度下远处行人可能只有 20x40 像素50 个轮廓点挤在这么小的区域里归一化后精度损失严重。解决训练时把imgsz提到 1024 或 1280让模型看到更多细节或者在数据增强里减少缩放幅度避免小目标进一步变小。5. 进阶技巧用这份数据做迁移学习和多任务适配5.1 从实例分割迁移到目标检测和姿态估计这份数据原生是 YOLO 实例分割格式但你可以低成本迁移到其他任务。做目标检测时只需要把多边形标注转成外接矩形框import numpy as np def seg_to_bbox(label_path, output_path): with open(label_path, r) as f_in, open(output_path, w) as f_out: for line in f_in: parts line.strip().split() class_id parts[0] coords np.array([float(x) for x in parts[1:]]).reshape(-1, 2) x_min, y_min coords.min(axis0) x_max, y_max coords.max(axis0) # 转成 YOLO 检测格式class cx cy w h cx (x_min x_max) / 2 cy (y_min y_max) / 2 w x_max - x_min h y_max - y_min f_out.write(f{class_id} {cx:.6f} {cy:.6f} {w:.6f} {h:.6f}\n)逻辑说明读取每行多边形坐标取 min/max 得到外接矩形再转成 YOLO 检测格式的中心点加宽高。参数上保留 6 位小数足够精度。这个转换脚本我一般会批量跑完整个数据集然后直接用 YOLOv8 的 detect 模式训练省去重新标注的成本。5.2 用预训练权重加速收敛1131 张训练图不算多从零训练容易过拟合。我一般会加载 COCO 预训练的yolov8s-seg.pt冻结 backbone 前几层先跑 10 个 epoch再解冻全量微调。这样 mask mAP50 通常能比从零训练高 5 到 8 个点。具体做法是在训练命令里加pretrainedyolov8s-seg.ptYOLOv8 会自动加载权重并跳过不匹配的类别头。5.3 验证模型是否真正学到了行人轮廓训练完不能只看 loss 曲线我习惯做一组消融验证把测试集图片做水平翻转、亮度调整、随机裁剪再跑推理看 mask 是否依然贴合。如果翻转后轮廓崩了说明模型学的是位置记忆而不是形状特征。这个验证方法比单看 mAP 更能暴露过拟合问题。从那以后我每次拿到新的实例分割数据集都强制先跑一遍标注可视化、再做一次划分泄漏检查、最后用增强后的测试集验证鲁棒性三步走完才敢说这份数据能用。希望帮到你。本文还有配套的精品资源点击获取