Rethinking Semantic Segmentation: A Prototype View 2022CVPR Oral

流行的语义分割方案的掩码解码策略(基于参数softmax或基于像素查询)视为可学习的类原型。本研究揭示了这种参数分割策略的几个局限性,并提出了一种基于不可学习原型的非参数替代方案。与之前的方法以完全参数化的方式为每个类学习单个权重/查询向量不同,我们的模型将每个类表示为一组、不可学习的原型,仅依赖于该类中几个训练像素的平均特征。这允许我们的模型通过优化嵌入像素和锚定原型之间的排列来直接塑造像素嵌入空间。它能够处理任意数量的类,具有恒定数量的可学习参数。

图1所示。不同的语义分割:(a-b)参数与(c)非参数。无论是使用(a)参数softmax还是(b)查询向量进行掩码解码,都可以被视为基于可学习原型的方法,以完全参数化的方式学习类原型。我们提出了一种非参数方案(c),该方案直接选择嵌入像素的子簇中心作为原型,并通过非参数最接近原型检索实现全像素预测。

文章主旨:

基于参数化范式的可学习原型的局限性是什么?如何解决这些限制?

三个局限性:首先,通常每个类只学习一个原型,不足以描述丰富的类内方差。其次,要将H×W×D特征张量映射到H×W×C掩码,至少需要D×C个参数进行原型学习。这损害了概括性,尤其是在词汇量大的情况下;例如,如果有800个类,D= 512,那么我们需要0.4M个可学习的原型参数。第三,交叉熵损失只优化类内和类间距离的相对关系,像素和原型之间的实际距离,即类内紧凑性,被忽略。

我们的模型有三个优点:首先,每个类都由一组原型抽象出来,很好地捕获了类的特征和类内方差。由于原型的含义清晰,可解释性也得到了增强——每个像素的预测可以直观地理解为其在嵌入空间中最近的类中心的参考。其次,由于非参数性质,提高了广义性。由于可学习的原型参数的数量不再局限于类的数量(即0 vs D×C),因此可以有效地处理大词汇的语义分割。第三,通过原型锚定的度量学习,将像素嵌入空间塑造成良好的结构,最终有利于分割预测。

基于原型的分类

设{pm}为代表其对应类{C}的一组原型,对于数据样本i,通过比较i与{pm}进行预测:

式中i和{pm}为数据样本和原型在特征空间中的嵌入,<. .>代表距离度量,通常设置为l2距离,但也可以应用其他接近度。

基于不可学习原型的非参数语义分割

首先采用一个编码器网络φ将输入图像h×w×3映射到H×W×D。然后引用了一组不可学习的原型,即{pc,k},它们完全基于类数据的子中心。每个类C由K个原型{pc,k}表示,原型pc,k确定为c类训练像素样本在嵌入空间φ中第K个子聚类的中心。这样,原型就可以在不引入φ之外的额外可学习参数的情况下有效地捕获相应类的特征属性。最终,每个像素i的类别预测是通过winner-take-all的分类来实现的:

式中,i表示像素i的l2归一化嵌入,距离测度<>定义为负余弦相似度,即<i,p>=−iTP(因为已经归一化,所以余弦相似度直接是两个向量点积

我们首先定义像素i在C类上的概率分布:

像素级距离si,c∈[−1;1]计算为类c到最近原型的距离。给定每个像素的groundtruth类i,即ci,交叉熵损失可以用于训练:

上式可以看作是将像素i推得更靠近其对应类的最近原型(而不是更靠近其对应类,仔细体会这句话),并且远离其他不相关类的接近原型。然而,仅仅采用这样的培训目标是不够的,原因有二(很值得学习与思考)。首先,式子只考虑像素-类的距离,而没有处理类像素-原型的关系。例如,对于判别表示学习,期望像素i进一步靠近类ci的某个原型(即特别适合的模式),并且远离类ci的其他原型(即其他不相关但在类内的模式)。其次,由于像素-类之间的距离是在所有类之间归一化的,因此交叉熵只优化了类内和类间距离之间的相对关系,而不是直接正则化像素与类之间的余弦距离。例如,当像素i的类内距离相对小于其他类间距离时,得到的惩罚较小,但类内距离可能仍然较大。

有点抽象,大白话就是1交叉熵没有考虑和proto之间的关系,2只保证了类间的分散,没有保证类内的紧凑

类内在线聚类策略+两个额外的训练目标

我们采用在线聚类方法进行原型选择和分配:将同一类中的像素样本分配给属于该类的原型,然后根据分配更新原型。在线聚类使我们的方法可扩展到大量数据,而不是离线聚类,需要在整个数据集上进行多次特征计算。

我们的目标是将N个像素i映射到c类的K个原型。我们将这个像素到原型的映射表示为Lc:K×N,其优化是通过最大化像素嵌入Xc:D×N和原型pc,k :D×K之间的相似性来实现的:

聚类是对每个类别单独进行的处理,前两个约束保证每个c类内的像素点只能匹配到一个prototype,第三个约束是鼓励所有的像素点均匀匹配到各个prototype,避免许多个像素点几乎都匹配到同一个prototype上了,强制每个原型在批次中平均至少被选择N/K次。

设计的Lppc损失则是在同一个类内,不同prototype之间的分散(其实是原型之间的交叉熵);Lppd损失着眼于同一个簇内,像素点与prototype的紧凑性优化.

对于提取特征的网络则还是常规SGD更新。Prototype是不可学习的,采用的动量更新的方式,在每个iteration中,将同属于每个prototype的所有像素的特征做一个平均,然后将它更新到所处的prototype上。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

realsense无法连接,xioctl(VIDIOC_S_FMT) failed, errno=5

开发环境&#xff1a; 虚拟机VMware Pro17下Ubuntu22.04 ROS2 humble 过程 使用realsense的sdk封装&#xff0c;然后封成ROS节点&#xff0c;启动失败 报错 xioctl(VIDIOC_S_FMT) failed, errno5 解决方法 不用虚拟机就好了

【机器学习】高斯混合模型(Gaussian Mixture Models, GMM)深度解析

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 高斯混合模型&#xff08;Gaussian Mixture Models, GMM&#xff09;深度解析引…

智慧法务引领:构筑数字化法治核心,塑造未来企业竞争力

在全球化及信息化时代背景下&#xff0c;企业面临的法律环境越来越复杂&#xff0c;法治数字化成为企业维护合法权益、提升市场竞争力的必然选择。智慧法务管理系统作为推动企业法治数字化转型的重要工具&#xff0c;不仅提高了法律服务效率&#xff0c;而且加强了企业的法律风…

第二证券:近300亿资金抄底,低估值+高增长“错杀”股名单来了,仅11只

成绩表现优质公司或存在“错杀”的状况。 头部宽基ETF成交额继续放量&#xff0c;近300亿资金抄底 6月21日&#xff0c;上证指数跌破3000点后&#xff0c;商场谨慎情绪延伸&#xff0c;成交量继续走低&#xff0c;本周4个交易日均缺乏7000亿元。 关于3000点以下的地量行情&a…

公司内部培训资料!制氢变换器技术汇总 最新制氢技术方案

网盘 https://pan.baidu.com/s/1UE_d_dGcxxltII2lMg3I4w?pwdyyt3 制氢的电源系统、制氢的装置及制氢的方法.pdf 功率变换器及控制方法.pdf 单级隔离双向AC-DC变换器拓扑结构及其控制方法.pdf 基于耦合电感的高增益变换器.pdf 多端口输入非隔离型直流变换器及其控制方法.pdf 大…

pbootcms表单留言成功后,如何转发到指定的邮箱呢​

一般按照提示的填写完整&#xff0c;然后发送测试邮件提示ok那就可以了&#xff0c;邮箱授权码根据自己的邮箱自行获取即可。

【perl】脚本编程的一些坑案例

引言 记录自己跳进的【perl】编程小坑&#xff0c;以己为鉴。 1、eq $str1 "12345\n"; $str2 "12345"; if ($str1 eq $str2) { print "OK" } 上述代码不会打印 OK。特别在读文件 &#xff0c;匹配字符串时容易出BUG。 案例说明&#xff1a; 有…

不使用AMap.DistrictSearch,通过poi数据绘制省市县区块

个人申请高德地图key时无法使用AMap.DistrictSearch&#xff0c;可以通过poi数据绘制省市县区块 1.进入POI数据网站找到需要的省市县&#xff0c;下载对应的GeoJson文件 &#xff0c;此处为poi数据网站链接 2.​ 处理geoJson数据&#xff0c;可以直接新建json文件&#xff0c;…

安卓手机数据安全必备,专业文件恢复软件的优势,1篇文章告诉你

在数字时代&#xff0c;手机数据安全已成为我们关注的焦点。手机中存储着大量个人和重要信息&#xff0c;一旦丢失或被误删&#xff0c;后果不堪设想。为了保障数据安全&#xff0c;文件恢复软件应运而生。这些工具具备强大的数据恢复功能&#xff0c;能够帮助我们找回误删的文…

备份和还原

stai和dnta snat&#xff1a;源地址转换 内网---外网 内网ip转换成可以访问外网的ip 内网的多个主机可以使用一个有效的公网ip地址访问外部网络 DNAT&#xff1a;目的地址转发 外部用户&#xff0c;可以通过一个公网地址访问服务内部的私网服务。 私网的ip和公网ip做一个…

2024软件设计师笔记之考点版(一考就过):40-50

软件设计师之一考就过:成绩版 考点40:排序算法(必须记住:插冒归快堆) 1、直接插入排序(这里以从小到大排序为例) ◆要注意的是,前提条件是前i-1个元素是有序的,第i个元素依次从第i-1个元素往前比较,直到找到一个比第i个元素值小的元素,而后插入,插入位置及其后的…

AI在创造还是毁掉一些东西

今天突然闪现一个念头&#xff0c;AI真的能带来进步吧。AI能个我们带来什么&#xff1f; 突发这个想法的原因是早上乘车的时候看到一个7,8岁的小孩脖子上带了AI学习机。我在想&#xff0c;小孩都通过AI来学习了&#xff0c;还能提升创造吗&#xff1f;这引起了我的担忧。也许AI…

[leetcode]24-game

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:static constexpr int TARGET 24;static constexpr double EPSILON 1e-6;static constexpr int ADD 0, MULTIPLY 1, SUBTRACT 2, DIVIDE 3;bool judgePoint24(vector<int> &nums) {vector&l…

seq2seq原理介绍

视频介绍 seq2seq 一、介绍 Seq2Seq模型&#xff0c;即序列到序列模型&#xff0c;是一种深度学习架构&#xff0c;它能够接收一个序列作为输入&#xff0c;并通过特定的生成方法生成另一个序列作为输出。这种模型的一个关键特点是&#xff0c;输入序列和输出序列的长度可以是…

AI原力觉醒:华硕NUC组团出道,快来Pick属于你的NUC

NUC 家族组团出道&#xff0c;全新的计算体验&#xff0c;重新定义桌面设备。AI加持下&#xff0c;谁最适合你&#xff1f; 颜值担当 NUC 14 Pro 居家必备单品 适用于广大消费者的NUC 14 Pro&#xff0c;不仅颜值在线&#xff0c;更多方位考虑您的日常所需&#xff0c;工作娱…

Steam2024夏季大促开始了吗 Steam2024夏季大促时间

每年的Steam夏季大促活动中&#xff0c;包含独立游戏、3A大作在内的Steam大部分游戏都将在活动中降价销售&#xff0c;而今年的夏促活动力度更大&#xff0c;V 社承诺部分游戏将“打骨折”&#xff0c;让玩家享受 90%-95% 的折扣&#xff0c;虽然目前游戏名单还没公布&#xff…

Spring Boot集成vavr快速入门demo

1.什么是vavr&#xff1f; 初闻vavr&#xff0c;感觉很奇怪&#xff0c;咋这个名字&#xff0c;后面看到它的官网我沉默了&#xff0c;怀疑初创团队付费资讯了UC震惊部如何取名字&#xff0c;好家伙&#xff0c;vavr就是java这四个字倒过来&#xff0c;真的是’颠覆’了java……

音视频基础

音视频基础 一、音视频录制原理二、音视频播放原理三、图像表示RGB-YUVV1.图像基础概念1.1 像素1.2 分辨率1.3 位深1.4 帧率1.5 码率1.6 Stride跨距 2.RGB、YUV深入讲解2.1 RGB2.2 YUV2.2.1 YUV采样表示法2.2.2 YUV数据存储 2.3 RGB和YUV的转换(了解)为什么解码出错显示绿屏&am…

百问网全志D1h开发板投屏功能实现

投屏功能实现 D1系列号称点屏神器&#xff0c;不仅能点屏&#xff0c;还能用于投屏。 源码准备 百问网为 【百问网D1h开发板】提供了投屏功能需要使用的源码&#xff0c;直接git下载即可&#xff1a; git clone https://github.com/DongshanPI/DongshannezhaSTU_DLNA_Scree…

嵌入式Linux系统编程 — 4.3 strcat、strcpy函数拼接与复制字符串

目录 1 字符串拼接 1.1 strcat函数 1.2 strncat函数 1.3 示例程序 2 字符串复制 2.1 strcpy函数 2.2 strncpy函数 2.3 示例程序 1 字符串拼接 1.1 strcat函数 在Linux系统中&#xff0c;strcat 函数是C语言标准库中的一个函数&#xff0c;用于将一个字符串追加到另一…