对象查询的方法、电子设备及存储介质转让专利

申请号 : CN202210971223.7

文献号 : CN115062180B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 田明哲张进

申请人 : 阿里巴巴(中国)有限公司

摘要 :

本申请提供了一种对象查询的方法、装置、电子设备及存储介质,依据本申请实施例,对目标对象进行特征提取;利用满足第一指定条件的哈希矩阵,根据提取出的目标对象的特征,得到目标对象的二值化表示;利用目标对象的二值化表示,查询与目标对象匹配的候选对象。相比于特征向量,二值化表示可以节省大量的存储资源,尤其当候选对象的数量是以亿为单位的情况下。基于二值化表示可以节省资源的前提,在将特征转换为二值化表示的过程中,可以无需对提取出的高维特征进行降维处理。即,二值化表示可以直接等价于高维特征,从而保障查询的精准性。

权利要求 :

1.一种对象查询的方法,其特征在于,包括:

对目标对象进行特征提取;

利用满足第一指定条件的哈希矩阵,根据提取出的所述目标对象的特征,得到所述目标对象的二值化表示;

利用所述目标对象的二值化表示,查询与所述目标对象匹配的候选对象;

所述利用满足第一指定条件的哈希矩阵,根据提取出的所述目标对象的特征,得到所述目标对象的二值化表示,包括:对提取出的所述对象的特征进行归一化处理,将所述归一化处理的结果映射至n维空间的球体表面;所述n为正整数;

将映射至所述n维空间的球体表面的所述归一化处理的结果分别与所述满足第一指定条件的m个哈希矩阵进行计算,得到m位二值化表示;所述第一指定条件是利用所述球体的半径确定的;所述m为正整数;

利用所述m位二值化表示,得到所述目标对象的二值化表示。

2.根据权利要求1所述的方法,其特征在于,所述目标对象的确定方式,包括:确定噪声部分和所述目标对象的主体部分;

将所述主体部分作为确定出的所述目标对象。

3.根据权利要求2所述的方法,在所述目标对象为商品图像的情况下,所述确定噪声部分和所述目标对象的主体部分,包括:确定所述商品图像中所包含商品的掩膜;

利用所述商品的掩膜,确定噪声部分和所述商品图像的主体部分。

4.根据权利要求1所述的方法,其特征在于,所述特征提取是利用预先训练好的特征提取模型进行的;所述特征提取模型的训练过程,包括:利用第一样本集合,采用自监督学习对待训练的特征提取模型中的参数进行优化,得到第一优化结果;

利用第二样本集合,采用有监督学习对所述待训练的特征提取模型中的参数进行优化,得到第二优化结果;

在所述第一优化结果和所述第二优化结果中的至少一个满足第二指定条件的情况下,得到所述训练好的特征提取模型。

5.根据权利要求4所述的方法,其特征在于,所述第二指定条件是根据指定类型的损失函数的收敛情况确定的;

所述指定类型的损失函数是利用参数优化后特征提取模型计算得到的;

所述指定类型的损失函数包括三元损失函数、分类损失函数、类内相似性损失函数、实例分类判别损失函数和量化损失函数中的至少一种。

6.根据权利要求4所述的方法,其特征在于,所述第一样本集合和所述第二样本集合中的样本包括经过数据增广得到的扩展样本。

7.根据权利要求6所述的方法,其特征在于,所述扩展样本的获取方式,包括:获取原始样本的至少一个召回样本;所述原始样本为在数据增广前,存在于所述第一样本集合或所述第二样本集合中的样本;

利用向量检索,得到每个所述召回样本的关联样本;

基于所述原始样本、所述召回样本和所述关联样本,构建不同等级的样本对;所述等级是根据样本的之间的汉明距离和样本的之间的差异哈希值确定的;

将所述不同等级的样本对作为所述扩展样本。

8.根据权利要求7所述的方法,其特征在于,还包括对所述关联样本的过滤过程;

所述过滤过程包括:

根据所述关联样本与所述原始样本的颜色相似度比较结果,对所述关联样本进行过滤,所述颜色相似度比较结果是基于所述关联样本中的样本主体与所述原始样本中的样本主体之间的颜色相似度确定的。

9.一种对象查询的装置,其特征在于,包括:

特征提取模块,用于对目标对象进行特征提取;

二值化表示生成模块,用于利用满足第一指定条件的哈希矩阵,根据提取出的所述目标对象的特征,得到所述目标对象的二值化表示;

候选对象查询模块,用于利用所述目标对象的二值化表示,查询与所述目标对象匹配的候选对象;

所述二值化表示生成模块,包括:

特征映射子模块,用于对提取出的对象的特征进行归一化处理,将归一化处理的结果映射至n维空间的球体表面;n为正整数;

特征计算子模块,用于将映射至n维空间的球体表面的归一化处理的结果分别与满足第一指定条件的m个哈希矩阵进行计算,得到m位二值化表示;第一指定条件是利用球体的半径确定的;m为正整数;

二值化表示生成执行子模块,用于利用m位二值化表示,得到目标对象的二值化表示。

10.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现权利要求1至8中任一项所述的方法。

11.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法。

说明书 :

对象查询的方法、电子设备及存储介质

技术领域

[0001] 本申请涉及数据处理技术领域,尤其涉及一种对象查询的方法和装置、电子设备及存储介质。

背景技术

[0002] 目前在相似性查询场景下,通常是利用特征提取模型提取出目标对象的特征向量。进而可以基于目标对象的特征向量进行向量检索,以查询到与目标对象匹配的候选对象。
[0003] 若目标对象的特征向量为高维时,特征向量的数据量较大。若以高维特征直接比较,会造成存储资源以及用于比较计算的计算资源的浪费。
[0004] 另一种方式是将高维特征向量进行降维处理,从而降低数据量。但降维后的特征向量会存在信息丢失的情况,导致匹配结果无法满足预期。

发明内容

[0005] 本申请实施例提供一种对象查询的方法和装置、电子设备及存储介质,以实现在保障查询准确率的前提下,节省存储资源以及计算资源。
[0006] 第一方面,本申请实施例提供了一种对象查询的方法,包括:
[0007] 对目标对象进行特征提取;
[0008] 利用满足第一指定条件的哈希矩阵,根据提取出的目标对象的特征,得到目标对象的二值化表示;
[0009] 利用目标对象的二值化表示,查询与目标对象匹配的候选对象。
[0010] 第二方面,本申请实施例提供了一种对象查询的装置,包括:
[0011] 特征提取模块,用于对目标对象进行特征提取;
[0012] 二值化表示生成模块,用于利用满足第一指定条件的哈希矩阵,根据提取出的目标对象的特征,得到目标对象的二值化表示;
[0013] 候选对象查询模块,用于利用目标对象的二值化表示,查询与目标对象匹配的候选对象。
[0014] 第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,处理器在执行计算机程序时实现上述任一项的方法。
[0015] 第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一项的方法。
[0016] 与现有技术相比,本申请具有如下优点:
[0017] 依据本申请实施例的方案,在进行候选对象的查询时,可以基于目标对象的二值化表示,以及预先已经确定出的每个候选对象的二值化表示进行。一方面,相比于特征向量,二值化表示可以节省大量的存储资源,尤其当候选对象的数量是以亿为单位的情况下。另一方面,在将特征转换为二值化表示的过程中,可以无需对提取出的高维特征进行降维处理。即,二值化表示可以直接等价于高维特征,从而保障查询的精准性。
[0018] 上述说明仅是本申请技术方案的概述 ,为了能够更清楚了解本申请的技术手段,可依照说明书的内容予以实施,并且为了让本申请的上述和其他目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

[0019] 在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请的一些实施方式,而不应将其视为是对本申请范围的限制。
[0020] 图1为本申请提供的对象查询的方法的场景示意图;
[0021] 图2为本申请一实施例的对象查询的方法的流程图;
[0022] 图3是本申请一实施例的哈希矩阵计算的原理示意图;
[0023] 图4是本申请一实施例的得到目标对象的二值化表示的原理示意图;
[0024] 图5是本申请一实施例的掩膜提取示意图;
[0025] 图6是本申请一实施例的特征提取模型的训练示意图;
[0026] 图7是本申请一实施例的样本对等级分类示意图;
[0027] 图8是本申请一实施例的颜色相似度比较结果示意图;
[0028] 图9为本申请一实施例的对象查询的方法的原理示意图;
[0029] 图10为本申请一实施例的对象查询结果示意图;
[0030] 图11是本申请一实施例的对象查询的装置的结构框图;以及
[0031] 图12为用来实现本申请实施例的电子设备的框图。

具体实施方式

[0032] 在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的构思或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的,而非限制性的。
[0033] 为便于理解本申请实施例的技术方案,以下对本申请实施例的相关技术进行说明。以下相关技术作为可选方案与本申请实施例的技术方案可以进行任意结合,其均属于本申请实施例的保护范围。
[0034] 首先对本申请所涉及的名词进行解释。
[0035] 差异哈希算法(DHash):可以用于表征图像特征。将目标图像缩小为指定分辨率后,对指定分辨率的图像进行灰度值转换。比较每行左右两个相邻像素点的灰度值,若左侧像素点的灰度值大于右侧像素点,则记录为1,否则记录为0。以指定分辨率为9*8为示例,每行得到8位数值,共8行可以得到64位0‑1数值序列。差异哈希算法又称为传统哈希算法。
[0036] 深度哈希算法(DeepHash):深度哈希算法与差异哈希算法的相同点在于:都可用于表征图像特征。深度哈希算法与差异哈希算法的不同点在于:除了可以实现图像的哈希编码,还可以同时利用哈希编码实现图像的特征表示。例如,图像的特征表示可以是图像的语义特征、图像的标签特征等。
[0037] 局部敏感哈希(LSH:Locality Sensitive Hashing):针对海量高维数据的快速最近邻查找算法。局部敏感哈希是一种特殊的Hash函数,使得两个相似度很高的数据以较高的概率映射成同一个Hash值,两个相似度很低的数据以极低的概率映射成同一个Hash值。局部敏感哈希最通常的作用就是能高效处理海量高维数据的最近邻查找问题。
[0038] 向量检索:基于用户输入的或者用户本身的特征,进行特征的距离计算(检索,召回和排序的抽象),返回结果的过程 。
[0039] 卷积神经网络:(CNN:Convolutional Neural Network):可以通过分层网络获取不同维度的特征信息,并输出结果。
[0040] 图1为示例性的用于实现本申请实施例的方法的一个应用场景的示意图。图1中示出的是利用目标图像在数据库中查询出与目标图像近似的两幅候选图像的场景。
[0041] 执行查询过程的执行主体可以是智能手机、平板电脑等电子设备。电子设备接收到用户选择或输入的目标图像,可以利用预先训练好的模型得到目标图像的深度哈希值,该深度哈希值可以作为目标图像的图像指纹。
[0042] 模型的训练数据可以包括经过添加水印、随机涂抹、随机剪裁、随机缩放、随机旋转、放射变换以及背景替换处理的图像正负样本。从而可以满足对于同款图像,模型确定出的图像指纹是相同的。
[0043] 在数据库中可以预先存储有图像指纹与候选图像的关联关系。基于此,在得到候选图像的图像指纹的情况下,可以利用数据库排序算法实现对于候选图像的快速查询。数据库排序算法可以包括分组算法(GROUP BY)、连接算法(JOIN)等。例如图1所示,目标图像为模特穿着A型号服装采用第一姿势拍摄的图像。利用本申请实施例,可以查询到相同或不同的模特穿着不同颜色的A型号服装采用区别于第一姿势的其他姿势拍摄的图像。
[0044] 以图像搜索为例,本申请实施例的方案可以应用于同款或近似款商品的比价。例如,利用目标图像查询到目标图像中商品的同款商品或相似款商品,从而可以将目标图像对应的商品与同款商品或相似款商品进行比价。
[0045] 又如,本申请实施例的方案还可以应用于商品去重。商品去重可以包括主搜去重或商品发布去重。主搜去重可以适用于买家,买家可以根据感兴趣的目标图像搜索到目标图像中商品的同款商品或相似款商品。商品发布去重可以适用于卖家,卖家根据待发布的目标图像进行搜索,以确定该目标图像中商品是否已经发布过。
[0046] 再如,本申请实施例的方案还可以确定目标图像中的商品是否属于爆款商品或冷门款商品。例如,利用目标图像查询到目标图像中商品的同款商品或相似款商品。根据同款商品或相似款商品的销量、关注度等数据,可以确定出目标图像中的商品是否属于爆款商品或是否属于冷门款商品。
[0047] 上述场景是以图像为示例。另外,本申请实施例的方案还可以实现对于文本、音频等对象的查询。以文本为例,可以应用于同类型内容或同题材内容的搜索或论文查重等。以音频为例,可以应用于同一歌手或嗓音近似歌手的作品搜索、同类型(例如摇滚、校园民谣等)的音乐搜索等。
[0048] 本申请实施例提供了一种对象查询的方法,如图2所示为本申请一实施例的对象查询的方法的流程图,可以包括:
[0049] 步骤S201:对目标对象进行特征提取。
[0050] 在当前实施方式中,目标对象可以是图像、文本、音频等内容。以图像为例,可以是用户拍摄的图像,也可以是从网络中下载的图像,还可以是从视频中截取的图像等。图像可以是商品图像,也可以是人物图像、动物图像、风景图像等。文本可以是学术论文、在网络上发表的文章或电子书等。音频可以是歌曲、乐曲等。
[0051] 对于特征的提取,可以采用预先训练好的特征提取模型进行。进一步的,根据目标对象的不同,选择对应的特征提取模型进行特征提取。例如,若目标对象是商品图像,则可以选择预先采用不同类别的商品图像样本训练得到的特征提取模型。若目标对象是歌曲,则可以选择预先采用不同歌手以及不同类型的歌曲样本训练得到的特征提取模型。
[0052] 可以利用预先训练好的特征提取模型对目标对象进行特征提取,以得到目标对象的n维特征。示例性地,n为正整数,根据查询精度或存储能力等需求,n可以取值为64、128、256等,具体取值不再进行穷举。以商品图像为例,n维特征可以是编码形式存在,用于表征商品的颜色维度特征、组别维度特征、款式维度特征等。示例性地,组别维度可以包括男士衬衫、女士连衣裙等组别。款式维度可以男士七分裤、男士九分裤等款式。以文本为例,n维特征表示可以用于表征类别维度、学科维度、作者维度等。其中,类别维度可以是传记类、小说类、论文类等。学科维度可以是电子信息类、化学类、数学类等。
[0053] 基于此,对目标对象进行特征提取所得到的特征可以表征目标对象在不同维度的信息,由此可以表征目标对象的语义特征、标签特征等。
[0054] 步骤S202:利用满足第一指定条件的哈希矩阵,根据提取出的目标对象的特征,得到目标对象的二值化表示。
[0055] 满足第一指定条件的哈希矩阵可以是具有编码功能的哈希矩阵,从而可以基于编码技术直接将n维特征转为0‑1的二值化表示。或者,满足第一指定条件的哈希矩阵可以是指定尺寸(n*m)的具有编码功能的哈希矩阵等。
[0056] 进一步的,在利用满足第一指定条件的哈希矩阵进行计算之前,还可以对提取出的n维特征进行升维或降维处理,以将n维特征转换为m维特征。进而利用满足指定条件的哈希矩阵将m维特征转为0‑1的二值化表示。示例性地,具有编码功能的哈希矩阵可以是DeepHash矩阵。
[0057] 在另一个示例中,指定条件的哈希矩阵的表现形式可以是编码模型。将n维特征或者经过升维或降维处理得到的m维特征输入至编码模型,从而得到多位0‑1组成的二值化表示。示例性地,编码模型可以是预先利用深度哈希损失函数(DeepHash Loss)训练好的。
[0058] 由于提取出的特征可以表征目标对象的语义特征、标签特征等。由此,根据提取出的特征得到的二值化表示相当于目标对象的指纹。以图像为例,即便是在对图像进行翻转、仿射变换等处理后,依然可以得到与处理前相同的指纹。
[0059] 步骤S203:利用目标对象的二值化表示,查询与目标对象匹配的候选对象。
[0060] 对于候选对象的查询,可以在指定数据库中进行。指定数据库可以是同一公司的不同产品线所对应的数据库,也可以是不同公司的数据库。指定数据库中可以存储有候选对象的二值化表示(指纹)与候选对象之间的关联关系。
[0061] 在查询过程中,可以利用目标对象的二值化表示在指定数据库中进行查询。例如,可以采用数据库排序算法确定与目标对象的二值化表示相同的候选对象,或者,可以确定出与目标对象的二值化表示的相似程度不低于对应阈值的候选对象。其中,相似程度可以利用汉明距离计算二值化表示的差异。在差异不低于对应阈值的情况下,即可在指定数据库中查询出候选对象。
[0062] 以目标对象为图像为例,在传统的向量检索方式中,图像特征通常以256维特征表示。单幅图像所占存储空间约为2KB。计算原理可以是计算浮点特征与256维矩阵的乘积。如果是亿级的图像数据量,存储空间至少需要500TB。目标对象的二值化表示只有0和1组成,可以节约大量的存储资源。仍以256维特征为例,如果是二值化表示,只需要256/8=32byte。如果是亿级的图像数据量,存储空间只大约需要30TB。相比于500TB,只占原始存储资源的约1/16。以提供商品图像查询为例的场景,几乎每时每刻都会有新的商品图像发布上传,商品图像的数量会持续增加。若采用当前实施方式的方案,可以降低对存储资源的要求,提升存储资源的利用率。另外,由于二值化表示所需存储资源较低,因此无需降维处理,直接将
64维、128维甚至256维等高维特征转换为二值化表示。由此在进行比对时,可以利用汉明距离等算法查询出候选对象。最后,基于二值化表示可以节省存储资源的优势,可以无需对高维度特征进行过度降维处理,从而满足准确度的保障。
[0063] 在一种可能的实现方式中,步骤S202所涉及的根据提取出的对象的特征,利用指定算法得到目标对象的二值化表示,具体可以包括以下过程:
[0064] 步骤S301:对提取出的对象的特征进行归一化处理,将归一化处理的结果映射至n维空间的球体表面;n为正整数。
[0065] 以目标对象的特征为n维特征为示例。可以首先对n维特征进行归一化处理,以将n维特征映射至n维空间的球体表面。示例性地,归一化算法可以采用L1归一化算法、L2归一化算法等。结合图3所示,图3中由左至右共四幅图像,左侧三幅图像为二维示意图,最右侧图像为三维示意图。二维示意图中球体表面的多个“圆点”对应为归一化结果。以L2归一化算法为例,归一化的结果可以在‑1 1之间。~
[0066] 步骤S302:将映射至n维空间的球体表面的归一化处理的结果分别与满足第一指定条件的m个哈希矩阵进行计算,得到m位二值化表示;第一指定条件是利用球体的半径确定的;m为正整数。
[0067] 可以利用LSH原理进行计算。LSH原理是将相似度高的数据以较高的概率映射成同一个Hash值,相似度很低的数据以极低的概率映射成同一个Hash值。哈希矩阵的数量m是基于目标维度确定的。结合图4所示,以目标对象的n维特征为256维为示例。若目标维度为64维,表示需要将目标对象的256维特征降维至64维。在此情况下m取值为64,哈希矩阵的尺寸为256*64。若目标维度为512维,表示需要将目标对象的256维特征升维至512维。在此情况下m取值为512,哈希矩阵的尺寸为256*512。
[0068] 结合图3所示,m个哈希矩阵以随机角度与球体相交进行计算,计算过程可以包括将n维特征中的第i个维度映射至m维特征中的第j个维度,其中,i、j均为正整数。右侧的两幅二维图像,以及三维图像中各自示意出3个哈希矩阵与球体相交。
[0069] 第一指定条件除了可以是指定尺寸的具有编码功能的哈希矩阵以外,还可以是满足哈希矩阵所表示的平面需与球体相交。即,哈希矩阵所表示的平面的截距不大于球体半径。以图3为例,哈希矩阵所表示的平面的截距为(‑1,1)。此外,第一指定条件也可以是哈希矩阵为均匀分布(Uniform Distribution)矩阵。
[0070] 步骤S303:利用m位二值化表示,得到目标对象的二值化表示。
[0071] 以m值为512为示例,将映射至n维空间的球体表面的归一化处理的结果分别与满足第一指定条件的512个哈希矩阵进行计算,得到512位二值化表示。可以直接将512位二值化表示作为目标对象的二值化表示。或者,还可以从m位二值化表示中选择出若干位。以将目标对象的256维特征升维至512维为例,可以根据需求将每个哈希矩阵切分成多个子矩阵。例如,可以将每个256*512的哈希矩阵拆分为6个256*85的子矩阵,最终可以得到6个8585
位的二值化表示。利用85位的二值化表示表征目标对象,相当于将切割面分割成了2 个区域,表征的准确率可以超过99%。
[0072] 可以以6个85位的二值化表示中的任意一个表征目标对象,也可以用6个(或5个、或4个等)85位的二值化进行“与”、“或”等逻辑运算后得到一个85位的二值化表示表征目标对象。又例如,还可以将每个256*512的哈希矩阵拆分为8个256*64的子矩阵,或拆分为16个256*32的子矩阵。通过矩阵的拆分,并利用逻辑运算的方式,可以有效降低数据量。
[0073] 在一种可能的实现方式中,目标对象的确定方式可以包括以下过程:
[0074] 步骤S401:确定噪声部分和目标对象的主体部分。
[0075] 以目标对象为歌曲为例,噪声部分可以是伴奏音,主体部分可以是人声的演唱音。利用噪声分离技术或噪声识别技术,可以确定出噪声部分和歌曲的主体部分。
[0076] 以目标对象为文本为例,噪声部分可以是“啊”、“嗯”、“的”等词。主体部分可以是出现过多次的人名、地名、动作等关键词。利用分词技术,可以得到每个分词。结合语义、语法以及上下文联系等信息,可以得到分词的特征表示。基于分词的特征表示,可以确定噪声部分和文本的主体部分。
[0077] 以目标对象为图像为例,噪声部分可以是背景部分,主体部分可以是前景部分。对于图像,可以利用掩膜以确定出噪声部分和图像的主体部分。
[0078] 步骤S402:将主体部分作为确定出的目标对象。
[0079] 在确定出噪声部分和目标对象的主体部分的情况下,可以将噪声部分进行过滤。从而只保留主体部分,将主体部分作为确定出的目标对象。通过上述过程,一来可以在一定程度上降低数据量,从而提高特征提取的效率。二来可以排除噪声部分特征的干扰,从而提高对于候选对象的查询精度。
[0080] 在一种可能的实现方式中,在目标对象为商品图像的情况下,确定噪声部分和目标对象的主体部分,可以包括以下过程:
[0081] 步骤S501:确定商品图像中所包含商品的掩膜。
[0082] 结合图1所示,以商品为服装为示例,可能存在模特穿着同款不同颜色的服装,在不同拍摄地点以不同姿势拍摄多张图像的情况。基于此,可以利用训练好的掩膜提取模型对商品图像的主体掩膜进行提取。
[0083] 图5所示为利用训练好的掩膜提取模型对商品图像进行主体掩膜进行提取的效果示意图。图中两两一组,以图中方框中圈选的一组为示例。被圈选的两幅图像中,右侧为商品图像,左侧为商品图像中所包含商品的掩膜。
[0084] 步骤S502:利用商品的掩膜,确定噪声部分和商品图像的主体部分。
[0085] 利用商品的掩膜在商品图像中进行商品的主体部分确认。例如,可以认为在商品图像中与商品的掩膜相重合的部分为商品图像的主体部分,其余部分作为噪声部分。
[0086] 在一种可能的实现方式中,特征提取是利用预先训练好的特征提取模型进行的。特征提取模型的训练过程,可以包括:
[0087] 步骤S601:利用第一样本集合,采用自监督学习对待训练的特征提取模型中的参数进行优化,得到第一优化结果。
[0088] 第一样本集合中的样本可以是未经人工标注的样本。进一步的,第一样本集合中的样本还可以是经过随机裁剪、随机涂抹、随机翻转、色彩变化、仿射变换等数据增强的样本。第一优化结果可以是指进行多轮参数优化后的特征提取模型,具体轮次可以根据经验值确定。
[0089] 自监督学习是指用于模型参数优化的标注是源于样本本身,而非来自人工标注。即,在训练过程中自动构造监督信息来进行监督学习或训练。由于自动构造监督信息并未经过人工标注的约束,可能会导致对提取出特征的可控性相对较弱。但在另一方面,自监督学习属于无监督学习。因此第一样本集合中的样本均无需人工标注,由此可以节省标注成本。同时,还可以大幅提高样本数量,从而可以有效模拟真实场景。
[0090] 步骤S602:利用第二样本集合,采用有监督学习对待训练的特征提取模型中的参数进行优化,得到第二优化结果。
[0091] 第二样本集合中的样本可以是经过人工标注的样本。有监督学习利用标注样本来训练特征提取模型,即优化特征提取模型中的参数。特征提取模型的输出特征预测结果和样本的标注结果产生损失后,该损失在特征提取模型中进行反向传播(计算梯度、更新参数),以迭代方式对特征提取模型中的参数进行优化。第二优化结果也可以是进行多轮参数优化后的特征提取模型,具体轮次可以根据经验值确定。
[0092] 步骤S603:在第一优化结果和第二优化结果中的至少一个满足第二指定条件的情况下,得到训练好的特征提取模型。
[0093] 结合图6所示,利用不同的样本集合同时对待训练的特征提取模型进行训练。即,采用自监督学习和有监督学习对待训练的特征提取模型中优化的参数可以进行共享。
[0094] 第二指定条件可以是根据优化轮次、参与训练的样本数量、训练时长和损失函数是否收敛等因素确定。例如,利用样本对待训练的特征提取模型进行参数优化,达到a轮参数优化便可以确定为满足第二指定条件。数值a可以是根据经验值确定的,取正整数。又例如,参与训练的样本数量达到50万,或者达到100万等,可以确定满足第二指定条件。再例如,训练时长达到200小时,或者达到1000小时等,可以确定满足第二指定条件。还例如,可以利用指定的损失函数是否收敛作为第二指定条件。在图6中,损失函数包括三元损失函数(Triplet Loss)和实例损失函数(Instance Loss)。
[0095] 上述情况(优化轮次、参与训练的样本数量、训练时长和损失函数是否收敛)可以以择一满足作为满足第二指定条件,也可以以任意满足两个或三个作为满足第二指定条件。还可以以全部满足作为满足第二指定条件。
[0096] 在一种可能的实现方式中,第二指定条件是根据指定类型的损失函数的收敛情况确定的。
[0097] 损失函数是利用参数优化后特征提取模型计算得到的。
[0098] 指定类型的损失函数包括三元损失函数、分类损失函数、类内相似性损失函数、实例分类判别损失函数和量化损失函数中的至少一种。
[0099] 将第一样本集合或第二样本集合中的样本输入待训练的特征提取模型,可以得到特征预测结果。利用不同的损失函数收敛情况,可以基于特征预测结果衡量特征提取模型中参数的优化效果,并且对参数进行迭代优化。
[0100] 例如,对于有监督学习和自监督学习,均可以利用三元损失函数以及类内相似性损失函数(Center Loss)对特征预测结果进行检验,并利用检验结果优化参数。其中,三元损失函数的原理是使用三张图像样本构成三元组。在三元组中,第一图像样本和第二图像样本(正样本)是相似的,而第一图像样本和第三图像样本(负样本)是不相似的。基于三元组的损失函数的目标是:检测相似样本间的距离是否小于不相似样本间的距离,且差异满足预期。
[0101] 类内相似性的损失函数的原理是可以增强相同类别间样本特征的聚合性。类内相似性的损失函数可以用于辅助三元损失函数。即,可以检测第一图像样本与正样本的距离是否足够相近,以及检测第一图像样本与负样本的距离是否足够远。
[0102] 对于有监督学习,还可以利用实例损失函数以及ID分量损失函数(ID Classification Loss)对特征预测结果进行检验,并利用检验结果优化参数。其中,利用实例损失函数优化网络参数时,可以在特征提取模型的输出部分增加分类层,通过此分类层,将具有相同标签(Group ID)的样本特征映射到同一特征空间当中。通过此种方式,拉近了具有相同标签的样本特征之间的距离,从而使得提取出的特征获得区分性。即,具有相同标签的样本的特征接近,具有不同标签的样本的特征疏远。ID分量损失函数与实例损失函数的原理相同,均是从标签维度约束提取出的特征。
[0103] 在特征提取模型还包括量化编码层的情况下,可以利用量化损失函数(Quantization Loss)对量化编码层输出的编码结果进行检验,并利用检验结果优化参数。例如,在特征输出结果为0 1之间时,编码层输出结果为1;在特征输出结果为‑1 0之间时,~ ~
编码层输出结果为‑1。量化损失函数用于使特征提取网的输出接近于1或接近于‑1,从而可以避免在输出结果为0附近而造成的编码结果混淆不清的情况。
[0104] 在对特征提取模型进行训练时,利用设置的总损失函数(Loss)可以同时参考上述提及的多个损失函数的收敛情况。即Loss=Triplet Loss+Center Loss+Instance Loss+ID Classification Loss+Quantization Loss。
[0105] 在一种可能的实现方式中,第一样本集合和第二样本集合中的样本包括经过数据增广得到的扩展样本。
[0106] 第一样本集合和第二样本集合中的样本可以包括原始样本,以及利用原始样本进行数据增广得到的扩展样本。利用扩展样本对特征提取模型进行训练,可以提高模型输出结果的准确度以及鲁棒性。
[0107] 广义的数据增广可以是对原始样本的随机裁剪、随机涂抹、随机翻转、色彩变化、背景变化、仿射变换等处理,从而得到扩展样本。另外,在当前实施方式中,数据增广还可以是构建不同识别难度的样本对,或者对扩展样本进行相似性过滤以剔除坏例等多种处理。
[0108] 在一种可能的实现方式中,扩展样本的获取方式,包括:
[0109] 步骤S701:获取原始样本的至少一个召回样本;原始样本为在数据增广前,存在于第一样本集合或第二样本集合中的样本。
[0110] 召回样本的获取方式可以利用向量检索在数据库中查询得到的。对于图像样本,还可以采用DHash检索在数据库中查询得到。对应的,可以首先确定出原始样本的向量特征,或者确定出原始样本的DHash值。进而基于向量特征进行向量检索,或者基于DHash值进行DHash检索,从而可以得到原始样本的召回样本。
[0111] 步骤S702:利用向量检索,得到每个召回样本的关联样本。
[0112] 基于获取到的召回样本,可以继续采用向量检索的方式,得到与召回样本相同或者近似的关联样本。基于上述方式,可以将原始样本、召回样本和关联样本作为彼此相同或相近似的样本集合。
[0113] 步骤S703:基于原始样本、召回样本和关联样本,构建不同等级的样本对;等级是根据样本的之间的汉明距离和样本的之间的差异哈希值确定的;将不同等级的样本对作为扩展样本。
[0114] 基于原始样本、召回样本和关联样本,可以利用彼此之间的汉明距离以及差异哈希值确定不同等级。结合图7所示,以图像为示例,不同等级可以包括图7中左上方所示的简单等级、右上方所示的中等等级、左下方所示的较困难等级和右下方所示的困难等级四类。
[0115] 其中,简单等级可以是彼此相同,或者只有细微差异的样本对。中等等级可以是两幅图像样本大部分相同,只有个别区域存在差异的样本对。例如图7中所示,两件T恤的构图,以及穿着T恤的模特等部分都相同,差异在于T恤中心位置的图案。较困难等级可以是两幅图像存在较大差异,例如图7中左下方所示,右图相较于左图,增加了文字作为干扰因子。困难等级可以是两幅图像差异较大。例如图7困难等级中,左图和右图中的模特的姿势发生变化,且两幅图的背景也存在差异,其中一幅图中的衣架在模特左侧,另一幅图中的衣架在模特右侧。
[0116] 困难等级的确定方式可以根据样本的之间的汉明距离和样本的之间的差异哈希值确定。例如,可以首先确定两个样本之间的汉明距离H。其次,确定两个样本之间的哈希差异值D。哈希差异值是由0‑1组成的数组,统计哈希差异值D中数字1的数量,记作N。例如,差异哈希值D为00101,那么数字1的数量为2。根据H和N的比值,可以计算出等级rate_diff。示例性地,若rate_diff不大于0.075,则两个样本可以组成简单等级的样本对。若rate_diff在0.075至0.225之间,则两个样本可以组成中等等级的样本对。若rate_diff在0.225至0.45之间,则两个样本可以组成较困难等级的样本对。若rate_diff大于0.45,则两个样本可以组成困难等级的样本对。
[0117] 通过将不同等级的样本对作为扩展样本,置于第一样本集合或第二样本集合中,可以使得训练数据更为多元化。以服装图像为示例,即便是穿着同款服装的模特姿势不同、拍照背景不同,甚至模特不同,都可以确定出相同或近似的图像指纹。
[0118] 在一种可能的实现方式中,还可以包括对关联样本的过滤过程;
[0119] 过滤过程可以包括:
[0120] 根据关联样本与原始样本的颜色相似度比较结果,对关联样本进行过滤,颜色相似度比较结果是基于关联样本中的样本主体与原始样本中的样本主体之间的颜色相似度确定的。
[0121] 在进行颜色相似度的比较过程中,可以首先进行样本主体提取。即,过滤噪声。以图像为示例,可以剔除图像的背景内容,只保留前景内容。针对每幅图像的主体,可以首先进行分辨率转换,以调整至统一尺寸。其次,可以进行亮度均衡处理。例如,可以将图像从BGR通道转至HSV通道或HSL通道。在亮度均衡处理后,再转回BGR通道。从而消除亮度带来的比较误差。最后,结合图8所示,利用BGR通道确定各关联样本与原始样本之间的相似度,相似度大于0.5的即可认为是相似,予以保留。反之,可以将相似度不大于0.5的关联样本删除。
[0122] 在一种可能的实现方式中,如图9所示,以商品图像为示例,阐述本申请的对象查询的方法。
[0123] 首先,利用训练好的掩膜提取分支,确定待查询的目标商品图像中的商品主体掩膜。利用商品主体掩膜,可以在目标商品图像中确定出商品主体。以图9为示例,商品主体为女士上衣。
[0124] 其次,利用训练好的特征提取模型,可以仅对商品主体进行特征提取,进而得到商品主体的n维特征。示例性地,n可以取值为256。
[0125] 对于n维特征,一种方式是利用特征提取网络的全连接层对其进行降维处理,得到m维特征。示例性地,m可以取值64。基于此,可以仅以64维特征表征商品主体,从而降低数据量。通过对64维特征进行DeepHash编码,得到商品主体的二值化表示。所谓商品主体的二值化表示又可以称为商品主体的DeepHash编码。另外,对于n维特征,另一种方式是利用DeepHash矩阵与n维特征进行运算,同样可以得到商品主体的二值化表示。
[0126] 最后,可以采用数据库排序算法确定与商品主体的DeepHash编码相同的候选对象。由于特征提取网络是利用前述扩展样本,以及多种损失函数训练的,因此对于图10中所示出的不同拍摄角度、相同模特的不同动作、不同模特、服装的花纹或服装的文字不同等多种情况,均可以有较好的查询效果。
[0127] 与本申请实施例提供的方法的应用场景以及方法相对应地,本申请实施例还提供一种对象查询的装置。如图11所示为本申请一实施例的对象查询的装置的结构框图,该对象查询的装置可以包括:
[0128] 特征提取模块1101,用于对目标对象进行特征提取;
[0129] 二值化表示生成模块1102,用于利用满足第一指定条件的哈希矩阵,根据提取出的目标对象的特征,得到目标对象的二值化表示;
[0130] 候选对象查询模块1103,用于利用目标对象的二值化表示,查询与目标对象匹配的候选对象。
[0131] 在一种可能的实现方式中,二值化表示生成模块1102可以进一步包括:
[0132] 特征映射子模块,用于对提取出的对象的特征进行归一化处理,将归一化处理的结果映射至n维空间的球体表面;n为正整数;
[0133] 特征计算子模块,用于将映射至n维空间的球体表面的归一化处理的结果分别与满足第一指定条件的m个哈希矩阵进行计算,得到m位二值化表示;第一指定条件是利用球体的半径确定的;m为正整数;
[0134] 二值化表示生成执行子模块,用于利用m位二值化表示,得到目标对象的二值化表示。
[0135] 在一种可能的实现方式中,还包括目标对象确定模块。目标对象确定模块可以包括:
[0136] 主体部分确定子模块,用于确定噪声部分和目标对象的主体部分;
[0137] 目标对象确定执行子模块,用于将主体部分作为确定出的目标对象。
[0138] 在一种可能的实现方式中,在目标对象为商品图像的情况下,主体部分确定子模块可以进一步包括:
[0139] 掩膜确定单元,用于确定商品图像中所包含商品的掩膜;
[0140] 主体部分确定执行单元,用于利用商品的掩膜,确定噪声部分和商品图像的主体部分。
[0141] 在一种可能的实现方式中,特征提取是利用预先训练好的特征提取模型进行的。基于此,还包括特征提取模型训练模块,特征提取模型训练模块可以进一步包括:
[0142] 自监督学习子模块,用于利用第一样本集合,采用自监督学习对待训练的特征提取模型中的参数进行优化,得到第一优化结果;
[0143] 有监督学习子模块,用于利用第二样本集合,采用有监督学习对待训练的特征提取模型中的参数进行优化,得到第二优化结果;
[0144] 训练结果判定子模块,用于在第一优化结果和第二优化结果中的至少一个满足第二指定条件的情况下,得到训练好的特征提取模型。
[0145] 在一种可能的实现方式中,第二指定条件是根据指定类型的损失函数的收敛情况确定的;
[0146] 指定类型的损失函数是利用参数优化后特征提取模型计算得到的;
[0147] 指定类型的损失函数包括三元损失函数、分类损失函数、类内相似性损失函数、实例分类判别损失函数和量化损失函数中的至少一种。
[0148] 在一种可能的实现方式中,还包括数据增广模块,用于对第一样本集合和第二样本集合中的样本进行数据增广以得到扩展样本。
[0149] 在一种可能的实现方式中,数据增广模块可以包括:
[0150] 召回样本获取子模块,用于获取原始样本的至少一个召回样本;原始样本为在数据增广前,存在于第一样本集合或第二样本集合中的样本;
[0151] 关联样本获取子模块,用于利用向量检索,得到每个召回样本的关联样本;
[0152] 样本对构建子模块,用于基于原始样本、召回样本和关联样本,构建不同等级的样本对;等级是根据样本的之间的汉明距离和样本的之间的差异哈希值确定的;
[0153] 扩展样本确定子模块,用于将不同等级的样本对作为扩展样本。
[0154] 在一种可能的实现方式中,还包括过滤子模块,用于根据关联样本与原始样本的颜色相似度比较结果,对关联样本进行过滤,颜色相似度比较结果是基于关联样本中的样本主体与原始样本中的样本主体之间的颜色相似度确定的。
[0155] 本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,并具备相应的有益效果,在此不再赘述。
[0156] 图12为用来实现本申请实施例的电子设备的框图。如图12所示,该电子设备包括:存储器1210和处理器1220,存储器1210内存储有可在处理器1220上运行的计算机程序。处理器1220执行该计算机程序时实现上述实施例中的方法。存储器1210和处理器1220的数量可以为一个或多个。
[0157] 该电子设备还包括:
[0158] 通信接口1230,用于与外界设备进行通信,进行数据交互传输。
[0159] 如果存储器1210、处理器1220和通信接口1230独立实现,则存储器1210、处理器1220和通信接口1230可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。
为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0160] 可选的,在具体实现上,如果存储器1210、处理器1220及通信接口1230集成在一块芯片上,则存储器1210、处理器1220及通信接口1230可以通过内部接口完成相互间的通信。
[0161] 本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现本申请实施例中提供的方法。
[0162] 本申请实施例还提供了一种芯片,该芯片包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行本申请实施例提供的方法。
[0163] 本申请实施例还提供了一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行申请实施例提供的方法。
[0164] 应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(Advanced RISC Machines,ARM)架构的处理器。
[0165] 进一步地,可选的,上述存储器可以包括只读存储器和随机访问存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(Read‑Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以包括随机访问存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM均可用。例如,静态随机访问存储器(Static RAM,SRAM)、动态随机访问存储器(Dynamic  Random Access Memory,DRAM)、同步动态随机访问存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机访问存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机访问存储器(Enhanced SDRAM,ESDRAM)、同步链接动态随机访问存储器(Sync link DRAM,SLDRAM)和直接内存总线随机访问存储器(Direct Rambus RAM,DR RAM)。
[0166] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生依照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
[0167] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0168] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0169] 流程图中描述的或在此以其他方式描述的任何过程或方法可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
[0170] 在流程图中描述的或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
[0171] 应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0172] 此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
[0173] 以上所述,仅为本申请的示例性实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请记载的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。