目标检测 | MobileNetV3

会议:CVPR 2019
标题:《Searching for MobileNetV3》

论文链接: https://arxiv.org/abs/1905.02244?context=cs

代码:感谢github上大佬们开源,开源代码整理如下:

(1)PyTorch实现1:https://github.com/xiaolai-sqlai/mobilenetv3
(2)PyTorch实现2:https://github.com/kuan-wang/pytorch-mobilenet-v3
(3)PyTorch实现3:https://github.com/leaderj1001/MobileNetV3-Pytorch
(4)Caffe实现:https://github.com/jixing0415/caffe-mobilenet-v3
(5)TensorFLow实现:https://github.com/Bisonai/mobilenetv3-tensorflow

本文仅作为个人学习笔记分享,图片来自于论文,如有侵权,请联系删除。

轻量级网络

从SqueezeNet开始模型的参数量就不断下降,为了进一步减少模型的实际操作数(MAdds),MobileNetV1利用了深度可分离卷积提高了计算效率,而MobileNetV2则加入了线性bottlenecks和反转残差模块构成了高效的基本模块。随后的ShuffleNet充分利用了组卷积和通道shuffle进一步提高模型效率。CondenseNet则学习保留有效的dense连接在保持精度的同时降低,ShiftNet则利用shift操作和逐点卷积代替了昂贵的空间卷积。

在这里插入图片描述
图1分别是MobileNetV3两个版本与其他轻量级网络在Pixel 1 手机上的计算延迟与ImageNet分类精度的比较。可见MobileNetV3 取得了显著的比较优势

在这里插入图片描述

图2是ImageNet分类精度、MAdd计算量、模型大小的比较,MobileNetV3依然是最优秀的。

高效的网络构建模块

MobileNetV3 是神经架构搜索得到的模型,其内部使用的模块继承自:

1. MobileNetV1 模型引入的深度可分离卷积(depthwise separable convolutions);

2. MobileNetV2 模型引入的具有线性瓶颈的倒残差结构(the inverted residual with linear bottleneck);

3. MnasNet 模型引入的基于squeeze and excitation结构的轻量级注意力模型。

这些被证明行之有效的用于移动端网络设计的模块是搭建MobileNetV3的积木。
在这里插入图片描述

互补搜索

在网络结构搜索中,作者结合两种技术:资源受限的NAS(platform-aware NAS)与NetAdapt,前者用于在计算和参数量受限的前提下搜索网络的各个模块,所以称之为模块级的搜索(Block-wise Search) ,后者用于对各个模块确定之后网络层的微调。

这两项技术分别来自论文:

M. Tan, B. Chen, R. Pang, V. Vasudevan, and Q. V. Le. Mnasnet: Platform-aware neural architecture search for mobile. CoRR, abs/1807.11626, 2018.

T. Yang, A. G. Howard, B. Chen, X. Zhang, A. Go, M. Sandler, V. Sze, and H. Adam. Netadapt: Platform-aware neural network adaptation for mobile applications. In ECCV, 2018

前者相当于整体结构搜索,后者相当于局部搜索,两者互为补充。

网络改进

由于MobileNetV2 网络端部最后阶段的计算量很大,所以在MobileNetV3中重新设计了这一部分,这样做并不会造成精度损失。
在这里插入图片描述

非线性

作者发现一种新出的激活函数swish x 能有效改进网络精度:
在这里插入图片描述
但是swish计算量太大了。

于是作者对这个函数进行了数值近似
在这里插入图片描述
结果证明如下图,效果明显较好。
在这里插入图片描述

MobileNetV3-Large网络结构

使用上述搜索机制和网络改进,最终谷歌得到的模型是这样(分别是MobileNetV3-Large和MobileNetV3-Small):
在这里插入图片描述

MobileNetV3-Small网络结构

在这里插入图片描述

谷歌没有公布用了多少时间搜索训练。

目前谷歌还没有公布MobileNetV3的预训练模型,不过读者可以按照上述结构构建网络在ImageNet上训练得到权重

实验结果

作者使用上述网络在分类、目标检测、语义分割三个任务中验证了MobileNetV3的优势:在计算量小、参数少的前提下,相比其他轻量级网络,依然在在三个任务重取得了最好的成绩。

下图是ImageNet分类Top-1精度、计算量、参数量及在Pixel系列手机实验的结果:
在这里插入图片描述

在这里插入图片描述
MobileNetV3 的两个版本和 MobileNetV2的性能比较在这里插入图片描述

### 使用 MobileNetV3 进行目标检测 #### 选择模型 对于目标检测任务,可以根据具体应用场景的需求挑选适合版本的 MobileNetV3 模型。通常情况下,MobileNetV3 提供了两种主要变体——Large 和 Small,分别适用于不同资源约束下的高性能需求和低功耗设备[^1]。 #### 配置文件设置 为了使 MobileNetV3 能够有效地应用于目标检测,需创建详细的配置文件来定义所选模型架构以及训练过程的各项超参数。此配置应明确指出采用的是哪种预训练权重初始化方式、优化器的选择及其学习率调整策略等内容[^2]。 ```yaml model: name: mobilenet_v3_large pretrained: true training_parameters: optimizer: adam initial_learning_rate: 0.001 ``` #### 数据准备与处理 获取并整理好带有标签的数据集之后,还需要对其进行必要的前处理操作,比如图像尺寸标准化、颜色空间转换等。这些步骤有助于提高最终构建出来的检测系统的泛化能力。 #### 训练流程概述 利用已有的标注样本对选定好的 MobileNetV3 架构实施监督式学习。在此期间,通过不断迭代更新网络内部各层之间的连接权值直至收敛至局部最优解附近为止。值得注意的是,在实际开发过程中往往还会引入一些正则项防止过拟合现象发生。 #### 性能评估指标 当完成一轮完整的训练周期后,应当借助预留出来的一部分测试样本来衡量当前模型的表现水平。常用到的关键评价标准有 mAP (mean Average Precision),它综合反映了预测框位置准确性及类别归属判断两方面因素的影响程度。 #### 实际部署考量 一旦确认经过充分调优后的 MobileNetV3 已经具备良好的识别效果,则可考虑将其集成进特定的应用程序当中去执行在线推理任务。此时需要注意确保运行环境满足相应硬件加速条件以便获得更佳的速度表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值