基于Deep Labv3+的苗族服饰识别网络
2022-11-05颜靖柯王慧娇
甘 甜, 蒋 华, 颜靖柯, 王慧娇
(桂林电子科技大学 计算机与信息安全学院,广西 桂林 541004)
民族服饰作为民族文化的载体之一,其结构、式样和图案反映了特定民族的生活习俗、审美风格、色彩爱好、文化心态、宗教观念,它不仅是民族文化特色的载体,也彰显了同一社群内的文化认同感[1]。研究少数民族服饰图案对弘扬和传承民族文化有重大意义。
对于如何更好地分割民族服饰上的饰品(包)、袖子、上衣、裙子 、护腿、裤子、腰带等图案,进而提高识别效果的问题,相关学者已开展大量研究工作。识别少数民族服饰图案的方法可以分为3类:基于Sift[2]+Surf等传统方法、基于区域综合匹配的方法[3]和基于深度学习网络的方法[4]。
服饰图案特征处理方面,Shinde等[5]基于Sift+Surf的传统方法能够找到足够相似的唯一特征信息,但其不仅依赖于理想的实验环境,且存在计算量大、准确性较低、易产生冗余窗口等问题,此外,背景过于复杂易导致无法很好地提取特征信息。针对Sift和Surf检索方法的不足,李珂等[6]提出基于区域综合匹配的方法,首先通过模糊颜色的直方图对图案不同区域的颜色和纹理等进行提取,再进行区域间的加权匹配,最后进行图片检索。但该方法过于依赖颜色,若光照发生变化,则易对实验结果产生较大影响,在实际应用中有较大的局限性。由于深度学习有拟合复杂函数的能力,常被用于识别少数民族服饰图案。雷秦川等[7]采用传统HOG+SVM 方式提取饰品花纹,采用Eff Net[8]分类少数民族服饰图案。虽然该深度学习方法能识别出少数民族服饰图案,但传统HOG+SVM 方式计算量过大,特征信息提取实时性不足。此外,该方式获取的少数民族服饰图案特征信息不平滑,需要进一步拟合。
近年来,深度学习在语义分割技术中迅速发展。Long等[9]设计了不断上采样和下采样的全卷积网络,用CNN代替全连接,将分类网络转变为分割网络,但下采样易导致像素的空间、位置信息丢失。ENet[10]、GCN+[11]通过编码器和解码器还原了图像空间维度、位置信息,解决了下采样细节丢失的问题,但无法获得图像上下文信息和图像的多尺度表示。Chen等[12]对Deep Lab不断优化,增强了网络的感受野,同时能获得多尺度信息,提高分割精度。虽然Deep Lab分割效果有所提升,但仍存在如下问题:训练样本缺乏前景图片,导致正负样本不平衡,背景复杂程度低,反向传播易阻塞损失值传递到较浅的网络层,训练时可能出现梯度爆炸,网络收敛速度慢等问题。
针对上述问题,以苗族服饰图案为例,提出一种基于Deep Labv3+的苗族服饰图案识别网络Efficient-Deep Labv3+。该网络加快了网络训练时的收敛速度,提升了网络的特征信息提取能力;使用的先进训练策略减少了因过拟合产生的负面影响;提升了分割复杂环境下物体和分割相似物体的能力。
1 基于Deep Labv3+的苗族服饰图案识别网络Efficient-Deep Labv3+
Deep Labv3+是由Chen等[12]提出的语义分割网络,使用ASPP(atrous spatial pyramid pooling)[13]结构,采用多尺度捕获更多的特征信息,采用带有空洞因子卷积层[13]增加网络的感受野,能实现像素级别的分类,可更好地提取苗族服饰图案特征信息。通过对其进行优化,提出一种基于Efficient-DeepLabv3+的苗族服饰图案的识别网络。网络步骤如图1所示。首先对输入的服饰图像进行初始化,包括数据增强、标签平滑LS(Label smoothing)[14]等,其次将图像输入编码器进行特征信息提取,通过解码器处理并恢复到原始图像大小,最后通过全连接网络进行图像分割,得到输出结果。
图1 Efficient-DeepLabv3+网络步骤
1.1 Deep Labv3+网络架构
Deep Labv3+网络使用编码器解码器结构。编码器利用卷积进行特征信息提取,获得高维语义信息。基于空洞卷积的金字塔(ASPP)结构如图2所示,包含左侧的1个1×1卷积、空洞因子为6的3×3卷积、空洞因子为12的3×3卷积、空洞因子为18的3×3卷积、1个全局平均池化层,其中每个卷积核数量为256,空洞卷积可利用可用资源控制计算密度,增大网络的感受野;中间表示归一化和激活函数,ASPP结构对输入图像以不同的采样率进行采样,卷积层之间进行归一化,采用ReLU(rectified linear unit)激活函数以增加非线性表达能力;右侧表示整合多尺度信息,其在多个尺度获取上下文图像特征信息,采用并行结构整合多尺度信息,融合1张特征图。解码器通过上采样操作逐渐恢复特征图尺寸,将特征图恢复到原始图像大小,通过语义标签得到对应的语义分割结果。为防止恢复过程中特征丢失,Deep-Labv3+加入了跳跃连接结构,接收编码器下采样前的特征,以与经过编码器后的特征进行融合,从而保证网络能充分学习特征信息。
图2 Atrous Spatial Pyramid Pooling结构
Deep Labv3+的总体架构如表1所示,共包含3部分。
表1 DeepLabv3+的总体架构
第1部分:Deep Labv3+的主干特征信息提取网络,能够提取图像的特征信息。使用Resnet[15],包含Conv Block和Identity Block结构,其中Conv Block包括4个卷积层,它的输入和输出维度不同,不能连续串联,用于改变网络的维度,以间接加深网络深度;Identity Block包括3个卷积层,输入和输出维度相同,可以串联,直接加深网络深度。
第2部分:将主干特征信息提取网络得到的结果Conv_identity 1.8输入ASPP结构,经过1×1的卷积,压缩特征层。
第3部分:先将Conv_identity 1.7的结果采用1×1卷积改变通道数,再将第2部分所得结果包含的特征信息融合在一起,经过2个空洞因子为1的3×3卷积和1个1×1普通卷积后,采用双线性差值恢复到原始图像大小,得到语义分割结果。
Deep Labv3+结构如图3所示,主要分为编码器模块和解码器模块。编码器模块的作用是逐渐减小特征图的大小,捕获更高层的语义信息,解码器模块的作用是逐渐恢复图像的空间信息。
图3 Deep Labv3+中编码器和解码器
1.2 Efficient-Deep Labv3+网络
少数民族服饰图案分割对准确率具有较高要求。通过对Deep Labv3+进行改进,使网络适用于少数民族服饰分割问题。具体改进如下:
1)使用Mosaic数据增强[16],将4张图像合成1张图像,不仅可以丰富检测物体的背景,使网络能识别较小物体,而且在训练时可同时提取4张图像特征信息;
2)使用LS增强网络泛化能力,减少过拟合的影响,降低网络过于相信预测类别的风险;
3)融合Dice损失函数[17]和交叉熵损失函数,得到联合损失函数,解决训练时前景部分丢失和训练不稳定的问题;
4)使用辅助分支结构,主分支损失函数和辅助分支损失函数能共同计算损失值,可计算较浅网络层的损失值;
5)使用多级衰减余弦退火算法跳过局部最优学习率,找到最合适的学习率。
Efficient-Deep Labv3+网络如图4所示。
图4 Efficient-Deep Labv3+网络
1.3 Mosaic数据增强
Mosaic数据增强在YOLOv4[16]中得到了应用,是Cutmix[18]数据增强的改进。Cutmix对A、B两张图像进行操作。首先随机生成一个矩形裁剪区域,裁剪掉图A的矩形框区域,其次将图B中与图A 中被裁剪掉的对应位置的图像放到图A 中被裁剪处,组合成新图像,最后将分类类别标签按一定的比例进行分配。Cutmix计算式为:
其中:xA、xB表示2个不同的训练样本,yA、yB为对应的标签值;M为需要删掉的区域和进行填充的二进制掩码;☉表示逐像素相乘;1为所有元素都为1的二进制掩码;λ属于β分布,λ~β(α,α),令α=1,则λ服从(0,1)的均匀分布;x~、y~分别表示经过Cutmix数据增强后的训练样本和对应训练标签。
Mosaic数据增强将基本数据增强处理后的4张图像分别放入左上角、右下角、左下角和右下角,进行拼接合成1张图像,效果如图5所示。将拼接后的图像传入神经网络中,神经网络可在同一张图里训练不同的对象,不仅极大地丰富了图像背景,而且训练时可同时提取4张图像特征信息。实际任务中,目标对象易被遮挡,并未完整呈现在合成图像上,但神经网络可利用Mosaic数据增强系统地学习被遮挡对象。
图5 Mosaic数据增强后的图像
1.4 标签平滑
Inception[19]的单类情况下,若该类别概率接近1,其他类别概率接近0,导致交叉熵损失函数变得很大,样本属于某个类别的概率非常大,网络太过相信自己的判断,泛化能力减弱,易产生过拟合。LS是常用的正则化技术,对真实样本标签添加了惩罚因子,惩罚标签置信度分布,形成新样本分布。通过对真实样本平滑处理,能软化真实标签与其他类别的相对距离,训练过程中可有效减少过度寻找正确标签的计算量,从而提高网络泛化能力,避免网络过拟合。LS可表示为
其中:δk,y为Dirac函数分布的真实标签;u(k)为类别总数;∈为惩罚权重值;q(k|x)为标签平滑后的真实标签。
1.5 联合损失函数
KL散度衡量用于同一个随机变量x的2个单独概率分布真实值与预测值之间的差异,即
表示样本的交叉熵。
优化过程中,KL散度中前部分不变化,只需关注交叉熵。深度学习中直接用交叉熵作误差函数评估网络。交叉熵损失函数在多分类问题中的计算式为
其中:yi为当前样本的标签;pi为当前样本预测的概率。
V-Net中,鉴于Milletari等[17]在医学影像分割中发现交叉熵损失函数的损失值易陷入局部极小值,使网络偏向于背景,导致出现前景区域常常丢失等问题,提出一个新型损失函数计算Dice损失函数,损失值取值范围为(0,1),
极端场景下,当p和g的值都非常小时,计算得到的梯度值可能非常大,导致训练更加不稳定。因此,使用交叉熵损失值和Dice损失值融合解决模型训练时梯度过大和前景比例丢失的问题,最终联合损失函数为
1.6 辅助分支结构
神经网络反向传播易阻塞损失值传递到较浅的网络层,增加辅助分支有助于计算所有网络层的损失值,优化学习过程,指导神经网络学习。主干特征信息提取网络使用增加了辅助分支结构的ResNet网络,如图6所示。ResNet中res4b22作为辅助分支结构的输出,res5c作为主干结构的输出。辅助分支结构中使用交叉熵损失函数计算损失值,主干结构中使用交叉熵损失函数和Dice损失函数计算损失值。在辅助分支函数和主干损失函数中增加1个权重,主干损失函数能够承担起最大的优化责任。
图6 辅助分支结构
1.7 多级衰减余弦退火算法
优化目标函数时可能存在许多峰值,除全局最优解外还存在很多局部最优解,训练时可能陷入局部最优解,可通过突然增加学习率跳出局部最优解。带重启的随机梯度下降算法使用余弦退火算法[20]跳出局部最优解,但训练时余弦退火算法学习率仅下降和上升1次,也存在无法很好地找到最优学习率的可能。因此,提出多级衰减余弦退火算法,多次降低和升高学习率,找到当前迭代次数最适合的学习率。余弦退火算法和多级衰减余弦退火算法的学习率对比如图7所示。
图7 余弦退火、多级衰减余弦退火曲线
其中:i为当前批次需要训练的次数;ηmax、ηmin 分别为学习率的最大值和最小值,定义了学习率的范围;Tcur为当前网络训练周期数,每个批次运行之后更新;Ti为第i次运行中总的网络训练周期数。
2 实验及结果分析
通过实验验证Efficient-Deep Labv3+网络的有效性。首先对实验所需服饰数据集进行采集,并对实验的评定指标进行设定;其次搭建实验环境,对神经网络的超参数进行设置;最后对Efficient-Deep Labv3+网络进行实验证明。
2.1 苗族服饰数据集
少数民族服饰具有鲜明的民族特色,每种图案和纹路都蕴含着民族文化中的独特寓意,实验采用图案丰富多样,包括多种动植物纹及几何纹的苗族服饰数据集,但目前公开的各种服饰类数据集中还尚未有针对少数民族服饰图案的,所选苗族服饰数据集是由研究者于贵州西江千户苗寨采集而得,从多角度进行拍摄后整理,得到具有12 500张样本的图像库,从中选取测试样本图像2 500张,训练样本图像10 000张。表2为苗族服饰数据集样本分布情况。
表2 苗族服饰数据集分布
2.2 PASCAL VOC2012数据集
PASCAL VOC2012数据集包含分类、检测和分割任务的数据集。其分割任务数据集常用于评价语义分割模型性能。语义分割增强数据集有8 498张训练图片,2 875张测试图片,共有20个语义分类,大部分分辨率集中在500×500。
2.3 评价标准
为判断能否成功分割出苗族服饰图案,利用平均交并比(mean intersection over union,简称MIoU)和类别平均像素准确率(pixel accuracy,简称MPA)作为分割效果的评价指标,MPA 和MIoU 越大,表示网络预测效果越好。MPA 表示将分割出的少数民族服饰每个类真实值的像素点数与该类的所有像素点数的比例相加后求平均值,MIoU 表示将分割出的少数民族服饰每个类真实值与预测值重合部分的像素值占真实值的百分比相加后求平均值。
假定有k+1类,包括k个目标类和1个背景类,则MPA计算式为
2.4 实验设置
实验环境基于Python 3.6,Keras 2.3.1,TensorFlow 1.13,使用GPU 2070Ti,Ubuntu 18.04完成,使用Adam 梯度下降训练网络。参数设置:批尺寸为14,初始批次为0,基础学习率为1×10-3,最小学习率为1×10-7,迭代次数为200。
2.5 定量分析
针对苗族服饰数据集,在Deep Labv3+中分别加入不同的数据增强方法Mix UP[21]、Cut Mix和Mosaic,进行实验对比,以研究不同数据增强方法对网络精度的影响,如表3所示。从表3可看出,在网络中分别加入Mix UP、Cut Mix、Mosaic数据增强方法后,检测指标MIoU 和MPA均有不同程度的提高,增加了训练样本数及背景复杂程度。
表3 不同数据增强方法下的MIoU和MPA
实验中引入不同训练技巧能提高网络预测的精度,如辅助分支结构、余弦退火算法、多级衰减余弦退火算法、LS、不同的损失函数,将它们分别加入Deep-Labv3+中进行实验,结果如表4所示,其中,AL为辅助分支结构,CA 为余弦退火算法,ICA 为多级衰减余弦退火算法,CE为交叉熵损失函数,DC为Dice损失函数。相较于Deep Labv3+,加入辅助分支结构后,网络损失值计算能传入较浅网络层,MIoU 和MPA分别提高了7.95%、5.49%;加入多级衰减余弦退火算法后,能找到梯度下降最优学习率,MIoU和MPA 分别提高到73.72%和87.09%;加入LS后,MIoU 和MPA分别提高了1.15%、0.54%,解决了网络过拟合的问题,分割效果得以提升;使用交叉熵损失函数和Dice损失函数后,MIoU 和MPA 分别提高到77.85%、88.94%,对网络的梯度优化具有较好效果。
表4 加入AL、CA、ICA和LS后的MIoU和MPA
将Efficient-Deeplabv3+ 与CASIA_IVA_SDN[22]、DIS[23]、ERFNet[24]和DRN ResNet-50[25]等网络在分割服饰不同部位上的MIo U 和MPA 进行对比,结果如表5、6所示。从表5、6可看出,相同实验环境下,Deep Labv3+网络特征信息提取和检测能力高于其他网络,每类的平均MIo U 提高到84.96%,MPA提高到93.7%,相较于DRN ResNet-50,MIo U 提升了13.53%,MPA 提升了8.28%,加快了网络收敛速度,减少了网络过拟合,增强了网络的特征信息提取能力,提取的特征信息更加丰富,能更好地适应多干扰环境下的分割任务。
表5 苗族服饰数据集上不同网络的MIoU
2.6 定性分析
为验证提出的网络是否在背景复杂的图片上具有很好的特征提取效果,在PASCAL VOC2012数据集上进行实验。实验结果如图8所示,可见Efficient-DeepLabv3+网络能更好地提取出物体的特征,能分割出物体边缘细节,具有更好的语义分割能力。
表6 苗族服饰数据集上不同网络的MPA
将Deep Labv3+分别加入辅助分支结构、多级衰减余弦退火算法、LS、联合损失函数后的损失函数进行可视化,训练损失值结果如图9所示。从图9可看出,随着所有数据训练完成次数epochs的增加,其损失值Loss_value比DeepLabv3+的低,模型收敛速度也更快。
图9 VOC数据集的训练损失值
2.7 基于Efficient-Deep Labv3+网络苗族服饰图案分割结果
对Efficient-Deep Labv3+、ERFNet、DRN Res-Net-50网络分割苗族服饰图案进行可视化,如图10所示。从图10可看出,绿色框中项圈和蓝色框中裤腿的背景较为复杂,相较于ERFNet和DRN Res-Net-50,Efficient-Deep Labv3+能更好地分割出项圈和裤腿;红色框中衣服和袖子颜色相似,ERFNet和DRN ResNet-50不能很好地分割出袖子和衣服,而Efficient-Deep Labv3+则可以,说明其可以较好地分割出颜色相近的物体。实验结果表明,与ERFNet、DRN ResNet-50网络相比,Efficient-Deep Labv3+网络能更好地处理复杂物体和相似物体的边缘细节等问题,并能更好地进行物体特征提取。
图10 ERFNet、DRN ResNet-50和Efficient-Deep Labv3+网络分割效果
3 结束语
针对苗族服饰图像分割任务中特征信息的丢失问题,提出了一种基于Efficient-Deep Labv3+的苗族服饰图案识别网络。该网络通过Mosaic数据增强增加训练样本数,可提取更多特征信息;使用了LS,在真实标签添加惩罚因子,避免网络过分相信训练样本标签;提出了一种辅助分支结构,充分利用中间层特征所保留的信息计算损失函数,弥补因多层卷积造成的图片部分信息丢失;通过联合损失函数计算损失值,计算最小损失函数和最优模型参数;通过多级衰减余弦退火算法找到最优学习率。与原Deep Labv3+相比,Efficient-Deep Labv3+在苗族服饰数据集上每类的平均MIoU 提高了16.49%,MPA 提高了14.92%,且通过在苗族服饰数据集和PASCAL VOC2012数据集上与不同网络的对比表明,Efficient-Deep Labv3+网络的分割效果得到明显提升,极大地减少了苗族服饰图像分割任务中特征信息的丢失。但由于苗族服饰数据集上小饰品特征信息不丰富,网络可提取到的特征信息有限,导致边缘分割精度不够高。后续将研究小目标物体分割,放大小目标特征信息,提升网络对小目标的分割能力。