2. 山东如意毛纺服装集团股份有限公司 公司调度中心, 济宁 272004
2. Company Dispatch Center, Shandong Ruyi Woolen Garment Group Co. Ltd., Jining 272004, China
随着电子商务的崛起, 人们选择网购的方式购买商品变得越来越普遍, 据数据统计, 服装行业在电子商务的市场销售额占比已经高达近30%, 中国消费者服装通过线上购买的方式占比近80%. 目前, 购物网站比如淘宝, 拼多多主要通过人工输入文本关键字的形式搜索商品链接, 但是, 当用户需要的商品周边信息不明确时, 这种检索的方式很难达到消费者的真实需求[1]. 而需要快速地找到同类型的服装的前提是需要先进行服装的识别和精确分类, 识别不同的服装类别在不断增长的时尚业中具有很高的潜在价值, 可以监测和分类供商业使用的服装. 由于商业市场上服装产品繁多, 人工识别服装既费时又费力, 并且对同一幅图片受主观性的影响不同的人可能产生不一致的理解, 进而影响检索结果. 因此亟需要一种准确而又高效的服装分类方法.
针对服装图像的分类问题, 研究人员提出了很多的服装分类算法和网络模型, 在基于图像内容的服装分类方法领域方面. Willimon等[2]提出了一种称为L-C-S-H (low level, characteristics, selection mask, high level)的中层服装分类方法, 该方法将问题分解为高(H)、低(L)和多个中层(特征(C)、选择掩模(S))层, 并产生“局部”解决方案来解决全局分类问题. Huo等[3]还提出了一种基于服装局部和整体特征进行融合的分类方法对自然环境场景生活中的各种服装造型进行融合分类, 实验证明了此方法的有效性. Wang等[4]提出了一种知识引导的时尚网络来解决视觉时尚分析的问题, 例如时尚地标定位和服装品类分类. 建议的时装模型利用了该领域的高级人类知识, 在大规模时尚数据集上的实验结果证明时尚语法网络的优越性能. 另外基于深度学习的卷积神经网络, 研究者对卷积神经网络通过不同方式做了优化改进, 目的是能够在服装分类的性能, 准确率或者速度上有所提升. 张振焕等[1]提出通过调整批量归一化层、激活函数层、卷积层的排列顺序和池化层+卷积层的排列顺序来改变参差的优化卷积神经网络提高服装的精度. 王雅静等[5]提出了基于BP神经网络算法的女性服装方面的款式分类方法, 但是没有具体说明服装的分类种类和对比性不足等问题, 而且仅限于女装. 刘童童[6]提出了通过计算每一个卷积层的卷积核容量和覆盖率来评估网络分类效率的方式, 使得深层卷积神经网络可以缩短训练时间, 同时提高了资源利用率. 高妍等[7]将HyperNet网络、空间变换网络(STN), 卷积神经网络R-FCN算法相融合的方式进行对服装图像的识别和分类, 提高了分类准确率, 减少了训练时间, 但是存在分类属性不够精确, 复杂背景下对服装图像的检测影响比较大. 杨天祺等[8]通过批量标准归一化, 改进了卷积层组织结构、增加了冗余分类器的方式大大提高了服装的图像归一化分类的准确率和速度. 严安等[9]为了解决复杂背景下的服装图片的分类, 在AlexNet模型的结构上增加一个全连接层, 提出了一种九层的卷积神经网络, 但是在数据集上的选择的每类服装的数量不均匀, 缺乏说服力. 陈巧红等[10]由于使用多尺度深度可分离卷积来提升模型特征数据信息的丰富度, 多尺度SE-Xception模型在复杂的场景下可以稳定较高的准确率, 提高了鲁棒性, 但是所提模型的结构更加复杂, 增加了一定的参数量和计算量. 上述针对服装图像分类, 从多个方向对卷积神经网络进行了改进, 如增加卷积层, 批量归一化, 调整网络结构顺序等, 但是由于网络深度的不断增加, 参数量过大, 运行时间长等问题依然存在.
本文针对卷积神经网络在处理图像分类时参数过多, 训练时间过长等问题提出了利用一种通道剪枝方法[11]来加速深度可分离卷积的轻量级卷积神经网络Xception, 并嵌入SE-Net模块[12]提升服装图像分类准确率, 使模型更加稳定.
1 Xception剪枝服装图像分类卷积神经网络(convolutional neural network, CNN)是一种比较常用的人工神经网络, 常被应用在图像识别、图像分类和图像分割等领域. 它是由卷积层、池化层和全连接层是相互堆叠在一起形成的CNN架构[13], 如图1所示.
CNN的标准来自LeCun等的作品《Gradient-based learning applied to document recognition》[14], 他们首次在图像识别和分类领域成功地使用卷积神经网络, 1998年, LeCun创建了一种最早的卷积神经网络架构, 称为LeNet5架构. 2012年, Krizhevsky等[15]提出的AlexNet网络模型在ILSVRC (image net large scale visual recognition challenge)网络图像分类竞争中获得第一名, 错误率比第二名低约10%, AlexNet在卷积数据层种采用ReLU作为数据激励函数, 使用了随机数据的失活和动态数据属性增强技术, 缩短了模型的收敛时间. 2013年, Zeiler等[16]提出的ZF-Net在2013年ILSVRC图像分类算法的比赛中取得第一名, 是在AlexNet的基础上做了将第一个卷积核大小调整为7×7, 步长减半的处理, 取得较好的分类效果. 2015年, Simonyan等[17]随后提出了一种使用较小卷积分类核可以代替大卷积分类核的一种VGG-Net分类模型, 同时大大增加了模型层的深度; Szegedy 等[18]提出了采用不同类型大小卷积核可以提升分类准确度的GoogLeNet模型. 2016年He等[19]关于CNN的退化问题提出了Res-Net模型. 2017年, Chollet[20]在CVPR 2017会议中提出的Xception模型在服装图像分类上取得了优于其他模型的效果.
1.1 Xception模型本文研究的框架是基于Xception模型构建, 该框架由输入层, 中层和输出层3个主要组成部分共同组成, 具体结构如图2所示. 它是基于InceptionV3模型的基础上做出的改进. Xception包括36个卷积层14个模块, 采用深度可分离卷积来进行替换Inception V3中卷积模块, 同时加入residual learning结构, 除了第一和最后一个卷积模块, 中间每一个模块都有残差模块连接. Xception网络与Inception网络比较相似, 但有不同之处. 前者首先执行通道空间卷积操作, 每次卷积完成操作之后它都加入了分批归一化和激活函数ReLU. 中间模块采用残差直连结构, 可以减少网络复杂性, 在数据量比较大的服装图像数据集上, 训练效果比Inception V3更好.
1.2 SE-Net模型
SE-Net (squeeze-and-excitation networks)模型是由 Momenta公司的研发团队的高级工程师Hu等[12]提出, 该网络模块在2017年ILSVRC技术挑战赛国际图像处理分类比赛中获得了第一名. SE-Net模块不是一个全新、完整的CNN网络模型, 是一种子可以直接嵌入其他各种网络模型中的子模块. SE模块的结构图如图3所示, 结构操作流程通过使用Squeeze, Excitation和Reweight三个基本操作流程来重标定前面得到的特征. 给定一个新的输入特征x, 特征通道数用C1表示, 通过一系列卷积等一般函数变换后得到一个特征通道数为C2的输入特征.
(1) Squeeze信道特征向量压缩统计操作, 为了有效解决信道特征向量依赖性的问题, 首先将一个全局空间信息特征压缩到一维信道描述符中, 通过使用全局平均池来直接生成一维通道特征统计数据公式实现, 得到包含c个实数的一维信道特征向量, Squeeze通过式(1)计算:
$ _{} \mathbb{F}{sq}_{}\left({u}_{c}\right)=\frac{1}{{W}_{sq}\times {H}_{sq}}{\displaystyle \sum _{i=1}^{{W}_{sq}}{\displaystyle \sum _{j=1}^{{H}_{sq}}{u}_{c}\left(i, j\right)}} $ | (1) |
其中,
(2) Excitation特征激励, 利用在Squeeze操作中所聚集的特征信息, 进行第二个操作, 该操作的目的是完全自动捕获通道间的依赖. 首先它必须考虑是灵活的和非完全互斥的关系, 为了满足这些标准我们采用两个全连接层和Sigmoid激活函数, 公式如下.
$ {\mathbb{F}}_{ex}\left({\textit{z}}\text{, }W\right)=\sigma \left[{W}_{2}\delta \left({W}_{1}{\textit{z}}\right)\right] $ | (2) |
其中, z为Squeeze操作获得的全局描述,
(3) Reweight特征重标定, 将 Excitation 的输出的权重看作是经过特征选择后的每个特征通道的重要性, 然后通过乘法逐通道加权到先前的特征上, 完成在通道维度上的对原始特征的重标定, 公式如下.
$ {\mathbb{F}_{{\text{scale}}}}\left( {{u_c}, {s_c}} \right) = {u_c} \times {s_c} $ | (3) |
其中,
随着卷积神经网络深度的不断加深, 导致了大量的浮点数量的增加, 全连接层也产生了大量的训练浮点参数[11]. 近几年, 研究者们针对这样的问题, 在CNN加速上做出改进, CNN加速工作分为3类: 优化实现(如FFT[21])、量化(如BinaryNet[22])和结构化简化将CNN转换为精简的[23]. 结构化简化主要内容包括: 张量因子分解、稀疏连接、通道剪枝. 张量分解法是将一个卷积层分解成了几个比较有效的卷积层. 但是feature map宽度(channel number)不能减少, 这使得分解现代网络(如GoogLeNet, ResNet, Xception)的1×1卷积层结构变得困难. 这种类型的方法还会增加额外的计算开销. 稀疏连接使神经元或通道之间的连接失效. 虽然它可以达到很高的理论加速比, 但稀疏卷积层的“不规则”形状, 这种实现是欠佳的. 相比之下, 通道剪枝直接减少了特征图的宽度. 因为不需要特别的实现, 它在CPU和GPU上的表现都是比较高效的.
由于传统的剪枝方法需要长时间的再训练程序, 通过多次的随机试验选择通道, 在深度网络上需要较长时间评估每一次实验, 这限制了在深的模型和大的数据集上的实验. 因此, 为了正确的选择最具代表性的渠道, 本文采用一种迭代两步算法的方法, 使用基于线性LASSO回归的方法公式为:
$ \mathbb{F}\left( x \right) = {a_1}{\varphi _1}\left( X \right){{ + }}{a_2}{\varphi _2}\left( X \right){{ + }} \cdots + {a_m}{\varphi _m}\left( X \right) $ | (4) |
其中,
前面已经详细介绍本次研究所使用的模型, 本文改进的Xception剪枝模型与原始Xception模型大体一致, 整体结构如表1所示, 卷积层的前两层标准卷积不变, Conv_3–Conv_7层进行信道剪枝以减少信道数量, 为了保证实验准确率的稳定和运行时间上的平衡性, 在Conv_3–Conv_7层根据实验结果灵活选取是否需要进行剪枝操作, 使用基于线性LASSO回归的方法提取最小且最有代表性的通道, 删除冗余变量通道, 另外, 使用线性最小二乘重构提取剩余通道的数据输出, 两步交替进行. 与原来相比, 改变了卷积神经网络层的内部结构, 在Conv_3–Conv_7, Conv_8和Conv_9层中分别加入SE-Net模块, 增加了对卷积后的特征图大小包括宽高以及通道数的特征压缩, 特征激励和重标定的操作使得可以得到维度相同的特征图, 保留了原全局均值池化层GPA_10与全连接层FC_11, 通过实验验证和分析了所改进模型的优势和可行性, 如表1所示.
表1为改进的Xception网络模型的整体框架, 从第3卷积层开始加入剪枝操作, 即基于LASSO正则化剔除冗余卷积核与其对应的特征图, 然后重构剩余网络, 剪枝操作可选表示根据具体实验结果在准确度和效率上选取一个平衡点, 在第8, 9层上嵌入了SE-Net模型用以增强有用通道, 减弱无用通道, 第10和第11层分别保留了原有的全局均值池化和全连接层.
2 实验结果与分析 2.1 数据集
本实验选取公开DeepFashion数据集[24], 包含的服装图片背景一般为纯色, 复杂度较低, 每个服装包含从不同角度进行拍摄的图像, 又利用特定模型的训练, 部分服装进行了服装位置的精确裁剪, 数据集一共包含了80多万张服装图像, 图片标记了种类, 属性等关键点的位置坐标. 本文选取其中的一部分作为本实验的数据集, 选取10种熟数量相差不大的服装类别, 每种选取2000张左右, 一共选取2万多张, 其中选取80%作为训练集, 20%作为验证集, 部分图片如图4所示.
2.2 实验准备实验环境配置及工具如下: 在带有NVIDIA CUDA 8.0的GPU 机器上安装 MXNet (0.11.0)深度学习库, 采用笔记本Windows 10系统, 12 GB运行内存, PyCharm 2020开发工具, GPU为Intel(R) HD Graphics 520, Python版本为3.6. 由于DeepFashion数据集的尺寸大小不同, 将数据集进行归一化预处理, 统一尺寸大小设置为256×256, 做图像的归一化处理可以加快模型的收敛速度.
2.3 实验结果分析
为了验证所改进的Xception模型的有效性, 将DeepFashion数据集先在Xception模型上作训练和验证, 记录相关的性能数据, 然后Conv_3–Conv_9层保持不变, 在Conv_8和Conv_9层中加入SE-Net模块, 进行再训练, 最后在基础上在Conv_3–Conv_9层进行信道剪枝操作, 由于剪枝操作在准确率和运行时间上具有互斥性, 在Conv_3–Conv_7层根据实验结果调整剪枝操作的次数和卷积层, 进行反复训练对比, 最终实验证明在分别在Conv_3、Conv_5和Conv_7层上做剪枝操作进行通道的选取可以在两者之间达到一个比较好的平衡. 分别记录了3种模型的Top3准确率, 消耗时间和消耗内存大小如表2所示. 3次训练验证均在相同条件下, 从实验结果数据中可以看出, 相对于原始的Xception模型, 加入SE-Net模块的Xception在时间和内存的消耗上边均有小幅度所增加, 但是Top3准确率提升, 3.12个百分点, 而之后加入的LASSO回归的方法提取最有代表性的通道, 删除冗余通道和最小二乘重构剩余通道, 使得模型在精度只降低了0.21的情况下, 大幅度减少了训练时间和内存空间的占用, 缩短了将近3倍. 这证明了所提出方法的可行性和有效性.
为了进一步证明所提出模型的优势和有效性, 本实验也和VGG-6, ResNet-50和Xception模型在最终的平均分类准确率做了对比, 在相同的数据集和实验条件下, 几种不同方法模型的平均服装分类准确率如表3所示, VGG-16模型的平均分类准确率最低为70.23%, 然后ResNet-50, Xception依次升高. 每种均选取均匀种类的服装, 在不同的由数据可知, 提出的通过剪枝通道的SE-Net+Xception模型平均分类精确度最高. 此外, 实验数据集按大小分成了3种, 分别和其他3种模型进行实验对比, 如图5所示, 由图可直观地看出, 随着数据集的增大, 每种模型的服装分类准确率均有不同程度的提升, 相比于其他3种模型, 所提出改进的Xception模型在不同大小的数据集下分类准确率均高于其他模型, 而且在运行效率上均比其他模型用时少. 实验从不同的维度证明了本文所提出模型的优越性, 是一种性能比较好的服装图像分类网络模型.
3 结束语
本次研究提出了一种改进的Xception模型算法, 在Xception的基础上, 加入了SE-Net模块, 这是一种新的架构单元. 它在数据集上实现了比较好的性能. SE-Net模块诱发的特征重要性有助于其他相关领域的压缩, 如网络剪枝等. 为了解决参数过大和内存消耗问题, 在此基础上, 利用LASSO回归的方法提取最有代表性的通道, 删除冗余通道和最小二乘重构剩余通道的方法对Xception模型卷积层进行了剪枝操作, 实验证明, 这样做在很小精度损失的条件下提高了训练速度, 缩小了内存的占用空间. 最后实验证明了, 本文所提出模型和其他模型相比, 大幅度缩短了运行时间, 服装的平均分类准确率也得到了进一步的提升. 但是也有一些不足, 比如如何对复杂背景下服装的精确分类问题, 以及服装图像分类准确率在参数减少的前提下如何仍可以更好地保持精确度的问题等.
[1] |
张振焕, 周彩兰, 梁媛. 基于残差的优化卷积神经网络服装分类算法. 计算机工程与科学, 2018, 40(2): 354-360. DOI:10.3969/j.issn.1007-130X.2018.02.023 |
[2] |
Willimon B, Walker I, Birchfield S. A new approach to clothing classification using mid-level layers. 2013 IEEE International Conference on Robotics and Automation. Karlsruhe: IEEE, 2013. 4271–4278.
|
[3] |
Huo P, Wang YH, Liu QJ. A part-based and feature fusion method for clothing classification. Proceedings of the 17th Pacific Rim Conference on Multimedia. Xi’an: Springer, 2016. 231–241.
|
[4] |
Wang WG, Wang WG, Xu YL, et al. Attentive fashion grammar network for fashion landmark detection and clothing category classification. 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 4271–4280.
|
[5] |
王雅静, 宋丹. 基于BP神经网络的女性服装款式分类技术研究. 轻工科技, 2020, 36(4): 107-109. |
[6] |
刘童童. 基于卷积神经网络的服装图像精细分类[硕士学位论文]. 济南: 山东师范大学, 2019.
|
[7] |
高妍, 王宝珠, 郭志涛, 等. 改进HSR-FCN的服装图像识别分类算法研究. 计算机工程与应用, 2019, 55(16): 144-149. DOI:10.3778/j.issn.1002-8331.1804-0274 |
[8] |
杨天祺,黄双喜. 改进卷积神经网络在分类与推荐中的实例应用. 计算机应用研究, 2018, 35(4): 974-977, 1045. |
[9] |
严安, 王娆芬. 基于CNN改进模型的服装分类方法. 自动化技术与应用, 2019, 38(11): 114-119. DOI:10.3969/j.issn.1003-7241.2019.11.026 |
[10] |
陈巧红, 陈翊, 李文书, 等. 多尺度SE-Xception服装图像分类. 浙江大学学报(工学版), 2020, 54(9): 1727-1735. |
[11] |
He YH, Zhang XY, Sun J. Channel pruning for accelerating very deep neural networks. Proceedings of 2017 IEEE International Conference on Computer Vision (ICCV). Venice: IEEE, 2017. 1398–1406.
|
[12] |
Hu J, Shen L, Sun G. Squeeze-and-excitation networks. Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 7132–7141.
|
[13] |
Madulid JPA, Mayol PE. Clothing classification using the convolutional neural network inception model. Proceedings of the 2019 2nd International Conference on Information Science and Systems. Tokyo: ACM, 2019. 3–7.
|
[14] |
LeCun Y, Bottou L, Bengio Y. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 1998, 86(11): 2278-2324. |
[15] |
Krizhevsky A, Sutskever I, Hinton GE. ImageNet classification with deep convolutional neural networks. Proceedings of the 25th International Conference on Neural Information Processing Systems. Lake Tahoe: Curran Associates Inc., 2012. 1097–1105.
|
[16] |
Zeiler MD, Fergus R. Stochastic pooling for regularization of deep convolutional neural networks. Proceedings of the 1st International Conference on Learning Representations. Scottsdale: ICLR, 2013.
|
[17] |
Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition. arXiv: 1409.1556, 2015.
|
[18] |
Szegedy C, Liu W, Jia YQ, et al. Going deeper with convolutions. 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Boston: IEEE, 2015. 1–9.
|
[19] |
He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas: IEEE, 2016. 770–778.
|
[20] |
Chollet F. Xception: Deep learning with depthwise separable convolutions. Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu: IEEE, 2017. 1800–1807.
|
[21] |
Vasilache N, Johnson J, Mathieu M, et al. Fast convolutional nets with fbfft: A GPU performance evaluation. arXiv: 1412.7580, 2014.
|
[22] |
Courbariaux M, Hubara I, Soudry D, et al. Binarized neural networks: Training deep neural networks with weights and activations constrained to +1 or −1. arXiv: 1602.02830, 2016.
|
[23] |
Jaderberg M, Vedaldi A, Zisserman A. Speeding up convolutional neural networks with low rank expansions. arXiv:1405.3866, 2014.
|
[24] |
Liu ZW, Luo P, Qiu S, et al. DeepFashion: Powering robust clothes recognition and retrieval with rich annotations. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas: IEEE, 2016. 1096–1104.
|