248 lines
5.5 KiB
Markdown
248 lines
5.5 KiB
Markdown
# 🚀 开始训练检测仪数据集
|
||
|
||
## 📊 数据集信息
|
||
|
||
**数据集路径**: `datasets/检测仪`
|
||
|
||
**数据统计**:
|
||
- ✅ **训练集**: 978 张图片 + 978 个标注文件
|
||
- ✅ **验证集**: 245 张图片 + 245 个标注文件
|
||
- ✅ **总计**: 1223 张图片(完美匹配)
|
||
- ✅ **类别数**: 6 个
|
||
|
||
**类别列表**:
|
||
1. `da_dian_xian` - 搭电线
|
||
2. `tuo_che_shang_you_che` - 拖车上有车
|
||
3. `yi_biao_pan` - 仪表盘
|
||
4. `lun_tai` - 轮胎
|
||
5. `ping_an_ma_jia` - 平安马甲
|
||
6. `jian_ce_yi` - 检测仪
|
||
|
||
---
|
||
|
||
## ✅ 训练配置
|
||
|
||
训练脚本已优化,配置如下:
|
||
|
||
```python
|
||
数据集: datasets/检测仪/data.yaml
|
||
模型: yolov8n-seg.pt
|
||
训练轮数: 150轮
|
||
批次大小: 8
|
||
图片尺寸: 640
|
||
设备: 自动检测(MPS/GPU/CPU)
|
||
```
|
||
|
||
**说明**:
|
||
- 脚本会自动检测并使用最佳设备(MPS > GPU > CPU)
|
||
- 检测到你的系统有 **Apple Silicon GPU (MPS)**,会自动使用加速训练
|
||
|
||
---
|
||
|
||
## 🚀 开始训练
|
||
|
||
### 方法一:直接运行(推荐)
|
||
|
||
训练脚本已经配置好,直接运行:
|
||
|
||
```bash
|
||
python train_segmentation.py
|
||
```
|
||
|
||
### 方法二:自定义参数
|
||
|
||
如果需要调整,修改 `train_segmentation.py` 的 `main()` 函数:
|
||
|
||
```python
|
||
train_segmentation_model(
|
||
dataset_path="datasets/检测仪/data.yaml",
|
||
model_name="yolov8n-seg.pt",
|
||
epochs=150, # 可以调整训练轮数
|
||
batch=8, # 可以调整批次大小
|
||
imgsz=640, # 可以改为416更快
|
||
device="cpu" # 会自动检测MPS/GPU
|
||
)
|
||
```
|
||
|
||
---
|
||
|
||
## ⏱️ 训练时间估算
|
||
|
||
| 设备 | 预计训练时间 |
|
||
|------|------------|
|
||
| **MPS (Apple Silicon)** | **2-4 小时** ⚡ |
|
||
| CPU | 8-15 小时 |
|
||
| GPU (NVIDIA) | 0.5-2 小时 |
|
||
|
||
**你的系统**: 检测到 MPS,预计 **2-4 小时** 完成训练
|
||
|
||
---
|
||
|
||
## 📋 训练过程说明
|
||
|
||
### 1. 训练开始
|
||
|
||
运行后会看到:
|
||
```
|
||
加载模型: yolov8n-seg.pt
|
||
开始训练分割模型...
|
||
数据集: datasets/检测仪/data.yaml
|
||
训练轮数: 150
|
||
批次大小: 8
|
||
图片尺寸: 640
|
||
设备: cpu
|
||
✓ 检测到Apple Silicon GPU,使用MPS加速训练
|
||
--------------------------------------------------
|
||
```
|
||
|
||
### 2. 训练进度
|
||
|
||
训练过程中会显示:
|
||
- 每个epoch的损失值
|
||
- 训练进度条
|
||
- 预计剩余时间
|
||
|
||
### 3. 训练完成
|
||
|
||
训练完成后会显示:
|
||
```
|
||
训练完成!
|
||
模型保存在: runs/segment/train/weights/best.pt
|
||
```
|
||
|
||
---
|
||
|
||
## 📍 训练结果位置
|
||
|
||
训练完成后,模型保存在:
|
||
```
|
||
runs/segment/train/weights/
|
||
├── best.pt # 最佳模型(推荐使用)⭐
|
||
└── last.pt # 最后一轮的模型
|
||
```
|
||
|
||
训练日志和可视化:
|
||
```
|
||
runs/segment/train/
|
||
├── results.png # 训练曲线图
|
||
├── confusion_matrix.png # 混淆矩阵
|
||
├── labels.jpg # 标注可视化
|
||
└── ...
|
||
```
|
||
|
||
---
|
||
|
||
## 🔍 训练前检查(可选)
|
||
|
||
### 1. 验证数据完整性
|
||
|
||
```bash
|
||
# 检查训练集
|
||
python check_and_clean_images.py datasets/检测仪/train/images datasets/检测仪/train/labels
|
||
|
||
# 检查验证集
|
||
python check_and_clean_images.py datasets/检测仪/val/images datasets/检测仪/val/labels
|
||
```
|
||
|
||
### 2. 验证标注格式
|
||
|
||
```bash
|
||
python verify_seg_labels.py datasets/检测仪/train/labels datasets/检测仪/train/images
|
||
```
|
||
|
||
---
|
||
|
||
## 💡 训练建议
|
||
|
||
### 对于1223张照片的数据集:
|
||
|
||
1. **训练轮数**: 150轮足够(配合早停机制)
|
||
2. **批次大小**: 8(MPS/CPU友好)
|
||
3. **图片尺寸**: 640(平衡速度和精度)
|
||
4. **设备**: 自动使用MPS加速
|
||
|
||
### 如果训练速度太慢:
|
||
|
||
**优化方案**:
|
||
```python
|
||
batch=4, # 减小batch
|
||
imgsz=416, # 减小图片尺寸(速度提升约2倍)
|
||
```
|
||
|
||
### 如果需要更高精度:
|
||
|
||
**优化方案**:
|
||
```python
|
||
model_name="yolov8s-seg.pt", # 使用更大的模型
|
||
epochs=200, # 增加训练轮数
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 数据集评估
|
||
|
||
### 优势
|
||
|
||
✅ **数据量充足** - 1223张是很好的规模
|
||
✅ **数据完整** - 所有图片都有标注(978+245完美匹配)
|
||
✅ **类别丰富** - 6个类别,覆盖多种场景
|
||
✅ **已分配好** - 训练集/验证集比例合理(80/20)
|
||
|
||
### 训练建议
|
||
|
||
1. **监控训练**: 观察损失曲线,如果不再下降可以提前停止
|
||
2. **保存检查点**: 训练过程中会自动保存最佳模型
|
||
3. **验证结果**: 训练完成后查看验证集准确率
|
||
|
||
---
|
||
|
||
## 🎯 快速开始
|
||
|
||
**一键训练**:
|
||
```bash
|
||
python train_segmentation.py
|
||
```
|
||
|
||
脚本会自动:
|
||
1. ✅ 检测并使用MPS加速(你的系统已检测到)
|
||
2. ✅ 使用优化的训练参数
|
||
3. ✅ 训练150轮(足够)
|
||
4. ✅ 保存最佳模型
|
||
|
||
---
|
||
|
||
## ❓ 常见问题
|
||
|
||
### Q: 978+245张照片够吗?
|
||
A: 完全够!1223张是很好的数据集规模,可以训练出高质量的模型。
|
||
|
||
### Q: 需要训练多久?
|
||
A: 使用MPS加速,预计 **2-4小时** 完成。
|
||
|
||
### Q: 训练轮数设置多少?
|
||
A: 建议150轮,如果50轮没有改善会自动停止(早停机制)。
|
||
|
||
### Q: 如何知道训练完成?
|
||
A: 训练完成后会显示:
|
||
```
|
||
训练完成!
|
||
模型保存在: runs/segment/train/weights/best.pt
|
||
```
|
||
|
||
### Q: 训练中断了怎么办?
|
||
A: 可以继续训练,YOLO支持断点续训。或者使用保存的 `last.pt` 继续。
|
||
|
||
---
|
||
|
||
## 📝 总结
|
||
|
||
✅ **数据集已准备好** - 978训练 + 245验证 = 1223张
|
||
✅ **配置已优化** - 训练脚本已配置好
|
||
✅ **设备已检测** - 自动使用MPS加速
|
||
✅ **可以直接训练** - 运行 `python train_segmentation.py` 即可
|
||
|
||
**开始训练吧!** 🚀
|
||
|
||
预计训练时间:**2-4小时**(使用MPS加速)
|
||
|