图像分割之FCN

论文:Fully Convolutional Networks forSemantic Segmentation

基于caffe的代码:https://github.com/shelhamer/fcn.berkeleyvision.org


反卷积:

        在学习FCN之前,需要了解反卷积相关的知识。论文Adaptive deconvolutional networks for mid and high level feature learning中提出了反卷积网络,用于无监督学习。论文visualizing and Understanding Convolutional Networks,利用反卷积过程可视化一个已经训练好的卷积网络模型,可以参考博客中的讲解。

        假定利用卷积核卷积图像A后得到图像B,反卷积就是利用刚刚用到的卷积核的转置对图像B进行卷积得到图像A的近似。本质上,反卷积过程就是先对图像进行padding,然后再进行卷积,可以参考这里


FCN:
        传统的基于CNN的分割方法:为了对一个像素分类,使用该像素周围的一个图像块作为CNN的输入,用于训练与预测,这种方法主要有几个缺点:1)存储开销大,例如,对每个像素使用15*15的图像块,然后不断滑动窗口,将图像块输入到CNN中进行类别判断,因此,需要的存储空间随滑动窗口的次数和大小急剧上升;2)效率低下,相邻像素块基本上是重复的,针对每个像素块逐个计算卷积,这种计算有很大程度上的重复;3)像素块的大小限制了感受区域的大小,通常像素块的大小比整幅图像的大小小很多,只能提取一些局部特征,从而导致分类性能受到限制。
        全卷积网络(FCN)将从抽象的特征中恢复出每个像素所属的类别,进而实现了将从图像级别的分类延伸到像素级别的分类,如图所示:

         为了使得网络能够输入任意大小的图像,该论文采用了全卷积神经网络。全卷积神经网络最初来源于文献 OverFeat: Inegrated Recognition, Localization and Detection using Convolutional Network。具体改变是:
        1)将第一个全连接层变为kernel_size = 7的卷积层
        2)将第二个全连接层、第三个全连接层变为kernel_size = 1的卷积层
      举例说明:将224×224的窗口,以步长32在384×384的图片上滑动,把每个经停的位置都带入卷积网络,最后得到6×6个位置的类别得分。   如果224×224的输入图片经过卷积层和下采样层之后得到了[7x7x512]的数组,那么,384×384的大图片直接经过同样的卷积层和下采样层之后会得到[12x12x512]的数组。然后再经过上面由3个全连接层转化得到的3个卷积层,最终得到[6x6x1000]的输出。这个结果正是窗口在原图经停的6×6个位置 的得分!

      为了能够在像素级进行分类,需要将得到图像进行上采样。FCN输入的图像是H*W大小,第一层pooling后变为原图像的1/2,第二层pooling后变为原图像的1/4,第三层pooling后变为原图像的1/8,第四层pooling后变为原图像的1/16,第五层pooling后变为原图像的1/32。经过多次卷积和pooling后,得到的图像越来越小,分辨率也越来越低,其中,最后得到W/32 * H/32图像,称为heatmap,共有21张,这些heatmap经过上采样(unsampling)后变成原图大小的图像。为了对每个像素进行分类预测,可以逐像素在这21张图像中取最大值,将最大值所对应的类别作为对应像素点的分类,从而产生一张已经分类好的图像。然而,对heatmap进行32倍上采样得到的图像比较粗糙,为了更精化,结合了多尺度的思想,采用了如图所示的方法:
      FCN-16S:分为两个步骤,先将图像放大2倍,再放大16倍,具体实现如下:将conv7得到的结果进行2倍上采样,得到21张语义分割score map将pooling4得到的结果,用1*1卷积核进行卷积,得到额外的21张语义分割score map; 将conv7得到的结果与pooling5得到的结果对应相加,然后将相加结果放大16倍。
      FCN-8S:分为三个步骤,先将图像放大2倍,再放大2倍,再放大8倍,可以参考下图。



参考博客:
http://www.cnblogs.com/gujianhan/p/6030639.html
http://blog.csdn.net/hjimce/article/details/50268555

    



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值