衣物类目标检测是电商视觉分拣、智能穿搭推荐、仓储自动化等领域的核心技术支撑,而高质量标注数据集是保障YOLOv8模型精度与泛化能力的关键。目前公开数据集普遍存在品类细分不足、标注精度参差不齐、场景同质化等问题,难以适配实际项目需求。

本次整理15组聚焦衣物、鞋子、T恤等细分品类的高质量数据集,全部已完成YOLOv8格式标注,涵盖运动、休闲、女装等多风格场景,可直接导入模型训练。同时附上数据集加载、标签管理实操代码,助力开发者快速落地项目。
一、数据集核心参数(技术适配版)
所有数据集均为JPG图片格式,标注文件符合YOLOv8标准(txt格式,含边界框与类别标签),标注精度≥95%,可直接用于模型训练与验证。
| 序号 | 数据集名称 | 核心规格 | 标注信息 | 适用场景 | |
|---|---|---|---|---|---|
| 1 | 运动裤、短裤检测数据集 | 915张 | YOLOv8格式,2类标签,精度95% | 运动服饰分拣、户外场景检测 | |
| 2 | 通用鞋子检测数据集 | 3427张 | YOLOv8格式,含运动鞋/皮鞋等5类标签 | 电商鞋子品类识别、智能鞋柜 | |
| 3 | 牛仔裤、运动裤、休闲裤细分数据集 | 4117张 | YOLOv8格式,3类裤子标签,精度96% | 服饰风格分类、仓储分拣 | |
| 4 | 多款式运动裤数据集 | 4008张 | YOLOv8格式,含速干/针织等4类标签 | 运动服饰专项检测、品牌质检 | |
| 5 | 名牌运动鞋检测数据集 | 3600张 | YOLOv8格式,品牌+款式双标签 | 奢侈品鉴别、品牌电商推荐 | |
| 6 | 多角度运动鞋数据集 | 3913张 | YOLOv8格式,覆盖前/侧/后3个角度 | 3D穿搭建模、鞋子特征提取 | |
| 7 | 洞洞鞋、帆布鞋、运动鞋分类数据集 | 3999张 | YOLOv8格式,3类鞋型标签,精度96% | 休闲鞋品类分拣、穿搭推荐 | |
| 8 | 多品类鞋子综合数据集 | 4016张 | YOLOv8格式,含8类常见鞋型 | 通用服饰检测模型训练、数据集扩充 | |
| 9 | 鞋子多视角检测数据集 | 1566张 | YOLOv8格式,含俯视/仰视等多角度样本 | 复杂场景鞋子识别、机器人视觉抓取 | |
| 10 | 折叠多尺码T恤数据集 | 1687张 | YOLOv8格式,尺码+T恤双标签 | 仓储衣物尺码分拣、电商打包自动化 | |
| 11 | 折叠多颜色衬衣、T恤数据集 | 3298张 | YOLOv8格式,6类颜色标签,精度97% | 衣物颜色分类、个性化穿搭 | |
| 12 | 女装裙子、秋衣、半袖数据集 | 1172张 | YOLOv8格式,3类女装标签 | 女装品类检测、时尚穿搭推荐 | |
| 13 | 多图形图案T恤数据集 | 1461张 | YOLOv8格式,含卡通/条纹等5类图案标签 | T恤图案分类、定制化服饰推荐 | |
| 14 | 半袖专项深度学习数据集 | 594张 | YOLOv8格式,纯色/印花半袖分类 | 夏季服饰检测、小样本模型训练 | |
| 15 | T恤与鞋子组合数据集 | 5794张 | YOLOv8格式,双品类联合标注 | 服饰搭配检测、电商套装识别 |
提示:第15组为双品类组合数据集,可用于多目标联合检测模型训练,弥补单一品类数据集的场景局限性。
二、技术实操:数据集加载与标签管理(Python代码)
1. YOLOv8数据集加载与格式验证
适用于所有已标注数据集,快速验证标注格式是否合规,避免训练报错。
from ultralytics import YOLO
import yaml
import os
# 1. 编写数据集配置文件(clothes_data.yaml)
data_config = {
"path": "./clothes_dataset", # 数据集根目录
"train": "images/train", # 训练集图片路径
"val": "images/val", # 验证集图片路径
"nc": 20, # 类别总数(根据实际数据集调整)
"names": ["运动裤", "短裤", "牛仔裤", "休闲裤", "运动鞋",
"帆布鞋", "洞洞鞋", "T恤", "衬衣", "裙子",
"秋衣", "半袖", "皮鞋", "针织运动裤", "速干运动裤",
"卡通T恤", "条纹T恤", "纯色T恤", "折叠T恤", "名牌运动鞋"] # 类别名称
}
# 保存配置文件
with open("clothes_data.yaml", "w", encoding="utf-8") as f:
yaml.dump(data_config, f, allow_unicode=True)
# 2. 加载预训练模型并验证数据集
model = YOLO("yolov8n.pt")
# 格式验证(仅验证不训练,imgsz与数据集分辨率适配)
model.val(data="clothes_data.yaml", imgsz=640, batch=16, verbose=True)
2. 标签统一与数据增强(适配衣物数据集特点)
衣物数据集易受姿态、光照影响,补充数据增强代码提升模型泛化能力,同时统一标签格式。
import albumentations as A
import cv2
import numpy as np
import glob
# 数据增强 pipeline(针对衣物姿态、光照变化优化)
transform = A.Compose([
A.RandomResizedCrop(height=640, width=640, scale=(0.7, 1.0)), # 随机裁剪适配模型输入
A.HorizontalFlip(p=0.5), # 水平翻转(衣物左右对称,不影响识别)
A.RandomBrightnessContrast(p=0.3, brightness_limit=(-0.2, 0.2)), # 亮度调整适配不同光照
A.GaussNoise(p=0.2), # 加噪提升抗干扰性
], bbox_params=A.BboxParams(format="yolov8", label_fields=["class_labels"]))
# 批量处理数据集并应用增强
def process_dataset(img_dir, label_dir, save_dir):
os.makedirs(os.path.join(save_dir, "images"), exist_ok=True)
os.makedirs(os.path.join(save_dir, "labels"), exist_ok=True)
img_paths = glob.glob(os.path.join(img_dir, "*.jpg"))
for img_path in img_paths:
img_name = os.path.basename(img_path)
label_path = os.path.join(label_dir, img_name.replace(".jpg", ".txt"))
# 读取图片和标签
img = cv2.imread(img_path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
with open(label_path, "r") as f:
labels = f.readlines()
# 解析YOLOv8标签(x_center, y_center, w, h, class_id)
bboxes = []
class_labels = []
for label in labels:
xc, yc, w, h, cid = map(float, label.strip().split())
# 转换为左上角、右下角坐标(适配增强工具)
x1 = (xc - w/2) * img.shape[1]
y1 = (yc - h/2) * img.shape[0]
x2 = (xc + w/2) * img.shape[1]
y2 = (yc + h/2) * img.shape[0]
bboxes.append([x1, y1, x2, y2])
class_labels.append(int(cid))
# 应用增强
augmented = transform(image=img, bboxes=bboxes, class_labels=class_labels)
aug_img = augmented["image"]
aug_bboxes = augmented["bboxes"]
aug_labels = augmented["class_labels"]
# 转换回YOLOv8格式并保存
aug_img = cv2.cvtColor(aug_img, cv2.COLOR_RGB2BGR)
cv2.imwrite(os.path.join(save_dir, "images", img_name), aug_img)
with open(os.path.join(save_dir, "labels", img_name.replace(".jpg", ".txt")), "w") as f:
for bbox, cid in zip(aug_bboxes, aug_labels):
x1, y1, x2, y2 = bbox
# 归一化
xc = (x1 + x2) / 2 / aug_img.shape[1]
yc = (y1 + y2) / 2 / aug_img.shape[0]
w = (x2 - x1) / aug_img.shape[1]
h = (y2 - y1) / aug_img.shape[0]
f.write(f"{cid} {xc:.6f} {yc:.6f} {w:.6f} {h:.6f}\n")
# 调用函数处理(替换为自己的数据集路径)
process_dataset("./raw_images", "./raw_labels", "./processed_dataset")
3. 训练调参建议(按数据集规模适配)
-
小样本数据集(如594张半袖数据、1172张女装数据):采用迁移学习,冻结YOLOv8主干网络前10层,学习率设为0.001,迭代50轮,batch_size=8,搭配早停机制(patience=5)避免过拟合。
-
中大规模数据集(如4117张裤子数据、5794张T恤鞋子组合数据):可解冻部分主干网络,学习率设为0.01,迭代80-100轮,batch_size=16,使用余弦退火学习率调度器优化训练效果。
-
多品类数据集:训练前检查类别平衡度,若某类样本过少,可通过SMOTE算法或复制样本扩充,确保类别分布均匀。
三、后续分享计划
后续将聚焦衣物类目标检测的落地痛点,补充以下内容:1. 衣物姿态检测、褶皱识别数据集;2. YOLOv8模型轻量化部署教程(TensorRT/ONNX);3. 衣物检测模型调参实战案例(针对小样本、复杂场景优化)。
如需获取数据集详细获取方式,请关注博主,自动获取对应资源查询指南。