多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

【毕设分享】YOLO数据增强越多越好?这几个坑要注意

【毕设分享】YOLO数据增强越多越好?这几个坑要注意 【毕设分享】YOLO数据增强越多越好这几个坑要注意图片太少就多做增强模型效果不好就把增强强度调大。不少同学训练YOLO时都会尝试翻转、旋转、亮度调整、Mosaic等方法。但训练结束后却发现图片变多了训练也更复杂了mAP反而下降了。问题可能在于增强后的目标已经不清晰、标签没有同步变化或者生成的图片偏离了实际应用场景。这篇文章从常见误区、任务选择和实验验证三个角度讲清楚数据增强应该怎么用。一、先了解数据增强有什么用数据增强是在训练图片上增加一定变化让模型接触到更多目标外观和场景组合。例如同一辆车可以出现在不同位置、不同尺度和不同亮度下。合理的增强有助于模型减少对固定背景、位置或光照的依赖。常见增强方式增强方式简单理解需要注意翻转将图片左右或上下翻转是否改变方向含义缩放、平移改变目标大小和位置小目标可能进一步缩小旋转改变图片中的目标方向旋转后标签需要同步更新亮度、颜色变化模拟部分外观变化不能破坏类别依赖的颜色特征模糊、噪声模拟部分成像干扰细小纹理可能消失Mosaic将多张图片拼接组合留意目标缩小、截断和上下文变化不同YOLO版本、任务和实现支持的增强方式可能不同不能默认所有方法都已开启。数据增强能够增加已有样本的变化但不能完全替代真实数据。例如将白天图片调暗并不等于获得了真实夜间数据。夜间还可能存在噪声、灯光反射、运动模糊等变化红外图像的外观也与普通彩色图像不同。二、这几个常见的坑要注意1. 认为增强越强效果越好适度变化能增加训练难度但过度变化可能直接破坏目标信息。增强过强的情况可能产生的问题图片过暗或过亮目标边缘和细节难以辨认模糊程度过大裂纹、划痕等细微特征消失缩放范围过大小目标缩小后只剩几个像素裁剪过多目标被严重截断多种强增强叠加目标外观与真实场景差异过大例如一条本来就很细的划痕经过缩小、模糊和亮度变化后可能已经看不出来但标签仍然要求模型检测它。因此调整强度之后要先查看增强样本。如果增强后的目标已经失去可辨认特征就需要重新检查增强设置与标签处理。2. 所有任务使用同一套增强增强是否合适与任务本身有关。例如普通车辆检测中的左右翻转可能是合理变化。箭头方向识别中的左右翻转可能改变类别。依赖颜色区分的目标强颜色扰动可能改变判断依据。固定安装方向的零件大角度旋转未必符合实际使用场景。对方向、颜色有明确语义的任务不能只改变图片而保持类别不变。同时也不是所有增强图都必须像真实照片一样自然。Mosaic本身就不是自然拍摄场景。更关键的是它是否保留有效目标信息、标签是否正确以及实验是否证明它有帮助。3. 图片变了标签没有同步这是自写增强脚本时特别容易出现的问题。图片变化标签需要怎样处理水平或垂直翻转更新目标框位置裁剪更新坐标处理被截断或移出画面的目标旋转变换目标位置重新计算对应框拼接按缩放比例和拼接位置变换坐标仅调整亮度通常不改变框坐标尤其是裁剪后不能直接沿用原图标签。需要检查框是否越界。框是否仍然覆盖目标。已被裁掉的目标是否还残留标签。保留目标是否过小或只剩难以辨认的部分。对于分割和姿态估计任务还需要同步变换掩膜、关键点及相关可见性信息不能只处理检测框。4. 先增强再划分数据集假设一张原图经过翻转、调亮、旋转得到多张变体。如果把这些图片一起随机划分就可能出现训练集验证集原始图片同一图片的翻转版本调亮版本同一图片的旋转版本虽然文件不同但内容高度相关验证结果可能偏乐观。正确顺序是先划分原始数据再对训练集进行增强。同一原图的变体应保留在同一集合中。视频相邻帧、同一对象的近似图片也需要考虑按来源分组划分。常规验证集和测试集不应套用训练时的随机增强。必要的尺寸调整、归一化等预处理仍然需要正常执行。5. 图片数量增加就认为数据问题解决了将100张图片增强成1000张并不等于采集了1000张独立场景图片。做法能增加什么难以补充什么翻转、旋转部分方向变化新背景、新对象亮度调整部分光照变化完整的真实夜间成像特点缩放部分尺寸变化新拍摄角度和清晰细节重复增强少数类少数类的训练曝光与外观变化少数类真实场景覆盖增强可以作为少数类优化的一部分但不能保证解决类别不均衡。如果少数类只来自单一背景仍应优先补充不同背景、形态和拍摄条件的真实样本。三、不同检测任务增强怎么选选择增强方式之前先想清楚实际使用时目标会发生哪些变化模型又主要依靠什么特征识别目标任务特点可以尝试的方向重点检查小目标检测适度平移、缩放谨慎使用拼接目标在最终输入中是否过小工业缺陷检测合理亮度变化、符合场景的几何变化细微纹理是否被破坏方向敏感任务小范围角度变化翻转或旋转是否改变类别颜色相关任务适度亮度变化色相变化是否改变语义户外目标检测合理尺度、位置和光照变化是否覆盖真实使用条件固定摄像头场景符合实际的光照和位置变化是否过度改变视角与透视关系小目标看最终输入而不只是增强原图增强后的图片看起来还算清楚不代表模型实际看到的目标也清楚。图片还可能在进入模型前再次缩放。因此应检查完成增强和缩放后的训练样本确认目标仍保留足够信息。工业缺陷保留区分类别的细节裂纹、划痕等目标可能依赖细线、边缘和局部对比度。过强模糊或压缩可能抹掉这些特征某些噪声又可能产生类似缺陷的纹理。增强后要同时检查目标区域和背景区域。方向与颜色先确认类别含义如果任务区分“向左箭头”和“向右箭头”水平翻转后需要正确转换类别或者禁用这种翻转。如果任务区分不同颜色的信号灯过强的颜色扰动可能生成标签与图像含义不一致的样本。增强应服从类别定义不能只追求视觉变化。四、怎么判断增强有没有用1. 先看图再开始正式训练建议随机抽查多批增强样本同时覆盖每个类别。小目标。密集目标。遮挡目标。无目标背景。检查时可以采用“原图与标签—增强图与标签”的并排方式。重点看目标是否可辨认、类别是否仍成立、检测框是否正确。只看一两张正常图片容易遗漏偶尔出现的严重失真。2. 分清在线增强与离线增强对比项在线增强离线增强发生时间训练读取图片时训练之前是否保存新图片通常不保存通常保存变化方式可在不同读取时随机变化保存后固定主要注意点检查实际训练输入管理数据来源与划分两者可以结合使用但要清楚它们的叠加效果。例如离线已经对图片做了较强模糊训练时又进行缩放、颜色变化和拼接最终强度可能远超预期。还要注意没有自行设置增强参数不代表训练框架完全没有使用增强。建立对照实验前应确认实际生效的配置。3. 每次只调整一类主要增强可以用下面的表格记录实验实验主要变化mAP50-95重点类别Recall失败案例变化A原始增强配置实测填写实测填写作为基线B降低颜色扰动实测填写实测填写观察颜色相关误判C减小缩放范围实测填写实测填写观察小目标漏检D降低Mosaic使用概率实测填写实测填写观察目标截断与场景适应B、C、D可以分别相对A开展实验如果逐步组合改动需要明确记录。对比时尽量保持模型、数据划分、训练设置与评估方式一致。若提升很小可以使用多个随机种子重复训练判断是否超出随机波动。离线扩充数据后还应记录总训练步数图片数量增加时相同轮数通常意味着更多参数更新指标变化可能同时受到训练量增加的影响。4. 不只看总体mAP增强可能提高大目标表现却降低小目标召回率也可能改善多数类却损伤少数类。因此至少对比总体mAP。各类别指标。重点场景表现。同一批失败图片的预测结果。训练损失变高也不一定意味着增强无效因为训练样本可能变难了。最终应结合独立验证集上的表现判断。五、训练前的数据增强检查清单正式训练前可以按照这张表检查检查项需要确认的问题目标信息增强后目标是否仍可辨认标签位置检测框是否与目标对应类别语义方向或颜色变化是否改变类别目标尺寸最终输入中的小目标是否过小增强强度多种方法是否叠加过度数据划分是否先划分再增强实际配置是否确认框架已经启用哪些增强实验效果是否通过固定验证集进行对比如果时间有限先做好三件事查看实际增强样本确认图像与标签正确。保留基础配置每次只验证一个主要改动。根据验证结果决定保留哪些增强而不是根据生成了多少图片。如果需要数据处理、增强脚本检查或模型训练优化欢迎私信带上增强前后的样例图、标注效果或训练曲线更方便定位问题。
返回列表