将图像归一化为int和float有什么区别?
[0, 255]
cv2.noramlize(src, res, 255, 0, cv2.NORM_MINMAX)
[0, 1]
cv2.normalize(src, res, 1, 0, cv2.NORM_MINMAX)
[-1, 1]
img=(img-np.mean(img, axis=(0,1)))/np.std(img, axis=(0,1))
Ps。
img
是带有[H x W x C]
它对ConvNet的培训和性能有影响吗?
答案 0 :(得分:0)
img=(img-np.mean(img, axis=(0,1)))/np.std(img, axis=(0,1))
上面的代码执行均值减法,然后进行归一化。
您可以参考CS231 Notes以获得更多详细信息,但这是相关部分
平均减法是最常见的预处理形式。它涉及减去数据中每个单独特征的均值,并且具有将数据云围绕每个维度围绕原点居中的几何解释。在numpy中,此操作将实现为:X-= np.mean(X,axis = 0)。特别是对于图像,为方便起见,通常会从所有像素中减去一个值(例如X-= np.mean(X)),或者在三个颜色通道中分别这样做。
归一化是指对数据维度进行归一化,以便它们具有大致相同的比例。有两种常见的方法可以实现此标准化。一种方法是将每个尺寸以零为中心除以其标准偏差:(X / = np.std(X,axis = 0))。此预处理的另一种形式是对每个维度进行规格化,以使沿着该维度的最小值和最大值分别为-1和1。仅当您有理由相信不同的输入要素具有不同的比例(或单位)时,才应用此预处理才有意义,但是它们对学习算法的重要性应大致相同。对于图像,像素的相对比例已经大约相等(并且范围在0到255之间),因此不必严格执行此附加预处理步骤。
均值减法平衡点周围的数据(居中) 定心可以消除梯度的消失和爆炸,同时还可以提高收敛速度和准确性。
我建议您浏览链接。它会更详细地解释这些主题