Opencv 执行最小-最大规格化的正确方法

Opencv 执行最小-最大规格化的正确方法,opencv,math,image-processing,machine-learning,svm,Opencv,Math,Image Processing,Machine Learning,Svm,我正在使用opencv svm实现字母表分类。 我对规范化特征向量有疑问。 我有两种归一化特征向量的方法, 我需要找到哪种逻辑上正确的规范化方法 方法1 假设我有3个特征向量,如下所示 [2, 3, 8, 5 ] -> image 1 [3, 5, 2, 5 ] -> image 2 [9, 3, 8, 5 ] -> image 3 特征向量中的每个值都是通过将像素与核卷积得到的 目前,我正在寻找每列的最大值和最小值,并在此基础上进行规范化 在上述情况下,第一列是

我正在使用opencv svm实现字母表分类。 我对规范化特征向量有疑问。 我有两种归一化特征向量的方法, 我需要找到哪种逻辑上正确的规范化方法

方法1

假设我有3个特征向量,如下所示

[2,  3,  8, 5 ] -> image 1
[3,  5,  2, 5 ] -> image 2
[9,  3,  8, 5 ] -> image 3
特征向量中的每个值都是通过将像素与核卷积得到的

目前,我正在寻找每列的最大值和最小值,并在此基础上进行规范化

在上述情况下,第一列是
[2,3,9]

min = 2
max = 9
并在此基础上对第一列进行规范化。同样,所有其他列都被规范化

方法2

如果内核如下所示

[-1   0  1]
[-1   0  1]
[-1   0  1]
然后,通过与上述内核进行卷积,可获得如下最大值和最小值(8位图像-强度范围:0-255)

并将每个值规格化为大于最大最小值


在逻辑上,哪种方法是正确的标准化方法(方法1或方法2)?

标准化方法是方法1(请参阅的答案)。我还建议您阅读有关svm训练的参考资料

但是,在您的情况下,使用同一内核计算的所有特征的范围将是相似的,并且方法1可能弊大于利(例如,通过增加几乎恒定的特征的噪声)


因此,我的建议是:测试这两种方法,并评估性能,看看什么在您的情况下效果最好。

如果我们的功能不相关,例如(角度、重量、亮度等),则使用不同的最小-最大值对每个列进行规格化不会产生问题)。在我的例子中,我从每个区域提取特征,因此我认为faeture的顺序很重要(因此我认为在这种情况下,我们应该使用minmax,如方法2中所示)
max val = 765
min val = -765