当前位置:首页 期刊杂志

基于深度学习的服装三要素识别

时间:2024-07-28

韩曙光,姜凯文,赵丽妍

(1.浙江理工大学 理学院,浙江 杭州 310018;2.浙江理工大学 服装学院,浙江 杭州 310018;3.浙江理工大学 国际教育学院,浙江 杭州 310018)

随着人工智能技术的快速发展与手机等拍摄设备的逐步普及,服装行业正向着数字化方向推进。如何自动且准确地获取服装流行信息已是各大服装电商关注的重点,其中服装图像因其包含的流行信息全面、明确且方便获取,成为服装信息数据挖掘的重点。传统服装三要素为款式、颜色与面料[1]。面料是图案的载体,图案是体现面料特征的一种设计,也是反映服装流行趋势的重要艺术形式。因此,从服装图像中获取款式、颜色、图案三要素是分析顾客偏好的首要条件。

要实现服装信息的自动获取,需对服装图像进行识别。传统的服装图像识别主要从设计有效的特征描述算子入手,如边缘检测、图像轮廓提取等,然后通过各种分类器进行识别。庹武等[2]采用傅里叶描述子进行特征提取,利用BP神经网络对服装款式分类和识别;QIAN S Q等[3]利用Canny算子提取服装轮廓,结合3层BP神经网络识别服装风格;李东等[4-5]采用服装轮廓曲线的曲率极值点集和傅里叶描述子提取服装轮廓特征,并结合支持向量机对服装款式进行分类。上述研究从不同角度对服装图像识别进行了探索,但采取的方法存在一定局限性:①需要事先设计特征描述算子,模型泛化能力较为有限;②对多变场景的适应性不强,服装图像背景复杂多变,导致识别准确率下降。

近年来,深度学习的逐步兴起为特征提取与图像识别分类提供了新的研究思路[6],它可以规避传统方法设计特征描述算子的不足,从图像中自适应提取特征信息。基于深度学习的服装图像研究主要包括分类模型与目标检测模型。分类模型由两个模块组成:①利用卷积神经网络进行特征提取;②用全连接层进行分类。KIAPOUR M H等[7]利用卷积神经网络对服装图像的特征进行提取,以消除图像背景的影响,提升跨场景下服装图像检索的效果;尹光灿等[8]针对服装领型特征识别困难、分类效果不理想等问题,提出了一种基于AlexNet卷积神经网络的服装领型识别与分类方法。目标检测模型是在分类模型基础上完成的,其实现过程主要有两个步骤:①目标分类;②目标定位[9]。经典的目标检测算法有Faster R-CNN[10]、YOLO系列[11]、SSD[12]等,其中YOLO系列在视频帧的动态检测上有很大的优势[13]。刘正东等[14]基于尺寸分割和负样本增强技术,提出了一种西装识别检测算法DN-SSD;张艳清等[15]使用Faster R-CNN对连衣裙衣领进行识别与定位。以上学者已对服装图像单一属性(如款式、颜色等)的识别进行了较为深入的研究,而服装的特征要素复杂多样,只研究款式与颜色无法完整描述服装信息,应加强局部细节特征的识别,如服装图案的识别。图案即图形的设计方案,图案的大小、分布位置、数量都是多变的,所以不仅需要对其进行识别,还需完成图案的定位,这就要借助目标检测技术。因此,文中从上衣的款式、颜色、图案3个特征要素进行研究,构建基于深度学习的分类与目标检测模型,进行服装三要素的自动识别。

1 数据准备

1.1 数据采集

文中研究对象为青少年与青年常穿上衣的款式、颜色和图案,所需图片数据为互联网上采集并制作的相应数据集。参考各大电商平台对上衣款式的划分,考虑服装实用性,选取T恤、衬衫、连帽卫衣3种常见的上衣款式(见图1)。图1中,3种款式整体廓形相似,不同之处在于衣领与帽子,识别上属于服装的细粒度识别,具有较为显著的类间相似性[16]。

图1 3种上衣正面款式Fig.1 Front styles of three kinds of tops

选取6种颜色:无彩色系中的黑、白、灰与彩色系中的美术三原色红、黄、蓝。运用爬虫程序以文本检索的方式从百度、淘宝等网站获取相应服装款式与颜色的图片,筛选并剔除无关图片,最终得到服装款式与颜色的样本数据。每种服装款式的每种颜色挑选400张图片,组成7 200张图片的数据集。

选取纹理类、文字类、动物类3大类图案,每大类下设2小类,共6种,具体如图2所示。

图2 各种图案类型示例Fig.2 Examples of various pattern types

纹理类图案选取格子与波点,此类图案有较强的规律性且遍布于整件服装;文字类图案选取中文与英文,此类图案变化较大,字符、字体种类多;动物类图案选取猫类与狗类,猫狗作为常见的动物频繁出现在服装图案中,其表现形式分为卡通与真实两类。上述图案均为上衣款服装的常见图案,每大类图案在分布位置、变化方式等方面都有自身的特点。每类图案选取500张图片作为样本,组成共3 000张图片的数据集。

1.2 数据处理与标注

服装款式与颜色的图像采集完毕后,需进行相应的裁剪处理,只保留上衣部分,以提高识别效果;穿着于身和有背景的上装图像会给予保留,目的是提高模型在多场景识别中的适应性。不同服装的款式、颜色和图案具有不同性质,处理不同性质的特征要素需采取不同的标注方式。服装的款式与颜色是服装的基底,属于服装的整体性特征,在识别这类特征时需要对图像进行整体标注,即同种类别放入同一标签文件。服装图案属于服装的细节特征,因此需使用Labelimg软件进行标注,即将服装图像打上图2中的6种标签,标注获得图案的类别信息、位置信息以及大小信息。

2 识别模型构建

为了更准确地识别服装三要素,根据其相应的特点,分别构建分类模型与目标检测模型。使用卷积神经网络(convolutional neural networks, CNN)中的VGGNet进行服装款式与颜色的识别;使用目标检测模型进行服装图案的识别。具体识别步骤如图3所示。

图3 识别步骤Fig.3 Identify steps

2.1 CNN模型构建

2.1.1VGGNet模型构建 VGGNet是经典的卷积神经网络,一般由输入层、隐藏层、输出层组成,隐藏层包含卷积层、池化层和全连接层,其中VGG16由13个卷积层、5个池化层、3个全连接层组成[17]。图4为 VGGNet识别服装款式与颜色的流程。VGG16从结构上看是一个较深的网络,使用VGG16对服装图像中的款式、颜色进行识别可提取出图像的细节特征,具体流程如图4(a)所示。文中研究的3种上衣款式的整体廓形比较简单,重点需识别领部的变化与帽子的有无。早前已有学者运用较浅网络对Fashion-MNIST数据集进行训练与识别的研究[18],因此运用深度学习方法实现服装款式的识别并不困难。文中提出一种更轻量化的网络——改进的VGGNet进行服装款式与颜色的识别,用以均衡训练时间,提高识别的准确率。

改进的VGGNet保留了VGG的整体框架,卷积核采用像素3×3的网格,与VGG16在卷积层的设置方面存在差异,具体流程如图4(b)所示。

图4 VGG16与改进的VGGNet识别服装款式与颜色流程Fig.4 Clothing style and color identify process of VGG16 and improved VGGNet

2.1.2款式与颜色识别评价指标 参考深度学习相关评价指标[19],结合款式与颜色的多标签识别研究特点,引入3个评价指标:准确率、损失、训练时间。准确率计算公式为

(1)

式中:TP为被正确划分成正例的个数;TN为被正确划分成负例的个数;N为测试样本数。

多标签分类有两个特点:①类别标签的数量是不确定的;②类别标签之间可能存在相互依赖关系。由于文中使用多标签分类,就需要选用Binary_Crossentropy损失函数。损失函数计算公式为

(2)

2.2 目标检测模型构建

目标检测算法可同时完成识别与定位工作。服装领域的研究围绕款式特征[14]展开,并逐步延伸到长度特征[20]、局部细节特征[15]。图案属于服装的细节特征,需实现识别与定位。目前较为成熟的目标检测技术有YOLO系列模型、Faster R-CNN模型和SSD模型。文中构建了这3种图案检测模型,并进行对比实验,以找出一种在图案识别定位上表现更佳的模型,用于获取服装图案信息。

2.2.1构建YOLOv3模型 YOLOv3算法的特征提取网络通常为Darknet-53,可对3种不同尺度的特征图层进行检测。特征获取预测结果的过程分成两部分:①构建FPN特征金字塔,进行加强特征提取;②利用Yolo Head对3个有效特征层进行预测。根据以上原理,构建基于YOLOv3的服装图案识别模型,其检测大图案的过程如图5所示。图5中,图案识别的具体步骤为:①输入带图案的服装图像到Darknet-53网络中进行下采样,最终获得可以用来表示图像的特征;②检测大图案时会将图像划分为像素13×13的网格,然后进行5次卷积操作;③5次卷积后有2条路径,第1条是进行分类预测与回归预测,最终获得大图案检测结果;若图片中还有别的图案会再走第2条路径,这条路径会对5次卷积后的结果进行上采样,之后与像素为26×26×512的特征图结果堆叠(即构建特征金字塔),并重复之前的5次卷积操作,以检测中图案与小图案。

2.2.2构建Faster R-CNN模型 Faster R-CNN是一种two-stage算法,该模型预测过程分为2步:①粗略筛选;②精细调整。基于Faster R-CNN原理,构建服装图案识别模型,具体如图6所示。图6中,图案识别的步骤为:①输入1张带图案的服装图像到该模型中,先对原图像进行处理,获得服装图像的公用特征层,再利用RPN(region proposal network,区域建议网络)获得这些先验框的调整参数,确定先验框内是否包含服装图案的信息(该过程为建议框的获取);②利用建议框对公共特征层进行截取,截取后的部分特征层会在ROI Pooling层调整到同样大小,经过相应的分类与回归就能得到服装图案的预测结果。

图5 基于YOLOv3的服装图案识别流程Fig.5 Clothing pattern recognition process based on YOLOv3

图6 基于Faster R-CNN的服装图案识别流程Fig.6 Clothing pattern recognition process based on Faster R-CNN

2.2.3构建SSD模型 利用CNN提取特征后,均匀地在图片不同位置进行密集抽样,抽样时可以采用不同尺度和长宽比,且物体分类与预测框的回归同时进行。一般情况下,SSD采用的主干网络是VGG网络,其使用的VGG网络相比普通VGG网络有一定修改:将VGG16的FC6和FC7层转化为卷积层,去掉所有的Dropout层和FC8层,新增Conv6,Conv7,Conv8和Conv9。依据SSD算法过程,使用其特定的VGG网络进行特征提取,构建服装图案的识别模型,具体如图7所示。

2.2.4图案识别定位评价指标 由于图案的识别定位需运用相应的目标检测算法,结合该算法常用的评价指标[9]与服装图案的特点,文中引入查准率、召回率、F1-Score、mAP作为评价指标。

查准率(precision)又称精确率,其计算公式为

(3)

式中:TP为正确检测到某种图案的目标框个数;N为所有检测到的某种图案的目标框个数。

召回率(recall)又称查全率,即预测正确的目标框和真实值框的比值,其计算公式为

(4)

式中:TP为正确检测到某种图案的目标框个数;FN为将此图案检测为其他图案的个数。

F1-Score为定位查准率和召回率的调和平均值,计算公式为

(6)

AP为平均查准率(average precision),AP值用precision-recall曲线(P-R曲线)下方面积表示,mAP则是对每个类别的AP值求平均。

图7 基于SSD的服装图案识别流程Fig.7 Clothing pattern recognition process based on SSD

3 实验部分

依照文中构建的网络模型进行实验,实验环境为11th Gen Intel(R) Core(TM) i7-11800H@2.30 GHz,16位英特尔处理器,NVIDIA Ge Force GTX 3060 Laptop GPU。服装款式与颜色识别使用CNN模型实验,以Tensor Flow作为深度学习框架;服装图案识别使用目标检测模型实验,以Pytorch作为深度学习框架,分别进行单独训练。两个实验均以Python作为编程语言。

3.1 CNN模型实验

实验数据集包含3种上衣款式、6种颜色,共计7 200张服装图片。设置Epoch为75,初始学习率为0.001,batch size为32,输入图像尺寸为96×96×3。在实验数据集中随机选取80%的数据作为训练集,剩余20%的数据作为测试集,用于模型的性能评估。在进行多次实验之后发现,关闭Tensor Flow中的eager execution可以提高训练效果,所以实验都在关闭eager execution的状态下进行。

3.2 目标检测模型实验

实验数据集包含6种服装图案共3 000张图片,每张图片中有相应类别的一个或多个图案,或不同类别的一个或多个图案(此种标注方法可以实现多种图案的同时识别),即实际实验图案数量超过3 000个。实验将3种模型进行对比,设置相同参数,实验训练过程分为冻结阶段与解冻阶段,冻结阶段的Epoch设置为50,batch size设置为8,学习率为0.001;解冻阶段的Epoch设置为100,batch size设置为4,学习率为0.000 1。在实验数据集中将随机选取90%的数据作为训练集,剩余10%的数据作为测试集,用于模型的性能评估。

4 结果与讨论

4.1 CNN模型结果

将改进的VGGNet与VGG16进行对比实验,实验结果见表1。

表1 服装款式与颜色识别结果

由表1可以看出,改进的VGGNet在服装款式与颜色的多标签识别中表现出较优的性能,可以用较短的训练与检测时长在测试集上实现96.49%的总体准确率。数据集包含了多种场景,VGG16因在服装及其他场景的细节特征上挖掘较深,其识别准确率下降了1.16%。

4.2 目标检测模型结果

目标检测模型实验经过编程与训练后,获得服装图案识别结果,具体见表2。

表2 服装图案识别结果

对比3种模型的检测结果,score threhold设置为0.5的情况下,YOLOv3在识别与定位图案上表现出更优的性能,其mAP达到了86.63%。3大类图案中,纹理类图案检测效果最好,格子与波点的mAP为96.14%;文字类图案检测效果较差,中文与英文的mAP为79.75%。纹理类图案由于其自身规律性强、特征明显且遍布服装,成为最易检测的图案;而文字类图案的变换较多,文字的组合方式和分布位置多变,字母字符种类繁多,在图案设计时还会将文字的书写样式进行扭曲、隔断,从而导致文字类图案的检测效果较差。所以提高文字类图案检测精度最重要的是数据集的覆盖面要广,即尽可能多地覆盖文字类图案的样式。动物类图案(如文中选用的猫狗类图案)特征相对明显,相应的检测效果位于中位,mAP为83.69%。服装图案中存在两种类型的动物图案:真实动物与卡通绘画动物,这就使得计算机在学习这类图案特征时会表现出一定的困难,从而导致检测效果不佳。动物类图案与文字类图案相比,变换方式不多,因此动物类图案检测效果比文字类好。

对比3种模型的查准率与召回率,发现YOLOv3的查准率最高,即检测服装图案的效果最好;Faster R-CNN的召回率最高,即检测出图案的个数最多,6种图案的平均召回率为89.84%。后续研究可根据所需检测服装图案的侧重点,选择不同网络模型。若两者都需考虑时,可以参考F1-Score指标。

5 实例验证与分析

为验证模型对服装款式、颜色和图案的识别性能,选用实验中识别效果最好的YOLOv3模型,从淘宝网某品牌中随机选取6张上衣款服装图像进行识别,测试结果如图8所示。

图8中的数字表示识别为对应类别的概率,以图8(a)成衣款式为例,颜色识别为黑色的概率为99.97%,款式识别为T恤的概率为99.56%,图案识别为中文图案的概率为98%。由图8可以看出,模型对6款服装三要素的识别都表现出较好的判别结果。款式与颜色的识别结果输出在图片左上方橘黄色框内,图案的识别结果由不同颜色框出,从而实现了识别与定位。纹理类图案直接框出整件服装,文字和动物类图案分别在各服装内部定位成功。款式的识别结果在有无背景与是否穿着于身的变化中表现出一定偏差,如图8(b)中穿着效果的款式识别率下降,但变化不大,概率维持在90%以上。有无背景与是否穿着于身对服装颜色与图案的识别结果基本没有影响,具有较好的鲁棒性。图8(c)中的格子衬衫为红黑相间,识别结果却为红色,是由于在数据标注时,对格子类颜色的标注以市场确定颜色为准,一般情况下,彩色系与无彩色系颜色都存在时,以彩色系为服装颜色,如红黑格子衬衫、红白格子衬衫都可命名为红色格子衬衫。

图8 上衣款服装三要素测试结果Fig.8 Testing results of the three elements of top clothing

6 结语

为了通过图片自动获取服装流行信息,文中针对服装三要素识别不够全面、多特征识别效果较差的问题,提出一种利用深度学习识别服装三要素的方法。文中选取青少年及青年上衣的3种款式、6种颜色和6种图案,通过收集不同网络平台中的上衣图片,按照同类文件标签存放与目标框框选两种标注方式,建立了包含10 200张服装图片的数据库,并利用深度学习方法对服装三要素中的款式、颜色、图案进行训练和识别。结果表明:与VGG16相比,改进的VGGNet在服装款式与颜色的多标签识别中表现出较优的性能,其用较短的训练与检测时长在测试集上实现了96.49%的准确率;在YOLOv3,Faster R-CNN和SSD 3种目标检测算法中, YOLOv3表现出更优的服装图案检测性能,score threhold设置为0.5时,检测服装图案的mAP值为86.63%。3大类图案中,纹理类图案的检测效果最好,其mAP为96.14%;动物类图案mAP为83.69%;文字类图案mAP为79.75%。

基于YOLOv3在服装图案检测中的良好效果以及YOLO系列在视频帧检测的优势,可将其应用在商场的视频监控系统中,通过检测进出商场顾客的服装穿搭,获取顾客的着装信息并进行归纳,分析其服装穿着偏好,商家可根据顾客偏好增减库存、安排陈列,以提高店铺销量与顾客忠诚度。未来可以进一步改善当前识别结果,并在视频帧获取服装信息方面展开研究,将方法扩展到其他服装款式、颜色和图案的识别工作中。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!