opencv - 对于 BoW 模型中的 ORB,L2 范数比 Hamming 效果更好,为什么?

标签 opencv classification knn orb

我在许多论文中看到,在使用 ORB 特征处理特征匹配时需要使用汉明距离。我一直在使用 C++ 中的 opencv 中的 BoW 模型,发现与使用 BruteForce 匹配器(Hamming 或 Hamming(2))相比,如果我使用默认的 BruteForce 匹配器(使用 L2),我的分类准确度会更高。

这是为什么?

我的印象是您不能使用 L2 范数,但它提供比使用汉明距离更好的分类准确度。

最佳答案

假设您有两个 3 位 ORB 描述符:

A = [101]
B = [011]

汉明距离是对应字符不同位置的个数:

hamming = 2

L2距离是欧氏距离:

L2 = sqrt(2)

对于像ORB这样的二进制描述符,通常采用汉明距离,因为它具有更高的效率

关于opencv - 对于 BoW 模型中的 ORB,L2 范数比 Hamming 效果更好,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23401398/

相关文章:

C++ `typedef Ptr<Layer>(*Constructor)(LayerParams &params);`

python - 改进非英语文本的 NER 标签结果

c# - 关于 C# 中的 K 最近邻和 OpenCV

python - KNN 查询数据维度必须与训练数据维度匹配

machine-learning - 为什么weka中的KNN实现运行得更快?

python - 如何拟合4点的椭圆轮廓?

windows - 带有 QT 的 OpenCV 2.4.2

python-3.x - 从逻辑回归系数中导出新的连续变量

python - 如何使用OpenCV检测X射线图像上的文本

python - 如何训练大型数据集进行分类