DeepLab语义分割系列(一):
SS-Model【2】:DeepLabv1
DeepLab语义分割系列(二):
SS-Model【3】:DeepLabv2
DeepLab语义分割系列(三):
SS-Model【4】:DeepLabv3
DeepLabv2是一个用于语义分割的架构,它建立在DeepLab的基础上,有一个无轨的空间金字塔集合方案。在这里,我们在输入特征图中应用了不同速率的平行扩张卷积,然后将它们融合在一起。由于同一类别的物体在图像中可能有不同的尺寸,ASPP有助于解释不同的物体尺寸。
回顾下 DeepLab v1 ,其主要是在 FCN 的基础上对 VGG 网络进行调参 fine tuning,并在最后加上一个全连接的 CRF,保证对 FCN 得到的结果在局部细节(边界)上进行优化。
DeepLab v2 的主要贡献有三个,具体如下:
DeepLab v2 是在 DeepLab v1 的基础上进行改进。改进点有三个,具体如下:
主要优点
在语义分割任务中,DCNN 面临三方面挑战:
DeepLab 系统的整个过程(将 VGG16 和 ResNet-101 迁移到语义分割中),如下所示:
backbone 为 ResNet-101 的网络结构如下所示(不考虑MSC):
一维上的空洞卷积,如下所示:
其中rate是膨胀因子,空洞卷积公式如下:
y
[
i
]
=
∑
k
=
1
K
x
[
i
+
r
⋅
k
]
w
[
k
]
y[i] = \displaystyle\sum^K_{k=1} x[i + r \cdot k] w[k]
y[i]=k=1∑Kx[i+r⋅k]w[k]
参数含义:
二维上的空洞卷积,如下所示:
空洞卷积有两种实现方式:
更详细的内容可以参考我的另一篇blog:SS【1】:转置卷积与膨胀卷积
尝试的两种在多尺度上进行分割的方案:
ASPP 具体结构如下所示:
文中提出了 2 组感受野的尺寸:
将 ASPP 添加到 backbone 为 VGG16 的网络结构中:
对于每个像素位置 i i i 具有隐变量 x i x_i xi (这里隐变量就是像素的真实类别标签,如果预测结果有21类,则 i ∈ 1 , 2 , . . , 21 i \in 1, 2, .. ,21 i∈1,2,..,21),还有对应的观测值 y i y_i yi(即像素点对应的颜色值)。以像素为节点,像素与像素间的关系作为边,构成了一个条件随机场(CRF)。通过观测变量 y i y_i yi 来推测像素位置i对应的类别标签xi。条件随机场示意图如下:
比起 DeepLabv1 的 CRF,v2 中的 CRF 修改了能量函数和二元势函数的表达式,给模型带来了一定程度的提升
此处涉及到复杂的数学推导与计算,博主不是很了解,建议大家自行在网上搜索,到了 Deeplabv3 的时候,将不再使用 CRF 了
l r × ( 1 − i t e r m a x _ i t e r ) p o w e r lr \times (1 - \frac{iter}{max\_iter})^{power} lr×(1−max_iteriter)power
参数:
DeepLabv2 将空洞卷积应用到密集的特征提取,进一步的提出了空洞卷积金字塔池化结构、并将 DCNN 和 CR F融合用于细化分割结果。实验表明,DeepLabv2 在多个数据集上表现优异,有着不错的分割性能。