Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs论文地址 : Deep Lab V1
ICLR 2015收录
本文结合了深度卷及网络(DCNN)和CRF两个已经比较成熟的模块,在实验过程中发现单纯的使用DCNN的效果不是那么的丝滑(DCNN对于高层语义信息拥有很好的能力,但是对于低级的位置信息不足。),做语义分割不够那么精准,根本原因是DCNN的高级特征的平移不变形。
我们通过将DCNN的最后一层和CRF结合,解决了定位准确率低的问题。
信号下采样 :在DCNN中重复最大池化和下采样带来的分辨率下降问题,分辨率的下降会丢失细节。max-pooling会降低特征图的分辨率,而利用反卷积等上采样方法会增加时空复杂度,也比较粗糙,因此利用空洞卷积来扩大感受野,相当于下采样-卷积-上采样的过程被一次空洞卷积所取代。空洞卷积可以扩展感受野,获取更多的上下文信息。
解决方法 : 利用带孔的卷积(空洞卷积)
空间不敏感(invariance) :
解决方法 : 使用Dense CRF解决空间不变性的问题
参考资料:
CRF的引入:
后边DeepLab V3就不再用了,暂时先鸽子。

类似于FCN的多尺度的拼接,不过最后的结果类似于Unet是将所有的拼接起来了不是FCN的相加。
实现:
在输入图片与前四个max pooling后添加MLP(多层感知机,包括3 * 3 * 128以及1 * 1 * 128),得到预测结果。这四个预测结果与最终模型输出拼接(concatenate)到一起,相当于多了128*5=640个channel。
总结:虽然最后的结果略有提升,但是相对于添加CRF还是有差距
主要是对原有VGG网络进行了一些变换:

其他训练信息
损失函数:交叉熵之和。
训练数据label:对原始Ground Truth进行下采样8倍,得到训练label。
预测数据label:对预测结果进行双线性上采样8倍,得到预测结果。

使用dilated conv,还避开了层层上采样,直接用bilinear interpolation(双线性插值)恢复到原状,然后进行fully-connected conditional random fields 通过邻域之间的锐化,得到最终分割结果。
模型的整体结构:

测试细节:
| 项目 | 设置 |
|---|---|
| 数据集 | PASCAL VOC 2012 segmentation benchmark |
| DCNN模型 | 权重采用预训练的VGG16 |
| DCNN损失函数 | 交叉熵 |
| 训练器 | SGD,batch=20 |
| 学习率 | 初始为0.001,最后的分类层是0.01。每2000次迭代乘0.1 |
| 权重 | 0.9的动量, 0.0005的衰减 |
最后的实验结果进行对比,发现最下边的那个对比当前主流的FCN-8S或者TTI—16都优秀很多


不同的组合在训练集和测试集的MIOU

又无CRF的对比