语义分割-DeepLabv1

DeepLabv1

论文原文

Semantic image segmentation with deep convolutional nets and fully connected CRFs

0. 简介

  DeepLabv1针对CNN做语义分割的缺点做了些改进:

  • 将hole算法(即空洞卷积)引入了CNN中;
  • 将CRF与DCNN结合,提升了语义分割的精度;

1. 网络架构

  模型图
语义分割-DeepLabv1
  VGG-16语义分割-DeepLabv1
  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算法)

  使用不同采样率的空洞卷积,可以让模型再密集的计算时,明确控制网络的感受野
语义分割-DeepLabv1
  卷积语义分割-DeepLabv1
  空洞卷积语义分割-DeepLabv1

3. CRF

  DCNN的输出是比较平滑的:
语义分割-DeepLabv1
  为得到明确的边界预测,可以采用全连接CRF来处理,短范围的CRF或局部CRF都会使得边界更加平滑。

  全连接CRF的能量函数,作为训练的损失函数,即最小化E(x):
语义分割-DeepLabv1
  第一项, p ( x i ) p(x_i) p(xi​)为预测的概率:
语义分割-DeepLabv1
  第二项:
语义分割-DeepLabv1
  其中如果 x i = x j x_i = x_j xi​=xj​ 则 μ ( x i , x j ) = 1 \mu(x_i , x_j)=1 μ(xi​,xj​)=1,否则 μ ( x i , x j ) = 0 \mu(x_i , x_j)=0 μ(xi​,xj​)=0。 k m k^m km是两个高斯核, k m k^m km如下:
语义分割-DeepLabv1
  其中, p i p_i pi​是像素位置, I i I_i Ii​是像素的颜色强度信息。
  其余参数是超参数。

4. 实验结果

语义分割-DeepLabv1

5. 总结

  本文工作结合了深度卷积神经网络和完全连接的条件随机场的思想,并引入空洞卷积,产生了一种新颖的方法,能够产生语义准确的详细的预测分割图,同时计算效率很高。

上一篇:信号处理学习笔记——傅里叶变换与希尔伯特变换


下一篇:信息、信息熵、联合熵、条件熵、信息增益、信息增益率、基尼系数