«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (3): 310-314  DOI: 10.19678/j.issn.1000-3428.0059966
0

引用本文  

曹远杰, 高瑜翔. 基于GhostNet残差结构的轻量化饮料识别网络[J]. 计算机工程, 2022, 48(3), 310-314. DOI: 10.19678/j.issn.1000-3428.0059966.
CAO Yuanjie, GAO Yuxiang. Lightweight Beverage Recognition Network Based on GhostNet Residual Structure[J]. Computer Engineering, 2022, 48(3), 310-314. DOI: 10.19678/j.issn.1000-3428.0059966.

基金项目

四川省教育厅高校创新团队项目(15TD0022)

通信作者

高瑜翔(通信作者),教授、博士

作者简介

曹远杰(1997—),男,硕士研究生,主研方向为深度学习、目标跟踪

文章历史

收稿日期:2020-11-10
修回日期:2021-03-08
基于GhostNet残差结构的轻量化饮料识别网络
曹远杰1,2 , 高瑜翔1,2     
1. 成都信息工程大学 通信工程学院, 成都 610225;
2. 气象信息与信号处理四川省高校重点实验室, 成都 610225
摘要:YOLOv4-Tiny目标检测网络算法存在参数多和计算量大等问题,无法部署在资源有限的平台上。提出一种基于GhostNet残差结构的主干轻量级目标检测网络算法YOLO-GhostNet。该算法采用GhostNet结构将普通卷积分成两步,即使用较少的卷积核生成一部分特征图,对生成的特征图通过简单计算获得另一部分特征图,并将两组特征图进行拼接,以减少计算所需资源与参数量。通过GhostNet构建残差结构的YOLO-GhostNet算法在经过批量归一化层优化后模型尺寸只有2.18 MB,较YOLOv4-Tiny算法模型尺寸减小90%。YOLO-GhostNet算法在GPU加速环境下平均处理图片速度比YOLOv4-Tiny算法提高24%,CPU处理速度比YOLOv4-Tiny加快56%。实验结果表明,该算法在饮料测试集中的平均精确度均值达到79.43%,相比YOLOv4-Tiny算法,其在精度无损失情况下能够大幅降低网络计算量和参数量,同时加快推理速度,更适合部署于资源算力不足的嵌入式设备。
关键词深度学习    卷积神经网络    YOLOv4-Tiny算法    残差结构    轻量化    目标检测    
Lightweight Beverage Recognition Network Based on GhostNet Residual Structure
CAO Yuanjie1,2 , GAO Yuxiang1,2     
1. College of Communication Engineering, Chengdu University of Information Technology, Chengdu 610225, China;
2. Meteorological Information and Signal Processing Key Laboratory of Sichuan Education Institutes, Chengdu 610225, China
Abstract: To alleviate the problem that the Yolov4-Tiny algorithm cannot be deployed on a platform with limited resources due to its large number of parameters and heavy computational requirements, a lightweight target detection network based on GhostNet residue structure is proposed in this study.The proposed network adopts the GhostNet structure to divide ordinary convolution into two steps, that is, a small number of convolution kernels are used to generate one part of the feature graph, and the other part of the generated feature graph is obtained through simple calculation, and the two groups of feature graphs are spliced, which reduces the required resource load and number of parameters.This study indicates that the normalization layer of Yolov4-Tiny algorithm reduces the model size leveraging the residue structure built by GhostNet to only 2.18 MB, which is 90% smaller than that of the original Yolov4-Tiny algorithm.The average image processing speed of Yolov4-Ghostnet algorithm is 24% faster than that of Yolov4-Tiny algorithm with respect to GPU acceleration and 56% faster regarding CPU processing.The experimental results indicate that the algorithm achieves a mean Average Precision(mAP) value of 79.43% on the beverage test set.Compared to the Yolov4-Tiny algorithm without loss of accuracy, the proposed algorithm significantly reduces the amount of network computational load and its number of parameters, speeds up the reasoning speed, and is more suitable to be deployed in embedded devices with insufficient resource computing power.
Key words: deep learning    Convolutional Neural Network(CNN)    YOLOv4-Tiny algorithm    residual structure    lightweight    object detection    

开放科学(资源服务)标志码(OSID):

0 概述

卷积神经网络自提出以来在计算机视觉领域被广泛应用。在生活中运用智能机器可以节省人力资源,例如自动售水机、无人超市等。但是当售水机部署在学校等人流量较多的地方时,售水机暴露出效率低、耗时长等缺点。假设给机器安装上饮料自动识别,饮料选择和刷脸支付一体化会使售水机效率更高。因此,饮料等商品的识别对于无人售卖机、智能化超市等是非常必要的。

深度学习在目标识别与检测上有着较强的鲁棒性,深层神经网络能够在复杂环境下对目标具有较好的识别性能。随着对目标检测性能要求的提高,研究人员提出了许多深层神经网络。例如,2014年ILSVRC竞赛提出的VGGNet[1]和GoogleNet[2],2015年提出的ResNet以及后来提出的DenseNet[3]等。但是随着性能的提高卷积层数也随之增加,从而出现权重参数较大和设备推理速度慢的问题。因此,上述方法在实际应用中常因为参数量高和效率低而不能部署在资源有限的设备上。

为解决效率和存储问题,研究人员采取剪枝[4]、量化[5]、知识蒸馏[6]以及设计轻量化网络的方法来提高推理的速度。例如针对参数和推理速度推出的YOLOv3-Tiny[7]网络是YOLOv3[8]网络的一个简化版;邵伟平等[9]提出采用MobileNet作为YOLOv3主干的网络,在基本没有精度损失的情况下模型尺寸减小到26 MB,相对于YOLOv3减少了90%;刘万军等[10]提出采用深度可分离卷积[11]构建反残差模块来替换YOLOv3-Tiny的主干网络,在精度无损失的情况下模型尺寸减小到18.2 MB,相对于YOLOv3-Tiny减少了47.7%。但是以上这些网络相对于内存较低的处理器还是过于庞大。

近年来研究人员设计一些高效的网络模型,例如IANDOLA等[12]提出SqueezeNet,主要是将3×3的卷积替换为1×1的卷积,通过减少3×3卷积的通道数等来减小计算量和参数量;HOWARD等[13-14]提出了MobileNets,采用大量的深度可分离卷积设计的神经网络,该结构可以很大程度地减少参数量和计算量。但是使用深度可分离卷积也存在缺陷,例如EfficientNet网络[15]使用了大量低计算量(FLOPs)和高数据读写量的操作。由于GPU访存带宽的限制,网络浪费大量的时间在显存中读写数据。当显存较低时,即使计算量较低推理速度也很慢。例如EfficientNet-B3的计算量不到ResNet50[16]的1/2,推理速度却比ResNet50慢了1倍。本文针对目标检测网络计算量、参数量大以及设备推理速度慢等问题,设计一种基于GhostNet[17]残差结构网络架构作为YOLOv4-Tiny的主干来降低计算量和参数量,以提高运算效率。

1 YOLOv4-Tiny网络

YOLO算法[18-19]是近年来较受欢迎的神经网络算法,该算法使用回归的方法进行目标检测。YOLO用一个神经网络结构可以同时预测出预测框和类别概率,具有执行速度快、检测效率高的特点。YOLOv4[20]是2020年提出的神经网络算法,YOLOv4-Tiny是缩小版的YOLOv4,YOLOv4-Tiny结构如图 1所示。

Download:
图 1 YOLOv4-Tiny网络结构 Fig. 1 YOLOv4-Tiny network structure

YOLOv4-Tiny模型尺寸仅为23 MB,有21层卷积层、3层Maxpool层和2层步长为2的卷积。当输入为416尺寸时输出为13×13和26×26两种大小的输出层[21]图 1中虚线部分为Resblock_body[22],该结构经过第一个卷积层后将特征图分组后进行后续的操作。YOLOv4-Tiny采用了两层两步长的普通卷积和3个Resblock_body结构作为主干。采用Resblock_body结构提高了特征的复用,相较于YOLOv3-Tiny,采用传统卷积作为主干网络有着更好的特征提取,在加快推理速度的同时使得参数更少。

2 YOLO-GhostNet算法 2.1 GhostNet残差结构

在经过卷积后的特征图是比较相似的,GhostNet的思想是将传统的卷积分两步进行:第1步使用较少的卷积核生成一部分特征图;第2步对第1步生成的特征图使用比较简单的计算获得另一部分特征图,最后将两组特征图拼接在一起。第2个部分的计算可以采用3×3或5×5的通道卷积来替代。标准卷积与GhostNet卷积过程如图 2所示。

Download:
图 2 标准卷积与GhostNet卷积 Fig. 2 Standard convolution and GhostNet convolution

假设输入特征图为$ {D}_{i}\times {D}_{i}\times M $,标准卷积核的宽和高为$ K $,GhostNet卷积的第1部分卷积核的宽和高为$ {K}^{{'}} $,第2部分为$ {K}^{{'}{'}} $,输出特征图为$ {D}_{o}\times {D}_{o}\times N $

标准卷积的计算量为:

$ 2(K\times K\times M\times N\times {D}_{o}\times {D}_{o}) $ (1)

GhostNet卷积的计算量为:

$ 2\left({K}^{{'}}\times {K}^{{'}}\times M\times \frac{N}{2}\times {D}_{o}\times {D}_{o}\right)+ $
$ 2\left({K}^{{'}{'}}\times {K}^{{'}{'}}\times 1\times \frac{N}{2}\times {D}_{o}\times {D}_{o}\right) $ (2)

标准卷积的参数量为:

$ K\times K\times M\times N $ (3)

GhostNet卷积的参数量为:

$ {K}^{{'}}\times {K}^{{'}}\times M\times \frac{N}{2}+{K}^{{'}{'}}\times {K}^{{'}{'}}\times 1\times \frac{N}{2} $ (4)

针对Resblock_body计算量大、参数量大、推理速度慢等问题,本文提出采用GhostNet残差结构。该结构使用标准卷积与点卷积进行降通道,这里第2层卷积层通道为第1层卷积层的1/2,然后使用5×5的通道卷积获得另一半特征图,通过一个Concat层拼接起来后与第一层特征图相加。GhostNet残差结构如图 3所示。

Download:
图 3 GhostNet残差结构 Fig. 3 GhostNet residual structure

假设经过卷积过后没有改变特征图大小,GhostNet残差结构与Resblock_body结构的输入特征图大小都为$ F\times F\times P $,第1个卷积层大小都为$ C\times C\times P\times Q $,则GhostNet残差结构与Resblock_body结构计算量之比为:

$ \frac{{C}^{2}\times P+\frac{1}{2}\times Q+\frac{25}{2}}{{C}^{2}\times P+\left(\frac{1}{2}{C}^{2}+1\right)\times Q} $ (5)

在步长为1的卷积时,计算量之比等于参数量之比。$ P\mathrm{、}Q $为输入输出通道数,一般远大于$ C $,根据式(5)可以明显看出,当输入特征图相同时,GhostNet残差结构在参数量和计算量上都比YOLOv4-Tiny的Resblock_body结构更低,理论上推理速度也更快。

2.2 YOLO-GhostNet网络

YOLO-GhostNet网络各层参数如表 1所示。

下载CSV 表 1 YOLO-GhosNet网络参数 Table 1 YOLO-GhosNet network parameters

YOLOv4-Tiny网络相对于YOLOv3-Tiny网络,无论是在识别精度还是模型尺寸上都有不少的改进。但是网络在类似于CPU这样的处理器上,还是显得有些庞大。因此,本文将GhostNet残差结构代替YOLOv4-Tiny的Resblock_bod结构,将网络大部分3×3标准卷积采用由一个点卷积和一个5×5的通道卷积所组成的GhostNet卷积替代。由式(1)和式(2)可知,使用GhostNet卷积替代标准卷积会随着输入通道的变化减少计算量和参数量,当输入通道越大时,计算量减小越多。YOLO-GhostNet相比于YOLOv4-Tiny网络计算量减小为原来的31%,参数量减小为原来的10%。

3 实验结果与分析 3.1 实验数据和平台

本文实验采用10 097张饮料数据集,分别包括雪碧、可乐、绿茶和王老吉4种饮料,每个种类大约2 500张。测试集908张,训练集8 281张,验证集908张。本次实验在Windows10操作系统下进行,软件平台为PyCharm,训练与验证框架为Keras Tensorflow1.13-GPU以及CPU版本。硬件为AMD Ryzen5 3500X型号CPU,GTX1060 6G型号GPU,Batchsize设置为4,学习率采用0.001与0.000 1训练100个epoch,直到Loss不再变化自动终止训练。

3.2 结果分析

4种饮料在2个算法检测精度如图 4所示。由图 4可知,YOLO-GhostNet在可乐和绿茶2个种类的精度比YOLOv4-Tiny算法高,在另外2种种类略微低一点。平均精确度均值(mAP)为79.43%,相较于YOLOv4-Tiny基本没有损失。YOLO-GhostNet网络有12个BN层,BN层在训练时对算法有用,但是在推理时会增加算法访存量和复杂度。由于BN层在做线性运算,因此可以将BN层融入到卷积层。由于深度学习网络有较好的鲁棒性,进行BN层的融合基本不会影响精度,还可以加快推理速度。BN层优化前后部分参数如表 2所示。

Download:
图 4 YOLO-GhostNet与YOLOv4-Tiny算法检测精度对比 Fig. 4 Comparison of detection accuracy between YOLO-GhostNet and YOLOv4-Tiny algorithm
下载CSV 表 2 YOLO-GhostNet网络BN层优化前后部分参数 Table 2 Some parameters before and after BN layer optimization YOLO-GhostNet network

表 2可知,经过BN层优化后YOLO-GhostNet网络在各种类的精度并没有损失,反而在参数个数上减少了4 632个参数,对于参数影响虽然不大,但是在一定程度上减少了网络访存量,使得在CPU上的推理速度快了22%,GPU上的推理速度快了10%。

YOLO-GhostNet与YOLOv4-Tiny以及经过BN层优化后的YOLO-GhostNet算法各项参数如表 3所示。

下载CSV 表 3 YOLO-GhostNet与YOLOv4-Tiny各参数对比 Table 3 Comparison of parameters between YOLO-GhostNet and Yolov4-Tiny

表 3可知,YOLO-GhostNet相较于YOLOv4-Tiny算法在输入为416×416×3大小时,平均精确度基本无损失,模型尺寸和计算量却下降较多,大幅减少了设备的资源消耗,提高了模型的性价比,在推理时间上由于GPU对卷积加速支持程度的区别,推理时间并没有快很多,而在CPU处理器上运行时,优势可以明显体现出来,对CPU和计算资源不足的处理器是非常合适的。

4 结束语

本文设计一种YOLO-GhostNet轻量级网络模型。该模型采用GhostNet残差结构代替原网络的Resblock_body,能够解决计算量和参数量大以及推理速度慢而难以部署到计算资源少的设备的问题。此外,将YOLO-GhostNet算法运用NCNN框架经过半精度量化和BN层优化后,在AMD Ryzen5 3500X型号CPU上推理时处理一张图片只需要45 ms,相对YOLOv4-Tiny算法速度提高58%,量化后的模型大小为1.1 MB,可在CPU上达到实时检测的效果。

参考文献
[1]
SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[EB/OL]. [2020-10-10]. http://www.arxiv.org/pdf/1409.1556.pdf.
[2]
SZEGEDY C, LIU W, JIA Y, et al. Going deeper with convolutions[C]//Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. Washington D. C., USA: IEEE Press, 2014: 1-9.
[3]
HUNG G, LIU Z, MAATEN L V D, et al. Densely connected convolutional networks[C]//Proceedings of IEEE CVPRʼ17. Washington D. C., USA: IEEE Press, 2017: 235-246.
[4]
MOLCHANOV P, MALLYA A, TYREE S, et al. Importance estimation for neural network pruning[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D. C., USA: IEEE Press, 2019: 11264-11272.
[5]
ZHOU S, WU Y, NI Z, et al. DoReFa-Net: training low bitwidth convolutional neural networks with low bitwidth gradients[EB/OL]. [2020-10-10]. https://arxiv.org/abs/1606.06160.
[6]
HINTON G, VINYALS O, DEAN J. Distilling the knowledge in a neural network[J]. Computerence, 2015, 14(7): 38-39.
[7]
KIM D H. Evaluation of COCO validation 2017 dataset with YOLOv3[J]. Evaluation, 2019, 6(7): 10356-10360.
[8]
REDMON J, FARHADI A. YOLOv3: an incremental improvement[EB/OL]. [2020-10-10]. http://arxiv.org/pdf/1804.02767.
[9]
邵伟平, 王兴, 曹昭睿, 等. 基于MobileNet与YOLOv3的轻量化卷积神经网络设计[J]. 计算机应用, 2020, 40(z1): 8-13.
SHAO W P, WANG X, CAO Z R, et al. Design of lightweight convolutional neural network based on MobileNet and YOLOv3[J]. Journal of Computer Applications, 2020, 40(z1): 8-13. (in Chinese)
[10]
刘万军, 高明月, 曲海成, 等. 基于反残差结构的轻量级多目标检测网络[J]. 激光与光电子学进展, 2019, 56(22): 65-73.
LIU W J, GAO M Y, QU H C. Light-weight multi-object detection network based on inverted residual structure[J]. Laser and Optoelectronics Progress, 2019, 56(22): 65-73. (in Chinese)
[11]
CHOLLET F. Xception: deep learning with depth wise separable convolutions [C]/ /Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D. C., USA: IEEE Press, 2017: 1251-1258.
[12]
IANDOLA F N, HAN S, MOSKEWICZ M W, et al. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and < 0.5 MB model size[EB/OL]. [2020-10-10]. http://arxiv.org/pdf/1602.07360.
[13]
HOWARD A G, ZHU M, CHEN B, et al. MobileNets: efficient convolutional neural networks for mobile vision applications[EB/OL]. [2020-10-10]. http://arxiv.org/pdf/1704.04861.
[14]
HOWARD A, SANDLER M, CHU G, et al. Searching for MobileNetV3[EB/OL]. [2020-10-10]. http://arxiv.org/abs/1905.02244v3.
[15]
TAN M, LE Q V. Efficientnet: rethinking model scaling for convolutional neural networks[EB/OL]. [2020-10-10]. http://arxiv.org/abs/1905.11946.
[16]
HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D. C., USA: IEEE Press, 2016: 145-158.
[17]
HAN K, WANG Y, TIAN Q, et al. GhostNet: more features from cheap operations[C]//Proceedings of 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle, USA: IEEE Press, 2020: 1577-1586.
[18]
REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington D. C., USA: IEEE Press, 2016: 779-788.
[19]
REDMON J, FARHADI A. YOLO9000: better, faster, stronger[C]//Proceedings of IEEE Conference on Computer Vision & Pattern Recognition. Washington D. C., USA: IEEE Press, 2017: 6517-6525.
[20]
BOCHKOVSKIY A, WANG C Y, LIAO H Y M. YOLOv4: optimal speed and accuracy of object detection[EB/OL]. [2020-10-10]. http://arxiv.org/abs/2004.10934.
[21]
XU Z F, JIA R S, LIU Y B, et al. Fast method of detecting tomatoes in a complex scene for picking robots[J]. IEEE Access, 2020, 7: 11123-111135.
[22]
管军霖, 智鑫. 基于YOLOv4卷积神经网络的口罩佩戴检测方法[J]. 现代信息科技, 2020, 4(11): 9-12.
GUAN J L, ZHI X. Mask wearing detection method based on YOLOv4 convolutional neural network[J]. Modern Information Technology, 2020, 4(11): 9-12. (in Chinese)