基于迁移学习的服装图像分类模型研究

2020-09-09 03:13谢小红陆建波李文韬刘春霞黄华梅
计算机应用与软件 2020年9期
关键词:准确率神经网络服装

谢小红 陆建波 李文韬 刘春霞 黄华梅

(南宁师范大学计算机与信息工程学院 广西 南宁 530299)

0 引 言

随着互联网服装电子商务迅猛发展,人们对服装图像识别分类技术的要求不断提高。但由于服装图像包含的细粒度分类[1]多,视觉变化大,如形变、光照、拍摄视角、背景影响、镜头缩放尺度等,使得人工设计特征越来越难以满足实际分类的需求。传统的服装图像分类方法是基于文本的,即依据图像给予的文本描述进行分类。随着服装图像数据量的增加,需要对大量图片进行人工标注,由于每个人看待图像的角度不同,则做的图像标注也会不同,会对服装图像分类的精度造成一定的影响[2]。

近年来,深度学习(Deep Learning,DL)[3]已成为当前机器学习领域中的重要发展方向。使用卷积神经网络CNN[4-5]去解决图像分类中的问题渐成主流。越来越多的研究者们把深度学习与服装分类结合,取得了不错的效果。Liu等[6]收集了一个大规模且语义标注更全面的服装数据集DeepFashion,提出了FashionNet,对服装的类别、属性、ID以及关键点做监督进行服装特征学习。Wang等[7]采用标注感知注意力和分类驱动注意力并引入双向卷积递归神经网络(BCRNNs)来建模,使网络可以进行端到端的训练,实现了最先进的时尚图像分类和地标检测性能。Ge等[8]提出了一种基于掩码R-CNN的新型匹配R-CNN框架以端到端的方式解决了服装检测、姿态估计、分割和检索等问题。Krizhevsky等[9]提出的AlexNet在2012 ImageNet LSVRC比赛中,获得深度神经网络模型的分类效果第一。GoogLeNet[10]、VGGNet[11]、ResNet[12]等深度卷积神经网络模型不断涌现,越来越多的学者将这些模型用于具体的图像识别任务中。

传统的CNN模型在处理图像分类时存在如下问题:CNN模型需要数百万个参数来达到训练效果,需要大量时间训练,训练时也需要使用大量的标记样本,在训练样本数足够多、网络结构比较复杂的情况下,才能达到较优异的性能[13]。深度分类网络在ImageNet数据集上表现优异,但在少量的数据上训练复杂的分类网络时,可能出现过拟合和陷入局部最优解等现象[9]。

在训练样本缺失情况下,为了提高整体识别性能,迁移学习的加入可以很好地解决训练样本缺失带来的上述问题。本文提出一种基于迁移学习的卷积神经网络服装图像分类方法,该方法有如下特点:

(1) 预训练模型在ImageNet数据集上得到有效训练,不断调整超参数,使模型能提取到关于图像的边缘、纹理等基本特征,使预训练模型中的底层特征有着通用性。

(2) 一定量的服装数据集可以再次对模型超参数进行微调,模型的语义层面参数得到充分训练和调整,提取到的目标特征具有区分性。

(3) 迁移模型鲁棒性和泛化能力相比更强,网络的识别精度有效提升以及收敛速度快。

本文选取经典的VGG16、VGG19、Inception_v3、Xception、ResNet50和MnasNet六种深度分类网络做初始化模型和迁移模型的实验对比。实验表明,本文方法能明显提高服装图像的识别精度,具有较好的泛化能力和鲁棒性。

1 迁移学习的网络结构训练

1.1 迁移学习

迁移学习[14]是指将模型通过源域学习的迁移运用到目标域中,即将以往的知识迁移到另一个新的领域中。迁移学习有四种常见类别:基于样本迁移、基于特征迁移、基于模型迁移以及基于关系迁移。近几年,迁移学习对相关任务的研究已经受到了越来越多的关注。Thrun[15]是第一次讨论以前学到的知识在泛化中所起的作用,尤其是在训练数据缺乏的情况下。Yosinsk等[16]通过对其他数据集采用不同的微调策略,对预先从ImageNet数据集中学习到的特征的可移植性进行了广泛的研究,发现当基本任务与目标任务之间的距离增大时,特征的可移植性降低。Wu等[17]结合了CNN和迁移用于花卉识别中,取得了很好的分类效果。本文在处理超参数调优以及对预先训练好的网络进行微调方面进行了研究与探索。

下面给出一些迁移学习中术语的定义。

定义1领域(Domains)。一个领域可以表示为:

D={X,P(x)}

(1)

式中:X表示特征空间;P(x)表示x={x1,x2,…,xn}∈X,xi∈Rd,i=1,2,…,n的边缘分布,xi表示第i幅图的特征,Rd表示领域的特征集。

定义2任务(Task)。给定某一个具体的领域D={X,P(x)},一个任务可以表示为:

T={Y,f(·)}

(2)

根据迁移学习的定义,在源域中对目标域任务的完成存在有用的知识均可将其迁移至目标域中。若迁移的知识来自源域或目标域中的多个相关任务,则属于多任务的范畴。迁移学习并不是在任何时候都能使用,当源域和目标域任务差异较大,进行迁移学习一般会导致负迁移的发生[18]。例如,将源领域中完成花卉识别任务时学到的知识迁移给目标领域中的服装识别任务效果是不好的。因此只有具有共性的知识迁移到目标领域才能更好地发挥其作用。

1.2 网络训练方法

在卷积神经网络中,当训练样本不够充分时,通常识别效果不够理想,而重新建立模型会很费时,这时可以考虑使用迁移学习来改善识别效果。在图像分类识别中,迁移学习不仅可以学习非目标数据集的颜色、纹理等底层特征,还可以学习目标数据集的高级特征,有望提高模型的分类性能。为了验证迁移学习的效果,本文提出基于迁移学习的卷积神经网络服装图像分类方法,描述如算法1所示,流程如图1所示。

算法1卷积神经网络迁移学习训练方法

输入:ImageNet图像数据I,DeepFashion服装图像数据D,迭代次数Epoch1和Epoch2,模型M,训练精度阈值A1、A2,训练损失阈值L1、L2。

1. 选择深层模型M

2. 模型F初始化参数w1

3. X1=g(I)

//对ImageNet图像数据I进行预处理

4. epoch=1

5. While epoch≤Epoch1 do

6. if A≤A1and L≥L1then

//训练得到的精度和损失与设定的阈值比较

//更新模型参数

8. break

9. else

10. train M(I;w1)

11. epoch=epoch+1

12. End

//输出预训练模型和参数

14. X2=g(D)

//对DeepFashion服装图像数据D进行预处理

16. epoch=1

17. While epoch≤Epoch2 do

18. if A′≤A1and L′≥L2then

//更新模型参数

20. break

21. else

23. epoch=epoch+1

24. End

//输出迁移模型和参数

图1 基于CNN模型的迁移学习流程图

本文选取六种经典深度分类网络模型,首先在包含120多万幅自然图像和1 000多个不同类别的ImageNet数据集上对模型进行预训练,然后将模型参数迁移到DeepFashion数据集中进行微调训练。

迁移方法采用预训练和迁移训练两种方法相结合的方式。

1) 预训练。预训练过程与随机初始化训练过程基本类似。在参数随机初始化后,通过网络训练迭代和优化模型中参数,使得模型精度提升及损失函数下降到某个设定的阈值,即模型达到收敛后输出预训练模型。

2) 迁移训练方法。将训练好的模型进行参数迁移,再通过目标数据集来微调网络和优化参数,使得模型能很好地适应目标任务。对于本文的服装图像分类任务,深度网络的迁移训练方法步骤如下:

(1) 训练数据集准备。将ImageNet数据集直接放入到本文选用的模型中,而目标数据集DeepFashion输入到训练好的模型中。

(2) 选择模型。深度网络迁移训练方法选择经典卷积神经网络VGG16、VGG19、Inception_v3、Xception、ResNet50和MnasNet,最后对比六种迁移模型的识别性能的优劣。

(3) 设计网络结构。根据迁移所选择的网络特征,将最终的预测类别调整为实验所需要的类别数目;根据模型使用Dropout技术、冻结层数等对迁移训练模型进行精调。

(4) 参数优化。将预训练模型参数迁移到设计的网络结构中,进一步优化网络参数,能充分训练模型和有效地观察模型的性能。

2 数据集介绍

本文使用的服装图像来自香港中文大学多媒体实验室提供的多类别大型服装数据集DeepFashion[6],这些图像大部分来自购物网站,其余部分来源于博客、论坛和其他用户的生成。DeepFashion包含了28万幅图片,其服装图片全部由人工标注,每幅图像都有1个类别标注,1 000个属性标注,Bbox边框。这是迄今为止最大、最全面的服装数据集。由于DeepFashion数据集过于庞大,本文仅从中抽取2 533幅服装图片,8个服装类型(Dress,Jeans,Tank,shots,Tee,Jecket,Hoodie,Coat)进行实验。其中80%作为训练集,20%作为验证集,两者没有数据之间的交集,训练集用于模型训练和学习以及参数的调整。在训练中使用验证集对模型进行测试、优化,对模型参数进行微调。数据集中部分图像如图2所示,数据集中呈现了服装的风格、款式、材质的多样化。服装的褶皱、遮光、侧拍等因素,在很大程度上增加了服装图像分类的困难。

图2 DeepFashion数据集部分数据图

3 实 验

3.1 实验环境

本文实验环境:Ubuntu操作系统,Intel i7-7700处理器,1 TB固态硬盘,32 GB内存,NVIDIA GTX1080Ti GPU,采用TensorFlow平台进行训练;实验结果中的准确率曲线采用Python中的matplotlib可视化得到。

3.2 实验设置

利用在ImageNet上训练完成的VGG16和VGG19模型的权值来进行训练,将获取到特征向量进行一维化,再将模型的全连接层替换成Softmax分类器,最后用修改后的模型对服装图像数据集进行训练。其中模型学习率为0.000 1,迭代次数为300次,批尺寸(Batch_size)为32,Dropout为0.6。

利用在ImageNet上训练好的Inception_v3模型来训练服装图像数据集,输入的图片尺寸为(224,224,3),获取特征向量后对其进行全局最大池化和全局平均池化,将该模型瓶颈层的输出作为提取的特征,然后把这些特征输入到Softmax分类器中获得分类结果。其中,模型的学习率为0.000 1,迭代次数为300,批尺寸为32,Dropout为0.5。

利用ImageNet上训练好的ResNet50模型来训练服装图像数据集,获取特征向量后对其进行了全局平均池化,然后将特征向量输入到Softmax分类器中获得分类结果。其中,模型的学习率为0.001,迭代次数为300,批尺寸为32,Dropout为0.5。NASNetMobile和Xception的实验设置与ResNet50模型相类似。

3.3 实验结果与分析

表1显示了VGG16、VGG19、Inception_v3、Xception、ResNet50和MnasNet六种图像分类网络模型在相同数据集上评价指标的比较。图3-图5分别展示了六种模型的初始化训练和迁移训练方法在同一数据集上准确率的比较。

(a) VGG16

(b) VGG19图3 VGG16和VGG19初始化模型与迁移模型验证集准确率比较

(a) Inception_v3

(b) Xception图4 Inception_v3和Xception初始化模型与迁移模型验证集准确率比较

(a) ResNet50

(b) MnasNet图5 ResNet50和MnasNet初始化模型和迁移模型验证集准确率比较

图3(a)为VGG16迁移学习模型与初始化模型的对比,VGG16迁移模型在验证集迭代40次左右开始收敛且波动相对平稳,初始化模型则需要迭代100次左右才收敛且波动较大。原因是VGG16迁移模型冻结了部分层数,需要训练的参数比较少且适合该模型分类,而VGG16初始化模型则需要从随机参数进行训练。图3(b)为VGG19迁移模型与VGG19的初始化模型的比较,两个模型的收敛速度与图3(a)相似,但波动相对平稳。

图4(a)为Inception_v3迁移学习模型与初始化模型的对比,Inception_v3迁移模型在迭代35次左右就开始收敛且较图3的两个模型相对平稳,而初始化模型则需要迭代到125次左右才收敛且波动较大。图4(b)为Xception迁移模型与初始化模型的比较,Xception迁移模型验证集在迭代20次达到收敛。因为Xception是Inception_v3的优化网络轻量化模型,在同等参数量的情况下网络效率比Inception_v3高,所以收敛速度快。

图5(a)为ResNet50迁移模型与初始化模型的对比,由于初始化模型本身的网络结构复杂,需要训练的参数多,所以它的初始化模型准确率较低收敛速度也比较慢,且波动大。在ResNet50迁移模型迭代50次之后趋于收敛,虽然不比VGG16、VGG19模型收敛速度快,但是到达收敛点后波动不大。图5(b)为MnasNet迁移模型与初始化模型的比较,MnasNet迁移模型在训练50代左右开始收敛,而MnasNet初始化模型比前面的初始化模型的收敛速度要慢很多,需要迭代230次后才慢慢收敛。

由表1可知,六种神经网络使用迁移学习方法训练后,分类效果明显优于随机初始化网络模型。由图3-图5可以看出,初始化模型的准确率均低于迁移模型,且模型收敛速度非常慢。六种迁移学习模型中,Inception_v3迁移模型和Xception迁移模型的收敛速度较快,收敛后相对平稳,且Inception_v3迁移模型和Xception迁移模型网络损失均小于其他迁移模型。可以看出,神经网络模型迁移学习后具有更好的鲁棒性和较强的泛化能力。而随机初始化网络模型有可能陷入局部最优的问题,所以鲁棒性和泛化能力相对较差。初始网络模型受其自身的深层结构和较大的训练参数的影响,网络训练速度慢,容易出现局部最优和过拟合情况。对迁移模型的特定网络层权重参数进行冻结,以及充分训练和调整模型的语义层参数,使模型提取的目标特征更加清晰。

如表2所示,迁移模型的识别精度都高于初始化模型,这证明了迁移学习方法用在DeepFashion服装数据集上是有效的。由于传统的深度分类模型需要大量的训练数据才能获得较为理想的实验效果,而本文数据集的数据量少,因此模型的准确率低,还会出现梯度消失和过拟合等问题。初始化模型的收敛速度远慢于迁移模型,且每次迭代所需时间稍长,原因是初始化模型没有冻结前层网络参数,所有的网络参数需要重新训练。迁移学习方法在时间和准确率上都优于随机初始化模型方法,说明模型先在大数据集上做预训练,再将训练好的模型放到数据量少的目标领域上进行微调,节省了大量时间,而且能够达到更高的分类精度。迁移模型也证明了在小样本数据集中利用迁移学习的方法是可行的。

表2 各种方法分类性能对比

4 结 语

本文采用基于迁移学习的服装图像识别分类模型,在DeepFashion部分数据集上,将神经网络模型与迁移学习方法相结合,VGG16和Inception_v3的验证集准确率分别达到94.80%和93.91%,其收敛速度较快,训练集与验证集之间未出现过拟合现象。实验结果表明,用迁移后的神经网络模型进行训练,收敛速度快,鲁棒性和泛化能力都优于随机初始化模型。本文方法在DeepFashion服装数据集上可以有效地对服装图像进行分类,在识别精度和时效性上取得了显著的提高。

猜你喜欢
准确率神经网络服装
基于递归模糊神经网络的风电平滑控制策略
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
神经网络抑制无线通信干扰探究
道具服装
基于神经网络的中小学生情感分析
基于Q-Learning算法和神经网络的飞艇控制
现在可以入手的mina风高性价比服装