SeeThroughNet:通过保留类概率信息来恢复辅助损失

news2024/11/13 20:16:15

文章目录

  • SeeThroughNet: Resurrection of Auxiliary Loss by Preserving Class Probability Information
    • 摘要
    • 本文方法
      • Class Probability Preserving Pooling
      • SeeThroughNet

SeeThroughNet: Resurrection of Auxiliary Loss by Preserving Class Probability Information

摘要

辅助损失函数是在主分支损失之外的附加损失,有助于优化神经网络的学习过程。
为了计算语义分割领域中中间层特征图与ground truth之间的辅助损失,每个特征图的大小必须与ground truth匹配
在所有使用分割模型的辅助损失的研究中,要么使用下采样函数来减少ground truth的大小,要么使用上采样函数来增加特征图的大小,以匹配特征图和地面真相之间的分辨率。
但是在通过下采样和上采样选择代表性值的过程中,信息的丢失是不可避免的
本文方法
引入了类概率保留池化(CPP)来减少语义分割任务中ground truth下采样时的信息损失
在这里插入图片描述
类概率保持(CPP)池化效果的可视化。对于被遮挡的火车(红色框中)、被遮挡的建筑(橙色框中公交车站)和远处的柱子(黄色框中),与DeepLabV3+原始模型相比,DeepLabV3+模型w/ CPP在grada - cam可视化(左列)中显示出更精细和更强的激活。在推理结果中(右列),w/ CPP模型显示了正确和精细的分割。
在这里插入图片描述
传统池化(即最近邻[NN]池化)和CPP池化效果的可视化。由于GT值为整数,神经网络池化被广泛应用于地面真实值的下采样分割任务。使用了来自Cityscapes数据集的语义ground truth。随着池的规模因子的增加,会丢失更多的信息。特别是在神经网络池化中,远目标和边界信息丢失了很多,而在CPP池化中,远目标和边界信息仍然是一种概率。

本文方法

在这里插入图片描述
类概率保留(CPP)池化的说明。它显示了1/4池化,其中4x4网格信息被下采样到一个网格。输出的通道数等于类的总数(例如Cityscapes的20个类,包括忽略类),其中每个通道表示对应网格的类概率。

Class Probability Preserving Pooling

CPP池化不是从输入映射中对应的接受区域中确定一个代表值,而是计算与区域中每个类匹配的网格(或像素)的数量,然后使用该数字作为每个类的概率。例如,图3显示了1/4 CPP池,其中4x4网格向下采样到一个网格。

在输入映射中,统计4x4区域中0类(道路)的个数,成为0类(道路)输出通道对应网格的概率值。

对于其他类(例如,cityscape总共有20个类,包括忽略类)也会进行相同的计算。如图所示,输出网格中的每个位置都保持一定的类概率。

更详细地说,在CPP池化中,一个类k的输出Y网格被计算为:
在这里插入图片描述
为了测量两个概率分布之间的差异,我们使用Kullback-Leibler (KL)散度,写为公式2中的DKL。设pi(x)和qi(x)分别为该层的语义预测输出和语义ground truth的CPP池化结果,损失函数为:
在这里插入图片描述

SeeThroughNet

在这里插入图片描述
主干网络:HRNetV2-W48,输出四种不同的尺度特征
SeeThrough解码器
粗语义分割头由(3x3 conv)→(BN)→(ReLU)→(1x1 conv)组成
使用三个辅助损失,采用由CPP池化生成的标签y0,由于类概率保留标签,解码器从更大的图像中学习潜在的存在信息,当使用下采样时,这些信息就消失了。
在相邻尺度语义分割图之间使用解码器中可训练的相对注意掩码αds
在较小的图上使用双线性上采样操作µ来匹配分辨率(多尺度注意模块[图4中的蓝框])
多尺度粗分割XS按公式3所示顺序聚合,得到细分割特征X。
在这里插入图片描述
采用OCR Head来预测最终的语义分割输出X

对于双分辨率训练,我们遵循比例因子r为r=0.5和r=1.0
在这里插入图片描述
总体目标函数
最终的语义分割预测X和标签Y的损失:Lce是交叉熵损失。I代表互信息,b是批大小,c是类。对于λ,我们使用0.5
在这里插入图片描述
我们利用KL散度(公式2)得到方程中的辅助损耗Ldecoder
在这里插入图片描述
总损失
在这里插入图片描述

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

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

相关文章

华为OD机试真题(Java),计算最大乘积(100%通过+复盘思路)

一、题目描述 给定一个元素类型为小写字符串的数组&#xff0c;请计算两个没有相同字符的元素长度乘积的最大值&#xff0c; 如果没有符合条件的两个元素&#xff0c;返回0。 二、输入描述 输入为一个半角逗号分隔的小写字符串的数组&#xff0c;2 < 数组长度<100&am…

李志飞 All in AGI,出门问问大模型来了!

作者 | 唐小引 头图 | 由作者使用出门问问言之画生成 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 大模型进入百模大战唯快不破之时&#xff0c;矢志 Build AGI and make AGI accessible 的李志飞的产品比要组公司拉团队的王小川来得还更快些。 北京时间 4 月…

【C】Array

系列连载 【python / C / C】 参考 《C语言程序设计&#xff08;第四版&#xff09;谭浩强》【C语言】C语言视频教程《郝斌 C 语言自学教程》 文章目录 为什么需要数组数组的分类一维数组二维数组多维数组 #include<stdio.h>int main(){int a[5] { 1, 2, 3, 4, 5 };f…

自学Android开发至少要学到什么程度才可以去面试

前不久&#xff0c;有位网友私信找到我&#xff0c;说自己自学Android已经有两个月左右了&#xff0c;每天至少学习了五个小时&#xff0c;基本都是在网上找视频看跟着做笔记学的&#xff0c;然后就问我&#xff0c;说想这样学&#xff0c;至少需要学到什么程度才可以出去找工作…

Netty Jemalloc4算法-核心数据结构图示

Netty 从4.1.52版本开始&#xff0c;其内存分配算法&#xff0c;从jemalloc3 切换到了 jemalloc4。本文给出该算法涉及的核心数据结构图示&#xff1a; 想要看懂上图, 要点如下&#xff1a; 1. 小于等于16777216字节的空间&#xff0c;从chunk(一个16M的字节数组)中分配&#…

消息队列的选型

目录 消息队列的比较&#xff1a; kafka的架构&#xff1a; kafka为什么可以做到这么高的吞吐量&#xff1a; kafka分区类型&#xff1a; 请看下篇文章:生产者 ACK的配置 消息队列的比较&#xff1a; 消息队列的产品有很多中比如&#xff1a;React MQ 、Kafka等。 为什么…

一文速学数模-季节性时序预测SARIMA模型详解+Python实现

目录 前言 一、季节时间序列模型概述 二、SARIMA模型定义 三.SARIMA模型算法原理 1.季节差分&#xff1a;消除季节单位根 2.ARIMA模型 1.自回归(AR) 2.差分(I) 3.移动平均(MA) 4.ARIMA 四.SARIMA模型Python实现 1.数据预处理 季节性分析 ADF检验 序列平稳化 2.模…

C语言学习分享(第四次)------分支和循环语句

分支和循环语句 1. 前言2. 什么是语句?3. 分支语句(选择结构)3.1 if语句3.11 代码块{}的作用3.12 悬空else3.13 练习 3.2 switch语句3.21 在switch语句中的 break3.22 switch语句中的default子句3.23 练习 4. 循环语句4.1 while循环4.11 while循环中的break4.12 while循环中的…

DNS服务器配置与使用【CentOS】

从本质上说&#xff0c;DNS是一个分布数据库&#xff0c;是一个树形结构&#xff08;不是网状&#xff09;——层次结构 DNS查找过程就是 回溯的过程&#xff08;递归、迭代&#xff09; www.xxx.edu.cn&#xff08;属于四层结构&#xff09; 查询DNS&#xff1a;域名到IP地址的…

Mysql 学习(五)InnDB 存储引擎-B+树索引的使用

基础知识 了解了表索引的底层是B树结构&#xff0c;我们也要学会如何将这个结构的优势发挥出来&#xff0c;我们先来回顾上一节的重点&#xff0c;也就是总结一下B树的特点索引对应的是一棵B树&#xff0c;而B树对应的很多层&#xff0c;每一层存储的数据对应的是下一层节点的…

使用VS2022打包C#项目生成setup文件并部署

首先安装工具 新建Setup项目 先将\bin\Debug下的生成文件添加到里面 添加文件夹将我们需要的文件放入 添加项目输出 在用户桌面添加快捷方式 简单的安装 其实右键项目》生成&#xff0c;然后就在debug这个目录下 下一步下一步就可以了 安装好桌面就有了 添加卸载…

如何把较大的word文档压缩变小,3个高效处理法

在日常工作和学习中&#xff0c;我们经常使用word文档来创建和编辑文件。由于Word文档提供了创建专业和精美文档的便捷工具&#xff0c;并且能够节省用户大量的时间&#xff0c;因此是用户使用频率最高的文字处理程序之一。然而&#xff0c;一些较大的Word文档会占用大量存储空…

【JAVA程序设计】(C00129)基于Springboot+Vue前后端分离的在线考试管理系统

基于SpringbootVue前后端分离的在线考试管理系统 项目简介项目获取开发环境项目技术运行截图 项目简介 基于Springbootvue开发的前后端分离的学生考试系统为三个角色&#xff1a;系统管理员、教师、学生 管理员角色包含以下功能&#xff1a; 题库管理、试题管理、考试管理、阅…

太阳能电池IV测试软件的主要功能,太阳能电池特性测试

太阳能电池测试软件是一种专门用于测试太阳能电池的软件。太阳能电池是一种能够将太阳能转化为电能的装置&#xff0c;它的性能直接影响到太阳能电池发电系统的效率和稳定性。因此&#xff0c;太阳能电池测试软件的开发和使用对于太阳能电池行业的发展具有非常重要的意义。 一、…

[ARM+Linux] 基于全志h616外设开发笔记

修改用户密码 配置网络 nmcli dev wifi 命令扫描周围WIFI热点 nmcli dev wifi connect xxx password xxx 命令连接WiFi 查看ip地址的指令&#xff1a; ifconfig ip addr show wlan0 SSH登录 这是企业开发调试必用方式&#xff0c;比串口来说不用接线&#xff0c;前提是接入网络…

手把手带你了解《线程池》

文章目录 线程池的概念池的目的线程池的优势为什么从池子里拿线程更高效&#xff1f;构造方法参数讲解线程拒绝策略模拟实现线程池一个线程池设置多少线程合适&#xff1f; 线程池的概念 线程池&#xff1a;提前把线程准备好&#xff0c;创建线程不是直接从系统申请&#xff0…

【linux】——日志分析

文章目录 1. 日志文件1.1 日志文件的分类1.2 日志文件保存位置1.2.1 内核及系统日志1.2.2 日志消息的级别1.2.3 日志记录的一般格式1.2.4 用户日志分析 程序日志分析日志管理策略 远程收集日志 1. 日志文件 1.1 日志文件的分类 ● 日志文件是用于记录Linux系统中各种运行消息的…

Flutter PC桌面端 控制应用尺寸是否允许放大缩小

一、需求 桌面端中&#xff0c;登录、注册、找回密码页面不允许用户手动放大缩小&#xff0c;主页面允许 二、插件 window_manager 使用教程请参照这篇博客&#xff1a;Flutter桌面端开发——window_manager插件的使用 题外话&#xff1a; 之前使用的是bitsdojo_window插件…

202303-第四周-山川软件产品资讯

山川软件愿为您提供最优质的服务。 您的每一个疑问都会被认真对待&#xff0c;您的每一个建议都将都会仔细思考。 我们希望人人都能分析大数据&#xff0c;人人都能搭建应用。 因此我们将不断完善DEMO、文档、以及视频&#xff0c;期望能在最大程度上快速帮助用户快速解决问…

3、Typescript中补充的六个类型

1、元组 元组可以看做是数组的拓展&#xff0c;它表示已知元素数量和类型的数组。确切地说&#xff0c;是已知数组中每一个位置上的元素的 类型&#xff0c;来看例子&#xff1a; let tuple: [string, number, boolean]; tuple ["a", 2, false]; tuple [2, "…