图像搜索方法及装置与流程

文档序号:12597652阅读:352来源:国知局
图像搜索方法及装置与流程

本申请属于图像搜索领域,具体地说,涉及一种图像搜索方法及装置。



背景技术:

随着科技的发展,图像在电子商务,信息传播上起到极大的作用。由于图像能够给人“所见即所得”的感受,用户获取商品信息的方式由原来的基于文字的搜索改变为基于图像的搜索。一般来说,图像搜索又分为相似搜索和同款搜索(所谓的同款搜索,是指搜索与待搜索图像中款式相同的商品图像),深度学习特征向量的发展使得图像的特征描述能力提高,图像相似搜索已经达到用户的使用要求,但现有系统在同款商品搜索中却并不如人意,需要用户在图像搜索引擎返回的结果中进行人工删选,搜索结果中的同款召回率不高。所谓的召回率,是指搜索出的相关图像数和图像库中所有的相关图像数的比率。

现有搜索技术中的提高同款召回率的方法一般分为两类,一种是基于多种特征并行组合的搜索方法,另一种是基于ReRank二次排序的特征串行组合的搜索方法,所谓ReRank是指重排技术,即在第一次搜索的结果基础上进行二次排序的技术。以下对两类方法分别说明。

多种特征并行组合的搜索方法,一般是将颜色、纹理、梯度(如SIFT、HOG、LBP、Gabor)等局部特征描述子和全局特征描述子,分别归一化,然后拼接起来作为一个特征向量。对拼接后的特征向量使用PCA(Principle Component Analysis主成分分析算法)降维学习得到最后的特征向量表达。多种特征并行组合中多种特征直接拼接并降维的方法,将不同维度的特征(例如局部特征和全局特征)拼接起来,经过PCA降维得到组合后的特征,虽然结合了各个特征向量的描述能力,但却默认各 种维度的特征向量之间的权重相等,没有达到组合特征向量的最优表达能力。因此,基于多种特征并行组合的搜索方法得到的同款召回率并不理想,同样需要人工筛选。

基于ReRank二次排序的特征串行组合的搜索方法(本文简称“ReRank二次排序”),首先使用深度学习DCNN(Deep Convolutional Neural Networks)特征向量进行第一次搜索排序,然后在搜索结果的子集中,使用局部特征向量或者其他属性的深度学习特征向量进行二次排序,该方法在第一次搜索召回率高的情况下,经过ReRank可以有效提高搜索同款的Top10命中率。但ReRank二次排序极度依赖第一次搜索的召回率,如果第一次搜索子集中不包含同款的商品,后续基于ReRank二次排序的搜索结果同样不包含同款的商品。故当第一搜索子集中同款召回率少的情况下,ReRank二次排序则有可能失效。因此基于此搜索方法的同款召回率具有不稳定性,同样达不到理想的搜索结果。



技术实现要素:

有鉴于此,本申请所要解决的技术问题是提供了一种图像搜索方法及装置。

为了解决上述技术问题,本申请公开了一种图像搜索方法,包括:

获取待搜索图像的目标兴趣区域;

分别提取所述目标兴趣区域的局部特征向量和深度学习特征向量;

对所述局部特征向量、深度学习特征向量对应利用预设局部加权指数、预设深度加权指数分别执行特征降维处理,并利用预设拼接加权指数对降维后局部特征向量和降维深度学习特征向量进行特征融合,获得提高所述目标兴趣区域特征描述精度的目标特征向量;

根据所述目标特征向量进行搜索,得到基于所述待搜索图像的搜索结果。

为了解决上述技术问题,本申请还公开了一种图像搜索装置,包括:

第一获取模块,用于获取待搜索图像的目标兴趣区域;

提取模块,用于分别提取所述目标兴趣区域的局部特征向量和深度学习 特征向量;

降维融合模块,用于对所述局部特征向量、深度学习特征向量对应利用预设局部加权指数、预设深度加权指数分别执行特征降维处理,并利用预设拼接加权指数对降维后局部特征向量和降维深度学习特征向量进行特征融合,获得提高所述目标兴趣区域特征描述精度的目标特征向量;

搜索模块,用于根据所述目标特征向量进行搜索,得到基于所述待搜索图像的搜索结果。

与现有技术相比,本申请可以获得包括以下技术效果:

1)本申请实施例通过对待搜索图像中目标兴趣区域的局部特征向量、深度学习特征向量对应利用预设局部加权指数、预设深度加权指数分别执行特征降维处理,并利用预设拼接加权指数对降维后局部特征向量和降维深度学习特征向量进行特征融合,实现了对不同特征向量采用不同的加权指数进行相应特征降维或融合处理,能够使得不同维度特征向量(局部特征向量和深度学习特征向量)的组合性能达到最优,提高商品搜索时待搜索图像的目标兴趣区域的特征描述能力,从而使得同款商品在批回的搜索结果中位置靠前,而相似商品的位置靠后,提高了同款商品搜索的精度和召回率。相比于多种特征直接拼接并降维的方法,本申请实施例提供的图像搜索方法最终获取的目标特征向量对待搜索图像目标兴趣区域的特征描述精度更细更高,搜索结果的同款召回率更高。

2)由于提高了目标兴趣区域特征描述精度,故本申请实施例有效地提高了同款召回率,那么若以本申请实施例的同款召回率作为第一次搜索结果,则会有效降低甚至是避免ReRank二次排序失效的问题,提高了基于ReRank二次排序的同款召回率。

当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的 不当限定。在附图中:

图1是本申请实施例的一种图像搜索方法流程示意图;

图2是本申请实施例的另一种图像搜索方法流程示意图;

图3是本申请实施例的一种图像搜索方法中加权指数的生成方法流程示意图;

图4是本申请实施例的另一种图像搜索方法中加权指数的生成方法流程示意图;

图5是本申请实施例的再一种图像搜索方法中加权指数的生成方法流程示意图;

图6是本申请实施例的深度卷积神经网络配置示意图;

图7是本申请实施例的一种图像搜索装置模块结构示意图;

图8是本申请实施例的一种图像搜索装置的加权指数生成子装置模块结构示意图。

具体实施方式

以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。

下面以第一实施例对本申请的实现方法作进一步说明。请参阅图1,本实施例提供一种图像搜索方法流程示意图,该方法包括:

步骤100,获取待搜索图像的商品主体。需要说明的是,本申请实施例的待搜索图像可以为任一格式、任意大小的电子图像,这些格式包括但不限于JPG、PNG、TIF、BMP。所述待搜索图像的获取方式可以是网上直接下载,也可以是手机或照相机拍照上传。本申请实施例的商品主体为商品图像的目标图像部分,即可以为从待搜索图像中识别出的目标兴趣区域。

步骤101,分别提取所述商品主体的局部特征向量和深度学习特征向量。

步骤102,对所述局部特征向量、深度学习特征向量对应的利用预设局部加权指数、预设深度加权指数分别执行特征降维处理,并利用预设拼接加 权指数对降维后局部特征向量和降维深度学习特征向量进行特征融合,获得提高所述商品主体特征描述精度的目标特征向量。

步骤103,根据所述目标特征向量进行搜索,得到基于所述待搜索图像的搜索结果。

为了更好地提高同款商品搜索的精度和召回率,需要提高商品搜索引擎的特征向量表达能力,使得同款商品在返回的搜索结果中位置靠前,从而提高商品的成交转化率。

本申请实施例通过对待搜索图像中商品主体的局部特征向量、深度学习特征向量对应利用预设局部加权指数、预设深度加权指数分别执行特征降维处理,并利用预设拼接加权指数对降维后局部特征向量和降维深度学习特征向量进行特征融合,实现了对不同特征向量采用不同的加权指数进行相应特征降维或融合处理,能够使得不同维度特征向量(局部特征向量和深度学习特征向量)的组合性能达到最优,提高商品搜索时待搜索图像的商品主体的特征描述能力,从而使得同款商品在批回的搜索结果中位置靠前,而相似商品的位置靠后,提高了同款商品搜索的精度和召回率。相比于多种特征直接拼接并降维的方法,本申请实施例提供的图像搜索方法最终获取的目标特征向量对待搜索图像商品主体的特征描述精度更细更高,搜索结果的同款召回率更高。

另外,由于提高了商品主体特征描述精度,故本申请实施例有效地提高了同款召回率,那么若以本申请实施例的同款召回率作为第一次搜索结果,则会有效降低甚至是避免ReRank二次排序失效的问题,提高了基于ReRank二次排序的同款召回率。

下面以第二实施例对本申请的实现方法作进一步说明。请参阅图2,本实施例提供一种图像搜索方法流程示意图,该方法包括:

步骤200,当接收到输入的待搜索图像时,提取所述待搜索图像的商品主体。具体的,提取待搜索图像的商品主体的方法可以为商品主体分割方法,例如SLIC超像素分割、显著性检测、GrabCut等方法;也可以为商品主体检测方法(例如Adaboost迭代算法,R-CNN深度学习算法),通过对待搜索 图像进行商品主体的检测,从而去除待搜索图像中背景图像的干扰,获取待搜索图像的商品主体。本申请实施例的商品主体为商品图像的目标图像部分,即可以为从待搜索图像中识别出的目标兴趣区域。

需要说明的是,本申请实施例的待搜索图像可以为任一格式、任意大小的电子图像,这些格式包括但不限于JPG、PNG、TIF、BMP。所述待搜索图像的获取方式可以是网上直接下载,也可以是手机或照相机拍照上传。

步骤201,分别提取所述商品主体的局部特征向量和深度学习特征向量。

具体的,商品主体的局部特征向量的提取可以通过以下方式实现:

子步骤2011,提取所述商品主体的多个Dense SIFT(稠密尺度不变特征变换)特征描述子;

子步骤2012,根据预设的GMM混合高斯模型对各所述特征描述子使用Fisher Vector进行编码,得到所述商品主体的局部特征向量。

具体的,商品主体的深度学习特征向量的提取可以通过以下方式实现:将所述商品主体输入预设的深度卷积神经网络,得到所述商品主体的深度学习特征向量。

步骤202,对所述局部特征向量、深度学习特征向量对应利用预设局部加权指数、预设深度加权指数分别执行特征降维处理,并利用预设拼接加权指数对降维后局部特征向量和降维深度学习特征向量进行特征融合,获得提高所述商品主体特征描述精度的目标特征向量。具体的,步骤202可以包括:

子步骤2021,利用预设局部加权指数对所述局部特征向量进行特征降维处理,得到降维后局部特征向量。

子步骤2022,利用预设深度加权指数对所述深度学习特征向量进行特征降维处理,得到降维后深度学习特征向量。

子步骤2023,拼接所述降维后局部特征向量和降维后深度学习特征向量,并将拼接后得到的特征向量进行归一化处理,得到归一化特征向量。

子步骤2024,利用预设拼接加权指数对所述归一化特征向量进行特征降维处理,获得目标特征向量。

本申请实施例在特征向量拼接前对待搜索图像中商品主体的局部特征向量、深度学习特征向量对应的利用预设局部加权指数、预设深度加权指数分别执行特征降维处理,提高了局部特征向量、深度学习特征向量的特征描 述能力,并在特征向量拼接后利用预设拼接加权指数对所述归一化特征向量进行特征降维处理,将局部特征向量、深度学习特征向量的特征描述优势互补、去粗存精,从而使得目标特征向量对待搜索图像中商品主体的特征描述达到最优。

需要说明的是,子步骤2021、2022顺序并不排先后,其可以同步执行,也可以是子步骤2022在子步骤2021之前。

步骤203,根据所述目标特征向量进行搜索,得到基于所述待搜索图像的搜索结果。

本申请实施例通过对待搜索图像中商品主体的局部特征向量、深度学习特征向量对应利用预设局部加权指数、预设深度加权指数分别执行特征降维处理,并利用预设拼接加权指数对降维后局部特征向量和降维深度学习特征向量进行特征融合,实现了对不同特征向量采用不同的加权指数进行相应特征降维或融合处理,能够使得不同维度特征向量(局部特征向量和深度学习特征向量)的组合性能达到最优,提高商品搜索时待搜索图像的商品主体的特征描述能力,从而使得同款商品在批回的搜索结果中位置靠前,而相似商品的位置靠后,提高了同款商品搜索的精度和召回率。相比于多种特征直接拼接并降维的方法,本申请实施例提供的图像搜索方法最终获取的目标特征向量对待搜索图像商品主体的特征描述精度更细更高,搜索结果的同款召回率更高。

另外,由于提高了商品主体特征描述精度,故本申请实施例有效地提高了同款召回率,那么若以本申请实施例的同款召回率作为第一次搜索结果,则会有效降低甚至是避免ReRank二次排序失效的问题,提高了基于ReRank二次排序的同款召回率。

值得说明的是,本申请实施例尤其对于商品主体分辨率大于100*100的待搜索图像的搜索结果具有更好的同款召回率,这是因为商品主体的分辨率越大,提取到的图片多尺度的信息越大,获取的待搜索图像中商品主体的局部特征向量、深度学习特征向量也就越多越精确,最终得到搜索结果的同款召回率就越高。但基于实际设备系统的计算和存储能力,商品主体分辨率为大于100*100且小于2560*2560。为了使获取的局部特征向量和深度学习特 征向量的精度以及设备系统的计算和存储能力达到平衡,实际使用商品主体的分辨率为256*256的图像,该分辨率既能获取达到足够精度的局部特征向量和深度学习特征向量,也能使设备系统的计算和存储能力达到最优,从而获得最高的同款召回率。

对于前述第一、二实施例中的预设加权指数,下面以第三实施例对本申请的实现方法中预设加权指数的生成方法作进一步说明。请参阅图3,本申请实施例提供一种加权指数的生成方法,包括:

步骤300,准备训练样本,训练样本包括正训练样本对和负训练样本对,步骤300具体可以通过以下步骤实现:

子步骤3001,在所述预设训练数据库中的所有商品图像中抽取多个待检索图像,并获取根据各待检索图像得到对应的搜索结果;

子步骤3002,对每个搜索结果进行排序,得到与待检索图像对应的排序后搜索结果;

子步骤3003,将待检索图像与对应排序后搜索结果的前N个结果组成正训练样本对,并将待检索图像与对应排序后搜索结果中剩余结果的N个结果组成负训练样本对;其中,N为正整数。

步骤301,获取预设训练数据库中所有的商品图像,提取所述所有的商品图像中商品主体的商品特征向量,并根据提取的商品特征向量得到m×n的矩阵A,其中m代表商品特征向量的维度,n代表训练样本的个数;

步骤302,对矩阵A使用主成分分析算法PCA(Principle Component Analysis)处理,得到l×m的降维矩阵B,其中,m>l,l为正整数;

步骤303,使用矩阵B初始化矩阵W,并利用训练样本的样本特征向量迭代优化初始化后的矩阵W',得到用于对特征向量进行降维和融合的预设加权指数。在这里,使用B初始化矩阵W可以理解为使用B作为初始化矩阵W,即把矩阵B的值赋给W,数学表达如下:W:=B,W'=W。具体的,步骤303通过以下方式初始化后的矩阵W':

子步骤3031,使用矩阵B初始化矩阵W,得到初始化后的矩阵W';

子步骤3032,使用随机梯度下降算法SGD(Stochastic Gradient Descent) 对加权公式进行迭代优化,以迭代优化所述矩阵W',得到预设加权指数;

其中,所述加权公式为:

<mrow> <mi>arg</mi> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>W</mi> <mo>,</mo> <mi>b</mi> </mrow> </munder> <munder> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </munder> <mi>m</mi> <mi>a</mi> <mi>x</mi> <mo>&lsqb;</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>y</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>b</mi> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mrow> <msub> <mi>&phi;</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>&phi;</mi> <mi>j</mi> </msub> </mrow> <mo>)</mo> </mrow> <mi>T</mi> </msup> <msup> <mi>W</mi> <mi>T</mi> </msup> <mi>W</mi> <mo>(</mo> <mrow> <msub> <mi>&phi;</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>&phi;</mi> <mi>j</mi> </msub> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>,</mo> <mn>0</mn> <mo>&rsqb;</mo> <mo>;</mo> </mrow>

所述yij为训练样本对的标签,下标i和j代表组成训练样本对的第i个样本和第j个样本;当yij=1时,代表正训练样本对;当yij=-1时,代表负训练样本对;b为待学习的正负训练样本对分类阈值;φi与φj构成待输入训练样本对的一对样本特征向量;W为待学习的权重矩阵,维度为m×n,且m远小于n。

通过上述描述可知,子步骤3031中矩阵B、W、W'实质上为同一矩阵,子步骤3032将W'=W作为加权公式的初始值,使用随机梯度下降算法SGD(Stochastic Gradient Descent)迭代优化加权公式,实现对矩阵W(即W')的迭代优化。

在本实施例中,所述商品特征向量可以为商品局部特征向量、或商品深度学习特征向量、或商品局部特征向量和商品深度学习特征向量的商品拼接特征向量。相应的,步骤303对应利用的训练样本的样本特征向量为样本局部特征向量、或样本深度学习特征向量、或样本局部特征向量和样本深度学习特征向量的样本拼接特征向量,对应得到的预设加权指数为预设局部加权指数、或预设深度加权指数,或预设拼接加权指数。也就是说:1)当步骤301提取的商品主体的商品特征向量为商品局部特征向量时,步骤303利用训练样本的样本局部特征向量迭代优化所述矩阵W,得到用于对局部特征向量进行降维的预设局部加权指数;2)当步骤301提取的商品主体的商品特征向量为商品深度学习特征向量时,步骤303利用训练样本的样本深度学习特征向量迭代优化所述矩阵W,得到用于对深度学习特征向量进行降维的预设深度加权指数;3)当步骤301提取的商品主体的商品特征向量为商品拼接特征向量时,步骤303利用训练样本的样本拼接特征向量迭代优化所述矩阵W,得到用于对拼接特征向量进行降维、融合的预设拼接加权指数。

本申请实施例通过使用加权公式迭代初始化矩阵W后,得到的加权指数能够使得同款商品的图像特征向量通过加权后距离小于b-1,而相似款或者不同款的商品图像特征加权后距离大于b+1,即减少类内距离的同 时,增加类间距离,从而使得同款商品排名靠前。

下面以第四实施例对本申请的实现方法作进一步说明。由于训练样本的数据量一般在百万M以上,而加权指数生成方法的执行设备(例如PC机)在作业时需将所有训练样本的数据量加载到内存中才能够生成加权指数,故若训练样本的数据量大于执行设备的内存时则无法生成加权指数。为了解决此问题,本申请实施例提供一种加权指数的生成方法,当所述训练样本的数据量大于预设数据量阈值时,对所述训练样本进行分批处理,得到多批训练子样本,各批训练子样本的数据量均不大于预设数据阈值。训练样本的数据量=训练样本的个数*训练样本的特征向量维度。

本申请实施例的核心思想在于:将各批训练子样本依次作为当前批训练样本进行如第三实施例所述的生成方法,执行设备每次只根据一批训练样本执行加权指数的生成方法,并将根据当前批训练样本得到的加权指数作为下一批训练样本的初始化矩阵,直至根据最后一批训练样本得到的加权指数为目标加权指数——预设加权指数。本申请实施例可以解决当训练样本的数据量为海量时无法生成加权指数问题。

具体的,本申请实施例提供的预设加权指数的生成方法具体可以包括:

选取一批训练子样本作为第一批训练子样本,并利用所述第一批训练子样本的样本特征向量迭代优化初始化矩阵,得到第一加权指数;

在剩余批训练子样本中选取一批训练子样本作为第二批训练子样本,并利用第二批训练子样本的样本特征向量迭代优化所述第一加权指数,得到第二加权指数;

在剩余批训练子样本中选取另一批训练子样本作为第三批训练子样本,并利用第二批训练子样本的样本特征向量迭代优化所述第二加权指数;

以及,重复执行在剩余批训练子样本中选取下一批训练子样本及迭代优化相应加权指数的过程,直至所述多批训练子样本全部被迭代优化,得到预设加权指数。

为了能够更清楚地解释本申请实施例,假设得到r批训练子样本,r为大于1的正整数,我们用Bk表示当前批训练子样本,其中,k为正整数且不 大于r。我们还可对r批训练子样本进行排序,得到用序列{B1,Bk,…,Br,k=1,2,3,…,r}表示的r批训练子样本,其中,{Bk,k=1,2,3,……,r}表示第k批训练子样本。具体如图4所示,本申请实施例提供的预设加权指数的生成方法可以包括:

步骤400,可参阅第三实施例的步骤300。

步骤4011,确定所述训练样本的数据量大于预设数据量阈值,对所述训练样本进行分批处理,得到r批训练子样本,r为大于1的正整数。各批训练子样本的数据量均不大于预设数据阈值。

选取一批训练子样本作为第一批训练子样本B1,并利用所述第一批训练子样本B1的样本特征向量通过步骤402至步骤4062迭代优化初始化矩阵W,得到第一加权指数。步骤402、404及步骤4062均对应第三实施例的步骤301、302及3032,在此不再赘述。与第三实施例步骤3031不同的是,步骤4061在k=1时,其与步骤3031相同,当k>1时,步骤4061具体为:将第k-1批训练子样本Bk-1的加权指数Wk-1'=W输入加权公式,并使用随机梯度下降算法SGD(Stochastic Gradient Descent)对加权公式进行迭代优化,以迭代优化所述矩阵Wk-1'(即初始值W'=W经过k-1次迭代优化后的矩阵),得到第k批训练子样本Bk的加权指数——矩阵Wk'。

当根据第一批训练子样本B1得到第一加权指数后,判断k++是否不大于<r,若是,则执行步骤4012;若否,则认为得到目标加权指数,即为得到预设加权指数。

步骤4012,在剩余批训练子样本中选取一批训练子样本作为第二批训练子样本B2,并利用第二批训练子样本B2的样本特征向量迭代优化所述第一加权指数,得到第二加权指数;

在剩余批训练子样本中选取另一批训练子样本作为第三批训练子样本B3,并利用第二批训练子样本B2的样本特征向量迭代优化所述第二加权指数;

以及,重复执行在剩余批训练子样本中选取下一批训练子样本Bi及迭代优化相应加权指数的过程,直至所述多批训练子样本{B1,…Bi,…Bk,Br,k=1,2,3,…,r}全部被迭代优化,得到预设加权指数。

下面以第五实施例对本申请的实现方法作进一步说明。为了使最终的目标特征向量对待搜索图像中商品主体的特征描述精度更细更高,第一实施例至第四实施例提取的待搜索图像商品主体的特征向量的维度越高越好,而生成预设加权指数时采用的样本特征向量维度与提取的待搜索图像中商品主体的特征向量维度一致,因此在生成预设加权指数时提取的训练样本的特征向量维度也越高越好。但经过前述我们知道,训练样本的数据量=训练样本的个数*训练样本的特征向量维度,故当训练样本的特征向量维度高达几万维时,仍然会造成执行设备无法生成加权指数,为了解决上述问题,本申请实施例还提供了另一种加权指数的生成方法:当所述训练样本的样本特征向量的维度大于预设维度阈值时,对所述样本特征向量的维度进行分段处理,得到多段样本特征子向量,各段样本特征子向量的维度均不大于预设维度阈值。

本申请实施例的核心思想在于:对每段样本特征子向量均进行如第三实施例所述的生成方法,对应得到的多个预设加权指数。本申请实施例可以解决当训练样本的样本特征向量为高维特征时无法生成加权指数问题,具体的,预设维度阈值为一万维。应当理解的是,样本特征向量可以为样本局部特征向量、样本深度特征向量、样本拼接特征向量,则对应得到的预设加权指数为预设局部加权指数、预设深度加权指数、预设拼接加权指数。

当利用得到的多个预设加权指数进行图像搜索时,第一实施例中步骤102和第二实施例中步骤202可通过如下步骤进行:对提取的商品主体的特征向量(例如:局部特征向量、深度学习特征向量)的维度进行分段处理,得到多段特征子向量;其中,商品主体的特征子向量的段数与样本特征子向量的段数相同。将每段特征子向量乘对应以预设加权指数,对应得到多段降维后特征子向量,再将多段降维后特征子向量拼接起来,得到降维后特征向量。

为了能够更清楚地解释本申请实施例,假设对样本特征向量(假设为样本局部特征向量)的维度进行分段处理得到t段样本特征子向量,t为大于1的正整数,我们用Sx表示各段样本特征子向量,其中,x为正整数且不大于 t,最终得到用序列{S1,Sx,…,St,x=1,2,3,…,t}表示的t段样本特征子向量,其中,{Sx,x=1,2,3,……,t}表示第x段样本特征子向量。具体如图5所示,本申请实施例提供的预设加权指数的生成方法可以包括:

利用所述训练样本的多段样本特征子向量分别迭代优化初始化矩阵,得到多个对应的预设局部加权指数{A1,Ax,……,At,x=1,2,3,……,t}。

当利用得到的多个预设局部加权指数进行图像搜索时,第一实施例中步骤102和第二实施例中步骤202对提取的商品主体的特征向量(假设为局部特征向量)的维度进行分段处理,得到t段局部特征子向量,我们用Tx表示各段局部特征子向量,用序列{T1,Tx,…,Tt,x=1,2,3,…,t}表示的t段局部特征子向量。

再利用上述预设局部加权指数{Ax,x=1,2,3,……,t}对应乘以{Tx,x=1,2,3,…,t},对应得到多段降维后局部特征子向量{Tx’,x=1,2,3,…,t}。

拼接所述多段降维后局部特征子向量,得到降维后局部特征向量。

应当理解的是,当进行图像搜索时,对于第一实施例和第二实施例中降维后深度特征向量、目标特征向量均可通过上述降维后局部特征向量的生成方式得到。即:

①对商品主体的深度特征向量进行分段处理,得到多段深度特征子向量;其中,商品主体的特征子向量的段数与样本特征子向量的段数相同。再将每段深度特征子向量乘对应以预设深度加权指数,对应得到多段降维后深度特征子向量,再将多段降维后深度特征子向量拼接起来,得到降维后深度特征向量。

②对商品主体的归一化特征向量进行分段处理,得到多段归一化特征子向量;其中,商品主体的特征子向量的段数与样本特征子向量的段数相同。再将每段归一化特征子向量乘对应以预设拼接加权指数,对应得到多段降维后归一化特征子向量,再将多段降维后归一化特征子向量拼接起来,得到降维后的目标特征向量。

本领域技术人员应当理解的是,当训练样本的数据量为海量时,第四实施例和第五实施例可融合进行:即在对当前批训练子样本进行第四实施例所述操作时还可对当前批训练子样本的样本特征向量进行第五实施例 所述的操作;也可以在对每段训练子样本的样本特征向量进行第五实施例所述操作时还可对每段训练子样本进行第四实施例所述的操作。两者的结合更能够有效地解决当训练样本的样本特征向量为高维特征时无法生成加权指数问题。

下面以第六实施例对本申请的实现方法作进一步说明。本申请实施例提供一种图像搜索方法,大致包括两个过程:预设加权指数的生成过程以及图像搜索的过程。

一、预设加权指数的生成过程

该过程可如第三实施例所示,大致可以具体包括三个步骤:

1)训练样本的准备

提高同款商品的Top10的召回率,本质上是减少query(待检索图像)与同款商品pair的距离,并且增加query与相似款以及不同款的商品pair的距离。为了完成细粒度相似性学习,需要搜集由同款商品构成的正样本pair(即正训练样本对)以及由相似款、不同款商品构成的负样本pair(即负训练样本对)。

正负样本pair的搜集,可以基于DCNN深度学习特征按照欧式距离排序的结果。例如我们可以准备一个100W的商品数据库,随机抽取10W个query,每个query使用欧氏距离排序得到8192个搜索结果;将每个query与对应搜索结果中的Top20组成正样本pair,随机抽取每个query与排名[21,8192]之间的20个样本组成负样本pair;这样可以得到一个200w的正样本pair和200w的负样本pair的训练集。

应当理解的是,在具体搜集样本时,本申请实施例还可以依据余弦距离或者欧式距离和余弦距离的结合进行排序。

正样本pair的选取除了可以通过搜索排序的方式,还可以将每个商品的主图和副图作为正样本pair,因为商品的主图和幅图往往描述同一个商品的不同视角或者不同颜色,款式都是一样;另外可以通过尺度、平移、旋转、颜色、Gamma亮度校正等变化方式来合成样本,得到每个商品的合成图,由 商品自身和合成图构成正样本pair。

2)特征向量的提取

特征向量的提取可以包括训练样本中所有图像的商品主体的样本局部特征向量的提取以及样本深度学习特征向量的提取。

2.1)商品主体的商品局部特征向量的提取

对于每张图像的商品主体均可以采用如下方法进行商品局部特征向量的提取:将输入主体图像按长边归一化到300,并按尺度因子进行尺度变化,生成5个尺度的图像金字塔,SIFT特征描述子维度为128,特征向量提取的patch大小为24X24,偏移量为1,全图提取Dense SIFT特征描述子。使用PCA将SIFT特征描述子维度降到64,使用GMM模型的一阶统计量和二阶统计量作为特征表达,GMM的高斯模型个数为512,最终的特征维度为65536(64*2*512=65536)。

应当理解的是,商品主体的商品局部特征向量除了选择Fisher Vector局部特征,也可以选用BOW、Sparse Coding、VLAD等特征,另外特征提取中参数配置可以依据实际问题进行调整,2.1)中的参数仅作为参考,并不唯一。

2.2)商品主体的商品深度学习特征向量的提取

对于每张图像的商品主体均可以采用如下方法进行商品深度学习特征向量的提取:

2.2.1)DCNN网络配置和训练

深度卷积神经网络配置如图6所示,总共有2个卷积层,5个pooling层,9个Inception层,3个全连接层和3个softmax层。加入softmax1和softmax2主要是为了防止BP(Back Propagation)训练梯度衰减,并且这些层的输出可以得到商品主体的中层特征描述,是对softmax3对应的高层特征的补充。训练参数权重使用随机数初始化,初始LearningRate设为0.01,可以让模型更快的收敛,当分类精度稳定时,调小LearningRate继续训练,直到模型收敛到一个很好的值。训练完成后得到深度卷积神经网络的权重系数即为深度学习模型,用于提取商品主体的商品深度学习特征向量。

2.2.2)DCNN特征提取

将网络配置去掉数据输入层和softmax分类器层后提取特征,将三个全卷积层的特征拼接起来作为最后的商品深度学习特征向量。

应当说明的是,商品深度学习特征向量的提取可以选用除DCNN之外的深度学习模型,如AutoEncoder、DBM等。提取过程中模型初始化可以选用已有的公开的模型参数,或者采用layer wise的Pretrain的方式初始化模型参数,再在这个基础上使用随机梯度下降法Finetune(迭代优化)模型参数。通过这些方法可以加速模型训练,得到更精确的模型参数。

3)加权指数的生成

为了减少同款商品特征之间的距离,并且增加相似款和不同款之间的距离,需要使用前述预设加权指数的生成过程中1)准备的正负样本pair的特征向量利用加权公式进行迭代优化,输出W和b;通过SGD(Stochastic Gradient Descent)迭代优化W和b,得到对应的预设加权指数W'。通过上述利用加权公式(即距离学习函数)进行迭代优化后,可以使得同款商品的图像特征通过加权后距离小于b-1,而相似款或者不同款的商品图像特征加权后距离大于b+1。yij为样本对的标签,下标i和j代表组成训练样本对的第i个样本和第j个样本;当yij=1时,代表正训练样本对;当yij=-1时,代表负训练样本对;b为待学习的正负样本对分类阈值,φi与φj构成待输入的训练样本对的一对特征向量(在这里,训练样本对可以为正训练样本对,也可以为负训练样本对),W为待学习的权重矩阵,维度为m×n,且m远小于n,使得加权后的特征向量的维度远小于原始特征的维度,从而提升特征描述能力的同时达到降维的目的。加权公式如下所示:

<mrow> <mi>arg</mi> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>W</mi> <mo>,</mo> <mi>b</mi> </mrow> </munder> <munder> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </munder> <mi>m</mi> <mi>a</mi> <mi>x</mi> <mo>&lsqb;</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>y</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>b</mi> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mrow> <msub> <mi>&phi;</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>&phi;</mi> <mi>j</mi> </msub> </mrow> <mo>)</mo> </mrow> <mi>T</mi> </msup> <msup> <mi>W</mi> <mi>T</mi> </msup> <mi>W</mi> <mo>(</mo> <mrow> <msub> <mi>&phi;</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>&phi;</mi> <mi>j</mi> </msub> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>,</mo> <mn>0</mn> <mo>&rsqb;</mo> </mrow>

应当理解的是,度量学习函数(即前述加权公式)可以替换为类似的距离度量学习算法,如MAHAL仅使用正样本pair对学习马氏距离矩阵,如ITML通过优化两个多元高斯核的相对熵来学习马氏距离矩阵,如KISSME通过优化两个高斯分布似然比来学习距离矩阵,当距离学习函数替换为这些方法中的优化表达式时,依然属于本申请实施例的范围。

具体的,加权指数的生成方法可以包括:

A)提取预设训练数据库所有商品的商品特征向量,得到一个m×n的矩阵A,其中m代表商品特征向量的维度,n代表训练样本的个数,此处的商品特征向量可以是Fisher Vector局部特征向量、DCNN深度学习特征向量或者两者特征的拼接向量;

B)对矩阵A使用PCA学习到l×m的降维矩阵B,其中,m>l,l为正整数,优选的l=256;

C)使用B初始化矩阵W,得到初始化后的矩阵W'。交替使用正样本pair的和负样本pair的输入加权公式迭代优化W',最终输出目标加权指数W"(即目标加权矩阵),目标加权指数即为要生成的预设加权指数。在这里,使用B初始化矩阵W可以理解为使用B作为初始化矩阵W,即把矩阵B的值赋给W,数学表达如下:W:=B,W'=W。通过上述描述可知,矩阵B、W、W'实质上为同一矩阵,C)将W'=W作为加权公式的初始值,使用随机梯度下降算法SGD(Stochastic Gradient Descent)迭代优化加权公式,实现对矩阵W(即W')的迭代优化。

应当理解的是:模型初始化可以选用随机数,并不一定使用PCA降维矩阵初始化;另外若训练样本仅使用正样本pair或者负样本pair,也可以得到鲁棒的相似性权重矩阵。

值得注意的是:A)中的商品特征向量可以是Fisher Vector商品局部特征向量、DCNN商品深度学习特征向量或者两者特征的商品拼接特征向量,那么C)中对应利用的训练样本的样本特征向量为样本局部特征向量、或样本深度学习特征向量、或样本局部特征向量和样本深度学习特征向量的样本拼接特征向量;则对应得到的预设加权指数为预设局部加权指数、或预设深度加权指数,或预设拼接加权指数。

由于细粒度相似性学习的训练样本一般在百万以上,并且为了使最终的目标特征向量对待搜索图像中商品主体的特征描述精度更细更高,提取的待搜索图像商品主体的特征向量的维度越高越好,而生成预设加权指数时采用的样本特征向量维度与提取的待搜索图像中商品主体的特征向量维度一致,因此在生成预设加权指数时提取的训练样本的特征向量维度也越高越好,通常训练样本的特征向量维度高达几万维,普通的PC机内存无法满足 训练要求,此时可对训练样本进行分批预处理或对训练样本的样本特征向量进行分段预处理。

分批预处理:将训练样本打包成一个个batch,分batch训练可以解决海量样本的问题,每次加载到内存中只有一个batch,前一次batch生成的权重矩阵Wi-1(例如第四实施例描述的第一加权指数),作为下一次batch生成Wi(例如第四实施例描述的第二加权指数)的初始值,从而使得算法训练不受样本量的影响。此过程可参阅前述第四实施例的描述。

分段预处理:当特征维度很高时,可以对特征维度分段处理,例如将一个特征长度为m的向量,分为5段,每段长度为m/5,对每段特征子向量分别进行迭代化得到对应的权重矩阵Wj(例如第五实施例描述的预设加权指数),其中j=1,2,3,4,5,当在进行如第一实施例、第二实施例以及第六实施例的图像搜索方法中商品主体特征向量的降维处理时,将5段特征子向量分别乘上对应的权重矩阵Wj(例如第五实施例描述的预设加权指数),并拼接起来作为最终表达特征的特征向量。此过程可参阅前述第五实施例的描述。

将上述生成的预设加权指数应用到图像搜索中时,可对待搜索图像中商品主体的局部特征向量、深度学习特征向量对应利用预设局部加权指数、预设深度加权指数分别执行特征降维处理,并利用预设拼接加权指数对降维后局部特征向量和降维深度学习特征向量进行特征融合,实现了对不同特征向量采用不同的加权指数进行相应特征降维或融合处理,能够使得不同维度特征向量(局部特征向量和深度学习特征向量)的组合性能达到最优,提高商品搜索时待搜索图像的商品主体的特征表达能力特征描述能力,从而使得同款商品在批回的搜索结果中位置靠前,而相似商品的位置靠后,提高了同款商品搜索的精度和召回率。

应当理解的是,上述预设加权指数的生成过程可以为离线训练过程,也可以为在线训练过程。

二、图像搜索的过程

该过程大致可以包括三个步骤:

1)特征向量的提取

获取待搜索图像的商品主体;

分别提取所述商品主体的局部特征向量和深度学习特征向量。

局部特征向量和深度学习特征向量的提取可参考前述“预设加权指数的生成过程”中的2),在此不再说明。

2)特征向量的降维融合

2.1)特征向量的降维

对待搜索图像的商品主体的局部特征向量、深度学习特征向量对应利用预设局部加权指数、预设深度加权指数分别执行特征降维处理。此过程可参阅前述第一实施例至第五实施例的描述,在此不再说明。

2.2)特征向量的拼接

拼接所述降维后局部特征向量和降维后深度学习特征向量,并将拼接后得到的特征向量进行归一化处理,得到归一化特征向量。此过程可参阅前述第一实施例至第五实施例的描述,在此不再说明。

2.3)拼接向量的降维

利用预设拼接加权指数对所述归一化特征向量进行特征降维处理,获得目标特征向量。此过程可参阅前述第一实施例至第五实施例的描述,在此不再说明。

3)图像搜索

根据所述目标特征向量进行搜索,得到基于所述待搜索图像的搜索结果。此过程可参阅前述第一实施例至第五实施例的描述,在此不再说明。

下面以第七实施例对本申请的实现方案作进一步说明。本申请实施例提供一种图像搜索装置,包括:

第一获取模块701,用于获取待搜索图像的商品主体;

提取模块702,用于分别提取所述商品主体的局部特征向量和深度学习特征向量;

降维融合模块703,用于对所述局部特征向量、深度学习特征向量对应利用预设局部加权指数、预设深度加权指数分别执行特征降维处理,并利用预设拼接加权指数对降维后局部特征向量和降维深度学习特征向量进行特 征融合,获得提高所述商品主体特征描述精度的目标特征向量;

搜索模块704,用于根据所述目标特征向量进行搜索,得到基于所述待搜索图像的搜索结果。

进一步的,所述降维融合模块包括:

第一局部降维单元,用于利用预设局部加权指数对所述局部特征向量进行特征降维处理,得到降维后局部特征向量;

第一深度降维单元,用于利用预设深度加权指数对所述深度学习特征向量进行特征降维处理,得到降维后深度学习特征向量;

第一拼接单元,用于拼接所述降维后局部特征向量和降维后深度学习特征向量,并将拼接后得到的特征向量进行归一化处理,得到归一化特征向量;

第一拼接降维单元,用于利用预设拼接加权指数对所述归一化特征向量进行特征降维处理,获得目标特征向量。

进一步的,所述商品主体的分辨率大于100*100。

进一步的,所述商品主体的分辨率为256*256。

进一步的,所述提取模块包括用于提取商品主体的局部特征向量的局部特征提取单元;

所述局部特征提取单元包括:

提取子单元,用于提取所述商品主体的多个特征描述子;

编码子单元,用于根据预设的GMM混合高斯模型对各所述特征描述子使用Fisher Vector进行编码,得到所述商品主体的局部特征向量。

进一步的,所述提取模块包括深度学习特征提取单元:用于将所述商品主体输入预设的深度卷积神经网络,得到所述商品主体的深度学习特征向量。

进一步的,所述第一获取模块,具体用于检测待搜索图像,去除所述待搜索图像中背景图像的干扰,获得所述待搜索图像的商品主体。

本装置实施例与上述第一、第二实施例中的特征相互对应,因此可参见第一、第二实施例中方法流程部分的相关描述,在此不再赘述。

下面以第八实施例对本申请的实现方案作进一步说明。本申请实施例提供一种图像搜索装置,本实施例有第七实施例大致相同,不同之外在于还包括加权指数生成子装置,用于利用预设训练数据库中训练样本的特征向量进行迭代优化生成预设加权指数,其中,所述预设加权指数包括预设局部加权指数、预设深度加权指数、预设拼接加权指数。具体的,加权指数生成子装置包括:

第二获取模块801,用于获取预设训练数据库中所有的商品图像,提取所述所有的商品图像中商品主体的商品特征向量,并根据提取的商品特征向量得到m×n的矩阵A,其中m代表商品特征向量的维度,n代表训练样本的个数;

降维模块802,用于对矩阵A使用主成分分析算法处理,得到l×n的降维矩阵B,其中,m>l,l为正整数;

迭代模块803,用于使用矩阵B作为初始化矩阵W,并利用训练样本的样本特征向量迭代优化所述矩阵W,得到用于对特征向量进行降维和融合的预设加权指数。

进一步的,所述第二获取模块获取的商品特征向量为商品局部特征向量、或商品深度学习特征向量、或商品局部特征向量和商品深度学习特征向量的商品拼接特征向量;

则所述第二获取模块对应利用的训练样本的样本特征向量为样本局部特征向量、或样本深度学习特征向量、或样本局部特征向量和样本深度学习特征向量的样本拼接特征向量;

则所述迭代模块对应得到的预设加权指数为预设局部加权指数、或预设深度加权指数,或预设拼接加权指数。

进一步的,所述训练样本包括正训练样本对和负训练样本对,所述生成装置还包括训练样本生成模块,所述训练样本生成模块包括:

抽取单元,用于在所述预设训练数据库中的所有商品图像中抽取多个待检索图像,并获取根据各待检索图像得到对应的搜索结果;

排序单元,用于对每个搜索结果进行排序,得到与待检索图像对应的排序后搜索结果;

生成单元,用于将待检索图像与对应排序后搜索结果的前N个结果组成正训练样本对,并将待检索图像与对应排序后搜索结果中剩余结果的N个结果组成负训练样本对;其中,N为正整数。

进一步的,所述迭代模块包括:

初始化单元,用于使用矩阵B初始化矩阵W,得到初始化后的矩阵W';

迭代优化单元,用于使用随机梯度下降算法对加权公式进行迭代优化,以迭代优化所述矩阵W',得到预设加权指数;

其中,所述加权公式为:

<mrow> <mi>arg</mi> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>W</mi> <mo>,</mo> <mi>b</mi> </mrow> </munder> <munder> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </munder> <mi>m</mi> <mi>a</mi> <mi>x</mi> <mo>&lsqb;</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>y</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>b</mi> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mrow> <msub> <mi>&phi;</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>&phi;</mi> <mi>j</mi> </msub> </mrow> <mo>)</mo> </mrow> <mi>T</mi> </msup> <msup> <mi>W</mi> <mi>T</mi> </msup> <mi>W</mi> <mo>(</mo> <mrow> <msub> <mi>&phi;</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>&phi;</mi> <mi>j</mi> </msub> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>,</mo> <mn>0</mn> <mo>&rsqb;</mo> <mo>;</mo> </mrow>

所述yij为训练样本的标签,正训练样本对为1,负训练样本对为-1;b为待学习的正负训练样本对分类阈值;φi与φj构成待输入训练样本的一对样本特征;W为待学习的权重矩阵,维度为m×n,且m远小于n。

进一步的,所述加权指数生成子装置还包括分批模块,用于当所述训练样本的数据量大于预设数据量阈值时,对所述训练样本进行分批处理,得到多批训练子样本;则

所述迭代模块具体用于:

选取一批训练子样本作为第一批训练子样本,并利用所述第一批训练子样本的样本特征向量迭代优化初始化矩阵,得到第一加权指数;

在剩余批训练子样本中选取一批训练子样本作为第二批训练子样本,并利用第二批训练子样本的样本特征向量迭代优化所述第一加权指数,得到第二加权指数;

在剩余批训练子样本中选取另一批训练子样本作为第三批训练子样本,并利用第二批训练子样本的特征向量迭代优化所述第二加权指数;

以及,重复执行在剩余批训练子样本中选取下一批训练子样本及迭代优化相应加权指数的过程,直至所述多批训练子样本全部被迭代优化,得到预设加权指数。

进一步的,所述加权指数生成子装置还包括分段模块,用于当所述训练样本的样本特征向量的维度大于预设维度阈值时,对所述样本特征向量的维度进行分段处理,得到多段特征子向量;则

所述迭代模块具体用于:

利用所述训练样本的多段特征子向量分别迭代优化初始化矩阵,对应得到多个预设加权指数。具体的,所述降维融合模块包括:

第二局部降维单元,用于对所述局部特征向量进行分段处理,得到多段局部特征子向量,其中,局部特征子向量的段数与样本特征子向量的段数相同;将每段所述局部特征子向量乘对应以预设局部加权指数,对应得到多段降维后局部特征子向量;拼接所述多段降维后特征子向量起来,得到降维后局部特征向量;

第二深度降维单元,用于对所述深度特征向量进行分段处理,得到多段深度特征子向量,其中,深度特征子向量的段数与样本特征子向量的段数相同;将每段所述深度特征子向量乘对应以预设深度加权指数,对应得到多段降维后深度特征子向量;拼接所述多段降维后特征子向量起来,得到降维后深度特征向量;

第二拼接单元,用于拼接所述降维后局部特征向量和降维后深度学习特征向量,并将拼接后得到的特征向量进行归一化处理,得到归一化特征向量;

第二拼接降维单元,用于对所述归一化特征向量进行分段处理,得到多段归一化特征子向量,其中,归一化特征子向量的段数与样本特征子向量的段数相同;将每段所述归一化特征子向量乘对应以预设拼接加权指数,对应得到多段降维后归一化特征子向量;拼接所述多段降维后特征子向量起来,得到降维后归一化特征向量。

本装置实施例与上述第三、第四、第五、第六实施例中的特征相互对应,因此可参见第三、第四、第五、第六实施例中方法流程部分的相关描述,在此不再赘述。

本申请实施例解决了同款商品搜索中同款图片在TopN(例如Top10)中命中率低的问题。无论是基于传统的SIFT(Scale-invariant feature transform,尺度不变特征转换)等局部特征向量还是基于深度学习特征向量的图像搜索方法,虽然可以保证搜索结果的相似性,但排名靠前的图片往往不是用户想要的同款商品。本申请实施例通过对商品特 征向量(局部特征向量或深度学习特征向量)使用对应的加权指数进行加权,提高了商品特征向量的特征描述能力,减少类内距离的同时,增加类间距离,从而使得同款商品排名靠前;并且在上述过程中降低特征维度,减少特征向量存储空间和搜索计算时间。

本申请实施例通过提供图像搜索排序中的特征组合权重学习(即通过加权指数进行降维融合)的方法,有效结合不同维度的特征并降低特征的维度,解决了搜索排序中同款召回率低的问题,并且减少了搜索工程实现中特征占用内存大小和特征距离计算时间。本申请实施例不依赖任何图像预处理技术和经验参数,所以对于商品搜索领域,具有通用性和鲁棒性。

本领域技术人员应当注意的是:众所周知,在分类问题中,可以选用多核学习(Multi-kernel learning)对不同的特征向量选用不同的核函数,训练每个核的权重,选出最佳核函数组合起来分类。虽然基于多核学习的特征向量组合,可以动态学习各个特征向量的核函数,达到特征向量组合的最优,但它本质上是基于分类问题,无法在搜索排序问题中应用。故前述多核学习的方式并不能给予本申请以技术启示。

综上所述,本申请实施例可以获取以下有益效果:

1)本申请实施例通过对待搜索图像的商品主体局部特征向量、深度学习特征向量对应利用预设局部加权指数、预设深度加权指数分别执行特征降维处理,并利用预设拼接加权指数对降维后局部特征向量和降维深度学习特征向量进行特征融合,实现了对不同特征向量采用不同的加权指数进行相应特征降维或融合处理,能够使得不同维度特征向量(局部特征向量和深度学习特征向量)的组合性能达到最优,提高商品搜索时待搜索图像的商品主体的特征表达能力特征描述能力,从而使得同款商品在批回的搜索结果中位置靠前,而相似商品的位置靠后,提高了同款商品搜索的精度和召回率。相比于多种特征直接拼接并降维的方法,本申请实施例提供的图像搜索方法最终获取的目标特征向量对待搜索图像商品主体的特征描述精度更细更高, 搜索结果的同款召回率更高。

2)由于提高了商品主体特征描述精度,故本申请实施例有效地提高了同款召回率,那么若以本申请实施例的同款召回率作为第一次搜索结果,则会有效降低甚至是避免ReRank二次排序失效的问题,提高了基于ReRank二次排序的同款召回率。

3)本申请实施例还在训练样本量过大,训练样本的特征向量维度很高时,通过对训练样本分片,训练样本的特征向量维度的做法,有效解决了海量数据,高维特征的无法生成加权指数,进而无法提高同款召回率的问题。

4)传统分类学习算法(例如多核特征学习)在搜索排序中无法应用,不同于以往以分类为目的的学习算法(例如多核特征学习),本申请实施例对不同特征向量采用不同的加权指数进行相应特征降维或融合处理,能够使得不同维度特征向量(局部特征向量和深度学习特征向量)的组合性能达到最优,提高商品搜索时待搜索图像的商品主体的特征表达能力特征描述能力,从而使得同款商品在批回的搜索结果中位置靠前,而相似商品的位置靠后,提高了同款商品搜索的精度和召回率。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被 计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。

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

上述说明示出并描述了本实用新型的若干优选实施例,但如前所述,应当理解本实用新型并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述实用新型构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本实用新型的精神和范围,则都应在本实用新型所附权利要求的保护范围内。

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