vlad

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++

VLAD-SIFT-Python

相关阅读

局部聚合向量noteVLADstands out for the following reasons:(1)    计算很原始(加法/减法操作)(2)    和CNN相比,训练一个VLAD

局部聚合向量(Vector of Locally Aggregated Descriptors,VLAD)一种编码方法,广泛用于基于音频的人脸识别、动态场景识别、头部姿态分

vlad用python实现_「vlad」VLAD算法简介 - seo实验室相关推荐

  1. java 平均分配算法_「角平分线」Java 计算角平分线 - seo实验室

    角平分线 有三个点,计算出角平分线.首先要算出两个点之间的方位角,根据方位角算出夹角.下面以角平分线长度是20示例计算. double dStartAngle = Math.atan2(mdE1 - ...

  2. mysql时间戳diff函数_「timestampdiff」MySQL函数---TIMESTAMPDIFF - seo实验室

    timestampdiff TIMESTAMPDIFF(Interval,datetime_expr1,datetime_expr2) 返回日期或日期时间表达式datetime_expr2- date ...

  3. 输入这是我的第一个python程序_「vs2017」vs2017 开始自己的第一个Python程序 - seo实验室...

    vs2017 这是针对于博客vs2017安装和使用教程(详细)的Python项目新建示例 目录 一.安装Python环境 二.启动程序 三.编写小程序 四.运行结果 五.交互式界面演示 一.安装Pyt ...

  4. python海伦公式_「海伦公式」海伦公式: - seo实验室

    海伦公式 l为半周长,s为面积 float l = (a + b + c) / 2; float s = sqrt(l*(l - a)*(l - b)*(l - c)); 文章最后发布于: 2018- ...

  5. python axes()_「axes」add_axes()——python绘图 - seo实验室

    axes add_axes新增子区域 add_axes为新增子区域,该区域可以座落在figure内任意位置,且该区域可任意设置大小 可以用来做一些子图,图中图 考虑如下代码: import numpy ...

  6. python waitpid_「waitpid」wait(),waitpid()函数 - seo实验室

    waitpid 首先我们来了解一下所谓的僵尸进程, 僵尸进程就是两个进程,一个父进程,一个子进程,其子进程终止后,0-3G的用户内存被回收,而3-4G的部分内存被回收,但是3-4G内存中的PCB等待父 ...

  7. mysql timestampdiff_「timestampdiff」MySQL timestampdiff()函数 - seo实验室

    timestampdiff MySQL TIMESTAMPDIFF函数简介 下面说明了TIMESTAMPDIFF函数的语法. TIMESTAMPDIFF(unit,begin,end); TIMEST ...

  8. java uniqueresult_「uniqueresult」hibernate uniqueResult方法 - seo实验室

    uniqueresult 数据库中根据你的查询条件只会返回唯一结果,就可以用uniqueresult这个方法!否则就用list():其返回类型为Object uniqueResult()方法通常是在业 ...

  9. 「数据结构」普林斯顿算法课第二周作业

    「数据结构」普林斯顿算法课第二周作业 Algorithm I, Princeton 编程作业: Deques and Randomized Queues 思路 Deque.java Randomize ...

最新文章

  1. eoiioe IE 和 firefox js 兼容问题
  2. jquery找祖先包含_Jquery的parent和parents(找到某一特定的祖先元素)
  3. 用python简单处理图片(2):图像通道\几何变换\裁剪
  4. ByteArray、16进制、字符串之间的转换
  5. 如何进行需求优先级管理?
  6. 顺丰同城通过港交所聆讯 今年前五个月收入为30.46亿元
  7. 手机应用开发者必看:移动开发者大势图
  8. 05章 体检套餐管理系统
  9. C语言记录元音字母的位置,求元音字母
  10. 虚拟机克隆后修改网络部分
  11. 分布式系统负载均衡策略分析与研究
  12. windows upd广播包无法发送到局域网解决方法
  13. borderColor与CGColor/UIColor
  14. 《VoIP技术构架(第2版·修订版)》一1.7 小结
  15. 计算机设备编号中字母代号对照,设备位号编号规则及含义
  16. [转帖]房博士教你购房(二)
  17. gitlab服务器代码存储位置,gitlab仓库存储位置的修改方法
  18. windows下,基于python3的wxpython体验+cxfreeze6.0使用
  19. 机器学习算法/模型——支持向量机
  20. EB tresos studio 配置SPC574K MCU Driver报错解决方法

热门文章

  1. 利用Album 实现仿微信图片选择(加入了图片剪裁)
  2. Mysql环境的搭建
  3. 《轩辕剑4》秘技小集
  4. 计算机图形学未来的应用领悟,【专栏】计算机图形学年鉴:研究现状、应用和未来...
  5. 创建pv时 pvcreate 提示Device not found (or ignored by filtering).
  6. springboot+mysql+微信小程序知识店铺平台-计算机毕业设计源码17094
  7. PrepareStatement和Statement的对比
  8. Drivedroid的读取写入速度初步测试
  9. [转载]九寨沟自游青年旅舍为您献上九寨沟二次进沟独门攻略!
  10. atom对比 vscode_当前主流的跨平台的三大编辑器(Atom,sublime,vscode)对比