[语义分割] LR-ASPP(MobileNet v3、轻量化、16倍下采样、膨胀卷积、ASPP、SE)

Searching for MobileNetV3

这篇论文就是 MobileNet v3 的论文 😂,LR-ASPP 指的是 “Lite Reduced Atrous Spatial Pyramid Pooling”,是 MobileNetV3 中用于语义分割任务的一种高效分割解码器

LR-ASPP:Lite Reduced Atrous Spatial Pyramid Pooling,轻量化简减少空洞空间金字塔池化

0. LR-ASPP 概况

LR-ASPP 和 DeepLab V3 中的 ASPP 都是用于语义分割任务的分割解码器,但它们在一些方面有不同的创新点和设计思路。

  1. 简化结构:LR-ASPP 相对于传统的 ASPP 结构进行了简化。传统的 ASPP 通常包含多个并行的卷积分支(DeepLab v2 中有 4 个,DeepLab v3 中有 5 个),每个分支使用不同膨胀率的膨胀卷积来捕捉不同尺度的上下文信息。而 LR-ASPP 通过减少分支数量和膨胀卷积的膨胀率,降低了计算复杂性,使得模型更适合在资源受限的移动设备上使用。

  2. 节省计算资源:由于在移动设备上计算资源有限,LR-ASPP 的设计考虑了计算效率的问题。相比于 DeepLab V3 中的 ASPP,LR-ASPP 在保持一定的性能的前提下,减少了计算量,使得模型能够更好地适应移动设备的硬件限制。

  3. 高效的语义分割:LR-ASPP 在移动设备上表现出较好的分割性能。它能够有效地捕捉不同尺度的上下文信息,从而更准确地对图像中的像素进行语义分类。同时,由于其计算效率的优势,LR-ASPP 在移动设备上可以实现实时的语义分割,适用于许多实际应用场景。

总体而言,LR-ASPP 是 MobileNetV3 中的一项创新,它在计算效率和性能之间取得了良好的平衡,为移动设备上的语义分割任务提供了高效而有效的解决方案。而 DeepLab V3 中的 ASPP 则是传统 ASPP 的一种改进版本,它在大规模计算资源的情况下可以取得较好的性能

  • ASPP:运算量大
  • LR-ASPP:运算量小

0. Abstract

我们提出了下一代基于互补搜索技术(complementary search techniques)和新颖架构设计的 MobileNets。MobileNetV3 通过硬件感知的网络架构搜索(NAS)和 NetAdapt 算法的结合,以及新颖的架构优化,针对移动手机 CPU 进行了优化。

本文探讨了自动化搜索算法和网络设计如何共同发挥作用,以提高整体的技术水平。通过这个过程,我们发布了两个新的 MobileNet 模型:①MobileNetV3-Large和 ②MobileNetV3-Small,分别用于高资源和低资源使用情况。然后,我们对这些模型进行了调整,并应用到目标检测语义分割任务中。

对于语义分割任务(或任何密集像素预测任务),我们提出了一种新的高效分割解码器 —— Lite Reduced Atrous Spatial Pyramid Pooling(LR-ASPP)。在移动分类、检测和分割任务中,我们实现了新的技术水平。

  • 【分类任务】与 MobileNetV2 相比,MobileNetV3-Large 在 ImageNet 分类上的准确率提高了 3.2%,同时减少了 15% 的延迟。MobileNetV3-Small 在准确率提高了 4.6% 的同时,减少了 5% 的延迟。
  • 【目标检测】在 COCO 检测任务中,MobileNetV3-Large 的检测速度比 MobileNetV2 快 25%,准确率大致相同。
  • 【语义分割】在 Cityscapes 分割任务中,MobileNetV3-Large LR-ASPP 的速度比 MobileNetV2 R-ASPP 快 30%,准确率相似。
  • NAS(Neural Architecture Search,神经网络结构搜索)算法是一种自动化搜索神经网络结构的方法。它旨在通过计算机程序自动探索和优化神经网络的结构,以获得更好的性能和效率。
    传统上,神经网络的结构是由人工设计的,通常需要领域专家根据经验和直觉进行手动设计。然而,随着深度学习的发展,神经网络结构日益复杂,人工设计变得愈发困难且耗时。为了解决这个问题,> NAS算法应运而生。
    NAS算法通过以下步骤来搜索和优化神经网络结构:①搜索空间定义;②架构评估;③搜索策略;④结果评估与迭代。
  • NetAdapt是一种用于神经网络模型自动压缩和优化的算法,旨在根据设备的资源限制自动适应网络结构,以实现更高效的推断过程。该算法由Google Brain团队提出,为移动设备和嵌入式系统等资源受限的环境下,深度学习模型的应用提供了更好的解决方案。它的主要步骤为:①搜索空间定义;②模型评估;③网络修剪;④微调和重复。通过这样的迭代搜索和优化过程,NetAdapt能够自动化地找到在给定资源约束下的最优神经网络结构,从而在移动设备上实现更高效的推断和运行。

1. 前言

ModelmIoUGlobal Pixel AccInference on CPU (sec)Params (M)
LR-ASPP MobileNetV3-Large57.991.20.32783.22
DeepLabV3 MobileNetV3-Large60.391.20.586911.03
FCN MobileNetV3-Large (not released)57.890.90.37025.05
DeepLabV3 ResNet5066.492.46.353139.64
FCN ResNet5060.591.45.014632.96

数据来源:Everything you need to know about TorchVision’s MobileNetV3 implementation

  • 从推理时间我们可以看到,以 ResNet-50 为 Backbone 的模型在 CPU 设备上的推理时间都很长,大约需要 5 ~ 6 秒,而一旦将 Backbone 替换为 MobileNet v3 系列,推理时间可以实现大幅度降低,只需要 0.3 ~ 0.6 秒,速度提升了大约 10 ~ 16 倍。
  • 从 mean IoU 指标上看,我们发现即便将 Backbone 替换为更轻量化的模型,mIoU 并没有大幅度降低,二者中的最佳模型 mIoU 相差仅 6.1%,最差模型的 mIoU 相差 2.7%,说明 MobileNet v3 作为 Backbone 在语义分割任务中表现相当不错。

综合来看,LR-ASPP MobileNetV3-Large 模型在资源受限的情况下能够在语义分割任务中取得相对较好的性能,并且具有更快的推断速度和较小的模型尺寸,适合在移动设备等资源有限的场景中使用。而使用 ResNet50 的 DeepLabV3 和 FCN 模型在性能上更优秀,但计算复杂度和模型尺寸较大,适用于性能要求较高且资源充裕的环境。

2. LR-ASPP 架构

在这里插入图片描述

Figure10. 基于MobileNetV3,提出的分割头部,Lite R-ASPP,在保持快速语义分割结果的同时,融合了多个分辨率的特征

MobileNet v3 的网络我们在之前有讲过,所以在此就不再赘述了,详情见 MobileNet系列 (v1 ~ v3) 理论讲解。在语义分割任务中,Backbone 为 MobileNet v3,但进行了一些改动:

  1. Backbone 不再进行 32 倍下采样,而是仅进行 16 倍下采样
  2. Backbone 中最后的几个 BottleNet 中使用膨胀卷积

在一般的语义分割任务,Backbone 通常会进行 8 倍下采样,而 MobileNet v3 LR-ASPP 为了使模型更加轻量化,于是进行了 16 倍 下采样。

接下来我们看一下分割头(Segmentation Head),也就是 LR-ASPP。在 Backbone 输出上分成了两个分支,如上图所示:

  1. 第一个分支】上面的分支通过一个简单的 1 × 1 1 \times 1 1×1 卷积(bias=False)汉堡包结构,即 Conv -> BN -> ReLU,得到一个输出特征图 F 1 \mathcal{F}_1 F1
  2. 第二个分支】第二分支通过一个 核大小为 49 × 49 49 \times 49 49×49,步长为 [ 16 , 20 ] [16, 20] [16,20] 的全局平均池化层(AvgPooling Layer),之后再通过一个 1 × 1 1 \times 1 1×1 的普通卷积(bias=False) + Sigmoid,得到一个输出特征图 F 2 \mathcal{F}_2 F2

注意❗️:

  • 根据观察源码, F 1 \mathcal{F}_1 F1 分支中的 ReLU 就是普通的 ReLU 而非 ReLU6
  • F 2 \mathcal{F}_2 F2 分支中的 Bilinear Upsample 其实是不需要的(正常来说,通过 Sigmoid 层后得到的就是长度为 128 的向量)
  • F 2 \mathcal{F}_2 F2 分支中的 AdaptiveAvgPool2d -> 1×1 Conv -> Sigmoid 与 MobileNet v3 中提出的 Squeeze-and-Excitation(SE)注意力模块非常相似

在这里插入图片描述

  1. 第一次融合 F 1 ⊗ F 2 \mathcal{F}_1 \otimes \mathcal{F}_2 F1F2 之后,经过双线性插值进行 2 倍上采样,之后再经过普通的 1 × 1 1 \times 1 1×1 卷积,得到输出特征图 F 3 \mathcal{F}_3 F3
  2. 第三个分支】将 Backbone 中经过 8 倍下采样的特征图拿出来,经过 普通的 1 × 1 1 \times 1 1×1 卷积得到输出特征图 F 4 \mathcal{F}_4 F4
  3. 第二次融合 F 3 ⊕ F 4 = F 5 \mathcal{F}_3 \oplus \mathcal{F}_4 = \mathcal{F}_{5} F3F4=F5,得到 LR-ASPP 的输出特征图。
  4. 之后需要进行 8 倍双线性插值上采样得到和我输入图片一样大小的单通道图片,即 F o u t \mathcal{F}_{\mathrm{out}} Fout

3. MobileNet v3 Large LR-ASPP 网络模型

在这里插入图片描述

在 Backbone 中不同字母的含义如下:

  • Input:输入特征图大小
  • Operator:算子名称
  • exp size:Bneck 中 Channel 提升大小
  • #out:输出特征图 Channel 大小
  • SE:是否使用 SE 注意力模块
  • NL:使用哪种激活函数
    • HS:Hard Sigmoid
    • RE:ReLU
  • s:stride 步长大小
    • s=1:不进行下采样
    • s=2:进行 2 倍下采样
  • d:Bneck 中的膨胀系数
    • d=1:普通卷积
    • d=2:膨胀卷积(dilate=2)

4. LR-ASPP 模型训练效果

在这里插入图片描述

学习率设置可能有些问题,跑了 100 个Epoch(没有使用预训练模型),mIoU 不太行。

知识来源

  1. https://www.bilibili.com/video/BV1LS4y1M76E
  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值