Deeplabv1算法介绍
Deeplab系列算法一直都在语义分割领域占有重要地位!目前Deeplab全系列分为deeplabv1、deeplabv2、deeplabv3、deeplabv3+四部曲。
这一部分主要介绍deeplabv1,发表于2015年,历史悠久。deeplebv1主要是为了改进FCN弊端而设计的。事实证明FCN才是永远的神,就像ResNet一样坚挺。现在阅读原文可能有些晦涩,所以本文尽可能简单叙述。
网络结构解析
大体结构:VGG16+扩张卷积块+Fully-connect CRF+多尺度预测
下面是结构图:
解释一下里面的参数:
去掉了maxpooling4、maxpooling5或者把stride改成了1,kernal改成了3,总之最底层特征图是8倍下采样特征图。
VGG_Layer5:把普通卷积层替换成扩张卷积层,扩张率为2。
FC6:把全链接层替换成扩张卷积层,扩张率为4。
FC7:把全链接层替换成1×1卷积层。
ClassficationX:Conv(stride)+Relu+Drop–》Conv(1×1)+Relu+Drop–》Conv(classes)
考虑到每个层出来的特征图大小不一样, 可以用stride合理的调节到统一大小:8倍下采样的特征图。
如何逐个元素相加并8倍上采样,得到最终的分割结果。
多尺度预测:上图中从不同层中拿出特征图进行逐点相加融合。
Fully-connect CRF(条件随机场):deeplabv2之后就没有使用,应该是没啥效果,已经淘汰的东西就不展开。