作者单位:港大, 同济大学, 字节AI Lab, UC伯克利
论文以及源码获取
论文下载:点击
论文题目
《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》
《Micro-YOLO:探索目标检测压缩模型的有效方法》
参考文献
Hu L. and Li Y. (2021). Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model.In Proceedings of the 13th International Conference on Agents and Artificial Intelligence - Volume 2: ICAART, ISBN 978-989-758-484-8, pages 151-158. DOI: 10.5220/0010234401510158
1. 研究背景
深度学习模型在目标检测的性能上取得了重大突破。然而,在传统模型中,例如Faster R-CNN和YOLO,由于计算资源有限和功率预算紧张,这些网络的规模使其难以部署在嵌入式移动设备上。
➢现有方法
(1)量化 (2)剪枝 (3)知识蒸馏 (4)低秩分解
➢现有研究
(1)YOLO-lite:开发了YOLO-Lite网络,其中从YOLOv2-tiny中删除了批量归一化层以加速目标检测
(2)YOLO nano:Yolo nano创建了一个高度紧凑的网络YOLO-nano,它是一个基于YOLO网络的8位量化模型,并在PASCAL VOC 2007数据集上进行了优化。
➢本文目的
本文在不影响目标检测质量的情况下开发了一种高效轻量且快速的物体检测模型的方法。
2. 贡献
(一)提出了一种新的基于轻量级CNN的目标检测模型,即基于YOLOv3-Tiny的Micro-YOLO,它在保持检测性能的同时显着减少了参数数量和计算成本。
(二)设计渐进式通道级剪枝算法以最小化数量参数并最大化检测性能。
(三)与原始YOLOv3-tiny网络相比,所提出的Micro-YOLO网络将参数数量减少了3.46倍,乘法累加操作(MAC)减少了2.55倍,同时在COCO数据集上评估的mAP略微减少了0.7%。
3. 相关工作
3.1 DSConv
链接:https://arxiv.org/pdf/1901.01928v1.pdf
原理:将传统的卷积内核分解为两个组件来实现这一点。其中之一是只有整数值张量,不可训练,并根据预训练网络中浮点 (FP) 权重的分布进行计算。另一个组件由两个分布移位器张量组成,它们将量化张量的权重定位在模拟原始预训练网络分布的范围内:其中一个移动每个内核的分布,另一个移动每个通道。这些权重可以重新训练,使网络能够适应新的任务和数据集。
从原理可以知道他最重要的有两个组件,1.可变量化内核 (VQK)-浮点模型量化 2.改变 VQK 的分布以试图模仿原始卷积核的分布
DSConv 的总体目标是通过使用量化和分布偏移来模拟卷积层的行为。通过将浮点运算替换为整数运算,将卷积核中的内存使用量减少了 14 倍,并将运算速度提高了 10 倍。
3.2 MBConv
MBConv 结构主要由一个 1x1 的普通卷积(升维作用),一个 kxk 的 Depthwise Conv 卷积。k 的具体值主要有 3x3 和 5x5 两种情况,一个 SE 模块,一个 1x1 的普通卷积(降维作用),一个 Droupout 层构成。
3.3 SENet
4. 主要内容
4.1 Micro_YOLO
为了减小网络的大小,研究者探索了可选择的轻量级卷积层来替代YOLO网络中的卷积层Conv。MobileNet网络采用两个轻量级卷积层(a)DSConv和(b)MBConv。
其中k表示内核大小,Cin表示输入通道数,Cout表示输出通道数,W和H表示特征图的宽度和高度,α和β分别表示MBConv中的扩展因子和缩减因子。
4.2 Progressive Channel Pruning
在确定新提出的Micro-YOLO网络的架构后,研究者可以通过使用剪枝技术进一步减少权重参数。在提出的工作中,研究者采用了粗粒度剪枝,因为DSConv和MBConv层主要由1×1内核大小组成,这为细粒度剪枝留下了最小的空间。因此,研究者提出了一种渐进式剪枝方法来在修改后的网络中搜索“更薄”的架构,具体伪代码流程如图所示:首先我们会在修剪前评估mAP原始值和通道数,紧接着会重新计算新的通道数(每次训练降低1/16的通道数),然后网络被重新训练了20个epoch来重新评估新的mAP(第9-11行)来代替旧的mAP,直到新的mAP的大小比原始的mAP大小低0.5%的时候就结束,并返回修剪后的网络。
5. 仿真分析
5.1
如表1所示,我们计算不同所需参数的数量层类型和不同的输入通道用根据(2)-(7)相同的内核大小。请注意,输出通道的数量是输入通道数量的两倍。如最后两列所示表中,MBConv中使用的参数的数量DSConv层明显小于Conv层。
5.2
了解不同卷积的影响模型尺寸、计算成本和mAP的类型,我们将YOLOv3-tiny的Conv替换为我们提出的策略。表2显示了模型大小,计算由不同卷积组成的网络的代价在COCO数据集上求值的类型和mAP。作为如表所示,只有DSConv的网络层的模型尺寸和计算量要小得多与网络相比,成本由MBConv组成层。但是,使用MBConv层是错误的更有效地维护mAP,而DSConv可应用于减少参数的数量。因此,有必要在网络的Model Size和mAP之间选择一个最优的权衡。如表1和表2所示,在输入通道和卷积层数导致模型尺寸的增加。我们使用DSConv在第12层,MBConv在其余层因为第12层包含了最大的数量的参数。这就导致了模型大小降低了3.46 n,而mAP只退化了1.7%
5.3
内核的选择尺寸是提高mAP的关键。因此,我们选择第3,第5,第7,第9和第11层为YOLOv3-tiny检测部分前的层,探讨不同内核大小对其影响层。对于每一层,我们选择内核大小3 × 3 × 5 × 5,从而得到25=32种不同的排列和组合。为了拯救我们的训练每次实验我们训练20个纪元寻找这些排列的最佳组合和组合。如图4所示,在32种组合中,质量交织着3 × 3和5 × 5内核的网络尺寸是最好的。由此可见,这是最好的mAP是利用大小卷积核来实现的3、5、3、5、3分别在第3、第5、第7、第9、第11层。
5.4
如表3所示,当我们对2/16个通道执行修剪时,大多数卷积层不能进一步修剪。如果我们继续执行修剪操作,mAP 将开始显著降级。因此,表3所示的结果也证实了我们的猜想: 随着网络深度和卷积层通道数量的增加,卷积层对修剪的“容忍度”逐渐增加,使我们能够在更深的层(如第11层和第13层)修剪更多的通道。特别地,我们甚至在不减少 mAP 的情况下,删除了第13层中的6/16个通道,即384个通道。然而,在第15层,我们观察到一个异常情况,即1/16的通道数量不能被修剪。我们怀疑原因可能是这层离检测层太近了。
5.5
表4说明了该模型大小,计算成本,映射COCO数据集和FPS YOLOv3-tiny, YOLO-lite, YOLO-nano和Micro-YOLO。
6. 论文总结
在本文中,我们探讨了几种模型压缩提出了一种改进的目标检测方法基于YOLOv3-的微yolo体系结构很小。我们分析了几种类型的卷积层,如深度可分卷积(DSConv)以及与挤压和的反向瓶颈卷积激励块(MBConv),以确定最优层为我们的Micro-YOLO网络。我们也探讨在这些卷积中不同核大小的影响对Micro-YOLO性能的影响。此外,我们提出了一种新的渐进式通道修剪方法方法使参数的数量最小化计算成本和mAP略有降低原来的网络。微型yolo只需要2.56M参数和1.10GMAC计算实现32.4%的mAP和328帧的成本比原来的YOLOv3-微小的网络。应用修剪技术后,我们可以进一步减少参数的数量和mAP计算成本为1.92M和0.87GMAC的29.3%和357帧。我们也比较我们的工作与其他各种基于yolo的网络对象检测并取得了良好的效果。我们相信我们的方法压缩YOLOv3-Tiny可以高度适用于未来的版本YOLO或其他对象检测模型。