VLAD原理简介

VLAD原理简介VLAD 即 vectorofloca 是一种图像的特征表示方法 被广泛应用在了图像检索和图像分类领域 关于 VLAD 的实现原理 其实就是构造 VLAD 向量 在构造 VLAD 向量之前 首先需要利用 SIFT 提取图像的特征点 假设提取到的 SIFT 描述子数目为 n 用 x 来表示的话 x 就是一个 n 128 的矩阵 构造 VLAD 向量的过程利用了 K means 的聚类结果

VLAD即vector of locally aggregated descriptors,是一种图像的特征表示方法,被广泛应用在了图像检索和图像分类领域。关于VLAD的实现原理,其实就是构造VLAD向量。在构造VLAD向量之前,首先需要利用SIFT提取图像的特征点。假设提取到的SIFT描述子数目为n,用x来表示的话,x就是一个n*128的矩阵。构造VLAD向量的过程利用了K-means的聚类结果,该过程即求解v = (x-c)在NN(x)= c下各维度的累加和。其中x为SIFT描述子,c为这些描述子做kmeans得到的聚类中心,NN(x)就是该描述子离所有聚类中心中最近的那个。如果图像类别有k个,那么c有k个,而VLAD向量的维数是128k。值得注意的一点是,VLAD向量统计的是这些SIFT特征点与对应的最近聚类中心的累积残差,而BOF统计的是落入各个聚类中心的特征点的数目。

再补充一点,这个算法在实现时一般采用KDtree进行最邻近查找。可参考:https://blog.csdn.net/pipisorry/article/details/

VLAD01

VLAD的效果通常好于BOF和FV的原因:

FV是利用GMM对数据进行聚类,这种利用所有聚类中心的线性组合近似表示特征点的方式会存在较大的误差。

BOF是利用最近邻的聚类中心表示这个特征点,也存在较大的误差。

VLAD可以看作这两者的一个折中,由于是累积误差所以不存在信息的损失。

VLAD的代码在https://www.cnblogs.com/mafuqiang/p/6909556.html有较为简洁的阐述。

 

 

图片来自https://blog.csdn.net/garfielder007/article/details/

参考资料:https://blog.csdn.net/happyer88/article/details/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212963.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午6:51
下一篇 2026年3月18日 下午6:52


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号