平均图像减法是如何工作的?

时间:2017-06-27 19:14:21

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

前言,我是ML / CV领域的新手,目前正在使用Caffe培训自定义转发网络。

我对平均图像减法感兴趣,以便在我的训练图像上实现基本的数据标准化。但是,我对于减法的有效性以及它有什么好处感到困惑。

我知道可以从训练集中计算“平均图像”,然后从训练集,验证集和测试集中减去该平均图像,以使网络对不同的背景和闪电条件不那么敏感。

这是否涉及计算每幅图像中所有像素的平均值,并对这些像素求平均值?或者,来自每个像素坐标的值是否在该组中的所有图像上平均(即,对于所有图像,位置(1,1)处的像素的平均值)?这可能要求所有图像都是相同的大小...

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

任何清晰都会受到赞赏。

2 个答案:

答案 0 :(得分:7)

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

减去平均图像

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

减去每频道平均值

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

答案 1 :(得分:4)

平均图像是i,j,c像素是来自所有图像的i,j,c像素的平均值的图像。因此,您可以分别为每个位置和每个颜色通道选择一个平均值。它要求所有图像当然具有相同的大小,否则它没有定义。此外,它并不是真的对不同的条件不那么敏感 - 它与它无关,它实际上只是为了将初始激活保持在合理的范围内,没有别的。