FCN:
Fully Convolutional Networks for Semantic Segmentation (CVPR2015)
https://arxiv.org/pdf/1411.4038.pdf
PyTorch: https://github.com/shanglianlm0525/SemanticSegmentation-network

第一篇将CNN引入image segmentation 的文章,提出了一种end-to-end的做semantic segmentation的方法。

特点:
a) 将之前分类网络的全连接层都换成卷积层;
b) 使用上采样操作,上采样的参数是可学习的,这里采用的方法是反卷积;
c) 将这些特征图进行上采样之后,将特征图对应元素相加;
  因为经过多次卷积和pooling之后,得到的图像越来越小,分辨率越来越低,FCN为了得到信息,使用上采样(使用deconvolution)实现尺寸还原。不仅对pool5之后的特征图进行了还原,也对pool4和pool3之后的特征图进行了还原,结果表明,从这些特征图能很好的获得关于图片的语义信息,而且随着特征图越来越大,效果越来越好。

PyTorch代码:

import torch
import torch.nn as nn
import torchvisionclass FCN8s(nn.Module):def __init__(self, num_classes):super(FCN8s, self).__init__()vgg = torchvision.models.vgg16()features = list(vgg.features.children())self.padd = nn.ZeroPad2d([100,100,100,100])self.pool3 = nn.Sequential(*features[:17])self.pool4 = nn.Sequential(*features[17:24])self.pool5 = nn.Sequential(*features[24:])self.pool3_conv1x1 = nn.Conv2d(256, num_classes, kernel_size=1)self.pool4_conv1x1 = nn.Conv2d(512, num_classes, kernel_size=1)self.output5 = nn.Sequential(nn.Conv2d(512, 4096, kernel_size=7),nn.ReLU(inplace=True),nn.Dropout(),nn.Conv2d(4096, 4096, kernel_size=1),nn.ReLU(inplace=True),nn.Dropout(),nn.Conv2d(4096, num_classes, kernel_size=1),)self.up_pool3_out = nn.ConvTranspose2d(num_classes, num_classes, kernel_size=16, stride=8)self.up_pool4_out = nn.ConvTranspose2d(num_classes, num_classes, kernel_size=4, stride=2)self.up_pool5_out = nn.ConvTranspose2d(num_classes, num_classes, kernel_size=4, stride=2)def forward(self, x):_,_, w, h = x.size()x = self.padd(x)pool3 = self.pool3(x)pool4 = self.pool4(pool3)pool5 = self.pool5(pool4)output5 = self.up_pool5_out(self.output5(pool5))pool4_out = self.pool4_conv1x1(0.01 * pool4)output4 = self.up_pool4_out(pool4_out[:,:,5:(5 + output5.size()[2]) ,5:(5 + output5.size()[3])]+output5)pool3_out = self.pool3_conv1x1(0.0001 * pool3)output3 = self.up_pool3_out(pool3_out[:, :, 9:(9 + output4.size()[2]), 9:(9 + output4.size()[3])] + output4)out = self.up_pool3_out(output3)out = out[:, :, 31: (31 + h), 31: (31 + w)].contiguous()return outif __name__ == '__main__':model = FCN8s(num_classes=20)print(model)input = torch.randn(1,3,224,224)output = model(input)print(output.shape)

语义分割论文:Fully Convolutional Networks for Semantic Segmentation (CVPR2015)相关推荐

  1. 全卷积网络的理解——理解论文Fully Convolutional Networks for Semantic Segmentation

    目录 论文详解 1.和VGG网络的对比 2.那么fcn是什么? 3.论文改进的模型 3.1怎样进行上采样的问题 3.2从哪里开始上采样的问题--跳跃连接的问题 3.3整体设计思想 4.1实验结果 4. ...

  2. 论文笔记(FCN网络,语义分割):Fully Convolutional Networks for Semantic Segmentation

    FCN论文笔记:Fully Convolutional Networks for Semantic Segmentation 语义分割模型结构时序: FCN SegNet Dilated Convol ...

  3. Fully Convolutional Networks for Semantic Segmentation (FCN)论文翻译和理解

    论文题目:Fully Convolutional Networks for Semantic Segmentation 论文来源:Fully Convolutional Networks for Se ...

  4. 论文精读及分析:Fully Convolutional Networks for Semantic Segmentation

      本文主要内容为论文<Fully Convolutional Networks for Semantic Segmentation> 的阅读笔记,在原始论文的基础上加入了自己的一些理解, ...

  5. 【论文翻译】Fully Convolutional Networks for Semantic Segmentation

    论文题目:Fully Convolutional Networks for Semantic Segmentation 论文来源:Fully Convolutional Networks for Se ...

  6. 【论文笔记】FCN:Fully Convolutional Networks for Semantic Segmentation

    <Fully Convolutional Networks for Semantic Segmentation>,CVPR 2015 文章目录 1. 概览 2. 主要亮点 2.1 全卷积化 ...

  7. 论文笔记《Fully Convolutional Networks for Semantic Segmentation》

    [论文信息] <Fully Convolutional Networks for Semantic Segmentation> CVPR 2015 best paper key word: ...

  8. Fully Convolutional Networks for Semantic Segmentation ————全卷积网络 FCN论文解读

    Fully Convolutional Networks for Semantic Segmentation 作者: Jonathan Long, Evan Shelhamer, Trevor Dar ...

  9. (FCN)-Fully Convolutional Networks for Semantic Segmentation

    文章目录 Fully Convolutional Networks for Semantic Segmentation 摘要 全局信息和局部信息 感受野 FCN算法架构 训练技巧 详细参考 Fully ...

  10. 【FCN】Fully Convolutional Networks for Semantic Segmentation学习

    论文翻译 又是一个看不懂原文,又看不懂翻译的论文. semantic segmentation 图像语义分割 就是预测每个像素所属的对象类别 语义分割是指像素级地识别图像,即标注出图像中每个像素所属的 ...

最新文章

  1. C++ Windows进程管理
  2. 一文详解PnP算法原理
  3. Docker学习笔记(4) — 开启Docker远程访问
  4. 在线python编程编译器-在线编译或编辑Python的5个最佳工具
  5. LBE 隐私卫士原理分析
  6. C语言 二进制文件读取和写入
  7. 编写简单的服务和客户端(C++)---ROS学习第10篇
  8. 块级元素和行内元素的区别
  9. Selenium断言的使用,等待
  10. 我的世界服务器物品id错误,我的世界错误代码,怎么弄
  11. 团队转会名单(22日改)
  12. 个人练习-jq 鼠标移上移出查看图片(放大)提示
  13. python中将数字转换成二进制数
  14. 权威指南之脚本化jquery
  15. Python练习之购物车
  16. Javascript模块化编程(二)AMD规范(规范使用模块)
  17. 基于Kubernetes集群部署skyDNS服务
  18. CocosBuilder
  19. 条件数、奇异值与海森矩阵
  20. excel复制公式递增_快速向下复制Excel公式

热门文章

  1. js实现 打开网页自动弹出添加QQ好友邀请窗口、或直接打开聊天窗口
  2. poi-tl导出word出错
  3. html挪车隐藏手机,挪车电话轻易泄露你的隐私!车主这样做才能万无一失!
  4. C语言程序设计——从入门到进阶,C语言程序设计——从入门到进阶-巨同升主编.pdf(3)...
  5. LVM精简卷(Thinly-Provisioned Logical Volumes)的扩容
  6. Gitter:高颜值GitHub小程序客户端诞生记
  7. 【转载】Attention Mechanism in Deep Learning
  8. 微商卖养生产品怎么吸粉?让客户慢慢进入你的营销场景
  9. 我为国内微积分“小糊涂”感到悲哀!
  10. ue4 c++绘线 DrawLine