从图像中减去均值

时间:2015-04-20 09:06:38

标签: python image-processing machine-learning neural-network

我正在与Theano实施CNN。在论文中,我必须在训练CNN之前进行此图像预处理

We extracted RGB patches of 61x61 dimensions associated with each poselet activation, subtracted the mean and used this data to train the convnet model shown in Table 1

你能告诉我“减去平均数”是什么意思吗?告诉我这些步骤是否正确(这是我所理解的) 1)计算整个图像的红色通道,绿色通道和蓝色通道的平均值 2)对于每个像素,从红色值中减去红色通道的平均值,从绿色值中减去绿色通道的平均值,对于蓝色通道相同 3)具有负值是否正确或者我是否使用了abs?

谢谢大家!!

2 个答案:

答案 0 :(得分:6)

你应该仔细阅读论文,但最可能的是它们的意思是补丁的平均值,所以你有N矩阵61x61像素,这相当于一个长度为61^2的向量(如果有三个频道,那么3*61^2)。他们做了什么 - 他们简单计算每个维度的平均值,因此他们根据N维度计算每个3*61^2向量的平均值。结果他们获得长度为3*61^2平均向量(或平均矩阵 / 平均补丁,如果您愿意)并且它们减去来自所有这些N补丁。得到的补丁将有负值,完全没问题,你不应该取abs值,神经网络更喜欢这种数据。

答案 1 :(得分:6)

我认为论文中提到的平均值是训练集中使用的所有图像的平均值(为每个通道单独计算)。

有几个迹象:

这当然只是间接证据,因为我无法解释你为什么会这样。事实上,我在试图弄清楚这个问题时偶然发现了这个问题。

//编辑:

与此同时,我发现source确认了我的声明(我突出显示):

  

有三种常见形式的数据预处理数据矩阵X [...]

     

平均减法是最常见的预处理形式。它   涉及减去每个特征中的平均值   数据,并具有以云为中心的几何解释   每个维度的原点周围的数据。在numpy,这个操作   将实现为:X - = np.mean(X,axis = 0)。随着图像   具体而言,为方便起见,减去单个数据通常是常见的   所有像素的值(例如 X - = np.mean(X)),或单独执行此操作   穿过三个颜色通道。

正如我们所看到的,整个数据用于计算平均值。