论文地址:https://arxiv.org/pdf/1802.02611.pdf
模型结构简单,重点是理解模型设计的动机,并记录一下卷积的通用知识,已经熟知的知识就不再记录了,详细读原文。
Abstract:
1、给deeplab加了一个decoder 拟合分割结果特别是物体边界
2、探索Xception和使用ASPP decoder阶段depthwise分离卷积
INTROCTION:
encoder-decoder的模型能够捕获 物体边界。
考虑到GPU资源的限制,计算上禁止使用output_stride = 8 或output_stride = 4,(关于output_stride的解释 在deeplabv3有解释)。因为output_stride小,输出的分辨率大,GPU没那么大的资源。对于Resnet101 ,block层是3,4,23,3。如果output_stride = 16, block4的3层需要使用空洞卷积,并且该block特征图分辨率为input 的十六分之一。如果是output_stride = 8,block3 ,block4都使用空洞卷积, 该两个block特征图分辨率为input的八分之一,两个block 共26层,计算比较密集。
编码-解码的模型在编码阶段更快的计算,并能在解码时候恢复边缘信息
结合两者,提出通过结合多尺度上下文信息来编码-解码网络。
本文工作:
1、以deeplabv3作为编码结构,提出编码-解码简单高效的网络
2、能任意控制编码特征,调节精度和速度的平衡,这是其他编码-解码网络做不到的。
3、使用Xception用于分割,在ASPP 和解码用了depthwide分离卷积,达到快速且健壮的效果
4、提供模型的变种
RELATED
Spatial pyramid pooling:
Encoder-decoder:
Depthwise separable convolution:
这三部分都比较容易理解,就不写了。
Methods
Encoder-Decoder with Atrous Convolution
depthwise 分离卷积:将普通的卷积分解为depthwise 卷积和pointwise卷积。depthwise卷积独立的为每个通道进行卷积,pointwise卷积组合depthwise的结果。
atrous separable 卷积能明显减少模型的计算数量,并且保持类似的或者更好的性能。
Deeplabv3 as encoder:
For the task of semantic segmentation, one can adopt output_stride= 16 (or 8) for denser feature extraction by removing the striding in the last one (or two) block(s) and applying the atrous convolution correspondingly (e.g., we apply rate= 2 and rate= 4 to the last two blocks respectively foroutput stride= 8). (相同颜色对应相同颜色)
这句话表达的意思deeplabv3中多次提到的。
使用deeplabv3作为编码的有点:包含丰富的语义信息,通过output_stride能够随意调节特征分辨率
proposed decoder:
如果output_stride = 16,有些工作直接上采样16倍,这不能成功的恢复分割细节。本文的解码是编码结果上采样4倍,然后与低级特征做concatenate,然后通过3*3卷积做refine,最后4倍双线性插值。 对于resnet101, output_stride = 16速度和精确度最平衡。output_stride = 8,精度最高,编码计算开销变大。
Modified Aligned Xception
deeper Xception 将Xception所有的最大池化替换为带步长的depthwise 卷积,这使得我们可以通过atrous separabale 卷积获取任意分辨率特征图。类似于MobileNet,3*3卷积后加入BN和Relu。
Experimental Evaluation
实验部分比较容易理解,看原文。