lecture7图像检索-七月在线-cv
http://blog.csdn.net/u014568921/article/details/52518587
论文提要“Visual Categorization with Bags of Keypoints”
哈希算法:均值~、感知~(DCT)、差异~
bag of words--》图像
由于图像中的词汇不像文本文档中的那样是现成的,我们需要首先从图像中提取出相互独立的视觉词汇,这通常需要经过三个步骤:
(1)特征检测
(2)特征表示
(3)单词本的生成,
除了用SVM的RBF核,还自己定义了一种核: histogram intersection kernel,直方图正交核。
特征使用的是BOK,统计图像中特定模式出现次数的直方图,这里的K是keypoints,即聚类中心。
4.通过tf-idf对频数表加上权重,生成最终的bof。(因为每个类心对图像的影响不同。比如超市里条形码中的第一位总是6,它对辨别产品毫无作用,因此权重要减小)。
图像检索中应用LSH(位置敏感hash)实现快速搜索,其在一定概率的保证下解决了高维特征查询的问题,但笔者在应用LSH结合SIFT特征实践图像检索实验时,由于每张图像涉及上百个特征,那么在查询一张图片时,需要进行上而次的特征查询,即便是将查询图片的特征点数筛选至50%的量,一次图片查询需要进行的特征查询次数亦不容小窥。那么有没有方法可以将任意图片的所有特征向量用一个固定维数的向量表出,且这个维数并不因图片特征点数不同而变化?
Bag-of-Features模型仿照文本检索领域的Bag-of-Words方法,把每幅图像描述为一个局部区域/关键点(Patches/Key Points)特征的无序集合。使用某种聚类算法(如K-means)将局部特征进行聚类,每个聚类中心被看作是词典中的一个视觉词汇(Visual Word),相当于文本检索中的词,视觉词汇由聚类中心对应特征形成的码字(code word)来表示(可看当为一种特征量化过程)。所有视觉词汇形成一个视觉词典(Visual Vocabulary),对应一个码书(code book),即码字的集合,词典中所含词的个数反映了词典的大小。图像中的每个特征都将被映射到视觉词典的某个词上,这种映射可以通过计算特征间的距离去实现,然后统计每个视觉词的出现与否或次数,图像可描述为一个维数相同的直方图向量,即Bag-of-Features。
-----------------------------------------------------------------------------------------------------------------------------
基于内容的图像检索,即CBIR(Content-based image retrieval),是计算机视觉领域中关注大规模数字图像内容检索的研究分支。
googleNet就去掉了全连接层,但是VGG保留了
卷积层通常的维度比较高,池化曾可以达到保持图像信息的情况下,降低维度的目的
ANN-近似最近邻,包括LSH\K-MEANS\K-D tree --- 基本思想:对空间不断做划分,缩小范围和提速
局部敏感哈希(Locality-Sensitive Hashing, LSH)
http://blog.csdn.net/joyce19920920/article/details/47065337
http://blog.csdn.net/icvpr/article/details/12342159
https://zhuanlan.zhihu.com/p/30388003
传统hash和局部敏感hash的区别:后者是把本来空间里相近的引射到也相近的空间
如果object p和q之间距离如果小于r(和上面ANN提出来的一样),那么他们就会有一个很大的概率会属于同一个类,如果p和q之间的距离大于cr那么他们会有一个比较小的概率属于同一个类,来看看怎么算这个相似概率,比如给出进行hash function的p =10001000,q = 11001100,那么p和q的相似性就等于1-2/8 = 3/4, 也就是红色代表的不想似的个数除以码长
通过建立Hash Table的方式我们能够得到O(1)的查找时间性能,其中关键在于选取一个hash function,将原始数据映射到相对应的桶内(bucket, hash bin),例如对数据求模:h = x mod w,w通常为一个素数。在对数据集进行hash 的过程中,会发生不同的数据被映射到了同一个桶中(即发生了冲突collision),这一般通过再次哈希将数据映射到其他空桶内来解决。
找到这样一些hash functions,使得经过它们的哈希映射变换后,原始空间中相邻的数据落入相同的桶内的话,那么我们在该数据集合中进行近邻查找就变得容易了,我们只需要将查询数据进行哈希映射得到其桶号,然后取出该桶号对应桶内的所有数据,再进行线性匹配即可查找到与查询数据相邻的数据。
这些hash function需要满足以下两个条件:
1)如果d(x,y) ≤ d1, 则h(x) = h(y)的概率至少为p1;
2)如果d(x,y) ≥ d2, 则h(x) = h(y)的概率至多为p2;
其中d(x,y)表示x和y之间的距离,d1 < d2, h(x)和h(y)分别表示对x和y进行hash变换。
满足以上两个条件的hash functions称为(d1,d2,p1,p2)-sensitive。而通过一个或多个(d1,d2,p1,p2)-sensitive的hash function对原始数据集合进行hashing生成一个或多个hash table的过程称为Locality-sensitive Hashing。
哈希表
http://www.jianshu.com/p/dbe7a1ea5928
CVPR是IEEE Conference on Computer Vision and Pattern Recognition的缩写,即IEEE国际计算机视觉与模式识别会议。
GIST特征
https://www.zhihu.com/question/33407439
HOG+SVM做行人检测
http://blog.csdn.net/leifeng_soul/article/details/52608575
基于deep learning的快速图像检索系统
http://blog.csdn.net/han_xiaoyang/article/details/50856583
积分图像
http://blog.csdn.net/maweifei/article/details/62217495
想让你的CBIR系统更快?
多的一个全连接-4096和100类分类全连接层中插了一层128个神经元并加有非线性变换,所以每一维是0-1的连续值
库:
FLANN 、Lshash。。。。
全连接层输出-针对电商
类别、属性、id
lecture7图像检索-七月在线-cv的更多相关文章
- 第六课cnn和迁移学习-七月在线-cv
ppt 参数共享终于把拿一点想清楚啦,一定要知道w是矩阵! 在传统BP中,w前后连接时是all的,辣么多w使得你给我多少图片我就能记住多少信息-->导致过拟合-->cnn当中权值共享 激励 ...
- lecture4特征提取-七月在线-cv
霍夫变换 http://blog.csdn.net/sudohello/article/details/51335237 http://blog.csdn.net/glouds/article/det ...
- 七月在线爬虫班学习笔记(五)——scrapy spider的几种爬取方式
第五课主要内容有: Scrapy框架结构,组件及工作方式 单页爬取-julyedu.com 拼URL爬取-博客园 循环下页方式爬取-toscrape.com Scrapy项目相关命令-QQ新闻 1.S ...
- 七月在线爬虫班学习笔记(六)——scrapy爬虫整体示例
第六课主要内容: 爬豆瓣文本例程 douban 图片例程 douban_imgs 1.爬豆瓣文本例程 douban 目录结构 douban --douban --spiders --__init__. ...
- 七月在线爬虫班学习笔记(二)——Python基本语法及面向对象
第二课主要内容如下: 代码格式 基本语法 关键字 循环判断 函数 容器 面向对象 文件读写 多线程 错误处理 代码格式 syntax基本语法 a = 1234 print(a) a = 'abcd' ...
- lecture1-Word2vec实战班-七月在线nlp
nltk的全称是natural language toolkit,是一套基于python的自然语言处理工具集.自带语料库.词性分类库.自带分类分词等功能.强大社区支持.很多简单版wrapper 文本处 ...
- 牛客网/LeetCode/七月在线/HelloWorld114
除了知乎,还有这些网站与offer/内推/秋招/春招相关. 其中HelloWorld114更是囊括许多IT知识. 当然,我们可以拓宽思考的维度,既然课堂上的老师讲不好,我们可以自己找资源啊= => ...
- 七月在线spark教程
链接:https://pan.baidu.com/s/1Ir5GMuDqJQBmSavHC-hDgQ 提取码:qd2e
- python多种格式数据加载、处理与存储
多种格式数据加载.处理与存储 实际的场景中,我们会在不同的地方遇到各种不同的数据格式(比如大家熟悉的csv与txt,比如网页HTML格式,比如XML格式),我们来一起看看python如何和这些格式的数 ...
随机推荐
- js如何简单实现汉字转成拼音的功能
最近项目需要一个功能,实现汉字转拼音功能,具体比如说输入一个“你好”,同时带出对应拼音“NiHao”,在此做一下记录 1.首先引入两个文件 <script src="jquery.mi ...
- 机器学习---笔记----Python基础
一. python简介 1. python 具有丰富强大的库,常被称为胶水语言,能够把用其他语言制作的各种模块很轻松地联结在一起 2. python强制使用空白符(white space)作为语句缩进 ...
- 银联接口C#
银联支付: ChinaPay的会员商户接入支付平台,以方便商户开展网上支付交易. 持卡人从商户网站中生成订单信息,通过公共支付交易平台中的支付网关子系统进行支付的过程,其交易流程包括订单确认.支付处理 ...
- 我眼中的Linux系统和红帽RHCE认证
牛顿曾经说过“我不知道在别人看来,我是什么样的人:但在我自己看来,我不过就象是一个在海滨玩耍的小孩,为不时发现比寻常更为光滑的一块卵石或比寻常更为美丽的一片贝壳而沾沾自喜,而对于展现在我面前的浩瀚的真 ...
- day22 模块_1
核能来袭--模块 1.简单了解模块 2.Collections 3.Time模块 4.functools 一.初识模块 其实之前写的每一个PY文件都是一个模块 还有一些我们一直在使用的模块 buil ...
- C++标准库头文件名字和C语言头文件名字的区别
1.C++版本的C标准库头文件,一般是cname,而C语言头文件一般是name.h 2.命名为cname的头文件中定义的名字都是从std中来的,而如果是name.h则不是这样的. 3.与是用name. ...
- 二. Python基础(2)--语法
二. Python基础(2)--语法 1.实现一个简单的登录系统 '''# 形式1 n = 1 while n < 4: name = input("请输入姓名\n" ...
- Cracking The Coding Interview 1.5
//原文: // // Write a method to replace all spaces in a string with '%20'. // #include <iostream> ...
- 奇怪问题之@RequestBody问题
在项目中使用到了@RequestBody注解:该注解的作用是获取Request请求中body中的数据:最近测试项目的时候发现调用该接口的时候直接返回状态400,当将@RequestBody注解去掉以后 ...
- let var区别
function varTest() { var x = 1; if (true) { var x = 2; // 同样的变量! console.log(x); } console.log(x); } ...