FCN目标分割

FCN算法简介

全卷积神经网络FCNet(Long, J, Shelhamer, E, Darrell, T. Fully convolutional networks for semantic segmentation)的输出是与输入图像相对应的一系列热度图(heat map),热度图数目和类别数目一致,每一张热度图的像素值代表图像中对应像素所属这个类别的概率。因此全卷积神经网络是与场景标注相适应的端到端的网络。
FCN目标分割

如图所示,FCNet的网络结构与AlexNet的结构十分相似,但是各层的输入输出却截然不同。FCNet可以输入任意大小的图像,各层的输出也是一张图像,有利于网络对图像的全局理解。而AlexNet 只能输入指定大小的图像,同时全连接层的输出是向量。这是由于FCNN 的核心思想是将传统DCNN 网络的全连接层更换为卷积核大小为1x1 的卷积层,使得网络中所有含参数的神经元层都是卷积层,从而允许输入任意大小的图像。此外,如果输出是二维图像,输入图像的空间信息将会很好地被保留下来。如图FCNet 的结果不仅将猫识别出来,还将猫的形状、大小和位置等信息一并展现出来。

FC结构
1、全卷积网络特征提取
这部分网络的作用是提取图像的本质特征,按照卷积核大小和输出特征图数目不同可以分为8 组,步长均为1,**函数为ReLU。前五组的特征图数目分别为64、128、256、512、512,包含的卷积核大小均为3x3。每次卷积之前,都会对输入图像进行填补操作(pad),用来弥补由于卷积造成的图像尺寸变化,除第一层填补宽度为100 外,其余均为1。每组卷积层之后都有一个下采样层,下采样步长为2,因此第5 个下采样层的输出特征图大小是原始图像的1/32。后三组均只有一个卷积层,特征数目分别为4096、4096、60,包含的卷积核大小分别为7x7、1x1、1x1,并且没有填补操作和下采样层。其中最后一层的作用是输出热度图,因此特征数目等于样本类别数目。

2、反卷积(Deconvolution)升采样(Deconvolution up sample)
由于前一部分输出的热度图尺寸过小,无法反应细节内容,因此这部分网络采用多尺度融合的方法,将热度图逐步升采样到和原图尺寸一致。具体的方法则是先对热度图进行反卷积,然后对前一部分中每一个下采样层后面都连接一个与第8 组相同的输出层以获得对应尺度的输出。获得了反卷积结果和相应尺度的输出后,将二者融合则可获得更大尺寸的热度图,同时细节也更加突出。重复这一操作,即可获得所需尺寸的热度图。如图展示了上述过程,可以看出,在经过反复的反卷积和融合之后,热度图的空间信息得到了很好的扩充。
这个上采样是通过反卷积(deconvolution)实现的。对第5层的输出(32倍放大)反卷积到原图大小,得到的结果还是不够精确,一些细节无法恢复。将第4层的输出和第3层的输出也依次反卷积,分别需要16倍和8倍上采样,结果就精细一些了。下图是这个卷积和反卷积上采样的过程:
FCN目标分割
下图是32倍,16倍和8倍上采样得到的结果的对比,可以看到它们得到的结果越来越精确:FCN目标分割