V1
问题1:下采样让图像分辨率降低。
解决:膨胀卷积
问题2:空间不敏感
解决:使用CRF解决空间不变性,但是在V3中不用了,所以不用管了
与FCN网络呼应。把第一个全连接层变成卷积层,是7 X 7 X 4096 。7 X 7的卷积核,有4096个。
如果使用这个卷积层,会成为计算瓶颈。所以对它下采样,变成4X4或者3X3
实验表示,使用LageFOV 这种方式的卷积核效果最好
LargeFOV的backbone是VGG-16(D)
黑色框是改编了一点的VGG-16
V2
ASPP结构是重点:
这里的feature map 是backbone输出的feature map,然后并联四个分支(这四个都是膨胀卷积)不同分支采用不同的膨胀系数。每个分支采用的膨胀系数不同,所以他的感受野不同,这样就可以实现一个多尺度的融合。经过实验要使用ASPP-L的结构。
左边是各种配置的组合,右边说在VGG-16上IOU:65.76,而在ResNet101上IOU:68.72。
所以把backbone换成了 ResNet。
学习率的变化策略。
右上角公式:lr初始学习率,iter是步数,max_iter 整个过程中的步数
在Layer3之前和 ResNet-101一样,
到Layer2为止就是下采样八倍了,所以Layer3之后的就不再下采样了。
在Layer3 的Bottleneck1 中的第二个卷积变成了膨胀卷积。(上图右面蓝色部分)
Bottleneck2中无侧面的小卷积层
ASPP:并行通过4个卷积层,然后相加
然后双线性插值进行八倍上采样再输出。
V3
Multi-grid更合理的设置膨胀系数。
CRF在V2中提升已经不高了,所以给移除了。
上面是联级模型,下面是aspp模型
训练的时候 会下采样16倍,在验证的时候,只下采样8倍。
因为训练的时候下采样16倍,batchsize可以说设置更大一点。验证时下采样还是16的话,验证结果会差一些,所以改成8了。
(只有联级模型有567) block5,6,7和4一样都是三个残差层组成的。
当使用级联模型的时候,有5,6,7那么使用(1,2,1)会获得最高的meanIOU
使用aspp时,只有4,那么使用(1,2,4).
Multi-Grid那一列是膨胀系数基底,当block4中膨胀系数是2的时候:
(1,2,4)变成了(2,4,8)
block4是三个残差结构组成的,将三个残差结构的膨胀系数分别设置为2,4,8
所以下面的aspp选择了(1,2,4)
1)使用更大的尺寸。
2)在V2网络中 计算损失是在最后 28X28那个地方计算的损失,(没有上采样8倍还原到原图尺寸)。