【图像语义分割】Fully Convolutional Networks for Semantic Segmentation

本文介绍了FCN如何通过端对端方式解决图像语义分割问题,并详细解析了其核心模型,包括网络结构、卷积操作及反卷积等关键技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FCN这篇文章是第一次用CNN的方式端对端(end-to-end)的解决了图像语义分割问题,在Semantic Segment这个领域中也算划时代的论文了

不同于常规的classification network, Sementic Segment侧重于像素级的分类。本文通过对常规classification network(Alexnet, VGG, GoogLeNet)进行fine-tuning, 通过去掉FC layer,而将其转化为fully convolution network,以得到有个heatmap。

#FCN的主要模型
这里写图片描述

以VGG16网络为例:
这里写图片描述

在整个网络流动的过程如下:

假设输入图像为hxh大小的,
先经过两层conv层:
conv1_1: h1 = (h + 2pad - kernel) / stride + 1
conv1_2: h2 = (h1 + 2
pad - kernel) / stride + 1)
当代入参数时(pad=1, kernel = 3,stride=1),会发现卷积后图像大小不变。
而图像大小缩小的地方只在pool layer,(pool主要的作用是可以增加感受野,可以保持某种不变性,同时不增大参数的数量):
pool1 = h1 = (h - kernel)/stride+1.
其中pooling层的kernel为2,stride为2,代入参数得到:
pool1 = (h-2)/2 + 1 = h/2
pool5 = (h1 - 2)/2 + 1 = h/(2^2)

pool5 = (h4 - 2)/2 + 1 = h/(2^5)

在 contemprary classification network,此时的输出应该接入到FC layer. 在ImageNet中,输入图像大小一般为224x224,则pool5输出的大小应该为7x7。为了防止FC去将7x7的图拉成vector,去破坏其空间信息,本文提出全卷积。顾名思义,即去掉FC,采用核大小为7x7的kernel去扫pool5输出的(7x7 map)来模拟FC,然后在之后的网络中选取1x1的kernel。这样我们就可以通过全卷积过程来模拟了contemprary classification Networks.

接着整个网络的流动来看,pool5的输出现在被接到一个卷积层,kernel_size = 7, 则该层输出大小为:
h6 = (h5 -7)/1 + 1 = (h-192)/(2^5)
这也就看出来了,假如输入大小为224x224的话,输出heatmap大小为1x1,而当输入图像较大的话,输出会得到一个nxn的heatmap。从而FCN可以保证多尺度大小的输入。

这种想法实际上也不是FCN特有的,在Overfeat文章中就有类似的想法:
这里写图片描述

然而,这里会出现一个问题,图像尺寸较大时输出的heatmap并没有什么问题,然而当输入图像的size小于192的时候,则会出错,由h6的公式得知。
作者在这里做了个很粗暴的操作,就是不管三七二十一,对输入图像都进行100的padding,从而h6输出图像的大小会在h6 = (h + 6)/ (2^5),这样在真正意义上解决了任何尺寸的输入问题。然而这么粗暴的操作肯定会带来一定的问题,就是边界分割不清楚。不过就算这样,在当时的Sementic Segment准确度也是最高的。

到这里实际上,我们实际上已经得到了一个heatmap,其感受野是32x32,此时只有deconvolution 32倍上去即可(由于作者发现deconvolution的学习得到的结果与双线性插值算法得到的结果相差无几,然而双线性插值的速度却很快,所以作者直接采用了双线性插值)。

upscore: h7 = (h6-1)*32+64 = h+38
此时作者给出了一个crop layer进行裁剪,以保证输出大小与输入大小一致。实际上到这里语义分割也就结束了。

作者在这基础提出了多次的修整:

这里写图片描述
这样FCN-8s得到的效果会比FCN-32s上好一个level。

效果如下:
这里写图片描述

参考链接:
https://zhuanlan.zhihu.com/p/22976342

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值