APP下载

基于ClothResNet模型的人体衣物颜色识别

2023-12-05黄玥玥王海燕姚海洋

纺织学报 2023年10期
关键词:池化衣物像素

黄玥玥, 陈 晓, 王海燕, 姚海洋

(陕西科技大学 电子信息与人工智能学院, 陕西 西安 710016)

人体衣物外观对个体具有强烈的表征意义,其对社会生活多个方面有着广泛且深刻的影响。在时尚领域,颜色作为服装感知的最主要特征,可鲜明地表现人类情感,塑造迥然不同的形象[1];在电商领域,颜色搭配对服装的销售具有重要影响[2-4];在安全领域,利用大量交叉监控视频搜索人物时,外部衣物属性作为重要的识别特征,可联合实现更准确地实时人物捕捉与分析[5-7],因此,如何高效、准确地识别人体衣物属性受到多个领域的广泛关注。

传统人体衣物颜色识别方法基于手工特征结合分类器,手工设计衣物各种特征并从背景中分离出来,然后利用机器学习方法K-means[8]、Mean shift[9]等作为离散数据的聚类算法,通过重建衣物的颜色空间数据提高对衣物颜色的识别。这些方法通常用手工判定边界方式,会消耗大量的人工成本,且当图像背景颜色与服装颜色相似时,识别算法会将其颜色聚为一类,导致对衣物颜色识别精确率过低。基于深度学习的衣物颜色识别,采用端到端的深度神经网络结构,通过联合优化将特征提取和分类器合并成统一的框架,使得识别模型更能表征数据特点。如Ivanov等[10]设计了以LeNet为基本网络结构的模型,可自动提取图像中人体衣物特征,但该方法识别精确率仅达到78%。Roy[11]利用YOLOv3和残差网络,有效提取了图像中衣物的位置信息,利用DeepFashion[12]数据集进行训练,实现了服装的边框回归检测;通过在测试数据集中进行衣物颜色的识别验证,准确度达89%。Chen等[13]提出一种改进卷积神经网络(CNN)用于对红、绿、蓝及黑色4种衣物颜色识别,获得了92.52%的平均精确率。由以上总结可知,已有方法仅对少数衣物颜色可实现较准确的识别,无法适用于真实情况特别是颜色受到严重扭曲的状况,且多数方法均只针对单一场景,无法适应复杂变化的环境。

针对以上问题,本文提出基于ClothResNet模型的人体衣物颜色识别方法,采用端对端的技术实现对衣物轮廓的自动提取,最终实现人体衣物颜色的识别,克服了手动分离衣物的繁琐性,有效提高了衣物颜色识别的准确率,实现了对多种人体衣物颜色高效、准确识别的目的。

1 实验部分

1.1 人体衣物标注数据集的构建

为训练针对人体衣物颜色识别的ClothResNet网络模型,需要构建一个大规模的人体衣物颜色标注数据集。本文选择活动模板回归(active template regression,ATR)[14]数据集中的部分图像进行衣物分割、标注、扩充,构建了专门用于人体衣物颜色识别的数据集,命名为pcaparsing(people clothes attribute parsing)。该数据集包含红、橙、黄、绿、青、蓝、紫、白、黑、棕、粉和灰12种颜色的衣物,每个样本包括原始彩色图像和对应的掩码图。掩码图是通过在原始彩色图像上分割提取衣物轮廓,并在对应位置标注其所属颜色获得的。图1示出pcaparsing中示例图片。

图1 样本集示例图片Fig.1 Sample image of dataset.(a) Sample 1;(b)Sample 2;(c) Sample 3;(d) Sample 4

由于ATR数据集中可用于网络训练的图像数据仅有5 639张,且颜色分布不均匀,导致模型难以学习到少量属性的全部特征,增大了模型训练的难度;因此,本文对原始数据进行了扩充,以防止神经网络学习到不相干的模式,从根本上提升了网络的泛化性能和对衣物属性的识别性能。本次数据扩充主要针对颜色数量较少的数据进行处理,采用的数据增强方式包括裁剪、上下移动、水平翻转和垂直翻转等。通过数据扩充,每种颜色的图像数量均达到了 1 000 张左右,从而在数据集中保持了每种类别的图像数量呈现均匀分布。图2示出数据扩充后的输入数据和对应的标注图示例。

图2 数据扩充示例Fig.2 Data expansion example

1.2 ClothResNet网络的构建

ClothResNet人体衣物颜色识别网络主要包含输入端、主干网络以及输出端3个部分,网络结构如图3所示。

图3 ClothResNet 网络结构Fig.3 ClothResNet network structure

1.2.1 输入端

在训练过程中,每次输入16张含有人体衣物的彩色图像,大小设置为3×256像素×256像素。

1.2.2 主干网络

主干网络由3个模块组成,分别是残差网络、改进的金字塔池化模块和坐标注意力模块。

模块1:残差网络采用ResNet18作为基础网络,并将ResNet18前2个残差块卷积核输出通道设置为64,卷积核大小设置为3×3×1,并舍弃后面的池化和全连接层。此模块通过高低级特征的融合,能够减少特征信息的丢失,高效地提取图像全局特征,并使网络较快地达到收敛状态。

模块2:改进的金字塔池化模块将残差网络提取到的特征进行多尺度变换,以便进行串接。传统的金字塔池化结构未能对衣物轮廓信息进行更好的提取,因此,本文在传统的金字塔池化结构基础上增加了4个特征块,分别设计为4×4、5×5、7×7和 8×8, 这样可减少不同区域之间的上下文信息丢失,从而增强对图像中不同特征的提取。该模块的结构如图4所示。

图4 改进的金字塔池化网络结构Fig.4 Optimized pyramid pooled network structure

模块3:坐标注意力模块,其网络结构如图5所示。该模块的输入特征图大小为1 024×32像素×32像素,通过2个卷积核大小分别为(32,1)和(1,32)的卷积层对输入特征图在水平和垂直方向上进行编码,以捕捉一个衣物图像中空间方向上的长期依赖关系,并在另一个空间方向上保持准确的位置信息,这有助于网络更准确地定位感兴趣的对象。接下来,将编码后的特征图连接起来并送入一个1×1的共享卷积层进行转换,得到32×1像素×64像素大小的特征图。然后对该特征图进行归一化和激活函数处理。此外,利用2个1×1卷积层分别将编码后的2个特征图转换为与输入具有相同通道数的向量,并经过Sigmoid激活函数处理。最后,将2个特征图相乘得到注意块的输出,其大小为1 024×32像素×32像素。这样设计的坐标注意力模块可更好地捕捉衣物轮廓信息,并提高感兴趣区域的准确性。

1.2.3 输出端

输入端为3×256像素×256像素的彩色图像,经主干网络输出的图像大小为128像素×128像素,在输出端通过反卷积层和线性修正单元得到与输入图像等大的特征图。

1.3 评价指标

本文用2种评价指标衡量提出模型的有效性,分别为平均交并比、精确率。平均交并比M反映真实图像与预测图像的重合度,从而衡量衣物分割准确率,其公式如下:

式中:n为总体分类数,在本文中n为12;x为实际类别样本和预测类别样本的交集和并集之比,其定义如下:

式中:NTP为被模型分类正确的正类样本数量;NFN为被模型分类错误的正样本数量;NFP为被模型分类错误的负类样本数量。

在得到预测图像后,统计其中分割出的衣物颜色分类是否正确。针对最终衣物颜色识别结果,另需使用精确率来评价最终分类结果的准确度,计算公式如下:

1.4 实验参数设置及模型训练

在模型设计中,通常会将数据集划分为训练集和测试集,其中训练集用于训练模型参数,而测试集则用于评估最终训练好的模型的性能。本文中,数据集的划分比例为8∶2,即训练集占80%,测试集占20%。在训练过程中,将训练数据集输入ClothResNet网络进行训练,通过反向传播调整网络参数。

本文所有实验均在Tesla V100环境下使用Paddle工具箱运行进行训练,训练过程中,训练和测试图像的尺寸为3×256像素×256像素,使用LeakyReLU(斜率为0.2)和Adagrad算法进行训练,损失函数为交叉熵损失,初始学习率为0.000 2,批处理大小设置为16,训练120轮。

1.5 模型对比分析

图6为用K-means、Hog-KNN、卷积神经网络(CNN)以及本文方法ClothResNet对12种人体衣物颜色的识别精确率对比图。

图6 K-means、Hog-KNN、CNN、ClothResNet识别颜色精确率的对比图Fig.6 Comparison diagram of color recognition accuracy of K-means,Hog-KNN, CNN and ClothResNet

从图6可看出,在本文构建的数据集上,ClothResNet模型对衣物颜色识别精确率均优于同类方法。由于K-means方法是将图像中的所有像素聚集在一起,而不是衣物,因此对衣物颜色的预测不准确;Hog-KNN用Hog方法提取特征后再进行聚类信息提取,从而得到了相对较好的结果,但其对某些颜色的提取能力较差,如在对灰色衣物进行识别时精确率仅有65%左右;利用深度学习方法则能够均匀地捕获衣物属性信息,CNN方法相较于传统方法也具有较高的识别精确率,但其网络结构简单,不能提取图像中的深层语义信息,从而造成识别率不高;ClothResNet模型对每种颜色的识别都取得了较高的识别精确率,从而验证了本文模型的有效性。相比其他网络,本文提出的方案能够有针对性地解决对人体衣物颜色识别率不高的问题。对金字塔池化模块进行改进并融入坐标注意力机制提升了网络的局部特征提取能力,降低了识别错误率。

2 消融实验

为验证本文构建的人体衣物颜色识别模型ClothResNet加入各个模块的有效性、ResNet18作为骨干网络的优势以及扩充样本对算法的影响,选取深度学习中典型的骨干网络AlexNet和VGG11作为ResNet18对比网络,对基于ResNet18网络仅加入金字塔池化的模型(ResNet18+PP)、ResNet18加入改进的金字塔池化模型(ResNet18+OPP)和基于ResNet18网络仅使用坐标注意力机制的模型(ResNet18+CA) 各自分别在原始数据集与样本扩充后的数据集进行实验,结果如表1、2所示。

表1 原始数据集消融实验对比Tab.1 Comparison of ablation experiments with original dataset

从表1、2可看出,相比在原始数据集扩充样本后各个网络模块对人体衣物的颜色识别结果得到了提升,从而证明对样本进行的多种变换提高了网络的泛化性能。从表2可看出,使用骨干网络ResNet18与AlexNet、VGG11相比,能够在参数量远小于其它二者的情况下,达到相对较好的分割和识别效果。对于原始数据集,在加入优化的金字塔池化模块和坐标注意力机制后对于衣物的分割和颜色的识别都得到了提升。从表2中比较ResNet18+PP与ResNet18+OPP可知,原始金字塔池化模块对衣物的分割交并比为45.2%,而改进的金字塔模块提升了5%;ResNet18+PP对衣物颜色识别精确率为71.50%,而ResNet18+OPP在此基础上提升5.4%。在骨干网络中加入坐标注意力后分割交并比提升了3.2%,也有效提升了网络的识别性能,识别精确率相比ResNet18提升6.45%。本文的ClothResNet模型融合改进的金字塔池化模块和坐标注意力模块,在ResNet18的基础上只增加了10.41 MB的参数量,而对衣物颜色识别精确率达到了94.49%。

表2 扩充数据集消融实验对比Tab.2 Comparison of ablation experiments with extended dataset

3 结束语

本文提出了人体衣物颜色识别模型ClothResNet,模型以ResNet18为基础网络,融入了改进的金字塔模块、坐标注意力机制,最终实现了对12种人体衣物颜色的高效识别。该方法克服了传统人体衣物颜色识别方法繁杂的衣物分割步骤,以及简单卷积神经网络(CNN)模型识别效率低的缺点。从实验结果来看,提出的ClothResNet模型较传统方法和简单的CNN模型有更好的衣物颜色识别效果,达到了94.49%的平均识别精确率。

本模型只针对12种人体衣物颜色进行识别,研究仍存在不足,现实中的人体衣物颜色种类远超于 12种。 在后续的工作中,将扩大人体衣物颜色样本图像库,通过研究神经网络的各层结构,构建出能识别更多种类人体衣物颜色的网络模型。

猜你喜欢

池化衣物像素
面向神经网络池化层的灵活高效硬件设计
赵运哲作品
Clothes Donation Box
基于Sobel算子的池化算法设计
像素前线之“幻影”2000
卷积神经网络中的自适应加权池化
“像素”仙人掌
基于卷积神经网络和池化算法的表情识别研究
保暖的衣物
动脑筋,仔细看