基于YOLOv4-GS检测算法的服装识别方法

2022-08-01 04:00田魏伟邱卫根张立臣
现代计算机 2022年11期
关键词:卷积聚类服装

田魏伟,邱卫根,张立臣

(广东工业大学计算机学院,广州 510006)

0 引言

如今,随着电子商务技术的迅速发展,我国服装电商市场规模总体呈逐年井喷增长态势。直播带货销售让用户可以更为真切地感受到服装的实际穿着效果,对服装的效果有更深的了解。但服装直播类型繁多,用户难以高效准确地发现自己喜欢类型的服装。如何快速、精准地对不同类型的服装直播进行分类具有重要的研究意义。

近年来,服装图像分析在图像处理和计算机视觉领域引起了巨大的关注。例如,2016 年公开的最大服装数据集DeepFashion,拥有超过80 万张图片数据,但该数据集的每张图片包含一件服装,因此在此类数据集上训练的模型无法在检测图像中检测多个服装目标。2019 年Ge 等提出了Deepfashion2 数据集,其中包含超过20 万张服装图像,一共拥有13 种不同类型的服装,每张图片包含一个或多个服装目标,弥补了DeepFashion 数据集的缺点。Ge等也尝试使用基于Mask R-CNN 的改进模型对DeepFashion2 进行实验,取得了良好的精度结果,mAP 值达到了66.7%。Mask R-CNN是类似于Faster R-CNN 系列的two-stage 算法,首先识别区域建议框,然后再对其进行分类识别,因此具有较高的准确性和定位能力,但该算法需要大量的参数量与浮点运算量。由于要将服装检测应用到直播当中,就要将模型部署到手机等嵌入式设备当中,其巨量的参数与浮点运算,严重阻碍了这类模型在嵌入式设备上的部署,也极大地限制了这类模型在更广泛领域中的应用。因此,研究基于更轻量级的深度学习算法对于扩展检测模型在服装检测领域的应用具有至关重要的作用。

鉴于Two-stage 算法一直都存在效率方面的巨大劣势,2016 年Iandola 等提出了轻量级神经网络SqueezeNet,通过减少参数量来进行模型压缩,减少模型部署时的额外开销。2017 年Howard 等在文献中提出了MobilNets,利用逐点卷积构造卷积层,实现了更好的性能。2020年Han 等提出了新的轻量级网络GhostNet,其新颖的Ghost 模块使用低廉的操作生成更多的特征图,在效率和准确率方面都优于现有的轻量级网络。但是,由于这些轻量级网络牺牲了检测的准确度,不利于在实际生活中的应用。后续出现了一些花费很小就可以提升网络模型精度的方法,其中注意力机制就是相对高效的一种。注意力机制通过给予人类选择性视觉注意,

其 主 要 包 括 三 部 分:backbone 部 分、Neck 部分、head 部分。Backbone 部分使用CSP⁃DarkNet53 网络提取目标特征,在不同图像细粒度上聚合并形成图像特征。该网络由残差结构和与CSPNet连接的1×1 和3×3 卷积组成。其中残差结构可以有效降低复杂度并提升识别效果。同时,该网络使用了Mish 激活函数,其优点是无边界(正值可以达到任何高度),避免导致训练速度急剧下降的梯度饱和。Mish 函数是非单调函数,保持有小的负值,从而稳定网络梯度流,它的光滑性使它具有较好的泛化能力和对结果的有效优化能力;Neck 部分使用了PANet结构和SPP 模块。PANet 模型通过其金字塔结构,对从骨干网络中提取的三个尺度特征图进行增强,使模型性能获得了极大的提升。SPP模块可以极大地增加感受野,分离出显著的上下文特征;head 部分延续了YOLOv3 的YOLO head 结构设计,其利用前面部分提取的特征得到最终的预测结果,包括目标的类别、框位置信息和置信度。

1.2 YOLOv4-GS算法

为了进一步压缩YOLOv4模型规模,使其轻量化的同时拥有高精度的性能,本文提出一种体积更小,计算量更少的YOLOv4-GS 目标检测模型。

本文首先针对DeepFashion2 数据集进行Kmeans 聚类获得对应的anchors,再将Ghost 模块和SimAM 注意力机制进行深度组合获得GS 模块,并重构CSPDarkNet53 网络,获得新的骨干网络GS- CSPDarkNet53,最终通过迭代训练获得高性能、高精度的YOLOv4-GS模型。

1.2.1 利用K-means聚类方法获得数据集对应的anchors

本模型中,锚框的引入将目标检测的问题转化为检测固定格子内是否存在目标以及预测框与真实框的偏差问题。所以,先验框的设置对预测结果起着至关重要的作用。因此,本文算法使用K-means 聚类生成适应的先验框从而增加模型的检测精度。

主要步骤为:

(1)随机选取9 个样本框分别作为9 个簇的聚类中心;

(2)计算相似性参数,由聚类中心和标签的交集(IOU)决定;

(3)根据参数的值将其他标签划分到对应的簇中;

(4)一轮完成后将这9 个簇的均值作为新的聚类中心。

(5)重复步骤(2)到步骤(4),直到聚类中心不发生变化。最终获得的先验框符合大量服装类型的尺寸,能有效提高模型的检测精度。

本文算法一共输出3 个特征层,所以生成9个anchor boxes,该算法所取的服装数据集的宽度和高度相对应的anchor box如表1所示。

表1 服装数据集对应的anchors

1.2.2 GS模块和GS-CSP模块

在神经网络训练过程中,一般会生成大量的特征图,虽然有利于模型全面理解输入数据,但其中必定存在一定数量的冗余。Han等研究表明,这些冗余特征图可以利用低廉的线性操作映射部分特征图得到。为减少其中大量的卷积运算,利用Ghost 模块将普通的卷积层分成两部分:一部分是正常的卷积操作,另一部分是对卷积操作获得的特征图做简单的线性运算,以生成特征图。这样,降低了整个模型的参数量和计算量。Ghost卷积模块如图2所示。

图2 Ghost卷积模块

但是由此生成的特征图丰富度降低,识别精度受到影响,因此提出GS 模块。与残差模块类似,GS 模块的主干部分是由两个Ghost 卷积块和SimAM 注意力机制进行深度组合构成。其中,利用残差机制,有效地降低了卷积操作的复杂度。最后,将两部分的结果通过特征相加操作构成最后的GS模块。GS模块如图3所示。图3 中,SimAM 是无参数注意力机制,其在特征图推导注意力权值时不需额外的参数,确保了更轻量级和更高效。该注意力机制是通过度量神经元之间的线性可分性来寻找重要的神经元,将这些神经元赋予更高的优先级。定义每个神经元的能量函数如式(1)所示。

图3 GS模块

其中:

x为通道中目标神经元和其他神经元,是空间维度的索引,=×是该通道上的神经元数量,ωb是权重和偏差。采用二值标签,并添加正则项,最终的能量函数如式(2)所示。

式(2)的解析解如式(3)和式(4)所示。

其中

最小的能量计算方法如式(5)所示。

其中

如图4 所示,GS-CSP 模块分为两部分。主干部分是由两个Ghost 模块和GS 模块进行串连,将结果连接到最后。另一部分经过一个Ghost 卷积模块后连接到最后。最后将两部分的结果拼接起来,以有效地缓解梯度消失的问题,并获取丰富的特征。

图4 GS-CSP模块

1.2.3 构建YOLOv4-GS模型

YOLOv4-GS算法框架如图5所示。

图5 YOLOv4-GS算法框架

其中SPP 和CBL 结构分别如图6 和图7所示。

图6 SPP结构图

图7 CBL结构图

本文算法由三部分组成:1、backbone 是由GS 模块重构整个YOLOv4 骨干网络构成的GSCSPDarkNet53 网络,实现更轻量级、更高效的特征提取;2、Neck 部分使用SPP 结构扩大感受野,其中分别利用四个不同尺度的最大池化核13×13、9×9、5×5、1×1 结构进行池化处理,同时,还使用了PANet 特征金字塔结构,利用参数聚合来适用于不同level 的目标检测;3、head部分使用三个不同尺寸的输出头,分别是76×76×255、38×38×255、19×19×255,对于大、中、小目标都有很强的鲁棒性。

2 实验与分析

2.1 实验环境

本实验利用Pytroch 深度学习框架实现YO⁃LOv4-GS 目标检测算法。服务器硬件配置为Nvidia GTX1080ti 8g 显存、内存16 G、Intel(R)Core(R)i5-3230M 处理器。实验的测试环境为Ubuntu16.04 操 作 系 统、Python3.6、Cuda10.0。基础学习率设为0.001,调整方式为到达预定迭代次数后,将现有的学习率乘以0.1 后作为新的学习率,Batch_size 设为16,训练轮次设为50次。

2.2 实验数据集

为了测试本文算法在不同服装检测场景下的效果,训练数据集必须是多样的、丰富的,因此本实验选择在DeepFashion2 数据集上进行训练和测试。

DeepFashion2 是DeepFashion 的 改 进 版,具有大量的流行服装数据,为实验提供了更好的数据基础。DeepFashion2 包含13 个流行服装类别,例如短袖、连衣裙和外套等类型,一共包括49 万张图片80 万个服装实例,训练出的模型具有很好的鲁棒性,在不同场景下进行服装检测都可以起到很好的效果。

2.3 模型重构及优化实验

在目标检测中precision-recall 曲线是分别以精度和召回率为纵轴和横轴的曲线,是该曲线下的面积,是所有类别的平均值,本实验将作为模型评价指标进行对比。如表2所示,本文算法YOLOv4-GS在mAP这个评价指标上优于DeepFashion2 论文中使用mask R-CNN模型得到的检测结果,相比提升了1.1%。

表2 YOLOv4-GS在DeepFashion2上检测结果对比

如表3所示,主要针对模型的骨干网络计算量、骨干网络参数量、模型大小和值进行了对比。引入了GS 模块的YOLOv3 模型back⁃bone的计算量和参数量相比于原生YOLOv3模型几乎都降低到了50%,模型体积下降了34.15%。在DeepFashion2 测试数据集下,值达到了61.5%,对比YOLOv3 模型,提升了1.4% 的。本文模型YOLOv4-GS 相比于传统的YO⁃LOv4 模型,backbone 的计算力和参数量下降了50%左右,模型体积减少了33.12%,值达到了67.8%,相对原生YOLOv4 模型提高了

表3 改进YOLO模型对比

2.1%。

如表3数据所示,本文算法提出的GS模块,引入到YOLOv4 模型后,相对于传统的YOLOv4模型参数量更少,计算力更低,拥有更小的模型大小和更高的精度,对于模型部署有一定的提升作用。由此证明,GS 模块能有效使模型轻量化,模型的体积和运算量得到了有效的压缩,并且模型的精度也得到了提升。YOLOv4-GS 模型的部分识别结果如图8所示。

图8 YOLOv4-GS模型部分识别结果

3 结语

针对现有模型无法满足兼顾效率和检测精度,不能适应嵌入式环境的问题,本文提出更轻量高效的YOLOv4-GS 目标检测算法。本文算法首先为了应对不同的检测任务,对数据集使用K-means 聚类方法获取对应先验框参数。然后深度融合Ghost模块和SimAM注意力机制组成GS 模块,并以之重构整个YOLOv4 模型,获得一个参数少、模型尺寸小、检测效率高和精度高的目标检测器YOLOv4-GS模型。

本文在DeepFashion2 数据集上的实验结果表明,融合GS 模块的YOLOv4-GS 模型取得了较好的效果。相对于DeepFashion2 模型Mask R-CNN,本文算法提升了1.1%的值。相对于原生YOLOv4 算法,本文模型大小减小了33.12%,指标提升了2.1%。实验也表明,GS 模块不仅对YOLOv4 起到了提高效率和精度的作用,在应用到其他模型时也能很好地提升性能,例如,YOLOv3等类似的卷积神经网络模型,都可以参考本文方案进行改进。实验证明了本文算法通过引入GS 轻量模块缩小了深度学习模型的规模,对于深度学习模型在后续嵌入式设备上部署有较好的理论支撑。本实验的更轻量更高效的模型,可以在服装领域起到更好的适应性,同时扩展了深度学习在服装领域的应用。

猜你喜欢
卷积聚类服装
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
基于数据降维与聚类的车联网数据分析应用
基于深度卷积网络与空洞卷积融合的人群计数
基于模糊聚类和支持向量回归的成绩预测
道具服装
卷积神经网络概述
基于密度的自适应搜索增量聚类法
现在可以入手的mina风高性价比服装
服装家纺个股表现