基于深度学习的商品图像分类方法、服务器及系统与流程

文档序号:16136748发布日期:2018-12-01 01:05阅读:1667来源:国知局

本发明属于图像识别技术领域,尤其涉及一种基于深度学习的商品图像分类方法、服务器及系统。

背景技术

物联网时代到来之后,电子商务急速发展,越来越多的人习惯于使用网络购物。网络购物带来了极大的便利,足不出户即可买遍全球,现如今主流的网络购物平台,如淘宝,京东,亚马逊等等,大多数是基于关键字的商品搜索系统。这种方式存在很大弊端:一方面,基于关键字的商品搜索系统要求商家首先对商品图像进行分类,然后添加对应的文字标注,但是,这些标注很难全面反映商品特征,同时由于商品图像数量的急剧增加,人工标注耗时耗力,大大降低了商家的工作效率。另一方面,用户根据自己的商品需求输入关键字进行搜索时带有主观性,这会大概率出现不同的用户需求却输入了相同的关键字,或者是相同的用户需求输入了不同的关键字,这两种情况都会导致网站检索出现的商品图像结果与用户期望不一致,也会大大降低用户购买期望商品的效率。如何能够提高购物网站的商品检索效率已经成为了人们广泛关注的问题,利用图像数据在网站上进行搜索可以减少检索对于文字的依赖性,是值得研究的一种解决方案。

随着电子科技的发展,通过电子信息技术能极大的弥补这些缺陷,基于商品图像内容的图像处理方式应运而生,通过这种方式,可以直观地展示出商品的信息,无需人工进行标注,简单而又高效,应用逐渐广泛。但同时,传统的基于特征的图像分类方法提取特征复杂,单一特征无法获得较好的分类准确率。

综上所述,如何解决大量商品图像的准确分类问题,尚缺乏有效的解决方案。



技术实现要素:

为了解决现有技术的不足,本发明的第一目的是提供一种基于深度学习的商品图像分类方法,其能够快速准确地对大量商品图像进行分类。

本发明的一种基于深度学习的商品图像分类方法,包括:

获取商品图像并进行标注分类,形成商品图像分类训练数据集和商品图像分类测试数据集;

采用svm算法对商品图像分类训练数据集中的商品图像进行背景分割;

将背景分割后的商品图像分类训练数据集输入至预训练完成的图像分类的卷积神经网络中,并采用迁移学习的方法对预训练完成的图像分类的卷积神经网络进行参数调整,构建出商品图像分类模型;

将商品图像分类测试数据集输入至商品图像分类模型中进行预测分类,直至商品图像分类模型输出的预测分类达到预设精度,最终训练完成商品图像分类模型;

将待分类的商品图像输入至训练完成的商品图像分类模型中,输出预测分类结果。

进一步的,采用svm算法对商品图像分类训练数据集中的商品图像进行背景分割的过程,包括:

将待分割的商品图像做前景标签和背景标签;

分别从前景标签和背景标签中若干个像素点作为训练样本,并提取相应特征;

确定svm分类器的参数和核函数,采用提取的相应特征训练svm分类器;

利用训练完成的svm分类器对待分割商品图像的像素点进行分类,实现商品图像的背景分割。

进一步的,svm分类器的核函数选择多项式核函数。

进一步的,在采用迁移学习的方法对预训练完成的图像分类的卷积神经网络进行参数调整的过程中,依据卷积核容量原则对预训练完成的图像分类的卷积神经网络进行改进。

本发明的第二目的是一种基于深度学习的商品图像分类服务器。

本发明的一种基于深度学习的商品图像分类服务器,包括:

数据集获取模块,其被配置为:获取商品图像并进行标注分类,形成商品图像分类训练数据集和商品图像分类测试数据集;

背景分割模块,其被配置为:采用svm算法对商品图像分类训练数据集中的商品图像进行背景分割;

商品图像分类模型构建模块,其被配置为:将背景分割后的商品图像分类训练数据集输入至预训练完成的图像分类的卷积神经网络中,并采用迁移学习的方法对预训练完成的图像分类的卷积神经网络进行参数调整,构建出商品图像分类模型;

商品图像分类模型测试模块,其被配置为:将商品图像分类测试数据集输入至商品图像分类模型中进行预测分类,直至商品图像分类模型输出的预测分类达到预设精度,最终训练完成商品图像分类模型;

预测分类模块,其被配置为:将待分类的商品图像输入至训练完成的商品图像分类模型中,输出预测分类结果。

进一步的,所述背景分割模块,包括:

标签设置模块,其被配置为:将待分割的商品图像做前景标签和背景标签;

特征提取模块,其被配置为:分别从前景标签和背景标签中若干个像素点作为训练样本,并提取相应特征;

svm分类器训练模块,其被配置为:确定svm分类器的参数和核函数,采用提取的相应特征训练svm分类器;

svm分类器分类模块,其被配置为:利用训练完成的svm分类器对待分割商品图像的像素点进行分类,实现商品图像的背景分割。

进一步的,在所述svm分类器训练模块中,svm分类器的核函数选择多项式核函数。

进一步的,在所述商品图像分类模型构建模块中,依据卷积核容量原则对预训练完成的图像分类的卷积神经网络进行改进。

本发明的第三目的是提供一种基于深度学习的商品图像分类系统。

本发明的一种基于深度学习的商品图像分类系统,包括上述所述的基于深度学习的商品图像分类服务器。

与现有技术相比,本发明的有益效果是:

(1)本发明采用了svm分类器对商品图像进行了背景分割,相比于传统图像分类,在对商品图像背景进行分割之后,可提高分类的准确率。

(2)本发明还对网络结构进行了预训练,预训练后的参数迁移到新的网络中作为初始化参数,将商品图像分类测试数据集输入至商品图像分类模型中进行预测分类,直至商品图像分类模型输出的预测分类达到预设精度,最终训练完成商品图像分类模型,提高了商品图像分类的准确率。

附图说明

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

图1是本发明的一种基于深度学习的商品图像分类方法流程图。

图2是空间映射示意图。

图3(a)是分割前的商品图像。

图3(b)是svm背景分割后的图像。

图4是本发明采用的预训练完成的图像分类的卷积神经网络结构示意图。

图5是卷积层示意图。

图6(a)是sigmoid函数。

图6(b)是relu激活函数。

图7是alexnet结构示意图。

图8是本发明的一种基于深度学习的商品图像分类服务器结构示意图。

具体实施方式

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

图1是本发明的一种基于深度学习的商品图像分类方法流程图。

如图1所示,本发明的一种基于深度学习的商品图像分类方法,包括:

步骤1:获取商品图像并进行标注分类,形成商品图像分类训练数据集和商品图像分类测试数据集。

具体地,本实施例的数据集来自于目前使用比较广泛的淘宝天猫、京东、亚马逊等各大购物网站,共包含10类商品,其中部分图像具有背景,图像大小为256*256,图像格式为.jpg。

步骤2:采用svm算法对商品图像分类训练数据集中的商品图像进行背景分割。

本实施例的商品图像背景的分割采用的是svm算法,实验平台是基于matlab2016a下的libsvm。

svm算法具备优良的泛化能力和识别能力,在图像背景分割方面,具有良好的效果。svm是通过某种事先选择的非线性映射将输入变量映射到一个高维特征空间,在这个空间中构造最优分类超平面。使用svm进行数据集分类工作的过程首先是同预先选定的一些非线性映射将输入空间映射到高维特征空间如图2所示,通过映射到高维特征空间,把平面上本身不容易分割出的非线性数据分了开来。

这种非线性映射是通过核函数来实现的,常用的核函数包括多项式核函数、高斯核(rbf核)函数和线性核函数。

核函数的价值在于它虽然是将特征进行从低维到高维的转换,但核函数事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就避免了直接在高维空间中进行复杂的计算。

其中,采用svm算法对商品图像分类训练数据集中的商品图像进行背景分割的过程,包括:

步骤2.1:将待分割的商品图像做前景标签和背景标签;

步骤2.2:分别从前景标签和背景标签中若干个像素点作为训练样本,并提取相应特征;

步骤2.3:确定svm分类器的参数和核函数,采用提取的相应特征训练svm分类器;

步骤2.4:利用训练完成的svm分类器对待分割商品图像的像素点进行分类,实现商品图像的背景分割。

其中,svm分类器的核函数选择多项式核函数。

当输入图像为数据集中带有背景的商品图像,在svm算法设置中,待分割图像的背景标记为0,前景标记为1,前景和背景各选取了20个点作为训练样本,在像素点选取时使用了ginput函数帮助取点。核函数选择了多项式核函数,degree设置为-1。实验结果如图3(a)和图3(b)所示,图3(a)是分割前的商品图像,图3(b)是svm背景分割后的图像。从实验结果中可以看出,svm算法很好的将图像的背景进行了分割,且轮廓信息保存良好。

步骤3:将背景分割后的商品图像分类训练数据集输入至预训练完成的图像分类的卷积神经网络中,并采用迁移学习的方法对预训练完成的图像分类的卷积神经网络进行参数调整,构建出商品图像分类模型。

本发明采用了基于模型的迁移学习,同时为了防止出现负迁移,本方法所使用的预训练的数据集和商品图像具有足够的关联性,因此可以进行相关的迁移学习。

具体地,本发明采用的预训练完成的图像分类的卷积神经网络,如图4所示,由卷积层,池化层,全连接层组成。

卷积层:在图像处理的应用中,卷积层的作用是提取图像特征。卷积层含有很多卷积核,每一个卷积核对图像卷积会获得一种特征。

如图5所示,黑色方格为卷积核,在此假设步长设为1,卷积操作表示为每次向右移动一个像素,然后依次序再下移一个像素。在单元格中标注数字来表示每个卷积核的权重,比如红色的有4个权重。卷积过程即卷积核移动过程中把图片像素和卷积核对应的权重进行权重相乘,最后相加得到一个输出。运用这种方法,通过卷积层的不断卷积,图像所包含的特征即被提取出来。

池化层:池化层也就是下采样层,其主要作用是对特征图进行一个降维操作,以有效减少后续神经网络层需要的参数,同时大大减少了计算量。池化有平均池化和最大池化等,其主要特性有:不变性,包括旋转不变,尺度不变等等,这能够将关注点放在图像特征本身而非图像特征所存在的位置上;输出定长,即通过池化过层之后,特征图的大小会减小为原特征图的一半;在保留主要特征的同时能够减少网络参数,减少计算量同时防止了过拟合,大大提升了网络的泛化能力。

全连接层:全连接层的作用是在最后将卷积层最终输出的二维特征转换为一维的向量。全连接的核心操作就是矩阵向量乘积由一个特征空间到另一个特征空间的线性变换,每个连接点都和前一层的所有连接点连接,作用是综合前面过程提取到的特征。

采用x表示全连接层中神经元的输入,a表示神经元的输出,b为偏置,其中,各个下标分别表示第i个相应参数(i=1,2,3)。

wij表示第i个神经元与第j个神经元之间的连接权重(i=1,2,3;j=1,2,3)。

全连接层的矩阵表示形式为:

激活函数:在神经网络中,每一个神经元所接收到的信号都是前一个神经元的线性函数,因此,为了避免线性的重合,可以使用激活函数为每个神经元引入非线性因素。这是由于线性模型并不具备完全的表达力,所以引入了激活函数。卷积神经网络常用的激活函数有relu函数和sigmoid函数。其中sigmoid函数的表达式为:

其中,x表示全连接层中神经元的输入。

如图6(a)所示,sigmoid函数在中心区域有一个大的信号增益,两侧具有较小信号增益,它对信号的特征空间图有很好的效果,但同时也存在一定的局限性:一、远离原点时函数梯度趋近于0,会导致训练过程出现梯度消失;二、函数输出不以原点为中心的,降低了权重更新效率;三、引入大量的指数运算,增加计算量,降低运算速度。

relu函数的表达式为:

f(x)=max(0,x)

其中,x表示全连接层中神经元的输入。

relu已经被证明其相比于传统的激活函数能够有效抑制梯度消失,同时还具有更快的收敛速度,因此relu激活函数的应用相对来说更为广泛。其图像如图6(b)所示。

dropout:为针对网络训练过程种所出现的过拟合现象而提出dropout,dropout可理解为是在神经网络的训练过程中,随机的丢弃一些单元以便简化网络的过程。经过dropout操作后神经网络随机丢弃了一部分的连接信息。当把dropout的数值设置为0.5时具有最好的效果,原因是数值设为0.5时dropout可以生成最多的网络结构。dropout随机选择忽略隐层节点,由于每次随机忽略都不相同,这就导致每次训练的网络都不一样,也因此完全可以将每次的训练过程看作是建立一个“新”的模型。

caffe框架:随着深度学习热潮的兴起,深度学习框架不断涌现,为深度学习网络的实现提供了极大的便利,为设计者搭建了基础的功能实现,节省了大量时间。其中caffe深度学习框架是一个高效、清晰的深度学习框架,它具有模块化,测试覆盖等特点,且同时提供python和matlab两种接口,并能够通过函数调用实现cpu和gpu之间的切换,以便于正确占用内存。caffe遵循神经网络的假设,即所有的计算都是以层的形式表示的,每一层的功能就是获取一些数据,然后输出计算后的结果。其中每一个层都做两个计算:前向传播是从输入计算输出,反向传播是从上面给的梯度来计算相对于输入的梯度,这两个计算实现之后,就使得很多层连接而形成一个网络,如此,整个网络就是输入数据(图像),然后来计算需要的输出(标签)。在训练的时候,可以根据已有的标签来计算损失函数和梯度,然后用梯度来反向传播,修正网络的参数,这就是caffe的基本流程。

sift和hog特征:sift特征即尺度不变特征变换,是在图像中检测出关键点,是一种局部特征描述子,具有尺度不变性;方向梯度直方图(hog)用来描述图像的局部纹理特征。hog特征提取的优势在于它涵盖了丰富的纹理信息,同时引入了幅值这一物理量,因此能够使旋转和平移具有不变性。但是在对噪声点的特征提取上比较敏感,并且容易受到外部环境的影响。

为了方便参数的迁移,本发明的网络结构修改自alexnet,如图7所示。

其中,alexnet是hinton小组在isvrc2012中使用的神经网络模型。网络结构的不同之处在于最后一层的标签层由1000类修改为了10类。网络的输入为256*256的彩色rgb图像,数据层会将图像的统一大小裁剪为227*227方便卷积操作。网络中的卷积核大小分别为11*11、5*5和3*3,池化方式为最大池化,dropout设置为0.5。经卷积操作后会生成大小不一的特征图,各层特征图的大小分别是55*55、27*27、27*27、13*13、13*13、13*13和6*6,特征图的个数分别为96、96、256、256、384、384、256和256。全连接层的参数设置为4096,最后一层的分类预测使用softmax分类器。

具体地,在采用迁移学习的方法对预训练完成的图像分类的卷积神经网络进行参数调整的过程中,依据卷积核容量原则对预训练完成的图像分类的卷积神经网络进行改进。

卷积核的作用是提取图像特征来探知图像结构,卷积核容量是一个用来衡量卷积核探知图像结构的能力的标尺。如果卷积核容量小,就意味着图像中只能有局部特征映射到下一层,但如果卷积核容量大,就意味着可以有更多的特征映射到下一层网络,当卷积核容量的值大于1/6时,卷积核有很好的探测能力。

卷积核容量的计算公式为:

如果卷积核的大小为n×n,经过一次3*3的最大池化操作,那么这个卷积核的真实卷积核大小就为3n×3n,如果经过,m次3*3的最大池化,那么卷积核的真实大小就为3mn×3mn。

感受野是卷积神经网络中的一个重要的概念,它表示着输入空间中一个特定卷积神经网路特征的范围区域。一般一个感受野的大小可以用区域里的特征大小和中心位置进行描述。在神经网络的卷积的操作中:当前的感受野的大小为r,相邻特征间的距离为j,卷积核尺寸为p,填充为p,步长为s。

那么输出特征的大小nout与输入特征大小nin的关系可表示为:

输出特征图间的距离jout和输入特征图间的距离jin的关系为:

jout=jin*s

输出的感受野rout与输入的感受rin野的关系为:

rout=rin+(k-1)*jin

根据上述计算关系求得本设计的网络结构各卷积层的感受野大小和卷积核容量,改进后的网络的卷积核容量普遍高于alexnet,也就是说改进后网络的卷积核有更强的特征提取能力,这也是改进后网络获得较好分类效果的一个重要原因。

步骤4:将商品图像分类测试数据集输入至商品图像分类模型中进行预测分类,直至商品图像分类模型输出的预测分类达到预设精度,最终训练完成商品图像分类模型。

步骤5:将待分类的商品图像输入至训练完成的商品图像分类模型中,输出预测分类结果。

实验环境:

实验所用计算机的相关硬件配置为:intel(r)xeon(r)cpue5-2620@2.10ghz×15,物理内存为:16.00gb。gpu为两块navidiatitanx,1.53ghz主频,12gbgddr5x显存,120亿的晶体管数量,3584个cuda核心。实验操作系统为ubuntu14.04,实验操作平台为基于c++的深度学习框架caffe,配置接口为python接口。

图8是本发明的一种基于深度学习的商品图像分类服务器结构示意图。

如图8所示,本发明的一种基于深度学习的商品图像分类服务器,包括:

(1)数据集获取模块,其被配置为:获取商品图像并进行标注分类,形成商品图像分类训练数据集和商品图像分类测试数据集;

(2)背景分割模块,其被配置为:采用svm算法对商品图像分类训练数据集中的商品图像进行背景分割;

具体地,所述背景分割模块,包括:

标签设置模块,其被配置为:将待分割的商品图像做前景标签和背景标签;

特征提取模块,其被配置为:分别从前景标签和背景标签中若干个像素点作为训练样本,并提取相应特征;

svm分类器训练模块,其被配置为:确定svm分类器的参数和核函数,采用提取的相应特征训练svm分类器;

svm分类器分类模块,其被配置为:利用训练完成的svm分类器对待分割商品图像的像素点进行分类,实现商品图像的背景分割。

具体地,在所述svm分类器训练模块中,svm分类器的核函数选择多项式核函数。

(3)商品图像分类模型构建模块,其被配置为:将背景分割后的商品图像分类训练数据集输入至预训练完成的图像分类的卷积神经网络中,并采用迁移学习的方法对预训练完成的图像分类的卷积神经网络进行参数调整,构建出商品图像分类模型;

具体地,在所述商品图像分类模型构建模块中,依据卷积核容量原则对预训练完成的图像分类的卷积神经网络进行改进。

(4)商品图像分类模型测试模块,其被配置为:将商品图像分类测试数据集输入至商品图像分类模型中进行预测分类,直至商品图像分类模型输出的预测分类达到预设精度,最终训练完成商品图像分类模型;

(5)预测分类模块,其被配置为:将待分类的商品图像输入至训练完成的商品图像分类模型中,输出预测分类结果。

本发明还提供了一种基于深度学习的商品图像分类系统。

本发明的一种基于深度学习的商品图像分类系统,包括如图8所示的基于深度学习的商品图像分类服务器。

本发明采用了svm分类器对商品图像进行了背景分割,相比于传统图像分类,在对商品图像背景进行分割之后,可提高分类的准确率。

本发明还对网络结构进行了预训练,预训练后的参数迁移到新的网络中作为初始化参数,将商品图像分类测试数据集输入至商品图像分类模型中进行预测分类,直至商品图像分类模型输出的预测分类达到预设精度,最终训练完成商品图像分类模型,提高了商品图像分类的准确率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

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