论文原文
Semantic image segmentation with deep convolutional nets and fully connected CRFs
0. 简介
DeepLabv1针对CNN做语义分割的缺点做了些改进:
- 将hole算法(即空洞卷积)引入了CNN中;
- 将CRF与DCNN结合,提升了语义分割的精度;
1. 网络架构
模型图
VGG-16
Deeplab整体基于VGG-16进行修改:
- VGG-16的FC层换成卷积;
- 最后两个池化层(pool4、pool5)去掉了下采样(padding到原大小),两个池化层的步长2改成1,下采样32倍变为8倍;
- 最后三个卷积层(conv5_1、conv5_2、conv5_3)的dilate rate设置为2,且第一个FC层转化后的卷积层的dilate rate设置为4(保持感受野);
- 基于预训练的VGG16的权重做fine-tune
训练时,损失函数取是输出的特征图与ground truth下采样8倍做交叉熵和;测试时取输出图双线性上采样8倍得到结果。
2. hole算法(atrous算法)
使用不同采样率的空洞卷积,可以让模型再密集的计算时,明确控制网络的感受野
卷积
空洞卷积
3. CRF
DCNN的输出是比较平滑的:
为得到明确的边界预测,可以采用全连接CRF来处理,短范围的CRF或局部CRF都会使得边界更加平滑。
全连接CRF的能量函数,作为训练的损失函数,即最小化E(x):
第一项, p ( x i ) p(x_i)