基于哈希的图像检索技术

为何在图像检索里面使用到哈希(hashing)算法?

基于哈希算法的图像检索方法将图片的高维内容特征映射到汉明空间(二值空间)中,生成一个低维的哈希序列来表示一幅图片,下降了图像检索系统对计算机内存空间的要求,提升了检索速度,能更好的适应海量图片检索的要求。html

最近或者最近邻问题在大规模的数据查询中用得很是多。可是他们都会遇到一个问题,就是"维数灾难"。也就是说当数据的维数太大的时候,以前的那些索引方法(如KD树)就不能起到做用,这时候新的方法就颇有必要,哈希算法知足了这个要求。算法

 

类似性搜索算法的评价标准

为了解决类似性搜索问题,人们提出了不少类似性搜索的算法实现,而为了衡量这些算法的优劣,须要引入类似性搜索算法的评价机制。通常来说,一个类似性搜索算法能够从如下几个方面进行评价数据库

这个性质描述的是类似性搜索算法的查询质量。对于给定的查询请求,算法必须返回符合条件的查询结果,并且查询结果最好能和经过线性查找获得的结果一致。文本检索领域的两个著名指标能够用在此处来衡量查询质量,它们分别是召回率(recall)和精度(precision)。网络

召回率和精度的定义以下:函数

 

CBIR中的Hashing算法有哪些?

要解决这个问题,首先咱们得用数学的方法将这个问题描述一下:性能

咱们有一个包含个点的集合,,这样矩阵的形式就是。咱们的目标是寻找到一个二元编码的集合,c表示编码的长度。对于每个位咱们使用,是超平面的系数。学习

 

从训练数据是否有Label(标记)上来分,CBIR中的hashing算法分为三类,监督学习,无监督学习,半监督学习。优化

 

监督学习

Semantic hashing (RBMs)

受限玻尔兹曼机是一个深度学习模型,每一层都表示一个受限玻尔兹曼机,最底层受限玻尔兹曼机的输入是原始高维数据,经过该受限玻尔兹曼机计算获得一个中间值,而后将这个中间值做为下一个受限玻尔兹曼机的输入,继续计算获得新的中间值,重复此过程,直到从顶层的受限玻尔兹曼机计算获得最终的编码结果。这个过程被称做预训练。而图的右半部分表示将这个深度学习模型展开以后,经过调整这个深度学习模型中每层之间的参数和权重,进而获得一个深度自动编码机的过程。这个过程被称做微调。编码

RBMs包括两个重要的步骤:无监督的训练和监督的调整。无监督训练阶段,利用spa

贪心训练算法逐步逐层的计算输入与输出之间的关系。经过对比度使得每一层的参数收敛。每一层的参数都做为计算下一层参数的输入。在调整阶段,加标签的数据被用来调整无监督训练阶段学习到的神经网络。

缺点:

实验证实,受限玻尔兹曼机索引算法能够获得较好的索引结果。但因为其自身模型的复杂性,致使其运行效率低下,须要花费较长时间来获得训练结果。

 

非监督学习

位置敏感哈希(Locality Sensitive Hashing LSH,1999)

LSH是最近比较流行的一种类似性搜索算法,它的基本思想是经过k个串联的具备位置敏感性的哈希函数将原始的数据空间映射到二维的数据空间,而后在查询时计算查询点的K维哈希值,根据该哈希值取得候选数据集,最后经过计算候选数据集中每一个点与查询点的距离获得符合查询条件的结果。LSH具备较好的时间效率,并且在高维数据空间依然可以保持良好的性能,所以被普遍应用在不少领域。

 

这个方法实际上是最简单的一种hash方法,只要产生k个哈希函数h(x),对于每个数据点x,进行计算,就能获得hash值。

 

缺点:

位置敏感哈希索引算法极大地提升了高维数据索引的效率,解决了树形结构索引算法没法克服的效率问题,可是因为位置敏感哈希索引算法中采用了随机映射算法,使得索引结果不可控,在实际应用中结果不稳定,而且实验代表,随着索引编码位数的上升,索引结果提高缓慢。与其余语义哈希索引算法相比,位置

敏感哈希索引算法的索引结果准确率较低。

 

谱哈希(NIPS 08)

方法:

谱哈希索引算法根据索引编码应该知足的条件,对原始高维数据集进行谱分析,再经过放松限制条件,将该问题转换成拉普拉斯特征图的降维问题从而求解。而后谱哈希索引算法引入了特征函数的概念来处理训练集外数据的问题。整个算法流程以下:首先利用主成分分析法对原始高维数据进行降维处理,而后计算获得全部的解析特征函数(analytical eigenfunction), 最后将这些解析特征函数二值化从而获得最终的二元索引编码。

可是因为谱哈希索引算法在其索引编码过程当中,直接应用了主成分分析法来

对高维特征进行降维处理,从而使得原始特征的每一维(例如视觉单词)都参与

到后续编码过程当中,可是通常而言,给定一幅图像,其所蕴含的语义只需有限视

觉单词就能表达,而不用全部视觉单词来参与表达。因为没有处理冗余高维

特征的问题,谱哈希索引算法的结果受到必定影响。而且谱哈希索引算法假设了

原始高维数据均匀分布,从而选择了理论最优值0做为阈值。可是在实际应用中

数据并不能老是知足均匀分布这个条件,所以选择0做为阈值不适合全部的数据

集。

谱哈希的目标函数以下:

 

 

其中是相关性矩阵,;保证了索引编码是二进制结果,保证了全部编码结果的每位为-1或1的几率是相等的,即为50%;保证了索引编码结果每一位是互不相关的。

为了求解该公式, 谱哈希引入拉普拉斯矩阵L而且松弛的二元限制条件,因而公式求解转换成求解的特征值问题,即拉普拉斯特征图的降维。最后公式的解就是D – W的前k个最小特征值(除0之外)对应的特征向量。其中D是一个的对角矩阵,而且。为了解决训练集外图像索引编码的问题,可将特征向量转化为特征方程,经过有权重的拉普拉斯—贝特拉米算子的特征方程来实现。所求得的特征方程和特征解以下:

 

 

ITQ算法(2013)

这个方法是同窗极力向我推荐的一个方法,主要缘由就是方法简单,好理解,同时效果又很好。

该算法分为两部分,第一部分是PCA,第二部分是旋转迭代。

第一步是PCA:

根据半监督学习,咱们的目标是使得每一位比特的方差最大,而且各自无关。这样咱们就能够写出目标函数:

 

 

下面就是简单的将sgn去掉,也就是{-1,1}空间转化为连续空间,就能获得

 

 

是对 的松弛,咱们能够理解为超平面互相垂直。同时,这跟PCA的目标函数相同,因此,可使用PCA的方法。

第二步:迭代量化

假设是映射空间的一个向量,那么sgn(v)就是超方体(hypercube)的最近的顶点,那么损失函数越小,结果就越能保留数据的位置结构(locality structure)。回到第一步咱们会发现,若是W是最优解,那么也是最优解,前提是R是一个的正交矩阵。所以,咱们能够对映射数据进行正交变换,从而使得

这样,这个方程就变为经过旋转V来使得损失函数最小,解决这个问题的方法是一种相似于K均值的迭代量化方法。

固定R更新B。展开一下上式,就会变为如下形式:

 

因此,咱们能够获得

其中。这样就可以获得。

固定B更新R。对于固定了B来求解R,这就是一个正交P问题(Orthogonal Procrustes problem),直接经过一下方式来求得:首先用SVD分解的矩阵,,使得而后获得。

做者使用了50次的迭代,就能收敛了。

这样,这个简单的方法就结束了。

 

半监督学习

Semi-Supervised Hashing for Scalable Image Retrieval(2010 CVPR)

方法:

 

利用半监督哈希算法来进行图像检索是王骏等人2010年在CVPR上提出的,前面介绍的监督哈希算法和无监督哈希算法都有其明显的优缺点。无监督哈希算法

的速度相对于监督哈希算法来讲要快,且不须要图库中的图片有任何标签,彻底利用图片的内容特征来学习哈希函数,但这样也会失去图片标签带有的丰富的语义信息。监督哈希算法要求训练图片带有标签,利用了图片标签带有的丰富语义信息来学习哈希函数,但监督哈希算法的速度较慢。王骏提出一种半监督哈希算法,充分融合了无监督哈希和监督哈希算法的优势。

巨量的图片中有一小部分是带有标签的,剩余部分不带有标签,这是与现实状况相符的。半监督哈希要求训练库中有一小部分图片带有标签,这些标签信息提供监督信息。图片的内容特征提供非监督信息。结合监督信息和非监督信息来学习哈希函数。这一思想与现实状况彻底相符。

半监督哈希的算法过程以下:

定义以下目标函数:

 

 

上式中,表示图片的哈希码序列的第k个,值为1或-1。为所要学习的向量。由于X是以0对称的,因此。表示图片i和j的标签同样或者说图片i和图片j类似, 表示图片i和图片j的标签不一样或者说图片i和图片j不类似。

咱们可使用矩阵形式来表示上述式子,首先定义一个矩阵和带有成对标签信息的,咱们对S进行以下定义:

 

最大化上述目标函数的意义是使得类似的图片或者标签相同的图片的哈希码的对应位均为1或-1,而标签不相同的图片的哈希码的对应位一个为1,令一个为-1,也就是说能保证类似图片的哈希码理论上同样,而不类似的图片哈希码相差大。目标函数写成矩阵形式以下:

另外假设,将XL映射到K位比特的哈希代码,这样目标函数J(W)就能够被表示成这样:

 

用sgn()函数取代一下就可以获得

 

函数的意思是对矩阵里面每一个元素使用sign函数

上式中只有监督信息成分,在实际的使用过程之中,尤为是当有标签的数量相对于总体数据库比较小的时候()有过拟合的状况(overfitting),因此就须要加上"规则(regularization)"。根据谱哈希,但愿产生的哈希编码可以独立,而且经过平衡切割数据,使得每一位多包含的信息量最大。可以知足平衡条件的 会将X分红相等的大小的两部分。

松弛目标函数:

上面式子提出的问题自己是一个NP问题,为了解决这个问题,咱们要使用松弛技术。首先咱们使用"signed magnitude"技术,这个技术在谱哈希中也是用到了,就是讲{-1,1}的哈希空间直接变换到实数R空间,这样目标函数就变为了:

 

以后松弛平衡分割,做者推导出这个式子,意味着平衡分割跟使得k位的方差最大是等价的:

 

以后目标函数又能够改写成为

 

令,这样咱们就能获得

 

而正交的关系能够经过来松弛。这样一个最优化为题就被成功地转化为一个求解矩阵M的特征的问题:

 

 

这里是矩阵M最大的特征值,而是相应的特征向量。这样咱们就成功地求取了W。

自己能达到这样已经不错了,可是做者在这个方法上面还更近了一步,做者认为还能够松弛正交限制。由于正交限制的做用是使得各个比特位不相关,可是这会致使问题。在大多数实际的数据库中,大方差只出如今不多的几个方向上,正交限制强迫咱们去选择方差小的比特位,这样会致使低位的比特的质量不高,不可以包含足够的信息。这样,做者为了替代原来的hard constrains,而使用了惩罚项,这样的话目标函数就能够改写为:

 

 

这样就能够同归对W进行微分,来求解了:

 

而后拆开,就可以获得:

 

假如是正定的,那么这个方程将很好解,正定的条件也很简单,就是

咱们假设,若是Q是正定的,那么Q能够改写为(Cholesky decomposition)。而,咱们就可以获得。是矩阵M的最大的k个特征向量。

 

没想到用Word发博客这么渣渣,word版能够到网盘下载

 

本文转自:http://www.cnblogs.com/tendence/p/3798952.html

相关文章
相关标签/搜索