CGNet: A Light-weight Context Guided Network for Semantic Segmentation
本文的motivation:
移动端而言,当前state-of-the-art方法都参数太多,所以提出CG-Net, a lightweight and efficient network。其中每一个CG-block中,对每个点都学习local,surrounding 和 global context的信息。
方法:
1)提出CG block,有效的利用 local feature, surrounding context and global context。
我们将局部、附近和全局操作分别定义为:floc,fsur和fglo,局部&附近信息的组合定义为fjoi。
如上图所示,CG block包含两个主要步骤:1)计算floc和fsur,分别学习local&surrounding的特征。floc是一个3*3的卷积,来从8个相邻点学习local feature;fsur是一个3*3的 atrous/dilated(空洞) 卷积,来学习周围信息。随后,fjoi是concat+bn+PRelu操作,融合local和surrounding特征。2)fglo提取global特征,这里我们参照SENEt, 并引入channel-wise权重。(就相当于对fjoi特征接se层)
2)在CG block引入残差学习,我们定义两种方式:local residual learning (LRL) 和global residual learning (GRL)
两种方法的差别可以理解为:恒等映射x是否经glo操作
3)由CG block定义CGNet:较少的卷积层和较少的通道数,从而减少参数量
实验
1.cityscapes上各种方法的acc和参数量对比
2.CGNet中不同M&N的选择(也就是不同stage 中CG block的选择)
3.LRL与GRL的对比
个人理解:
1)CGNet进一步拓展了non-local的概念,从local,surrounding和global三个层次获取空间特征间的关联。
2)在CGNet的stage2和stage3都使用GC block,区别于non-local中只有resnet部分stage和部分blcok之间引入non-local机制。
3)但对于global特征抽取方式比较困惑?感觉就是个se-net。具体上一下关键local ,surrording和global三部分链接的具体代码
其中FGlo就是global操作,包含average_pooling和两层的fc,就是完全和se-net相同,学习不同channel的权重。