VLAD和MultiVLAD

VLAD和MultiVLADVLAD 原理 1 原始的 VLAD 设有一个特征数据集为 每个特征向量 xi x i 都是 dd 维的向量 比如提取许多幅图像的 SIFT 特征 将这些 SIFT 特征组成上述集合 这里讲的词袋模型并不关心各幅图像中 SIFT 特征的个数及顺序 1 聚类 clustering 首先采用 K means 等聚类算法将 n 个 d 维的特征聚类成 k 类 保存得到的类中心向量集合 和每个特征向量 x i 所在的类别编号 assignme

VLAD原理

VLAD特征编码方式可以说是FV特征编码方式的一个简化。

1.原始的VLAD

设有一个特征数据集为这里写图片描述,每个特征向量 xi 都是 d 维的向量。比如提取许多幅图像的SIFT特征,将这些SIFT特征组成上述集合,这里讲的词袋模型并不关心各幅图像中SIFT特征的个数及顺序。
1.聚类(clustering)。首先采用K-means等聚类算法将n个d维的特征

xiRd,i=1,2,...,n
聚类成k类,保存得到的类中心向量集合这里写图片描述,和每个特征向量 xi 所在的类别编号assignment。

2.集成(aggregation)。求出残差向量,即所有特征向量 xi 与其类中心向量 μi 的差,将同类别的残差向量求和,得到k个d维的子向量。将k个子向量拉成一个 D=kd 的一维向量。
这里写图片描述
这里写图片描述

3.归一化。第一步为幂律归一化(power-law normalization),对向量 v 的每个分量执行这里写图片描述,其中参数

α<=1
,用来主要用来抑制数值大的数同时提升数值小的数。第二步为L2范数归一化。对整个子向量执行这里写图片描述

幂律归一化的目的是主要为了减少某些特征出现次数特别多(visual bursts)带来的影响,这是因为出现次数特别多时聚类中心就在它附近,相应的残差就很小;L2范数归一化的目的主要是为了使得特征向量范数为1,使得对特征的比较是在同一个尺度上,比如可以用来减少同一个物体在不同光照下由于光照等因素带来的特征差异。

在进行特征匹配时,VLAD特征之间的相似性是通过内积来定义,这种相似性受聚类的影响较大。

2.改进的VLAD

MultiVLAD

VLAD特征相对BoW来说,对图像中占比的物体效果差些。而MultiVLAD是通过提取图像上不同尺度上的14个VLAD特征:9个最细尺度的VLAD特征,4个中等尺度的VLAD特征和一个全局的VLAD特征;尺度是通过网格大小来确定。在检索时,对查询图像q只提取一个全局的VLAD特征,将它与数据库中每个图像y的14个VLAD进行一一比较,计算出最大的相似度做为q和y之间的相似度,因此还可以得到目标物体在图像上的位置和尺度大小。

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

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

(0)
上一篇 2026年3月17日 下午5:45
下一篇 2026年3月17日 下午5:45


相关推荐

  • Perl(五)Perl的反引号

    Perl(五)Perl的反引号一 Perl 反引号 的作用作用 这是和操作系统交互的一种方式 反引号内的字符串会交给 shell 执行 支持操作系统的管道 重定向等特性 datetime date F T print datetime n 方式 2 另一种方式是使用 system 函数 特点 反引号内容会被 perl 先按照双引号的方式进行解析 然后传递给操作系统的 shell 执行 所以有变量替换

    2026年3月19日
    3
  • 利用Python制作微信机器人(一)

    利用Python制作微信机器人(一)双十一时候,阿里云服务器打折。于是直接买了三年的阿里云服务器。自己也明白有一个云服务器说白了就是有一个公网IP+7*24h不关机的电脑。但买完服务器后,就不知道用这服务器来做点什么炫酷的事情了。这两天看到有某位海王做了个自动回复消息的机器人来给女朋友们回消息,是否可以用这个服务器来做一个自动回复消息的机器人。…

    2022年6月23日
    27
  • linux下python安装包 3.7.1

    linux下python安装包 3.7.1linux 下 python 安装包 3 7 1 百度网盘链接 https pan baidu com s 12mU27c84dQ0 gjenOrg nbsp 提取码 jg0r nbsp nbsp

    2026年3月19日
    1
  • 从STN网络到deformable convolution

    从STN网络到deformable convolution1  STN (SpatialTransformerNetwork)1.1    来源论文来源:https://arxiv.org/pdf/1506.02025.pdf    参考博客:    1. https://blog.csdn.net/ly244855983/article/details/80033788(论文解读)    2. https://blog.csdn.net/xbi…

    2022年10月18日
    4
  • WiFi模块 driver驱动框架(sdio接口、pcie接口)「建议收藏」

    WiFi模块 driver驱动框架(sdio接口、pcie接口)「建议收藏」1、WiFidriver驱动框架应用层BSDsocket层TCP/IP协议层IP层网络设备层MAC层(802.11)(包括扫描、认证、关联、省电状态)设备驱动层2、SDIO-Wifi模块1、SDIO-Wifi模块介绍SDIO-Wifi模块是基于SDIO接口的符合WiFi无线网络标准的嵌入式模块,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈,能够实现用户主平台数据通过SDIO口到无线网络之间的转换。SDIO具有传输数据快,兼容SD、MMC接口等特点。对于SD

    2026年4月16日
    5
  • cglib实现动态代理_cglib和jdk动态代理

    cglib实现动态代理_cglib和jdk动态代理一、前言  说到动态代理,开发者们第一时间想到的就是JDK动态代理和cglib动态代理。了解Spring的同学应该知道,SpringAOP功能的底层实现,就是使用的这两种动态代理。两者区别JDK的动态代理机制只能代理实现了接口的类,而没有实现接口的类就不能实现JDK的动态代理;cglib动态代理是针对类来实现代理的,它的原理是对指定的目标类生成一个子类,并覆盖其中方法实现增强。使用cglib实现动态代理,完全不受代理类必须实现接口的限制。cglib底层采用ASM字节码生成框架,使用字节码技术生

    2022年10月20日
    4

发表回复

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

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