语义分割学习笔记(三)FCN网络结构详解

news/2024/5/20 10:14:37 标签: 深度学习, FCN网络, 语义分割

1.FCN网络概述

FCN网络(Fully Convolutional Networks):首个端对端的针对像素级预测的全卷积网络。

FCN网络思想:输入图像经过多次卷积,得到一个通道数为21的特征图,再经过上采样,得到一个与原图同样大小的特征图,再经过Softmax函数处理就能得到该像素针对Pascal Voc数据集每一个类别的预测概率,选择最大概率的类别作为该像素的预测类别。

FCN网络在VGG网络上做出的修改:把VGG全连接层改为卷积层。一方面,可以不用固定输入图像的大小。另一方面,当输入图像大小大于24x24,最终得到的输出特征图的channel就会变为2D的数据,这时我们把channel提取出来就得到一张热图(heatmap)。

 最上面一个网络模型为vgg 16。

2.几种不同的FCN网络

FCN-32s:使用32倍的上采样。FCN-16s:使用16倍的上采样。FCN-8s:使用8倍的上采样。

(1) FCN-32s

VGG16 Backbone(主干网络)为VGG16网络全连接层之前的网络部分。注意:FCN网络VGG全连接层改为卷积层,即其中两个卷积层为FC6,FC7。

模型的训练过程如下:

1.输入图片,首先,通过VGG16 Backbone(主干网络)会将图片下采样32倍,得到的特征图W、H为原图片大小的1/32,Channel变为512

2.其次,经过size=7x7,padding=3,卷积核数为4096的FC6卷积,输出特征图大小不变,Channel变为4096。

3.再次,经过size=1x1,padding=1,卷积核数为4096为FC7卷积,输出特征图大小不变,Channel也不变。

4.然后,经过size=1x1,padding=1,卷积核数为num_class的卷积,输出的特征图大小不变,Channel变为num_class

(num_class为分类个数,VGG网络全连接层会经过softmax进行多分类,因此我们要把Channel值设置为分类个数,确保参数个数与VGG保持一致。讲解视频中有提到!)

5.最后,经过一个size=64的上采样(即32倍的上采样),特征图恢复到原图大小。得到的特征图的Channel仍然为num_class。

(在源码中,这里没有使用上采样,而是直接使用双线性插值还原。原因是直接使用32倍的上采样效果不明显,不用也可以。这是由于直接放大32倍导致的。)

(2) FCN-16s

 

(3) FCN-8s


http://www.niftyadmin.cn/n/314251.html

相关文章

新来的00后真卷,我想离职了···

都说00后躺平了,但是有一说一,该卷的还是卷。 这不,前段时间我们公司来了个00后,工作没两年,跳槽到我们公司起薪20K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。…

口腔污水处理设备工艺流程

口腔污水处理设备工艺流程 该污水处理要经过滤网去除水中杂物,再对废水进行消毒。依据以往的工程经历以及医疗机构水污染物排放标准中的规则,选用过滤消毒对污水进行净化处理污水处理设备的工艺路线断定如下:医院污水一过滤一消毒一排放。 口腔污水外理设…

云原生环境下的安全实践:保护应用程序和数据的关键策略

文章目录 云原生环境下的安全实践:保护应用程序和数据的关键策略一.安全措施和实践1. 身份和访问管理:2. 容器安全:3. 网络安全:4. 日志和监控:5. 持续集成和持续交付(CI/CD)安全:6.…

Java 实现 AES 加密和解密完整示例

1、简介 AES,全称为 Advanced Encryption Standard,是一种分组密码算法,用于保护敏感数据的传输和存储。AES 分为 128 位和 256 位两种密钥长度,可以对数据进行加密和解密,保证数据的安全性和完整性。AES 主要应用于电…

tf卡文件隐藏怎样恢复,原来有这三种方法,你了解多少呢?

TF卡是一种便携式存储设备,非常方便用于存储数据。但是,有时TF卡中的数据会被不小心隐藏了,也许是误操作,也许是病毒攻击等原因。所以,下面将讲述如何找回TF卡中被隐藏的数据。 【一】关于TF卡概述 TF卡(…

Pandas-如何用pandas批量删除含有某些特征数据的行

前言 本文是该专栏的第30篇,后面会持续分享python数据分析的干货知识,记得关注。 在工作上处理数据需求的时候,会通常需要你将某张数据表里面的多条特征数据进行删除,最后再保存清洗完成的数据。换言之,假设有某张csv数据表(几十万条数据),而在这张表里面需要将几万条不…

为何使用 B+ 树而非二叉查找树或 B 树做索引?

二叉树 B-Tree BTree 一、为何使用 B 树而非二叉查找树做索引? 我们知道二叉树的查找效率为 O(logn),当树过高时,查找效率会下降。另外由于我们的索引文件并不小,所以是存储在磁盘上的。 文件系统需要从磁盘读取数据时&#xff0c…

CMake 初步认识

目录 例1 简单项目编译 目录结构 CMakeLists.txt test1.cpp 编译命令 外部编译: 执行 例2 多目录编译 子目录CMakeListx.txt 主目录CMakeLists.txt main.cpp 常见命令 cmake_minimum_required project 设置项目名称 add_executable 例 1 直接使用…