图像语义分割

论文略读--语义分割相关(一)

2019-11-27  本文已影响0人  叶天羽

一、Global Aggregation then Local Distribution in Fully Convolutional Networks

核心思想:利用全局信息来细化分割结果,具体来说是先取得全局信息,再利用全局信息生成每个像素的局部信息,利用这个局部信息给每个像素点加权来增强分割结果。

实现:

全局信息聚合:

局部信息生成:首先对全局信息进行上采样,之后经过sigmoid层生产相应的权重,再与原特征图相乘即可,之后使用了一种常见的操作手段,将加权之后的特征图与原特征图进行通道连接,送入最终的网络处理。

二、Object-Contextual Representations for Semantic Segmentation

核心思想:利用每一类的全局语义依赖给每个像素进行加权,生成每个像素的语义表示,然后根据这个语义表示进行类别的判断。

实现:

利用卷积的不同阶段得到XL,由于一共有K个类别,利用1*1卷积与空间softmax生成K个区域表示,之后利用另一个阶段得到的特征图X对区域表示进行加权,得到信息更丰富的K个区域表示,之后同时对f_kX做变换,并利用f_k生成每个像素的语义表示,在这个过程中,隐含着对通道进行加权,最终结合X做最后的判定。

三、SparseMask: Differentiable Connectivity Learning for Dense Image Prediction

核心思想:将一个性能较好的分类网络快速扩展为一个分割网络

实现:

由于语义分割网络需要结合多层语义信息,因此网络设计遵从编码解码结构,其中解码结构为与编码结构相同层次数目的解码块,相互之间的连接采用密集连接方式,为了降低训练时间与内存占用,本文设计了一种新型损失函数,用来消除没有必要的连接与解码层。主要的创新点如下:

1)解码器操作如下:

{D_l} = \sum\limits_{t \in T} {w_l^t{f_ \uparrow }(conv_l^t(t))}

T = \{ {E_i}|i \ge l\}  \cup \{ {D_i}|i > l\}  \cup \{ G\}

t代表编码结构的特征,以往对于解码器融合编码器的操作,一般是先上采样,之后进行通道进行连接再进行卷积,但这样运算量太大,作者论证了特征图连接之后卷积等效于对每个特征图卷积之后相加,上采样与点卷积顺序可改变,因此作者使用了如上结构。为了防止卷积的幅值影响权重,又做了归一化操作,如下:

{D_l} = \sum\limits_{t \in T} {w_l^t{f_ \uparrow }(bn_l^t(conv_l^t(t)))}

2)损失函数设计如下:

{L_s}({w_l},\alpha ) = \mu ({L_m}({w_l},{w_l})) + {L_m}(\alpha ,\mu ({w_l}))

{L_m}(p,q) =  - p*\log (q) - (1 - p)*\log (1 - q)

L = {L_{task}} + \lambda \sum\limits_{l = 1}^L {{L_s}({w_l},\alpha )}

其中,{L_m}({w_l},{w_l})使得{w_l}尽量为0或者1,{L_m}(\alpha ,\mu ({w_l}))使得{w_l}尽量稀疏。

3)最终对网络修剪按如下步骤:1.丢弃所有权重小于某个阈值的连接;2.丢弃所有没有输入的解码块;3.丢弃所有产生特征没有被其他解码块利用的解码块。

四、Structured Knowledge Distillation for Semantic Segmentation

核心思想:使用知识蒸馏的理论,训练一个高性能的语义分割小模型。

实现:

网络结构

网络运用知识蒸馏的想法,从一个复杂的大的语义模型中训练出一个紧凑的高性能的网络。主要体现在以下三个方面:1)像素蒸馏,比较teacher模型与student模型输出的差距,使用的损失函数是    KL散度;2)成对蒸馏,比较teacher模型与student模型中间特征图的差距,损失函数使用的是均方误差;3)整体蒸馏,将student模型作为生成器,另外设置一个全卷积网络作为判别器来不断的对抗学习,损失函数是推土机距离。

上一篇下一篇

猜你喜欢

热点阅读