图像语义分割(1)-FCN:用于语义分割的全卷积神经网络
欢迎扫描二维码关注微信公众号 深度学习与数学 [获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]
论文地址:Fully Convolutional Networks for Semantic Segmentation
[Long J , Shelhamer E , Darrell T . Fully Convolutional Networks for Semantic Segmentation[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014, 39(4):640-651.]
论文实现:github代码
1. 创新
- 接收任意尺寸输入的全卷积网络
- 使用反卷积的上采样
- 融合深层粗糙特征和浅层精细特征的跳跃结构
2.模型提出
- 为什么可以将CNN转化为FCN?
全连接层可以看作卷积层,其中,feature map 1x1,向量长度为通道数。 - 为什么需要上采样?
端到端的密集预测需要输入和输出的尺寸一致,而提取特征图的过程中图像像素降低,感受野变大,输出尺寸与输入不一致。 - 为什么需要跳跃结构进行跨层特征融合?
深层的特征对应全局的语义信息,浅层的特征对应着目标的位置信息,语义分割二者都需要考虑,所以引入了跳跃结构。
3.模型架构
3.1 调整分类网络至全卷积以进行稠密预测
将全连接层替换为卷积层,如图:
3.2 使用反卷积的上采样
为了还原图像的尺寸,文章中提出了三种方法,即稀疏滤波(Shift-and-stitch)、双线性插值、和反卷积, 并采用了反卷积的方法。反卷积是与卷积操作相反的计算,比如下图是普通的卷积,4x4 Input、3x3 KernelSize、0 pad、1 stride:
反卷积将卷积还原:2x2 Input、3x3 KernelSize、0 pad、1 stride,如图:
在TensorFlow框架中,反卷积过程如下:
3.3 跨层结构(skip architecture)
首先贴上论文中的结构图:
首先是基础的五步操作:
- Input →\rightarrow→ n convs + 1 max Pooling →\rightarrow→ poo1:: 12\frac{1}{2}21Input
- pool1 →\rightarrow→ n convs + 1 max Pooling →\rightarrow→ poo2:: 14\frac{1}{4}41Input
- pool2 →\rightarrow→ n convs + 1 max Pooling →\rightarrow→ poo3:: 18\frac{1}{8}81Input
- pool3 →\rightarrow→ n convs + 1 max Pooling →\rightarrow→ poo4:: 116\frac{1}{16}161Input
- pool4 →\rightarrow→ n convs + 1 max Pooling →\rightarrow→ poo5:: 132\frac{1}{32}321Input
应用跳跃结构得到三种不同的模型: - 直接对 pool5 进行 32x 上采样后,将得到的特征图扔给Softmax分类器,得到密集预测结果 →\rightarrow→ FCN-32s
- 对 pool5 进行 2x 上采样得到与 pool4 尺寸一样的上采样特征,并于 pool4 逐点相加得到特征图,对此特征图进行 16x 上采样,将得到的特征图扔给Softmax分类器,得到密集预测结果 →\rightarrow→ FCN-16s
- 对 pool5 进行 2x 上采样得到与 pool4 尺寸一样的上采样特征,对此特征进行 2x 上采样得到与 pool3 尺寸一样的上采样特征,并于 pool3 逐点相加得到特征图,对此特征图进行 8x 上采样,将得到的特征图扔给Softmax分类器,得到密集预测结果 →\rightarrow→ FCN-8s
4. 训练
4.1 StageWise Training
- 将经典分类网络初始化,弃用全连接层为卷积层
- 从特征小图 16x16x4096 预测分割小图 16x16x21,之后上采样为大图。反卷积步长为32
- 融合pool4,反卷积步长16
- 融合pool3,反卷积步长8,得到效果最好的FCN-8s
4.2 其他细节
- 使用数据增强方式对最终结果影响不大(需要思考一波为什么和这种效果与GAN的联系);增加有效标注数量提升了最终的性能
- 参数:20 mini batch;固定学习率;动量 0.9;weight decay
- 微调:对整个网络进行微调对性能的提升不大,因为直接微调后几层就会达到前者70%左右的性能
- 没有类别平衡策略
图像语义分割(1)-FCN:用于语义分割的全卷积神经网络相关推荐
- 【CV语义分割】全卷积神经网络FCN(更新ing)
学习总结 (1)paper<Fully Convolutional Networks for Semantic Segmentation> (2)论文翻译可以参考:https://www. ...
- 全卷积神经网络( FCN ):语义分割深度模型先驱
语义分割 简单地说,分割就是抠图.语义分割,就是按图像中物体表达的含义进行抠图. 现在ps已经集成很多自动分割的功能,相比旧版本软件,新软件提高了美工人员的抠图和美图的效率. 如果我们能在更复杂的环境 ...
- picpick尺子像素大小精度不够准确_picpick尺子像素大小精度不够准确_【论文解读】像素级分割里程碑算法——FCN全卷积神经网络......
FCN论文链接:Fully Convolutional Networks for Semantic Segmentation 作者代码(caffe版):https://github.com/shelh ...
- 全卷积神经网络(FCN)
目录 卷积化 上采样 跳跃结构 卷积化 上采样 跳跃结构 卷积化 上采样 跳跃结构 论文:Fully Convolutional Networks for Semantic Segmentation( ...
- FCN(全卷积神经网络)详解
文章目录 1. 综述 简介 核心思想 2. FCN网络 2.1 网络结构 2.2 上采样 Upsampling 2.3 跳级结构 3 FCN训练 4. 其它 4.1 FCN与CNN 4.2 FCN的不 ...
- 全卷积神经网络FCN
卷积神经网络CNN(YannLecun,1998年)通过构建多层的卷积层自动提取图像上的特征,一般来说,排在前边较浅的卷积层采用较小的感知域,可以学习到图像的一些局部的特征(如纹理特征),排在后边较深 ...
- 全卷积神经网络(FCN)论文笔记
全卷积神经网络(FCN)论文笔记 Fully Convolutional Networks for Semantic Segmentation Abstract 卷积网络是一种功能强大的视觉模型,可以 ...
- 图像分割之FCN全卷积神经网络
FCN全卷积神经网络 语义分割概念 语义分割就是逐像素的图像中的内容进行分类,属于同一类的像素都要被归为一类,因此语义分割是从像素级别来理解图像的. 注意区分的是:语义分割与实例分割不同,下图为FCN ...
- LiteFlowNet:用于光流估计的轻量级卷积神经网络
LiteFlowNet:用于光流估计的轻量级卷积神经网络 原文链接 摘要 FlowNet2 [14] 是用于光流估计的最先进的卷积神经网络 (CNN),需要超过 160M 的参数才能实现准确的流估 ...
- 全卷积神经网络(FCN)和卷积神经网络(CNN)的主要区别
卷积神经网络主要由卷积层.池化层和全连接层组成.排在前面的较浅的卷积层采用较小的感知域,可以学到图像的一些局部特征(如纹理特征),排在后面较深的卷积层采用较大的感知域,可以学到更加抽象的特征(如物体的 ...
最新文章
- 没被同事卷死,被司机卷死了...
- 感知算法论文(三):Feature Selective Anchor-Free Module for Single-Shot Object Detection
- h.264视频文件封装
- bootstrap学习笔记(5)
- Apache Tomcat安装配置
- 自我成长与团队管理——一些总结
- python练习五——PTA
- java输入 以逗号隔开_要求做个java程序用户输入数字逗号隔开, 计算下面的公式 多谢了...
- vue提示Named Route ‘News‘ has a default child route. When navigating to this named route...问题
- 大陆高校毕业IEEE fellow榜单
- 派克液压泵电控比例放大器
- JAVA基础----终弄清java核心技术卷1中的int fourthBitFromRight = (n 0b1000 ) / 0b1000;是怎么回事了。。。
- minio Non-XML response from server
- CS231n 02 Loss Functions and Optimization
- 广西教师招聘需要计算机考试证,2020广西教师招聘报考需要有教师资格证吗
- 都在说并发,啥是并发?
- 大数据好学么?具体学什么?
- uos打包——appimage包转uos的deb包
- anaconda卸载后重装出现了问题
- 00后年薪百万的乐观背后,是前浪的薪资倒挂
热门文章
- struts2_20140720
- Java获取http和https协议返回的json数据
- 【并行计算-CUDA开发】 NVIDIA Jetson TX1
- 2 分支语句——《Swift3.0 从入门到出家》
- 50个新的汉化Demo!纯前端 Wijmo 放大招
- 什么是CSS+DIV及其优势所在?
- mysql 语句 简书_MySQL基本语句
- java kettle job,kettle java job
- 中文字符频率统计python_使用 Python 统计中文字符的数量
- python多进程编程实例_Python多进程并发(multiprocessing)用法实例详解