黄振华,李涛,蒋玉萍,杜磊*
(1. 浙江理工大学 丝绸文化传承与产品设计数字化技术文化和旅游部重点实验室,浙江 杭州 310018;2. 浙江理工大学 浙江省服装工程技术研究中心,浙江 杭州 310018;3. 浙江理工大学 服装数字化技术浙江省工程实验室, 浙江 杭州 310018)
目前服装样板生成过程中,需要样板师人工解读款式图信息,容易造成识别错误或理解偏差,导致样板生成错误,降低生产效率[1]。衣领是服装的重要组成部分,不仅展现服装的美感,而且很大程度上决定了服装风格[2]。由于款式图对衣领的细部工艺表达不完整,容易造成样板师人工识别错误[3],因此,实现款式图衣领的自动识别具有重要现实意义。
为降低人工识别误差,国内外学者通过引入计算机视觉技术代替人工识别,其主要基于图像内容与深度学习两种方式[4]。基于图像内容是通过人工设计方法提取图像特征,主要有几何特征[5]、全局特征[6]、局部特征[7]及多特征融合[8]等提取方式。其中,AN L X等[9]运用小波傅里叶描述子表征服装外部廓形特征,并利用主成分分析降维,结合极端学习机对款式图进行分类。由于小波傅里叶描述子不适合形状的实时分类,李东等[6]提出一种通过预处理获取服装轮廓信息的算法,并训练多分类支持向量机实现实时分类。
随着深度学习在图像分类上的不断发展,学者们利用深度学习方法进行服装图像识别。吴欢等[10]针对服装相似廓形分类效果不理想的问题,引入卷积神经网络CaffeNet模型进行女裤廓形分类,分类准确率达到95%。针对衣领部位分类效果不理想的问题,尹光灿等[11]通过人工截取领型区域,运用AlexNet卷积神经网络实现对服装领型的识别与分类。由于衣领部件相对服装整体目标较小,其他服装部件会形成噪声,导致分类准确率低,通过人工截取目标区域虽然可以减少噪声,但被分类图像需进行裁剪以保证部件位置统一,因此无法广泛适用于服装图像的分类。
针对小目标识别困难的问题,以服装款式图中衣领作为研究对象,选用神经网络模型 (mask region convolutional neural networks,Mask R-CNN)进行试验[12],该模型对数据要求低,不需要对数据进行裁剪、灰度化等预处理,对小目标物体识别性能高。文中根据款式图特点调整模型参数,结合迁移学习方法实现对款式图领型的识别与定位。
实验采用Mask R-CNN深度学习算法,该方法在Faster R-CNN基础上进行改进,解决了Faster R-CNN在识别小目标物体上出现丢失的问题,并提升了识别准确度[13]。Mask R-CNN结构如图1所示,主要由3个模块组成,分别是特征提取网络(CNN)、区域建议网络(region proposal network,RPN)及全连接层回归网络(full connect)。最终网络输出包含3个分支,分别是目标的分类(class)、目标包围框的坐标(box)及目标物体的二值掩码(mask)。
图1 Mask R-CNN结构Fig.1 Structure of Mask R-CNN
1.1.1特征提取网络 Mask R-CNN在特征提取网络中采用残差特征金字塔结构,该网络将ResNet与特征金字塔网络(feature pyramid networks,FPN)进行结合,实现仅增加极小的计算量,同时处理好物体检测的多尺度变化问题,能够使小目标在下采样过程中不丢失。ResNet还可以根据不同任务目标选取不同的骨干网络,例如ResNet-50与ResNet-101。其中ResNet-50是由4个模块组成,每个模块中含有若干个残差块,第一个残差块将上一个模块通道数量翻倍,而高与宽减半,共包含了49层卷积层与1层全连接层。ResNet-101是在ResNet-50的基础上增加第4层残差块。在Mask R-CNN中,ResNet仅作为特征提取器对图像进行特征提取,因此将ResNet的全连接层去除。
1.1.2区域建议网络 Mask R-CNN利用ResNet-FPN结构将不同阶段的特征图输入RPN生成多个候选信息区域(region of interest, RoI),通过RPN对RoI进行训练,得到标定具有完整标定正样本与含有部分标定区域负样本,将剩余的RoI进行RoIAlign操作,将图像上生成的RoI与Resnet-FPN提取的特征层进行对齐,最后计算RPN网络的损失。RoIAlign通过双线性插值得到固定的像素值,减少返回原图时的误差。其中RoIAlign的对齐公式为
(1)
式中:w,h分别表示RoI宽度和高度;K为这个RoI的特征层;K0是w=224,h=224时的特征层。
1.1.3全连接层回归
将获取的RoI运用全卷积网络(fully convolution network,FCN)进行类别分类、标定框回归与Mask掩码回归。该模型将训练与预测分离,在训练中同时进行分类与掩码回归,而在预测中先得到分类结果,再将结果导入掩码回归中得到对应掩码。FCN类别分类和回归与RPN网络中分类和回归相同,损失函数也与Softmax层交叉熵损失函数相同。其中训练采用多任务损失函数,通过学习不断减小损失函数的值,直至获得全局最优解。损失函数的公式为
L=Lc+Lb+Lm。
(2)
式中:Lc为分类误差,Lb为标定框误差,Lm为掩码误差。
在目标检测中常用精确度与平均AP值(mean average precision,mAP)作为评价指标。精确度是衡量分类准确性的指标,以分类结果为正类的概率进行表征。mAP是多个类别AP的平均值,AP是单个类别的平均精确度,通过计算精确度、召回率以及预测框和真实框的交并比(intersection over union,IoU)判断预测框是否准确预测到了位置信息,具体如图2所示,其中并集U如图2(a)所示,阴影部分为交集I如图2(b)所示。SIoU值越高表示领型目标定位越精确。IoU公式为
(3)
式中:I为预测边框与真实边框交集,U为预测边框与真实边框并集。
图2 IoU示意Fig.2 Schematic diagram of IoU
根据领型结构进行分类,将领型分为无领、立领、翻领、驳领4种领型[11],其特点与款式图见表1[14],每种领型下含有不同细分领型,但实验仅针对经典领型进行分类。在网络上收集包含4种领型的款式图,创建一个款式图样本库。为减少样本不均匀造成的误差,每种领型各收集200张,共得到800张服装款式图,通过数据增强[13]的方式,将样本库扩充为1 800张,其中训练集为1 600张,测试集为200张,4种领型样本数量均匀分布。款式图源于网络设计素材,主要为白底背景,不含有噪音。由于Mask R-CNN对图像质量要求较低,样本库中图像分辨率范围为437×459像素到2 480×3 508像素。
将样本库中样本运用深度学习图像标注工具VIA (VGG Image Annotation) 进行人工Mask框选以及类别标注,使用多边形线段描出所有领型区域与领型轮廓,根据领型赋予标签“LL”“LF”“LW”和“LB”。当一张图像中含有2个款式时,对2个款式的衣领处进行对应标注,款式图标注格式如图3所示,阴影区域为该款式图领型的mask,并在属性中选取对应class标签。将标记好的图像保存为json格式,作为神经网络读取数据。
表1 领型特点与款式图
图3 款式图标注格式Fig.3 Labeling format of garment flat
实验采用Python语言、TensorFlow框架编程实现,基于台式电脑Windows 10操作系统[Intel (R) Core (TM) i7-8700 CPU,3.20 GHz,32 GB],GPU为MSI RTX 2060。实验针对款式图特点与样本库数量进行参数修改。
由于人工采集的数据集较少,为了防止算法在训练过程中发生过拟合现象,采用迁移学习方法,利用MS COCO公用数据集进行网络预训练。该数据集适用于图像分类与语义分割,保存训练后网络的权重。
网络主要结构参数见表2。由于款式图中领型特征信息较少,运用多层数隐含层骨架网络容易产生过拟合现象,因此将Mask R-CNN网络默认的卷积神经网络模型ResNet-101修改为ResNet-50,迭代次数(epoch)为500,每次迭代训练图片张数(steps-per-epoch)为50,学习率为0.001,权重下降为0.000 1。Mask R-CNN分类过程如图4所示。
表2 Mask R-CNN主要参数
图4 Mask R-CNN分类过程Fig.4 Classification process of Mask R-CNN
3.1.1训练结果分析 实验采用Mask R-CNN网络是为了将服装款式图中衣领位置进行定位,并根据标定框中提取的领型特征信息进行类型识别。网络的各损失函数如图5所示,从网络损失图可知,网络训练结果良好,没有出现过拟合现象。
由图5可知,总损失、class损失、bbox损失和mask损失都在稳定收敛。其中总体损失函数在迭代次数达到400后,总损失趋近0.1;class损失在迭代次数达到400时,损失低于0.01;bbox损失在迭代次数达到400后已经稳定波动,mask在迭代次数达到450次后也趋于稳定。
3.1.2识别结果 随机抽取测试集中的款式图进行识别测试,针对领型识别精度而言,单个领子识别精确度为99.9%;包含2个领型的款式图的识别精确度为99.8%,识别结果如图6所示。其中掩码mask能够完整覆盖领型区域,标定框box准确检测出领型所在区域。
表3为Mask R-CNN的实验结果。由表3可知,所有领型的平均识别精确度达到98%以上,无领、立领与翻领的平均识别精确度达到99%以上,并且mAP值为90%,表明文中实验方法取得良好结果,对款式图领型分类与定位具有较高的精确度。其中,无领与驳领的AP不足90%,这主要是由于4种领型中无领和驳领的细部领型形态和形状差异较大,box定位与mask标注不能完全与测试集标注重合,导致在计算AP时IoU值下降。
图5 损失函数曲线Fig.5 Loss function curve
图6 识别结果Fig.6 Recognition result
表3 Mask R-CNN实验结果
为验证改进后的Mask R-CNN网络对服装款式图领型分类的优势,将基于Mask R-CNN识别分类方法与尹光灿等[11]在领型分类中提出的Canny边缘检测算法结合AlexNet卷积神经网络模型的方法进行对比。采用数据增强后的数据库进行实验,研究发现,相对于AlexNet的衣领识别,Mask R-CNN方法在提高服装领型分类准确率方面具有优势,且不需要人工截取衣领信息,可有效减少人为干预因素。由于mAP是目标检测评价指标,所以仅用精确度进行对比,实验对比结果见表4。
表4 识别精度实验对比
由表4可知,AlexNet识别精确度为20.3%,识别结果较差,主要因为AlexNet卷积神经网络对图像质量要求较高,增加随机噪声的数据增强方式对AlexNet卷积神经网络造成较大干扰。利用Canny边缘检测算法对图片进行处理,虽然可以降低网络提取领型特征的难度,减少色彩对领型识别的影响,进而提高领型分类的准确率,但调整后的Mask R-CNN网络识别效果更为理想。Mask R-CNN与AlexNet卷积神经网络方法相比,精确度提高了79.5%;与Canny边缘检测结合AlexNet卷积神经网络方法相比,精确度提高了70.3%,并且相较于文献[11]的方法,Mask R-CNN不需要对样本进行裁剪、灰度化和边缘检测等预处理,适用于各类服装图像。
文中以衣领款式图作为研究对象,通过改进Mask R-CNN目标检测方法,结合迁移学习对模型进行预训练,修改Mask R-CNN中的骨干网络,实现了对服装款式图中的领型识别,平均精确度达到99.2%,mAP值达到90%。相较于卷积神经网络方法,该方法对图像质量要求低,并且不需要对图像进行裁剪预处理,可以识别服装款式图部件,准确率提高79.5%,为二维数字化样板生成提供参考与借鉴。