轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》

简介: 《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》这篇论文提出了一种基于YOLOv3-Tiny的轻量级目标检测模型Micro-YOLO,通过渐进式通道剪枝和轻量级卷积层,显著减少了参数数量和计算成本,同时保持了较高的检测性能。

作者单位:港大, 同济大学, 字节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

![在这里插入图片描述](https://img-blog.csdnimg.cn/c88d9bb4c85f4687a4c48dc262968bc1.png
表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或其他对象检测模型。

目录
相关文章
|
21天前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##
|
21天前
|
机器学习/深度学习 存储 人工智能
【AI系统】轻量级CNN模型综述
本文介绍了几种常见的小型化CNN模型,包括SqueezeNet、ShuffleNet、MobileNet等系列。这些模型通过减少参数量和计算量,实现在有限资源下高效运行,适用于存储和算力受限的场景。文章详细解释了各模型的核心技术和优化策略,如Fire Module、Channel Shuffle、Depthwise Separable Convolutions等,旨在帮助读者理解和应用这些高效的小型化CNN模型。
40 3
|
25天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真
本项目展示了使用MATLAB2022a实现的贝叶斯优化、CNN和GRU算法优化效果。优化前后对比显著,完整代码附带中文注释及操作视频。贝叶斯优化适用于黑盒函数,CNN用于时间序列特征提取,GRU改进了RNN的长序列处理能力。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
174 7
|
28天前
|
机器学习/深度学习 自然语言处理 算法
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
38 1
|
1月前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
本文旨在通过深入浅出的方式,为读者揭示卷积神经网络(CNN)的神秘面纱,并展示其在图像识别领域的实际应用。我们将从CNN的基本概念出发,逐步深入到网络结构、工作原理以及训练过程,最后通过一个实际的代码示例,带领读者体验CNN的强大功能。无论你是深度学习的初学者,还是希望进一步了解CNN的专业人士,这篇文章都将为你提供有价值的信息和启发。
|
1月前
|
机器学习/深度学习 人工智能 网络架构
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
46 1
|
1月前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)入门
【10月更文挑战第41天】在人工智能的璀璨星空下,卷积神经网络(CNN)如一颗耀眼的新星,照亮了图像处理和视觉识别的路径。本文将深入浅出地介绍CNN的基本概念、核心结构和工作原理,同时提供代码示例,带领初学者轻松步入这一神秘而又充满无限可能的领域。

热门文章

最新文章