DeepLab V2
- 遇到的相关问题以及解决方法
- 对于DeepLab V1的优化
- 模型总结
- 补充的一个小知识点
- ASPP
- Learning rate policy
- 实验结果
- 消融实验
- 实验结果
遇到的相关问题以及解决方法
和DeepLab V1中遇到的问题几乎没有什么太大的差别,在文章的引言部分作者提出了在语义分割中遇到的问题:
- 分辨率被降低(主要由于下采样stride>1的层导致)
- 目标的多尺度问题
- DCNNs的不变性(invariance)会降低定位精度
DeepLab V2对于上述的三个问题提出了自己进一步解决方法:
- 针对分辨率被降低的问题 : 一般就是将最后的几个Maxpooling层的stride设置成1(如果是通过卷积下采样的,比如resnet,同样将stride设置成1即可),配合使用膨胀卷积。
- 针对目标多尺度的问题 : 最容易想到的就是将图像缩放到多个尺度分别通过网络进行推理,最后将多个结果进行融合即可。这样做虽然有用但是计算量太大了。为了解决这个问题,DeepLab
V2 中提出了ASPP模块(atrous spatial pyramid pooling)。- 针对DCNNs不变性导致定位精度降低的问题,和DeepLab V1差不多还是通过CRFs解决,不过这里用的是fully connected pairwise CRF,相比V1里的fully connected CRF要更高效点。(在DeepLab V1中添加了CRF对于结果提升了大概4个点,但是在DeepLab V2中只有1个多点,而且在DeepLab V1中也知道使用CRF是非常耗时的)
对于DeepLab V1的优化
- DeepLab V2首先的改变是将DeepLab V1的backbone从VGG16变成了ResNet(因为换了一个Backbone实验的结果提升了3个点,在后续消融实验会介绍)
- 提出了一个新的模块ASPP
模型总结
补充的一个小知识点
论文作者通过对于先下采样然后空洞卷积再上采样和直接通过空洞卷积计算,对比了两者的差距。作者的主要是的意思还是为了阐述第一个问题,在图像分辨率降低的同时会造成信息丢失的情况。
ASPP
这个ASPP模块感觉就像是DeepLab V1中LargeFOV的升级版(加入了多尺度的特性)。上图是原论文中介绍ASPP的示意图,就是在backbone输出的Feature Map上并联四个分支,每个分支的第一层都是使用的膨胀卷积,但不同的分支使用的膨胀系数不同(即每个分支的感受野不同,从而具有解决目标多尺度的问题)。
上图有画出更加详细的ASPP结构(这里是针对VGG网络为例的),将Pool5输出的特征层并联4个分支,每个分支分别通过一个3x3的膨胀卷积层,1x1的卷积层,1x1的卷积层(卷积核的个数等于num_classes)。最后将四个分支的结果进行相加融合即可。 如果是以ResNet101做为Backbone的话,每个分支只有一个3x3的膨胀卷积层(没有后边两层的FC),卷积核的个数等于num_classes。
对于ASPP论文给了两种配置,前者的膨胀系数分别为(2,4,8,12),后者是(6,12,18,24)。对比实验结果ASPP-L的效果无论是在添加CRF前还是后都是最好的。
Learning rate policy
在DeepLab V2中训练时采用的学习率策略叫poly,相比普通的step策略(即每间隔一定步数就降低一次学习率)效果要更好。文中说最高提升了3.63个点。poly学习率变化策略公式如下:
其中 lr 为初始学习率,iter 为当前迭代的step数,max_inter 为训练过程中总的迭代步数。
上图为控制不同的poly得到的不同的mean IOU的对比,通过第一行和最后一行发现,如果利用这个策略可以提高3.6个点
实验结果
消融实验
MSC : 代表是否使用多尺度的输入。讲(0.5,.075,1)(1代表的是原始的大小)然后分别送入网络预测得到score maps,最后融合这三个score maps(对每个位置取三个score maps的最大值)。
Multi-scale inputs: We separately feed to the DCNN images at scale = { 0.5, 0.75, 1 } , fusing their score maps by taking the maximum response across scales for each position separately.
COCO : 是否在COCO数据集上进行预训练。
Models pretrained on MS-COCO
Aug : 代表数据增强,这里就是对输入的图片在0.5到1.5之间随机缩放。
Data augmentation by randomly scaling the input images (from 0.5 to 1.5) during training. In Tab.
接上文说到的更换了Backbone之后提高了3个点
our simplest ResNet-101 based model attains 68.72%, compared to 65.76% of our DeepLab-LargeFOV VGG-16 based variant, both before CRF
实验结果
先鸽子,咕咕咕咕咕