极简笔记 Multi-Scale Context Intertwining for Semantic Segmentation

极简笔记 Multi-Scale Context Intertwining for Semantic Segmentation

本文提出MSCI语义分割算法,在PASCAL VOC 2012 test集上目前是top5算法(第一名是用了JFT的deeplabv3+)。区别于传统FCN架构,本文的分割结果融合了网络特征与传统分割算法,通过LSTM进行融合。

文章大致流程如下:

  1. 利用传统分割算法预先得到数个超像素,与此同时利用CNN对输入图像提取不同层次特征;

  2. 对相邻层级的特征进行信息交互。记需要交互的两层分别为 l , l + 1 l, l+1 l,l+1对每一个像素点,需要获取三部分特征:1. 该像素位置的网络特征 F l ( h , w ) F^l(h,w) Fl(h,w);2. 该像素所处超像素区域 S n S_n Sn的特征之和 R n l = ∑ ( h , w ) ∈ Φ ( S n ) F l ( h , w ) R^l_n=\sum_{(h,w)\in \Phi(S_n)}F^l(h,w) Rnl=(h,w)Φ(Sn)Fl(h,w); 3. 所处超像素的邻域(也是超像素)的特征之和 M n l = ∑ S m ∈ N ( S n ) R m l M^l_n=\sum_{S_m\in\mathcal{N}(S_n)}R^l_m Mnl=SmN(Sn)Rml。将这三者加权求和作为LSTM的输入,计算过程如下,可以注意输入部分是 l + 1 l+1 l+1层的 F t l + 1 F^{l+1}_t Ftl+1和对应层的 R t l , M t l R^l_t,M^l_t Rtl,Mtl,输出的是 l + 1 l+1 l+1层的结果 F t + 1 l + 1 F^{l+1}_{t+1} Ft+1l+1。由于是双向LSTM,所以还有反向的过程。
    极简笔记 Multi-Scale Context Intertwining for Semantic Segmentation_第1张图片极简笔记 Multi-Scale Context Intertwining for Semantic Segmentation_第2张图片
    关于LSTM的训练过程,我的理解是其实就是两层一起过一次LSTM,与整个网络一起bp训练。所谓的时间标注 t t t其实就是end-to-end训练过程的当前迭代次数。

  3. 进入interwining阶段, 每层得到的 F T l F_T^l FTl(按我的理解其实就是当前LSTM的输出), 通过反卷积进行融合 Q l = F l + D f ∗ F l + 1 Q^l=F^l+D_f*F^{l+1} Ql=Fl+DfFl+1( D f D_f Df是反卷积核),此处的 Q l Q^l Ql则是后续竞争的载体,即 F T l = Q 0 l , Q t l = Q t − 1 l + D f ∗ Q t − 1 l + 1 F_T^l=Q^l_0,Q^l_t=Q^l_{t-1}+D_f*Q^{l+1}_{t-1} FTl=Q0l,Qtl=Qt1l+DfQt1l+1,若总共有 K K K层特征则需要进行 K − 1 K-1 K1次迭代。计算过程见下图:
    极简笔记 Multi-Scale Context Intertwining for Semantic Segmentation_第3张图片

MSCI算法在PASCAL VOC 2012, VOC Context, NYUDv2, SUN-RGBD多个数据集上进行了测试,均取得了不错的效果。说明该算法并非只针对前景物体的语义分割,在解决全景分割任务时也有很好的适应性。

你可能感兴趣的:(极简笔记)