图像搜索方法及装置、存储介质、电子设备与流程

文档序号:17774167发布日期:2019-05-28 19:50阅读:120来源:国知局
图像搜索方法及装置、存储介质、电子设备与流程

本发明的实施方式涉及数据搜索领域,更具体地,本发明的实施方式涉及一种图像搜索方法、图像搜索装置、计算机可读存储介质以及电子设备。



背景技术:

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

随着网络的发展,网络数据也呈现爆发式的增长。由于网络数据的剧增,导致在海量的数据中搜索到用户想要的数据也愈发的艰难,因此如何快速的搜索到用户想要的目标数据成了亟需解决的问题。

在现有的数据搜索方法中,主要是通过输入文本信息与后台已有的文本信息数据库进行匹配,以达到根据用户输入具体的文本找到内容的目的。但是,该方法并不支持直接通过输入图像的方式进行搜索。



技术实现要素:

但是,在一些技术中,一方面,由于不支持直接通过输入图像的方式进行搜索,进而得到用户想要的图像,因此导致该搜索方法的搜索形式较为单一,用户体验较差;另一方面,当用户通过输入文本信息的方式进行搜索时,需要对文字进行记忆进而将记忆的文字复制到搜索框中进行搜索,因此导致该搜索方法的搜索难度较高,搜索流程也较为繁琐;再一方面,由于一些图像是抽象化的,因此通过文本对该抽象化的图像进行描述后再搜索,使得搜索结果的准确率较低。

因此在现有技术中,不能通过绘画的方式将需要搜索的目标对象展示在图像上,进而通过图像进行搜索并得到需要的目标图像,这是非常令人烦恼的过程。

为此,非常需要一种改进的图像搜索方法、图像搜索装置、计算机可读存储介质以及电子设备,以使用户可以直接通过输入图像的方式进行搜索,进而得到需要的搜索结果,简化了搜索流程提高了搜索速度并提高了搜索结果的准确率。

在本上下文中,本发明的实施方式期望提供一种图像搜索方法、图像搜索装置、计算机可读存储介质以及电子设备。

根据本公开的一个方面,提供一种图像搜索方法,包括:

构建三元组训练样本;其中,所述三元组训练样本包括基准图像、与所述基准图像相似的正样本图像、以及与所述基准图像不相似的负样本图像;

基于所述三元组训练样本进行机器学习得到特征提取模型,并利用所述特征提取模型提取数据库中存储的所有历史图像的特征向量;

建立所述特征向量与所述所有历史图像之间的索引,并通过所述索引,获取待搜索图像的搜索结果。

在本公开的一种示例性实施例中,构建三元组训练样本包括:

获取所述基准图像、与所述基准图像相似的正样本图像、以及与所述基准图像不相似的负样本图像;

对所述正样本图像以及负样本图像进行预处理,得到标准正样本图像以及标准负样本图像;

根据所述基准图像、所述标准正样本图像以及所述标准负样本图像,构建所述三元组训练样本。

在本公开的一种示例性实施例中,所述预处理包括灰度化处理、去网格处理、去阴影处理以及提取线条轮廓中的一种或多种。

在本公开的一种示例性实施例中,对所述三元组训练样本进行机器学习得到特征提取模型包括:

基于深度卷积神经网络的当前网络参数值提取所述三元组训练样本的当前特征向量,其中,所述当前特征向量包括所述基准图像对应的第一特征向量、所述正样本图像对应的第二特征向量以及所述负样本图像对应的第三特征向量;

基于所述当前特征向量,计算损失函数值,并判断所述损失函数值是否小于第一预设阈值;

如果所述损失函数值小于第一预设阈值,则确定所述当前网络参数值对应的深度卷积神经网络为所述特征提取模型。

在本公开的一种示例性实施例中,基于所述当前特征向量,计算损失函数值包括:

配置损失函数,并根据所述当前特征向量以及所述损失函数计算损失函数值;

其中,所述损失函数包括:

l(x,xp,xn)=max(||f(x)-f(xp)||2-||f(x)-f(xn)||2+α,0);

其中,l(x,xp,xn)为当前特征向量之间的损失函数值;x为基准图像;xp为正样本图像;xn为负样本图像;

||f(x)-f(xp)||2为第一特征向量与第二特征向量之间的欧式距离;||f(x)-f(xn)||2为第一特征向量与第三特征向量之间的欧式距离;α为预设参数值。

在本公开的一种示例性实施例中,所述图像搜索方法还包括:

如果所述损失函数值大于所述预设阈值,则利用梯度回传算法调整所述卷积神经网络的网络参数值的大小。

在本公开的一种示例性实施例中,建立所述特征向量与所述所有历史图像之间的索引包括:

判断所述所有历史图像的图像数量是否小于第二预设阈值;

如果所述所有历史图像的图像数量小于第二预设阈值,则建立所述特征向量与所述所有历史图像之间的索引;

如果所述所有历史图像的图像数量大于第二预设阈值,则对所述所有历史图像的特征向量进行降维处理;

建立降维处理后的特征向量与所述所有历史图像之间的索引。

在本公开的一种示例性实施例中,通过所述索引,获取待搜索图像的搜索结果包括:

利用所述特征提取模型对所述待搜索图像进行特征提取,得到待搜索图像的待搜索特征向量;

对所述所有历史图像的特征向量与所述待搜索特征向量进行匹配,得到与所述待搜索特征向量对应的匹配结果;

根据所述匹配结果以及所述索引,得到所述待搜索图像的搜索结果。

根据本公开的一个方面,提供一种图像搜索装置,包括:

样本构建模块,用于构建三元组训练样本;其中,所述三元组训练样本包括基准图像、与所述基准图像相似的正样本图像、以及与所述基准图像不相似的负样本图像;

特征向量提取模块,用于基于所述三元组训练样本进行机器学习得到特征提取模型,并利用所述特征提取模型提取数据库中存储的所有历史图像的特征向量;

索引建立模块,用于建立所述特征向量与所述所有历史图像之间的索引,并通过所述索引,获取待搜索图像的搜索结果。

根据本公开的一个方面,提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的图像搜索方法。

根据本公开的一个方面,提供一种电子设备,包括:

处理器;以及

存储器,用于存储所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的图像搜索方法。

根据本发明实施方式的图像搜索方法和图像搜索装置,通过构建包括基准图像、与基准图像相似的正样本图像以及与基准图像不相似的负样本图像的三元组训练样本,然后基于三元组训练样本进行机器学习得到特征提取模型,并利用特征提取模型提取数据库中存储的所有历史图像的特征向量,最后建立特征向量与所有历史图像之间的索引,并通过索引,获取待搜索图像的搜索结果,使得用户可以直接输入图像进行搜索并得到搜索结果,而无需通过输入对图像进行描述的文本进行搜索,从而显著的降低了搜索的复杂程度,并且减少了搜索的流程,增加了搜索形式的多样化,同时也提高了搜索结果的准确率,为用户带来了更好的体验。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1示意性地示出了根据本发明实施方式的一种图像搜索方法的流程图;

图2(a)示意性地示出了根据本发明实施方式的一种基准图像示例图;

图2(b)示意性地示出了根据本发明实施方式的一种正样本图像示例图;

图2(c)示意性地示出了根据本发明实施方式的一种负样本图像示例图;

图2(d)示意性地示出了根据本发明实施方式的一种待搜索图像示例图;

图3示意性地示出了根据本发明实施方式的一种构建三元组训练样本的方法流程图;

图4示意性地示出了根据本发明实施方式的一种对所述三元组训练样本进行机器学习得到特征提取模型的方法流程图;

图5示意性地示出了根据本发明实施方式的一种建立所述特征向量与所述所有历史图像之间的索引的方法流程图;

图6示意性地示出了根据本发明实施方式的一种图像搜索装置的框图;

图7示意性地示出了根据本发明实施方式的计算机可读存储介质的示意图;

图8示意性地示出了根据本发明实施方式的电子设备的方框示意图图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种图像搜索方法、图像搜索装置、计算机可读存储介质以及电子设备。

在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

发明概述

本发明人发现,在现有的数据搜索方案中,通过输入文本信息与后台已有的文本信息数据库进行匹配,以达到根据用户输入具体的文本找到内容的方式较为单一,无法支持用户直接通过输入图像的方式进行搜索进而得到搜索结果;另外,当用户通过输入文本信息的方式进行搜索时,需要对文字进行记忆进而将记忆的文字复制到搜索框中进行搜索,因此导致该搜索方法的搜索难度较高,搜索流程也较为繁琐;此外,由于一些图像是抽象化的,因此通过文本对该抽象化的图像进行描述后再搜索,使得搜索结果的准确率较低。

鉴于上述内容,本发明的基本思想在于:一方面,通过构建包括基准图像、与基准图像相似的正样本图像以及与基准图像不相似的负样本图像的三元组训练样本;然后基于三元组训练样本进行机器学习得到特征提取模型,并利用特征提取模型提取数据库中存储的所有历史图像的特征向量;最后建立特征向量与所有历史图像之间的索引,并通过索引,获取待搜索图像的搜索结果;使得用户可以直接输入图像进行搜索并得到搜索结果,而无需通过输入对图像进行描述的文本进行搜索,从而显著的降低了搜索的复杂程度,并且减少了搜索的流程,增加了搜索形式的多样化,同时也提高了搜索结果的准确率,为用户带来了更好的体验;另一方面,构建包括基准图像、与基准图像相似的正样本图像以及与基准图像不相似的负样本图像的三元组训练样本,增加了训练样本的多样化,使得特征提取模型可以准确的提取出各历史图像的特征向量;再一方面,通过建立特征向量与所有历史图像之间的索引,并通过索引,获取待搜索图像的搜索结果,提高了对待搜索图像进行搜索的速度,进而节省了用户的搜索时间。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

示例性方法

下面结合图1来描述根据本发明示例性实施方式的图像搜索方法。

参考图1所示,该图像搜索方法可以包括以下步骤:

步骤s110.构建三元组训练样本;其中,所述三元组训练样本包括基准图像、与所述基准图像相似的正样本图像、以及与所述基准图像不相似的负样本图像。

步骤s120.基于所述三元组训练样本进行机器学习得到特征提取模型,并利用所述特征提取模型提取数据库中存储的所有历史图像的特征向量。

步骤s130.建立所述特征向量与所述所有历史图像之间的索引,并通过所述索引,获取待搜索图像的搜索结果。

在本发明示例性实施方式的图像搜索方法中,通过构建包括基准图像、与基准图像相似的正样本图像以及与基准图像不相似的负样本图像的三元组训练样本,然后基于三元组训练样本进行机器学习得到特征提取模型,并利用特征提取模型提取数据库中存储的所有历史图像的特征向量,最后建立特征向量与所有历史图像之间的索引,并通过索引,获取待搜索图像的搜索结果,使得用户可以直接输入图像进行搜索并得到搜索结果,而无需通过输入对图像进行描述的文本进行搜索,从而显著的降低了搜索的复杂程度,并且减少了搜索的流程,增加了搜索形式的多样化,同时也提高了搜索结果的准确率,为用户带来了更好的体验。

下面,将结合附图对本发明示例性实施方式的图像搜索方法中的各步骤进行详细的解释以及说明。

参考图1所示,在步骤s110中,构建三元组训练样本;其中,所述三元组训练样本包括基准图像、与所述基准图像相似的正样本图像、以及与所述基准图像不相似的负样本图像。

在本示例实施方式中,基准图像可以参考图2(a)所示,正样本图像可以参考图2(b)所示,负样本图像可以参考图2(c)所示。此处需要补充说明的是,基准图像可以是线条明确的图像,不包括网格、阴影图像等影响该基准图像的部分,因此基准图像可以是无底色或者纯底色的线条图(简笔画或者漫画图像)。正样本图像可以是与基准图像相似的图像,可以包括阴影或者网格线等等,可以是基准图像的子集。负样本图像可以是与基准图像不相似的图像,例如,当基准图像为狗狗的线条图像时,负样本图像可以是兔子或者猫或者虚拟人物的线条图。

继续参考图1所示,在步骤s120中,基于所述三元组训练样本进行机器学习得到特征提取模型,并利用所述特征提取模型提取数据库中存储的所有历史图像的特征向量。

在本示例实施方式中,可以采用神经网络模型对上述三元组训练样本进行机器学习得到上述特征提取模型。其中,该神经网络模型例如可以是vgg网络模型,也可以是其他神经网络模型,例如可以是res网络模型,本示例对此不做特殊限制,进一步的,该vgg网络模型可以包括一系列的卷积层、池化层和全连接层。

基于三元组训练样本进行机器学习得到特征提取模型,使得该特征提取模型可以准确的识别基准图像特征向量与正样本图像特征向量之间的关联以及基准图像特征向量与负样本图像特征向量之间的区别;因此,当接收到一个待搜索图像并提取该待搜索图像的特征向量后,可以直接推荐与该待搜索图像的特征向量关联的图像,并且在推荐的过程中直接过滤掉与该待搜索图像的特征向量有区别的图像,进而可以提高搜索结果的准确率。

继续参考图1所示,在步骤s130中,建立所述特征向量与所述所有历史图像之间的索引,并通过所述索引,获取待搜索图像的搜索结果。

在本示例实施方式中,首先,建立各历史图像与其对应的特征向量之间的索引关系;其次,利用所述特征提取模型对所述待搜索图像进行特征提取,得到待搜索图像的待搜索特征向量;然后,对所述所有历史图像的特征向量与所述待搜索特征向量进行匹配,得到与所述待搜索特征向量对应的匹配结果;最后,根据所述匹配结果以及所述索引,得到所述待搜索图像的搜索结果。进一步的,当得到与待搜索图像对应的特征向量后,可以计算各历史图像的特征向量中与待搜索图像的特征向量之间的距离,将距离最小的历史图像的特征向量对应的历史图像作为该待搜索图像的搜索结果;其中,待搜索图像可以参考图2(d)所示。通过该方式,大大的减少了系统的计算量,并且由于特征量与历史图像之间的索引关系,使得返回的搜索结果是可以唯一确定的,并不需要用户再从多个搜索结果中查找自己需要的图像,进一步的提升了搜索结果的准确率同时也节省了用户的时间。

图3示意性示出一种构建三元组训练样本的方法流程图。参考图3所示,构建三元组训练样本可以包括步骤s310、步骤s320以及步骤s330,以下进行详细说明。

参考图3所示,在步骤s310中,获取所述基准图像、与所述基准图像相似的正样本图像、以及与所述基准图像不相似的负样本图像。

在本示例实施方式中,以基准图像为简笔画图像、正样本图像以及负样本图像为漫画为例进行举例说明。具体的,可以从简笔画图像库中获取基准图像;其中,该基准图像可以是通过手工绘制的图像,也可以是通过其他方式绘制的图像;绘制的依据可以以漫画图像为准;然后,可以从漫画库中获取与基准图像相似的漫画图像作为正样本图像,获取与基准图像不相似的漫画图像作为负样本图像。

继续参考图3所示,在步骤s320中,对所述正样本图像以及负样本图像进行预处理,得到标准正样本图像以及标准负样本图像。

在本示例实施方式中,预处理可以包括灰度化处理、去网格处理、去阴影处理以及提取线条轮廓等等;通过将正样本图像以及负样本图像进行灰度化处理、去网格处理、去阴影处理,并提取处理后的正样本图像以及负样本图像的线条轮廓,得到与基准图像类似的只包含轮廓线条的标准正样本图像以及标准负样本图像。此处需要补充说明的是,上述图2(b)以及图2(c),都是经过预处理后得到的标准正样本图像以及标准负样本图像。

继续参考图3所示,在步骤s330中,根据所述基准图像、所述标准正样本图像以及所述标准负样本图像,构建所述三元组训练样本。

在本示例实施方式中,三元组训练样本中的标准正样本图像可以包括一个或者多个;标准负样本图像也可以包括一个或者多个;为了进一步的提高特征提取模型的准确性,标准正样本图像中可以包括与基准图像相似度较高的图像,也可以包括在预设相似度范围内相似度稍低的图像;标准负样本图像中可以包括与基准图像类型相同的图像(例如都可以为虚拟人物的图像),也可以包括与基准图像类型不同的图像(例如可以为虚拟人物与虚拟动物等等)。进一步的,上述三元组训练样本可以包括同一种类型的图像多组训练样本(例如多个不同漫画人物组成的多组训练样本),也可以包括不同类型的图像的多组训练样本(例如多个漫画人物、多个漫画动物或者多个漫画景物组成的多组训练样本),本示例对此不做特殊限制。

图4示意性示出一种对所述三元组训练样本进行机器学习得到特征提取模型的方法流程图。参考图4所示,对所述三元组训练样本进行机器学习得到特征提取模型可以包括步骤s410、步骤s420以及步骤s430,以下进行详细说明。

参考图4所示,在步骤s410中,基于深度卷积神经网络的当前网络参数值提取所述三元组训练样本的当前特征向量,其中,所述当前特征向量包括所述基准图像对应的第一特征向量、所述正样本图像对应的第二特征向量以及所述负样本图像对应的第三特征向量。

继续参考图4所示,在步骤s420中,基于所述当前特征向量,计算损失函数值,并判断所述损失函数值是否小于第一预设阈值。

在本示例实施方式中,首先,配置损失函数,然后,根据当前特征向量以及损失函数计算损失函数值;其中,损失函数可以包括:

l(x,xp,xn)=max(||f(x)-f(xp)||2-||f(x)-f(xn)||2+α,0);

其中,l(x,xp,xn)为当前特征向量之间的损失函数值;x为基准图像;xp为正样本图像;xn为负样本图像;

||f(x)-f(xp)||2为第一特征向量与第二特征向量之间的欧式距离;||f(x)-f(xn)||2为第一特征向量与第三特征向量之间的欧式距离;α为预设参数值。

进一步的,在本示例实施方式中,基准图像和正样本之间的差异,应该远小于基准图像和负样本之间的差异。该损失函数认为基准图像和正样本之间的距离,要显著小于基准图像和负样本之间的距离。第一预设阈值可以为0,也可以为其他数值,例如可以是0.1、0.2或者0.3等等,本示例对此不做特殊限制。

继续参考图4所示,在步骤s430中,如果所述损失函数值小于第一预设阈值,则确定所述当前网络参数值对应的深度卷积神经网络为所述特征提取模型。

进一步的,在本示例实施方式中,如果所述损失函数值大于所述预设阈值,则利用梯度回传算法调整所述卷积神经网络的网络参数值的大小。其中,使用梯度回传算法(backpropagation)将损失函数值回传到vgg网络模型,调整vgg网络模型的网络参数值。根据损失函数,计算损失函数值相对于之前的网络层中每一个参数的梯度,使用梯度下降法更新该层的网络参数值。然后,根据上一层传递来的损失函数值,用同样的办法更新更前面一层的网络参数值。直到整个网络中的参数值都得到更新。

图5示意性示出一种建立所述特征向量与所述所有历史图像之间的索引的方法流程图。参考图5所示,建立所述特征向量与所述所有历史图像之间的索引可以包括步骤s510、步骤s520、步骤s530以及步骤s540,以下进行详细说明。

参考图5所示,在步骤s510中,判断所述所有历史图像的图像数量是否小于第二预设阈值。

继续参考图5所示,在步骤s520中,如果所述所有历史图像的图像数量小于第二预设阈值,则建立所述特征向量与所述所有历史图像之间的索引。

继续参考图5所示,在步骤s530中,如果所述所有历史图像的图像数量大于第二预设阈值,则对所述所有历史图像的特征向量进行降维处理。

继续参考图5所示,在步骤s540中,建立降维处理后的特征向量与所述所有历史图像之间的索引。

下面,对步骤s510-步骤s540进行解释以及说明。首先,判断数据库中存储的所有历史图像(包括简笔画图像库以及漫画库中的所有图像)是否小于第二预设阈值,其中,该第二预设阈值例如可以为1万张,也可以为5万张,可以根据服务器的性能以及用户的需求自行设定,本示例对此不做特殊限制。其次,如果所有历史图像的图像数量小于第二预设阈值,则可以直接建立特征向量与所有历史图像之间的索引关系,其中,该索引关系可以采用到倒排-乘积量化的方式进行建立,进一步的,该索引关系中还可以包括该历史图像的图像来源(例如来自于哪一部漫画)、图像名称(例如该漫画形象在该部漫画中的名称)、具体的段落信息(例如该漫画形象在该部漫画中的具体章节以及段落)以及页码信息(例如该漫画形象在该部漫画中的具体页码)等等。进一步的,如果所有历史图像的图像数量(例如可以为20万张)大于第二预设阈值,则可以对所有历史图像的特征向量进行降维处理,例如,可以通过卷积-池化的方式达到对该历史图像的特征向量进行降维处理的目的。最后,可以建立降维处理后的特征向量与所有历史图像之间的索引。此处需要补充说明的是,由于对特征向量进行降维处理会降低搜索结果的准确率,因此在服务器的负担较小的情况下,可以将上述第二预设阈值的数值设置的较大一些,例如可以设置为10万张或者15万张等等,但是,如果所有历史图像的数量过大的话,例如当数量达到50万张或者100万张后,则可以采取上述降维处理的方式,减少服务器的负担。需要补充的是,建立索引的过程中,如果对历史图像的特征向量做了降维处理,那么对于基于特征提取模型提取得到的待搜索图像的待搜索特征向量也需要做相应的降维处理,如此才能完成待搜索特征向量与历史图像的图像特征向量的匹配,进而根据匹配结果以及索引,得到待搜索图像的搜索结果。应当理解的是,本发明中采用的术语“第一”、“第二”仅起到区分的目的,并不意味着对实际内容进行限定。

综上所述,本发明提供的图像搜索方法的主要优势在于,一方面,通过构建包括基准图像、与基准图像相似的正样本图像以及与基准图像不相似的负样本图像的三元组训练样本;然后基于三元组训练样本进行机器学习得到特征提取模型,并利用特征提取模型提取数据库中存储的所有历史图像的特征向量;最后建立特征向量与所有历史图像之间的索引,并通过索引,获取待搜索图像的搜索结果。使得用户可以直接输入图像进行搜索并得到搜索结果,而无需通过输入对图像进行描述的文本进行搜索,从而显著的降低了搜索的复杂程度,并且减少了搜索的流程,增加了搜索形式的多样化,同时也提高了搜索结果的准确率,为用户带来了更好的体验;另一方面,构建包括基准图像、与基准图像相似的正样本图像以及与基准图像不相似的负样本图像的三元组训练样本,增加了训练样本的多样化,使得特征提取模型可以准确的提取出各历史图像的特征向量,并判断出各历史图像以及各历史图像的特征向量相较于基准图像以及基准图像的特征向量是属于正样本还是负样本,进而可以进一步的提高搜索结果的准确率;再一方面,通过建立特征向量与所有历史图像之间的索引,并通过索引,获取待搜索图像的搜索结果,提高了对待搜索图像进行搜索的速度,进而节省了用户的搜索时间。

示例性装置

在介绍了本发明示例性实施方式的图像搜索方法之后,接下来,参考图6对本发明示例性实施方式的图像搜索装置进行描述。

参考图6所示,本发明示例性实施方式的图像搜索装置可以包括样本构建模块610、特征向量提取模620以及索引建立模块630。其中:

样本构建模块610可以用于构建三元组训练样本;其中,所述三元组训练样本包括基准图像、与所述基准图像相似的正样本图像、以及与所述基准图像不相似的负样本图像。

特征向量提取模块620可以用于基于所述三元组训练样本进行机器学习得到特征提取模型,并利用所述特征提取模型提取数据库中存储的所有历史图像的特征向量。

索引建立模块630可以用于建立所述特征向量与所述所有历史图像之间的索引,并通过所述索引,获取待搜索图像的搜索结果。

根据本公开的示例性实施例,样本构建模块还可以用于:

获取所述基准图像、与所述基准图像相似的正样本图像、以及与所述基准图像不相似的负样本图像;

对所述正样本图像以及负样本图像进行预处理,得到标准正样本图像以及标准负样本图像;

根据所述基准图像、所述标准正样本图像以及所述标准负样本图像,构建所述三元组训练样本。

根据本公开的示例性实施例,所述预处理包括灰度化处理、去网格处理、去阴影处理以及提取线条轮廓中的一种或多种。

根据本公开的示例性实施例,特征向量提取模块还可以用于:

基于深度卷积神经网络的当前网络参数值提取所述三元组训练样本的当前特征向量,其中,所述当前特征向量包括所述基准图像对应的第一特征向量、所述正样本图像对应的第二特征向量以及所述负样本图像对应的第三特征向量;

基于所述当前特征向量,计算损失函数值,并判断所述损失函数值是否小于第一预设阈值;

如果所述损失函数值小于第一预设阈值,则确定所述当前网络参数值对应的深度卷积神经网络为所述特征提取模型。

根据本公开的示例性实施例,特征向量提取模块还可以用于:

配置损失函数,并根据所述当前特征向量以及所述损失函数计算损失函数值;

其中,所述损失函数包括:

l(x,xp,xn)=max(||f(x)-f(xp)||2-||f(x)-f(xn)||2+α,0);

其中,l(x,xp,xn)为当前特征向量之间的损失函数值;x为基准图像;xp为正样本图像;xn为负样本图像;

||f(x)-f(xp)||2为第一特征向量与第二特征向量之间的欧式距离;||f(x)-f(xn)||2为第一特征向量与第三特征向量之间的欧式距离;α为预设参数值。

根据本公开的示例性实施例,所述图像搜索装置还可以包括:

网络参数值调整模块,可以用于如果所述损失函数值大于所述预设阈值,则利用梯度回传算法调整所述卷积神经网络的网络参数值的大小。

根据本公开的示例性实施例,索引建立模块还可以用于:

判断所述所有历史图像的图像数量是否小于第二预设阈值;

如果所述所有历史图像的图像数量小于第二预设阈值,则建立所述特征向量与所述所有历史图像之间的索引;

如果所述所有历史图像的图像数量大于第二预设阈值,则对所述所有历史图像的特征向量进行降维处理;

建立降维处理后的特征向量与所述所有历史图像之间的索引。

根据本公开的示例性实施例,索引建立模块还可以用于:

利用所述特征提取模型对所述待搜索图像进行特征提取,得到待搜索图像的待搜索特征向量;

对所述所有历史图像的特征向量与所述待搜索特征向量进行匹配,得到与所述待搜索特征向量对应的匹配结果;

根据所述匹配结果以及所述索引,得到所述待搜索图像的搜索结果。

示例性存储介质

在介绍了本发明示例性实施方式的图像搜索方法和图像搜索装置之后,接下来,参考图7对本发明示例性实施方式的存储介质进行说明。

参考图7所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此。例如,所述计算机程序被处理器执行如图1中所述的步骤s110.构建三元组训练样本;其中,所述三元组训练样本包括基准图像、与所述基准图像相似的正样本图像、以及与所述基准图像不相似的负样本图像。步骤s120.基于所述三元组训练样本进行机器学习得到特征提取模型,并利用所述特征提取模型提取数据库中存储的所有历史图像的特征向量。步骤s130.建立所述特征向量与所述所有历史图像之间的索引,并通过所述索引,获取待搜索图像的搜索结果。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备。

示例性电子设备

在介绍了本发明示例性实施方式的存储介质之后,接下来,参考图对本发明示例性实施方式的电子设备进行说明。

在介绍了本发明示例性实施方式的存储介质之后,接下来,参考图8对本发明示例性实施方式的电子设备进行说明。

图8显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830、显示单元840。

其中,所述存储单元820存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图1中所示的步骤s110.构建三元组训练样本;其中,所述三元组训练样本包括基准图像、与所述基准图像相似的正样本图像、以及与所述基准图像不相似的负样本图像。步骤s120.基于所述三元组训练样本进行机器学习得到特征提取模型,并利用所述特征提取模型提取数据库中存储的所有历史图像的特征向量。步骤s130.建立所述特征向量与所述所有历史图像之间的索引,并通过所述索引,获取待搜索图像的搜索结果。

存储单元820可以包括易失性存储单元,例如随机存取存储单元(ram)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(rom)8203。

存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线830可以包括数据总线、地址总线和控制总线。

电子设备800也可以通过输入/输出(i/o)接口850,与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了弹窗处理装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

应当注意,尽管在上文详细描述中提及了装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

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