图像平均减法

时间:2018-05-29 12:24:18

标签: image-processing computer-vision image-segmentation

我很困惑图像平均减法是否对我的用例有用。

我正在使用道路图像训练SegNet网络,我在训练期间减去平均值。

当我比较平均减法前后的图像时,没有平均减法的图像似乎有更多的特征和详细的像素信息。

我理解平均减法的重要性,因为它减少了不同照明的影响,也有助于训练过程中的梯度计算。但是,这并不意味着我放弃了一些重要的信息。我附上图片供参考。

原始

Original image

使用平均减法

Mean subtraction

观看上面的图片,我假设没有平均减法的图像可以学习更多特征,特别是关于汽车(这里非常重要)。平均减法的图像在汽车周围几乎是黑暗的。

对某些可能解释这一点的来源的解释或链接将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

这里有两件事需要考虑:

  1. 像素值本身
  2. 这些像素值如何在屏幕上显示
  3. 如果您的图像是无符号整数类型(例如uint8),并且您在不将图像转换为其他类型的情况下减去均值,则可能会破坏图像信息。例如,如果您的图片包含像素值

    204 208 100  75  86
    

    ,均值为100.3,减去该均值的uint8结果为

    104 108   0   0   0    -- saturated subtraction
    

    104 108   0 231 242    -- C-style subtraction
    

    取决于您是使用饱和减法还是C风格算术。在这两种情况下,图像不再包含与之前相同的信息。

    当然,正确的是使用浮点值:

    103.7  107.7   -0.3  -25.3  -14.3    -- floating-point subtraction
    

    在这种情况下,数据仍然包含完全相同的信息,只是现在它是零均值。

    现在,如何在屏幕上显示这个零均值图像?您可以映射每个值< 0到0,每个值> 255到255,以便有效范围[0,255]之外的值饱和;或者您可以在数据中找到最小值和最大值,将像素值线性映射到有效范围。在第一种情况下,它看起来像你破坏了图像(如在你的例子中),在第二种情况下,它看起来在图像中没有太大的变化。也就是说,没有办法在屏幕上显示图像,仍然可以看到平均减法的效果。