FCN全卷积网络理解及代码实现(来自pytorch官方实现)

该博客介绍了FCN(全卷积网络)在语义分割中的作用,强调了它相对于传统网络的提升,如将全连接层替换为卷积层以得到像素级预测。FCN-32s、16s、8s的区别在于上采样率,FCN-32s最简单,不融合底层信息,而16s和8s则融合了更深层次的信息。代码示例使用了ResNet-50作为backbone,并详细说明了其结构变化,包括卷积层和转置卷积层的使用。损失计算采用像素级的交叉熵损失,并讨论了评估指标和实现细节。

视频链接:https://www.bilibili.com/video/BV1J3411C7zd?vd_source=a0d4f7000e77468aec70dc618794d26f
代码:https://github.com/WZMIAOMIAO/deep-learning-for-image-processing

FCN是2015年提出的首个端对端的针对像素级预测的全卷积网络。
如今的pytorch实现的FCN都是基于ResNet-50的backbone,不是论文中的VGG16,且使用的是空洞卷积(也叫膨胀卷积)

pytorch官方实现的FCN网络结构图

在这里插入图片描述
博主github:https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_segmentation/fcn

一、相比以前网络的巨大提升:

在这里插入图片描述

二、传统使用池化层最后得到的其实是一个长度为1000的向量:

在这里插入图片描述
而换为卷积层之后,最后得到的是1000通道的2D图像,可以可视化为heat map图。

三、回顾VGG16

一般说的vgg16是D
在这里插入图片描述
全连接操作前后:77512(通道)
在这里插入图片描述

【 假 设 忽 略 偏 置 】 \color{red}{【假设忽略偏置】}
全连接FC1计算:计算对应某一个结点的输出,将该节点与上一层某一个结点的权重与输入对应节点数值相乘,再求和

  • FC1参数:25088*4096=102760448

下层使用7*7的卷积核、stride=1,4096个卷积核的一个卷积层

  • Conv参数:77512*4096=102760448

一 个 卷 积 核 和 F C 1 一 个 节 点 参 数 量 一 样 \color{red}{一个卷积核和FC1一个节点参数量一样} FC1

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值