轻量级网络论文精度笔(一):《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或其他对象检测模型。

目录
相关文章
|
2月前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
62 3
|
28天前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
21天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第36天】探索卷积神经网络(CNN)的神秘面纱,揭示其在图像识别领域的威力。本文将带你了解CNN的核心概念,并通过实际代码示例,展示如何构建和训练一个简单的CNN模型。无论你是深度学习的初学者还是希望深化理解,这篇文章都将为你提供有价值的见解。
|
25天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
2月前
|
机器学习/深度学习 编解码 算法
轻量级网络论文精度笔记(三):《Searching for MobileNetV3》
MobileNetV3是谷歌为移动设备优化的神经网络模型,通过神经架构搜索和新设计计算块提升效率和精度。它引入了h-swish激活函数和高效的分割解码器LR-ASPP,实现了移动端分类、检测和分割的最新SOTA成果。大模型在ImageNet分类上比MobileNetV2更准确,延迟降低20%;小模型准确度提升,延迟相当。
62 1
轻量级网络论文精度笔记(三):《Searching for MobileNetV3》
|
2月前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第21天】本文旨在深入探讨深度学习领域的核心组成部分——卷积神经网络(CNN)。通过分析CNN的基本结构、工作原理以及在图像识别、语音处理等领域的广泛应用,我们不仅能够理解其背后的技术原理,还能把握其在现实世界问题解决中的强大能力。文章将用浅显的语言和生动的例子带领读者一步步走进CNN的世界,揭示这一技术如何改变我们的生活和工作方式。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
2月前
|
机器学习/深度学习 人工智能 监控
深入理解深度学习中的卷积神经网络(CNN):从原理到实践
【10月更文挑战第14天】深入理解深度学习中的卷积神经网络(CNN):从原理到实践
130 1
|
22天前
|
机器学习/深度学习 人工智能 自动驾驶
深入解析深度学习中的卷积神经网络(CNN)
深入解析深度学习中的卷积神经网络(CNN)
38 0
|
2月前
|
机器学习/深度学习 SQL 数据采集
基于tensorflow、CNN网络识别花卉的种类(图像识别)
基于tensorflow、CNN网络识别花卉的种类(图像识别)
36 1