今日技点 | 乱弹 语义分割(Semantic Segmentation)


Megvii旷视科技(4D) · 2016-06-18 17:12

今日技点 | 乱弹 语义分割(Semantic Segmentation)

视野决定格局  点击关注我们


作者:Megvii Researchers-4D

语义分割(Semantic Segmentation)的目标是给定一张图片,对于图片中的每一个像素做分类。例如图1(a)中给出的原始输入图片,语义分割算法对图片中的每一个像素分类,得到如图1(b)的结果。在图1(b)中,不同颜色代表不同类别:如红色代表行人,蓝色代表汽车,绿色代表树,灰色代表建筑物等。语义分割问题在很多应用场景中都有着十分重要的作用(例如图片理解,自动驾驶等),所以近年来,该问题在学术界和工业界得到了广泛的关注。


(a)


(b)

图1

(图片来源于cityscapes数据集https://www.cityscapes-dataset.com 


从字面上理解"语义分割(Semantic Segmentation)", 首先需要做的是分割(Segmentation)。传统的分割算法主要解决的问题有前景-背景分割(Foreground-Background Segmentation),图片内容的聚类(比如使用mean-shift算法基于像素的颜色)。在这些问题中往往没有语义(Semantic)信息。通过引入每个像素的语意信息,分割问题变得更有实际意义,当然也更复杂了。在语义分割之上,也有研究在做实例级别的分割(Instance-level Segmentation)的分割,例如给场景中的每一个物体(object),比如人或者车,一个标记(label),用于区分不同的事件(instance)。但该问题不在本文的讨论范围。


目前学术界主要有三个benchmark(数据集)用于模型训练和测试。第一个常用的数据集是Pascal VOC系列。这个系列中目前较流行的是VOC2012[1],Pascal Context等类似的数据集也有用到。标准的VOC2012数据集有20个类别,包含person, bird, cat, cow, dog, horse, sheep, aeroplane, bicycle, boat, bus, car, motorbike, train, bottle, chair, dining table, potted plant, sofa, tv/monitor这些比较常见的类别,图片主要来源于互联网。第二个常用的数据集是Microsoft COCO[2]。 COCO一共有80个类别,虽然有很详细的像素级别的标注,但是官方没有专门对语义分割的评测。这个数据集主要用于实例级别的分割(Instance-level Segmentation)以及图片描述Image Caption)。所以COCO数据集往往被当成是额外的训练数据集用于模型的训练。第三个数据集是辅助驾驶(自动驾驶)环境的Cityscapes[3],使用比较常见的19个类别用于评测。


从算法上来讲,2014年以前通常是用传统的CRF框架[4]手提特征(hand-crafted feature )+图模型( graphical model)。但从2015年提出的FCN [5]开始,算法的特征表示逐渐开始使用神经网络。FCN本身基于VGG16[6]的网络模型,但是把网络中的fc层用convolution层来替换。这样可以使网络接收任意大小的图片,并且感受域(receptive field)比使用裁剪的fc层更大,同时效率也更高。因为语义分割做的是像素级别(pixel-level)的处理,所以需要输出一个跟输入图片同样大小的结果。但是VGG16因为计算量跟感受域的原因,做了5次池化(pooling)的操作,导致得到的结果图做了32倍的下采样(down-sampling)。为了得到高分辨率的输出,FCN这篇文章提出了一种上采样(up-sampling)的卷积。另一个方面,文中提出"skip layer"的概念,主要用于结合不同层的信息用于做像素级的分类(从网络上面来讲,底层的网络学习到的是比较低级的信息,比如边缘和纹理,高层网络得到的是高级的语意性信息)。


图2是FCN文中的结果图:


图2 [5]


从图2中可以看出,FCN能够一定程度上预测出对象的大致轮廓,但是在边缘的准确性比较差。这主要是因为网络还是存在一定的下采样,并且网络是全卷积,所以对位置不是很敏感。于是就有了Deeplab这篇文章[7]。Deeplab的一个想法是使用传统方法中的图模型(CRF)来做后处理(post-processing),优化当前神经网络得出的结果。除了这个突破点之外,他修改了FCN中的网络结构,提出了一种带"hole"的卷积。在今年ICLR2016的一篇文章[8]给这种滤波器提出了一个更文雅的名字"Dilated Filter"。Dilated filter的一个好处是在不增加计算量的情况下增加感受域。


主要想法可以参考下图3:


图3 [7]


具体来讲,deeplab只使用VGG16的前面三层池化来做下采样,在第4层和第5层(pool4和pool5)都是一个没有步长的池化。然后通过使用dilated filter来达到在不做进一步下采样的情况下获得比较大的感受域(使用图像的context信息来判断当前像素的类别)。另一方面,把fc6跟fc7中的4096个channel map减小成1024,用于减少模型大小以及加速。


两篇文章之后,大致确立了语义分割的框架:


l   前端(frontend):FCN或deeplab的NN模型

l   基本网络(basenet):可以是VGG16或residual net

l   后端(backend) :如CRF的图模型,使用unary term来描述当前点的信息,以及pair-wise term面点与点之间的信息)。


其中前端本质上就是传统方法中特征提取,后端相当于使用CRF来做像素级的预测。但是deeplab的一个问题是把这两部割裂开来,对于神经网络爱好者来讲,一个主要的思路是端到端的训练。于是就有了下面的两篇文章。都是在ICCV2015发表的。


首先是DPN[9]的主要想法是通过神经网络来近似MRF中的unary term 和 pair-wise term。文中给出了下图4中的网络结构:


图4 [9]


一个比较"恐怖"的地方是第12层的50*50的局部卷积。另一篇类似端到端训练的文章是CRFasRNN [10].CRFasRNN本质上就是把CRF优化过程拆解成一个迭代的过程,接到一个神经网络的后面,当成是一个可用学习的模组,然后来解这个问题,大致思路见图5:


图5 [10]


后端除了使用MRF(CRF)之外,有使用高阶的信息[11]来优化结果也有使用bilateral solver [12]来优化速度。


总之,最近一年多有很多很多文章在不停的改进优化语义分割的结果,至少从结果上面来讲。以pascal voc2012为例,结果从FCN开始有了十多个点的提升。


最近FCN在ArXiv上新发了一篇他们Journal版本的文章[13],提出了复杂模型(heavy model)。本质上就是将原来的FCN多训练了3倍多的时间,进而使得比他们原来CVPR15的结果提升了许多。无独有偶,DeepLab最近也在ArXiv上更新了他们Journal版本的文章[14],通过使用ResNet代替VGG16作为基础模型以及小幅度地改进学习方式,重新将VOC2012 Test数据集的state-of-the-art囊获。


这两篇新Journal文章的出现使得很多(其实是非常多)原来基于FCN或者DeepLab做出小改动后号称自己是state-of-the-art的文章陷入了尴尬的境地。甚至于某些方法的结果会让人不禁想要怀疑这些所谓‘提升’到底是来自于他们所提出的方法,还是来自于作为他们基本模型(base model)的FCN被更加完全地训练了...


小结

在发出文章之前,可能需要比较全面的研究实验自己提出的算法,把模型的能力提升到极致。


另一方面,基本模型(base model)(residual net vs VGG)也是提升性能非常的重要的技术点。


References

[1]   http://host.robots.ox.ac.uk:8080/leaderboard/displaylb.php?challengeid=11&compid=6

[2]   http://mscoco.org/

[3]   https://www.cityscapes-dataset.com

[4]   CRF

[5]   Long, Jonathan, Evan Shelhamer, and Trevor Darrell. "Fully Convolutional Models for Semantic Segmentation." Computer Vision and Pattern Recognition. 2015.[6]   VGG16

[7]   Chen, Liang-Chieh, et al. "Semantic image segmentation with deep convolutional nets and fully connected crfs." arXiv preprint arXiv:1412.7062(2014). 

Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs, Liang-Chieh Chen and George Papandreou and Iasonas Kokkinos and Kevin Murphy and Alan L Yuille, ICLR 2015.

[8]   Yu, Fisher, and Vladlen Koltun. "Multi-Scale Context Aggregation by Dilated Convolutions." arXiv preprint arXiv:1511.07122 (2015).

[9]   Liu, Ziwei, et al. "Semantic image segmentation via deep parsing network."Proceedings of the IEEE International Conference on Computer Vision. 2015.

[10]   Zheng, Shuai, et al. "Conditional random fields as recurrent neural networks."Proceedings of the IEEE International Conference on Computer Vision. 2015.

[11]   Zheng, Anurag Arnab Sadeep Jayasumana Shuai, and Philip Torr. "Higher Order Conditional Random Fields in Deep Neural Networks."

[12]   Barron, Jonathan T., and Ben Poole. "The Fast Bilateral Solver." arXiv preprint arXiv:1511.03296 (2015).

[13    https://arxiv.org/pdf/1605.06211v1.pdf

[14]   http://arxiv.org/pdf/1606.00915.pdf

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值