文章目录
- 语义分割
- 反卷积
- 反池化
- 跳层结构Skip-Layer
- 构建FCN
- DeepLab
- DeepLab V1
- CRF 条件随机场
- DeepLab V2
- DeepLab V3
- 数据集
语义分割
传统CNN就是全连接层,太多权重参数,而且丢失了图像的空间信息。但是注意FC在英语里,全卷积fully convolutional 和 fully connect是一样的。当我们说FCN时,说的是全卷积。
反卷积的上采样比之前的上采样方法好的是因为可以训练。
跳层结构的原因是卷积卷到最后,图片很小,每一个像素点,包含了巨大的语义信息,但是当上采样回原始大小图片时,语义边缘的分割效果可能不好,所以会取卷积中途的某一层,feature map还不是很小的时候,将这个语义信息带上最后一起进行上采样。
全连接是直接vector,4096个元素,卷积化之后是4096个channel通道。
反卷积
卷积与转置卷积的参数对比
上采样的三个方法,实际中我们都会用。
反池化
反卷积比较连续,反卷积需要训练,反池化不需要训练。
跳层结构Skip-Layer
最后一层为双线性插值,不进行学习
构建FCN
分解步骤如下:
用VGG做基础网络,FCN的效果最好。
DeepLab
DeepLab V1
孔算法的思想就是不要将图片在池化的时候降低到1/32,而是改成1/8。这样没有压缩原图太多。
那么为什么FCN不能只降低8倍呢?简单来说就是不能很好的分辨物体属于哪一类。感受野比较小。孔算法解决的就是密集池化+大的感受野。
孔算法:信息量没有少太多,感受野变大了。
注意rate的选择,如果大于了原始图片的大小,相当于1*1卷积。
从上图可以看出,孔算法可以很好的识别出物体,但是边缘依然不好,所以需要CRF(Conditional Random fields)条件随机场。
CRF 条件随机场
可以说条件随机场的势能函数的灵感可能就是来源于之前的graph cuts。
DeepLab V2
DeepLab V3
数据集