1.网络结构:
VGG16网络主干去掉全连接改变最后两次池化步长,卷积核用空洞卷积 + Fully connected CRF。VGG16可以被替换。这句话就是网络的组成了。代码也是按这个结构去看就好。
以VGG16为网络主干。后期发现Resnet效果更佳。就改为了Resnet为主干。这里理论结构就以VGG16为主干说明了
图1
如上图1就是VGG为主干网络的deeplabv1的语义分割前半部分主要结构。与vgg16不同之处就在于两个红色的stride 和粉色的fc678. 不想将图像缩放的那么小。所以前三次卷积+池化后图像缩放为原图的1/8 后面两层卷积+池化,池化层就按步长(Stride)为1进行处理了。最终的结果就是1/8图了。Fc6 Fc7 Fc8 这三个全连接层去掉。直接用池化层特征图做最后的featuremap即可。最后加了一次升采样。这样就获得了与原图大小一致的特征图。 最终结果就是下面图2的第一行第二列那个团团。显然这个结果不可接受。
图2
deeplabv1最后还用Fully connected CRF对边缘进行修正,恢复详细的局部结构,如精确图形的轮廓。图2的第一行第三列 第四列 第五列就是迭代不同次数的效果了。不过后期的deeplabv3吧crf这个方法抛弃了,说明后来的方法精度提升够用了不用CRF再去精修了(我猜的)。下面列出的代码也不包含CRF这段内容。只记录了前半部分网路的主干部分。
2.空洞卷积