论文阅读笔记:SFNet: Faster, Accurate, and Domain Agnostic Semantic Segmentation via Semantic Flow

代码:https://github.com/lxtGH/SFSegNets

论文:https://arxiv.org/pdf/2207.04415v1

1 背景

深度全卷积网络( FCN )主要由卷积层组成,以刻画出强语义表示。然而,由于使用了下采样层,细节的物体边界信息通常会丢失,这对性能也是至关重要的。

为了缓解这个问题一些方法在其网络的最后几个阶段使用空洞卷积,在保持高分辨率的同时产生具有强语义的特征图。同时,还有一些方法采用多尺寸特征表示来增强最终的分割结果。最近,一些方法采用vision transformer结构,并将语义分割建模为分段预测问题。

尽管这些方法取得了最先进的结果,但实时推理速度是个问题,尤其是对于高分辨率的图像输入。为了既能保持细节信息又能得到较强语义表达能力的特征,另一个方向是构建FPN-like的模型,利用横向路径以自顶向下的方式融合特征图。这样后几层的深层特征加强了分辨率较高的浅层特征,因此细化后的特征能够满足上述两个因素。然而,这些方法的准确性与那些在最后几个阶段持有大特征图的网络相比仍然不尽人意。

对于高精度,高速度的语义分割是否具有更好的解决方案,作者认为,低精度问题来自语义从深层到浅层的无效传播,其中不同阶段的语义没有很好的对齐。

为了缓解这个问题,本文提出显式地学习两个不同分辨率网络层之间的语义流。语义流的概念是受被管饭用于视频处理任务重的光流启发而提出的。 作者发现来自同一图像的任意分辨率的两个特征图之间的关系也可以用从一个特征图到另一个特征图的每个像素的“运动”来表示。在这种情况下,一旦获得精确的语义流,网络就能够以最小的信息损失传播语义特征。值得注意的是,语义流与光流有着明显的不同,因为语义流将来自不同层次的特征图作为输入,并评估他们之间的差异,以找到一个合适的流场来动态地指示如何有效地对其这两个特征图。

基于语义流的概念,作者设计了一个新的网络模块——流对齐模块(Flow Alignment Module,FAM)来利用语义流进行语义分割。FAM是端到端可训练的,并且可以插入到任何骨干网络中。作者将所有包含FAM的网络成为SFNet。如图1中的绿色点所示,具有不同骨干网络的SFNets在相同速度下,表现远远超过其他竞争对手。
在这里插入图片描述

原始的SFNet已经在速度和准确率上取得了令人满意的结果。但是SF设计到多级特征,其推理速度仍然不够快,为了保持精度的同时加速SFNet的速度,作者又提出另一种新的SFNet,命名为SFNet-Lite,并设计了一种新的流对齐模块——门控双流对齐模块(Gated Dual Flow Aligned Module,GD-FAM)。新提出的GD-FAM只需在SFNet主干网络末端添加一次,直接细化了最高分辨率特征和低分辨率特征,避免了多尺度特征融合,从而大幅加速SFNet,如图1中的红色点所示。

2 创新点

  1. 提出了一种新的流对齐模块( GD-FAM ),在保持SFNet原有性能的基础上,提高了SFNet的速度。实验表明,这种新的设计始终优于我们之前的模块,具有更高的推理效率。

  2. 进行了更全面的消融研究来验证所提出的方法,包括对基线的定量改进和可视化分析。

  3. 进一步将SFNet扩展到全景分割中,在两个强基线上也取得了1.5 %的PQ提升。

  4. 进一步在两个更具挑战性的数据集上,包括Mapillary和IDD,对SFNet和一些最近的代表性方法进行了测试。SFNet系列在不同基线上取得了显著的改进并且取得了速度和精度的平衡。

  5. 提出了一个新的设置,通过合并现有的驾驶数据集( UDS )来训练一个统一的实时语义分割模型。SFNet系列也取得了最好的准确率和速度权衡,可以作为领域鲁棒语义分割的坚实基础。

3 方法

本文基于语义流提出了FAM和GD-FAM两种模块,并基于FAM和FPN构建了SFNet,基于GD-FAM构建了更轻量级的SFNet-Lite。
在这里插入图片描述
在这里插入图片描述

4 模块

4.1 预备知识

语义分割是将一幅RGB图像 X ∈ R H × W × 3 X∈R^{H×W×3} XRH×W×3映射为具有相同空间分辨率的语义图 Y ∈ R H × W × C Y∈R^{H×W×C} YRH×W×C,其中 C C C 是预先定义好的类别数。遵循FPN的设定,首先将输入图像 X 从每个网络阶段映射到一组特征图 { F l } l = 2 , . . . , 5 \{F_l\}_{l=2,...,5} {Fl}l=2,...,5,其中 F l ∈ R H l × W l × C l F_l∈R^{H_l×W_l×C_l} FlRHl×Wl×Cl 是定义在空间网格 Ω l Ω_l Ωl 上的 C l C_l Cl 维特征图,大小为 H l × W l , H l = H / 2 l , W l = W / 2 l H_l × W_l,H_l = H/2^l,W_l = W/2^l Hl×WlHl=H/2lWl=W/2l。最粗的特征图 F 5 F_5 F5 来自最深的一层,具有最强的语义。 FCN-32s 直接在 F 5 F_5 F5 上进行预测,在没有精细细节的情况下获得了过度平滑的结果。然而通过融合来自较低层次的预测可以实现一些改进。FPN通过双线性上采样,以自顶向下的方式逐步融合高层特征图和低层特征图。然而,双线性上采样通过插值一组均匀采样位置来恢复下采样特征图的分辨率,而由残差连接,重复下采样和上采样操作引起的特征图之间的失调则要复杂的多。因此需要显式地,动态地建立特征图之间的位置对应关系,以解决他们的实际错位问题。

4.2 FAM和SFNet

光流的思想促使作者设计了一个基于流的对齐模块FAM,通过预测网络内部的流场来对齐两个相邻级别的特征图,并将这样的流场定义为语义流(Semantci Flow),它是在特征金字塔的不同层次之间产生的。

FAM是在FPN框架内构建的,每一层的特征图通过两个1 × 1的卷积层压缩到相同的通道深度后再进入下一层。给定具有相同通道数的两个相邻特征图 F l F_l Fl F l − 1 F_{l-1} Fl1,通过双线性插值层将 F l F_l Fl 上采样到与 F l − 1 F_{l-1} Fl1 相同的大小。然后将它们拼接在一起,并将拼接后的特征图作为一个包含两个卷积层的子网络的输入,其核大小为3 × 3。该子网络的输出为语义流领域的预测结果,即 Δ l − 1 ∈ R H l − 1 × W l − 1 × 2 \Delta_{l-1}∈R^{H_{l-1}×W_{l-1}×2} Δl1RHl1×Wl1×2,上述步骤可写为:
在这里插入图片描述

计算 Δ l − 1 \Delta_{l-1} Δl1后,空间网格 Ω l − 1 Ω_{l-1} Ωl1 上的每个位置 p l − 1 p_{l-1} pl1 通过简单地加法运算被映射到了更高层的点 p l p_l pl 上,由于特征与流场之间存在如图4 ( b )所示的分辨率差距,因此网格及其偏移量应按式(2)减半:
在这里插入图片描述

然后,作者使用在空间transformer网络中提出的可微的双线性采样机制,它线性插值 p l p_l pl 的4 -邻居(左上、右上、左下、右下)的值来近似FAM的最终输出,记为 F ~ l ( p l − 1 ) \widetilde{F}_l(p_{l-1}) F l(pl1) ,可表示为:
在这里插入图片描述

其中, N ( p l ) N(p_l) N(pl) 表示特征图 F l F_l Fl 上的扭曲点 p l p_l pl 的邻域, w p w_p wp 表示由扭曲网格距离估计的双线性差值核的权重。这种变形过程类似于可变形卷积DCN中的可变形核的操作。然而,本文方法和DCN有明显不同。首先,本文预测偏移量场结合了高层和低层特征来对其高层和低层特征图之间的位置,而DCN的偏移量场则是根据预测的位置偏移量来移动核的位置。其次,本文的模块专注于对其特征,而DCN更像是一种注意力机制。

总而言之,所提出的FAM模块仅包含一个3×3的卷积层和一个无参数的扭曲操作,因此具有轻量级和端到端的可训练性。图4(a)中给出了所提模块的详细设置,而图4(b)中给出了扭曲过程,图4(c)说明了整个网络架构,其包含一个自下而上的通路作为编码器,和一个自上而下的通路作为解码器,解码器可以看做是一个FPN,配备多个FAM。
在这里插入图片描述

图3可视化了两个相邻层级的特征图、它们学习到的语义流以及最终扭曲的特征图。如图3所示,扭曲特征比正常的双线性上采样特征在结构上更整齐,并导致更一致的物体表示,例如公交车和汽车。
在这里插入图片描述

关于编码器部分,作者选择了在ImageNet上预训练的用于图像分类的ResNet和DF系列网络,通过去掉最后一个全连接层作为Backbone。所有backbone都有4个带有残差块的stage,每个stage首先有一个步长为2的卷积层对特征图进行下采样。此外,为了更强大的捕获上下文信息能力,作者采用了金字塔池化模块PPM,PPM的输出和最后一个残差模块的分辨率一致。

关于解码器部分,SFNet解码器从编码器中提取特征图,并使用对齐的特征金字塔进行最终的语义分割。在FPN的自顶向下路径中使用FAM替换普通的线性差值上采样将 { F l } l = 2 4 \{F_l\}^4_{l=2} {Fl}l=24 细化为 { F ~ l } l = 2 4 \{\widetilde{F}_l\}^4_{l=2} {F l}l=24 ,其中顶层特征图通过逐元素相加的方式对齐并融合到低层, l l l 表示特征金字塔层级的范围。对于场景解析, { F ~ l } l = 2 4 ∪ { F 5 } \{\widetilde{F}_l\}^4_{l=2}∪\{F_5\} {F l}l=24{F5}被上采样到相同的分辨率,并级联在一起预测,考虑到仍然存在不对齐的情况,所以将这些上采样也都替换成FAM。

4.3 GD-FAM和SFNet-Lite

原始的SFNet采用多级流式对齐过程,速度较慢,由于轻量级的主干设计并非主要关注点,所以作者探索了仅使用一个流对齐块的更紧凑的解码器。

与FAM一样,GD-FAM将两个特征 F 4 F_4 F4 F 1 F_1 F1 作为输出,直接输出一个精细的高分辨率特征。作者通过双线性插值层将 F 4 F_4 F4 上采样到 F 1 F_1 F1 相同的大小,然后将他们拼接到一起,并将拼接后的特征图作为包含两个卷积层的子网络 c o n v F conv_F convF 的输入,其核大小为 3×3。这样的网络直接输出一个新的流图 Δ F ∈ R H 4 × W 4 × 4 \Delta_{F}∈R^{H_4×W_4×4} ΔFRH4×W4×4,表述为:
在这里插入图片描述

将这种映射 Δ F \Delta_{F} ΔF 拆分成 Δ F 1 \Delta_{F1} ΔF1 Δ F 4 \Delta_{F4} ΔF4 ,共同对齐 F 1 F_1 F1 F 4 F_4 F4 。此外,作者提出了一个共享门控图用来突出两个对齐特征上最重要的区域,关键是充分利用高层语义特征,让低层特征作为高层特征的补充。作者采用了另一个包含一个核大小为1×1的卷积层和一个Sigmoid层的子网络来生成这样的门控图。为了突出两个特征图中最重要的区域,在两个特征上分别采用最大池化和平均池化,然后将全部4个图进行拼接,以生成这样的可学习门控图。这个过程如下所示:
在这里插入图片描述

然后在融合过程中,采用 Δ G \Delta_{G} ΔG 对对齐的高层语义特征进行加权,并使用 1 − Δ G 1-\Delta_{G} 1ΔG 对对齐的低层语义特征进行加权,来补充高层语义中缺乏的细节信息。这个过程如下所示:
在这里插入图片描述

其中,wrap过程如式(3)。整个过程如图5(a)。
在这里插入图片描述
关于轻量级的Decoder和原始Decoder的简化版本。它包含了一个GD-FAM和一个PPM,如图5(b)所示。最终的分割头将 F f u s e F_{fuse} Ffuse 和 PPM的输出作为输入,并在组合输入上通过1个1×1的卷积输出最终的分割图。Lite Aligned Decoder通过引入更少的特征尺度来加速Aligned Decoder。

在表1中,比较了SFNet和SFNet - Lite在不同设备上的速度。SFNetLite在各种设备上运行速度较快。特别地,当将两者部署在TensorRT上时,SFNet - Lite比SFNet快得多,因为它涉及更少的跨尺度分支,并导致更好的加速优化。
在这里插入图片描述

4.4 统一的驾驶分割数据集

作者合并了四个具有挑战性的数据集,包括Mapillary,Cityscapes,IDD和BDD。由于Mapillary有65个类别标签,作者将多个语义标签合并为一个标签,将其他的标签设置为忽略区域。这样,保持了与Cityscapes和IDD相同的标签定义。对于IDD数据集,使用与Cityscapes和BDD相同的类定义。对于BDD和Cityscapes数据集,保持原来的设置。合并后的数据集UDS共有34968张图片用于训练,6500张图片用于测试。作者自述是第一个研究和执行自动驾驶跨领域语义分割训练的人。UDS数据集的详细信息如表2所示。
在这里插入图片描述

4.5 扩展SFNet到全景分割

全景分割将语义分割和实例分割统一起来,是一项更具挑战性的任务。作者还利用提出的全景分割基线K - Net探索了提出的SFNet在该任务上的应用。K - Net是一种最先进的全景分割方法,在其解码器头中,每一个事物和东西都用内核表示。特别地,将K - Net的主干部分替换为本文提出的SFNet主干和对齐解码器。然后使用与K - Net相同的设置来训练修改后的模型。

5 实验

5.1 和其他SOTA方法的对比

作者在TITAN-RTX上,基于tensorRT使用1024*2048的分辨率推理评估CityScapes测试集,对比效果表3。
在这里插入图片描述

作者在TITAN-RTX上,基于tensorRT使用1536*1536的分辨率推理评估Mapillary验证集,对比效果表4。
在这里插入图片描述

作者在TITAN-RTX上,基于tensorRT使用1080*1920的分辨率推理评估IDD验证集,对比效果表5。
在这里插入图片描述

作者在TITAN-RTX上,基于tensorRT使用720*1280的分辨率推理评估BDD验证集,对比效果表6。
在这里插入图片描述

作者在TITAN-RTX上,基于tensorRT使用1024*2048的分辨率推理评估UDS测试集,对比效果表7。
在这里插入图片描述

5.2 消融实验

表8(a)和10(a)展示了FAM和GD-FAM模块的有效性。且GD-FAM在相同的mIoU下,速度更快。

在这里插入图片描述
在这里插入图片描述

表8(b)展示了FAM模块和GD-FAM模块插入到网络哪些位置效果较好,从第一行看,FAM改进了所有的阶段,并且在最后一个阶段得到了最大的改进。最后一行在所有阶段添加FAM,效果达到了最好。对于GD - FAM,目标是将高分辨率特征和低分辨率特征直接对齐。默认情况下,作者选择将F3和PPM的输出对齐。
在这里插入图片描述

图8(c)比较了不同的上下文头的效果,其中PPM在效果和耗时上最好,所以选择了PPM作为上下文头。
在这里插入图片描述

在表9(a)中研究了上采样在FAM中的作用,将双线性插值替换成反卷积和最近邻插值,效果和双线性插值接近。同时在表9(b)中还尝试了不同大小的卷积核,比如尝试了更大的卷积核,虽然得到了类似的结果,但引入了更多的计算开销。在表9(c)中,用FlowNet-C中的相关性替换FlowNet-s,增加了推理耗时,且效果变差,说明在FPN中使用轻量级的FlowNet-S对齐特征图就足够了。在表9(d)中,与DCN进行比较,将DCN应用再双线性插值上采样特征图和下一层的特征图的级联图上。对比发现还是FAM性能更好。
在这里插入图片描述

在表10 ( b )中,研究了GD - FAM中各组件的影响。尤其是加入双流( Dual Flow,DF )设计后,提升了约1.2 %。使用Attention生成门而不是使用卷积导致0.2 %的提升。最后,使用共享门设计也将强基线提高了0.3 %。
在这里插入图片描述

在表10 ( c )中,研究了训练技巧,包括均匀采样( Uniform Sampling,US ),长训练( Long Training,LT )和粗增广( Coarse Boosting,CB )。执行US导致SFNet - Lite有0.3 %的改进。使用LT ( 1000次训练)而不是短训练( 300历元训练)导致另一个0.4 %的mIoU提高。最后,在几个稀有类上采用粗数据增强,又带来了0.7 %的提升。
在这里插入图片描述

表11中对SFNet替换了不同的backbone。
在这里插入图片描述

图7中展示了更多对齐特征的可视化,与DCN相比,FAM的特征更具有结构性和精准的对象边界。
在这里插入图片描述

5.3 更多细节分析

表12比较了每个类别在验证集上的详细结果,其中ResNet - 101用作骨干,带有PPM头的FPN解码器作为基线。SFNet对几乎所有类别都有提升,尤其是对"卡车"的mIoU提升超过19 %。采用GD - FAM在每个类别上比FAM有更一致的提升。
在这里插入图片描述

图6可视化了FAM中不同阶段的语义流。从可视化中可以观察到语义流倾向于从物体内部的一些位置扩散出去,这些位置一般靠近物体中心,具有更好的感受野,以激活具有纯净和强烈语义的顶层特征。然后,在语义流的指导下,将这些位置的顶层特征传播到适当的高分辨率位置。此外,语义流还具有从顶层到底层由粗到细的趋势。这种现象与语义流逐渐描述逐渐变小的模式之间的偏移量的事实是一致的。(从可视化效果和原理上看,FAM上采样对齐更像是DCN下采样的一个逆过程
在这里插入图片描述
图8,9,10分别是在Cityscapes,Mapilary和UDS数据集上的可视化效果对比。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

表13展示了本文方法不同设备上的耗时。
在这里插入图片描述

表14展示了用UDS数据集预训练带来的提升。
在这里插入图片描述

表15展示了在全景分割上的有效性。
在这里插入图片描述

6 结论

FAM的设计可以用于基于FPN的结构作为优化。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值