Title: Simple and Efficient Architectures for Semantic Segmentation
PDF: https://arxiv.org/pdf/2206.08236
Code: https://github.com/Qualcomm-AI-research/FFNet
导读
语义分割(Semantic Segmentation)现有的一些先进架构(如HRNet)的设计所引起的高复杂性对一系列模型加速工具并不友好,导致一些架构在当前硬件的模型推理上效率低下。作者通过实验证明:一个简单的编码器-解码器架构,具有ResNet类似的backbone和小型多尺度头,可以表现得与HRNet、FANet和DDRNets等复杂的语义分割架构相当甚至更好。
在尝试将图像分类模型的深度主干网络应用于语义分割任务时,由于其有效感受野更小,结果不尽人意。HRNet、DDRNets和FANet等网络架构的设计中往往隐含的是具有较大感受野的网络,如果一个简单的编码器-解码器架构由具有更大更有效的感受野backbone组成,是否会更好?因此,作者通过对ResNet进行了微小的修改来扩大感受野,并展示了简单的语义分割基线模型可以实现与复杂模型相当甚至更好的表现。
作者提出了一系列适用于PC端和移动端的简单架构,这些极简架构甚至超过了Cityscapes数据集上曾经表现SOTA的复杂模型的性能。研究人员可以基于该极简架构,开发出更加高效的语义分割模型。与此同时,作者还提供了相关模型的定义和预训练权重,以供大家下载使用。
引言
卷积神经网络(CNN)在语义图像分割领域的应用取得了一系列进展,主要体现在:网络结构的改进、高效的训练技巧、数据集、和损失函数的改进等方面。然而,由于数据集和训练流程的不同,不同CNN架构的改进可以带来不同的性能提升,因此对于新手来说,他们往往会从现有的最先进的语义分割网络架构入手,并在此基础上进行构建属于自己的分割网络。然而,目前最先进的语义分割网络结构越来越复杂且推理时间很长,在算力有限的设备上不具备落地盛产的能力。因此设计一种更简单更高效的语义分割架构以实现同等或更好的性能这件事本身就很有意义。
顺着这个思路,本文作者提出了一个极简分割架构(大家可以基于该极简分割架构进行不同网络组件的配置,开发出更Powerful的分割模型),该架构与目标检测中的FPN架构非常相似。本文通过大量实验探究了一个问题:将现有一些先进语义分割网络中的一些好的模块组件应用于此极简架构时,是否仍然能够带来分割精度的提高。作者发现:当使用由bottleneck组成的ResNet-50/101骨干网络时,该网络的精度确实差了一大截,所以作者猜测:这种性能下降主要是由于使用了bottleneck导致感受野减小。实验表明:使用由basic block组成的同样深度的ResNet网络具有更大的感受野,这种简单的架构也可以与更复杂的架构相媲美。
在本文中,作者们提出了一个名为FFNet的极简架构,并展现了FFNet架构和一系列基于FFNet架构设计的网络模型的结果。实验表明:FFNet不仅降低了推理时间和计算成本,其内的各种操作算子对各种模型推理硬件也非常友好,这使得语义分割在算力有限的设备上部署变得更加容易。
方法
上图1展示了FFNet的网络架构图,该网络同样也是一种简单的编码器-解码器结构,编码器由ResNet骨干网络组成,但没有分类头。FFNet从所有中间残差阶段提取不同空间分辨率的特征,并将它们传递给一个轻量级卷积解码器头Decoder,该Decoder将低分辨率分支的特征上采样并与高分辨率分支的特征进行融合(称之为Up-head),从而输出不同空间分辨率的且具有多尺度上下文信息的特征。这些多尺度特征随后用作分割或分类等小型任务特定头的输入。FFNet的一大灵活性在于其通用性:FFNet架构可以自由更改网络backbone的类型、宽度和深度,特征尺寸大小,head的类型和head宽度。
上图2展示了作者在本文研究中的各种Stem(网络茎/主干)、Up-head(上采样头)和Segmentation-head(分割头)的配置选择(标记为A/B/C),总之:我们可以通过设置stem,up-head和segmentation-head三种配置(stem-up-seg三组合)来构建我们的FFNet架构的具体模型实例。
上表1展示了该FFNet架构可以采用的各种stem/backbone配置,backbone中的残差块可以设置步幅为1或2来改变输出的空间分辨率。
实验
作者在实验阶段,展开了对FFNet网络架构在不同配置下(stem-up-seg)的研究:选择ResNet作为backbone/stem,并通过改变ResNet的深度、宽度和block类型等参数,尝试了多种不同的配置(见上表1),此模型实例标记为A-B-B。
- 对于基于FFNet架构的模型实例PC端-GPU模型,作者使用大小为1024×2048的输入图像,在ResNet骨干网络的第一个残差块中尝试了步幅为1和2的不同情况,分别得到了输出分割图分辨率为256×512和128×256的FFNet模型。这两个模型分别被称为FFNet-GPU-Large和FFNet-GPU-Small。
- 对于基于FFNet架构的模型实例移动端FFNet模型,在输入分辨率为1024×2048时,采用步幅为2的设置;在输入分辨率为512×1024时,采用的步幅为1,这两种情况都可以得到分割图分辨率为128×256的结果。
Efficacy of Basic Blocks vs Bottleneck Blocks
采用basic-blocks作为骨干网络的配置时,在FFNet-GPU-Large和FFNet-GPU-Small模型中表现出色,远远优于使用bottleneck的骨干网络,参见上图3和下图5中的FFNet A-A-A。之前的研究主要使用ResNet-101和ResNet-50作为分割基线的骨干网络,在感受野不够大的情况下表现不佳,需要通过空洞卷积等技巧来扩大感受野。在新的骨干网络,如表1中描述的ResNet-150、134、86、56,以及ResNet-34,都由basic-blocks组成,特别是在处理更大特征图的FFNet-GPU-Large模型中,这些网络的表现却要远远优于ResNet-50和ResNet-101。
Exploring the Model Space
作者还测试了在FFNet网络架构中三个主要组件(stem-up-seg)的宽度和深度对模型性能的影响,所以试验了不同宽度和深度的backbone/stem,并尝试了不同宽度的Up-head和Segmentation-head。对于FFNet-GPU-Large模型,由于输出特征图的空间分辨率更高,缩小Up-head和Segmentation-head可以显著提高速度。如上图3所示,可以发现使用较窄的Up-head和Segmentation-head的FFNet A-B-B(青色)提供了更好的速度和准确性平衡,并优于使用较宽的头的FFNet A-A-A(蓝色)。对于FFNet-GPU-Small模型,缩小Up-head和Segmentation-head可以略微提高延迟。同时作者还指出,在资源受限设备上缩小backbone可以进一步提高性能,然而在PC端-GPU上可能不会有明显的优势。作者还指出,由较窄的backbone组成的FFNet B-B-B性能表现与使用较宽backbone的FFNet A-B-B相似。(见上图3和图5)
Models for Mobile
图6. Inference latency vs Cityscapes validation accuracy for FFNet-Mobile Models on Samsung S21
为了使FFNet适应移动设备,该模型使用更窄的ResNet骨干和头部,并在头部中使用最近邻上采样而不是双线性上采样。本文还提供了一组模型,并在Samsung S21 DSP上测试了它们的推理时间。通过更改输入分辨率和头部宽度,可以获取具有更好速度-准确性权衡的移动端模型,如上图6中的黑色、蓝色和青色曲线所示。
3-Stage Backbone
如何在保持模型准确性的情况下提高分割模型的速度是一个很重要的问题,为此作者对FFNet的不同配置进行了研究:主要包括网络深度、宽度、block类型等方面。作者发现,基于basic-blocks的backbone明显优于基于bottleneck blocks的backbone,尤其是在FFNet-GPU-Large和FFNet-GPU-Small模型中。同时,作者还尝试了改变backbone和Up-head以及Segmentation-head的宽度,结果发现,在FFNet-GPU-Large模型中,缩小Up-head和Segmentation-head的宽度可以显著提高速度,而在FFNet-GPU-Small模型中,缩小这些头的宽度只能提高一些延迟,这个影响较小。同时,作者还尝试了缩减backbone的层数,结果发现,基于3-stage的backbone相对于基于4-stage的backbone(见上图4),在一定精度范围内可以提供更好的速度-准确性权衡(见上图3,5,6)。作者认为:这项实验揭示了在潜在的NAS搜索空间中需要探索的新方向。
Comparisons to Prior Art
表2. Models with an output segmentation map resolution of 256 ×512 for an input image resolution of 1024 ×2048
表3. Models with an output segmentation map resolution of 128 ×256 for an input image resolution of 1024 ×2048.
表4. Inference time vs. Cityscapes validaiton accuracy for FFNet-Mobile models:
结论
本文所提出的FFNet语义分割架构在各种设备(PC端和移动端)上与其它复杂的SOTA架构极具竞争力。此外,专门为ImageNet设计的特定架构不一定适用于其它任务(架构普适性),所以在考虑将某一个任务的网络迁移到另外一个任务时,思考网络架构的普适性,以及根据任务的具体要求进行网络设计是非常重要的。作者通过大量的实验告诉读者:复杂不一定好,而更简单的CNN架构在语义分割和其它任务方面有着更大的潜力。
往期回顾
作者: 派派星
文章来源:CVHub
推荐阅读
欢迎大家点赞留言,更多Arm技术文章动态请关注极术社区嵌入式AI专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。