【问题标题】:Image Mean subtraction图像均值减法
【发布时间】:2018-05-29 12:24:17
【问题描述】:

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

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

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

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

原创

平均减法

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

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

【问题讨论】:

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


    【解决方案1】:

    这里有两点需要考虑:

    1. 像素值本身
    2. 这些像素值如何显示在您的屏幕上

    如果您的图像是无符号整数类型(例如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
    

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

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

    【讨论】:

    • 我用过浮动pt。值,[92.05, 84.79, 77.08] (RGB)。我自己计算了整个数据集(3000 张图像)的每个通道的平均值。因此,不确定平均值是否正确。你知道在将我的图像数据集传递给它之后我可以使用什么库来验证吗?
    • 我不知道你用的是什么编程语言,但你可能想用 OpenCV 来做这些事情。
    猜你喜欢
    • 2018-07-29
    • 1970-01-01
    • 2017-05-04
    • 2015-06-26
    • 2017-11-30
    • 2017-11-25
    • 2018-11-13
    • 1970-01-01
    • 2019-04-02
    相关资源
    最近更新 更多