FCN语义分割算法原理与实战

FCN语义分割算法原理与实战

本文若有舛误,尚祈诸君不吝斧正,感激不尽。

前提概要:所使用的材料来源

对应视频材料:FCN语义分割

虽然可能比较简单但是奠定了使用卷积神经网络做语义分割任务的基础。

语义分割:输入图片,经过网络模型,输出原始图片对应像素的类别。

image-20250719071700292

FCN语义分割算法原理

主流常见的计算机视觉任务
  • 图像分类
  • 目标检测
  • 语义分割
  • 实例分割
  • and so on
image-20250718190027668
image-20250719071938433
FCN模型如何进行语义分割

image-20250719100238213

语义分割任务:输出的是矩阵与输入图像大小一致,输出后的每个像素有对应类别的概率,映射原图中对应位置的类别。

FCN模型输出结果解析

image-20250719100950136

假设标注20个类别,则最终输出结果是21个类别,因为还有一个背景类别。

输入HxW -->net --> HxWxC 注意:C(通道数)=分类个数+背景

转置卷积先导

image-20250719104527748

转置卷积的计算过程

image-20250721094430784

输入特征 * 卷积核 = 输出特征


image-20250721095018181

image-20250721100918190

FCN网络版本解析

image-20250722192651058

采取了很多跳转连接方法

全卷积网络为什么可以接收任意大小的输入?

image-20250722192525204

FCN网络的损失函数

损失函数是像素级的分类交叉熵(Pixel-wise Softmax + Cross-Entropy Loss)

image-20250722202837250

语义分割算法模型的评价指标(import!)

常用的包含以下四个:

  • Pixel Accuracy 像素准确率 image-20250722204728505

    • 所有被正确分类的像素所占的比例
    • 特点:直观简单,但对于类分布极度不均衡的数据(如背景占比很大)会有“准确率虚高”的问题

  • Mean Accuracy 平均类别准确率image-20250722204743343

    • 每个类别的像素准确率的平均值
    • 特点:可以平衡类间分布不均的问题,但是对于小类极为敏感

  • Mean IoU 平均交并比image-20250722204800650

    • 每个类别的交并比(IoU)的平均值 (语义分割中最常用的评价指标之一!)
    • 特点:对每一类都很公平,能反映模型在小类上的表现

  • Frequency Weighted IoU 频率加权交并比image-20250722204811309
    • 考虑类别在数据中出现频率的IoU加权平均
    • 特点:类似Mean IU,但考虑了每类像素的数量,更贴近数据真实分布。避免了某些稀有类对平均结果的影响

像素准确率和平均类别准确率的案例:

image-20250722205452259

平均交并比案例:

image-20250722210347951

FCN语义分割网络结构讲解

背景:标准的 FCN 论文(Fully Convolutional Networks for Semantic Segmentation, 2015)本身是基于 VGG 构建的,并没有显式使用 bottleneck 结构,但后续很多工作(比如 DeepLab 系列、FCN-ResNet 等)将 FCN 与 ResNet 等网络结合。所有FCN有一些不同结构的版本。

image-20250729191340914

右侧的图片为整体的流程图,最后输出的大小是480 x 480 x 21,其中的21(通道数)表示21个类别。

Bottleneck:

结构图中的Bottleneck构建了四个基本的层,这四个层就是resnet的主干网络。

核心代码:

image-20250729193847814

膨胀卷积:

亦称为空洞卷积,可以增加卷积核的感受野,同时不增加计算量。核心思想是通过插入空洞卷积扩展卷积核的有效感受野,使其捕获更大范围的上下文信息。

image-20250729194318256

image-20250729194847473

注意:代码中的dilation默认为1则表示普通卷积,大于1的情况下表示膨胀卷积。

原版的Resnet中没有使用膨胀卷积。

FCNHead:

头部层对应代码

image-20250729200028911

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/91004.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

堆的理论知识

1 引入1.1 普通二叉树不适合用数组存储的原因普通二叉树的结构是 “不规则” 的 —— 节点的左右孩子可能缺失,且缺失位置无规律。 若用数组存储(按 “层次遍历顺序” 分配索引,即根节点放索引 0,根的左孩子放 1、右孩子放 2&…

【python实用小脚本-161】Python Json转Xml:告别手敲标签——一行命令把配置秒变可导入的XML

Python Json转Xml:告别手敲标签——一行命令把配置秒变可导入的XML 关键词:json转xml、零依赖脚本、自动生成标签、小白友好、跨平台故事开场:周五下午,老板又甩来“配置翻译”任务 17:55,你正准备关机,老板…

WisFile(文件整理工具) v1.2.19 免费版

下载:https://pan.quark.cn/s/db99b679229fWisFile是一款免费AI文件管理工具,可以在电脑本地运行。它专注于解决文件命名混乱、归类无序和手动整理耗时的问题。通过AI技术智能识别文件内容,支持批量重命名和智能分类归档功能,可自…

简历美容院:如何把“打杂经历“包装成“核心项目“?

简历美容院:如何把"打杂经历"包装成"核心项目"? 大家好,我是程序员小白条,今天来研究下简历包装的事,小白可以按我的包装流程走,可以分步骤进行包装,具体怎么进行可以看正文…

零基础-动手学深度学习-7.7 稠密连接网络(DenseNet)

ResNet极大地改变了如何参数化深层网络中函数的观点。 稠密连接网络(DenseNet)在某种程度上是ResNet的逻辑扩展。让我们先从数学上了解一下。 7.7.1. 从ResNet到DenseNet 7.7.2. 稠密块体 DenseNet使用了ResNet改良版的“批量规范化、激活和卷积”架构…

Marin说PCB之POC电路layout设计仿真案例---09

好消息,好消息,小编最爱的国漫凡人修仙传电视剧版本的终于可以看了,小编我推荐一波啊,感兴趣的道友们可以去某酷视频去追剧啊。 好了,咱们言归正传啊。本期的案例是这个月中旬我们组的测试大哥阿永去某田实验室去测试我…

论文阅读--射频电源在半导体领域的应用

《射频电源在半导体领域的应用》 论文信息:左政,冯国楠,李建慧,等.射频电源在半导体领域的应用[J].软件和集成电路,2025,(04):38-43.DOI:10.19609/j.cnki.cn10-1339/tn.2025.04.007. 一、射频电源的定义与分类 1.1 定义射频电源(RF Power Supply&#xf…

绿算技术携手昇腾发布高性能全闪硬盘缓存设备,推动AI大模型降本增效

在数字化浪潮席卷全球的今天,人工智能已经成为推动企业创新与发展的重要力量。广东省绿算技术有限公司(简称“绿算技术”)紧跟时代步伐,基于华为昇腾AI大模型,推出了高性能全闪硬盘缓存设备,致力于为人工智…

HoloLens2系列讲解 - 06 基本操作

一、导入MRTK插件 1. 首先要新建一个项目,打开unity,新建一个project。 2. 导入MRTK包。 3. 点击 Mixed Reality Toolkit > Add to scene and Configure 添加MR场景配置文件。

Linux Vim 编辑器使用指南

Linux Vim 编辑器使用指南一、Vim 简介 Vim(Vi IMproved)是 Linux/Unix 系统中最流行的文本编辑器之一,它是 Vi 的增强版,支持多模式操作、语法高亮、插件扩展等特性,无需鼠标即可高效编辑文本。 二、核心工作模式 Vim…

运维笔记:破解 VMware 迁移难题

一、VMware 迁移前的准备与评估1.1 迁移场景与目标分析VMware 迁移常见场景包括:同平台升级:从 vSphere 6.7 迁移到 7.0/8.0(硬件兼容、功能迭代)跨平台迁移:VMware→KVM/Xen(降低 licensing 成本&#xff…

cartographer 点云数据的预处理

目录 传感器数据的走向 体素滤波与之后的处理 3D情况下的激光雷达数据的预处理 初始位姿估计 位姿推测器的优缺点分析与总结 可能有问题的点 可能的改进建议 传感器数据的走向 传感器数据从CollatedTrajectoryBuilder类的HandleCollatedSensorData函数 传递GlobalTrajec…

基于数据挖掘的短视频点赞影响因素分析【LightGBM、XGBoost、随机森林、smote】

文章目录有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目介绍总结每文一语有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主 项目介绍 随着短视频行业的高速发展,尤其是以抖音为代表的平台不断壮大&…

Git 从入门到精通

Git 从入门到精通 涵盖了核心概念、常用命令、协作流程和高级技巧: 核心理念: 版本控制: 记录文件变化历史,可回溯到任意版本。分布式: 每个开发者拥有完整的仓库副本(包括完整历史)&#xf…

UE5多人MOBA+GAS 30、技能升级机制

文章目录前言技能的升级修改一下按键的输入判断是否满级在ASC中升级技能由角色的输入调用ASC的升级功能技能图标的优化技能升级材质,可升级技能图标的闪烁刷新技能升级后的蓝耗和CD,以及蓝不够时技能进入灰色状态修复伤害数字特效只显示3位数的问题前言 …

笔试——Day22

文章目录第一题题目思路代码第二题题目:思路代码第三题题目:思路代码第一题 题目 添加字符 思路 枚举所有字符串a与字符串b相对应的位置 代码 第二题 题目: 数组变换 思路 贪心 以最大值为基准元素,判断其他元素能否变为最…

__getattr__和 __getattribute__ 的用法

1、__getattr__ 的用法当实例对象访问一个不存在的属性时,会执行 __getattr__ 方法,如果属性存在的话,就不会执行案例 class Person:def __init__(self, name, age):self.name nameself.age agedef get_info(self):return f"name: {se…

信息化项目验收测试实战指南

在当今数字化转型的大背景下,信息化项目验收建设已成为企业提升运营效率、优化管理流程的重要手段。然而,很多企业在投入大量资金建设信息系统后,却常常面临系统上线后无法满足实际业务需求的困境。究其原因,往往是由于忽视了信息…

牛顿拉夫逊法PQ分解法计算潮流MATLAB程序计算模型。

牛顿拉夫逊法&PQ分解法计算潮流MATLAB程序计算模型。本程序模型基于MATLAB进行潮流计算,建议先安装matpower插件(MATLAB中非常重要的潮流计算的插件)。本程序可进行牛拉法和PQ分解法潮流计算的切换,对比潮流计算的结果。很适合…

Go语言实战案例-计算字符串编辑距离

在自然语言处理、拼写纠错、模糊搜索等场景中,我们经常需要衡量两个字符串之间的相似度。编辑距离(Edit Distance) 就是一个经典的衡量方式,它描述了将一个字符串转换为另一个字符串所需的最少操作次数。 一、问题定义:什么是编辑距离? 编辑距离,也称为 Levenshtein Di…