一 . Semantic Segmentation 定义和特点
作为传统的计算机视觉领域的经典问题,Semantic Segmentation 语义分割是分割问题研究的热门问题。具体来说,我们的目标是对于图像中所有像素点分配给其对应的标签(区别于Object Detection 和 Localization),但是语义分割和Instance Segmentation 分割的最主要的区别在于,Semantic Segmentation 只是关心每个像素所属的类别,而不关心其具体内容实例。具体举例来说,上图Semantic Segmentation 对于草地上的四头牛只关心其属于类别为 "Cow" ,而并不区分其中每个牛的不同个体。
二. 基本思想 --- 分类问题
最简单的语义分割思想如上图所示,对于输入图像中的每个像素点,以其为中心提取图像块Patch,对每个Patch送入CNN中进行图像分类得到对应的Label,此处采用的CNN网络可以是Alex-Net,VGG-Net 等。得到的Label对应Patch中心像素,然后再图像的所有像素点进行上述操作,即可得到所有像素点的对应Label,所以分割问题就得到了实现。
然而,上述操作是逐像素的运算,算法expensive,难以实际运用。
三. Multi-Scale方法
单个图像尺度层面是不够的,往往采用多尺度的图像信息来处理。
对输入图像进行图像金字塔操作得到不同分辨率的图像,注意其图像尺寸大小不同 (X1,X2,X3),将不同分辨率的图像送入CNN进行逐像素的分类。其中需要注意的是,如果不同分辨率图像送入的CNN结构相同,则其CNN输出对于图像金字塔的Receptive Field 是不同的。然后对不同大小的分类结果进行up-sampling 处理得到和原图像尺寸相同的Label Image。
注意,除此之外还有off-line 处理,这种处理方法是自下而上的分割方法。其中往往利用很经典的分割方法,考虑像素和像素之间的相似性之类的度量,然后融合这些像素得到这些连续的区域,得到superpixels 和 Tree 的分割结果。
最后采用复杂的融合方法将CNN得到的结果,和off-line处理得到的结果融合在一起得到最后的输出分割结果。因为off-line处理部分采用一些经典的分割方法能够提供Low-level 的图像信息,基于图像灰度纹理信息等确认像素和像素之间的相似程度。同时,卷积神经网络对于不同分辨率图像的处理结果提供语义信息:图像中每个不同像素点属于的类别。因此,superpixels 或者 Segmentation Trees 信息能够给卷积神经网络结果提供更大的感受野信息。
四. Refinement方法 --- RNN的思想
采用合适的CNN模型处理,得到输入图像低分辨率图像块的预测分类结果,然后结合降采样的原始图像,再次对上一步预测分类结果再进行迭代处理。这项举措有助于增大深度网络的感受野范围,同时能够对于原始图像信息的修正处理。注意,如果采用的网络参数相同,而且每次输入的图像相同,这种思想类似于RNN网络。从上面的结果图中可以看出,随着迭代的次数增加,分割的效果在逐渐提升。