从环境搭建到基础实践的完整 YOLOv8 学习框架
本项目是 YOLOv8 阶段一学习项目,旨在帮助开发者快速搭建 YOLOv8 开发环境,掌握完整的训练工作流程。项目采用模块化设计,提供一键环境配置、训练、验证、测试、评估、导出等完整功能。
学习目标:
- 掌握 YOLOv8 环境搭建和配置
- 熟悉训练、验证、测试、评估完整流程
- 学会使用数据预处理工具
- 掌握可视化分析方法
- 了解模型导出和部署
- 一键环境配置: 自动检测 CUDA、安装依赖、验证环境
- 完整工作流程: 训练 → 验证 → 测试 → 评估 → 导出
- 数据预处理: 数据增强、格式转换、数据集划分
- 可视化分析: 训练曲线、混淆矩阵、检测结果展示
- 模型导出: ONNX、TensorRT、OpenVINO 等格式
- 配置驱动: YAML 配置文件,支持多实验管理
- 模块化设计: 易于扩展和定制
Windows:
# 双击运行
scripts\setup_env.batLinux/macOS:
# 添加执行权限
chmod +x scripts/setup_env.sh
# 运行安装脚本
./scripts/setup_env.shpython scripts/download_data.py --dataset coco128python scripts/quick_start.py# 训练
python src/trainer.py --config configs/train.yaml
# 验证
python src/validator.py --config configs/val.yaml
# 测试
python src/tester.py --config configs/test.yaml
# 评估
python src/evaluator.py --config configs/val.yamlYOLO_learning/
├── configs/ # 配置文件目录
│ ├── train.yaml # 训练配置
│ ├── val.yaml # 验证配置
│ ├── test.yaml # 测试配置
│ └── data/ # 数据集配置
│ ├── coco128.yaml # COCO128 数据集配置
│ └── custom.yaml # 自定义数据集模板
│
├── src/ # 源代码目录
│ ├── trainer.py # 训练器
│ ├── validator.py # 验证器
│ ├── tester.py # 测试器
│ ├── evaluator.py # 评估器
│ └── exporter.py # 导出器
│
├── tools/ # 工具目录
│ ├── data/ # 数据处理工具
│ │ ├── augment.py # 数据增强
│ │ ├── convert.py # 格式转换
│ │ └── split.py # 数据集划分
│ ├── visualization/ # 可视化工具
│ │ ├── curves.py # 训练曲线
│ │ ├── confusion.py # 混淆矩阵
│ │ └── detection.py # 检测结果
│ └── utils/ # 通用工具
│ ├── env_check.py # 环境检查
│ ├── logger.py # 日志管理
│ └── helpers.py # 辅助函数
│
├── scripts/ # 脚本目录
│ ├── setup_env.sh # Linux/macOS 环境配置脚本
│ ├── setup_env.bat # Windows 环境配置脚本
│ ├── quick_start.py # 快速开始脚本
│ └── download_data.py # 数据集下载脚本
│
├── examples/ # 示例目录
│ ├── train_example.py # 训练示例
│ ├── val_example.py # 验证示例
│ ├── test_example.py # 测试示例
│ └── export_example.py # 导出示例
│
├── docs/ # 文档目录
│ ├── README.md # 文档总索引(分类导航)
│ ├── getting-started/ # 入门上手
│ │ ├── installation.md # 安装指南
│ │ └── quickstart.md # 快速开始
│ ├── guides/ # 使用指南
│ │ └── data_preparation.md# 数据准备
│ ├── api/ # 接口参考
│ │ └── api_reference.md # API 文档
│ └── theory/ # 理论学习
│ └── yolo_theory.md # YOLOv8 理论知识
│
├── tests/ # 测试目录
│ ├── test_trainer.py # 训练器测试
│ ├── test_validator.py # 验证器测试
│ └── test_tools.py # 工具测试
│
├── data/ # 数据目录(gitignore)
├── runs/ # 运行输出目录(gitignore)
├── weights/ # 模型权重目录(gitignore)
│
├── .gitignore # Git 忽略文件
├── requirements.txt # Python 依赖列表
├── setup.py # 包安装配置
├── LICENSE # MIT 许可证
└── README.md # 项目说明文档
详见 文档中心 的按类导航,重点文档如下:
- 安装指南 - 详细的环境配置说明
- 快速开始 - 5 分钟上手教程
- 数据准备 - 数据集格式和准备方法
- API 文档 - 核心模块使用说明
- YOLOv8 理论知识 - 算法原理与公式推导
- 学习路线 - 完整的 YOLO 学习路径
from src.trainer import YOLOTrainer
# 创建训练器
trainer = YOLOTrainer("configs/train.yaml")
# 开始训练
metrics = trainer.train()
print(f"最佳模型: {metrics['best_model']}")from src.validator import YOLOValidator
# 创建验证器
validator = YOLOValidator("configs/val.yaml")
# 开始验证
metrics = validator.validate()
validator.print_metrics()from src.tester import YOLOTester
# 创建测试器
tester = YOLOTester("configs/test.yaml")
# 测试图片
results = tester.test_image("path/to/image.jpg")from src.exporter import YOLOExporter
# 创建导出器
exporter = YOLOExporter("configs/export.yaml")
# 导出 ONNX
exporter.export_onnx(imgsz=640, half=False, dynamic=True)更多示例请查看 examples/ 目录。
欢迎贡献!请随时提交 Issue 或 Pull Request。
- Fork 本仓库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交更改(
git commit -m 'Add some AmazingFeature') - 推送到分支(
git push origin feature/AmazingFeature) - 提交 Pull Request
本项目采用 MIT 许可证 —— 详见 LICENSE 文件
- Ultralytics 提供了优秀的 YOLO 框架
- Roboflow 提供了数据集托管和标注工具
- 所有数据集提供者和开源贡献者