引言:本文选取了三篇图像分割初期的经典论文:DeepLabV3、DeepLabV3+、DenseASPP,重点关注每篇论文要解决什么问题、针对性提出什么方法、为什么这个方法能解决这个问题
文章名:《Rethinking Atrous Convolution for Semantic Image Segmentation》
论文下载:https://arxiv.org/abs/1706.05587v1
官方代码:非官方Pytorch实现代码:pytorch_segmentation/deeplab_v3
对于第一个问题,参考HDC的做法,每一次卷积都采用不同倍率的膨胀系数,同时,每一个普通卷积都换成了膨胀卷积
例如:Block1,Block2,Block3,Block4是原始ResNet网络中的层结构,但在Block4中将第一个残差结构里的3x3卷积层以及捷径分支上的1x1卷积层步距stride由2改成了1(即不再进行下采样),并且所有残差结构里3x3的普通卷积层都换成了膨胀卷积层。Block5,Block6和Block7是额外新增的层结构,他们的结构和Block4是一模一样的,即由三个残差结构构成
对于第二个问题,改进ASPP模块,比如新增全局池化、双线性插值的方式进行上采样等,注意:每一个Conv和ReLu之间都有一个BN层
这里做个简单的对比:
DeepLabV2_ASPP
:
DeepLabV3_ASPP
:
使用膨胀卷积时,要采用合适的步距以达到最好的效果
如下图,不同步距对应着不同的mIOU,可见stride=8的时候效果最好
文章名:《Rethinking Atrous Convolution for Semantic Image Segmentation》
论文下载:https://arxiv.org/abs/1802.02611
官方代码:https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_segmentation/deeplab_v3
在深层提取的特征具有更强的语义感知能力,但由于池化和步幅卷积,失去了空间细节。
来自浅层的特征更注重细节,如强边缘。在这种情况下,这两种类型的特征的适当合作有可能提高语义分割的性能。
文章名:《DenseASPP for Semantic Segmentation in Street Scenes》
论文下载:https://openaccess.thecvf.com/content_cvpr_2018/papers/Yang_DenseASPP_for_Semantic_CVPR_2018_paper.pdf
官方代码:https://gitcode.net/mirrors/DeepMotionAIResearch/DenseASPP?utm_source=csdn_github_accelerator
自动驾驶场景中输入的图像分辨率高,所以要求更大的感受野,但同时物体的尺度变化大,所以现有的ASPP结构无法解决这两个问题
设计了一种DASPP(空洞空间卷积池化金字塔)模块
上图中的DenseASPP(粉红色部分)的膨胀率有3,6,12,18,每一层的数字分别表示由对应的膨胀率的卷积组成,长度表示每一层的卷积核尺寸,很明显,每一个堆叠层的空洞卷积的密集连接能够构成更密集的特征金字塔模型,所以DenseASPP的感受野比ASPP的更大