颜色抖动是一种数据增强技术,用于通过随机改变图像的颜色属性来人为地扩展数据集。 它通过对亮度、对比度、饱和度和色调等属性应用受控的变化来实现。 这有助于机器学习模型更好地泛化,因为它使它们暴露于更广泛的视觉条件下,从而减少对训练数据中特定颜色模式的过度依赖。 例如,经过颜色抖动图像训练的模型不太可能在光照条件发生变化或真实场景中颜色略有不同时失败。
该过程通常涉及调整四个关键参数:亮度(图像的明暗程度)、对比度(亮区和暗区之间的差异)、饱和度(颜色强度)和色调(实际的颜色阴影)。 开发人员可以为每个参数定义范围,例如将亮度调整 ±10% 或将色调移动 ±0.1 弧度。 这些值在训练期间为每个图像或批次随机采样。 在 PyTorch 等框架中,这通常使用 ColorJitter
变换来实现,该变换按顺序应用这些调整。 例如,卫星图像模型可能会使用色调抖动来模拟季节性植被颜色变化,从而确保模型专注于对象形状,而不是依赖于固定的颜色提示。
一个实际的实现可能涉及在变换管道中设置像 brightness=0.2
、contrast=0.3
、saturation=0.4
和 hue=0.1
这样的参数。 这些值代表允许的最大变化 - 例如,亮度可以随机减少 20% 或增加 20%。 重要的是要注意顺序:在将图像转换为灰度之后调整色调将不会产生任何影响。 开发人员还必须平衡抖动的强度以避免不真实的失真 - 过度的色调偏移可能会将红色汽车变成蓝色,从而产生无意义的训练示例。 当与旋转或翻转等其他增强一起使用时,颜色抖动有助于构建对真实世界的可变性具有鲁棒性的模型,例如处理摄影应用程序中的黄金时段照明或不同扫描仪设置下的医学成像。