YOLO训练及数据采集注意事项
1. 数据采集
1.1 数据量与多样性
-
足够量级:一般至少几百到几千张高质量标注图片,越复杂的任务需求越大。
-
场景多样:覆盖各种光照、角度、背景、遮挡、距离等,避免模型过拟合单一场景。
-
目标尺度变化:包含各种大小的目标,尤其YOLO对小目标识别敏感。
1.2 数据标注质量
-
框标注准确:框必须紧贴目标,避免过大或漏标。
-
类别一致:类别定义要明确且一致,避免标签混淆。
-
标签平衡:类别不平衡可能导致模型偏向主流类别。
1.3 数据增强(Data Augmentation)
-
常见的增强手段包括:
-
旋转、翻转
-
缩放、裁剪
-
颜色抖动(亮度、对比度、饱和度变化)
-
混合增强(如 Mosaic,CutMix,MixUp) — YOLOv4、YOLOv5、YOLOv8常用,显著提升泛化。
-
-
结合目标特性设计增强,比如交通场景考虑天气模拟。
2. 训练准备
2.1 数据预处理
-
归一化:输入图像通常归一化到 [0,1]。
-
尺寸统一:YOLO通常需要固定输入尺寸(如640×640),需合理调整图片大小且保持比例,避免变形。
-
标签格式:YOLO通常使用相对坐标格式(中心点x,y,宽w,高h,归一化到[0,1])。
2.2 模型初始化
-
预训练权重:使用COCO或ImageNet预训练权重作为起点,能显著加快收敛速度和提高精度。
-
冻结层数:初期可冻结部分层,仅训练后面层,后期再逐步解冻。
3. 训练过程注意点
3.1 超参数调节
-
学习率:关键参数,通常使用余弦退火、warm-up策略避免训练初期震荡。
-
批量大小:根据显存调整,过小会导致不稳定。
-
优化器:SGD动量或Adam常用,选择合适的优化器影响收敛。
-
损失权重:YOLO多任务损失(分类、定位、置信度),合理权重分配很重要。
3.2 正负样本平衡
-
防止正样本过少导致难收敛,或负样本过多导致泛化差。
-
可以采用Focal Loss减少易分类样本权重。
3.3 监控指标
-
除了loss,还需关注mAP(平均精度均值),特别是不同IoU阈值和各类别指标。
-
训练曲线平稳是收敛的表现,波动大需调整超参数。
4. 训练后的潜在改进点
4.1 标签清洗与样本难度排序
-
清理标注错误、模糊或异常样本。
-
根据难度对样本加权重,提升模型对困难样本的学习。
4.2 自定义数据增强策略
-
针对特定任务设计增强,避免破坏语义。
-
实验更多新颖增强手法(如Copy-Paste,AutoAugment等)。
4.3 网络结构调整
-
根据数据特性微调骨干网络或检测头。
-
轻量化网络如YOLOv8-nano,适合资源有限场景。
-
加强对小目标的检测(调整anchor、增加特征层)。
4.4 迁移学习与多任务训练
-
利用相关任务数据(如语义分割、关键点检测)联合训练,提高特征表达能力。
4.5 后处理优化
-
NMS(非极大值抑制)阈值调节,避免漏检和重复检测。
-
尝试软NMS、DIoU-NMS等更先进方法。
5. 工程实战建议
-
持续收集和标注难例,不断扩充训练集,尤其模型弱点部分。
-
训练日志和可视化,方便分析模型弱点。
-
分阶段训练,先粗训练,再细调。
-
多次交叉验证,防止过拟合。
-
尝试不同超参数组合,用自动调参工具(如Optuna)提升效率。