Image processing 图像处理中的归一化
在图像处理中,标准化的正确含义是什么?我在谷歌上搜索过,但我有不同的定义。我将尝试详细解释每个定义 内核矩阵的标准化 如果规范化指的是矩阵(例如卷积滤波器的核矩阵),则通常将矩阵的每个值除以矩阵值之和,以使矩阵值之和等于一(如果所有值均大于零)。这是很有用的,因为图像矩阵和我们的核矩阵之间的卷积给出的输出图像的值介于0和原始图像的最大值之间。但是,如果我们使用sobel矩阵(有一些负值),这不再是真的,我们必须拉伸输出图像,以便所有值都在0和最大值之间 图像的标准化Image processing 图像处理中的归一化,image-processing,normalization,Image Processing,Normalization,在图像处理中,标准化的正确含义是什么?我在谷歌上搜索过,但我有不同的定义。我将尝试详细解释每个定义 内核矩阵的标准化 如果规范化指的是矩阵(例如卷积滤波器的核矩阵),则通常将矩阵的每个值除以矩阵值之和,以使矩阵值之和等于一(如果所有值均大于零)。这是很有用的,因为图像矩阵和我们的核矩阵之间的卷积给出的输出图像的值介于0和原始图像的最大值之间。但是,如果我们使用sobel矩阵(有一些负值),这不再是真的,我们必须拉伸输出图像,以便所有值都在0和最大值之间 图像的标准化 我基本上找到了规范化的两个定
我基本上找到了规范化的两个定义。第一种方法是“削减”过高或过低的值。i、 e.如果图像矩阵有负值,则将其设置为零;如果图像矩阵的值高于最大值,则将其设置为最大值。第二种方法是对所有值进行线性拉伸,以便将它们拟合到区间[0,最大值]。在数据科学中,有两种广泛使用的标准化类型: 1) 我们尝试移动数据,使总和为一个特定值,通常为1()
2) 将数据标准化,使其在一定范围内(通常为0到1):我将对@metsburg的答案进行一点扩展。有几种标准化图像(通常为数据向量)的方法,可方便地用于不同情况:
- 或数据(重新)缩放:将数据投影到预定义范围(即通常
或[0,1]
)。当您拥有来自不同格式(或数据集)的数据,并且希望对所有格式(或数据集)进行规范化,以便可以对其应用相同的算法时,这非常有用。通常按如下方式执行:[-1,1]
Inew = (I - I.min) * (newmax - newmin)/(I.max - I.min) + newmin
- 是数据标准化的另一种方法(在机器学习中经常使用),将平均值减去图像并除以其标准偏差。如果您打算将图像用作某些机器学习算法的输入,那么它特别有用,因为许多机器学习算法的性能更好,因为它们假设特征具有高斯形式,且
。可通过以下方式轻松执行:平均值=0,std=1
Inew = (I - I.mean) / I.std
- 或者(处理图像时的直方图拉伸),被视为您的选项2。通常将图像钳制为最小值和最大值,设置:
其中Inew = I Inew[I < a] = a Inew[I > b] = b
引用了|I | |
中的一个 如果将范数选择为I
范数,则图像将被其绝对值之和除以,使整个图像之和等于l1
。如果将范数选择为1
(或欧几里德),则图像将除以l2
的平方值之和,使I
的平方值之和等于I
1
前3个广泛用于图像(不是其中的3个,因为缩放和标准化不兼容,而是其中的1个或缩放+拉伸或标准化+拉伸),最后一个不是那么有用。它通常被用作某些统计工具的预处理,但如果您计划使用单个图像,则不能使用。由@Imanol提供的答案非常好,我只想添加一些示例: 将输入标准化为像素方向或数据集方向。通常可以看到三种标准化方案:
这在计算机科学中更合适。我怎样才能在计算机科学中提出这个问题呢?所以这三个问题都是正确的和实际使用的?是的,它们都被使用了,但每个都有自己的属性。查看@imaluengo的答案了解详细信息。我有一个问题,人们是如何想出这个用于数据规范化的线性函数的?还有其他线性函数也会这样做吗?Thanks@andres.santana如果您将is视为灰度/颜色值数组,则任何线性函数都会映射图像。是否正确<代码>Inew=(I-I.min)*(newmax-newmin)/(I.max-I.min)+newmin@jakeoung-yup你是对的。我确实换了个说法(从维基百科抄袭的内容很糟糕)。修正后的帖子,谢谢!
Inew = I / ||I||
img /= 255.0
img /= 127.5
img -= 1.0
img /= 255.0
mean = [0.485, 0.456, 0.406] # Here it's ImageNet statistics
std = [0.229, 0.224, 0.225]
for i in range(3): # Considering an ordering NCHW (batch, channel, height, width)
img[i, :, :] -= mean[i]
img[i, :, :] /= std[i]