FCN
图像语义分割的开始。
用卷积层替代全连接层,输入图像可以是任意尺寸,且输出与输入图像相同尺寸的特征图。
pooling层增大感受野,减少尺寸;upsampling增大图像尺寸。
这里用了“跳级结构”的反卷积操作用浅层信息辅助逐步进行上采样,但是仍然存在信息损失的问题,分割结果不够精细。
改进的方法,一个是UNet,一个是空洞卷积。
首先解释一下感受野。感受野指的是一个特定的CNN特征(特征图上的某个点)在输入空间所受影响的区域。感受野的计算不考虑padding(原始图像)。计算公式为:
空洞卷积
空洞卷积就是在传统的卷积中加入了一个dilation rate这个系数。可以从两个方面理解这个参数,从原图像层面理解:就是我们对原图以(dilation rate-1)进行间隔采样;从卷积核自身的角度来看,我们相当于在未使用空洞卷积的卷积核中,在其内部插入(dilation rate-1)个0,可以理解为使用空洞卷积之后我们卷积核的尺寸变大了。计算公式为:
kernel_size_after_dilate = (dilate rate -1) * (kernel_size_before_dilate - 1) + kernel_size_before_dilate
存在的问题:会损失图像信息的连续性,形成栅格效应(The Gridding Effect);小物体的分割效果比较差。
HDC (Hybrid Dilated Vonvolution)
是对空洞卷积的改进。
主要是三个方面:
dilated rate不能有大于1的公约数(比如[2, 4, 6]),不然会产生栅格效应;
dilated rate设计成了锯齿状结构,例如[1, 2, 5, 1, 2, 5]这样的循环结构;
需要满足:
一个简单的例子: dilation rate [1, 2, 5] with 3 x 3 kernel (可行的方案)
而这样的锯齿状本身的性质就比较好的来同时满足小物体大物体的分割要求(小 dilation rate 来关心近距离信息,大 dilation rate 来关心远距离信息)。