jjsos_JJdetection/开始训练检测仪.md

248 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 🚀 开始训练检测仪数据集
## 📊 数据集信息
**数据集路径**: `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. **批次大小**: 8MPS/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加速