一种基于离散局部线性嵌入哈希的高效图像检索方法与流程

文档序号:14725719发布日期:2018-06-19 06:55阅读:162来源:国知局

本发明涉及图像检索,具体是涉及一种基于离散局部线性嵌入哈希的高效图像检索方法。



背景技术:

随着计算机技术的快速发展,互联网已经渗透到了我们生活中的各个方面,因此其上的数据无时无刻都在增加,目前其数据在现有容量与增长速度上已经远远超过当前技术的处理能力。面对数据量如此之快的增长速度,如何利用好这些数据面临两个需要解决的问题,即如何更加有效的利用存储空间与如何在海量的内容中准确并快速地找到需要的信息。相对于如何有效地利用存储空间,如何在海量的内容中准确并快速地找到用户需要的信息在现有的技术条件下更具有难度。在对音频、图片、视频进行检索与查找时,现有的解决方案无法满足准确率与时间复杂度上的要求。基于内容的检索系统(CBIR:Content Based Information Retrieve)近年来在商业应用与学术研究领域得到了越来越多的关注与投入。相比于传统的文本数据检索采用的关键词索引方式,CBIR需要更加高效的索引机制。

在数据库中进行相似数据的搜索也成为最近邻搜索(ANN:approximated nearest neighbor search),其有两个关键问题:1、特征维度较高;2、数据量较大。因此,简单的穷尽搜索面临非常高的时间复杂度的问题,将原始数据从存储中加载到内存也成为了现实应用中所必须解决的一个瓶颈。近年来来,在实际应用中出现了一些时间复杂度为次线性的快速有效的最近邻搜索方法,例如:KD树、Ball树、Metric树、vantage-point树等。然而,基于树的索引方法本身存在着一个不能忽视的问题,这些方法需要的存储空间太大,在某些时候存储这些索引树的空间甚至超过存储数据本身所需的存储空间。同时随着数据的维度增加时,会对数据检索时间造成很明显的影响,其检索时间会急剧增加。与基于树的索引将数据空间进行递归的划分不同,哈希类算法(又可以称作二值编码)重复的对整个数据空间进行二类划分,同时对于每一个划分进行一次二值编码。即哈希算法将输入数据映射到一个离散的汉明空间,每一个数据点用一串二值码表示。在大多数情况下哈希算法不使用编码后得到的二值码进行穷尽检索,而是将其组织成哈希表的形式每一个哈希码在表中对应其中一个项目,如图1所示。汉明距离可以通过异或操作进行快速计算,因此使用哈希码对数据库进行穷尽检索,时间复杂度也能满足应用要求。但是我们如果将编码后得到的二值码如图1那样组织成表的形式,其实在本质上这是一个倒排索引可以在常量时间内进行查找。

目前具有代表性的哈希方法有:半监督哈希,监督哈希,无监督哈希,以及深度学习结合的哈希。然而,这些基于学习的哈希方法,从利用监督信息来区分可以分为监督学习哈希方法,无监督学习哈希方法。由于获取监督信息成本较高,在超大规模数据的情况下只有很少部分数据带有监督信息,因此目前主流的研究热点为无监督学习哈希方法与半监督学习方法。虽然与深度学习相结合的哈希在检索性能上表现优异,但是在训练时需要监督信息。本文主要研究无监督学习哈希方法,并通过利用利用数据数据之间的局部线性关系而获得更好的哈希表示,而不是像距离尺度学习一样假设原始数据在空间存在一个统一的语义距离能够很好的表示数据与数据之间语义距离,而数据局部的之间的关系即数据的最近邻更能体现数据语义相似性。诱导流型哈希(Inductive Hashing On Manifolds)(参考文献Shen,Fumin,Chunhua Shen,Qinfeng Shi,Anton Van Den Hengel,and Zhenmin Tang.“Inductive hashing on manifolds.”In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2013),局部线性哈希(Locally Linear Hashing)(参考文献Irie,Go,Zhenguo Li,Xiao-Ming Wu,and Shih-Fu Chang.“Locally linear hashing for extracting non-linear manifolds.”In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2014.)利用数据局部之间的线性关系进行哈希学习,但是这两个方法在学习时得到的是训练数据的哈希示并不能直接得到哈希函数,无法直接对非训练数据进行哈希表示的泛化,这两个方法通过利用训练数据的哈希表示近似的获得查询数据的哈希表示。



技术实现要素:

本发明的目的在于为了解决以往无监督哈希学习算法,在训练模型过程中对原始问题进行谱松弛带来精度损失,即通常模型是在实数空间中进行模型学习与优化,为了应对并处理大规模图像搜索问题,用以克服大规模图像检索存在的各种问题,提高模型的使用范围,可以处理不同特征度量空间的图像搜索问题,提供一种基于离散局部线性嵌入哈希的高效图像检索方法。

本发明包括以下步骤:

1)对于图像库中的图像,随机选取一部分图像作为训练集,并抽取相应的图像特征;

2)采用主成分分析方法,将原图像特征降低维度到与哈希编码相同的长度;

3)构建训练样本的相似关系矩阵,以及每个数据点的最佳重构权重;

4)通过迭代优化学习对应的哈希函数;

5)输出对应的哈希函数,并计算整个图像库的哈希编码;

6)对于查询图像,首先抽取对应的特征,然后根据训练得到的哈希编码函数用同样的方法对图像特征进行哈希编码,之后计算查询图像的哈希编码与图像库中的图像特征编码之间的汉明距离,利用汉明距离大小来衡量查询图像与图像库中待检索图像之间的相似性,返回相似度高的图像。

在步骤1)中,所述图像特征包括但不限于图像的特征;所述抽取相应的图像特征的具体方法可为:对于训练集中的每幅图像提取d维的特征,得到一个d×n的原始视觉特征矩阵X=[x1,x2,...,xn]∈Rd×n,其中,n表示训练集中的训练样本个数,xi为矩阵X第i列表示样本集合中第i个维度为d的特征向量。

在步骤2)中,所述采用主成分分析方法,将原图像特征降低维度到与哈希编码相同的长度是将原图像的特征降低维度到与哈希编码比特长度相同的低维度空间表示,即:特征空间到低维度的线性投影矩阵Z∈Rm×r,其优化函数为:通过主成分分析后,原高维特征矩阵重新表示为U=XZ=[u1,u2,...,un]∈Rr×n

在步骤4)中,所述通过迭代优化学习对应的哈希函数的具体方法可为:

(1)根据上次迭代的哈希函数更新整个训练样本的二值编码;

(2)按比特位依次迭代更新训练样本的二值编码特征;

(3)根据目标函数更新哈希函数;

(4)置信度判断,满足条件跳出迭代,否则继续循环。

在步骤6)中,所述根据训练得到的哈希编码函数用同样的方法对图像特征进行哈希编码采用如下哈希函数进行相应的哈希编码:

H(x)=sgn(WTZTx)。

本发明所述离散局部线性嵌入哈希的目标在于获取哈希编码函数(哈希函数):

H(x)=[h1(x),h2(x),...,hr(x)]。

哈希函数可将原实数特征矩阵映射为相对应的二值编码矩阵B=[b1,b2,...,bn]∈{0,1}r×n,其中r为哈希编码的长度。

本发明的目标是求解一个离散线性嵌入的哈希函数,可以定义为H(u)=sgn(WTu),其中sgn(·)为符号函数,用以将实数值量化为对应的哈希编码。整个算法过程可以分为三步:(1)计算每个数据点的最近邻;(2)计算每个数据点的最佳重构权重;(3)计算一个低维离散空间,在该空间中保留局部线性关系,使得相似数据对应的离散编码的汉明距离越小越好,其中目标函数为:

min||B-SB||2

其中,B∈{0,1}n×r是训练样本对应的二值编码矩阵,S∈{sij}n×n代表了每个样本点到最近邻点的相似度矩阵,sij是对数据点进行重构时,训练样本点xj的权重,如果xj不是在xi的K近邻则sij=0。由于采用的是线性哈希函数,本发明的哈希函数学习的损失函数为:

其中,γ为模型参数,I为单位矩阵。通过对B与W交替求解的方法对上面的损失函数进行优化,可以求出最优的投影矩阵W,进而得到所需要的哈希函数。

本发明的优点如下:

通过本发明所提出的方案能够获得一个鲁棒、高效的哈希编码机制,在离散空间尽量保留原始数据之间的局部线性结构,同时通过直接在离散空间直接进行求解的办法得到二值编码函数,减少了通过进行约束松弛时获得哈希函数时的精度损失。同时,通过所提出的基于离散线性嵌入算法,提高了哈希函数在能够很好适应数据的流型分布,从而使得本发明能够很好的适用于大规模的图像数据集。

附图说明

图1为哈希编码、哈希表、倒排结构。

具体实施方式

以下实施例将对本发明作详细的说明。

本发明包括以下步骤:

1)对于图像库中的图像,随机选取一部分图像作为训练集,并抽取相应的图像特征;所述图像特征包括但不限于图像的特征;

2)采用主成分分析方法,将原图像特征降低维度到与哈希编码相同的长度;

3)构建训练样本的相似关系矩阵,以及每个数据点的最佳重构权重;

4)通过迭代优化学习对应的哈希函数;

所述通过迭代优化学习对应的哈希函数的具体方法可为:

(1)根据上次迭代的哈希函数更新整个训练样本的二值编码;

(2)按比特位依次迭代更新训练样本的二值编码特征;

(3)根据目标函数更新哈希函数;

(4)置信度判断,满足条件跳出迭代,否则继续循环;

5)输出对应的哈希函数,并计算整个图像库的哈希编码;

6)对于查询图像,首先抽取对应的特征,然后根据训练得到的哈希编码函数用同样的方法对图像特征进行哈希编码,之后计算查询图像的哈希编码与图像库中的图像特征编码之间的汉明距离,利用汉明距离大小来衡量查询图像与图像库中待检索图像之间的相似性,返回相似度高的图像。

本发明所述离散局部线性嵌入哈希的目标在于获取哈希编码函数(哈希函数):

H(x)=[h1(x),h2(x),...,hr(x)]。

哈希函数可将原实数特征矩阵映射为相对应的二值编码矩阵B=[b1,b2,...,bn]∈{0,1}r×n,其中r为哈希编码的长度;其详细的方案的形式化描述如下所示:

首先,查询图像和待检索图像库的图像特征抽取的形式化描述为:对于训练集中的每幅图像提取d维的特征,得到一个d×n的原始视觉特征矩阵X=[x1,x2,...,xn]∈Rd×n,其中,n表示训练集中的训练样本个数,xi为矩阵X第i列表示样本集合中第i个维度为d的特征向量。

在上述步骤中,使用主成分分析技术,目标是将图像的特征降低维度到与哈希编码比特长度相同的低维度空间表示。即:特征空间到低维度的线性投影矩阵Z∈Rm×r,其优化函数为:通过非线性主成分分析后,原高维特征矩阵可以重新表示为U=XZ=[u1,u2,...,un]∈Rr×n

在新的低维度特征表达空间中,本发明的目标是求解一个离散线性嵌入的哈希函数,可以定义为H(u)=sgn(WTu),其中sgn(·)为符号函数,用以将实数值量化为对应的哈希编码。整个算法过程可以分为三步:(1)计算每个数据点的最近邻;(2)计算每个数据点的最佳重构权重;(3)计算一个低维离散空间,在该空间中保留局部线性关系,使得相似数据对应的离散编码的汉明距离越小越好,其中目标函数为:

min||B-SB||2

其中,B∈{0,1}n×r是训练样本对应的二值编码矩阵,S∈{sij}n×n代表了每个样本点到最近邻点的相似度矩阵,sij是对数据点进行重构时,训练样本点xj的权重,如果xj不是在xi的K近邻则sij=0。由于采用的是线性哈希函数,本发明的哈希函数学习的损失函数为:

其中,γ为模型参数,I为单位矩阵。通过对B与W交替求解的方法对上面的损失函数进行优化,可以求出最优的投影矩阵W,进而得到所需要的哈希函数。

对于查询图像特征和待检索的图像库特征,采用如下哈希函数进行相应的哈希编码:

H(x)=sgn(WTZTx)。

本发明在经典的检索数据集CIFAR10和Youtube Face上做了对应的相关的验证性实验如表1所示。

表1

表1展示了CIFAR10数据集中所有查询的检索平均精确度和检索列表前100的精确度,对比了现有的大部分经典哈希学习方法,可以看出本发明所提出的方案在低比特率编码条件下,具有良好的检索性能。

以CIFAR10数据为例进行说明。CIFAR10包含6万张32×32大小的图片。图片总共可以分为10个大类,如飞机、花朵等等。

CIFAR10数据集中不同哈希算法对应的平均精确度指标值参见表1。

本发明的具体流程如下:

模型学习部分

1)对于图像库中的图像,随机选取一部分图像作为训练集,并抽取相应的图像特征,所述图像特征包括但不限于图像的特征;

2)采用主成分分析方法,将原图像特征降低维度到与哈希编码相同的长度;

3)构建训练样本的相似关系矩阵,以及每个数据点的最佳重构权重;

4)通过迭代优化学习对应的哈希函数,具体方法如下:

(1)根据上次迭代的哈希函数更新整个训练样本的二值编码;

(2)按比特位依次迭代更新训练样本的二值编码特征;

(3)根据目标函数更新哈希函数;

(4)置信度判断,满足条件跳出迭代,否则继续循环;

5)输出对应的哈希函数,并计算整个图像库的哈希编码;

在线查询部分

1)抽取对应的图像特征;

2)依据哈希编码函数对图像特征进行哈希编码;

3)计算查询图像的哈希编码与图像库中的图像特征编码之间的汉明距离;

4)对汉明距离大小进行排序,将汉明距离小于2的库中图像返回。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1