P3.FCN网络结构详解

1.前言

Fully Convolutional Networks for Semantic Segmentation 2015CVPR

https://arxiv.org/abs/1411.4038

首个端对端的针对像素级预测的全卷积网络

全卷积:将分类网络中的全连接层全部替换为卷积层

PASCAL VOC2011、2012test数据集,与当年的一些主流网络对比,mean IOU提升了20%,推理时间更短

FCN-32s通过一系列的卷积下采样得到特征层,特征层的channel为21,因为在当年使用的数据集还是PASCAL VOC(有20个类别,加上背景一共有21个类别)。再经过上采样得到一个和原图同样大小的一个特征图(channels=21),该特征图的每个pixel都有21个值,对这21个值进行softmax处理,得到该像素针对每一个类别的预测概率,取概率最大的类别作为该像素的预测类别

2.Convolutionalization

4096,4096,1000对应的是全连接层的输出

输入一张图片,通过分类网络最后会得到一个针对1000个类别的预测值,这1000个预测值通过softmax处理之后得到针对每个类别的概率

全连接层的输入结点的个数是固定的,如果改变会报错

将全连接层转化为卷积层

输入图片大小大于24x24,最终得到的特征层的高度和宽度是大于1的,对应每个channel的数据是2d的数据,将其可视化为一张图片的形式(heatmap)

3.VGG16

VGG16——D

224x224x3 -> 7x7x512 下采样了32倍

4.全连接层和卷积层

全连接层计算对应某个结点的输出,将该结点与上一层每个结点的权重与输入对应结点的数值进行相乘再求和,得到对应结点的输出

卷积层(kernel_size=7x7,stride=1,kernel_number=4096,padding可调),卷积核与输入特征矩阵的相应位置的元素进行相乘再相加

全连接层一个结点的参数与一个卷积层的参数相同

第一个全连接层转化为卷积层的过程(Convolutionalization)

将全连接层每一个结点所对应的权重进行reshape处理就能直接赋值给卷积层使用了

通过展平操作就没有高和宽的信息了——4096

卷积能够保留高度和宽度信息——1x1x4096

5.FCN-32s,16s,8s

FCN-32s 将预测结果上采样了32倍,还原回了原图大小

FCN-16s 将预测结果上采样了16倍,还原回了原图大小

FCN-8s 将预测结果上采样了8倍,还原回了原图大小

在backbone的第一个卷积层将padding设置为100,为了让FCN网络适应不同大小的图片而设置的

输入图片大小小于192x192,通过VGG模型的backbone,高和宽就小于7,若padding=0则会报错,padding=3就可以训练任意高宽大于32的图片,没必要padding100(增大了网络的计算量;上采样后需要做一定的裁剪)

Convolutionalization FC6、FC7

1x1卷积,num_class 包含背景的分类类别个数

转置卷积,上采样32倍,恢复到原图的大小,冻结权重,上采样率过大

使用双线性插值的参数初始化转置卷积的参数

通过上采样之后,针对每一个pixel有num_class个参数

经过softmax处理就能得到针对每一个像素的预测类别

转置卷积的上采样率为2倍

额外使用来自MaxPooling4(下采样率16)输出的特征图

额外使用来自MaxPooling4(下采样率8)输出的特征图

融合相对底层的特征图信息

6.损失计算

针对每一个pixel计算Cross Entropy Loss,将所有Cross Entropy Loss求平均得网络的最终损失

7.语义分割评价指标

见P1

霹雳吧啦Wz语义分割学习笔记P3相关推荐

  1. 霹雳吧啦Wz语义分割学习笔记P6

    P6.DeepLabV1网络简介 1.前言 semantic image segmentation with deep convolutional nets and fully connected C ...

  2. 霹雳吧啦Wz语义分割学习笔记P2

    P2.转置卷积Transposed Convolution 1.作用:上采样 转置卷积不是卷积的逆运算 转置卷积也是卷积 2.转置卷积运算步骤 在输入特征图元素间填充s-1行.列0 在输入特征图四周填 ...

  3. 霹雳吧啦Wz语义分割学习笔记P8

    P8.DeepLabV3网络简介 1.前言 Rethinking Astrous Convolution for Semantic Image Segmentation 2017CVPR https: ...

  4. 霹雳吧啦Wz语义分割学习笔记P5

    P5.Pytorch官方实现的FCN网络结构 backbone:VGG16 -> ResNet50:使用了膨胀卷积

  5. 使用Pytorch搭建U-Net网络并基于DRIVE数据集训练(语义分割)学习笔记

    使用Pytorch搭建U-Net网络并基于DRIVE数据集训练(语义分割)学习笔记 https://www.bilibili.com/video/BV1rq4y1w7xM?spm_id_from=33 ...

  6. 语义分割学习笔记(四)膨胀卷积

    推荐课程: 1.膨胀卷积_哔哩哔哩_bilibili(膨胀卷积原理讲的很清楚) 2.膨胀卷积(Dilated convolution)详解_哔哩哔哩_bilibili(gradding effect问 ...

  7. 联合目标检测和语义分割——学习笔记

    联合目标检测和语义分割 目标检测 目标检测是一种与计算机视觉和图像处理相关的计算机技术,用于检测数字图像和视频中特定类别的语义对象(例如人,建筑物或汽车)的实例.然而现实中物体的尺寸.姿态.位置都有很 ...

  8. 语义分割学习笔记(一)

    文章目录 一.区别 二.代码演示原图像与mask融合 三.数据处理 一.区别 语义分割:每个像素都打上标签(这个像素是人,树,背景等)语义分割只区分类别,不区分类别中的具体单元 实例分割:不光要区分类 ...

  9. 点云分割学习笔记2022

    PointCloudSegmentation 点云分割 PointCloudSegmentation测试笔记_AI视觉网奇的博客-CSDN博客 代码地址:https://github.com/Liya ...

最新文章

  1. 2020年世界机器人报告
  2. 网站SEO优化可通过哪些数据分析来解决问题?
  3. 编程软件python中的if用法-给Python初学者的一些技巧
  4. Tomcat的系统架构(以Tomcat5为基础)
  5. 大家都在说的分布式系统到底是什么
  6. java 权限控制 demo_Java-访问控制权限
  7. 《UTF-8与GB2312之间的互换》的改进
  8. 【PYTHON笔记】文件读写,定位
  9. terminal采用公钥免密访问服务器
  10. 对应node版本_Node.js 应用故障排查手册 —— Node.js 性能平台使用指南
  11. 语音增强二,麦克风阵列
  12. 2022年建筑架子工(建筑特殊工种)考试资料及建筑架子工(建筑特殊工种)新版试题
  13. Android飞机大战游戏报告,基于android的飞机大战游戏设计与开发.doc
  14. 关于echarts中饼图设置颜色的方法
  15. 蓝牙耳机无法与计算机连接,蓝牙耳机与电脑无法配对、或者连接不上
  16. android 根据屏幕大小自行选择图片
  17. SECS/GEM通信协议学习之报文
  18. 【Python常微分方程】
  19. 未来教师会被计算机代替,未来老师会被计算机所取代吗?Will The Teacher be Replaced by Computers in the Future-...
  20. HTTP请求偶尔失败(21秒后超时) - 问题排查

热门文章

  1. javascript 多行文本 function处理方法 及实践应用
  2. html文件如何设置右键菜单,windows系统使用小技巧,创建属于自己的右键新建菜单-右键菜单设置...
  3. QuTrunk与Paddle结合实践--VQA算法示例
  4. 基础——树莓派3B配置
  5. efi分区格式化操作
  6. FlowJO X 流式补偿调整
  7. bootstrap table 超链接的添加 a标签
  8. Navicat导出整个数据库
  9. vue如何整个页面添加loading
  10. 史上最全的C++/游戏开发面试问题总结(一)——C++基础