目录
一.语义分割
二.有哪些不同的方法去解决语义分割问题?
三.论文总结
FCN
SegNet
Dilated Convolutions
DeepLab(v1&v2)
RefineNet
PSPNet
Large kernel Matters
DeepLab v3
BiseNet
首先解释语义分割问题,然后大概了解一下一些常规方法,最后介绍几篇有代表性的文章。
一.语义分割
语义分割是从像素级别理解图像,也就是说我们想要给图像中的每个像素分配一个类别标签,例如下面这张图
除了识别出摩托车和骑手之外,我们还需要画出每个物体的轮廓。因此,跟目标识别不同的是,我们需要密集的像素级别的预测(这里的密集指的就是对每个像素预测,稀疏对应的是只需要预测有什么目标)
VOC2012 和MSCOCO 是语义分割方面比较常用的数据集
二.有哪些不同的方法去解决语义分割问题?
在深度学习应用于计算机视觉之前,人们常用的方法有 TextonForest 和 Random Forest based classifiers . 像图像分类一样,CNN在图像分割方面也取得了巨大的成功
其中一个比较流行的原始 深度学习方法是 patch classfication ,该方法预测每个像素的标签通过该像素周围的图像块来预测。使用图像块的原因是由于分类网络通常有全连接层因此需要固定尺寸的图像。
. 2014年提出了全卷积神经网络(Fully Convolutional Networks (FCN) ),流行的CNN架构不用任何的全连接层用来实现密集预测,它允许分割后的map图生成任意尺寸的分割图像,并且速度比patch classfication快。 几乎后续所有的语义分割网络采用了这种模式来构建网络。
抛开全连接层,用CNN做分割最主要的问题存在于pooling层,polling层可以增加感受野的尺寸,聚合上下文的信息,但是会丢掉原始图像的空间位置信息(就是像素具体所处的位置)。然而语义分割需要精准的标签和像素的映射信息(也就是需要位置信息),为了解决这个问题,文献中提到了两种结构去处理它。
(1)第一种是encoder-deconder架构,encoder逐渐地用polling降低空间维度,decoder逐渐恢复目标和空间位置信息的细节。通常有从编码器到解码器的快捷连接,以帮助解码器更好地恢复对象细节。其中的一个代表架构是U-Shape,其架构如下图所示:
(2)第二种架构是用空洞卷积( dilated/atrous convolutions)并取消池化层
关于空洞卷积的具体说明,详见下文。
用Conditional Random Field (CRF) postprocessing (CRF后处理)通常用来提升分割效果。CRF是一个图模型,它基于潜在的图像强度来进行光滑分割。他们的工作基于这样的观察:相似强度的像素往往被标记为相同的类,通常CRF可以提高1%~2%的性能。
三.论文总结
后面的部分会总结几篇有代表性的文章,所有的文章对应模型的评价信息参见http://host.robots.ox.ac.uk:8080/leaderboard/displaylb.php