语义分割论文:Fully Convolutional Networks for Semantic Segmentation (CVPR2015)
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)相关推荐
- 全卷积网络的理解——理解论文Fully Convolutional Networks for Semantic Segmentation
目录 论文详解 1.和VGG网络的对比 2.那么fcn是什么? 3.论文改进的模型 3.1怎样进行上采样的问题 3.2从哪里开始上采样的问题--跳跃连接的问题 3.3整体设计思想 4.1实验结果 4. ...
- 论文笔记(FCN网络,语义分割):Fully Convolutional Networks for Semantic Segmentation
FCN论文笔记:Fully Convolutional Networks for Semantic Segmentation 语义分割模型结构时序: FCN SegNet Dilated Convol ...
- Fully Convolutional Networks for Semantic Segmentation (FCN)论文翻译和理解
论文题目:Fully Convolutional Networks for Semantic Segmentation 论文来源:Fully Convolutional Networks for Se ...
- 论文精读及分析:Fully Convolutional Networks for Semantic Segmentation
本文主要内容为论文<Fully Convolutional Networks for Semantic Segmentation> 的阅读笔记,在原始论文的基础上加入了自己的一些理解, ...
- 【论文翻译】Fully Convolutional Networks for Semantic Segmentation
论文题目:Fully Convolutional Networks for Semantic Segmentation 论文来源:Fully Convolutional Networks for Se ...
- 【论文笔记】FCN:Fully Convolutional Networks for Semantic Segmentation
<Fully Convolutional Networks for Semantic Segmentation>,CVPR 2015 文章目录 1. 概览 2. 主要亮点 2.1 全卷积化 ...
- 论文笔记《Fully Convolutional Networks for Semantic Segmentation》
[论文信息] <Fully Convolutional Networks for Semantic Segmentation> CVPR 2015 best paper key word: ...
- Fully Convolutional Networks for Semantic Segmentation ————全卷积网络 FCN论文解读
Fully Convolutional Networks for Semantic Segmentation 作者: Jonathan Long, Evan Shelhamer, Trevor Dar ...
- (FCN)-Fully Convolutional Networks for Semantic Segmentation
文章目录 Fully Convolutional Networks for Semantic Segmentation 摘要 全局信息和局部信息 感受野 FCN算法架构 训练技巧 详细参考 Fully ...
- 【FCN】Fully Convolutional Networks for Semantic Segmentation学习
论文翻译 又是一个看不懂原文,又看不懂翻译的论文. semantic segmentation 图像语义分割 就是预测每个像素所属的对象类别 语义分割是指像素级地识别图像,即标注出图像中每个像素所属的 ...
最新文章
- C++ Windows进程管理
- 一文详解PnP算法原理
- Docker学习笔记(4) — 开启Docker远程访问
- 在线python编程编译器-在线编译或编辑Python的5个最佳工具
- LBE 隐私卫士原理分析
- C语言 二进制文件读取和写入
- 编写简单的服务和客户端(C++)---ROS学习第10篇
- 块级元素和行内元素的区别
- Selenium断言的使用,等待
- 我的世界服务器物品id错误,我的世界错误代码,怎么弄
- 团队转会名单(22日改)
- 个人练习-jq 鼠标移上移出查看图片(放大)提示
- python中将数字转换成二进制数
- 权威指南之脚本化jquery
- Python练习之购物车
- Javascript模块化编程(二)AMD规范(规范使用模块)
- 基于Kubernetes集群部署skyDNS服务
- CocosBuilder
- 条件数、奇异值与海森矩阵
- excel复制公式递增_快速向下复制Excel公式
热门文章
- js实现 打开网页自动弹出添加QQ好友邀请窗口、或直接打开聊天窗口
- poi-tl导出word出错
- html挪车隐藏手机,挪车电话轻易泄露你的隐私!车主这样做才能万无一失!
- C语言程序设计——从入门到进阶,C语言程序设计——从入门到进阶-巨同升主编.pdf(3)...
- LVM精简卷(Thinly-Provisioned Logical Volumes)的扩容
- Gitter:高颜值GitHub小程序客户端诞生记
- 【转载】Attention Mechanism in Deep Learning
- 微商卖养生产品怎么吸粉?让客户慢慢进入你的营销场景
- 我为国内微积分“小糊涂”感到悲哀!
- ue4 c++绘线 DrawLine