前言
最近从目标检测开始转做语义分割的工作了,为了熟悉相关工作,特此做了一个语义分割模型的综述。模型综述的总体结构以时间为纲,以语义分割的发展为脉络。选取在语义分割过程中比较有代表性的模型进行综述。在内容上参考了mmsegmentation实现的一些网络
FCN语义分割模型
背景
FCN 全称为Fully Convolution Network,全卷积神经网络,于2014年首次被提出(fcn论文链接)。FCN的引入首次实现了利用卷积神经网络对影像进行像素级的分割。要想了解fcn在语义分割里面的开创性贡献,需要先了解一下在FCN之前语义分割是怎么做的。
在FCN之前的语义分割方法为
对于每一个像素,采用滑动窗口的方法。选取其周围的一个一定大小的像素块,卷积、池化、全连接,最后分类。其过程示意图如下图所示:
注意图中是红色框是像素块的大小,不是卷积核的大小。
FCN的做法
以上的做法存在着一个问题就是,计算量巨大。对于一个100*100的影像,需要100*100个滑窗。而且存在较大的重复计算。
因此FCN提出了替代滑动窗口和全连接的的方案。下面的例子说明了全卷积网络的改进。
1.去掉滑窗:
这样做的好处是多次前向传播变成一次前向传播。
2.用卷积代替全连接
全连接层转化为卷积层:在两种变换中,将全连接层转化为卷积层在实际运用中更加有用。假设一个卷积神经网络的输入是
针对第一个连接区域是[7x7x512]的全连接层,令其滤波器尺寸为F=7,这样输出数据体就为[1x1x4096]了。(即利用一个feature map 大小的卷积核来对图片进行卷积)
针对第二个全连接层,令其滤波器尺寸为F=1,这样输出数据体为[1x1x4096]。
对最后一个全连接层也做类似的,令其F=1,最终输出为[1x1x1000]
几个关键点
实验结果对比
以下是通过实验对比的,不同的采样方法的结果。