基于t分布哈希的图像检索方法及系统与流程

文档序号:14249648阅读:337来源:国知局
基于t分布哈希的图像检索方法及系统与流程

本发明涉及图片检索技术领域,更具体地,涉及一种基于t分布哈希的图像检索方法及系统。



背景技术:

目前,在互联网时代,随着互联网上多媒体资源的不断增加,如何从大规模数据中快速、有效的查找到相关的数据,无论是在时间上还是空间上都是一个极大的考验。随着互联网的飞速发展,大容量、高维度的图像大数据在搜索引擎和社会网络中越来越普遍,也吸引了越来越多的关注,如何快速有效的进行图像检索分析是一个亟需解决的问题。针对这一问题,一个非常常用且有效的解决方法是哈希,即将高维数据转换为紧凑的二进制码,并为相似的数据生成相似的二进制码。本发明重点关注数据相关的哈希方法,经证明,该类方法比数据不相关的哈希方法(如局部敏感哈希)更有效。

在哈希算法的研究领域下,有两类重要的研究问题,一者是近邻查询,一者是等距查询。近邻查询的目标是在数据集中找出与给定样本最接近的数据点,等距查询的目标是给定误差值之后,找出所有数据集中与给定样本误差不大于给定误差值的数据点。本发明重点关注等距查询问题。

过去的哈希方法已经达到了不错的检索效果,但是,这些哈希方法一方面都不能保证在小汉明距离内,查找得到的数据点足够的多,换句话说,在低维空间中,待检索数据周围的点太过于稀疏,需要更大的距离限制才能保证查询到足够多的数据点;另一方面,这些方法通常查询过慢。



技术实现要素:

本发明提供一种克服上述问题或者至少部分地解决上述问题的一种基于t分布哈希的图像检索方法及系统。

根据本发明的一个方面,提供一种图像检索方法,包括:

将待查询图片输入预先训练后的深度卷积网络,生成所述待查询图片的低维图像表征;

对所述低维图像表征生成对应的哈希编码,得到待查询图片的哈希编码;

计算待查询图片的哈希编码与数据库中每一张模板图片的哈希编码之间的汉明距离;

将与所述待查询图片的哈希编码的汉明距离小于等于预设距离的模板图片确定为与所述待查询图片匹配的模板图片。

在上述技术方案的基础上,本发明还可以作如下改进。

进一步的,所述深度卷积网络包括由五层卷积层和两层全连接层组成的子网络以及一个全连接量化层;

所述将待查询图片输入预先训练后的深度卷积网络,生成所述待查询图片的低维图像表征具体包括:

将所述待查询图片输入预先训练后的深度卷积网络,通过所述子网络生成所述待查询图片的高维图像表征;

将所述待查询图片的高维图像表征输入所述全连接量化层,生成待查询图片的低维图像表征。

进一步的,所述对所述低维图像表征生成对应的哈希编码,得到待查询图片的哈希编码具体包括:

根据生成的所述待查询图片的低维图像表征,采用双曲正切函数激活并二值化生成哈希编码,得到待查询图片的哈希编码。

进一步的,通过如下方式预先训练深度卷积网络:

将训练集中的所有图片分为多批,对其中每一批图片进行轮询训练,并采用反向传播算法对所述深度卷积网络进行优化。

进一步的,所述将训练集中的所有图片分为多批,对其中每一批图片进行轮询训练,并采用反向传播算法对所述深度卷积网络进行优化具体包括:

将每一批图片中的每一张图片均输入深度卷积网络,生成每一张图片的低维图像表征,并采用双曲正切函数进行激活,生成对应的连续编码;

根据任意两张图片对应的连续编码,计算任意两张图片组成的图片对之间的交叉熵损失;

根据每一张图片对应的连续编码,计算每一张图片在二值化过程中的量化损失;

根据任意两张图片组成的图片对之间的交叉熵损失和每一张图片的量化损失,计算所有图片对的平均交叉熵损失l和所有图片的平均量化损失q;

根据所述l和q,计算出一批图片中所有的图片的最终损失c,并利用计算出来的最终损失c对所述深度卷积网络进行优化,采用优化后的深度卷积网络对下一批的图片进行训练,直到训练集中的图片均训练完毕。

进一步的,采用如下公式计算所有图片对的平均交叉熵损失l:

其中,为连续编码之间的相似度量函数,n表示一批图片中所有图片的数量,||.||表示向量长度,b表示每一张图片生成的哈希编码的维度,为双曲正切函数,sij表示连续编码对应的原始图像之间的相似性,以0和1区分不相似和相似;

整理后得到:

s={sij};

其中,zi和zj分别表示第i张图片和第j张图片的连续编码。

进一步的,采用如下公式计算所有图片的平均量化损失q:

其中,zi表示第i张图片的连续编码。

根据本发明的另一个方面,提供了一种图片检索系统,包括:

第一生成模块,用于将待查询图片输入预先训练后的深度卷积网络,生成所述待查询图片的低维图像表征;

第二生成模块,用于对所述低维图像表征生成对应的哈希编码,得到待查询图片的哈希编码;

计算模块,用于计算待查询图片的哈希编码与数据库中每一张模板图片的哈希编码之间的汉明距离;

确定模块,用于将与所述待查询图片的哈希编码的汉明距离小于等于预设距离的模板图片确定与所述待查询图片匹配的模板图片。

根据本发明的再一个方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行图像检索方法。

附图说明

图1为本发明一个实施例的图像检索方法流程图;

图2为本发明另一个实施例的图像检索系统连接框图;

图3为本发明又一个实施例的图片检索系统整体连接框图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

参见图1,提供了本发明一个实施例的图像检索方法,包括:将待查询图片输入预先训练后的深度卷积网络,生成所述待查询图片的低维图像表征;对所述低维图像表征生成对应的哈希编码,得到待查询图片的哈希编码;计算待查询图片的哈希编码与数据库中每一张模板图片的哈希编码之间的汉明距离;将与所述待查询图片的哈希编码的汉明距离小于等于预设距离的模板图片确定为与所述待查询图片匹配的模板图片。

对于大容量、高维度的图像数据的检索非常复杂,需要将高维度图片转化为低维度的图像表征,在本实施例中,采用深度卷积网络将高维图片数据转化为低维度的图像表征。在具体实现图片检索的过程中,先将待查询图片输入预先训练后的深度卷积网络,经过深度卷积网络输出待查询图片的低维图像表征,并采取一定的方式对低维图像表征进行处理,生成对应的哈希编码,得到待查询图片的哈希编码。通过同样的方法将数据集中的所有的模板图片均生成对应的哈希编码,将所有模板图片对应的哈希编码存储于数据库中。

在进行检索查询时,计算待查询图片的哈希编码和数据库中每一张模板图片的哈希编码之间的汉明距离,汉明距离表征两张图片的相似性,待查找图片的哈希编码与模板图片的哈希编码的汉明距离越小,表明待查找图片与模板图像之间越相似,否则,待查找图片与模板图像越不相似。因此,计算出待查找图片的哈希编码与每一张模板图片的哈希编码之间的汉明距离,将汉明距离小于等于预设距离的模板图片确定为与待查找图片匹配的模板图片。在本实施例中,将与待查找图片的汉明距离小于等于2的模板图片确定为与待查找图片匹配的模板图片并输出。

在上述实施例的基础上,本发明的一个实施例中,所述深度卷积网络包括由五层卷积层、两层全连接层组成的子网络以及一个全连接量化层;所述将待查询图片输入预先训练后的深度卷积网络,输出所述待查询图片的低维图像表征具体包括:将所述待查询图片输入预先训练后的深度卷积网络,通过所述子网络生成所述待查询图片的高维图像表征;将所述待查询图片的图像表征输入所述全连接量化层,生成待查询图片的低维图像表征。

本实施例的深度卷积网络为alexnet,原始的深度卷积网络有5层卷积层和3层全连接层,最后一层全连接层主要用来对图片进行分类,在本实施例中,深度卷积网络的作用主要是对图片生成低维图像表征,因此,在本实施例中,将原始深度卷积网络中的最后一层全连接层用一个全连接量化层代替,全连接量化层可实现将高维图像表征转化为低维度图像表征。

构建好了本实施例的深度卷积网络并训练好后,将待查找图片输入训练好的深度卷积网络中,经过深度卷积网络中的5层卷积层和2层全连接层,生成待查找图片的图像表征,该图像表征为高维图像表征,因此,通过全连接量化层将高维图像表征转化为低维图像表征,故通过本实施例构造的深度卷积网络将待查找图像生成了低维度图像表征。

在上述各实施例的基础上,本发明的一个实施例中,所述对所述低维图像表征生成对应的哈希编码,得到待查询图片的哈希编码具体包括:根据生成的所述待查询图片的低维图像表征,采用双曲正切函数激活并二值化生成哈希编码,得到待查询图片的哈希编码。

通过上述的深度卷积网络将待查找图片生成了对应的低维图像表征后,采用双曲正切函数对低维图像表征进行激活并二值化生成对应的哈希编码,其中,采用双曲正切函数对低维图像表征进行激活的过程是将待查找图片的低维图像表征转化为(-1,1)之间的连续编码,再将连续编码二值化生成哈希编码,得到待查找图片的哈希编码。

在上述各实施例的基础上,本发明的一个实施例中,通过如下方式预先训练深度卷积网络:将训练集中的所有图片分为多批,对其中每一批图片进行轮询训练,并采用反向传播算法对所述深度卷积网络进行优化。

在利用深度卷积网络将待查找图片以及数据集中的每一张模板图片输入深度卷积网络中生成低维图像表征之前,需要对构建的深度卷积网络进行训练,确保构建的深度卷积网络是可靠的,即通过深度卷积网络生成的低维图像表征能够代表原始的图片。

在对构建的深度卷积网络进行训练的过程中,将数据集中的所有的图片分为多批,对每一批图片进行逐一训练,在对每一批图片进行训练的过程中,采用反向传播算法对构建的深度卷积网络进行优化,直到深度卷积网络的可靠性比较高为止,其中,反向传播算法为现有技术中的算法,在此不再赘述。

在上述各实施例的基础上,本发明的一个实施例中,将每一批图片中的每一张图片均输入深度卷积网络,生成每一张图片的低维图像表征,并采用双曲正切函数进行激活,生成对应的连续编码;根据任意两张图片对应的连续编码,计算任意两张图片组成的图片对之间的交叉熵损失和每一张图片的量化损失;根据任意两张图片组成的图片对之间的交叉熵损失和每一张图片的量化损失,计算所有图片对的平均交叉熵损失l和所有图片的平均量化损失q;根据所述l和q,计算出一批图片中所有的图片对的最终损失c,并利用计算出来的最终损失c对所述深度卷积网络进行优化,采用优化后的深度卷积网络对下一批的图片进行训练,直到训练集中的图片均训练完毕。

在对构建的深度卷积网络进行训练的过程中,将数据集中每一批图片输入到深度卷积网络,生成每一张图片的低维图像表征,比如,一批图像有64张,将一批图片的64张图片均输入构建的深度卷积网络中,生成每一张图片的低维图像表征,并采用双曲正切函数将每一张图片的低维图像表征进行激活,转化为每一位都在(-1,1)之间的连续编码。得到了每一张图片对应的连续编码,计算任意两张图片组成的图片对之间的交叉熵损失和每一张图片的量化损失,可以理解为,两张图片在输入深度卷积网络之前为相似图片对,经过深度卷积网络后生成低维图像表征后,根据两张图片的低维图像表征,两张图片是否还是相似,为了保证经过深度卷积网络转换后的低维图像表征能代表原始图片,本实施例中主要引入了交叉熵损失和量化损失。根据任意两张图片组成的图片对之间的交叉熵损失和每一张图片的量化损失,计算所有图片对的平均交叉熵损失l和所有图片的平均量化损失q;根据所述l和q,计算出一批图片中所有的图片对的最终损失c,得到此轮训练的最终损失c,并根据该最终损失对深度卷积网络的参数进行优化,进而对深度卷积网络进行优化,采用优化后的深度卷积网络对下一批图片进行训练,直到得到的损失非常小且各批图片训练后的损失比较稳定为止,或者,直到训练集中的图片训练完毕为止,由于训练集中的图片量非常巨大,基本上将训练集中的图片分批训练完毕,深度卷积网络的可靠性是比较高的。

在上述各个实施例的基础上,本发明的一个实施例中,采用如下公式计算所有图片对的平均交叉熵损失l:

其中,为连续编码之间的相似度量函数,n表示一批图片中所有图片的数量,||.||表示向量长度,b表示每一张图片生成的哈希编码的维度,为双曲正切函数,sij表示连续编码对应的原始图像之间的相似性,以0和1区分不相似和相似;

整理后得到:

s={sij};

其中,zi和zj分别表示第i张图片和第j张图片的连续编码。

在上述实施例的基础上,本发明的另一个实施例中,采用如下公式计算所有图片的平均量化损失q:

其中,zi表示第i张图片的连续编码。

在上述各实施例的基础上,本发明的一个实施例中,所述根据所述l和q,计算出一批图片中所有的图片的最终损失c具体包括:

c=l+λq。

其中,λ表示是用于调节交叉熵损失l和量化损失q之间权重的参数。

计算出了所有图片对的平均交叉熵损失l和所有图片的平均量化损失q,对l和q赋予不同的权值计算最终损失c,为c=l+λq,得到所有图片对之间的最终损失c,利用最终损失c对深度卷积网络进行优化。

参见图2,提供了本发明一个实施例的图片检索系统,包括第一生成模块21、第二生成模块22、计算模块23和确定模块24。

第一生成模块21,用于将待查询图片输入预先训练后的深度卷积网络,生成所述待查询图片的低维图像表征。

第二生成模块22,用于对所述低维图像表征生成对应的哈希编码,得到待查询图片的哈希编码。

计算模块23,用于计算待查询图片的哈希编码与数据库中每一张模板图片的哈希编码之间的汉明距离。

确定模块24,用于将与所述待查询图片的哈希编码的汉明距离小于等于预设距离的模板图片确定与所述待查询图片匹配的模板图片。

参见图3,提供了本发明一个实施例的图片检索系统,包括第一生成模块21、第二生成模块22、计算模块23、确定模块24、训练模块25和优化模块26。

第一生成模块21,用于将待查询图片输入预先训练后的深度卷积网络,生成所述待查询图片的低维图像表征。

第二生成模块22,用于对所述低维图像表征生成对应的哈希编码,得到待查询图片的哈希编码。

计算模块23,用于计算待查询图片的哈希编码与数据库中每一张模板图片的哈希编码之间的汉明距离。

确定模块24,用于将与所述待查询图片的哈希编码的汉明距离小于等于预设距离的模板图片确定与所述待查询图片匹配的模板图片。

其中,所述深度卷积网络包括由五层卷积层和两层全连接层组成的子网络以及一个全连接量化层;所述第一生成模块21具体用于将所述待查询图片输入预先训练后的深度卷积网络,通过所述子网络生成所述待查询图片的图像表征;还用于将所述待查询图片的图像表征输入所述全连接量化层,生成待查询图片的低维图像表征。

第二生成模块22,具体用于根据生成的所述待查询图片的低维图像表征,采用双曲正切函数激活并二值化生成哈希编码,得到待查询图片的哈希编码。

训练模块25,用于将训练集中的所有图片分为多批,对其中每一批图片进行轮询训练,并采用反向传播算法对所述深度卷积网络进行优化。

第一生成模块21,还用于将每一批图片中的每一张图片均输入深度卷积网络,生成每一张图片的低维图像表征;相应的,第二生成模块22,还用于采用双曲正切函数进行激活,生成对应的连续编码;以及相应的,计算模块23,还用于根据任意两张图片对应的连续编码,计算任意两张图片组成的图片对之间的交叉熵损失和每一张图片的量化损失;还用于根据任意两张图片之间的交叉熵损失和每一张图片的量化损失,计算所有图片对的平均交叉熵损失l和所有图片的平均量化损失q;以及还用于根据所述l和q,计算出一批图片中所有的图片的最终损失c。

优化模块26,用于利用计算出来的最终损失c对所述深度卷积网络进行优化,采用优化后的深度卷积网络对下一批的图片进行训练,直到训练集中的图片均训练完毕。

计算模块23,具体用于采用如下公式计算所有图片对的平均交叉熵损失l:

其中,为连续编码之间的相似度量函数,n表示一批图片中所有图片的数量,||.||表示向量长度,b表示每一张图片生成的哈希编码的维度,为双曲正切函数,sij表示连续编码对应的原始图像之间的相似性,以0和1区分不相似和相似;

整理后得到:

s={sij};

其中,zi和zj分别表示第i张图片和第j张图片的连续编码。

计算模块23,还用于采用如下公式计算所有图片的平均量化损失q:

其中,zi表示第i张图片的连续编码。

计算模块23,还用于所述根据所述l和q,计算出一批图片中所有的图片的最终损失c具体包括:

c=l+λq。

其中,λ表示是用于调节交叉熵损失l和量化损失q之间权重的参数。

本发明还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述对应实施例所提供的基于t分布哈希的图像检索方法,例如包括:将待查询图片输入预先训练后的深度卷积网络,生成所述待查询图片的低维图像表征;对所述低维图像表征生成对应的哈希编码,得到待查询图片的哈希编码;计算待查询图片的哈希编码与数据库中每一张模板图片的哈希编码之间的汉明距离;将与所述待查询图片的哈希编码的汉明距离小于等于预设距离的模板图片确定为与所述待查询图片匹配的模板图片。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分方法。

本发明提供的一种基于t分布哈希的图像检索方法及系统,在通过构建的深度卷积网络对图片生成低维图像表征时,即在采用训练集中的图片对深度卷积网络进行训练的过程中,设计合理的交叉熵损失函数,将汉明空间中相似图片对应的数据点充分地聚拢,使得检索时可以在更小的汉明距离基准下找到更多的相似数据点;在二值化量化的过程中,设计量化损失函数,将量化误差最小化,显著提高了深度特征的可量化性;另外,由于采用了汉明距离作为排序基准,在模型训练和图像数据库初始化完成后,对于给定的查询图像检索速度非常快。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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