商品推荐方法、装置、存储介质和计算设备与流程

文档序号:21697989发布日期:2020-07-31 22:49阅读:198来源:国知局
商品推荐方法、装置、存储介质和计算设备与流程

本发明的实施方式涉及图像处理技术领域,更具体地,本发明的实施方式涉及商品推荐方法、装置、存储介质和计算设备。



背景技术:

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

在电商平台中,通过商品推荐系统可分析用户点击、购买行为,分析不同商品之间的关联性,可为用户提供千人千面的个性化推荐,提高电商有效转化率,提升用户消费体验。随着网络消费的不断升级,如何在海量商品中向用户推荐合适的商品,是目前研究的热点和难点。近几年来电商平台中商品的展示图片得到极大丰富,一件商品可配有多幅不同角度的展示图,对于服装鞋帽等商品还可配有模特展示图,便于用户线上选择,促进消费。基于此,基于图像相似度计算商品的相似度并进行商品推荐成为可能。例如,一种商品推荐的处理过程大致是,对商品图像提取前景框,利用多个神经网络提取商品图像在不同尺度前景框内不同维度的属性特征(如形状、颜色、纹理等),采用决策森林模型联合计算不同维度下的属性特征相似度,以此计算商品图像的相似度,提升推荐商品的可靠性。

但是,此类方案需为商品图像的每一个尺度以及每一个属性维度训练卷积神经网络分类模型,因此其虽然可提升不同类别下网络特征提取的区分度,但该方案的实现需要大量的数据标注,训练成本较高;并且,该方案对单个商品类目的处理需遍历全部属性的神经网络以计算不同属性维度的特征向量之间的相似性,因此计算耗时较长,并不适合用于快速迭代更新的商品推荐场景。



技术实现要素:

本申请实施例期望提供一种商品推荐方法、装置、存储介质和计算设备,可基于商品图像的相似度进行商品推荐。

第一方面,本申请实施例提供一种商品推荐方法,包括:从商品关键图像集合中获取多个商品关键图像;其中,通过对商品图像进行预处理能够得到商品关键图像;获取所述多个商品关键图像中每个商品关键图像的深度特征;对所述多个商品关键图像中每个商品关键图像的深度特征进行量化编码处理;基于量化编码处理的结果,确定所述多个商品关键图像中每两个商品关键图像之间的相似度;基于所述多个商品关键图像中的至少一个商品关键图像与其余各商品关键图像之间的相似度,得到所述至少一个商品关键图像对应的相似图像列表;根据所述相似图像列表,确定与所述至少一个商品关键图像中的商品相似的商品。

根据本申请实施例的方法,所述预处理包括:对至少一个商品的多个商品图像进行筛选处理,以保留所述至少一个商品的平铺展示正视图和模特展示正视图。

根据本申请实施例的方法,所述预处理还包括:对所述至少一个商品的平铺展示正视图和模特展示正视图进行主体检测,确定商品主体所在的区域;对所述至少一个商品的平铺展示正视图和模特展示正视图进行裁剪处理,得到所述至少一个商品的商品主体的平铺展示正视图和模特展示正视图。

根据本申请实施例的方法,所述预处理还包括:对得到的所述至少一个商品的商品主体的平铺展示正视图和模特展示正视图进行去重处理,以将重复图像和/或相似图像剔除;将去重处理之后得到的平铺展示正视图和模特展示正视图作为所述至少一个商品的商品关键图像。

根据本申请实施例的方法,所述对至少一个商品的多个商品图像进行筛选处理,包括:通过经训练的图像类别分类器,对所述至少一个商品的多个商品图像进行分类,得到每个图像所属的类别,其中所述类别包括:平铺展示图、模特展示图、其它展示图三者中的至少一者;通过经训练的图像方向分类器,对所述至少一个商品的平铺展示图和模特展示图进行分类,得到平铺展示图的正视图、侧视图、后视图和/或俯视图,并且得到模特展示图的正视图、侧视图、后视图和/或俯视图;将平铺展示图的侧视图、后视图和俯视图剔除,并且将模特展示图的侧视图、后视图和俯视图剔除,保留平铺展示图的正视图和模特展示图的正视图。

根据本申请实施例的方法,所述根据所述相似图像列表,确定与所述至少一个商品关键图像中的商品相似的商品之前,所述方法还包括:基于所述至少一个商品关键图像与其余各商品关键图像之间的颜色特征相似度和/或纵横比特征相似度,对所述相似图像列表进行重排列。

根据本申请实施例的方法,所述获取所述多个商品关键图像中每个商品关键图像的深度特征,包括:将所述多个商品关键图像输入经训练的神经网络模型;对于输入的每个商品关键图像,在所述神经网络模型的多个卷积层提取商品关键图像的深度特征。

根据本申请实施例的方法,所述对于输入的每个商品关键图像,在所述神经网络模型的多个卷积层提取商品关键图像的深度特征,包括:对于输入的第一商品关键图像,获取所述第一商品关键图像经过所述神经网络模型的第一预定卷积层后得到的图像深度特征,作为所述第一商品关键图像的第一图像深度特征;获取所述第一商品关键图像经过所述神经网络模型的第二预定卷积层后得到的图像深度特征,作为所述第一商品关键图像的第二图像深度特征。

根据本申请实施例的方法,所述方法还包括:对所述第一商品关键图像的第一图像深度特征进行局部最大池化处理,得到第一图像深度特征的至少两个特征向量,将至少两个特征向量的均值向量作为所述第一商品关键图像的第一图像深度特征的特征向量;对所述第一商品关键图像的第二图像深度特征进行局部最大池化处理,得到第二图像深度特征的至少两个特征向量,将至少两个特征向量的均值向量作为所述第一商品关键图像的第二图像深度特征的特征向量;其中,所述第一商品关键图像的第一图像深度特征的特征向量属于所述第一商品关键图像的特征向量集合;所述第一商品关键图像的第二图像深度特征的特征向量属于所述第一商品关键图像的特征向量集合。

根据本申请实施例的方法,所述对所述第一商品关键图像的第一图像深度特征进行局部最大池化处理,得到第一图像深度特征的至少两个特征向量,包括:采用第一滑窗对所述第一商品关键图像的第一图像深度特征进行滑窗处理,使所述第一滑窗遍历第一图像深度特征以得到多个向量,将多个向量的均值向量作为所述第一图像深度特征在第一滑窗下的特征向量;采用第二滑窗对所述第一商品关键图像的第一图像深度特征进行滑窗处理,使所述第二滑窗遍历第一图像深度特征以得到多个向量,将多个向量的均值向量作为所述第一图像深度特征在第二滑窗下的特征向量。

根据本申请实施例的方法,所述对所述多个商品关键图像中每个商品关键图像的深度特征进行量化编码处理,包括:基于预定的聚类算法,计算每个商品关键图像的特征向量集合中每个特征向量的多个聚类中心;对每个商品关键图像的特征向量集合中每个特征向量的多个聚类中心建立索引,得到每个商品关键图像对应的量化编码;将每个商品关键图像对应的量化编码进行级联,得到所述多个商品关键图像对应的联合量化编码。

根据本申请实施例的方法,所述基于量化编码处理的结果,确定所述多个商品关键图像中每两个商品关键图像之间的相似度,包括:基于所述多个商品关键图像对应的联合量化编码,分别计算所述多个商品关键图像中每两个商品关键图像之间的深度特征相似度。

根据本申请实施例的方法,基于三元组损失函数以及由商品图像构成的三元组训练数据,对深度残差网络进行训练,以生成所述神经网络模型。

根据本申请实施例的方法,所述三元组训练数据包括以下多种经标注的三元组训练数据中的至少一种:

{商品的平铺展示正视图,相似商品的平铺展示正视图,不相似商品的平铺展示正视图或模特展示正视图};

{商品的平铺展示正视图,相同商品的模特展示正视图,不相似商品的平铺展示正视图或模特展示正视图};

{商品的模特展示正视图,相似商品的模特展示正视图,不相似商品的平铺展示正视图或模特展示正视图};

{商品的模特展示正视图,相同商品的平铺展示正视图,不相似商品的平铺展示正视图或模特展示正视图}。

第二方面,本申请实施例还提供一种商品推荐装置,包括:关键图像获取模块,用于从商品关键图像集合中获取多个商品关键图像;其中,通过对商品图像进行预处理能够得到商品关键图像;深度特征获取模块,用于获取所述多个商品关键图像中每个商品关键图像的深度特征;量化编码处理模块,用于对所述多个商品关键图像中每个商品关键图像的深度特征进行量化编码处理;相似度确定模块,用于基于量化编码处理的结果,确定所述多个商品关键图像中每两个商品关键图像之间的相似度;相似图像列表处理模块,基于所述多个商品关键图像中的至少一个商品关键图像与其余各商品关键图像之间的相似度,得到所述至少一个商品关键图像对应的相似图像列表;相似商品确定模块,用于根据所述相似图像列表,确定与所述至少一个商品关键图像中的商品相似的商品。

第三方面,本申请实施例还提供一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现如上所述的商品推荐方法。

第四方面,本申请实施例还提供一种计算设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的商品推荐方法。

本申请的实施例选取商品的关键图像进行处理,排除了冗余干扰因素,在为用户推荐相似商品时可以达到更高的匹配度与精准度,本申请实施例对关键图像的深度特征进行量化编码处理,然后确定关键图像之间的相似度,在提升图像匹配精确度的同时可省去计算大量向量之间相似度的计算消耗,提升了整体计算效率,提高了商品匹配的效率。

附图说明

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

图1示意性地示出了本申请实施例的商品推荐方法的实现流程图。

图2示意性地示出了本申请实施例中的基于深度残差网络的三元组网络的结构示意图。

图3示意性地示出了本申请实施例对同一特征图进行局部最大池化过程中使用多个滑窗的效果示意图。

图4示意性地示出了本申请实施例的量化编码处理的原理示意图;

图5示意性地示出了本申请实施例的存储介质结构示意图;

图6示意性地示出了本申请实施例的商品推荐装置的结构示意图;

图7示意性地示出了本申请实施例的计算设备结构示意图。

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

具体实施方式

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

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

根据本申请的实施方式,提出了一种商品推荐方法、存储介质、装置和计算设备。

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

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

发明概述

一般而言,在商品图像数据库中,单个商品可能包含多张图像,可做如下类别划分:平铺图(例如平铺正视图、平铺侧视图、平铺后视图和平铺俯视图)、模特展示图(例如模特使用、穿戴商品所拍摄的图片,可能包括各个角度的视图)、细节图(例如商品局部细节的放大图)、促销图(例如含有促销信息的图片),以及尺码图(如服饰、鞋靴等的尺码数据表的图片)等等。本申请实施例的目的在于提供一种基于商品图像相似度的商品推荐方案,其中,如何提高推荐商品的精确度,并提高商品匹配的效率,是本申请方案要解决的问题。

本申请实施例提出的商品推荐方法基于图像搜索技术,在商品推荐之前,首先对数据库中的各个商品对应的图像进行分类(例如分为平铺正视图、平铺后视图、模特展示正视图,等等),选取出具有表征性的图像(例如平铺正视图、模特展示正视图),对选出的图像进行主体检测、裁剪和去重等处理,可得到该商品的关键图像。对数据库中各个商品的图像均进行上述处理,可计算得到各个商品的具有代表性、区分度的关键图像,基于此,可构建商品关键图像的搜索底库;然后,通过构建适合的深度残差网络,提取搜索底库中的图像深度特征,采用量化编码实现快速、准确的特征搜索,基于上述至少部分处理,可以得到该商品关键图像的相似图像列表进而得到该商品的相似商品列表,由于本方案选取了商品的关键图像进行匹配,排除了大量的冗余干扰因素,在为用户推荐相似商品时可以提供更高的匹配度与精准度;而且,本方案还对关键图像的深度特征进行量化编码处理后再确定关键图像之间的相似度,在进一步提升图像匹配精确度的同时还省去了大量向量之间相似度的计算消耗,提升了整体计算效率,提高了商品匹配的效率验。

在介绍了本申请的基本思想之后,下面具体介绍本申请的各种非限制性实施方式。

示例性方法

下面参考图1描述根据本申请示例性实施方式的商品推荐方法。

图1示意性地示出了根据本申请实施例的商品推荐方法实现流程图,包括以下步骤:

s11:从商品关键图像集合中获取多个商品关键图像;其中,通过对商品图像进行预处理能够得到商品关键图像;

s12:获取所述多个商品关键图像中每个商品关键图像的深度特征;

s13:对所述多个商品关键图像中每个商品关键图像的深度特征进行量化编码处理;

s14:基于量化编码处理的结果,确定所述多个商品关键图像中每两个商品关键图像之间的相似度;

s15:基于所述多个商品关键图像中的至少一个商品关键图像与其余各商品关键图像之间的相似度,得到所述至少一个商品关键图像对应的相似图像列表;

s16:根据所述相似图像列表,确定与所述至少一个商品关键图像中的商品相似的商品。

本申请实施例选取商品的关键图像进行匹配,可排除冗余的干扰因素,因此能够提高推荐商品的匹配度与精准度,并且本申请实施例是对关键图像的深度特征进行量化编码处理后再确定关键图像之间的相似度,因此能够省去计算大量向量之间的相似度的计算消耗,降低了计算成本,可提升整体计算效率,提高商品匹配的效率。

以下从本申请实施例的各个方面,描述本申请实施例的具体实现方式。

在本申请的实施例中,对于步骤s11中提到的商品图像预处理,可通过多种方式对商品图像进行预处理,得到商品的关键图像,以下进行详细描述。

在一种实施方式中,可对至少一个商品的多个商品图像进行筛选处理,保留所述至少一个商品的平铺展示正视图和模特展示正视图。发明人经过实践研究发现,在各类图像中,不同商品之间的正视平铺图或者模特展示图具备较好的区分性,其他类别的图像则容易产生混淆,例如不同白色t恤的正面图案不同,则它们的平铺正视图不同,模特展示正视图也不同,但后视图几乎一致(均为不含图案的白色t恤图),因而不具备区分性,因此,本申请实施例在筛选处理时将上述不具备区分性的图像过滤掉。

在一种实施方式中,可采用如下的筛选处理过程:

s50:通过经训练的图像类别分类器,对所述至少一个商品的多个商品图像进行分类,得到每个图像所属的类别,其中所述类别包括:平铺展示图、模特展示图、其它展示图三者中的至少一者;

s52:通过经训练的图像方向分类器,对所述至少一个商品的平铺展示图和模特展示图进行分类,得到平铺展示图的正视图、侧视图、后视图和/或俯视图,并且得到模特展示图的正视图、侧视图、后视图和/或俯视图;

s54:将平铺展示图的侧视图、后视图和俯视图剔除,并且将模特展示图的侧视图、后视图和俯视图剔除,保留平铺展示图的正视图和模特展示图的正视图。

在一些实施例中,上述筛选过程可采用训练好的两层基于卷积神经网络的图像分类器,第一层分类器为类别分类器,包含三个类别,分别为平铺图、模特图以及其他图;第二层分类器为方向分类器,包含四个类别,分别为正视图、侧视图、后视图以及俯视图。

可选地,可使用分类卷积神经网络例如深度残差网络resnet18,其中数字18代表网络的深度,当然也可以使用其他适合的网络,本申请实施例对此处没有特殊限制。

数据库中的图像通过两层分类器筛选处理之后,将保留商品的平铺展示图的正视图和模特展示图的正视图,排除其他类别图像。

进一步地,在本申请的实施例中,对商品图像的预处理还可包括:

对所述至少一个商品的平铺展示正视图和模特展示正视图进行主体检测,确定商品主体所在的区域;然后,对所述至少一个商品的平铺展示正视图和模特展示正视图进行裁剪处理,得到所述至少一个商品的商品主体的平铺展示正视图和模特展示正视图。

发明人经过实践研究发现,商品主体通常位于商品图像的中心位置,图像中的其他区域例如四周边缘区域的信息通常是无关紧要的,因此,本申请实施例可采用目标检测算法(例如yolov3或者其他检测算法),训练适用于各类商品的主体检测器,检测得到包含商品主体的包裹框,并对原始图像进行裁剪,可得到仅包含重要信息的新图像。

经过上述处理得到的商品图像可能包含重复或类似图像,为进一步滤除冗余信息,在本申请的实施例中,还可对得到的所述至少一个商品的商品主体的平铺展示正视图和模特展示正视图进行去重处理,以将重复图像和/或相似图像剔除;将去重处理之后得到的平铺展示正视图和模特展示正视图作为所述至少一个商品的商品关键图像。

在一种实施方式中,可使用图像做差法进行去重,先将该商品的所有图像采样至同一宽高大小,两两计算各张图像的像素差值,若数张图像之间的差值小于某一阈值σ,则仅保留单张图像,删除剩余图像,其中σ可取例如100。

根据本申请的实施例,对数据库中的商品图片实施上述一系列分类、主体检测和去重操作中的至少部分处理,可得到各个商品的用于搜索的商品关键图像,商品关键图像的集合可作为本申请实施例的搜素底库。

利用本申请至少一个实施例进行图像预处理,能够提取出商品的主要关键图像,排除无关的例如局部细节图、促销图等干扰图像,经过主体检测能够提取出商品图像的主要部分用于特征提取,可提升对关键区域信息的提取能力。

在本申请的实施例中,对于步骤12中提到的获取所述多个商品关键图像中每个商品关键图像的深度特征,可包括:

s126:将所述多个商品关键图像输入经训练的神经网络模型;

s128:对于输入的每个商品关键图像,在所述神经网络模型的多个卷积层,提取商品关键图像的深度特征。

关于采用的神经网络模型,可选地,可基于三元组损失函数以及由商品图像构成的三元组训练数据,对深度残差网络进行训练,以生成所述神经网络模型。

在本申请的一种实施方式中,采用深度残差网络作为特征提取的主干网络,例如resnet50或其他适合的网络。

其中,预先训练(pre-trained)的深度残差网络是在imagenet数据集上训练得到的分类模型,imagenet数据集可达上千个类别,但是,在以商品类目为主的图像搜索应用场景中,实践发现,使用预先训练的深度残差网络提取的图像特征并不具备较好的区分性,因此,本申请实施例在商品数据集合上对网络进行进一步精细化训练,使其能够学习得到更具有表征性的图像深度特征,具体的训练方式描述如下。

首先,图2示意性地示出了本申请实施例中的一种基于深度残差网络的三元组网络(tripletnetwork)结构。将三元组定义为<a,p,n>,其中,a是锚(anchor)示例,p是正(positive)示例,n是负(negative)示例。

并且,构建三元组损失函数,对深度残差网络进行调优(finetune),三元组损失函数可定义为:

l=max(d(a,p)-d(a,n)+margin,0)

其中,l表示三元组损失函数,d(a,p)表示a与p之间的平均距离,d(a,n)表示a与n之间的平均距离,margin为边缘参数,max()表示取最大值。本申请实施例进行精细化网络训练的优化目标是拉近锚示例与正示例的距离,拉远锚示例与负示例的距离,使得训练的网络能够令同类别目标的距离更近,不同类别目标的距离更远。

为便于理解,作为示意性示例,图2中示出的锚示例a为红色t恤的平铺展示正视图,正示例p为相同图案的红色t恤的模特展示正视图,负示例n为不同图案的蓝色t恤的平铺展示正视图。

由于平铺图和模特图都是能够明确代表商品的关键图像,为了能够满足在搜索某图像时不仅可搜索到相似的平铺图,还能搜索到相似的模特图,本申请实施例设计按照如下准则选取三元组的训练数组:

{商品的平铺展示正视图,相似商品的平铺展示正视图,不相似商品的平铺展示正视图或模特展示正视图};

{商品的平铺展示正视图,相同商品的模特展示正视图,不相似商品的平铺展示正视图或模特展示正视图};

{商品的模特展示正视图,相似商品的模特展示正视图,不相似商品的平铺展示正视图或模特展示正视图};

{商品的模特展示正视图,相同商品的平铺展示正视图,不相似商品的平铺展示正视图或模特展示正视图}。

本申请实施例可采用以上多种标注好的三元组训练数据中的至少一种对三元组网络进行训练。通过以上方式从商品关键图像集合中选取一系列的三元组,其中若batchsize=b,则每轮迭代将会用b个三元组联合优化网络,学习特征的嵌入表达。训练完成后利用该神经网络模型能够得到图像的更具有表征性的深度特征。

根据本申请的实施例,将商品关键图像输入上述的经训练的神经网络模型后,如步骤s128中提到的:对于输入的每个商品关键图像,在所述神经网络模型的多个卷积层提取商品关键图像的深度特征。其中,对于输入的第一商品关键图像,提取该第一商品关键图像的深度特征的过程可包括:

s1281:获取所述第一商品关键图像经过所述神经网络模型的第一预定卷积层后得到的图像深度特征,作为所述第一商品关键图像的第一图像深度特征;

s1282:获取所述第一商品关键图像经过所述神经网络模型的第二预定卷积层后得到的图像深度特征,作为所述第一商品关键图像的第二图像深度特征。

可选地,对于该第一商品关键图像的第一图像深度特征以及第二图像深度特征,还可继续进行如下处理:

s1283:对所述第一商品关键图像的第一图像深度特征进行局部最大池化处理,得到第一图像深度特征的至少两个特征向量,将至少两个特征向量的均值向量作为所述第一商品关键图像的第一图像深度特征的特征向量;

s1284:对所述第一商品关键图像的第二图像深度特征进行局部最大池化处理,得到第二图像深度特征的至少两个特征向量,将至少两个特征向量的均值向量作为所述第一商品关键图像的第二图像深度特征的特征向量。

其中,所述第一商品关键图像的第一图像深度特征的特征向量属于所述第一商品关键图像的特征向量集合;所述第一商品关键图像的第二图像深度特征的特征向量属于所述第一商品关键图像的特征向量集合。

可选地,如步骤s1283中提到的:对所述第一商品关键图像的第一图像深度特征进行局部最大池化处理,得到第一图像深度特征的至少两个特征向量,可包括如下处理:

采用第一滑窗对所述第一商品关键图像的第一图像深度特征进行滑窗处理,使所述第一滑窗遍历第一图像深度特征以得到多个向量,将多个向量的均值向量作为所述第一图像深度特征在第一滑窗下的特征向量;

采用第二滑窗对所述第一商品关键图像的第一图像深度特征进行滑窗处理,使所述第二滑窗遍历第一图像深度特征以得到多个向量,将多个向量的均值向量作为所述第一图像深度特征在第二滑窗下的特征向量。

类似地,同理可对步骤s1284中提到的所述第一商品关键图像的第二图像深度特征进行局部最大池化处理,可得到第二图像深度特征的至少两个特征向量。

为了更清楚地描述上述过程,以下以选取神经网络中的n个卷积层为例,描述本申请实施例基于局部最大池化处理,获取商品关键图像的特征向量集合的过程。

选取神经网络中包含由低层级到高层级的n个卷积层,输入的商品关键图像经过其中的第l个卷积层ll后,得到大小为wl×hl×dl的特征图(featuremap),对该特征图进行局部最大池化计算,具体地,分别使用多个例如cl个不同边长的正方形窗口,对该层的特征图进行滑窗最大池化计算。图3示意性地示出了对同一特征图进行局部最大池化过程中使用多个滑窗的效果示意图,其中,灰色区域为窗口,虚线内区域为滑动的窗口位置,记号“×”表示滑窗的中心。其中,窗口每滑动一个局部位置,可得到一个dl维的向量,滑窗遍历整张特征图,可得到kl个dl维的向量,则cl个滑窗可得到共cl*kl个dl维度的特征向量;对这些向量计算均值向量,可得到该卷积层的dl维特征向量fl,对于n个卷积层,可计算得到该关键图像的特征向量集合,表示如下:

f={f1,f2,…fn}

通过上述方式,可得到本申请实施例的各个商品关键图像的特征向量集合,其中包含各个商品关键图像的图像深度特征。

基于上述实施例的描述,可知本申请实施例是基于“局部最大池化”对神经网络中各层级图像深度特征进行提取的。关于深度学习中的最大池化计算,由于神经网络的深层级中具有较强语义信息的深层级特征,因此,以往普遍通过对网络深层采用全局平均池化(globalaveragepooling)或者全局最大池化(globalmaxpooling)处理,来得到图像的高维特征。

与以往的方式不同,本申请实施例设计提供了一种基于局部最大池化(regionalmaxpooling)的计算方式,通过对神经网络中的浅层与深层特征联合提取,一方面能够在浅层特征中保存包含图像边缘、纹理、颜色等低层级信息,较于深层网络更能够体现出个体差别,例如商品的细节差异;另一方面,能够在深层特征中包含更高级别的语义信息,有助于搜索场景中对于商品类别的有效区分。

因此,本申请实施例的商品推荐方法融合了对商品图像的浅层特征提取以及深层特征提取,能够有效地提取商品图像的区域信息以及全局信息,基于此,在搜索时,特征在不同类型商品中的区分度能够得到提升,在匹配时,相同类型商品的相似度也能够得到提升。

在本申请实施例中,对于步骤s13中提到的对所述多个商品关键图像中每个商品关键图像的深度特征进行量化编码处理,可包括如下处理:

s133:基于预定的聚类算法,计算每个商品关键图像的特征向量集合中每个特征向量的多个聚类中心;

s135:对每个商品关键图像的特征向量集合中每个特征向量的多个聚类中心建立索引,得到每个商品关键图像对应的量化编码;

s137:将每个商品关键图像对应的量化编码进行级联,得到所述多个商品关键图像对应的联合量化编码。

在本申请的一种实施方式中,可在选取的每一个卷积层采用向量量化(vectorquantization)的方式对高维特征进行量化编码。举例来讲,图4示出了本申请实施例的联合量化编码的原理示意图,离线过程中,基于训练集的图像在第l层提取的高维向量特征,可使用k-means聚类算法离线训练得到第l层的码书(codebook),即聚类后的聚类中心,例如可设置为1024个聚类中心,并使用10bit编码表示1024个聚类中心的索引,其中对于一个特征层,可根据其距离最近的聚类中心,使用10bit的编码的量化向量ql表示该层特征。进一步,将选取的n个卷积层的量化编码级联,其中每个卷积层可被称为一个子空间,共可得到关键图像的n×10bit的联合量化编码,记为fq,如图4所示。

本申请实施例在离线过程中计算关键图像的量化编码,保存量化中心码书至磁盘,以便搜索时使用,能够提升前述处理中得到的特征向量的匹配效率,降低搜索消耗的内存空间。

相应地,在本申请的实施例中,对于步骤s14中提到的基于量化编码处理的结果,确定所述多个商品关键图像中每两个商品关键图像之间的相似度,可包括如下处理;

基于所述多个商品关键图像对应的联合量化编码,分别计算所述多个商品关键图像中每两个商品关键图像之间的深度特征相似度。

在一种实施方式中,可使用对称式距离相似度计算商品关键图像之间的相似度,具体地,在每个子空间内,以量化编码所对应的聚类中心之间的相似度表示原始向量的相似度,把每个子空间内的余弦相似度加和并求平均值,作为任意两张商品关键图像的距离。例如,fq1与fq2为两张商品关键图像的量化编码,其距离计算式为:

其中,similarityd为任意两张商品关键图像之间的深度特征相似度,是在第l层量化编码到其聚类中心向量的映射函数。

本申请实施例由于采用对称式距离相似度计算,仅需要计算每个子空间聚类中心之间的相似度,可省去大量的向量之间相似度的计算消耗,可提升系统整体计算速度。

利用上述方式,可计算得到多个商品关键图像中的至少一个商品关键图像与其余各商品关键图像之间的相似度,从而得到所述至少一个商品关键图像对应的相似图像列表;根据所述相似图像列表,可确定与所述至少一个商品关键图像中的商品相似的商品。例如,相似图像列表中的商品可按照相似度由大到小排序,在进行商品推荐时,可按照相似度由大到小的顺序进行推荐。

基于本申请上述实施例的向量量化处理,可加快整体特征的匹配和搜索性能,且能够保持高精度,采用量化计算可免去对原始高维特征向量的存储,而是仅需要存储码书,可大幅减少内存占用,且由于计算速度快,能够快速更新相似商品列表,为用户提供有竞争力的商品推荐服务。

在本申请的实施例中,在得到所述相似图像列表之后,确定与所述至少一个商品关键图像中的商品相似的商品之前,还可以对相似图像列表进行重排列。在本申请的不同实施方式中,可基于所述至少一个商品关键图像与其余各商品关键图像之间的颜色特征相似度和/或纵横比特征相似度,对所述相似图像列表进行重排列。

在重排列之前,需进行商品关键图像的色彩空间lab颜色特征以及图像纵横比特征的提取,此步骤计算原始图像的lab颜色特征以及纵横比,作为搜索重排列的标准。

在一种实施方式中,将原始图像从rgb色彩编码转换为lab色彩编码,其中l为亮度通道,a代表从绿色到红色维度的取值,b代表蓝色到黄色维度的取值。隔离亮度通道,分别在a和b通道提取图像的直方图特征,形成两个直方图向量fa、fb,作为该图像的颜色重排列特征,使得搜索结果经过重排列后具有亮度不变特性,同一款商品在不同亮度光线下也能够搜索到。

在一种实施方式中,纵横比特征即为图像的宽度与高度的比值,记为fr,卷积神经网络通常会将图像压缩至统一纵横比以计算网络前向推理,这会导致不同纵横比的商品(例如黑色长裤与黑色短裤)具有较相似的特征表达,本申请实施例将纵横比作为另一重排列特征,以凸显图像宽度与高度的特性。

计算重排列参数时,对返回的前m个搜索结果,例如所述相似图像列表中的前m个商品,读取离线计算的对应商品图像的lab颜色特征与纵横比特征,联合加权计算整体相似度。

两商品关键图像的lab颜色特征为fa1、fb1以及fa2、fb2,其相似度为:

其中,cor(fa1,fa2)代表两个直方图向量的相关函数,值域为[-1,1];

纵横比相似度为:

similarityr=1-abs(fr1-fr1)/max(fr1,fr1)

则总的加权相似度为:

similaritytotal=α×similarityd+β×similaritylab+γ×similarityr

其中,α、β、γ分别为深度特征、lab颜色特征与纵横比特征对应的权重,且满足α+β+γ=1,应用中,α的取值可在0.9以上,本身β与γ可根据不同数据集特性调整,根据最终相似度,对m个搜索结果重新排列,得到重排列后的相似图像列表,实现更精确的商品推荐。

利用本申请实施例的重排列技术,能够基于颜色特征和/或长宽比特征对相似图像列表进行精确排列,且由于采用了lab颜色特征进行处理,可使图像具有亮度不变性,使结果更符合人眼视觉维度上的相似。

本申请的上述至少一个实施例或实施方式适用于绝大部分商品图像,商品相似度计算覆盖率高,利用本申请的实施例能够计算得到精度较高的商品相似列表,可支持的商品类目广泛,例如箱包、服饰鞋靴、美容护肤等等,能够提供较为完善的视觉商品推荐功能。

示例性介质

在介绍了本申请示例性实施方式的方法之后,接下来,对本申请示例性实施方式的介质进行说明。

在一些可能的实施方式中,本申请的各个方面还可以实现为一种计算机可读介质,其上存储有程序,当所述程序被处理器执行时用于实现本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的商品推荐方法中的步骤。

具体地,上述处理器执行上述程序时用于实现如下步骤:

从商品关键图像集合中获取多个商品关键图像;其中,通过对商品图像进行预处理能够得到商品关键图像;

获取所述多个商品关键图像中每个商品关键图像的深度特征;

对所述多个商品关键图像中每个商品关键图像的深度特征进行量化编码处理;

基于量化编码处理的结果,确定所述多个商品关键图像中每两个商品关键图像之间的相似度;

基于所述多个商品关键图像中的至少一个商品关键图像与其余各商品关键图像之间的相似度,得到所述至少一个商品关键图像对应的相似图像列表;

根据所述相似图像列表,确定与所述至少一个商品关键图像中的商品相似的商品。

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

如图5所示,描述了根据本申请的实施方式的介质60,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序,并可以在设备上运行。然而,本申请不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

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

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

示例性装置

在介绍了本发明示例性实施方式的介质之后,接下来,参考图6对本发明示例性实施方式的装置进行说明。

如图6所示,本发明实施例的商品推荐装置可以包括:

关键图像获取模块,用于从商品关键图像集合中获取多个商品关键图像;其中,通过对商品图像进行预处理能够得到商品关键图像;

深度特征获取模块,用于获取所述多个商品关键图像中每个商品关键图像的深度特征;

量化编码处理模块,用于对所述多个商品关键图像中每个商品关键图像的深度特征进行量化编码处理;

相似度确定模块,用于基于量化编码处理的结果,确定所述多个商品关键图像中每两个商品关键图像之间的相似度;

相似图像列表处理模块,基于所述多个商品关键图像中的至少一个商品关键图像与其余各商品关键图像之间的相似度,得到所述至少一个商品关键图像对应的相似图像列表;

相似商品确定模块,用于根据所述相似图像列表,确定与所述至少一个商品关键图像中的商品相似的商品。

在一种可能的实施方式中,所述装置还包括图像预处理模块,所述图像预处理模块包括:

图像筛选子模块,用于对至少一个商品的多个商品图像进行筛选处理,以保留所述至少一个商品的平铺展示正视图和模特展示正视图。

在一种可能的实施方式中,所述图像预处理模块还包括:

主体检测子模块,用于对所述至少一个商品的平铺展示正视图和模特展示正视图进行主体检测,确定商品主体所在的区域;

裁剪处理子模块,用于对所述至少一个商品的平铺展示正视图和模特展示正视图进行裁剪处理,得到所述至少一个商品的商品主体的平铺展示正视图和模特展示正视图。

在一种可能的实施方式中,所述图像预处理模块还包括:

去重处理子模块,用于对得到的所述至少一个商品的商品主体的平铺展示正视图和模特展示正视图进行去重处理,以将重复图像和/或相似图像剔除;

所述图像预处理模块将去重处理之后得到的平铺展示正视图和模特展示正视图作为所述至少一个商品的商品关键图像。

在一种可能的实施方式中,所述图像筛选子模块包括:

经训练的图像类别分类器,用于对所述至少一个商品的多个商品图像进行分类,得到每个图像所属的类别,其中所述类别包括:平铺展示图、模特展示图、其它展示图三者中的至少一者;

经训练的图像方向分类器,用于对所述至少一个商品的平铺展示图和模特展示图进行分类,得到平铺展示图的正视图、侧视图、后视图和/或俯视图,并且得到模特展示图的正视图、侧视图、后视图和/或俯视图;

视图选择子模块,用于将平铺展示图的侧视图、后视图和俯视图剔除,并且将模特展示图的侧视图、后视图和俯视图剔除,保留平铺展示图的正视图和模特展示图的正视图。

在一种可能的实施方式中,所述装置还包括:

列表重排列模块,用于基于所述至少一个商品关键图像与其余各商品关键图像之间的颜色特征相似度和/或纵横比特征相似度,对所述相似图像列表进行重排列。

在一种可能的实施方式中,所述深度特征获取模块包括:

关键图像输入子模块,用于将所述多个商品关键图像输入经训练的神经网络模型;

深度特征提取子模块,用于对于输入的每个商品关键图像,在所述神经网络模型的多个卷积层提取商品关键图像的深度特征。

在一种可能的实施方式中,所述深度特征提取子模块包括:

第一图像深度特征获取组件,用于对于输入的第一商品关键图像,获取所述第一商品关键图像经过所述神经网络模型的第一预定卷积层后得到的图像深度特征,作为所述第一商品关键图像的第一图像深度特征;

第二图像深度特征获取组件,用于获取所述第一商品关键图像经过所述神经网络模型的第二预定卷积层后得到的图像深度特征,作为所述第一商品关键图像的第二图像深度特征。

在一种可能的实施方式中,所述装置还包括:

第一池化处理组件,用于对所述第一商品关键图像的第一图像深度特征进行局部最大池化处理,得到第一图像深度特征的至少两个特征向量,将至少两个特征向量的均值向量作为所述第一商品关键图像的第一图像深度特征的特征向量;

第二池化处理组件,用于对所述第一商品关键图像的第二图像深度特征进行局部最大池化处理,得到第二图像深度特征的至少两个特征向量,将至少两个特征向量的均值向量作为所述第一商品关键图像的第二图像深度特征的特征向量;其中,

所述第一商品关键图像的第一图像深度特征的特征向量属于所述第一商品关键图像的特征向量集合;

所述第一商品关键图像的第二图像深度特征的特征向量属于所述第一商品关键图像的特征向量集合。

在一种可能的实施方式中,所述第一池化处理组件包括:

第一滑窗处理单元,用于采用第一滑窗对所述第一商品关键图像的第一图像深度特征进行滑窗处理,使所述第一滑窗遍历第一图像深度特征以得到多个向量,将多个向量的均值向量作为所述第一图像深度特征在第一滑窗下的特征向量;

第二滑窗处理单元,用于采用第二滑窗对所述第一商品关键图像的第一图像深度特征进行滑窗处理,使所述第二滑窗遍历第一图像深度特征以得到多个向量,将多个向量的均值向量作为所述第一图像深度特征在第二滑窗下的特征向量。

在一种可能的实施方式中,所述量化编码处理模块包括:

聚类中心计算子模块,用于基于预定的聚类算法,计算每个商品关键图像的特征向量集合中每个特征向量的多个聚类中心;

量化编码处理子模块,用于对每个商品关键图像的特征向量集合中每个特征向量的多个聚类中心建立索引,得到每个商品关键图像对应的量化编码;

联合量化编码处理子模块,用于将每个商品关键图像对应的量化编码进行级联,得到所述多个商品关键图像对应的联合量化编码。

在一种可能的实施方式中,所述相似度确定模块用于基于所述多个商品关键图像对应的联合量化编码,分别计算所述多个商品关键图像中每两个商品关键图像之间的深度特征相似度。

在一种可能的实施方式中,所述装置还包括:

训练模块,用于基于三元组损失函数以及由商品图像构成的三元组训练数据,对深度残差网络进行训练,以生成所述神经网络模型。

在一种可能的实施方式中,所述三元组训练数据包括以下多种经标注的三元组训练数据中的至少一种:

{商品的平铺展示正视图,相似商品的平铺展示正视图,不相似商品的平铺展示正视图或模特展示正视图};

{商品的平铺展示正视图,相同商品的模特展示正视图,不相似商品的平铺展示正视图或模特展示正视图};

{商品的模特展示正视图,相似商品的模特展示正视图,不相似商品的平铺展示正视图或模特展示正视图};

{商品的模特展示正视图,相同商品的平铺展示正视图,不相似商品的平铺展示正视图或模特展示正视图}。

示例性计算设备

在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图7对本发明示例性实施方式的计算设备进行说明。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可统称为“电路”、“模块”或“系统”。

在一些可能的实施方式中,根据本发明实施方式的计算设备可以至少包括至少一个处理单元以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明的各种示例性实施方式的模拟接口配置方法中的步骤。

下面参照图7来描述根据本发明的这种实施方式的计算设备80。图7显示的计算设备80仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图7所示,计算设备80以通用计算设备的形式表现。计算设备80的组件可以包括但不限于:上述至少一个处理单元801、上述至少一个存储单元802,连接不同系统组件(包括处理单元801和存储单元802)的总线803。

总线803包括数据总线、控制总线和地址总线。

存储单元802可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)8021和/或高速缓存存储器8022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(rom)8023。

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

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

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

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

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

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