本文介绍一个专门用于识别羽毛球运动员、裁判和羽毛球的计算机视觉数据集。该数据集包含2879张高质量标注图片在YOLO系列模型上测试识别率达到84.4%。数据集支持多种格式YOLO标注格式、COCO JSON格式和PASCAL VOC XML格式方便不同框架使用。文末还提供了完整的模型训练代码帮助读者快速上手。数据集特点高质量标注每张图片都经过精细标注边界框准确多格式支持YOLO、COCO、VOC三种主流格式真实场景包含比赛现场、训练场景等多种环境数据增强包含模糊图片作为正样本提升模型鲁棒性模型训练指标参数模型训练图数据集拆分与预处理数据分布总图数2879张训练集2526张约87.7%验证集236张约8.2%测试集117张约4.1%预处理流程自动定向自动校正图片方向确保统一尺寸调整统一拉伸到640×640像素适配YOLO等主流检测模型数据增强策略当前配置无额外增强保持原始数据分布建议增强可根据需要添加旋转、裁剪、色彩抖动等应用场景说明这种标准化的拆分比例约8:1:1适用于大多数目标检测任务。训练集充足确保模型充分学习特征验证集用于调参防止过拟合测试集提供最终性能评估。640×640的输入尺寸平衡了计算效率和检测精度适合部署在边缘设备或云端服务器。数据集标签说明数据集包含3个类别覆盖网球比赛中的关键元素# 类别标签英文labels[referee,tennis ball,player]英文标签中文翻译说明referee裁判比赛中的裁判人员tennis ball网球比赛用球原文误写为羽毛球实际为网球player球员/选手网球运动员应用场景扩展体育赛事分析自动统计球员位置、击球次数、裁判判罚频率智能裁判辅助辅助裁判判断球是否出界、球员是否违规训练质量评估分析运动员动作、球路轨迹提供训练建议赛事直播增强实时标注球员和球的位置提升观赛体验场馆安防监控识别异常行为确保比赛安全进行数据集图片和标注信息示例数据质量说明数据集中包含部分模糊图片这并非数据缺陷而是精心设计的数据增强策略。在真实体育场景中快速运动、相机抖动、光线变化都会导致图像模糊因此包含模糊样本能显著提升模型在实际应用中的表现。模糊图片的三大优势提升模型鲁棒性现实体育场景中运动员快速移动、相机跟拍、光线变化都会导致运动模糊和对焦不准。在训练集中引入模糊样本迫使模型学习更本质的语义特征如人体姿态、球体形状而非过度依赖清晰的边缘细节。这显著提升了模型在复杂成像条件下的识别稳定性。模拟真实世界噪声体育场馆的监控摄像头、手持摄影设备在低光照或快速变焦时极易产生模糊。包含此类图片让模型提前适应真实噪声减少在实际部署时因图像质量下降导致的性能衰减。例如在夜间比赛或室内场馆中模型仍能保持较高识别率。防止模型过拟合如果训练集全是高清摆拍图片模型容易记住特定场景下的干净特征对新环境泛化能力差。模糊图片作为有效的正则化手段增加了数据分布的多样性防止模型过拟合到有限的清晰样本上提升跨场景迁移能力。实际应用价值移动端部署手机APP实时识别网球比赛即使拍摄抖动也能准确标注无人机航拍高空拍摄的模糊图像仍能识别球员和球的位置老旧监控系统低分辨率摄像头也能用于赛事分析实时转播高速运动场景下保持稳定的目标跟踪数据集下载yolo26,yolo v12,yolo v11,yolo v9,yolo v8,yolo v7,coco json,pascal voc xml:下载地址YOLO模型训练下载数据集之后解压到当前文件夹然后将 我的仓库 https://gitcode.com/pbymw8iwm/YOLOProject 里的训练模型脚本复制到文件夹下假设你使用的是yolov8来训练你就用python train_yolov8.py模型验证测试情况验证测试代码#需要安装pip install ultralyticsfromultralyticsimportYOLOimportcv2# 1. 加载YOLO模型 # 自动下载预训练模型(yolov8n最轻量快速)也可换 yolov8s/m/l/xmodelYOLO(best.pt)# 2. 推理配置 image_path326_jpg.rf.8ad64cc0668df32c4e5f59b50e899e9c.jpg# 你的图片路径save_resultTrue# 是否保存标注后的图# 3. 执行推理 resultsmodel.predict(sourceimage_path,conf0.01,# 置信度阈值低于该值忽略saveFalse,# 关闭默认保存自定义保存verboseFalse# 关闭冗余日志)# 4. 解析结果目标区域 标注信息 print(*50)print(YOLO 推理结果目标区域 标注信息)print(*50)# 获取图片用于绘制框imgcv2.imread(image_path)# 遍历所有检测目标foridx,resultinenumerate(results):boxesresult.boxes# 所有检测框forboxinboxes:# 提取目标区域坐标 # xyxy: 左上角x, 左上角y, 右下角x, 右下角yx1,y1,x2,y2box.xyxy[0].cpu().numpy()# 宽高wx2-x1 hy2-y1# 提取标注信息 cls_idint(box.cls[0])# 类别IDcls_namemodel.names[cls_id]# 类别名称conffloat(box.conf[0])# 置信度# 打印信息 print(f目标{idx1}:)print(f 标注类别{cls_name})print(f 置信度{conf:.2f})print(f 目标区域坐标)print(f 左上角 ({x1:.1f},{y1:.1f}))print(f 右下角 ({x2:.1f},{y2:.1f}))print(f 宽×高{w:.1f}×{h:.1f})print(-*30)# 在图片上绘制检测框 cv2.rectangle(img,(int(x1),int(y1)),(int(x2),int(y2)),(0,255,0),2)cv2.putText(img,f{cls_name}{conf:.2f},(int(x1),int(y1)-10),cv2.FONT_HERSHEY_SIMPLEX,0.5,(0,255,0),2)# 5. 保存/显示结果 ifsave_result:cv2.imwrite(yolo_result.jpg,img)print(✅ 标注图片已保存为yolo_result.jpg)# 显示图片可选cv2.imshow(YOLO Result,img)#cv2.waitKey(0)#cv2.destroyAllWindows()