您好, 访客   登录/注册

基于深度可分离卷积与通道裁剪的YOLOv3改进方法

来源:用户上传      作者:

  摘    要:基于YOLOv3和YOLOv3-Tiny网络试验了人脸数据集WiderFace和CelebA的人脸检测。并针对检测结果进行分析,认为神经网络权重中具备大量的参数冗余,将深度可分离卷积与通道裁剪方法应用于深度神经网络的模型压缩,并结合模型量化方法,最终实现轻量级的人脸检测模型。试验结果表明,改进后的模型满足移动端部署的实时性要求,并表现出良好的检测效果。
  关键词:YOLOv3;深度可分离卷积;通道裁剪;模型压缩
  中图分类号:TP391.41            文献标识码:A             文章编号:2095-7394(2020)02-0030-09
  YOLO系列算法是One-Stage目标检测算法的主要代表算法之一,YOLOv1[1]提出以网格划分作为检测器的分配方式,YOLOv2[2]在网格约束的基础上提出了先验框约束,通过为每个网格单元预先设置几个不同尺度的检测器,使检测器专注于某种物体的形状而负责检测与先验框形状近似的物体。
  YOLOv3[3]算法的处理流程如图1所示,在YOLOv2的基础上,借鉴特征金字塔网络[4]的思想,设计了三个不同尺度的检测层,采用多维度特征输出方式,并为每个检测层分配3个先验框。YOLOv3通过边框回归预测的方式预测物体位置,解决了先验框机制线性回归的不稳定性问题,同时,吸收了ResNet中的残差结构并加以改进,设计了DarkNet-53结构作为神经网络的主干部分。针对416×416的图像,算法分别对特征映射尺度为52×52、26×26、13×13的三个尺度,共计10 647个不同位置、不同大小的目标进行预测,从而达到对各类尺度的目标均有较好的鲁棒性。
  1 训练数据集
  采用WiderFace数据集和CelebA数据集作为人脸目标检测的训练样本。WiderFace数据集的数据更贴近自然状况下的人脸数据分布情况,含有大量的遮挡、侧脸、小脸,而CelebA数据集更接近受限情况下的人脸数据分布,以正脸居多,且大多光照稳定、噪声较少。本文选择在WiderFace数据集中收集人脸尺度,并在两个数据集中混合训练。
  1.1  尺寸分布
  考虑到不计算小脸的检测方式,在去除WiderFace数据集中长宽小于20像素的小脸后,对WiderFace数据集人脸数据分布情况进行统计。分布情况如图2所示,其中,横縱坐标均为原始数据的对数。
  1.2 维度聚类
  YOLO算法为加快边框收敛,通过在训练集上应用k-means聚类方法对数据集标注框进行聚类,以使先验框和临近的真实标注框具有更大的IoU,考虑到图像的特殊性,在聚类中使用距离度量公式
  [d(box,centroid)=1-(IoU(box,centroid)。]
  对WiderFace数据集中的人脸尺寸进行聚类,如图3所示,统计了k-means方法中k从2至15的聚类结果,并通过平均IoU评价聚类结果。
  图4表明k=6和k=9情况下聚类数据的详细结果,k=6情况下的6个先验框用于YOlOv3-Tiny网络训练,k=9情况下的9个先验框用于YOLOv3网络训练。其中:k=6下得到的6个先验框尺度分为[22,27], [29,36], [39,50], [58,75], [99,132], [228,304]; k=9情况下得到的9个先验框尺度分为[21,25],[23,31], [27,32],[31,40],[40,50], [53,67],[74,98],[120,160],[260,344]。
  2 YOLOv3训练与性能测试
  2.1  数据集与随机增强
  以聚类得到的人脸尺度作为YOLOv3算法的检测层先验框。为增强网络的鲁棒性,对训练数据实施了大量的数据增强,具体方式如表1所示。
  2.2  模型训练
  分别训练YOLOv3和YOLOv3-Tiny两套网络,其中:YOLOv3采取在WiderFace数据集上以固定416尺度训练225个epoch之后,再使用CelebA数据集随机多尺度微调5个epoch;YOLOv3-tiny采取在WiderFace数据集上以320~608随机尺度训练60个epoch之后,再使用CelebA数据集随机尺度微调20个epoch。以IoU=0.5作为评测指标,最终两个网络在CelebA测试集上获得Precision、Recall均超过99%的好成绩。表2给出在WiderFace测试集上的结果。其中,FP32表示网络参数为32位浮点型。表2给出YOLOv3和YOLOv3-Tiny模型在32位浮点型下的性能,精度数据均是在WiderFace数据集下的测试数据。然而,即使是目前表现最差的YOLOv3-Tiny-416模型,在CelebA测试集下IoU=0.5的测试结果仍为mAP 100%,Precision 99%,Recall 100%。部分检测结果如图5所示。
  考虑到16位浮点型在神经网络推理中的优势,进一步在GeForce RTX 2080Ti下测试网络在16位浮点型下的性能。
  对比表2和表3可知,将模型转换为16位浮点型对模型精度影响较小,相反,由于硬件对16位浮点型计算支持,反而只需要大致一半的计算时间和显存占用,因而16位浮点型量化是一种极其实用的神经网络量化方法。
  3   模型压缩
  神经网络的模型压缩方法主要解决在设备资源受限情况下的神经网络应用问题,本文探究了以darknet19为主干的多种神经网络模型压缩方法,以构建轻量级的神经网络模型。   3.1  深度可分离卷积
  深度可分离卷积[5]分为深度卷积和点卷积。其中深度卷积利用分组卷积的思想,改善了常规卷积对输入特征映射的每个通道都进行卷积操作的方法,其每个滤波器仅对输入特征映射的特定通道进行卷积。而点卷积指通过卷积核尺寸为[1×1]实现的卷积操作,它既能等效于全连接层,又相比[3×3]卷积有参数数量上的优势,因此适用于整合输入通道,此处用于将分组卷积的输入整合为常规卷积。
  考虑深度可分离卷积的计算成本,首先对于标准卷积,假定输入尺度为[DF×DF],输入通道数[M],输出通道数[N],卷积核大小为[Dk],则计算代价为
  [costconv=Dk×Dk×M×N×DF×DF,]
  那么对于深度可分离卷积,易知组卷积和点卷积的计算代价分别为
  [costgroup=Dk×Dk×M×DF×DF,]
  [costpoint=M×N×DF×DF,]
  将两者比较,则有
  [costdepthwisecostconv=1N+1Dk2。]
  针对卷积神经网络,一般卷积核大小[Dk]选值以[3×3]居多,至多不超过[7×7],而输出通道数[N]则以64,128,256,512,1 024居多,可见将一个标准卷积替换为深度可分离卷积后,参数大约可下降至原来的1/9,显然有利于参数减少、模型压缩。
  MobileNet[6]提出了以深度可分离卷积为主干的神经网络,指出深度可分离卷积相比全常规卷积的网络架构可以达到以精度下降1%为代价,而将参数降低85%的效果,同时指出了深度可分离卷积下,深度网络比宽度网络更具优势。
  MobileNetv2[7]改进了文献[6]中的深度可分离卷积模块,指出使用线性激活函数替代点卷积之后的非线性激活函数,从而更多地保留局部特征。同时,提出逆残差块的设计,使用先升维、再降维的卷积块实现卷积操作。
  将改进的深度可分离卷积模块应用于darknet19网络,darknet19网络通过卷积层和最大池化层堆叠而成,考虑到组卷积的性质,将除第一卷积层外的其他非点卷积层替换为深度可分离卷积层,同时,表2表明darknet19网络对WiderFace数据集拟合能力较差,故本文使用CelebA下的[mAP0.75]指标作为评价标准。记此网络模型为D-1-0-Tiny,该网络在训练集中训练15epoch后进行测试。
  表4及图6表明将深度可分离卷积引入原网络模型后,网络精度略有下降,但仍然可以保持一個客观的准确度,证明了深度可分离卷积确实可以起到模型压缩、参数减少的作用。
  3.2  通道剪枝
  神经网络模型剪枝是指在剔除模型中不重要的参数对于模型效果没有太大影响的前提下,再重新微调模型以恢复模型性能的一种方式。本文仅探究神经网络模型剪枝中的结构性通道剪枝[8-9]方法,即通过减去某一层卷积层的滤波器数量进而去除该层产生的部分特征图与下一层的部分卷积核。
  通过在神经网络层中引入宽度因子[α]的方式实现通道剪枝调整模型大小,即使用宽度因子[α]控制输入和输出的通道数,使输入通道数由[M]转变为[αM],输出通道数由[N]转变[αN],则此时公式的结果即等价于:
  [cost(α)=costdepthwisecostconv=αN+α2Dk2。]
  同时,引入最低通道参数[γ],即让经剪枝的卷积层通道数为[max(γ,αM)]。记模型格式为D-[[α]]-[[γ]]-Tiny-[Size],图7和表5为训练过程loss曲线与相关数据。
  模型性能如表6所示,此处特别说明,以下所有模型mAP0.5指标均在99%以上,不再单独列出。
  3.3  模型量化
  神经网络权重量化是一种通过减少表示每个权重所需的比特数来降低存储空间、提升运算效率的神经网络压缩方式。考虑到移动端部署的便捷要求,进一步测试16位整型和8位整型量化[10]的应用效果。
  受限于前端浏览器对于文件大小及堆栈空间大小的限制,本文在原有验证集19 672张图片下随机选取1 000张图片作为验证子集验证性能,表7记录量化后的模型性能指标,Model列参数与表3、表4、表6相同,mAP0.75(8)表示原模型8位整型量化后的性能指标,mAP0.75(16)表示原模型16位整型量化后的性能指标,mAP0.75(32)为32位浮点型性能指标,其参数与表3、表4、表6相同,Size(8/16)表示8位整型与16位整型量化后的模型大小。
  对比表6和表7,易推断神经网络模型经8位整型量化后精度产生了一定的浮动,其中416分辨率下的测试结果出现了大幅度跌落,288分辨率下精度出现了小幅下降,352分辨率下精度出现了一定程度的上升。综合评估下,D-12.5%-32参数的模型在352分辨率下,分辨率精度未下降,模型大小仅为81 KB,能够满足前端浏览器的部署需要。
  4   结论
  笔者认为神经网络具备大量的参数冗余,故而探究了以深度可分离卷积和通道剪枝为代表的神经网络压缩方法,并结合模型量化,对YOLOv3进行优化。试验表明深度可分离卷积引入YOLOv3后,能起到模型压缩、参数减少的作用,检测精度虽略有下降,但仍可以保持较高的精准度。使用结构性通道剪枝方法,通过减去某一层卷积层的滤波器数量进而去除该层产生的部分特征图与下一层的部分卷积核,以达到压缩模型的效果。结合模型量化,试验表明D-12.5%-32参数的模型在352分辨率下,分辨率精度未下降,其模型大小仅为81 KB。通过将模型压缩方案引入YOLOv3,有效地减少了运行时的开销,并保持了较高的检测精度,从而满足了前端浏览器中的部署要求。   参考文献:
  [1] REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: Unified, real-time object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 779-788.
  [2] REDMON J, FARHADI A. YOLO9000: better, faster, stronger[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 7263-7271.
  [3] REDMON J, FARHADI A. YOLOv3: An incremental improvement[J].  arXiv,2018:1804.02767.
  [4] LIN T Y, DOLLAR P, GIRSHICK R, et al. Feature pyramid networks for object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 2117-2125.
  [5] CHOLLET F. Xception: Deep learning with depthwise separable convolutions[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017:1251-1258.
  [6] HOWARD A G, ZHU M, CHEN B, et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications[J]. arXiv,2017:1704.04861.
  [7] SANDLER M, HOWARD A, ZHU M, et al. Mobilenetv2: Inverted residuals and linear bottlenecks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 4510-4520.
  [8] LI H, KADAV A, DURDANOVIC I, et al. Pruning filters for efficient convnets[J]. arXiv,2016:1608.08710 .
  [9] HU H, PENG R, TAI Y W, et al. Network trimming: A data-driven neuron pruning approach towards efficient deep architectures[J]. arXiv,2016:1607.03250.
  [10] DETTMERS T. 8-bit approximations for parallelism in deep learning[J]. arXiv,2015:1511.04561.
  責任编辑    祁秀春
  An YOLOv3 Improvement Method Based on Depth Separable
  Convolution and Channel Clipping
  ZHU Jinming1,TAI Yang2,ZOU Liulei1,FAN Honghui1,ZHU Hongjin1
  (1.School of Computer Engineering,Jiangsu University of Technology,Changzhou 213001,China;2.School of Computer Science,Fudan University,Shanghai 200120,China)
  Abstract: This paper implements face detection on the YOLOv3 and YOLOv3-Tiny networks based on the face datasets WiderFace and CelebA. Based on the analysis of the detection results,it is considered that the neural network weights have a large number of parameter redundancy. We apply the deep separable convolution and channel clipping method to the model compression of the deep neural network,combined with the model quantization method,and finally achieve lightweight level face detection model. Experimental results show that the improved model meets the real time requirements of mobile terminal deployment and shows good detection effect.
  Key  words: YOLOv3;depth separable convolution;channel clipping;model compression
  收稿日期:2019-12-23
  基金项目:大学生创新创业训练计划项目“基于人脸识别的校园新生迎新系统”(201911463034Y);国家自然科学基金                             项目“基于改进稀疏表示与多特征融合的道路监控视频中车辆信息感知”(61806088)
  作者简介:朱金铭,本科生,主要研究方向为图像处理、模式识别。
  指导教师:范洪辉,教授,博士,主要研究方向为图像处理、机器视觉;朱洪锦,副教授,博士,主要研究方向为模式识别、                            机器视觉。

转载注明来源:https://www.xzbu.com/1/view-15331572.htm