【论文笔记】STDCNet

主要贡献:

1.设计了一个短期密集串联模块(STDC模块),用可伸缩的感受野和多尺度信息提取深层特征。本模块提升了STDC网络的性能

2.计算成本合理。我们提出了细节聚合模块来学习解码器,从而在低层中更精确地保存空间细节,而不会在推理时间中产生额外的计算成本。

相关工作SqueezeNet[16]使用fire模块和某些策略来减少模型参数。

MobileNet V1[13]利用深度可分离卷积来减少推理阶段的失败。

ResNet[9][10]采用了剩余建筑层,以实现卓越的性能。

MobileNet V2[25]和ShuffleNet[29]使用组卷积来降低计算成本,同时保持相当的精度。

BiSeNet架构使用额外的空间路径对空间信息进行编码。

我们提出的方法使用细节引导模块对底层特征中的空间信息进行编码,而无需额外的时间共享路径。

设计有效的分割方法有两个主流。

  1. 轻量级主干。DFANet[18]采用轻量级主干网来降低计算成本,并设计了一个跨级别的特征聚合模块来提高性能。DFNet[21]利用“偏序剪枝”算法来获得轻量级主干和高效解码器。(ii)多分支架构。ICNet[31]设计了多尺度图像级联,以实现良好的速度精度权衡。BiSeNetV1[28]和BiSeNetV2[27]分别为低级细节和高级上下文信息提出了两种流路径。

 

BiSeNet是一种流行的实时分割双流网络。

DFANet和BISENTV1选择了轻量级主干网,并研究了特征融合或聚合模块的方法,以补偿精度的下降。然而,由于任务特定设计的不足,这些从图像分类任务中借用的轻量级主干可能不适合图像分割问题。除了选择轻量级主干之外,限制输入图像大小也是提高推理速度的另一种常用方法。较小的输入分辨率似乎是有效的,但它很容易忽略边界和小对象周围的详细外观。为了解决这个问题,BiSeNet采用了多路径框架,将低级细节和高级语义结合起来。

BiSeNet的问题:

  • BiSeNet 的 context path 中 backbone 套用现有的分类网络,没有针对 segmentation 任务专门设计,影响语义分割的精度;
  • spatial path 虽提升了细节分割能力,但同时引入额外的计算量,增加了 inference 的负担,影响分割的速度

BiSeNet添加额外路径来编码空间信息的原理非常耗时,辅助路径总是缺乏低级信息指导;并且从预训练任务(例如图像分类)借用的主干可能由于任务特定设计的不足而对图像分割效率低下。

解决方法:对BiSeNet中的multi-path结构做出改进,在提取底层细节特征的同时减少网络计算量,提出了一种新的高效结构短期密集级联网络(STDC:short-term dense convolution网络)以使用较少的参数量提取多尺度特征。具体来说,我们逐步降低特征映射的维数,并使用它们的聚合来表示图像,这形成了STDC网络的基本模块。在解码器中,我们提出了一个细节聚合模块,该模块以单流方式将空间信息的学习集成到低层。最后,融合低层特征和深层特征,预测最终的分割结果。

STDC模块有2个特点:(1)随着网络加深,逐渐减少特征通道数,以减少计算量;(2)STDC的输出融合了多个block的输出feature map,包含多尺度信息。

 

(对比图)

STDC分割网络使用Detail Guidance替代BiSeNet中的Spatial分支,在保留细节特征的同时减少了计算量。

STDC模块内部构造:

 

ConvX包括一个卷积层、一个批量归一化层和ReLU激活层。

在STDC模块中,第一个块的内核大小是1,其余的块只需设置为3。给定STDC模块输出N的通道号,第i个块中卷积层的滤波器号为N\2i,但最后一个卷积层的滤波器号与前一个卷积层的滤波器号相同。在图像分类任务中,通常的做法是在更高层使用更多通道。但在语义分割任务中,我们主要关注可伸缩的感受野和多尺度信息

低层需要足够的通道来编码具有较小感受野的更细粒度信息

具有较大感受野的高层则更侧重于高层信息诱导,将同一通道设置为低层可能会导致信息冗余。Down sample只发生在Block2中。为了丰富特征信息,我们通过跳过路径将x1到xn特征映射连接起来作为STDC模块的输出。在连接之前,通过3×3池大小的平均池操作,将STDC模块中不同块的响应映射下采样到相同的空间大小,如图3(c)所示。在我们的设置中,STDC模块的最终输出是:xoutput=F(x1,x2,…,xn),其中xoutput表示STDC模块的输出,F是我们方法中的融合操作,而x1,x2。。。,xn是所有n个块的特征图。考虑到效率,我们采用级联作为融合操作。在我们的方法中,我们在4个块中使用STDC模块。表1显示了STDC模块中块的感受野,xoutput因此从所有块收集多尺度信息。

与相同下采样率的主干低层相比,空间路径可以编码更多的空间细节,例如边界、角点。基于这一观察,我们提出了一个细节引导模块来引导低层以单流方式学习空间信息。我们对细节预测进行建模。

作为一项二进制分割任务。我们首先通过拉普拉斯算子从分割的地面真值生成细节地图地面真值,我们在阶段3中插入细节头以生成细节特征图。然后以细节ground truth作为细节特征图的指导,引导底层学习空间细节特征。具有细节指导的特征地图可以编码更多的空间细节。最后,将学习到的细节特征与解码器深层块的上下文特征进行融合,进行分割预测。

细节背景真相生成:我们通过细节聚合模块从语义分割背景真相生成二进制细节背景真相,如蓝色虚线框所示。这种运算可以由二维卷积核Laplacian核和可训练的1×1卷积来实现。我们使用图4(e)中所示的拉普拉斯算子来生成软薄细节特征。

以不同的步幅绘制地图,以获得多比例的细节信息。然后,我们将细节特征映射向上采样到原始大小,并将其与可训练的1×1卷积进行融合,以进行动态重新绘制。最后,我们采用阈值0.1将预测细节转换为最终的具有边界和角点信息的二元细节地面真值。

细节损失:由于细节像素的数量远少于非细节像素,因此细节预测是一个经典平衡问题。由于加权交叉熵总是导致粗糙的结果,在[7]之后,我们采用二进制交叉熵和骰子损失来联合优化细节学习。骰子损失衡量预测地图和ground truth之间的重叠。此外,它对前景/背景像素的数量不敏感,这意味着它可以缓解类不平衡问题。

我们将来自多个连续层的响应映射串联起来,每个层都以不同的尺度和各自的字段对输入图像\特征进行编码,从而实现多尺度特征表示。为了加快速度,层的过滤器大小逐渐减小,分割性能损失可以忽略不计。

解码阶段,不使用额外的耗时路径,而是采用细节引导来引导低层学习空间细节。我们首先利用细节聚合模块生成细节ground truth。然后,将二元交叉熵损失和骰子损失作为边信息学习的一种,对细节信息的学习任务进行优化。应该注意的是,在推断时不需要这方面的信息。最后,融合来自底层的空间细节和来自深层的语义信息,预测语义分割结果。

STDC模块的参数数量由预定义的输入和输出通道尺寸决定,而块数对参数大小影响不大。特别是,如果n达到最大限制,STDC模块的参数数量几乎保持不变,这仅由M和n定义。

STDC网络结构

除输入层和预测层外,它由6个阶段组成。一般来说,第1-5阶段分别以2的步长对输入的空间分辨率进行下采样,第6阶段通过一个ConvX、一个全局平均池层和两个完全连接层输出预测逻辑。

为了减少计算量,Stage1和Stage2中只使用1个卷积层。Stage3~Stage5中每个Stage包含若干个STDC模块,其中第1个STDC模块包含下采样操作,其余STDC模块保持feature map尺寸不变。

Stage1、2通常被视为外观特征提取的底层。

为了追求效率, 我们使用预训练的STDC网络作为编码器的主干,并采用BiSeNet[28]的上下文路径对上下文信息进行编码。

网络中的Stage3、Stage4和Stage5均对feature map进行下采样操作,下采样率1\8、1\16、1\32生成特征图。然后使用global average pooling(stage6中)提取全局上下文信息。使用U型结构上采样特征,并与Stage4、Stage5后面的ARM(Attention Refine Module,借鉴自BiSeNet))输出进行融合,融合结果作为FM(Feature Fusion Module,借鉴自BiSeNet)的输入,为FFM提供高层次语义信息,FFM的另外一个输入为Stage3输出的特征,该特征为FFM提供低层次细节信息。FFM的输出特征通过8×上采样进入Seg Head,Seg Head包括1个3×3的卷积、BN和ReLU操作,以及1个1×1卷积,最终输出Ⅳ维度特征,N为分割类别数。

为了弥补去除BiSeNet中的Spatial分支造成的细节损失,作者在Stage3后面插入了Detail Head使得Stage3能够学到细节信息。需要注意的是,Detail Head只在训练时使用,目的是让Stage3输出的feature map包含更多的细节特征,用于与Context分支的高层次语义特征融合。

C的结构:得到Detail Head的ground truth。

对标签(GT)分别做步长为1、2、4的Laplacian Conv,分别对步长为2和步长为4的输出结果进行2×和4x的上采样,使用带有可学习参数的1×1卷积融合,通过0.1的阈值输出最终的2值ground truth。

上述操作生成的ground truth中,细节特征所占的像素远少于非细节所占的像素,因此Detail Head部分面临着类别不均衡问题。因此联合使用binary cross-entropy loss和dice loss,dice loss可以缓解类别不均衡问题。

在实验中,细节头被证明能够有效地增强特征表示。请注意,此分支在推断阶段被丢弃。因此,这种旁侧信息可以很容易地提高分割任务的准确性,而不需要任何推理代价。

FFM 的另一个输入来自被 Detail Aggregation Module 监督的 stage3 特征,细节如下

GT 通过拉普拉斯金字塔,上采样 concat 配合 learn-able 1x1 conv 生成二值 mask 来监督由 stage3 生成的 Detail head。作者引入的 Detail Aggregation Module(上图 b、c) 的作用为:由于产生的 detail GT 前景较少,背景较多,直接用 binary cross-entropy 监督容易导致正负样本不均衡,作者在 binary cross-entropy 基础上,辅助了 Dice Loss。

ARM表示注意细化模块,FFM表示特征融合模块。

红色虚线框中的操作是我们的STDC网络。蓝色虚线框中的操作是详细信息聚合模块。

结论:通常,BiSeNet的分类主干和额外的空间路径极大地阻碍了推理效率。因此,我们提出了一种新的短期密集级联模块,用于提取具有可伸缩感受野和多尺度信息的深层特征。基于该模块,设计了STDC网络,并在图像分类中以较高的FPS实现了具有竞争力的精度。使用STDC网络作为主干,我们的细节引导STDC Seg在实时语义分割中实现了最先进的速度精度权衡。大量实验和可视化结果表明了我们提出的STDC Seg网络的有效性。

注:此篇笔记为在网上拼拼凑凑自己总结下来的,如有雷同是我抄袭,侵权删

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值