一种图片检索方法和系统与流程

文档序号:11155530阅读:524来源:国知局
一种图片检索方法和系统与制造工艺

本发明涉及图片检索技术领域,具体而言,涉及一种图片检索方法和系统。



背景技术:

随着云计算、物联网、移动电话、社交媒体等信息技术的发展,互联网上的数据呈爆炸式的增长,大数据时代已经到来。在大数据时代,如何进行快速的图片检索,是人们关注的重点。其中,哈希学习通过学习图片的二进制代码表示,节省了存储空间,加快了查询速度,在图片相近性检索中被广泛研究。经发明人研究发现,传统的哈希学习,需要人们预先标注大量待编码的图片,供哈希学习算法进行预训练,但是,在大数据时代,随着不断涌现的新数据,昂贵的人工标注和耗时的预训练过程阻碍了哈希学习算法在实际图片检索过程中的应用。



技术实现要素:

本发明旨在改善上述的技术问题。为此,本发明提供一种图片检索方法和系统,旨在大数据时代背景下,能够规避昂贵的人工标注过程和预训练过程,提高图片检索效率。

本发明较佳实施例提供一种图片检索方法,所述方法包括:

建立图片数据集,提取所述图片数据集中每一张图片对应的特征数据并处理,以得到特征数据矩阵;

根据图片所属种类信息构建描述每一张图片对应的类别种类的类别矩阵和描述每一个类别对应的图片属性信息的类别-属性矩阵;

将所述特征数据矩阵划分为训练矩阵和测试矩阵,其中,所述训练矩阵中不包含所述测试矩阵中包括的类别种类;

根据所述训练矩阵、类别矩阵和类别-属性矩阵构建目标损失函数,进而求取哈希转换函数;

使用所述哈希转换函数分别对所述训练矩阵和测试矩阵进行编码,得到训练编码矩阵和测试编码矩阵;

从所述训练编码矩阵和测试编码矩阵中选取预设数量张图片构成检索库,从所述测试编码矩阵中选取图片,并计算该图片的哈希码与所述检索库中的图片的哈希码之间的汉明距离,进而根据所述汉明距离的大小顺序,依次输出检索结果。

本发明另一较佳实施例提供一种图片检索系统,所述系统包括:

特征数据获取模块,用于建立图片数据集,提取所述图片数据集中每一张图片对应的特征数据并处理,以得到特征数据矩阵;

类别矩阵构建模块,用于根据图片所属种类信息构建描述每一张图片对应的类别种类的类别矩阵和描述每一个类别对应的图片属性信息的类别-属性矩阵;

数据划分模块,用于将所述特征数据矩阵划分为训练矩阵和测试矩阵,其中,所述训练矩阵中不包含所述测试矩阵中包括的类别种类;

函数生成模块,用于根据所述训练矩阵、类别矩阵和类别-属性矩阵构建目标损失函数,进而求取哈希转换函数;

编码模块,用于使用所述哈希转换函数分别对所述训练矩阵和测试矩阵进行编码,得到训练编码矩阵和测试编码矩阵;

检索模块,用于从所述训练编码矩阵和测试编码矩阵中选取预设数量张图片构成检索库,从所述测试编码矩阵中选取图片,并计算该图片的哈希码与所述检索库中的图片的哈希码之间的汉明距离,进而根据所述汉明距离的大小顺序,依次输出检索结果。

与现有技术相比,本发明利用样本之间的属性信息,并结合传统哈希算法,提出了基于属性哈希算法的图片检索方法和系统,其中,训练数据和测试数据可以进行两者监督信息的共享,且测试数据并不需要在训练阶段出现,有效避免了传统哈希算法在进行图片检索时的人工标注过程和预训练过程,实现了零样本图片检索,从而有效提高了图片检索效率。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明较佳实施例提供的计算机设备的结构框图。

图2为本发明较佳实施例提供的图片检索系统的结构框图。

图3为图2中的特征数据获取模块的结构框图。

图4为图2中的哈希转换函数生成模块的结构框图。

图5为本发明另一较佳实施例提供的图片检索方法的流程示意图。

图6为图5中的步骤S102的子流程示意图。

图7为图5中的步骤S108的子流程示意图。

图8a为本发明提供的图片检索方法与现有哈希方法在AWA数据集下的平均准确率仿真结果示意图。

图8b为本发明提供的图片检索方法与现有哈希方法在AWA数据集下的准确率仿真结果示意图。

图9a为本发明提供的图片检索方法与现有哈希方法在CIFAR数据集下的平均准确率仿真结果示意图。

图9b为本发明提供的图片检索方法与现有哈希方法在CIFAR数据集下的准确率仿真结果示意图。

图标:10-计算机设备;100-图片检索系统;102-特征获取模块;1022-第一处理子模块;1024-第二处理子模块;104-类别矩阵构建模块;106-数据划分模块;108-哈希转换函数生成模块;1082-目标损失函数生成子模块;1084-哈希转换函数生成子模块;110-编码模块;112-检索模块;200-处理器;300-存储器。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

请参阅图1,为本发明实施例提供一种的计算机设备10的结构框图,所述计算机设备10包括图片检索系统100、处理器200和存储器300,所述计算机设备10可以是,但不限于,PC机、智能手机、服务器等。

其中,所述存储器300与处理器200之间可通过一条或多条通讯总线或信号线实现电性连接。所述图片检索系统100包括至少一个可以软件或固件的形式存储于所述存储器300中或固化在所述计算机设备10的操作系统中的软件功能模块。所述处理器200用于执行所述存储器300中存储的可执行模块,例如所述图片检索系统100所包括的软件功能模块及计算机程序等。

如图2所示,为本发明较佳实施例提供的图片检索系统100的结构框图,所述图片检索系统100包括特征获取模块102、类别矩阵构建模块104、数据划分模块106、哈希转换函数生成模块108、编码模块110和检索模块112。

所述特征获取模块102用于建立图片数据集,提取所述图片数据集中每一张图片对应的特征数据并处理,以得到特征数据矩阵。可选地,如图3所示,所述特征获取模块102包括第一处理子模块1022和第一处理子模块1022。

其中,所述第一处理子模块1022用于在对每一张图片的特征数据做归一化处理之前,使用Caffe深度学习框架,选取caffenet模型,提取每一张图片对应的特征数据,保存为高维矩阵。所述第一处理子模块1022还用于对每一张图片的特征数据做归一化处理,得到归一化数据。

所述第二处理子模块1024用于随机从所述归一化数据中选取m个锚点,并利用公式将图片的特征数据x转换为矩阵将所述矩阵进行拼接生成特征数据矩阵,其中δ=1,a1、a2、a3……、am分别对应m个锚点。

所述类别矩阵构建模块104用于根据图片所属种类信息构建描述每一张图片对应的类别种类的类别矩阵和描述每一个类别对应的图片属性信息的类别-属性矩阵。其中,所述图片所属种类信息为原始图片所对应的属性信息。

所述数据划分模块106用于将所述特征数据矩阵划分为训练矩阵和测试矩阵,其中,所述训练矩阵中不包含所述测试矩阵中包括的类别种类。

所述函数生成模块108用于根据所述训练矩阵、类别矩阵和类别-属性矩阵构建目标损失函数,进而求取哈希转换函数。其中,如图4所示,所述函数生成模块108包括目标损失函数生成子模块1082和哈希转换函数生成子模块1084。

所述目标损失函数生成子模块1082,用于首先构造多层信息表示空间项其中,Xtrain表示图片在特征空间的信息,B表示图片在哈希码空间的信息,S表示图片在属性空间的信息,Ytrain表示图片在类别空间的信息,V和P用于不同空间之间的转换;然后,构造正则项其中,L为Xtrain的拉普拉斯矩阵;最后,将所述多层信息表示空间项与所述正则项相加,得到所述目标损失函数。

所述哈希转换函数生成子模块1084,用于使用坐标下降法和离散循环坐标下降法(DCC,discrete cyclic coordinate descent)算法,分别对所述目标损失函数中的P、V、B进行迭代优化,从而得到哈希转换函数其中,P为哈希函数,P、V采用坐标下降法进行优化求解,B采用DCC算法求解。

所述编码模块110用于使用所述哈希转换函数分别对所述训练矩阵和测试矩阵进行编码,得到训练编码矩阵和测试编码矩阵。

所述检索模块112用于从所述训练编码矩阵和测试编码矩阵中选取预设数量张图片构成检索库,从所述测试编码矩阵中选取图片,并计算该图片的哈希码与所述检索库中的图片的哈希码之间的汉明距离,进而根据所述汉明距离的大小顺序,依次输出检索结果。

基于上述设计,本发明另一较佳实施例提供了一种图片检索方法,所述图片检索方法应用于所述图片检索系统100上。如图5所示,为所述图片检索方法的流程示意图,下面将对所述图片检索方法的具体步骤进行详细阐述。

步骤S102,建立图片数据集,提取所述图片数据集中每一张图片对应的特征数据并处理,以得到特征数据矩阵。

具体地,在本发明实施例中,所述步骤S102由所述特征数据获取模块执行。如图6所示为图5中的步骤S102的子流程示意图,所述步骤S102包括以下子步骤:

子步骤S1020,建立图片数据集,使用Caffe深度学习框架,选取caffenet模型,提取每一张图片对应的特征数据,保存为高维矩阵。

可选地,在本发明实施例中,所述子步骤S1020由第一处理子模块1022执行。所述子步骤S1020由所述第一处理模块执行。其中,在Linux平台下安装Caffe框架,所述Caffe框架下包括有用于特征提取的一系列预先训练好的模型。在本发明实施例中,选取AlexNet模型进行特征提取任务。为了更贴切的提取所需特征,需要根据本发明中预先建立的图片数据库中的图片数据对该AlexNet网络结构进行微调,进而按照所述Caffe框架要求转换图片格式。

可选地,使用AlexNet模型提取图片特征,实践表明,AlexNet的FC7层特征能更好的表现图片的语义信息,因此采用在FC7层提取的4096维向量表示每张图片。

子步骤S1022,对每一张图片的特征数据做归一化处理,得到归一化数据。

具体地,在本发明实施例中,所述子步骤S1022由第一处理子模块1022执行。其中,对每一张图片的特征数据做归一化处理,也就是对所有图片的特征数据求均值,用每一张图片特征数据减去该均值,得到特征数据的中心化数据,对中心化数据中的每一个向量除以该向量的模,得到特征数据的归一化数据。

子步骤S1024,从所述归一化数据中选取m个锚点,利用m个锚点,再次对所述归一化数据进行处理,处理后的每张图片保存为m维矩阵,作为特征数据矩阵。

具体地,在本发明实施例中,所述子步骤S1024由第二处理子模块1024执行。随机从数据中抽取m张图片作为锚点,表示为a1,a2…am

利用公式其中δ=1。将原始数据x转换为最后,将所有的向量拼接成矩阵特征数据矩阵,以表示原始图片数据。

步骤S104,构建类别矩阵和描述每一个类别属性信息的类别-属性矩阵。

具体地,在本发明实施例中,所述步骤S104由所述类别矩阵构建模块104执行。根据图片所属种类信息构建描述每一张图片对应的类别种类的类别矩阵和描述每一个类别对应的图片属性信息的类别-属性矩阵。根据实际情况,所述类别-属性矩阵中包含的属性信息可以是,但不限于,颜色、形状、纹理等,其中,所述类别-属性矩阵是由多个类别-属性向量拼接而成。

步骤S106,将特征数据矩阵划分为训练矩阵和测试矩阵。

具体地,在本发明实施例中,所述步骤S106是由数据划分模块106执行。其中,将所述特征数据矩阵划分为训练矩阵和测试矩阵,其中,所述训练矩阵中不包含所述测试矩阵中包括的类别种类,从而实现在后面进行的零样本图片检索。

可选地,根据实际情况,可从所述特征数据矩阵中抽取10000个向量构成训练矩阵,抽取10000个向量构成测试矩阵。同时,从类别矩阵中得到训练矩阵和测试矩阵对应的训练类别矩阵和测试类别矩阵。

步骤S108,构建目标损失函数并求取哈希转换函数。

具体地,在本发明实施例中,所述步骤S108由所述哈希转换函数生成模块108执行。如图7所示为图5中的步骤S108的子流程示意图,所述步骤S108包括以下子步骤:

子步骤S1080,构造多层信息表示空间项和构造正则项。

子步骤S1082,将所述多层信息表示空间项与所述正则项相加,得到所述目标损失函数。

首先,构造多层信息表示空间其中,Xtrain表示图片在特征空间的信息,B表示图片在哈希码空间的信息,S表示图片在属性空间的信息,Ytrain表示图片在类别空间的信息,V和P用于不同空间之间的转换。通过这一多层结构,利用属性信息空间,不仅可以进行监督信息传递,实现零样本图片检索,还减轻了图片表示的语义鸿沟问题。

然后,构造正则项保持图片本身信息结构,减少信息损失,可以获得更好的图片检索结果。其中L为Xtrain的拉普拉斯矩阵。

最后,将所述多层信息表示空间项与所述正则项相加,得到所述目标损失函数,具体如下所示:

子步骤S1084,使用坐标下降法和DCC算法,分别对所述目标损失函数中的P、B、V进行迭代优化,从而得到哈希转换函数。具体地,如下所示:

(1)固定B、V,可以将所述目标损失函数化简为:

然后,对上式中的P求导,可得:

(2)固定B、P,可以将目标损失函数化简为:

然后,对上式中的V求导,可得:

V=(BTB+αI)-1BTYST(SST+βI)-1

(3)固定P、V,可以讲目标损失函数化简为:

s.t.B∈{-1,1}n×l

对上式采用DCC算法求解B。

(4)根据(1)-(3)中所得结果,分别对P、V、B迭代十次,即可求出哈希函数P,最后可得哈希转换函数

步骤S110,使用所述哈希转换函数分别对所述训练矩阵和测试矩阵进行编码。

步骤S112,构建检索库,并从测试编码矩阵中选取图片进行检索。

具体地,在本发明实施例中,所述步骤S110由所述编码模块110执行,所述步骤S112由所述检索模块112执行。其中,所述编码模块110使用所述哈希转换函数分别对所述训练矩阵和测试矩阵进行编码,得到训练编码矩阵和测试编码矩阵。所述检索模块112从所述训练编码矩阵和测试编码矩阵中选取预设数量张图片构成检索库,再从所述测试编码矩阵中选取图片,并计算该图片的哈希码与所述检索库中的图片的哈希码之间的汉明距离,进而根据所述汉明距离的大小顺序,依次输出检索结果。

可选地,基于上述设计和描述,下面对本发明中的基于图片属性的哈希转换函数的图片检索方法与现有哈希算法进行仿真验证,其中分别为本发明提供的基于图片属性的哈希转换函数(AH,attribute hashing)的图片检索方法为、零样本哈希算法(ZSH,zero shot hashing)、监督离散哈希算法(SDH,Supervised Discrete Hashing)、基于典型相关分析的迭代优化哈希算法(ITQ-CCA,Iterative Quantization-canonical correlation analysis)、基于监督离散哈希的列采样哈希算法(COSDISH,Column sampling based discrete supervised hashing)和流形归纳哈希算法(IMH,Inductive Hashing on Manifolds)。

如图8a和8b所示,为在AWA数据集下分别采用本发明提供的基于属性的哈希转换函数和现有哈希算法进行零样本图片检索的仿真实验。

具体地,如图8a所示,为本发明提供的基于属性的哈希转换函数与其他哈希算法在哈希编码长度为16、32、64、96、128位的平均准确率(MAP),其中,横轴为哈希编码长度,纵轴为平均准确率。如图8b所示,为本发明提供的基于属性的哈希转换函数与其他哈希算法在哈希编码长度为16、32、64、96、128位的准确率(Precision)。其中,横轴为哈希编码长度,纵轴为准确率。

如图9a和图9b所示,在Cifar数据集下分别采用提供的基于属性的哈希转换函数和现有哈希算法进行零样本图片检索仿真实验。

具体地,如图9a所示,为本发明提供的基于属性的哈希转换函数与其他哈希算法在哈希编码长度为16、32、64、96、128位的平均准确率(MAP),其中,横轴为哈希编码长度,纵轴为平均准确率。如图9b所示,为本发明提供的基于属性的哈希转换函数与其他哈希算法在哈希编码长度为16、32、64、96、128位的准确率(Precision)。其中,横轴为哈希编码长度,纵轴为准确率。

由以上仿真结果可知,采用本发明进行零样本图片的平均准确率和准确率在大部分哈希编码长度下都优于现有的哈希方法。因此,与现有技术相比,本发明利用图片的属性信息,能有效获取原图片数据的哈希编码,从而提高了图片的零样本检索性能。

综上所述,本发明提供的图片检索方法和系统,利用图片样本之间的属性信息,提出了哈希转换函数,通过该哈希转换函数对训练矩阵和测试矩阵进行编码,进而通过计算测试编码矩阵中的图片的哈希码与检索库中的图片的哈希码之间的汉明距离,以实现图片检索功能。本发明实施例能够获得较优的图片检索性能。

进一步地,在本发明实施例中,通过直接求解图片对应的0和1哈希二值码,而不是求取其近似解,能够获得更高的图片检索精度,除此之外,通过本发明给出的图片检索方法,求取的哈希码结构紧凑,能够有效减少图片内存空间的占用,加快图片查找速度。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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