[论文笔记] Learning High-level Prior with Convolutional Neural Networks for Semantic Segmentation


2015年arXiv预印本文章
作者单位中科大,清华,港科技


  文章的主要贡献在于利用CNN将high-level prior融入了语义分割中。受人类视觉识别系统的启发,文章借鉴了三层生成结构:高层编码,中层分割,低层图像。作者提出利用CVAE(条件变分自编码器)来建立这三层结构之间的联系,从而为语义分割引入全局先验。


文章提出的模型

  具体而言,网络的实现包含3个部分,图像编码部分(image encoder)从图像中提取高维信息,分割编码部分(segmentation encoder)从分割标签中提取高维信息(只在训练阶段用到),混合解码部分(hybrid decoder)根据输入图像与提取的高维信息输出语义分割结果。整体网络结构如下图所示,其中hybrid decoder 与 image encoder 共享前两层特征提取层。


整体网络

从编码器与解码器的角度来看,整个网络也可看成以下两个部分:


编码-解码

  为了提高网络的训练效率,首先将各个模块分别进行预训练,之后再进行联合训练。
  各模块预训练如下图所示:图(a)为对共享层(i)的预训练,采用ImageNet预训练的VGG的FCN层参数;图(b)为对分割编码部分的预训练,这是一个VAE网络,通过重建分割图的过程,一方面训练分割编码部分,另一方面也训练了对潜在变量z进行解码的混合解码部分;图©为对图像编码部分的预训练,利用图(b)已训练的VAE来对图像编码部分进行训练,以约束图像编码部分与分割图编码部分能够产生相似的编码。


预训练

在联合训练阶段,整个网络的目标函数为:
L o s s = D K L ( q ( z s ) p ( z x ) ) + z log p ( s z , x ) . Loss=-D_{KL}(q(z|s)||p(z|x))+\sum_{z}\log{p(s|z,x)}.


推导过程如下:
  令输入图像为x,潜在变量为z,分割图编码器为 q ( z s ) q(z|s) ,图像编码器为 p ( z x ) p(z|x) ,混合解码器为 p ( s z , x ) p(s|z,x) ,整个网络为 p ( s x ) p(s|x) ,训练的最终目标是提高分割精度,即最大化 log p ( s x ) \log{p(s|x)} .
log p ( s x ) = z q ( z s ) log p ( s x ) = z q ( z s ) log p ( s , z x ) p ( z s , x ) = z q ( z s ) log p ( s , z x ) p ( z s ) = z q ( z s ) ( log p ( z s ) p ( z s ) + log p ( s , z x ) p ( z s ) ) = z q ( z s ) ( log p ( s , z x ) log q ( z s ) + log q ( z s ) p ( z s ) ) z q ( z s ) ( log p ( s , z x ) log q ( z s ) ) = z q ( z s ) ( log p ( z x ) + log p ( s z , x ) log q ( z s ) ) = z q ( z s ) ( log q ( z s ) p ( z x ) + log p ( s z , x ) ) = D K L ( q ( z s ) p ( z x ) ) + z log p ( s z , x ) \begin{aligned} \log{p(s|x)} &=\sum_{z}{q(z|s)\log{p(s|x)}}\\ &=\sum_{z}{q(z|s)\log{\dfrac{p(s,z|x)}{p(z|s,x)}}}\\ &=\sum_{z}{q(z|s)\log{\dfrac{p(s,z|x)}{p(z|s)}}}\\ &=\sum_{z}{q(z|s)(\log{\dfrac{p(z|s)}{p(z|s)}}+\log{\dfrac{p(s,z|x)}{p(z|s)}})}\\ &=\sum_{z}{q(z|s)(\log{p(s,z|x)}-\log{q(z|s)}+\log{\dfrac{q(z|s)}{p(z|s)}})}\\ &\geq{\sum_{z}{q(z|s)(\log{p(s,z|x)}-\log{q(z|s)})}}\\ &=\sum_{z}{q(z|s)(\log{p(z|x)}+\log{p(s|z,x)}-\log{q(z|s)})}\\ &=\sum_{z}{q(z|s)(-\log{\dfrac{q(z|s)}{p(z|x)}+\log{p(s|z,x)}})}\\ &=-D_{KL}(q(z|s)||p(z|x))+\sum_{z}\log{p(s|z,x)} \end{aligned}
(注: p ( z s ) p(z|s) is intractable)
  由上述推导,最大化 log p ( s z , x ) \log{p(s|z,x)} 可转化为最大化其下界,即最大化 D K L ( q ( z s ) p ( z x ) ) + z log p ( s z , x ) . -D_{KL}(q(z|s)||p(z|x))+\sum_{z}\log{p(s|z,x)}.


猜你喜欢

转载自blog.csdn.net/qq_26020233/article/details/82874490