论文地址:https://arxiv.org/pdf/1411.4038.pdf
FCN源自2015年收录于cs.CV的论文《Fully Convolutional Networks for Semantic Segmentation》用于语义分割的全卷积网络。
论文的目标是使用全卷积网络对任意尺寸图片进行语义分割,它的底层基于预训练的卷积网络(如AlexNet或VGG),实现了端到端(end-to-end)的模型,网络将深层的语义特征与浅层的精细特征相结合实现图像分割,效果超越之前模型,并且预测时间小于五分之一秒。
卷积网络不仅能实现分类任务,也能生成更复杂的输出,比如计算目标区域的外框,关键点检测,进而是像素级的预测,比如圈出物体所在具体区域。如下图中圈出的猫和狗。
![](https://img.haomeiwen.com/i5357893/9398f130f8e4d208.png)
论本篇使用全卷积的端到端(end-to-end)网络实现像素及的预测,和之前的模型相比,文中模型并未使用前处理、后处理、目标区域、过滤、精调等复杂的处理,而是使用了预训练的CNN模型,进而对在分割任务上调优,方法简单而有效。
图片分割主要面对的问题是:语义和位置问题,语义what一般是全局特征,位置where一般是局部特征。金字塔形的深层网络在不同的层次描述what和where。文中使用“skip”跳跃的结构设计将两者结合起来。
全卷积网络
卷积层的输入输出一般是h×w×d分别为高、宽、维度,第一层的输入是图片的高宽,维度是RGB三个颜色通道,在较高层的网络,位置高宽随着降采样变小,但位置关系保持不变,我们将之称为“感受野”(receptive fields),可看作层与层之间位置的映射关系。
![](https://img.haomeiwen.com/i5357893/c07019209747c216.png)
卷积网络具有平移不变性,变换只与某一空间及其附近的元素有关,例如对于某一层xi,j,它与之后一层yi,j的关系如下:
![](https://img.haomeiwen.com/i5357893/1e0a5ced765e55fa.png)
其中i,j是位置坐标,f是具体操作,比如矩阵乘法或者池化,k(kernel)为核的大小,s(stride)为步长。
多层这样的网络叠加在一起就形成了全卷积网络或叫作非线性过滤器,它可以接收任意大小的输入,并生成包含空间维度(HxWxD)的输出。它的误差函数也是基于空间维度计算的,将最后一层的所有感受野作为一个minibatch:
![](https://img.haomeiwen.com/i5357893/e257fabe13fd055a.png)
用分类器进行高密度预测
![](https://img.haomeiwen.com/i5357893/3cfd7b690f59dd06.png)
分类模型除了卷积网络往往还包含全连接网络,生成了非空间输出,全连接网络也可被视为一个卷积核为全图的卷积网络,从而将该网络也看作全卷积网络。
卷积网络比全连接网络计算更快,尤其是对于图像分割这种任务,需要高密度的输出可用于图片区域的直接比较,显然使用空间输出更为合适。
被看作全卷积网络的分类网络在处理过程中数据被降采样,这样便于计算,由此,输出图片的分辨率比较低而粗糙。降采样的幅度与步长相关。
升采样
为满足像素级的图像分割,需要将分辨率重新调整到与输入图片一致,双线性插值是一种比较简单的方法,它是用公式计算升采样。另外,升采样也可看作是卷积的反向操作,神经网络可通过加入反卷积层在网络内部实现升采样功能,且该层的参数也可以通过训练调优。
网络架构
使用预训练的分类器作为基础网络,并使用分割数据集调优,利用升采样生成高密度的输出,并计算像素级的损失函数,然后结合高层和低层网络数据精调预测结果。
从分类结果到高密度输出
修改基础分类网络,把供分类的后一层去掉,将所有全连接层变为卷积层,用卷积的21个通道预测PASCAL数据集中的21个类别,然后使用反卷积层升采样,模型测试结果如下图所示:
![](https://img.haomeiwen.com/i5357893/cd2c3e0ffc81e42c.png)
结合Where和What
另外,还定义了一个全卷积网络利用不同层次的输出精调分割效果。逻辑如下图所示:
![](https://img.haomeiwen.com/i5357893/63a474fa9b11246c.png)
图片从左侧输入,经过层层池化越变越小,到第五层池化pool之后已经变成原图的32分之一,将其直接做32x的升采样,效果非常粗糙;将它做2x的升采样后与pool4的结果相结合,结合后的图片是原始图片的16分之一,再做16x升采样,此时得到的结果优于直接32x升采样的结果;进而,用该步得到的图片升采样2x,再与pool3相结合,生成大小是原始图片8分之一的图片,再8x升采样到原图大小。下图展示了使用不同升采样方法的效果。
![](https://img.haomeiwen.com/i5357893/78e04ba78904f844.png)
![](https://img.haomeiwen.com/i5357893/0c2119c0aea791ca.png)
作者还进行了一些实验,如对比sample采样和全图训练的效果,发现采样并未使收敛更快,并且由于采样后图片更多,还花费了更多时间,因此最终使用了全图训练;当前数据不需要另做类别均衡处理(神经网络可以通过训练自动调整);网络使用以插值为初值,后自动调参的升采样;用随机方法移动、抖动产生更多数据训练模型,并没太大作用;使用更大数据集训练模型(如PASCAL VOC 2011),效果有所提升。
评测
作者使用语义分割领域常用的四种策略评测模型:
![](https://img.haomeiwen.com/i5357893/288331e022f8f25c.png)
其中𝑛𝑖𝑗是类别为𝑖却被预测为类别𝑗的像素的个数,𝑛𝑐𝑙为类别个数。𝑡𝑖为类别𝑖的像素的总数。
最终使用PASCAL VOC,NYUDv2,SIFT Flow数据集评测模型,将FCN与之前模型对比,效果如下图所示:
![](https://img.haomeiwen.com/i5357893/b7744a0ec474e93e.png)
网友评论