神经网络在处理分割、增强等任务时,可以将网络分成两个部分,encoder部分利用卷积等操作对图像的语义特征进行编码,decoder部分解码encoder所编码的信息,从而完成相应的任务。
在分割里网络可以分成显式编码和隐式编码,其中隐式编码是指没有加入特殊的网络结构或者场景先验信息,例如FCN,ENet和Unet都是这种网络结构;而显式编码则是加入了特殊的网络结构或者场景先验信息,例如PSPNet等,这里重点了解一下显式编码,包括以下(效果均略去):
1.结合通道权重的注意力机制:Squeeze-and-Excitation Network
网络结构如下,其中$F{sq}$表示将特征做全局平均池化,$F{ex}$是对上一步得到的全局平均赤化做两次fc。得到的一维向量作为权重和前面的feature map相乘,这里为feature map中的每个通道学习一个权重,使信息比较丰富的通道更加活跃,同时抑制作用不大的通道。
2.多尺度信息:PYRAMID SCENE PARSING NETWORK
这个就是利用金字塔池化获得不同尺度的特征,通过融合多尺度的上下文信息,提高获取全局信息的能力。所谓金字塔池化,就是使用不同大小的pooling核和步长,得到不同尺寸的上下文信息。网络结构如下图所示:
3.综合多尺度和注意力机制:PYRAMID ATTENTION NETWORK FOR SEMANTIC SEGMENTATION
这里综合金字塔结构和注意力机制,获得更多全局的上下文信息,包括提出FPA模块,结合金字塔结构和全局平均池化学习更好的特征表示;以及提出GAU模块,将带权重的低级表观特征和高级语义特征结合进行上采样。网络整体结构图如下所示:
FPA(FEATURE PYRAMID ATTENTION)模块如下图所示,使用全局池化可以获得全局的上下文信息,而金字塔结构则是指下面的部分,使用不同的卷积核以不同的感受野提取多尺度特征,且感受野一直在增大,最后组合相邻尺度的上下文信息与1*1卷积的结果暗像素相乘,引入像素尺度的注意力机制。
GAU(GLOBAL ATTENTION UPSAMPLE)模块如下所示,全局注意力通过对高层特征做全局池化,由于高层特征更具类别信息,可以指导低层特征筛选不同类别信息。最后用带权重的低层特征和高层特征相加作为输出。
4.类别先验信息(CONTEXT ENCODING FOR SEMANTIC SEGMENTATION)
这里为场景提供类别先验知识,突出强调类间具有依赖性的feature map。其中feature注意力机制和前面一样,也是来一个全连接然后进行相乘,不同的是这缕还有一个SE-loss,通过下边fc层预测类别,加入类别损失辅助训练。大小物体同等对待,某种程度上解决了类间样本分布不均的问题,同时提高小物体的分割精度。
5.引入形状信息(STRAIGHT TO SHAPES: REAL-TIME DETECTION OF ENCODED SHAPES)
形状编码包括Binary shape和Radial shape两类,其中前者是先将图像拉成一维向量再上采样,后者是利用中心点距离的效应,连接边缘得到mask。这里通过一个学习到的自编码器进行编码和解码,网络整体结构如下:
其中自编码器如下,先将图像压缩成一个低维的向量表示($\tau$维),编码可被解码,恢复形状。
总结:相比于隐式编码,显式编码会加入特殊的网络结构,如金字塔结构、通道权重、注意力机制等,或者加入显式的先验信息,如类别信息、形状信息以及方向信息等。显式编码已成为了最近的主流发展趋势,我们应该借鉴显示编码的思想,尝试加入更加有效的先验信息,提高网络的表现力。