正如标题所示,这里将记录VLAD的一切。VLAD本小子虽然也读过几篇这方面的paper,不过读的时候一直理解的很粗糙。所以想借此机会开个帖子,一方面驱动自己去加深对它的理解,另一方面把这些自己对它的理解记录下来,方便自己查阅。

VLAD初步

在进行理论分析之前,先来看看VLAD长个什么样子,这里本小子分步展开VLAD是怎么得来的。

  1. 提取SIFT特征。对于一个样本数为N的数据库,先对图像库中的所有图像提取SIFT描述子,假设提取到了所有SIFT描述子数目为n,用X来表示的话,X就是一个n*128的矩阵。
  2. 聚类生成词汇向量。假设要生成K个单词,对X直接用Kmeans聚成K类,类中心即为单词(也叫码字)。
  3. 生成VLAD向量。这一步其实如果对BOW的生成过程清楚的话,这一步理解起来就非常简单了。BOW统计的是描述子落入最近单词里的数目,而VLAD统计的则是这些落入最近单词里与该单词的累积残差。根据Aggregating local image descriptors into compact codes的描述:

By counting the number of occurrences of visual words, BOW encodes the 0-order statistics of the distribution of descriptors. The Fisher vector extends the BOW by encoding high-order statistics (first and, optionally, second order).

BOW做的是描述子的0阶统计分布,而FV则是扩展了的BOW的高阶统计。这里引出来的FV是什么呢?VLAD是FV的特例,这里我们先不关注FV,我们只要借此推得VLAD是BOW的高阶统计就行。

经过上面三个步骤后,一幅图像可以用一个1*(K*128)维的向量表示。为了初步验证上面的过程是否正确,来看看上面那篇论文中VLAD的维数是否如这里所理解的是一个1*(K*128)维的向量,直接看实验表:

上表中FV和VLAD的D表示维数,我们看到D=K*64,这里为什么不是128呢?原因在于作者对SIFT进行了PCA降维处理,将128维降到了64维。

上面VLAD生成过程用文字描述起来不够简洁,直接把论文里计算VLAD的算法流图扒过来了,算法流图如下:

提取VLAD

在对VLAD有了初步的认识后,接下来我们可以动手提取VLAD,通过实验来进一步了解VLAD。

(待续)

参考:

  1. 机器学习笔记——Fisher vector coding
  2. Large-scale visual recognition Novel patch aggregation mechanisms
  3. VLAD
from: http://yongyuan.name/blog/all-about-vlad.html

VLAD教程和资料 All about VLAD相关推荐

  1. 手机开发平台指南、教程和资料介绍

    近来无事,把手机开发平台的学习指南.教程和资料总结一下,方便大家参考.     手机客户端软件开发最大的困难就是平台不统一,手机开发平台太多.     手机可分为智能手机开发和feather phon ...

  2. 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全

    史上最牛的Linux内核学习方法论   点击下载 我的arm_linux移植笔记   点击下载 S3C2440完全开发流程   点击下载 Linux系统命令及其使用详解完整版   点击下载 Linux ...

  3. 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全...

    史上最牛的Linux内核学习方法论 点击下载 我的arm_linux移植笔记 点击下载 S3C2440完全开发流程 点击下载 Linux系统命令及其使用详解完整版 点击下载 Linux主要shell命 ...

  4. 新手怎样如何学习单片机,单片机自学教程入门资料分享

    王云的51单片机教程全套资料,大家可以随便下载了.链接:http://www.yunlongdz.cn/1/110.htm 想学好单片机其实并不困难,单片机是一门实践性非常强的的学科,学习时要理论与实 ...

  5. 贡献30本经典Linux学习和开发教程和资料,都是pdf完整版的

    贡献30本经典Linux学习和开发教程和资料,都是pdf完整版的 |字号 订阅 完全免费下载:无需注册也无需积分 pdf版经典Linux学习教程资料列表:     电子书       下载链接    ...

  6. SnapGene 中文视频学习教程 教学 资料分子生物学DNA序列分析

    SnapGene 中文视频学习教程 教学 资料分子生物学DNA序列分析

  7. 手机开发平台指南、教程和资料介绍(修改稿)

    欢迎转载,转载请注明出处.作者:手机即信息 博客:http://canco.javaeye.com 近来无事,把手机开发平台的学习指南.教程和资料总结一下,方便大家参考. 手机客户端软件开发最大的困难 ...

  8. Elasticsearch入门到精通教程 - 学习资料综合

    背景 因经常被问到Elasticsearch相关一些资料教程,这里特例整理一份以前自己的学习资料,希望对你有用. 信息资料 1. 基本API用法教程 Elasticsearch JAVA API教程G ...

  9. ROS_Kinetic_01 在 Ubuntu 16.04 安装ROS Kinetic 全教程附资料和镜像 2018.10.20更新

    Exbot易科机器人实验室新站点(测试中):http://server.blackant.org:23452/ 2018 ROS Melodic的迷失与救赎::https://blog.csdn.ne ...

最新文章

  1. MPC8313ERDB不新鲜pkg包裹,把文件放进Ramdisk
  2. 吴裕雄 oracle PL/SQL编程
  3. STM32F103 IAP编程调试记录
  4. 深度软件商店_3D深度相机,这就是微软未来手机Surface Duo新特性
  5. 水晶报表如何查看sql_有了这个报表工具,一键生成自定义的各种报表,还可以导出Excel...
  6. easyUI 日期控件修改...
  7. html过滤 -java_PHP过滤各种html标签
  8. SQL SERVER 2012 只能识别20个CPU的问题
  9. js基础---字符串方法
  10. 一款简洁大气的个人主页源码
  11. 基于RGB-D图像的语义场景补全研究进展综述
  12. python svm核函数_Python.SVM(三)核方法
  13. 【iOS】 Foundation 数组
  14. 【时间序列】时序资料及工具汇总:模型和常见库对比
  15. 四川大学计算机学院软件工程期末,四川大学软件工程期末复习ppt
  16. C#编写数据分析软件(附源码)
  17. 第三方SDK编写文档 - iOS
  18. 面向对象封装放大镜js代码
  19. 用Photoshop给照片换美丽天空
  20. chk文件恢复和文件恢复的区别有哪些?

热门文章

  1. 穷不可怕,可怕的是“穷人思维”
  2. LambdaMART的思想
  3. 美国进入“非结构化”数据分析新时代
  4. 30年来我只坚持三件事
  5. Java Review - 线程池中使用ThreadLocal不当导致的内存泄漏案例源码分析
  6. Apache ZooKeeper - 构建ZooKeeper源码环境及StandAlone模式下的服务端和客户端启动
  7. 小工匠聊架构-写给研发工程师的全链路压测
  8. Spring Boot2.x-12 Spring Boot2.1.2中Filter和Interceptor 的使用
  9. Linux keypad 设备树,SC7731客户配置文档.pdf
  10. python 链表的反转