1.1  vlad基础概念

VLAD是vector of locally aggregated descriptors的简称,是由Jegou et al.在2010年提出,其核心思想是aggregated(积聚),主要应用于图像检索领域

1.2  相关方法优缺点

在深度学习时代之前,图像检索领域以及分类主要使用的常规算法有BoW、Fisher Vector及VLAD等。

BoW方法的核心思想是提取出关键点描述子后利用聚类的方法训练一个码本,随后每幅图片中各描述子向量在码本中各中心向量出现的次数来表示该图片,该方法的缺点是需要码本较大;FV方法的核心思想是利用高斯混合模型(GMM),通过计算高斯混合模型中的均值、协方差等参数来表示每张图像。该方法的优点是准确度高,但缺点是计算量较大。

1.3 VLAD算法

VLAD算法可以看做是一种简化的FV,其主要方法是通过聚类方法训练一个小的码本,对于每幅图像中的特征找到最近的码本聚类中心,随后所有特征与聚类中心的差值做累加,得到一个k*d的vlad矩阵,其中k是聚类中心个数,d是特征维数(如sift是128维),随后将该矩阵扩展为一个(k*d)维的向量,并对其L2归一化,所得到的向量即为VLAD。关于该算法为何有效,Jegou et al.在2012年的期刊版本Aggregating local image descriptors into compact codes中有着相关证明。

1.4  VLAD算法发展演变

在VLAD算法的基础上Arandjelovic et al.在 All about VLAD 一文中提出了一种改进方法。随后,其又结合深度卷积神经网络的相关内容,提出了NetVLAD。

2 VLAD算法流程

(1) 读取图片文件路径及特征提取

(2) 使用聚类方法训练码本

(3) 将每张图片的特征与最近的聚类中心进行累加

*(4) 对累加后的VLAD进行PCA降维并对其归一化

*(5) 得到VLAD后,使用ADC方法继续降低储存空间和提高搜索速度

其中步骤4、5可选,在步骤3得到残差累加向量后进行L2归一化即可用欧氏距离等计算两张图片的相似性从而实现图片检索

一个简单的实现(基于sift特征及orb特征)请参考

VLAD-ORB-C++ https://github.com/Lithogenous/VLAD-ORB-Cpp

VLAD-SIFT-python https://github.com/Lithogenous/VLAD-SIFT-python

VLAD算法简介 图像检索相关推荐

  1. vlad用python实现_「vlad」VLAD算法简介 - seo实验室

    vlad 1.1  vlad基础概念 VLAD是vector of locally aggregated descriptors的简称,是由Jegou et al.在2010年提出,其核心思想是agg ...

  2. VLAD算法浅析, BOF、FV比较

    划重点 ================================================= BOF.FV.VLAD等算法都是基于特征描述算子的特征编码算法,关于特征描述算子是以SIFT ...

  3. 数据结构与算法:算法简介

    数据结构与算法:算法简介 雪柯 大工生物信息 提笔为写给奋进之人 已关注 你说呢 . shenwei356 等 70 人赞同了该文章 引用自算法图解,作者[美] Aditya Bhargava 译袁国 ...

  4. hash算法_一致性hash算法简介

    一致性hash算法有什么用?我们为什么需要一致性hash算法?这两个问题的答案可以看这篇文章 分布式系统路由算法简介. 了解了一致性hash算法出现的背景,我们来看看什么是一致性hash算法.一致性h ...

  5. Minimax 和 Alpha-beta 剪枝算法简介,及以此实现的井字棋游戏(Tic-tac-toe)

    前段时间用 React 写了个2048 游戏来练练手,准备用来回顾下 React 相关的各种技术,以及试验一下新技术.在写这个2048的过程中,我考虑是否可以在其中加入一个 AI 算法来自动进行游戏, ...

  6. 推荐系统算法_机器学习和推荐系统(二)推荐算法简介

    推荐算法简介 一. 基于人口统计学的推荐算法 二.基于内容的推荐算法 三. 基于协同过滤的推荐算法 协同过滤(Collaborative Filtering , CF) 基于近邻的系统过滤 基于用户( ...

  7. 图像迁移风格保存模型_CV之NS:图像风格迁移(Neural Style 图像风格变换)算法简介、关键步骤配图、案例应用...

    CV之NS:图像风格迁移(Neural Style 图像风格变换)算法简介.过程思路.关键步骤配图.案例应用之详细攻略 目录 图像风格迁移算法简介 图像风格迁移算法过程思路 1.VGG对比NS 图像风 ...

  8. 魔棒工具--RegionGrow算法简介

    from: 魔棒工具--RegionGrow算法简介 ps里面的魔棒工具非常好用,是图像处理中非常常用的一个工具,它现在已经是我的c++工具箱中很重要的一员了,我会在以后的时间里把我的工具箱逐渐介绍给 ...

  9. 【数据挖掘】基于划分的聚类方法 ( K-Means 算法简介 | K-Means 算法步骤 | K-Means 图示 )

    文章目录 一. 基于划分的聚类方法 二. K-Means 算法 简介 三. K-Means 算法 步骤 四. K-Means 方法的评分函数 五. K-Means 算法 图示 一. 基于划分的聚类方法 ...

最新文章

  1. 三年级优秀书籍推荐_西关小学书画比赛优秀作品展 绘画组(四)
  2. Spring Mock单元测试
  3. idea不识别yml配置文件,怎么办?
  4. Oracle Awr
  5. RealNetworks CTO:我们追求低复杂度的软解码
  6. Markdown简介和基本语法
  7. matplotlib与seaborn的一些使用
  8. HTML+CSS+JS实现 ❤️发光糖果泡泡动画特效❤️
  9. vue 移动到图片浮动_基于Vue实现拖拽升级(九宫格拖拽)
  10. python-函数的参数-位置参数-关键词参数
  11. 从CSDN用户密码泄露谈一些非技术安全对策
  12. 如何免费下载外文文献
  13. 桌面许多快捷方式图标/文件左下角出现绿色对号小图标
  14. 12月运营/营销/市场/广告人热点营销指南!
  15. d3d透视逆向篇:第5课:D3D9游戏黑屏优化2 DrawIndexedPrimitive
  16. python中for循环打印菱形_Python 使用双重循环打印图形菱形操作
  17. gitpc段提交失败schannel: next InitializeSecurityContext failed: Unknown error (0x80092013
  18. php创建多级栏目_PHP 实现无限极栏目分类
  19. Mask R-CNN完整翻译
  20. 基于matlab了光纤模式图,基于matlab光纤的模式图模拟

热门文章

  1. 百度翻译翻译长句python调用逆向js生成的sign不正确
  2. python学习day2
  3. 置业小技能:按揭相关事项
  4. MySQL查看所有用户
  5. matlab 画三维图 及 画图
  6. cookie和session的学习
  7. 阿坝州计算机网络培训总结,网络培训学习心得总结
  8. 计算机信息技术培训总结,信息技术培训学习心得体会
  9. 大学“电路分析基础”试题合集第七章
  10. Vim实战手册(10)Vimide——打造你自己的IDE(C)