【问题标题】:How does mean image subtraction work?平均图像减法如何工作?
【发布时间】:2017-11-30 23:18:06
【问题描述】:

首先,我是 ML/CV 领域的新手,目前正在使用 Caffe 训练自定义卷积网络。

我对平均图像减法感兴趣,以在我的训练图像上实现基本数据标准化。但是,我对均值减法的工作原理以及它究竟有什么好处感到困惑。

我知道可以从训练集中计算出“平均图像”,然后将其从训练、验证和测试集中减去,以降低网络对不同背景和光照条件的敏感度。

这是否涉及计算每张图像中所有像素的平均值并取平均值?或者,每个像素坐标的值是否在集合中的所有图像上平均(即所有图像的位置 (1,1) 处的像素的平均值)?这可能要求所有图像的大小相同...

另外,对于彩色图像(3 通道),每个通道的值是否单独平均?

如有任何清晰的说明,我们将不胜感激。

【问题讨论】:

    标签: image machine-learning computer-vision caffe conv-neural-network


    【解决方案1】:

    在深度学习中,实际上对于如何减去平均图像有不同的做法。

    减去平均图像

    第一种方法是减去@lejlot 描述的平均图像。但是,如果您的数据集图像大小不同,则会出现问题。在使用此方法之前,您需要确保所有数据集图像的大小相同(例如,调整原始图像的大小并从原始图像裁剪相同大小的补丁)。它用于原始 ResNet 论文,请参阅reference here

    减去每个通道的平均值

    第二种方法是从原始图像中减去每通道均值,这种方法更流行。这样,您无需调整或裁剪原始图像。您可以从训练集中计算每个通道的平均值。这在深度学习中被广泛使用,例如 Caffe:herehere。凯拉斯:here。 PyTorch:here。 (PyTorch 还将每个通道的值除以标准差。)

    【讨论】:

    • 在 keras 的 example 中有 3 个神奇的数字,我在其他地方注意到并查找了这些数字,我最终来到了这里。数字是 123.68、116.78、103.94,知道它们来自哪里吗?
    • @schissmantics 你检查过帖子中的第一个链接吗?我想这就是你要找的。它只是 B、G、R 的平均像素值。
    【解决方案2】:

    平均图像是其中 i,j,c 像素是所有图像中 i,j,c 像素的平均值的图像。因此,您对每个位置和每个颜色通道分别取平均值。它当然要求所有图像具有相同的大小,否则不定义。此外,这并不是说对不同条件不那么敏感——这与它无关,实际上只是将初始激活保持在合理范围内,仅此而已。

    【讨论】:

    • 我们为什么要说 合理范围 ?如果我们取 [0. 255] 范围内,我们可能会看到接近 255 像素的高激活值,但如果我们采用 [-128, 127] 范围,我们可能会看到 -128 附近像素的高激活值(以绝对值表示),因此在任何速率下,可能会弹出一些数值问题
    猜你喜欢
    • 2018-11-13
    • 2015-06-26
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 2018-06-08
    相关资源
    最近更新 更多