1.Introduction and backgrounds

作为本周的论文之一,这是一篇bag of features的基本文章之一,主要了解其中的基本思路,以及用到的基本技术,尽量使得细节更加清楚。

文章中比较了两个基本的方法,分别是:BAYES和SVM。

bag of keypoints的基本原理是:

A bag of keypoints corresponds to a histogram of the number of occurrences of particular image patterns in a given image.

2. The main step

The main steps of our method are:
• Detection and description of image patches 虽然patches 是小块的意思,但是这similar to the meaning of patten
• Assigning patch descriptors to a set of predetermined clusters (a vocabulary) 第二部是对某一类的cluster 分配一个vocabulary
with a vector quantization algorithm 用一个矢量量化算法
• Constructing a bag of keypoints, which counts the number of patches assigned to each cluster实际转化为了计算hiastogram的分配问题,只是计算patten的histogram
• Applying a multi-class classifier, treating the bag of keypoints as the feature vector, and thus determine which category or categories to assign to the image.采用一个多分类的分类器对histogram进行 classify,最后得到每种分类

3.Therefore the steps involved in training the system allow consideration of multiple possible vocabularies:
• Detection and description of image patches for a set of labeled training
images
• Constructing a set of vocabularies: each is a set of cluster centres, with re-
spect to which descriptors are vector quantized.
• Extracting bags of keypoints for these vocabularies 提取这些词汇的keypoints,这些keypoints的定义是如何呢?(We refer to the quantized feature vectors (cluster centres) as “keypoints” by analogy with “keywords” in text categorization.)所以实际上应该指的histogram
• Training multi-class classifiers using the bags of keypoints as feature vectors 训练分类器,本文所采用两种分类器,分别所bayes分类器和SVM分类器

4.Feature extraction

就是特征的选取,作者一系列原因说明后,认为sift最好;

5. Visual vocabulary construction

总体目标:the vocabulary is a way of constructing a feature vector for classification that relates “new” descriptors in query images to descriptors previously seen in
training 实际就是建立相应的descriptor

经过一系列的说明,作者选择了比较常用的k-means算法作为vocabulaory building 的算法

但是k-means会带来两个问题:一、k-means仅仅对局部的最优化比较好;二、k-means的参数k是无法自己设定的,需要人工设定(作者解决方案是 多做几组,然后采用错误率最低的)

6.Categorization

(1) 贝叶斯分类

considering visual categorization, assume we have a set of labeled images I = Ii and a vocabulary V = vi of representative keypoints (i.e. cluster centers). Each
descriptor extracted from an image is labeled with the keypoint to which it lies closest in feature space. We count the number N(t,i) of times keypoint vi occurs in image Ii .

构造相应的分类特征,每个descriptor都被一个keypoint(空间内最近)所描述,然后计算每个keypoint在image I 中出现的概率,类似于计算histogram

P (C j | I i ) α P (C j )P (I i | C j )
将条件概率的计算,转化为反方向的计算,也就是计算其在训练时得到的已知类别情况下的vocabulary出现概率,一旦出现新的输入image,那么就可以直接就算其每个类别的出现概率

(2) SVM 分类

SVM实际就是边界最大化的分类方法

In order to apply the SVM to multi-class problems we take the one-against-all approach. Given an m-class problem, we train m SVM’s, each distinguishes images from
some category i from images from all the other m-1 categories j not equal to i. Given a query image, we assign it to the class with the largest SVM output。

所采用的并不是所谓的多标签学习,还是一种二分的方法,先把一种类别同其他类别进行区分,然后再不断二分,如此继续。

7.实验结果

In the first we explore the impact of the number of clusters on classifier accuracy and evaluate the performance of the Naïve Bayes classifier. We then explore the performance of the SVM on the same problem.

(1)贝叶斯方法 k=1000时效果比较好

(2)SVM中linear method gave the best performance (except in the case of cars where a quadratic SVM gave better results)

SVM方法明显比贝叶斯方法好很多

Visual Categorization with Bags of Keypoints的更多相关文章

  1. First-Spike-Based Visual Categorization Using Reward-Modulated STDP

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract 强化学习(RL)最近以击败欧洲围棋冠军等重大成就重新受到欢迎.在这里,我们第一次表明,RL可以有效地用于训练一个脉冲神经 ...

  2. SIFT+BOW 实现图像检索

    原文地址:https://blog.csdn.net/silence2015/article/details/77374910 本文概述 图像检索是图像研究领域中一个重要的话题,广泛应用于医学,电子商 ...

  3. lecture7图像检索-七月在线-cv

    http://blog.csdn.net/u014568921/article/details/52518587 图像相似性搜索的原理 BOW 原理及代码解析 Bag Of Visual Words ...

  4. BoW(SIFT/SURF/...)+SVM/KNN的OpenCV 实现

    本文转载了文章(沈阳的博客),目的在于记录自己重复过程中遇到的问题,和更多的人分享讨论. 程序包:猛戳我 物体分类 物体分类是计算机视觉中一个很有意思的问题,有一些已经归类好的图片作为输入,对一些未知 ...

  5. Computer Vision_33_SIFT:Speeded-Up Robust Features (SURF)——2006

    此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...

  6. state-of-the-art implementations related to visual recognition and search

    http://rogerioferis.com/VisualRecognitionAndSearch2014/Resources.html Source Code Non-exhaustive lis ...

  7. ColorDescriptor software v4.0 一个提取颜色特征描述子的软件包

    ColorDescriptor software v4.0 Created by Koen van de Sande, (c) University of Amsterdam Note: Any co ...

  8. ### Paper about Event Detection

    Paper about Event Detection. #@author: gr #@date: 2014-03-15 #@email: forgerui@gmail.com 看一些相关的论文. 1 ...

  9. cvpr2015papers

    @http://www-cs-faculty.stanford.edu/people/karpathy/cvpr2015papers/ CVPR 2015 papers (in nicer forma ...

随机推荐

  1. list add() 和 addall()的区别

    http://blog.tianya.cn/post-4777591 如果有多个已经被实例化的List 集合,想要把他们组合成一个整体,并且,这里必须直接使用List 自身提供的一个方法List.ad ...

  2. javaweb学习4——HttpServletRequest的使用

    声明:本文只是自学过程中,记录自己不会的知识点的摘要,如果想详细学习JavaWeb,请到孤傲苍狼博客学习,JavaWeb学习点此跳转 本文链接:https://www.cnblogs.com/xdp- ...

  3. Frida----frida tools的使用

    翻译自官方网站:https://www.frida.re/docs/home/ 如果有理解不对的地方,请大家指出 frida Cll frida -U 包名 调试连接到电脑上设备中的应用 frida ...

  4. 阿里云centos7.4安装并部署svn1.10.0版本(配置多仓库,加入开机自启动)

    如何安装最新版本 1.10.0: 如果已安装旧版本,先卸载 yum remove subversion* 查看当前可安装的版本 yum list | grep subversion 可以去官网下载安装 ...

  5. int str input的运用

  6. 使用Chrome控制台进行3D模型编辑的尝试

    前言:3D模型编辑的核心是对顶点位置和纹理颜色的编辑,这个研究的目的在于寻找一种通过编程方式直接对模型进行编辑的方法,这种编辑方法和时下流行的通过鼠标点选.拖拽进行编辑的方法之间的关系,和前端编程中“ ...

  7. Unity 自定义编辑器窗口 画线

    最近在学习状态机, 想自己实现一个可视化编辑器, 需要将多个状态之间用线条连接起来, 效果如下: 代码如下: Material m;Vector2 start;Vector2 end;Color co ...

  8. 关于UC浏览器兼容scroll事件问题

    经过本人查阅无数资料,最终得出一个比较简单,具有一定兼容性的结果. $(window).scroll(function( ) { var scrollTop = document.documentEl ...

  9. AtCoder | ARC102 | 瞎讲报告

    目录 ARC102 前言 正文 传送链接~ ARC102 前言 实在是太菜了....写完第一题就弃疗..感觉T3好歹也是道可做题吧!!然后T2怎么又是进制拆分! 正文 A 题意 给你两个数字\(n,k ...

  10. NO.7:自学python之路------类的方法、异常处理、socket网络编程

    引言 我visual studio 2017就算体积巨大.启动巨慢.功能简陋也不会安装PyCharm的,嘿呀,真香.好吧,为了实现socket网络编程,更换了软件. 正文 静态方法 只是在名义上归类管 ...