这是一个基于 YOLOv5 的乒乓球检测系统,支持数据采集、标注和模型训练。特别优化了在 Apple Silicon (M1/M2) Mac 上的训练性能。
python的数据标注工具prepare_dataset.py文件。
-
数据采集
- 支持摄像头实时采集
- 自动编号和保存
- 支持多种图像格式
-
数据标注
- 手动标注工具
- 自动标注功能
- 实时预览和编辑
- 支持标注验证
-
数据增强
- 自动数据增强
- 多种增强方式
- 自动保存增强结果
-
模型训练
- 支持 Apple Silicon GPU 加速
- 自动内存优化
- 训练进度可视化
- 支持断点续训
- Python 3.8 或更高版本
- PyTorch 2.0 或更高版本
- OpenCV
- 摄像头(用于数据采集)
- 足够的存储空间(建议 10GB 以上)
- 克隆仓库:
git clone [https://github.com/Orlando-Lin/tabletennis_yolov5.git]
cd [项目目录]- 安装依赖:
pip install -r requirements.txt- 安装 PyTorch(Mac M1/M2):
pip install --upgrade torch torchvision torchaudiopython prepare_dataset.py程序提供以下操作选项:
- 从摄像头捕获
- 自动标注
- 手动标注
- 数据增强
- 转换 VOC 数据集
- 执行所有操作
- 运行程序选择选项 1
- 按 's' 保存图像
- 按 'q' 退出采集
- 运行程序选择选项 3
- 使用鼠标拖动绘制标注框
- 使用界面按钮进行操作:
- Save: 保存当前标注
- Clear: 清除当前标注
- Prev/Next: 切换图片
- Delete: 删除标注
python train_model.py训练过程会自动:
- 选择合适的设备(MPS/CPU)
- 优化内存使用
- 显示训练进度
- 保存训练结果
tensorboard --logdir yolov5/runs/train访问 http://localhost:6006 查看训练曲线
.
├── prepare_dataset.py # 数据准备主程序
├── train_model.py # 模型训练程序
├── dataset/ # 数据集目录
│ ├── images/ # 图像文件
│ └── labels/ # 标注文件
├── yolov5/ # YOLOv5 目录
└── requirements.txt # 依赖列表
-
数据采集
- 确保光线充足
- 保持摄像头稳定
- 采集不同角度的图像
-
标注要求
- 标注框要紧贴乒乓球边缘
- 确保标注准确性
- 检查标注质量
-
训练优化
- Mac 用户建议使用 MPS 加速
- 根据内存大小调整批次大小
- 适当调整图像尺寸
-
常见问题
- 如果出现内存不足,尝试减小批次大小
- 如果训练速度慢,可以减小图像尺寸
- 如果标注不准确,增加训练轮数
- v1.0.0
- 初始版本发布
- 支持基本功能
- 添加 Mac M1/M2 支持
欢迎提交 Issue 和 Pull Request 来改进项目。
本项目采用 MIT 许可证。
如有问题,请通过以下方式联系:
- Email: [Cao_mouiller@163.com]
- GitHub: [https://github.com/Orlando-Lin]
- gitee: [https://gitee.com/orlando_lin]