图片检索方法及装置、计算机设备及计算机可读介质与流程

文档序号:11729392阅读:230来源:国知局
图片检索方法及装置、计算机设备及计算机可读介质与流程

【技术领域】

本发明涉及计算机应用技术领域,尤其涉及一种图片检索方法及装置、计算机设备及计算机可读介质。



背景技术:

随着移动终端的使用普及,伴随着移动终端而出现的各种功能的应用也如雨后春笋般的涌现出来,大大地方便了人们的生活。例如拍立淘之类的图片检索方法是一种使用非常方便的功能,用户可以输入要找的图片,对应的应用可以根据用户输入的图片在样本库中寻找相似图片的宝贝,使用非常方便。

现有的图片检索方法是利用预先训练的图片特征识别模型寻找相似性图片。图片特征识别模型的训练主要依赖于成对样本的相似度的优化,以调整图片特征识别模型的参数,从而确定图片特征识别模型。例如对于一组训练样本三元组:参考样本a、正样本p和负样本n;基于成对样本的相似度的优化要求参考样本a和正样本p之间的距离减去参考样本a和负样本n之间的距离加上一个常数α之后是小于0的,否则认为产生损失函数l大于0。该损失函数l定义为如下公式:

l=max{dis(a,p)-dis(a,n)+α,0}

其中dis(a,p)表示参考样本a和正样本p之间的欧拉距离,表示参考样本a和正样本p的不相似性大小;dis(a,n)表示参考样本a和负样本n之间欧拉距离,表示参考样本a和负样本n的不相似性大小;其中α的大小可以根据经验来选择一个合适大小的数值。该损失函数l取dis(a,p)-dis(a,n)+α和0之中的大者,例如当dis(a,p)-dis(a,n)+α大于0的时候,损失函数l取dis(a,p)-dis(a,n)+α的数值,当dis(a,p)-dis(a,n)+α等于0的时候,损失函数l为0;而当dis(a,p)-dis(a,n)+α小于0的时候,损失函数l为0;通过不断调整图片特征识别模型的参数,使得损失函数l为0,达到最理想的优化效果。例如图1-图3为现有技术中的损失函数优化示意图。如图1所示,对应的损失函数l为0,因为ap-an+α<0,即dis(a,p)-dis(a,n)+α<0。如图2所示的损失函数l大于0,因为ap-an+α>0,即dis(a,p)-dis(a,n)+α>0。在优化的过程中,减小损失函数l使其接近于0,也即优化目标是将图2之类的所有的训练样本三元组优化到如图1所示的形式。

而图3中的ap-an+α<0,即dis(a,p)-dis(a,n)+α<0,按照现有技术方案可以不进行优化,但是,图3所示的负样本n距离正样本p的距离比较近,即该图片特征识别模型识别出的负样本n与正样本p的特征向量过于接近,不符合实际情况。因此,采用现有的基于成对样本的相似度优化损失函数l而得到的图片特征识别模型,未对图3的情况进行优化,导致图片特征识别模型无法识别图片的有效特征,从而在图片检索时检索图片的效果较差。



技术实现要素:

本发明提供了一种图片检索方法及装置、计算机设备及计算机可读介质,用于提高现有技术中的图片检索效率。

本发明提供一种图片检索方法,所述方法包括:

接收携带目标图片的图片检索请求;

根据所述目标图片、预先采集的图片数据库和预先训练的图片特征识别模型,分别获取所述目标图片的特征向量以及所述图片数据库中每个所述样本图片的特征向量;所述图片特征识别模型是采用预设的图片训练数据库,并基于第一直线与第二直线之间的夹角与预设的夹角阈值所建立的损失函数,对卷积神经网络模型进行训练得到;所述第一直线为所述图片训练数据库中的训练图片的特征向量与所述训练图片的负样本图片的特征向量所在直线,所述第二直线为所述训练图片的正样本图片的特征向量与所述训练图片的负样本图片的特征向量所在直线;

根据所述目标图片的特征向量以及所述图片数据库中每个所述样本图片的特征向量,从所述图片数据库中获取所述目标图片对应的检索结果。

进一步可选地,如上所述的方法中,根据所述目标图片、预先采集的图片数据库和预先训练的图片特征识别模型,分别获取所述目标图片的特征向量以及所述图片数据库中每个所述样本图片的特征向量之前,所述方法还包括:

采集数组训练图片数据,生成所述图片训练数据库;其中每组所述训练图片数据包括所述训练图片、所述训练图片的正样本图片以及所述训练图片的负样本图片;

根据各组所述训练图片数据和所述损失函数,训练所述图片特征识别模型。

进一步可选地,如上所述的方法中,根据各组所述训练图片数据和所述损失函数,训练所述图片特征识别模型,具体包括:

依次将各组所述训练图片数据中的所述训练图片、所述正样本图片以及所述负样本图片输入至所述图片特征识别模型中,分别得到所述训练图片、所述正样本图片以及所述负样本图片的特征向量;

根据所述训练图片、所述正样本图片以及所述负样本图片的特征向量,获取所述训练图片的特征向量与所述负样本图片的特征向量所在的所述第一直线、与所述正样本图片的特征向量与所述负样本图片的特征向量所在的所述第二直线之间的夹角;

根据所述第一直线与所述第二直线之间的夹角以及所述预设的夹角阈值,生成所述训练图片的损失函数;

计算所述训练图片的损失函数对所述图片特征识别模型中各参数的导数;

根据所述图片特征识别模型中的各所述参数以及所述训练图片的损失函数对各所述参数的导数,更新所述图片特征识别模型中的各所述参数,从而确定本次训练后的所述图片特征识别模型;

重复执行上述步骤,直至数组所述训练图片数据都对所述图片特征识别模型进行训练,确定本轮训练后的所述图片特征识别模型。

进一步可选地,如上所述的方法中,根据各组所述训练图片数据和所述损失函数,训练所述图片特征识别模型,还包括:

按照上述每一轮训练中所述训练图片数据库中的数组所述训练图片数据对所述图片特征识别模型的训练,使用所述训练图片数据库中的数组所述训练图片数据重复对所述图片特征识别模型训练n轮,得到最终的所述图片特征识别模型。

进一步可选地,如上所述的方法中,根据所述目标图片的特征向量以及所述图片数据库中每个所述样本图片的特征向量,从所述图片数据库中获取所述目标图片对应的检索结果,具体包括:

计算所述目标图片的特征向量与所述图片数据库中每个所述图片的特征向量的相似度;

获取所述目标图片的特征向量分别与所述图片数据库中每个所述图片的特征向量的相似度与预设相似度阈值的大小关系;

根据得到的各个所述大小关系,从所述图片数据库中获取与所述目标图片的特征向量的相似度大于或者等于所述预设相似度阈值的图片,作为所述目标图片的检索结果。

本发明还提供一种图片检索装置,所述装置包括:

接收模块,用于接收携带目标图片的图片检索请求;

特征向量获取模块,用于根据所述目标图片、预先采集的图片数据库和预先训练的图片特征识别模型,分别获取所述目标图片的特征向量以及所述图片数据库中每个所述样本图片的特征向量;所述图片特征识别模型是采用预设的图片训练数据库,并基于第一直线与第二直线之间的夹角与预设的夹角阈值所建立的损失函数,对卷积神经网络模型进行训练得到;所述第一直线为所述图片训练数据库中的训练图片的特征向量与所述训练图片的负样本图片的特征向量所在直线,所述第二直线为所述训练图片的正样本图片的特征向量与所述训练图片的负样本图片的特征向量所在直线;

检索结果获取模块,用于根据所述目标图片的特征向量以及所述图片数据库中每个所述样本图片的特征向量,从所述图片数据库中获取所述目标图片对应的检索结果。

进一步可选地,如上所述的装置中,还包括:

采集模块,用于采集数组训练图片数据,生成所述图片训练数据库;其中每组所述训练图片数据包括所述训练图片、所述训练图片的正样本图片以及所述训练图片的负样本图片;

训练模块,用于根据各组所述训练图片数据和所述损失函数,训练所述图片特征识别模型。

进一步可选地,如上所述的装置中,所述训练模块,具体用于:

依次将各组所述训练图片数据中的所述训练图片、所述正样本图片以及所述负样本图片输入至所述图片特征识别模型中,分别得到所述训练图片、所述正样本图片以及所述负样本图片的特征向量;

根据所述训练图片、所述正样本图片以及所述负样本图片的特征向量,获取所述训练图片的特征向量与所述负样本图片的特征向量所在的所述第一直线、与所述正样本图片的特征向量与所述负样本图片的特征向量所在的所述第二直线之间的夹角;

根据所述第一直线与所述第二直线之间的夹角以及所述预设的夹角阈值,生成所述训练图片的损失函数;

计算所述训练图片的损失函数对所述图片特征识别模型中各参数的导数;

根据所述图片特征识别模型中的各所述参数以及所述训练图片的损失函数对各所述参数的导数,更新所述图片特征识别模型中的各所述参数,从而确定本次训练后的所述图片特征识别模型;

重复执行上述步骤,直至数组所述训练图片数据都对所述图片特征识别模型进行训练,确定本轮训练后的所述图片特征识别模型。

进一步可选地,如上所述的装置中,所述训练模块,还用于按照上述每一轮训练中所述训练图片数据库中的数组所述训练图片数据对所述图片特征识别模型的训练,使用所述训练图片数据库中的数组所述训练图片数据重复对所述图片特征识别模型训练n轮,得到最终的所述图片特征识别模型。

进一步可选地,如上所述的装置中,所述检索结果获取模块,具体用于:

计算所述目标图片的特征向量与所述图片数据库中每个所述图片的特征向量的相似度;

获取所述目标图片的特征向量分别与所述图片数据库中每个所述图片的特征向量的相似度与预设相似度阈值的大小关系;

根据得到的各个所述大小关系,从所述图片数据库中获取与所述目标图片的特征向量的相似度大于或者等于所述预设相似度阈值的图片,作为所述目标图片的检索结果。

本发明还提供一种计算机设备,所述设备包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的图片检索方法。

本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的图片检索方法。

本发明的图片检索方法及装置、计算机设备及计算机可读介质,通过接收携带目标图片的图片检索请求,根据目标图片、预先采集的图片数据库和预先训练的图片特征识别模型,分别获取目标图片的特征向量以及图片数据库中每个样本图片的特征向量;预先训练的图片特征识别模型是采用预设的图片训练数据库,并基于第一直线与第二直线之间的夹角与预设的夹角阈值所建立的损失函数,对卷积神经网络模型进行训练得到;其中第一直线为图片训练数据库中的训练图片的特征向量与训练图片的负样本图片的特征向量所在直线,第二直线为训练图片的正样本图片的特征向量与训练图片的负样本图片的特征向量所在直线;根据目标图片的特征向量以及图片数据库中每个样本图片的特征向量,从图片数据库中获取目标图片对应的检索结果。本发明通过采用上述技术方案,由于采用优化后的损失函数对卷积神经网络模型进行训练得到图片特征识别模型,使得本发明的图片特征识别模型能够更加准确地获取各图片的特征向量,从而更加准确地对目标图片进行检索,进而能够大大地提高对图片检索的效率。

【附图说明】

图1-图3为现有技术中的损失函数优化示意图。

图4为本发明的图片检索方法实施例一的流程图。

图5为本发明的图片检索方法实施例二的流程图。

图6为本发明的图片检索装置实施例一的结构图。

图7为本发明的图片检索装置实施例二的结构图。

图8为本发明的计算机设备实施例的结构图。

图9为本发明提供的一种计算机设备的示例图。

【具体实施方式】

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

图4为本发明的图片检索方法实施例一的流程图。如图4所示,本实施例的图片检索方法,具体可以包括如下步骤:

100、接收携带目标图片的图片检索请求;

101、根据目标图片、预先采集的图片数据库和预先训练的图片特征识别模型,分别获取目标图片的特征向量以及图片数据库中每个样本图片的特征向量;

本实施例中预先训练的图片特征识别模型是采用预设的图片训练数据库,并基于第一直线与第二直线之间的夹角与预设的夹角阈值所建立的损失函数,对卷积神经网络模型进行训练得到;其中第一直线为图片训练数据库中的训练图片的特征向量与训练图片的负样本图片的特征向量所在直线,第二直线为训练图片的正样本图片的特征向量与训练图片的负样本图片的特征向量所在直线。

102、根据目标图片的特征向量以及图片数据库中每个样本图片的特征向量,从图片数据库中获取目标图片对应的检索结果。

本实施例的图片检索方法的执行主体为图片检索装置,该图片检索装置可以为一个实体的电子装置,也可以为采用软件集成的装置。

本实施例的图片检索方法是一种基于卷积神经网络模型的图片检索方法,即本实施例的图片特征识别模型具体采用卷积神经网络模型。本实施例的图片检索方法根据目标图片,从预先采集的图片数据库获取与该目标图片相似的样本图片,并进一步可以将检索结果呈现给请求检索的用户,从而实现对目标图片的检索。也就是说,在本实施例的步骤100之前,可选地,还需要采集数个样本图片,生成图片数据库;图片数据库中为了便于对各个样本图片进行管理,可以对每个样本图片设置索引号,将每个样本图片按照对应的索引号存储。且本实施例的图片特征识别模型在对图片检索之前预先进行训练得到,且本实施例的图片特征识别模型训练时所使用的图片训练数据库与使用时采集的图片数据库可以没有关系,也就是说,图片特征识别模型在训练时和使用时是两个独立的过程,该图片特征识别模型虽然采用图片训练数据库进行训练,但是不仅可以对该图片训练数据库中的各训练图片在图片训练数据库进行检索,还可以对一个目标图片在该训练数据库中之外的其他任意数据库中进行检索,即本实施例的图片特征识别模型使用非常广泛,使用之前,仅需要采集多个样本图片,生成图片训练数据库,便可以在该图片数据库中对任一目标图片进行检索。本实施例中图片数据库存储的是样本图片,各样本图片可以是根据索引号来存储。而训练图片数据库中是按照一条一条的训练图片数据来存储;每一条训练图片数据包括一个训练图片、一个该训练图片的正样本图片、一个该训练图片的负样本图片;每一条训练图片数据所存储的训练图片、该训练图片的正样本图片与该训练图片的负样本图片之间的对应关系也可以按照各图片的索引号来存储。

本实施例的图片检索装置首先可以接收携带目标图片的图片检索请求;然后可以根据目标图片和预先训练的图片特征识别模型获取目标图片对应的特征向量,并根据预先采集的图片数据库和预先训练的图片特征识别模型,获取图片数据库中每个样本图片对应的特征向量。即本实施例中,该图片特征识别模型可以对图片的特征进行抽取,获取最能够表征该图片的特征即特征向量,并输出。本实施例的图片特征识别模型采用卷积神经网络模型。

本实施例的图片检索方法中,当采集的图片数据库和图片特征识别模型确定时,也可以预先根据上述实施例记载的方式,根据预先采集的图片数据库和预先训练的图片特征识别模型,获取图片数据库中每个样本图片对应的特征向量,并可以将每个样本图片对应的特征向量也存储在图片数据库中,具体存储时,可以根据图片的索引号来存储对应的样本图片的特征向量;或者也可以再建立一个特征向量数据库,专门用来存储该图片数据库中各样本图片对应的特征向量。当对某个目标图片进行检索时,可以仅获取目标图片的特征向量,然后直接从图片数据库或者特征向量数据库中获取预先存储的每个样本图片的特征向量,然后直接进行图片检索的后续处理即可;可以节省每次图片检索的流程,节省图片检索的时间,提高图片检索的效率。

例如本实施例的图片检索装置可以通过连接的摄像头接收用户拍摄的目标图片,或者接收用户通过人机接口模块从相册或者其他路径下选择目标图片;并接收用户触发的基于该目标图片的图片检索请求。例如,在某一购物平台上,可以使用本实施例的基于第一直线与第二直线之间的夹角与预设的夹角阈值所建立的损失函数,并对卷积神经网络模型进行训练得到图片特征识别模型,对用户发起的携带目标图片的图片检索请求进行处理。用户可以通过购物网站的界面点击一个寻找与目标图片相似物品的按钮,然后拍摄要寻找的物体的照片得到目标图片或者从其它网站截屏或者从相册中选择目标图片,点击确定,便触发了本实施例的图片检索操作。

进一步可选地,本实施例的步骤102“根据目标图片的特征向量以及图片数据库中每个样本图片的特征向量,从图片数据库中获取目标图片对应的检索结果”,具体可以包括如下步骤:

(a1)计算目标图片的特征向量与图片数据库中每个图片的特征向量的相似度;

(a2)获取目标图片的特征向量分别与图片数据库中每个图片的特征向量的相似度与预设相似度阈值的大小关系;

(a3)根据得到的各个大小关系,从图片数据库中获取与目标图片的特征向量的相似度大于或者等于预设相似度阈值的图片,作为目标图片的检索结果。

由于本实施例的目标图片对应的特征向量与图片数据库中各样本图片对应的特征向量均采用向量表示,可以计算目标图片对应的特征向量与图片数据库中各样本图片对应的特征向量的相似度值。然后分别判断每一个相似度值与预设的相似度阈值的大小关系,确定每个相似度值是大于或者等于相似度阈值、还是小于相似度阈值。然后可以从图片数据库中获取与目标图片对应的相似度值大于或者等于预设相似度阈值的样本图片,作为对该目标图片进行检索的检索结果的图片。本实施例的预设相似度阈值可以根据实际需求设置为95%,90%或者其他0-1之间的其它百分数。或者也可以直接根据得到的多个相似度值,从中获取最大的相似度值,并从图片数据库中获取该最大的相似度值对应的样本图片,作为该目标图片的检索结果的样本图片。或者上述两种方案也可以结合使用,先根据得到的多个相似度值,判断是否存在大于或者等于预设相似度阈值的相似度值,若存在,直接取该相似度值对应的样本图片作为该目标图片的检索结果对应的样本图片;否则若不存在,从中获取最大的相似度值,并从图片数据库中获取该最大的相似度值对应的样本图片,作为目标图片对应的检索结果。

进一步可选地,本实施例的图片检索装置,当目标图片的检索结果中包括多个样本图片时,还可以根据多个样本图片对应的相似度值的大小对检索结果中的多个样本图片进行排序。将检索结果中相似度值的大的样本图片排在前面,相似度值小的样本图片排在后面。图片检索装置还可以将检索结果中的多个样本图片按照排序后的顺序依次显示。当图片检索装置中没有显示设备,需要向其它显示设备发送检索结果时,可以按照排序后的顺序依次发送检索结果,以供其它显示设备根据检索结果中的各个样本图片与目标图片的相似度的大小顺序依次显示检索结果中的各个样本图片。

本实施例中预先训练的图片特征识别模型是采用预设的图片训练数据库,并基于图片训练数据库中的训练图片的特征向量与训练图片的负样本图片的特征向量所在的第一直线、与训练图片的正样本图片的特征向量与训练图片的负样本图片的特征向量所在的第二直线之间的夹角与预设的夹角阈值所建立的损失函数,对卷积神经网络模型进行训练得到。损失函数表征的是一个向梯度方向下降的值,损失函数值越大,表示图片特征识别模型的对输入的图片的进行处理后输出的特征向量越不准确,本实施例中可以通过不断地调整损失函数,使得损失函数的最终点的梯度为0。损失函数的值越小即为0,表示图片特征识别模型的处理结果越准确。其中基于该损失函数训练图片特征识别模型的过程也可以称之为度量学习的过程,由于现有技术的损失函数设置不合理,导致度量学习之后,得到的图片特征识别模型不够准确,无法对图片的特征向量进行有效抽取。本实施例的图片特征识别模型是在优化后的损失函数的基础上训练得到的,本实施例优化后的损失函数可以克服现有技术中的损失函数的缺陷,因此本实施例的基于该优化后的损失函数,度量学习的图片特征识别模型便能够克服现有技术的图片特征识别模型的缺陷,能够更加准确地识别图片的有效特征,进而提高图片的检索效率。

由于本实施例的图片特征识别模型在训练时采用的损失函数是基于第一直线和第二直线的夹角与预设的夹角阈值来建立的,例如该损失函数可以采用如下公式来表示;

l=max{∠anp-θ,0

其中a表示一条图片训练数据中的训练图片的特征向量,p表示该训练图片a的正样本图片的特征向量,n表示该训练图片a的负样本图片的特征向量。∠anp表示该训练图片a的特征向量与训练图片a的负样本图片n的特征向量所在的第一直线,与训练图片a的正样本图片p的特征向量与训练图片a的负样本图片n的特征向量所在的第二直线之间的夹角。θ可以为根据经验所选取的一个合理的大小的角度。例如该角度θ可以选取30-60度之间的任意角度。该损失函数要求∠anp接近于角度θ,此时损失函数为0,由于角度∠anp的存在,此时训练图片a的正样本图片p与训练图片a的负样本图片n之间存在一定的距离不会太接近,因此本实施例基于该损失函数训练的图片特征识别模型能够准确地获取图片的特征向量,进而可以在图片检索时有效地提高图片的检索效率。

本实施例的图片检索方法,通过接收携带目标图片的图片检索请求,根据目标图片、预先采集的图片数据库和预先训练的图片特征识别模型,分别获取目标图片的特征向量以及图片数据库中每个样本图片的特征向量;预先训练的图片特征识别模型是采用预设的图片训练数据库,并基于第一直线与第二直线之间的夹角与预设的夹角阈值所建立的损失函数,对卷积神经网络模型进行训练得到;其中第一直线为图片训练数据库中的训练图片的特征向量与训练图片的负样本图片的特征向量所在直线,第二直线为训练图片的正样本图片的特征向量与训练图片的负样本图片的特征向量所在直线;根据目标图片的特征向量以及图片数据库中每个样本图片的特征向量,从图片数据库中获取目标图片对应的检索结果。本实施例中,由于采用优化后的损失函数对卷积神经网络模型进行训练得到图片特征识别模型,使得本实施例的图片特征识别模型能够更加准确地获取各图片的特征向量,从而更加准确地对目标图片进行检索,进而能够大大地提高对图片检索的效率。

图5为本发明的图片检索方法实施例二的流程图。如图5所示,本实施例的图片检索方法,在上述图4所示实施例的技术方案的基础上,在步骤101“根据目标图片、预先采集的图片数据库和预先训练的图片特征识别模型,分别获取目标图片的特征向量以及图片数据库中每个样本图片的特征向量”之前,还可以包括如下步骤:

200、采集数组训练图片数据,生成图片训练数据库;其中每组训练图片数据包括训练图片、训练图片的正样本图片以及训练图片的负样本图片;

201、根据各组训练图片数据和预设的损失函数,训练图片特征识别模型。

本实施例的步骤200-201是用于对图片特征识别模型进行训练。本实施例在训练图片特征识别模型时,首先采集数组训练图片数据,生成图片训练数据库来对图片特征识别模型进行训练;其中每组训练图片数据包括训练图片、训练图片的正样本图片以及训练图片的负样本图片共三张图片。本实施例的图片训练数据库中包括的训练图片数据的组数越多,训练的图片特征识别模型的参数越准确,后续根据该图片特征识别模型得出的图片的特征向量越能准确表征该图片,对图片的检索效率就越高。例如本实施例的图片训练数据库中可以包括20万-30万甚至更多组的训练图片数据。

本实施例中在训练图片特征识别模型时,可以采用步骤101中所预设的损失函数,该预设的损失函数可以表示为l=max{∠anp-θ,0},详细可以参考上述相关实施例的记载,在此不再赘述。

例如,本实施例中,该步骤201“根据各组训练图片数据和预设的损失函数,训练图片特征识别模型”,具体可以包括如下步骤:

(b1)依次将各组训练图片数据中的训练图片、正样本图片以及负样本图片输入至图片特征识别模型中,分别得到训练图片、正样本图片以及负样本图片的特征向量;

本实施例中,在训练图片特征识别模型的过程中,图片特征识别模型中的参数是不断地变化的,即图片特征识别模型是在不断地变化。在每一次训练时,所采用的图片特征识别模型均为上一次训练更新后的图片特征识别模型。而本实施例的图片特征识别模型被初次使用时各参数采用的是预设的初始值。该图片特征识别模型的原型为一个卷积神经网络模型。

(b2)根据训练图片、正样本图片以及负样本图片的特征向量,获取训练图片的特征向量与负样本图片的特征向量所在的第一直线、与正样本图片的特征向量与负样本图片的特征向量所在的第二直线之间的夹角;

本实施例中,训练图片、正样本图片以及负样本图片的特征向量可以分别看作是在某一空间中的坐标信息,根据训练图片、正样本图片以及负样本图片的特征向量,可以确定训练图片、正样本图片以及负样本图片在该空间中的坐标信息。例如如图1-图3所示,训练图片a、正样本图片p以及负样本图片n的点的位置,分别为根据各自对应的特征向量,在空间中标识训练图片a、正样本图片p以及负样本图片n。由于在该空间中,训练图片a的特征向量、正样本图片p的特征向量以及负样本图片n的特征向量的点的位置确定,那么训练图片a的特征向量与正样本图片p的特征向量之间的距离、训练图片a的特征向量与负样本图片n的特征向量之间的距离、以及正样本图片p的特征向量与负样本图片n的特征向量之间的距离均可以计算出来;再进一步地,根据训练图片a的特征向量与正样本图片p的特征向量之间的距离、训练图片a的特征向量与负样本图片n的特征向量之间的距离、以及正样本图片p的特征向量与负样本图片n的特征向量之间的距离,可以计算出训练图片a的特征向量与负样本图片n的特征向量所在的第一直线、与正样本图片p的特征向量与负样本图片n的特征向量所在的第二直线之间的夹角。

(b3)根据第一直线与第二直线之间的夹角以及预设的夹角阈值,生成训练图片的损失函数;

例如,可以根据公式l=max{∠anp-θ,0},生成训练图片的损失函数。

(b4)计算训练图片的损失函数对图片特征识别模型中各参数的导数;

由于图片特征识别模型中是包括多个参数,当输入的图片为确定时,也可以将损失函数看作是关于参数的函数,此时可以计算训练图片的损失函数对图片特征识别模型中各参数的导数。

(b5)根据图片特征识别模型中的各参数以及训练图片的损失函数对各参数的导数,更新图片特征识别模型中的各参数,从而确定本次训练后的图片特征识别模型;

(b6)重复执行上述步骤(b1)-(b5),直至数组训练图片数据都对图片特征识别模型进行训练,确定本轮训练后的图片特征识别模型。

具体地,由于图片特征识别模型中是包括多个参数,当输入的训练图片数据为确定时,也可以将损失函数看作是关于参数的函数,此时可以计算训练图片数据的损失函数对图片特征识别模型中各参数的导数;对于图片特征识别模型中的每一个参数,在更新时,可以将图片特征识别模型中该参数更新为该参数减去损失函数对该参数的导数,即每一次训练都对图片特征识别模型进行更新。更新完图片特征识别模型之后,然后返回到步骤(b1)开始使用下一组训练图片数据对图片特征识别模型进行训练,直到步骤(b5),完成下一组训练图片数据对图片特征识别模型的训练,并再次更新图片特征识别模型中的各参数,从而更新图片特征识别模型;依次类推,直至数组训练图片数据都对图片特征识别模型进行训练,确定本轮训练后的图片特征识别模型。此时得到的图片特征识别模型也可以应用于图片检索中。

因为损失函数表征的是一个向梯度方向下降的值,损失函数值越大,表示图片特征识别模型的对输入的图片进行处理后输出的特征向量越不准确,本实施例中通过不断地调整损失函数,使得损失函数的最终点的梯度为0。损失函数的值越小,表示图片特征识别模型的处理结果越准确。上述实施例的技术方案,在更新图片特征识别模型的时候,具体是在朝着损失函数逐渐降低的方向更新。因此,通过不断的训练,不断地优化损失函数,不断地更新图片特征识别模型的参数,从而不断的更新图片特征识别模型,使得最终得到的图片特征识别模型能够非常准确地对图片进行处理,提取出更加准确地特征向量。

进一步可选地,还可以按照上述步骤(b1)-(b6)所示的每一轮训练中训练图片数据库中的数组训练图片数据对图片特征识别模型的训练,使用训练图片数据库中的数组训练图片数据重复对图片特征识别模型训练n轮,得到最终的图片特征识别模型。

例如当图片训练数据库中包括20万组训练图片数据时,按照顺序依次使用图片训练数据库中的20万组训练图片数据对图片特征识别模型进行训练后,可以认为完成一轮对图片特征识别模型的训练;然后按照每一轮对图片特征识别模型的训练,再使用图片训练数据库中的20万组训练图片数据对图片特征识别模型进行n-1轮训练,可以得到最终的图片特征识别模型。本实施例中,经过多轮训练,可以进一步提高训练得到的图片特征识别模型提取的图片特征向量的准确性,进而进一步提高基于图片特征识别模型进行图片检索的效率。本实施例中的n可以根据实际经验选取一个正整数,例如该n可以为5、6或者8、10之类的正整数。

本实施例的图片检索方法,通过采用上述损失函数对卷积神经网络模型进行训练所得到图片特征识别模型,使得该图片特征识别模型能够对目标图片提取更加准确的特征向量,从而能够更加准确地对目标图片进行检索,进而能够大大地提高对图片检索的效率。

图6为本发明的图片检索装置实施例一的结构图。如图6所示,本实施例的图片检索装置,具体包括:接收模块10、特征向量获取模块11和检索结果获取模块12。

其中接收模块10用于接收携带目标图片的图片检索请求;

特征向量获取模块11用于根据接收模块10接收的图片检索请求中的目标图片、预先采集的图片数据库和预先训练的图片特征识别模型,分别获取目标图片的特征向量以及图片数据库中每个样本图片的特征向量;图片特征识别模型是采用预设的图片训练数据库,并基于第一直线与第二直线之间的夹角与预设的夹角阈值所建立的损失函数,对卷积神经网络模型进行训练得到;第一直线为图片训练数据库中的训练图片的特征向量与训练图片的负样本图片的特征向量所在直线,第二直线为训练图片的正样本图片的特征向量与训练图片的负样本图片的特征向量所在直线;

检索结果获取模块12用于根据特征向量获取模块11获取的目标图片的特征向量以及图片数据库中每个样本图片的特征向量,从图片数据库中获取目标图片对应的检索结果。

本实施例的图片检索装置,通过采用上述模块实现图片检索的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。

图7为本发明的图片检索装置实施例二的结构图。如图7所示,本实施例的图片检索装置,在上述图6所示实施例的技术方案的基础上,进一步更加详细地介绍本发明的技术方案。

如图7所示,本实施例的图片检索装置,还包括:采集模块13和训练模块14。

其中采集模块13用于采集数组训练图片数据,生成图片训练数据库;其中每组训练图片数据包括训练图片、训练图片的正样本图片以及训练图片的负样本图片;

训练模块14用于根据采集模块13采集的各组训练图片数据和损失函数,训练图片特征识别模型。

对应地,特征向量获取模块11用于根据接收模块10接收的图片检索请求中的目标图片、预先采集的图片数据库和训练模块14预先训练的图片特征识别模型,分别获取目标图片的特征向量以及图片数据库中每个样本图片的特征向量。

进一步可选地,本实施例的图片检索装置中,训练模块14具体用于:

依次将各组训练图片数据中的训练图片、正样本图片以及负样本图片输入至图片特征识别模型中,分别得到训练图片、正样本图片以及负样本图片的特征向量;

根据训练图片、正样本图片以及负样本图片的特征向量,获取训练图片的特征向量与负样本图片的特征向量所在的第一直线、与正样本图片的特征向量与负样本图片的特征向量所在的第二直线之间的夹角;

根据第一直线与第二直线之间的夹角以及预设的夹角阈值,生成练图片的损失函数;

计算训练图片的损失函数对图片特征识别模型中各参数的导数;

根据图片特征识别模型中的各参数以及训练图片的损失函数对各参数的导数,更新图片特征识别模型中的各参数,从而确定本次训练后的图片特征识别模型;

重复执行上述步骤,直至数组训练图片数据都对图片特征识别模型进行训练,确定本轮训练后的图片特征识别模型。

进一步可选地,本实施例的图片检索装置中,训练模块14具体还用于还用于按照上述每一轮训练中训练图片数据库中的数组训练图片数据对图片特征识别模型的训练,使用训练图片数据库中的数组训练图片数据重复对图片特征识别模型训练n轮,得到最终的图片特征识别模型。

进一步可选地,本实施例的图片检索装置中,检索结果获取模块12具体用于:

计算特征向量获取模块11获取的目标图片的特征向量与特征向量获取模块11获取的图片数据库中每个图片的特征向量的相似度;

获取目标图片的特征向量分别与图片数据库中每个图片的特征向量的相似度与预设相似度阈值的大小关系;

根据得到的各个大小关系,从图片数据库中获取与目标图片的特征向量的相似度大于或者等于预设相似度阈值的图片,作为目标图片的检索结果。

本实施例的图片检索装置,通过采用上述模块实现图片检索的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。

图8为本发明的计算机设备实施例的结构图。如图8所示,本实施例的计算机设备,包括:一个或多个处理器30,以及存储器40,存储器40用于存储一个或多个程序,当存储器40中存储的一个或多个程序被一个或多个处理器30执行,使得一个或多个处理器30实现如上图4-图5所示实施例的图片检索方法。图8所示实施例中以包括多个处理器30为例。

例如,图9为本发明提供的一种计算机设备的示例图。图9示出了适于用来实现本发明实施方式的示例性计算机设备12a的框图。图9显示的计算机设备12a仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图9所示,计算机设备12a以通用计算设备的形式表现。计算机设备12a的组件可以包括但不限于:一个或者多个处理器16a,系统存储器28a,连接不同系统组件(包括系统存储器28a和处理器16a)的总线18a。

总线18a表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

计算机设备12a典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12a访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28a可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30a和/或高速缓存存储器32a。计算机设备12a可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34a可以用于读写不可移动的、非易失性磁介质(图9未显示,通常称为“硬盘驱动器”)。尽管图9中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18a相连。系统存储器28a可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明上述图4-图7各实施例的功能。

具有一组(至少一个)程序模块42a的程序/实用工具40a,可以存储在例如系统存储器28a中,这样的程序模块42a包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42a通常执行本发明所描述的上述图4-图7各实施例中的功能和/或方法。

计算机设备12a也可以与一个或多个外部设备14a(例如键盘、指向设备、显示器24a等)通信,还可与一个或者多个使得用户能与该计算机设备12a交互的设备通信,和/或与使得该计算机设备12a能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22a进行。并且,计算机设备12a还可以通过网络适配器20a与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20a通过总线18a与计算机设备12a的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12a使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理器16a通过运行存储在系统存储器28a中的程序,从而执行各种功能应用以及数据处理,例如实现上述实施例所示的图片检索方法。

本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所示的图片检索方法。

本实施例的计算机可读介质可以包括上述图9所示实施例中的系统存储器28a中的ram30a、和/或高速缓存存储器32a、和/或存储系统34a。

随着科技的发展,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载,或者采用其他方式获取。因此,本实施例中的计算机可读介质不仅可以包括有形的介质,还可以包括无形的介质。

本实施例的计算机可读介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。

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

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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