文献阅读_CVPR2021_semantic segmentation_Rethinking BiSeNet For Real-time Semantic Segmentation


Rethinking BiSeNet For Real-time Semantic Segmentation

一言以蔽之:提模块,弃支路,想法和效果都能打

1.Abstract

BiSeNet是实时分割领域主流的双流(two-stream)网络。然而BiSeNet增加支路去编码空间信息的做法是耗时的,而且直接使用诸如分类等预训练任务的骨干网络进行分割任务是不合理的。为了解决以上问题,我们移除了冗余,提出了全新的高效结构:Short-Term Dense Concatenate network(STDC network)。具体来说,本文将特征图的维数逐渐降低,并将特征图聚合起来进行图像表征,形成了STDC网络的基本模块。在解码器中,提出了Detail Aggregation module将空间信息的学习以单路(single-stream)的方式集成到低层中。最后,将低层特征和高层特征融合以预测最终的分割结果。

在Cityscapes和CamVid数据集上进行的实验证明了我们模型在精度和推理速度权衡上的有效性。使用1080Ti,网络在Cityscapes测试集达到了71.9%的mIoU和250.4FPS,比最新方法快45.2%。在高分辨图像推理时达到了76.8%的mIoU和97.0FPS。

2.Background

语义分割是计算机视觉领域经典而基础的问题,其目标为给图像分配像素级别的标签。图像分割在无人驾驶,视频监控,机器感知有大量的新增需求。在实时推理方面,DFANet,BiSeNetV1选择了轻量化骨干网络,进行特征融合或模型融合来补偿精度。但轻量化骨干网络来自分类任务没有进行过针对性的设计,此外还限制了图片的输入尺寸来提高推理速度。低分辨率导致了网络更容易忽略图片边缘细节以及小物体,为此BiSeNet使用了多支路的网络来融合低层细节和高层语义。

然而添加支路来获取低层特征是耗时的,而且辅助支路缺少低层信息的引导。

为此,我们以(较现有模型)高推理速度,结构可解释和有竞争性表现为目的,提出了新的手工设计网络。首先我们提出了STDC结构,以更少的参数获得大小可变的感受野。然后将STDC模块集成到U-Net结构,网络表现提升显著。

细节上,如图3,我们连接了多个连续层得到的特征图,每个层对输入的图像/特征在不同的尺度和各自的域进行编码,来表达多尺度的特征。为了加快速度,逐步减小层的卷积核大小,同时在分割性能上的损失可以忽略不计。

在解码阶段,如图2(b)所示,不同于引入额外的耗时支路,使用Detail Guidance来指导低层层的空间细节学习。

首先使用Detail Aggregation module生成GT细节

然后以binary cross-entropy loss和dice loss作为细节信息习得任务的损失(作为side-information learning,在推理时不需要)

最后,融合低层的空间细节和高层的语义信息预测语义分割结果

整体结构见图四

主要贡献如下:

提出了可以在多尺度和感受野下提取深层信息的STDC模块

提出了节省推理时间,提高空间信息精度的Detail Aggregation module

证明了模型的有效性

 

3. Proposed Method

3.1. Design of Encoding Network

3.1.1 Short-Term Dense Concatenate Module

本篇的核心在于提出了Short Term Dense Concatenate 模块(STDC module),图3的b和c给出了两种STDC模块,每个STDC模块被分成了几块称为ConvXi,ConvX由卷积层、BN层和ReLU层组成。

在STDC模块中,第一个块的卷积核大小为1,其余简单置为3。给定STDC模块的输出深度为N,则第i卷积层的卷积核个数可由${N/2^i}$得到,其中最后一层卷积核的个数等于前一层的。

作者解释道:在分类任务中,一般越高的层的卷积核个数越多,但语义分割任务中更关注可变大小的感受野和多尺度信息。因此低层需要以小的感受野和足够的通道去编码细粒度信息,高层以大的感受野处理高层语义信息,若设置与低层同样多的通道数则会导致信息冗余。

 

仅在块2 进行了下采样(怎么突然来一句

为了丰富特征信息,使用了skip-path拼接了(concatenate)全部特征图作为STDC模块的输出。在拼接之前,对STDC模块各块的特征图用池化核为3x3的平均池化下采样到了同一尺寸。

表1展示了STDC模块各块的感受野以及最终输出融合尺度信息

好处有二:

1.精心设计的以几何级数逐块递减的卷积核大小极大的降低了计算复杂度

2.STDC模块最终的输出由各块融合得到,保留了不同大小感受野和多尺度信息。

给出STDC输入维度M和输出维度N其参数量为${S_para}={\frac{NM}{2}}+{\frac{3N^2}{2}}{(1+{\frac{1}{2^{2n-3}}})}$

参数量主要由超参M和N决定,块数$n$影响不大。

3.1.2 Network Architecture

网络结构见图3(a),除了输入和输出层网络包含六个阶段。阶段1~5以2的步长进行了下采样,阶段6通过一个ConvX一个全局平均池化和两个全连接层输出logits(未归一概率)。

阶段1和2通产认为是提取视觉特征的低层,为追求效率,我们对1~2阶段只使用了一个卷积块,实验证明这样做是足够的。阶段3、4、5中STDC模块的数量经过了谨慎的选择,每个阶段内第一个STDC模块以2的步长进行了下采样,其余的块保持了分辨率不变。每个阶段的输出通数是经过仔细设计的,网络细节结构见表2

3.2. Design of Decoder

3.2.1 segmentation architecture

我们使用了预训练的STDC网络作为编码器的主干,使用了BiSeNet的context path编码背景信息。

如图4(a),我们用阶段3、4、5分别实现1/8,1/16,1/32的下采样。之后使用平均全局池化提供大的感受野的全局背景信息。采用U-shape结构对全局特征进行上采样,并将其与编码阶段的后2个阶段(Stage-4和Stage-5)的特征进行组合。模仿BiSeNet,我们使用了Attention Refine module(ARM)来加强信息融合。最后的语义分割预测环节,我们使用了BiSeNet的Feature Fusion module(FFM)来融合来自编码器阶段3的1/8下采样特征和解码器的对应部分。我们认为,以上的两种特征表征的是不同的特征层次,来自编码器的特征保留了丰富的细节,来自解码器的特征表示背景信息。具体的,Seg Head包括3x3 Conv-BN-ReLu 和1x1卷积。使用了cross-entry loss with Online Hard Example Mining优化任务。

3.2.2 Detail Guidance of Low-level Features

BiSeNet的空间支路可视化如图5b。与相同下采样比的backbone low-level layers(Stage-3)相比,spatial path可以编码更多的spatial细节,如边界、角等。由此,我们提出了Detail Guidance Module来知道低层以single-stream manner学习空间信息。

将细节预测建模为二分类分割问题。

首先基于图4(c)所示的拉普拉斯算子得到分割的真值生成细节图的真值。

如图4(a)所示,我们在阶段3插入了Detail Head以生成细节特征图,以细节图真值作为细节特征图的指导,指导低层学习空间细节。

如图5(d)细节图指导下生成的特征图能较图5(c)包含更多的空间信息。

最后习得的细节特征和解码器深层模块得到背景信息融合到一起。

细节真值生成:由分割的真值经拉普拉斯卷积和1x1的普通卷积生成。以不同的步长的拉普拉斯卷积生成soft thin detail feature map。对特征图上采样到原始分辨率后融合并进行1x1卷积实现动态的重赋权,最后以0.1作为边角的阈值得到细节图真值。

细节损失:因为细节点像素较少,所以对细节点像素的预测是样本不平衡问题。因为Weighted cross entropy经常导致粗糙的结果(coarse results),我们使用了binary cross-entropy and dice loss来共同优化细节学习。Dice loss 衡量预测图和真实图的重叠,以其对前后景像素数量不敏感可以减轻样本不平衡问题。

公式如下

$L_{bce}$为binary cross-entropy loss

Detail Head由3x3 Conv-BN-ReLu + 1x1 Conv构成,实验证明可以提高特征表达。由因为细节分支在推理时不适用故实现了无开销的精度提升。

4.Experiment Results

4.1Benchmarks and Evaluation Metrics

Benchmarks:ImageNet Cityscapes CamVid

Metrics:分类——top-1 accuracy,分割 mIoU,FPS

4.2 Implementation Details

4.3 Ablation Study

Effectiveness of STDC Module

在STDC2调整了STDC模块数量,结果见图七。

1.块越多FlOPs越低

2. Blocks=4时性能较佳,继续提高深度会降低帧率。

Effectiveness of Our backbone

Effectiveness of Detail Guidance

从可视化和量化指标两方面验证了细节指导的有效性。

图六为阶段3的特征图的热力图,表4为有无空间支路/细节指导以及不同的下采样倍数时的网络表现。

4.4. Compare with Stateofthearts

Results on ImageNet

Results on Cityscapes

Results on CamVid

5. Conclusions

本文回顾了经典的分割结构BiSeNet进行了结构优化。整体而言,分类的骨干网络和额外的空间支路阻碍了BiSeNet的推理效率。因此我们提出了一种新型的STDC模块以多尺度感受野提取深层信息以及多尺度信息。基于此,设计了STDC网络并获得了在图像分类下有竞争性的精度和速度。使用STDC网络作为骨干,我们含细节指导的STDC-Seg在实时分割中取得了sota的速度精度权衡。实验以及可视化的结果证明了我们提出的STDC-Seg网络的有效性。未来我们将一下几方面继续研究1.在更多的任务中证实骨干 比如目标检测 2.对空间边界在语义分割任务中的使用进行更深的研究。

致谢No.Z181100008918018

 

 

相关资料

BiSeNet的Spatial Path stride=2,下采样到8x

Context Path采用轻量级的骨干(论文为Xception39)分别下采样至4x 8x 16x 32x

RW:使用dilated convolution,pyramid pooling module,atrous spatial pyramid pooling,large kernel这些来trade-off 空间信息和感受野,BiSeNet使用CP SP 分而治之

SP下采样到8x,保留了比较大的特征图以尽可能多的编码空间细腻

CP基本逻辑是轻量骨干配合全局平均池化以实现快速的、大的感受野

ARM和FFM的结构如下

ARM:用 global average pooling 回避了上采样实现信息融合以提速,1x1conv 习得一个向量指导学习 (注:怎么上采样的?

FFM:两条支路的特征不在同一层次。1.batch normalization 来平衡特称大小(balance the scales of the features)2.池化归一的特征向量,计算一个权重向量,权重向量可以对特征复权近似进行特征的选择和融合。

Loss:$alpha$论文中为1

 

相关