多篇用DL做Semantic Segmentation的文章总结

多篇用DL做Semantic Segmentation的文章总结

最近总结了一下语义分割相关的文章。

这是我在一篇文章(deconvolution network)中看到的近期一些方法的评估表:

 

下面谈到的一些文章整理都是关于以上的方法。

1、 FCN8s 文章出处:CVPR2015-FullyConvolutional Networks for Semantic Segmentation

CNN对分类问题的效果非常好,但不适合直接做分割;

CNN模型的输入维度固定则输出维度也被固定,不适合输入图片尺度变化的情况;

FCN是对CNN改进适合直接用于分割的模型,直接拿segmentation 的 ground truth作为监督信息,训练一个端到端的网络,让网络做pixelwise的prediction,直接预测label map。

网络特点:所有Layer都是Conv Layer,无FC层,适合end-to-end和dense/pixelwise prediction,输出结果就是Segment Map;

输入:整幅图像;

输出:resample到corresponding空间维度。

2、TTI-zoomout-16 文章出处:CVPR2015-Feedforwardsemantic segmentation with zoom-out features

               

这篇文章的方法是superpixel-level的,主要是基于CNN实现的。

这篇文章的亮点应该是:1,它把CNN每一层的特征都拿出来使用,兼顾了local信息和global信息2,直接使用image classification的现有成果,不用自己训练网络,方便高效,易于推广。3,实验结果好,比FCN的方法结果好。

从作者贴出的example来看,分割的边缘还是有些粗糙,原因是:本文方法是直接基于superpixel做特征提取和分类的,提取的superpixel是不够准确的,一个superpixel中可能包含了多个class。要优化这个边缘,应该还是要挖掘出pixel level的细节信息。

 

3、DeepLab-CRF 文章出处:ICLR2015-SemanticImage Segmentation with Deep Convolutional Nets and Fully Connected CRFs

主要在FCN改进的地方:

通过控制InputStride实现Fine目标(Dense Extractor)(hole algorithm),而不用像FCN结合Lower Layer和上采样的方式来Fine,相对FCN减小了运算量。Author最后还是结合了Lower Layer信息,进一步提升了效果。

 

以前对于分割物体的精确定位主要是两个方面:

一、  利用多层信息(如FCN中用前几个pooling层做预测);

二、  利用super-pixel(zoomoutrepresentation)。

本文提出了用CRF进行优化,主要是能够更好的修复分割的边界结构。

4、CRFasRNN 文章出处:ICCV2015-ConditionalRandom Fields as Recurrent Neural Networks

主要贡献点:将CRF融入到deep learning的网络结构中,作为其中的一层(递归神经网络)

 

 

进行端对端的学习时,CNN的训练也得到CRF的影响,将CNN的参数学习和CRF的参数学习统一到一个网络。

              

5、 Deconvolution Network  文章出处:Learning Deconvolution Network for SemanticSegmentation

 

FCN的缺点:由于感受野的固定,如果物体大了或者小了,分割效果就不好。而且通过纯粹的双线性插值算法得到最终的得分概率图,不太准确,虽然用了CRF进行了改善,但没有从根本上解决。

本文的创新点:

一、  学习了一个多层反卷积网络代替简单的双线性插值;

二、  将objectproposal(edge box)送入训练后的网络,然后整幅图像是这些proposal的分割结果的组合,这样就可以解决物体太大或者太小所带来的分割问题。

6、SDS 文章出处:Simultaneous Detection and Segmentation

            

 

这篇文章的效果不算太好,主要创新是把detection和分割结合一起。对于检测来说,只能提供一个粗略的位置,而对于语义分割的网络来说需要对每个点进行Label。

缺点:

一、  SDS使用了掩码后的图像,有很多边缘信息,而在CNN训练中并没有表现出来;

二、  SDS对每幅图产生2000多个候选框,每个候选框都要产生CNN特征,这是非常耗时的,Convolutional Feature Masking for Joint Object and StuffSegmentation这篇文章对这个问题做了很好的解决。

7、DeepLab-public 文章出处:Weakly-and Semi-Supervised Learning of a Deep Convolutional Network for Semantic ImageSegmentation

主要创新点在于:训练网络时用的是一些简单的训练数据如bounding boxes或者图像级标签,提出的是半监督和弱监督学习,不要太多的annotation effort而可以得到较好的结果,可以接近全监督学习的网络结果。这篇文章的网络框架用的是deepLab-CRF。


8、boxup 文章出处:BoxSup: ExploitingBounding Boxes to  SuperviseConvolutional Networks

创新点:很多语义分割的CNN训练都是靠大量的annotated segmentation masks,这种方式需要大量的工作来标记。本文通过boundingbox来进行相应的监督学习,主要是一个迭代过程,首先在区域proposal的配合下用bounding box得到分割掩膜,得到掩膜反过来更新CNN模型,再用CNN模型估计掩膜,直到迭代终止。

 

 

这是论文里面的优化的核心部分,前者是考虑与bounding box的平均交集最多的segmentation mask作为监督信息,后者考虑的就是FCN(之前有文章介绍过)。

9、DecoupledNet 文章出处:DecoupledDeep Neural Network for Semi-supervised Semantic Segmentation

之前的很多方法都需要大量的ground truth,这样导致的结果是分割的图像类别有限制(20类都需要大量的ground truth),之前有提出半监督的训练,通过不断迭代的方式进行,但那种方式可能导致的问题的没法迭代收敛,相应的实现接口也比较复杂。这个方法对于类别数没有限制,具有可扩展性。

decoupling classification and segmentationreduces search space for segmentation significantly, which makes it feasible totrain the segmentation network with a handful number of segmentationannotations

输入一张图片,分类网络得到图片的标签,分割网络得到相应的每一类的前景背景分割图(概率分布?),中间加入bridge层提取class-specific information。

训练过程:先用大量的image-level 标签训练前面的分类网络,然后用少量的pixel-level标签来进行后续网络的训练,由于pixel-level标签较少,用数据增加得到人工的训练样本。

分类网络给的class-specific activation maps可以减少分割网络中优化时的搜索空间,因为只有两类(前景或者背景),这样减少了很多网络参数。

创新点和优点:

一、  提出了一个将分类和分割网络结合的半监督网络,对于训练来说比较简单;

二、  引入了bridgelayer连接两个网络,主要是提取每一类的activation map然后进行前景背景的分割,这些map提供了很好的先验信息,使得整个参数学习过程也比较简单容易,只需要少量的anotation。

posted @ 2016-04-11 10:26  菜鸡一枚  阅读(7180)  评论(0编辑  收藏  举报