论文学习22“Fully Convolutional Netwo
《Fully Convolutional Networks for Semantic Segmentation》是CVPR2015年的best paper,作者来自于加州伯克利,主要关注点是图像分割。在准备上一次组会分享的paper的时候,看到u-net系统就是用的FCN全卷积网络,所以找到了这篇paper,来看看FCN 的厉害之处。
背景:
CNN近年来发展迅速,在图像领域更是主流方法,驱动着物体检测、关键点检测等的发展,但CNN对于图像语义分割却在时间和精度方面都表现不好。本文提出了全卷积网络(FCN)的概念,针对语义分割训练一个端到端,点对点的网络,达到了state-of-the-art。这是第一次训练端到端的FCN,用于像素级的预测;也是第一次用监督预训练的方法训练FCN。
FCN的提升地方主要是三个技术:卷积化、上采样和跳跃结构。
卷积化就是FCN把CNN最后的全连接换成了卷积网络。将分类网络变化成热图的输出,并且能够实现任意大小图像输入得到指定输出结果。原始的CNN网络最后的全连接输出的是一个一维的结果,这对于普通的分类需求可能没有影响,但是对于图像语义分割,我们需要输出一个多维结果,至少是二维的,所以我们将全连接层换成卷积层,使得最后输出高维结果,这就是卷积化。
针对于图像在经过下采样后怎样回到原始图像大小,作者尝试了三种方法:Shift-and-stitch即稀疏滤波,反卷积和patchwise训练。经过比较,我们选择了反卷积。上采样就是反卷积层,如上图的heatmap即是上采样的结果,在典型的CNN结构中,如AlexNet,VGGNET均是使用池化层来缩小输出图片的大小,而对于我们的图像语义分割需要得到一个和原图像一样大小的分割图,所以对池化后的图像进行反卷积。本文所选择的反卷积方法是双线性插入。
我们将经过卷积化和上采样的模型分别在AlexNet,VGG16或者GoogleNet进行实验,实验结果如下图所示。
结果表明:对比3种性能较好的CNN:AlexNet, VGG16, GoogLeNet进行实验,结果显示VGG16最优。但直接反卷积得到的分割结果并不理想,因为池化层数多了影响图像分辨度,所以FCN引入了跳跃结构。
跳跃结构如下图所示,只对最后一层上采样得到的结果并不尽如人意,所以我们将不同池化层进行上采样,结合起来提升最后的结果,下图有结果对比。
就拿FCN-16S来解释,如下图所示,一个原始图像大小经过5层pool图像变成原始图像大小的32分之一,首先conv7先经过一个2倍步长的上采样成为原始图像的16分之一大小,就和pool4层的输出大小一样,我们将pool4的输出和2倍步长上采样的图像fusion,然后进行一个16倍步长的上采样恢复到原图大小。
用PASCAL VOC 2011数据集,在VGG16网络,分别进行FCN-32s-fixed,FCN-32s,FCN-16s,FCN-8s的试验。FCN-32s-fixed是指不属于端对端的学习方式,即只对最后一层进行finetune。结果如下图所示:
结果表明:对比FCN-32s-fixed, FCN-32s, FCN-16s, FCN-8s,证明最好的dense prediction组合是8s,在8s的时候我们的结果已经达到一个峰值;作者分别用FCN-8s在PASCAL VOC 2011和2012的上进行测试,并将其与先前的最新的SDS和著名的R-CNN进行比较。结果如下图所示:
试验表明作者的FCN-8s在性能上相比较当前最优的SDS提升了20%,而训练时间却减少了114倍,足以看出作者方法的精妙之处。
作者在NYUDv2上进行试验,NYUDv2是使用Microsoft Kinect收集的RGB-D数据集。 它具有1449个RGB-D图像,其中像素标签已经被合并成40个类别的语义分割任务,其中795幅图像作为训练集,654幅图像作为测试集。下图给出了模型在几个不同变化中的改变。首先训练FCN-32s在RGB中的结果,然后RGB结合深度信息得到RGBD进行训练,接着用三维深度编码HHA进行训练,结果不尽如人意,但我们将RGB和HHA进行“后期融合”(就是把最后一层结果累加,得到预测值)效果提升明显,然后将FCN-32s改成FCN-16s效果更好。
结果表明:FCN-32s和FCN-16s在RGB-D和HHA的图像数据集上,优于state-of-the-art。
作者接着又在SIFT Flow数据集下实验,和目前较为先进的模型的比较:
FCN有两大明显的优点:一是可以接受任意大小的输入图像,而不用要求所有的训练图像和测试图像具有同样的尺寸。二是更加高效,因为避免了由于使用像素块而带来的重复存储和计算卷积的问题。
同时FCN的缺点也比较明显:一是得到的结果还是不够精细。进行8倍上采样虽然比32倍的效果好了很多,但是上采样的结果还是比较模糊和平滑,对图像中的细节不敏感。二是对各个像素进行分类,没有充分考虑像素与像素之间的关系,忽略了在通常的基于像素分类的分割方法中使用的空间规整(spatial regularization)步骤,缺乏空间一致性。