轻量级网络论文精度笔(一):《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天前
|
编解码 Java 程序员
写代码还有专业的编程显示器?
写代码已经十个年头了, 一直都是习惯直接用一台Mac电脑写代码 偶尔接一个显示器, 但是可能因为公司配的显示器不怎么样, 还要接转接头 搞得桌面杂乱无章,分辨率也低,感觉屏幕还是Mac自带的看着舒服
|
3天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1540 5
|
1月前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
7天前
|
人工智能 Rust Java
10月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区10月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
578 22
|
3天前
|
存储 SQL 关系型数据库
彻底搞懂InnoDB的MVCC多版本并发控制
本文详细介绍了InnoDB存储引擎中的两种并发控制方法:MVCC(多版本并发控制)和LBCC(基于锁的并发控制)。MVCC通过记录版本信息和使用快照读取机制,实现了高并发下的读写操作,而LBCC则通过加锁机制控制并发访问。文章深入探讨了MVCC的工作原理,包括插入、删除、修改流程及查询过程中的快照读取机制。通过多个案例演示了不同隔离级别下MVCC的具体表现,并解释了事务ID的分配和管理方式。最后,对比了四种隔离级别的性能特点,帮助读者理解如何根据具体需求选择合适的隔离级别以优化数据库性能。
201 3
|
10天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
10天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
578 5
|
23天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
6天前
|
XML 安全 Java
【Maven】依赖管理,Maven仓库,Maven核心功能
【Maven】依赖管理,Maven仓库,Maven核心功能
233 3
|
9天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
327 2