语义分割之RefineNet个人总结

1. Architecture

语义分割之RefineNet个人总结

RefineNet是ResNet + 金字塔 的结合体。
ResNet残差块可以让网络变的很深。
金字塔则是用于Refine。 high-level feature map语义信息较强,但更粗糙。而low-level feature map则具有更好的fine-grained特征。 于是利用金字塔不断的融合这两种特征。

整个网络从大体上和之前的语义分割一样,都是从最后一层上采样,然后融合,继续上采样,直到原图大小。

2. Multi-resolution Fusion & Chained Residual Pooling

语义分割之RefineNet个人总结
我们的feature map在上采样的过程中,则是经历了一系列复杂的过程。其中就包括残差块,多尺度融合,以及链式池化。

残差卷积这块,input一般不止一个,所以最后需要将两个output进行融合(Eltwise Add)。然后进入链式池化。

链式池化如图,链式池化的目的是提取背景语义信息。需要注意的是 stride=1,最后输出的feature map尺寸不变。最后,为每个池化并卷积输出的feature map分配一个可学习的weight,与input进行加权融合。

这三块称为一个RefineNet block,一个block输出后,作为下一个block的输入。