语义分割模型之FCN

前言

最近从目标检测开始转做语义分割的工作了,为了熟悉相关工作,特此做了一个语义分割模型的综述。模型综述的总体结构以时间为纲,以语义分割的发展为脉络。选取在语义分割过程中比较有代表性的模型进行综述。在内容上参考了mmsegmentation实现的一些网络

语义分割模型之FCN_第1张图片

FCN语义分割模型

背景

FCN 全称为Fully Convolution Network,全卷积神经网络,于2014年首次被提出(fcn论文链接)。FCN的引入首次实现了利用卷积神经网络对影像进行像素级的分割。要想了解fcn在语义分割里面的开创性贡献,需要先了解一下在FCN之前语义分割是怎么做的。

在FCN之前的语义分割方法为

对于每一个像素,采用滑动窗口的方法。选取其周围的一个一定大小的像素块,卷积、池化、全连接,最后分类。其过程示意图如下图所示:

注意图中是红色框是像素块的大小,不是卷积核的大小。

语义分割模型之FCN_第2张图片

FCN的做法

以上的做法存在着一个问题就是,计算量巨大。对于一个100*100的影像,需要100*100个滑窗。而且存在较大的重复计算。

语义分割模型之FCN_第3张图片

因此FCN提出了替代滑动窗口和全连接的的方案。下面的例子说明了全卷积网络的改进。

1.去掉滑窗:

这样做的好处是多次前向传播变成一次前向传播。

2.用卷积代替全连接

全连接层转化为卷积层:在两种变换中,将全连接层转化为卷积层在实际运用中更加有用。假设一个卷积神经网络的输入是 
针对第一个连接区域是[7x7x512]的全连接层,令其滤波器尺寸为F=7,这样输出数据体就为[1x1x4096]了。(即利用一个feature map 大小的卷积核来对图片进行卷积)

语义分割模型之FCN_第4张图片
针对第二个全连接层,令其滤波器尺寸为F=1,这样输出数据体为[1x1x4096]。
对最后一个全连接层也做类似的,令其F=1,最终输出为[1x1x1000]

 

 

几个关键点

 

实验结果对比

以下是通过实验对比的,不同的采样方法的结果。

语义分割模型之FCN_第5张图片

语义分割模型之FCN_第6张图片语义分割模型之FCN_第7张图片

你可能感兴趣的:(pytorch)