基于改进Bilinear-CNN的服装图像风格识别
2021-06-26董爱华
李 扬, 黄 荣, b, 董爱华, b
(东华大学 a.信息科学与技术学院; b.数字化纺织服装技术教育部工程研究中心, 上海 201620)
随着计算机技术的发展和电子商务的成熟,研究者们开始从服装图像数据中挖掘与服装相关的信息[1-2],其中服装风格是一种重要的服装信息,由服装的结构、色彩、纹理等多种要素综合而成,可表征服装整体的视觉感受[3]。在服装行业中,服装设计者将品牌理念转化为产品风格呈现给消费者[4-5]。服装图像风格的自动识别,不仅可以帮助服装设计者把握潮流趋势,也便于消费者根据风格检索目标服装[6]。
传统的服装图像风格识别方法主要聚焦于如何设计有效的特征描述子。Qian等[8]采用Canny算子提取服装轮廓,再设计3层神经网络作为分类器以识别服装风格。Chao等[9]将图像的局部二值模式(LBP)和方向梯度直方图(HOG)作为描述服装风格的特征,通过度量特征之间的相似性实现服装风格推荐。吴圣美等[10]将尺度不变特征变换(SIFT)等5种图像局部描述子与自定义的服装语义属性进行匹配,采用多任务学习模式,实现面向少数民族服装的风格识别。但这些传统的服装图像风格识别方法依赖于专家知识,需要手动设计特征描述子,耗费的人力与时间成本较高。
近年来,深度神经网络被广泛应用于图像识别领域[11-12],其将表示学习与分类学习级联,通过反向传播算法,能够自适应地从数据中挖掘出有效的特征信息,克服了传统方法依赖人工设计特征描述子的缺点。目前,国内外基于深度神经网络的服装图像风格识别方法主要有两类。一是以CD-CNNs(component-dependent convolutional neural networks)[13]为代表的基于服装组件的方法。该类方法利用卷积神经网络提取不同部位服装组件的特征,通过数据驱动学习各组件特征的融合方式,最后用支持向量机(SVM)进行服装风格识别;其以服装组件为单位部署特征提取模型,需要多种与服装组件相关的监督信息,整个模型的复杂程度高、参数多、计算量大。二是基于图像全局的端到端方法。该类方法将整幅图像作为深度神经网络的输入,自动学习能够表示服装风格的特征。Aoki等[14]用PSPNet(pyramid scene parsing network)和SSD(single shot multibox detector)定位图像场景中的服装区域,通过ResNet50(residual network50)识别服装风格。Takagi等[15]收集13 126幅服装图像,涵盖礼服、古典、洛丽塔等14种风格,并利用VGG(visual geometry group)等5种通用图像识别网络测试服装风格识别的性能。刘正东等[16]提出一种基于尺寸分割和负样本的SSD检测方法,克服了小目标识别的困难,提高了西装图像分类的准确率。相比基于服装组件的方法,该类方法以单个类别标签为监督信息,将整幅图像作为识别对象,所需的参数量和计算量较少。
服装风格具有细粒度特性。细粒度特性通常指目标对象的视觉感知相似,属于同一个粗粒度元类,具有较为显著的类间相似性[17]。服装风格的细粒度特性体现在:所有服装图像均属于“服装”元类,而不同风格的服装是“服装”元类中的不同子类。因此,对服装图像风格进行识别存在一定的挑战性[18]。对于细粒度图像识别问题,Lin等[19]提出一种Bilinear-CNN(convolutional neural network)模型,该模型通过两条并行的网络通路提取图像特征,并使用双线性池化方法[20]计算并行特征间的相关性,筛选能够有效区分细粒度子类的特征。然而,Bilinear-CNN模型存在两个问题:一是缺乏关注细粒度目标的机制,未能有效抑制图像背景区域对识别性能的影响;二是因使用两条并行的网络通路提取特征,需成倍的参数量和计算量。针对上述问题,提出一种改进的Bilinear-CNN模型,并将其用于服装图像风格的识别。
1 改进的Bilinear-CNN模型
Bilinear-CNN模型改进步骤:首先,引入空间注意力机制,通过数据驱动学习注意力的分配权重值,使得网络能够关注体现服装风格细粒度差异的空间区域,达到抑制背景干扰的目的;其次,设计一种单特征通路的双线性池化方法,该方法用两种不同的池化操作从单通道特征中挖掘细粒度特征。改进后的Bilinear-CNN模型结构如图1所示。
将VGG16中conv1_1至conv5_3的网络部分作为单个网络通路中的特征提取器[21]。其中,下划线“_”前的数字代表卷积模块序号,下划线“_”后的数字代表某个卷积模块中卷积层的序号。通过ImageNet数据集预训练的VGG16模型能够提取丰富的图像特征。因此,采用这些预训练的参数对特征提取器进行初始化。
使用交叉熵损失和L1范数正则化项的加权和作为代价函数,如式(1)所示。
(1)
图1 改进的Bilinear-CNN模型结构Fig.1 Improved Bilinear-CNN model structure
1.1 空间注意力机制
空间注意力机制使得神经网络能够自适应地增强对前景区域的感知,抑制背景部分的干扰,提高识别性能。本文在单特征通路之后嵌入一种可学习的空间注意力网络,从而实现上述机制[22]。空间注意力网络的输入为一个h×w×c的特征图F,输出为一个h×w×1的注意力图M。该注意力图中每个元素取值范围为[0, 1],表示注意力的分配权重值,其大小表征关注程度的强弱。注意力图M的计算流程如图2所示。
图2 空间注意力网络Fig.2 Spatial attention network
注意力图M的计算步骤如下:
(1) 通道压缩。在输入特征图F中,以空间位置为单位,分别取每个c维特征的最大值和平均值,得到两个具有全局通道信息的h×w矩阵。将这两个矩阵在通道维度上进行拼接,得到h×w×2的张量,其中c>2,实现通道压缩。
(2) 卷积。对上一步输出的h×w×2的张量做卷积操作,采用一个大小为3×3×2、步长为1、参数可学习的卷积核(共18个参数)。为保证卷积前后张量空间尺寸(即h和w)的一致性,对输入张量的边界进行全零填充:上下/左右边界各填充一行/列。
(3) Sigmoid激活。使用Sigmoid激活函数将上一步输出张量的取值范围映射到[0,1],生成注意力图M。其中,元素的取值越大,表示网络更加关注该元素所对应的局部感受野。
在训练开始时,空间注意力网络中卷积核的参数被随机初始化。在训练过程中,通过误差反向传播算法调整空间注意力网络中卷积核的参数。经过训练之后,对于一幅给定的服装图像,空间注意力网络能够输出一张注意力图M,为空间域中的各局部感受野分配合适的注意力权重值,使得模型能够有效聚焦风格差异的服装区域。图3示为不同风格服装图像的注意力图M(已转换为可视化的热力图),其中,图3(a)、(b)、(c)分别为礼裙风格、古典风格和洛丽塔风格的服装图像,图3(d)~(f)分别为图3(a)~(c)的注意力图,图中越高亮的像素代表越高的注意力权重值。
图3 服装图像及其可视化的注意力图
由图3可知,注意力图的高亮区域均与原图的服装区域贴合。对于图3(a),模型关注礼服的胸褶和腰褶部分;对于图3(b),模型关注服装的衣身部分;对于图3(c),模型注重反映洛丽塔风格的蕾丝花纹。这说明所设计的空间注意力网络具有聚焦风格信息、抑制背景干扰的能力。
将注意力图M与输入特征图F融合,得到经过注意力分配调制的新特征图F′。注意力图M与输入特征图F的融合计算如式(2)所示。首先,将注意力图M复制c份并拼接成一个h×w×c的张量;接着,计算该张量与输入特征图F的哈达玛积,得到输出特征图F′。
(2)
式中:“;”表示张量拼接操作;“∘”表示哈达玛积。
深度神经网络中的深层特征图是浅层特征图的组合,反映图像的高级语义信息。因此,在VGG16特征提取器的最深层特征图,即conv5_3引入上述的空间注意力机制,使得模型能够筛选与服装相关的高级语义信息。在消融试验中,测试了在不同深度的特征图引入空间注意力机制后对细粒度识别性能的影响。
1.2 单特征通路的双线性池化方法
原始Bilinear-CNN模型通过两条并行的网络通路提取特征,并利用双线性池化操作计算格拉姆矩阵,提取能够有效区分细粒度子类的特征。然而,并行特征通路的双线性池化方法导致模型参数量和计算量的成倍增加。设计一种单特征通路的双线性池化方法,如图4所示,在减少参数量和计算量的同时利用两种不同的池化操作充分挖掘细粒度特征。由图4可知,单个特征通路输出一个h×w×c的特征图,对该特征图分别进行全局平均池化和全局最大池化,得到两个描述特征图全局信息的向量,再计算这两个向量的外积,得到格拉姆矩阵G。
图4 单特征通路的双线性池化方法Fig.4 Bilinear pooling method over single feature path
综上所述,对单个网络通路的输出特征图采用全局最大池化和全局平均池化提取了两种不同的统计量,并通过格拉姆矩阵来刻画特征通道之间的相关性。与并行特征通路相比较,单特征通路的双线性池化方法在降低模型参数量与计算量的同时仍能较好地挖掘细粒度特征。
2 试验与结果分析
2.1 试验准备
所有试验均采用公开的FashionStyle14数据集[15]。该数据集包含13 126幅由服装设计领域专家收集并标注的服装图像,涵盖礼服、古典、洛丽塔等14种服装风格标签。该数据集每一类的图像数量均在区间[816, 1 106]内,其数据具有均衡性。因此,将所有类别识别准确率的均值作为最终总体准确率。将80%的数据集作为训练集,剩余的20%作为测试集,分别计算训练集和测试集中样本图像的均值和方差,并对数据集中每一幅样本图像进行去均值和方差标准化处理。
试验环境:CPU为Inteli7 8700,内存16G;GPU为Nvidia GTX 2070;操作系统为Ubuntu18.04;使用PyTorch深度学习框架。
2.2 训练步骤
训练过程分为两个阶段。第一阶段冻结VGG16特征提取器的初始参数,只训练空间注意力网络和最后的全连接层。初始学习率设为0.05,批大小设为32,训练50轮。在此基础上,第二阶段使用较小的学习率微调包括VGG16特征提取器在内的全部参数。初始学习率设为0.001,批大小设为16,共训练50轮。训练过程采用余弦函数衰减学习率l,如式(3)所示。
(3)
式中:l0为初始学习率;n为训练轮次。使用自适应矩估计优化器(adaptive moment estimation, ADAM)[23]作为网络参数更新的优化算法,其一阶和二阶动量项分别设为0.90和0.99。
2.3 试验结果分析
设计模型性能对比试验、消融试验和稳健性试验来验证改进Bilinear-CNN模型的细粒度识别性能,并采用Top-1准确率作为衡量识别性能的指标。参数量统计网络中参与训练的参数个数之和,单位以百万(M)计,作为衡量参数量的指标。采用浮点运算次数(floating point of operations, FLOPs)作为衡量计算量的指标,单位以十亿(B)计。使用PyTorch框架中的torchstat软件库计算模型的参数量和FLOPs。
2.3.1 模型对比试验
在识别效果方面,将改进的Bilinear-CNN模型和CD-CNNs模型[13]、ResNet50模型[15]、原始Bilinear-CNN模型[19]进行比较,其中,CD-CNNs是基于检测服装组件的图像识别模型,ResNet50是通用的图像识别模型。4种模型经训练后对于服装风格的识别效果如表1所示。
表1 服装图像风格识别效果对比
由表1可知:相比原始Bilinear-CNN模型,改进Bilinear-CNN模型的识别准确率提升2个百分点,减少了40%的参数量和52%的计算量;改进Bilinear-CNN模型的识别准确率(76.4%)接近最高值77.7%,但其参数量仅为CD-CNNs模型的75%。该试验结果证实了本文所提方法的有效性。
2.3.2 消融试验
设计两组消融试验。消融试验一用于对比空间注意力机制和单特征通道的双线性池化方法对识别性能的影响,如表2所示。消融试验二用于对比在不同深度的特征图引入空间注意力网络对识别性能的影响,如表3所示。
表2 消融试验一的结果
表3 消融试验二的结果
对比表2中前两行试验数据可知,引入空间注意力机制之后,在未显著增加网络参数量和计算量的前提下,风格识别的准确率上升了1.2个百分点。这是因为所提出的空间注意力网络仅使用了一个大小为3×3×2的卷积核,参数量为18,远小于百万(M)量纲,可近似忽略。比较表2中第1行和第3行的试验数据可知,单特征通路的双线性池化方法在仅增加3 M参数量、0.3 B计算量的前提下,将识别准确率提升到了75.2%。由表2中的第4行数据可知,同时使用空间注意力机制和单特征通道的双线性池化方法使得识别准确率达到最高值76.4%,均优于表2中1~3行的识别准确率。由此验证了空间注意力机制抑制背景干扰的作用以及双线性方法挖掘细粒度特征的能力。
由表3可见:随着深度的增加,识别准确率逐步提升;在conv5_3引入空间注意力网络时,识别准确率达到最高值76.4%。这验证了高级语义信息有助于挖掘细粒度特征。
2.3.3 稳健性试验
在实际应用中,由于拍摄条件的限制,在成像的服装图像中存在旋转、低分辨率和光照等扰动,因此,服装风格识别系统的稳健性是面向实际应用的需求之一。对改进前后的Bilinear-CNN模型进行稳健性测试。对测试集中图像分别进行旋转变换、缩放变换和亮度变换,依次增大各变换参数的随机取值范围,分别对测试集中图像进行5次试验,识别准确率取5次试验均值。
稳健性试验结果如表4所示。其中,旋转角度是指旋转变换后的图像与原图像夹角,图像尺寸是指尺度变换后的图像空间分辨率,亮度因子是指亮度变换后的图像相比原始图像的整体亮度增益。由表4可知,改进Bilinear-CNN模型的识别准确率下降幅度较小,均优于原始Bilinear-CNN模型,说明所提方法针对3种扰动具有较好的识别稳健性。当进一步扩大参数随机取值范围时,识别准确率将急剧下降,此时需要通过数据扩充或扰动参数估计来提高识别模型的稳健性。
表4 稳健性试验结果
3 结 语
针对服装风格的细粒度识别问题,提出一种改进的Bilinear-CNN模型。在VGG16特征提取网络的输出特征图中引入空间注意力机制,增强对图像中服装目标区域的感知能力,抑制复杂背景的干扰。设计了一种单特征通路的双线性池化方法,通过两种不同的池化操作挖掘细粒度特征。试验结果表明,相比原始Bilinear-CNN模型,所提方法使得识别准确率提升了2个百分点,同时减少了40%的参数量和52%的计算量。下一步研究工作将聚焦于强稳健性的细粒度识别问题及其在服装图像风格识别模型中的应用。