本申请涉及数据分析技术领域,更具体的说是涉及一种图像检索方法和装置。
背景技术:
随着互联网技术的不断发展,传统的基于文本的检索方式已经无法满足人们的检索需求,为此,人们提出了基于图像进行信息检索的方式。如,在一些电商网站或者视频网站等,用户将图片作为输入,网站通过对图片进行分析,从数据库中提取与该图片存在关联的商品或者视频内容等,并将检索到的内容返回给用户。
在图像检索技术中,图像特征的表达方式至关重要,可以直接影响到图像检索的精准度和速度。目前,在基于图像进行信息检索的过程中,一般都是利用图像的颜色、纹理、形状或者边缘等特征进行匹配。然而由于数据库中的图片中对象存在较大的姿态变化,且图片的角度、对比度以及光照等也存在诸多变化,按照现有的图像检索方式中所提取的特征无法适应数据库中图片的诸多变化,导致图像检索的准确度低。
技术实现要素:
有鉴于此,本申请提供了一种图像检索方法和装置,以提高图像检索的精准度和效率。
为实现上述目的,本申请提供如下技术方案:一种图像检索方法,包括:
获取待检索的检索图像;
提取所述检索图像的深度特征;
基于预置的降维矩阵,降低所述深度特征的维度,得到经过降维的深度特征,其中,所述降维矩阵为预先训练得到的线性判别分析的投影矩阵的前指定列所构成的矩阵;
从预置的图像库中,检索与所述经过降维的深度特征匹配的至少一幅目标图像。
优选的,所述提取所述检索图像的深度特征,包括:
基于预先训练得到的卷积神经网络模型,提取出所述检索图像的深度特征。
优选的,所述提取所述检索图像的深度特征,包括:
提取所述检索图像的深度特征的向量;
所述基于预置的降维矩阵,降低所述深度特征的维度,包括:
将所述深度特征的向量与所述预置的降维矩阵相乘,以得到经过降维的深度特征向量。
优选的,所述从预置的图像库中,检索与所述经过降维的深度特征匹配的至少一幅目标图像,包括:
分别确定所述经过降维的深度特征与预置的特征库中的每个特征之间的深度特征匹配度;
按照所述深度特征匹配度从高到低的顺序,从所述特征库中,匹配出所述深度特征匹配度排序靠前的预设数量个目标特征,所述特征库包括用于匹配图像的多个特征;
从预置的图像库中,分别检索与所述预设数量个目标特征相匹配的至少一幅目标图像。
优选的,所述线性判别分析的投影矩阵通过如下方式得到:
获取包含m个图像样本的数据集,其中,所述数据集中包括c个类别样本集合,c为大于等于2的自然数,且m为大于等于2的自然数;
利用预先训练得到的卷积神经网络模型,提取所述数据集中所有图像样本的深度特征,得到每个所述图像样本的深度特征向量;
基于每个所述图像样本的深度特征向量,分别计算每个所述类别样本集合的深度特征平均值,以及所有类别样本集合的深度特征的总平均值;
利用每个所述类别样本集合的深度特征平均值以及所述所有类别样本集合的深度特征的总平均值,计算所述数据集的类间离散度矩阵以及类内离散度矩阵;
基于线性判别分析的鉴别准则,所述类间离散度矩阵以及类内离散度矩阵,计算投影矩阵。
另一方面,本申请还提供了一种图像检索装置,包括:
图像获取单元,用于获取待检索的检索图像;
特征提取单元,用于提取所述检索图像的深度特征;
特征降维单元,用于基于预置的降维矩阵,降低所述深度特征的维度,得到经过降维的深度特征,其中,所述降维矩阵为预先训练得到的线性判别分析的投影矩阵的前指定列所构成的矩阵;
图像检索单元,用于从预置的图像库中,检索与所述经过降维的深度特征匹配的至少一幅目标图像。
优选的,所述特征提取单元,包括:
特征提取子单元,用于基于预先训练得到的卷积神经网络模型,提取出所述检索图像的深度特征。
优选的,所述特征提取单元具体用于,提取所述检索图像的深度特征的向量;
所述特征降维矩阵,包括:
特征降维子矩阵,用于将所述深度特征的向量与所述预置的降维矩阵相乘,以得到经过降维的深度特征向量。
优选的,所述图像检索单元,包括:
匹配计算子单元,用于分别确定所述经过降维的深度特征与预置的特征库中的每个特征之间的深度特征匹配度;
特征匹配子单元,按照所述深度特征匹配度从高到低的顺序,从所述特征库中,匹配出所述深度特征匹配度排序靠前的预设数量个目标特征,所述特征库包括用于匹配图像的多个特征;
图像检索子单元,用于从预置的图像库中,分别检索与所述预设数量个目标特征相匹配的至少一幅目标图像。
优选的,还包括:
投影矩阵确定单元,用于通过如下方式计算得到所述投影矩阵:
获取包含m个图像样本的数据集,其中,所述数据集中包括c个类别样本集合,其中,c为大于等于2的自然数,且m为大于等于2的自然数;
利用预先训练得到的卷积神经网络模型,提取所述数据集中所有图像样本的深度特征,得到每个所述图像样本的深度特征向量;
基于每个所述图像样本的深度特征向量,分别计算每个所述类别样本集合的深度特征平均值,以及所有类别样本集合的深度特征的总平均值;
利用每个所述类别样本集合的深度特征平均值以及所述所有类别样本集合的深度特征的总平均值,计算所述数据集的类间离散度矩阵以及类内离散度矩阵;
基于线性判别分析的鉴别准则,所述类间离散度矩阵以及类内离散度矩阵,计算投影矩阵。
经由上述的技术方案可知,本申请在获取到待检索的检索图像之后,会提取检索图像的深度特征,而在利用深度特征进行图像检索之前,会利用预置的降维矩阵对提取出的深度特征进行降维,由于降维矩阵为线性判别分析的投影矩阵的前指定列所构成的矩阵,因此,通过该降维矩阵在降低提取出的深度特征的维度的同时,也可以减少深度特征之间的相关性,这样,在利用经过降维的深度特征进行图像检索,既可以减少由于深度特征之间的相关性对图像检索精度的影响,又可以提高图像检索的检索效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请一种图像检索方法一个实施例的流程示意图;
图2示出了本申请一种图像检索方法又一个实施例的流程示意图;
图3示出了本申请一种图像检索方法中计算得到投影矩阵的流程示意图;
图4示出了本申请一种图像检索装置一个实施例的组成结构示意图。
具体实施方式
本申请的图像检索方法和装置可以应用于具备数据处理能够的任意计算机中,如该方案可以应用于具有图像检索功能的服务器或者其他计算机设备中。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如,参见图1,其示出了本申请一种图像检索方法一个实施例的流程示意图,本实施例的方法可以包括:
s101,获取待检索的检索图像。
其中,为了与后续检索出的图像进行区分,在本申请实施例中将需要进行检索的图像称为检索图像。
如,计算机(如,检索服务器)接收用户通过搜索引擎输入的图像,并将该图像作为当前需要进行检索的图像。
举例说明,在用户需要依据某款产品的图像搜索相关产品时,则可以将该款产品的图像作为检索图像输入到搜索引擎中。
s102,提取该检索图像的深度特征。
其中,图像的深度特征是指通过深度学习的方式学习出的特征。
可以理解的是,深度特征可以是预设维度n的向量。其中,预设维度n可以根据需要设定。
其中,提取该检索图像的深度特征方式可以有多种。如,可以通过预先训练得到卷积神经网络模型,并通过该卷积神经网络模型来提取该检索图像的深度特征。
s103,基于预置的降维矩阵,降低该深度特征的维度,得到经过降维的深度特征。
其中,所述降维矩阵为预先训练得到的线性判别分析(lineardiscriminantanalysis,lda)的投影矩阵的前指定列所构成的矩阵。
其中,该指定列的列数小于该投影矩阵的总列数。
由于深度特征的多个维度中,越靠前的维度所对应的深度特征越重要,因此,本申请选取投影矩阵的前指定列作为降维矩阵,并利用该降维矩阵来降低深度特征的维度,既可以实现降低深度特征的维度的目的,又可以最大限制保持深度特征本身的特性。
可以理解的是,在本申请实施例中通过提取检索图像的深度特征,以利用检索图像的深度特征进行图像检索,可以降低特征无法适应数据库中图像的姿态、光照等诸多变化的情况,有利于提高图像检索的精准度。但是,深度特征的向量之间具有一定的相关性,也会对检索的准确率产生影响;并且深度特征的维度也较高,从而会影响到检索的速度,因此,为了进一步提高检索的精准度和检索效率,在本申请实施例中需要利用降维矩阵对深度特征进行降维。
其中,线性判别分析的投影矩阵为:预先根据线性判别分析的鉴别准则确定出的,使得投影后的训练样本具有最大类间离散度以及最小类内离散度的投影方向所对应的矩阵。其中,该训练样本为用于计算投影矩阵的数据集中所包含的训练样本,该训练样本的数量为多个,且该多个训练样本可以划分为至少两个类别。
可以理解的是,利用线性判别分析的投影矩阵对图像的深度特征进行处理,可以降低图像的深度特征的相关性,而该降维矩阵是该投影矩阵的前指定列,因此,通过该降维矩阵来降低该检索图像的深度特征的维度,可以在减少深度特征的维度的同时,减少了深度特征之间的相关性,这样,后续利用经过降维后的深度特征进行图像检索,有利于提高检索精准度和检索效率。
可以理解的是,由于深度特征本身也是一个向量,因此,利用降维矩阵对该深度特征进行降维可以是,将该降维矩阵与该深度特征的向量相乘,从而得到经过降维的深度特征的向量。
其中,计算得到线性判别分析的投影矩阵可以参见后面实施例的相关介绍,
s104,从预置的图像库中,检索与该经过降维的深度特征匹配的至少一幅目标图像。
其中,在得到检索所需的深度特征,即该经过降维的深度特征之后,利用该经过降维的深度特征,检索与该检索图像相匹配的目标图像的过程可以有多种实现方式,本申请实施例对的检索过程不加以限制。
可见,在本申请实施例中,在获取到待检索的检索图像之后,会提取检索图像的深度特征,而在利用深度特征进行图像检索之前,会利用预置的降维矩阵对提取出的深度特征进行降维,由于降维矩阵为线性判别分析的投影矩阵的前指定列所构成的矩阵,因此,通过该降维矩阵在降低提取出的深度特征的维度的同时,也可以减少深度特征之间的相关性,这样,在利用经过降维的深度特征进行图像检索,既可以减少由于深度特征之间的相关性对图像检索精度的影响,又可以提高图像检索的检索效率。
为了便于理解本申请实施例的方案,下面结合图2对本申请实施例的图像检索方法进行介绍。
如图2,其示出了本申请一种图像检索方法又一个实施例的流程示意图,本实施例的方法可以包括:
s201,获取待检索的检索图像。
s202,利用预置的卷积神经网络模型提取该检索图像的深度特征向量fc。
其中,该深度特征向量fc的维度为预设维度n。
其中,该预置的卷积神经网络模型为预先利用多个图像训练样本训练得到的,用于提取图像的深度层次特征的卷积神经网络模型。
其中,利用多个图像样本作为图像训练样本训练得到用于提取深度特征的卷积神经网络模型的方式可以有多种,无论采用何种方式训练得到用于提取图像的深度特征的卷积神经网络模型均适用于本申请实施例,在此不加以限制。
如,可以采用的模型为resnet50分类模型,提取resnet50模型pool5层的特征作为特征向量,特征向量的维数为2048维。可以理解的是,在本申请实施例中卷积神经网络模型可以为resnet50模型,但是可以理解的是,在实际应用中,通过如视觉几何组(visualgeometrygroup,vgg)等分类网络模型来提取输入的检索图像的深度特征也同样适用于本申请实施例,还可以有是其他卷积神经网络模型之外的其他网络模型来提取该检索图像的深度特征。
s203,利用预置的降维矩阵w',与该深度特征向量fc相乘,得到经过降维度后的深度特征向量ft。
其中,ft=w'*fc(公式一);
其中,相对于深度特征向量fc,深度特征向量ft维度以及相关性均降低。
其中,降维矩阵w'为提取预先得到的lda的投影矩阵wopt靠前的p列所组成的矩阵,其中,p大于1且小于该投影矩阵wopt的总列数。
为了便于理解,下面对计算得到投影矩阵wopt的过程进行介绍。
如,参见图3,其为本申请实施例中利用训练样本计算得到该lda的投影矩阵的流程示意图,该过程可以包括如下步骤s301至s305:
s301,获取包含m个图像样本的数据集;
其中,该数据集中包括c个类别样本集合,c为大于等于2的自然数,且m为大于等于2的自然数。假设i类别样本集合中图像样本的个数为ni,i为从1到c的自然数,则m=n1+n2+…ni+…+nc。
如,该数据集中可以包括属于相同款产品的多个图像样本,而这多个图像样本可以是来自多类产品的图像样本,这样,该数据集可以包括多类相同款产品的图像样本,而每个类别样本集合可以包括同一类产品的多个图像样本。
s302,利用预先训练得到的卷积神经网络模型,分别提取该数据集中所有图像样本的深度特征,得到每个图像样本的深度特征向量;
如,该数据集对应的所有图像样本的深度特征向量所组成的深度特征向量集合可以表示为f={f1,f2,……fj……fm},其中,fj表示一个图像样本j的深度特征向量,j为从1到m的自然数。
s303,基于图像样本的深度特征向量,分别计算每个类别样本集合i的深度特征平均值ui,以及所有类别样本集合的深度特征的总平均值u;
其中,类别样本集合i的深度特征平均值ui可以通过如下公式二计算得到:
其中,ni为类别样本集合i中图像样本的个数,i为从1到c的自然数,dk∈classi表示图像样本dk属于类别样本集合i,k为从1到ni的自然数,fj表示图像样本dk的深度特征向量。
其中,所有类别样本集合i的深度特征的总平均值u可以通过如下公式三计算得到:
其中,m为数据集中的图像样本的总个数,fj表示图像样本j的深度特征向量。
s304,利用每个类别样本集合的深度特征平均值ui以及所有类别样本集合的深度特征的总平均值u,计算该数据集的类间离散度矩阵sb以及类内离散度矩阵sw;
其中,类间离散度矩阵sb可以通过如下公式四计算得到:
其中,nj表示类别样本集合j中图像样本的个数,uj表示类别样本集合j深度特征平均值;u为所有类别样本集合的深度特征的总平均值。
其中,类内离散度矩阵sw可以通过如下公式五计算得到:
其中,dk表示类别样本集合j中第k个图像样本,dk∈classj表示图像样本dk属于类别样本集合j,j为从1到c的自然数,,其中,k为从1到nj的自然数。nj为类别样本集合j中图像样本的个数。
s305,基于线性判别分析的鉴别准则,该类间离散度矩阵以及类内离散度矩阵,计算投影矩阵。
其中,在计算投影矩阵时,引用线性判别分析的鉴别准则,也称为fisher鉴别准则,其中,fisher鉴别准则就是选取使得
其中,通过对优化如上公式五,可以求取出投影矩阵wopt中各个列向量w,从而得到投影矩阵。
其中,在图像样本的深度特征向量的维度为n的前提下,该投影矩阵的维度可以为n*n,如,以基于resnet50模型得到的投影矩阵的维数为2048*2048。
经过如上步骤s301到步骤s305便可以完成投影矩阵的计算。
s204,从预置的特征库中,匹配出与经过降维的深度特征向量ft匹配度最高的预设数量个目标特征。
其中,匹配度最高的预设数量个目标特征是指,具体的,可以分别确定所述经过降维的深度特征与预置的特征库中的每个特征之间的深度特征匹配度;然后,按照所述深度特征匹配度从高到低的顺序,从所述特征库中,匹配出所述深度特征匹配度排序靠前的预设数量个目标特征。其中,所述特征库包括用于匹配图像的多个特征。通过特征库中的特征可以与预置的图像库中的图像进行特征匹配。
如,可以利用经过降低维度后的深度特征向量ft与预置的深度特征库中的特征进行匹配,并找出与该深度特征向量ft的匹配度最高的前预设数量个目标特征。
在一种实现方式中,可以计算深度特征向量ft与特征库中的各个特征的向量的距离,并将该距离作为匹配程度,距离值越小,则匹配程度越高。
其中,计算两个特征向量之间的距离可以采用欧式距离,余弦距离,相关系数等。为了便于理解,以采用相关系数来计算特征向量x与特征向量y之间的匹配度为例进行说明,特征向量x与特征向量y之间的匹配度(即距离)ρx,y可以表示如下:
s205,从预置的图像库中,分别检索与该预设数量个目标特征相匹配的至少一幅目标图像。
可选的,在图像为产品或产品的图像信息时,在检索到该目标图像之后,还可以获取该目标图像对应的产品链接。
对应本申请的一种图像检索方法,本申请实施例还提供了一种图像检索装置。
如,参见图4,其示出了本申请一种图像检索装置一个实施例的组成结构示意图。
由图4可知,该图像检索装置可以包括:图像获取单元401、特征提取单元402、特征降维单元403和图像检索单元404。
其中,图像获取单元401,用于获取待检索的检索图像;
特征提取单元402,用于提取所述检索图像的深度特征;
特征降维单元403,用于基于预置的降维矩阵,降低所述深度特征的维度,得到经过降维的深度特征,其中,所述降维矩阵为预先训练得到的线性判别分析的投影矩阵的前指定列所构成的矩阵;
图像检索单元404,用于从预置的图像库中,检索与所述经过降维的深度特征匹配的至少一幅目标图像。
可见,在图像获取单元获取到待检索的检索图像之后,特征提取单元会提取检索图像的深度特征,在利用深度特征进行检索之前,特征降维单元会利用预置的降维矩阵对提取出的深度特征进行降维,由于降维矩阵为线性判别分析的投影矩阵的前指定列所构成的矩阵,因此,通过该降维矩阵在降低提取出的深度特征的维度的同时,也可以减少深度特征之间的相关性,这样,在图像检索单元利用经过降维的深度特征进行图像检索,既可以减少由于深度特征之间的相关性对图像检索精度的影响,又可以提高图像检索的检索效率。
在一种可能的实现方式中,所述特征提取单元,包括:
特征提取子单元,用于基于预先训练得到的卷积神经网络模型,提取出所述检索图像的深度特征。
在一种可能的实现方式中,所述特征降维矩阵,包括:
特征降维子矩阵,用于将所述深度特征的向量与所述预置的降维矩阵相乘,以得到经过降维的深度特征向量。
在一种可能的实现方式中,所述图像检索单元,包括:
匹配计算子单元,用于分别确定所述经过降维的深度特征与预置的特征库中的每个特征之间的深度特征匹配度;
特征匹配子单元,用于按照所述深度特征匹配度从高到低的顺序,从所述特征库中,匹配出所述深度特征匹配度排序靠前的预设数量个目标特征,所述特征库包括用于匹配图像的多个特征;图像检索子单元,用于从预置的图像库中,分别检索与所述预设数量个目标特征相匹配的至少一幅目标图像。
在一种可能的实现方式中,该图像检索装置还可以包括:
投影矩阵确定单元,用于通过如下方式计算得到所述投影矩阵:
获取包含m个图像样本的数据集,其中,所述数据集中包括c个类别样本ni,其中i从1到c的自然数,c为大于等于2的自然数,且m为大于等于2的自然数;
利用预先训练得到的卷积神经网络模型,提取所述数据集中所有图像样本的深度特征,得到每个所述图像样本的深度特征向量;
基于每个所述图像样本的深度特征向量,分别计算每个所述类别样本的深度特征平均值,以及所有类别样本的深度特征的总平均值;
利用每个所述类别样本的深度特征平均值以及所述所有类别样本的深度特征的总平均值,计算所述数据集的类间离散度矩阵以及类内离散度矩阵;
基于线性判别分析的鉴别准则,所述类间离散度矩阵以及类内离散度矩阵,计算投影矩阵。
对于装置实施例而言,由于其基本相应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,在没有超过本申请的精神和范围内,可以通过其他的方式实现。当前的实施例只是一种示范性的例子,不应该作为限制,所给出的具体内容不应该限制本申请的目的。例如,所述单元或子单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或多个子单元结合一起。另外,多个单元可以或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
另外,所描述系统和方法以及不同实施例的示意图,在不超出本申请的范围内,可以与其它系统,模块,技术或方法结合或集成。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。