1
动机在2分支结构的网络中,2个分支基本保持着相对独立的计算流程。“深网络+低分辨率输入”和“浅网络+高分辨率输入”的组合可以较好地控制计算开销,以保证算法的实时性。以下图所示:2个分支的浅层部分,实际上都是在提取浅层特征,若能将2个分支的浅层部分合并在一块儿,则能够进一步减小计算量。基于此,做者提出了“learning to downsample”模块,2个分支共用该模块提取浅层特征。并以learning to downsample模块和2个分支为基础,构建实时性语义分割网络Fast-SCNN。以下图所示:
2
Fast-SCNN
2.1 整体结构
Fast-SCNN的整体结构以下图所示:从上图能够看出,2个分支共享learning to downsample模块,以进一步减小计算量。整个网络由learning to downsample模块、全局特征提取器、特征融合模块和分类器4部分组成,下面分别介绍。
Fast-SCNN使用全局特征提取器来提取全局特征,此处的全局特征提取器相似于传统2分支结构中的深度分支。传统的2分支结构中深度分支的输入是低分辨率的输入图像,而Fast-SCNN中全局特征提取器的输入为learning to downsample模块的输出feature map。能够这么理解:Fast-SCNN中的learning to downsample模块代替了传统2分支结构中深度分支的前几个卷积层。使用MobileNet-v2中提出的bottleneck residual block构建全局特征提取器,bottleneck residual block中的深度可分离卷积有利于减小全局特征提取器的参数量和计算量。全局特征提取器还包含pyramid pooling模块(PPM),用于提取不一样尺度的上下文特征。关于PPM的相关内容可参考论文《Pyramid Scene Parsing Network》。
2.4 特征融合模块
特征融合模块用于融合2个分支的输出特征,Fast-SCNN使用了相对比较简单的结构完成特征融合,以最大限度地提升计算效率。特征融合模块的结构以下表所示:为了使得2个分支的输出特征尺寸一致,须要对深度分支的特征作上采样操做,即上表中的“Upsample x X”操做。两个分支的最后都有1个卷积核尺寸为1x1的卷积操做用于调整通道数,将两个卷积操做的输出特征相加,以后使用激活函数进行非线性变换。