引言:本文选取了三篇图像分割初期的经典论文:DilatedNet、DeepLabV2和HDC/DUC,重点关注每篇论文要解决什么问题、针对性提出什么方法、为什么这个方法能解决这个问题
DilatedNet
文章名:《Multi-Scale Context Aggreation By DilatedCNN》
论文下载:https://arxiv.org/abs/1511.07122
官方代码:https://github.com/fyu/dilation
标准卷积(l = 1) | 膨胀卷积(l = 2) |
解决的问题
图像分类模型通过降低分辨率,来集成上下文信息,直到获取了整幅图像的预测。但这种方法不适用于语义分割,分割任务需要给整张图片的像素输出预测。在先前的工作中,使用了大量的上卷积(恢复丢失的分辨率)和下采样操作(获取全局信息),或者提供图像的多个缩放倍率作为网络的输入,最后整合输出的方式,效果均不佳。
简而言之,就是解决分割任务中图像分辨率必须要缩放的难题
思路和主要过程
1.删除所有池化层和步距层,并用膨胀卷积替代,用来产生更高分辨率的输出
2.因为随机初始化方案对上下文模块并不有效,所以使用输入和输出的通道channels的数量的权重来初始化的方式代替它
主要贡献和启发
- 膨胀卷积适用于密集像素预测,因为它能在保持分辨率的情况下扩大感受野的范围,如下图:
l=1 (left), l=2 (Middle), l=4 (Right)
- 基于膨胀卷积设计了上下文模块,保持图像分辨率的同时聚合了上下文信息,并且能做到随插随用
- 删除了分类网络在分割任务中一些不必要的部分(如池化层、中间特征映射填充等),使网络更高效简洁
DeepLabV2
文章名:《DeepLab-Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs》
论文下载:https://arxiv.org/pdf/1606.00915.pdf
官方代码:http://liangchiehchen.com/projects/DeepLab.html
解决的问题
1.先前的工作重复使用了池化和下采样操作,使得图像分辨率下降
2.物体存在多尺度问题,比如同样的物体,在近处拍摄时物体显得大,远处拍摄时显得小
3.空间不变性导致细节信息丢失,先前的模型可以预测物体的存在和大致位置,但不能真正划定它们的边界
思路和主要过程
1.对于第一个问题:删除下采样,增加上采样,使用膨胀卷积在不降低特征图分辨率的同时获得更大的感受野
2.对于第二个问题:设计一种ASPP模块(Atrous Spatial Pyramid Pooling,空洞空间卷积池化金字塔),并行的采用多个采样率的空洞卷积提取特征,再将特征融合,以此聚合多尺度上下文信息,增强模型识别不同尺寸同一物体的能力
3.对于第三个问题,使用全连接 CRF(Fully Connected CRF,全连接条件随机场)作为后处理的手段,捕捉边缘等细节信息,对DCNN输出的语义分割图进行优化
主要贡献和启发
- 膨胀卷积可以有效地扩大滤波器的视野,而不增加参数的数量或计算量
- 使用ASPP模块,相当于用多个具有视野互补的过滤器探测原始图像,从而在不同尺度上捕捉物体和有用的图像上下文信息
- 首次使用CRF,CRF不但计算效率高,而且能够捕捉到精细的边缘细节,同时也能有效地利用先验信息
HDC/DUC
文章名:《Understanding Convolution for Semantic Segmentation》
论文下载:https://arxiv.org/abs/1702.08502
官方代码:暂无
解决的问题
1.先前的FCN类网络通过构建更深的网络、改进CRFS两个方向进行改进
2.解码阶段,传统的双线性插值具有不可学习,易丢失细节的缺点
3.编码阶段,使用普通的膨胀卷积会导致网格化问题,即感受野只覆盖一个"棋盘",丢失大量局部信息,同时因为相距过远的像素间无相关性,所以信息冗余
思路和主要过程
1.另辟新径,采取了改进编解码的方式改善效果
2.解码阶段,采用DUC的方法,即学习如何缩小特征图,恢复为原来的图像,而不是一次性恢复分辨率
3.改变卷积方式,使用HDC扩大感受野的范围,解决网格化问题
主要贡献和启发
- HDC可以解决网格化问题,并且可以使用任意的扩张率,从而自然地扩大网络的感受野,方便识别相对较大的物体。
- 可以把因为卷积丢失的像素信息转移到通道上,如DUC