0

有多个页面(如thisthis)提供了有关图像效果的示例channel_shift_range。乍一看,似乎图像只是应用了亮度变化。

channel_shift_range 应用示例。

这个问题有多个评论提到了这个观察。那么,如果channel_shift_rangebrightness_range同样的事情,为什么它们都存在?

4

2 回答 2

0

频道移位和亮度变化是完全不同的。

通道偏移:通道偏移通过改变输入图像的 [R,G,B] 通道来改变像素的颜色饱和度(例如浅红色/深红色)。通道移位用于在数据集中引入颜色增强,以使模型学习基于颜色的特征,而不管其饱和度值如何。下面是文章中提到的 Channel shift 的例子: 图。1 在上图中,如果你仔细观察,即使在 Channel shift augmentation 之后,物体(特别是云区域)仍然清晰可见,并且可以与其相邻区域区分开来。

亮度变化:图像的亮度级别解释了整个图像的光强度,并用于在数据集中添加曝光不足和曝光过度增强。下面是亮度增强的示例: 在此处输入图像描述 在上图中,在低亮度值下,物体(例如云)由于低光强度水平而失去了可见性。

于 2021-12-29T09:04:47.583 回答
0

经过长时间的逆向工程,我发现:

  • channel_shift_range: 将(R + i, G + i, B + i)运算应用于图像中的所有像素,其中i是[0, 255]范围内的整数值。
  • brightness_range:将(R * f, G * f, B * f)操作应用于图像中的所有像素,其中f1.0左右的浮点值。

这两个参数都与亮度有关,但是,我发现了一个非常有趣的区别:应用的操作channel_shift_range大致保留了图像的对比度,而应用的操作将图像的对比度brightness_range大致乘以f并大致保留了其饱和度。重要的是要注意,对于较大的if值,这些结论无法实现,因为图像的亮度会很强烈,并且会丢失很多信息。

于 2022-01-02T07:27:54.507 回答