FCN于反卷积(Deconvolution)、上采样(UpSampling)

最近在研究图像分割方面的内容,图像分割是对图像进行像素进行分类。在这里提到分类,首先想到了 使用深度学习的方法进行分类操作的。
在这里以前的一些传统的方法进行的操作,这里就不细说了。这样使用了深度学习的方法,提到使用深度学习的方法进行图像分割的话。必须要提到 Fully Convolutional Networks for Semantic Segmentation。这篇文章。这也算是深度学习在图像分割上的首次成功的应用了。这篇文章中使用了迁移学习的概念,这个的Full convolutional 不是传统神经网络中的全连接网络的意思。这里表示把原来卷积神经网络的后面的全连接部分换成了反卷积的意思。
这里写图片描述

在上图中相比于传统进行分类的卷积神经网络可以看出把后面的全连接和softmax分类操作的部分 去掉了。换成了后面的分割图了。

这里写图片描述
在传统的CNN结构中,前5层是卷积层,第6层和第7层分别是一个长度为4096的一维向量,第8层是长度为1000的一维向量,分别对应1000个类别的概率。FCN将这3层表示为卷积层,卷积核的大小(通道数,宽,高)分别为(4096,1,1)、(4096,1,1)、(1000,1,1)。所有的层都是卷积层,故称为全卷积网络。
这篇文章主要的思想就是这个。现在这里有两个问题了把卷积神经网络后面的全连接层去掉以后进行反卷积操作,这个具体怎操作,这个反卷积和卷积具体什么关系。
反卷积
其实说这个问题之前先说一下卷积操作。
卷积操作其实可以分成三种操作,
valid 操作,滑动步长为S,图片大小为N1xN1,卷积核大小为N2xN2,卷积后图像大小:(N1-N2)/S+1 x (N1-N2)/S+1如下图
这里写图片描述
full 操作,滑动步长为1,图片大小为N1xN1,卷积核大小为N2xN2,卷积后图像大小:N1+N2-1 x N1+N2-1 如下图
这里写图片描述
same 操作,滑动步长为1,图片大小为N1xN1,卷积核大小为N2xN2,卷积后图像大小:N1xN1 如下图所示
这里写图片描述

这是卷积的三种操作,在这篇论文中反卷积也可以称为上采样操作,因为相比于下采样,图片越来越小的操作,上采样操作使得整个整个图片越来越大的操作,
下面看反卷积具体是怎么操作的
这里写图片描述
其实这种也算一种卷积的操作,只不过进行了补位操作。在论文中FCN使用了上采样。例如经过5次卷积(和pooling)以后,图像的分辨率依次缩小了2,4,8,16,32倍。对于最后一层的输出图像,需要进行32倍的上采样,以得到原图一样的大小。这个上采样是通过反卷积(deconvolution)实现的。对第5层的输出(32倍放大)反卷积到原图大小,得到的结果还是不够精确,一些细节无法恢复。于是Jonathan将第4层的输出和第3层的输出也依次反卷积,分别需要16倍和8倍上采样,结果就精细一些了。下图是这个卷积和反卷积上采样的过程:
这里写图片描述
在这里论文中使用了另外一种上采样的方式,它先进行了上池化操作,然后进行了整个卷积操作。整个操作如下图
这里写图片描述

这篇论文属于开创性的论文在图像分割领域中使用了深度学习,后面出现了各种改进性的。后面加入了随机场和马尔科夫链等一些相关操作使得整个图像分割方面效果更明显。今年出现了Mask-RCNN 等一些优秀的论文。
参考文献
(1)文中动画来源
(2) Fully Convolutional Networks for Semantic Segmentation

你可能感兴趣的:(深度学习)