新方案:从错误中学习,点云分割中的自我规范化层次语义表示

news2024/9/30 1:43:15
前言 LiDAR 语义分割通过直接作用于传感器提供的原始内容来完成细粒度的场景理解而受到关注。最近的解决方案展示了如何使用不同的学习技术来提高模型的性能,而无需更改任何架构或数据集。遵循这一趋势,论文提出了一个从粗到精的设置,该设置从标准模型派生的分类错误 (LEAK) 中学习。

Transformer、目标检测、语义分割交流群

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

计算机视觉入门1v3辅导班

论文:https://arxiv.org/pdf/2301.11145.pdf

论文出发点

目前点云语义分割最先进的解决方案通常建立在自动编码器架构或完全卷积模型之上,其内部结构在很大程度上取决于任务和所处理数据的属性。由于点云的稀疏性和不规则分布,处理LiDAR数据进行语义分割存在一些挑战。现有的架构没有配备自我规范化的类条件策略来进一步改善模型训练,它们在没有细化的情况下学习概念。最近的工作利用身体边缘特征、自我监督的深度估计或伪标签,并且不执行任何从初步的类别条件准确性估计的自适应自我正则化。

在本文中,作者提出了LEAK(Learning from mistakes),一种新颖的从粗到细的学习策略,通过分类错误、类原型和类不平衡自动驱动的训练过程,优化语义分割网络的性能。

主要贡献

(1)本文提出了一个通用的语义分割框架,适用于不同的实验场景;

(2)通过谱聚类检查标准模型的混淆分数来识别宏类别中语义一致的类别划分;

(3)设计了一个层次感知的公平性约束来平衡分类分数,而不考虑每个类的频率或准确性;

(4)计算类条件原型,这些原型在其原型表示周围强制执行特征的正则化约束;

(5)在不同的标准点云和 RGB 语义分割数据集上对本方法进行了基准测试,其性能优于最先进的架构。

方法

整体结构

本文的整体架构如图2所示。首先谱聚类应用于从标准预训练模型推断的混淆矩阵,在类集上获得的层次划分在输出的公平性目标中使用,对由任何现成的分割模型执行的标准监督学习的结果进行分析。然后在微观和宏观层面构建原型。通过这种方式,模型通过采用语义驱动的自正则化方法从错误中学习,并获得相对于标准解决方案的整体改进。

图1. 识别微类(例如,汽车和卡车)的语义宏观社区(例如,车辆),自动分析任何语义分割模型的准确性结果。

图2. LEAK整体结构。

从错误中学习

LEAK 的第一个构建块是基于从错误中学习的相互语义错误分类的自正则化策略的有效核心。采用预训练的标准分割模型来推断验证集的预测,计算类别的混淆矩阵。该矩阵 A 被视为与完整图网络 G 关联的邻接矩阵,其中将不同的类别分配给节点,条件错误概率是边权重。用{ci}, i ∈ [0, m)来标识 G 的节点,其中m是类的总数,用{di,j}, i, j ∈ [0, m),其中i , j分别表示ground truth 和predicted class index。边di,j与将真实类别ci分类到预测类别 cj 的概率相关联。使用此表示通过聚类算法绘制社区中的细分,识别M个聚类,由{Ci}, i ∈ [0, M)定义。

具体来说,这种划分是通过通常用于根据连接节点的边来识别图中节点社区的谱聚类来执行的。邻接矩阵 A 作为输入提供,由对数据集中每对点的相对相似性的定量评估组成。该算法遵循一个迭代过程,该过程利用相似性矩阵的特征值进行降维,并逐步将网络细分为两个集群,直到达到最佳社区数量。该数字是先验估计的,其中最佳簇数对应于局部最小值的数量。在此步骤中找到的社区代表类的宏观分组。图 2 左侧直观地展示了谱聚类算法对图和混淆矩阵带来的影响。

每种颜色对应于属于同一集群(即宏类)的一组节点(即微类)。图 1 左侧的树结构是用这种方法自下而上导出的,并显示了类的层次结构,具体如图3所示。

图3. SemanticKITTI 中类的分层后验类。

功能原型对齐

原型(即类质心)是特征空间中不可学习的向量,代表数据集中出现的每个语义类别,并在监督下的每个训练步骤更新运行平均值。在训练步骤t中,批次B的B个总样本,原型被更新为通用类 c 为:

其中^ϕc为当前 batch B中对应c类的特征向量,kc[t]为之前所有batch中遇到的c类对应的特征向量个数,nc 为当前 batch 中对应c类的特征向量个数批次B。因此,kc[t] = kc[t − 1] + nc 其中 kc[0] = 0。

然后,聚合具有相同语义类c的特征以帮助构建原型Γc。类原型被初始化为Γc[0] = 0 ∀c ∈ [0, m)。使用 l1 范数 || · ||1 作为公制距离。损失函数定义为:

公平加权

为了加强特征原型对齐的正则化效果,引入了一种细心的每类加权方案。该约束源自实验观察,即每个类的点数对该类的分类精度有显着影响。在许多实际应用中,出现频率最低的类别是最关键的类别(例如,汽车场景中的人)。本文提出了一个源自Jain’s fairness指数F的正则化目标,以提供平衡的每类权重。换句话说,这解决了每个宏类中的资源分配问题,考虑属于同一宏类的微类与共享相同资源的用户:

其中 mC是宏类C中(微)类的数量,πc,c表示向量πc中的第c个元素,πc 是类c的平均预测向量,获得如下:

其中 pc是具有真实类别c的通用预测向量,¯nc是当前批次B中标记为c的点数。高公平值表示实体之间的资源分配真正平衡,而低公平值表示资源分配不平衡(图 1 上部)。因此,为了保持类间精度的同质性,设计了一个基于公平性的损失函数,如下所示:

目标函数

训练目标由每个架构(L0)的基本损失函数与LEAK组件给出的附加目标的组合给出。基本损失函数取决于所选架构。它对应于RandLA-Net和RangeNet++的具有逆类权重的标准交叉熵损失,对应于体素特征的 Lovaszsoftmax损失加上点特征的逆类权重的交叉熵损失Cylinder3D中的细化,以及 DeepLabV3的普通交叉熵损失。

LEAK 组件由微观级别 (LPm) 和宏观级别 (LPM) 特征原型对齐目标以及类注意权重约束 (LF) 给出。然后将完整目标计算为:

实验及结果

本文使用三个点云数据集和一个图像数据集对公开可用的基准进行实验,分别是SemanticKITTI、S3DIS、Semantic3D和PascalVOC2012数据集。

图4. 使用或不使用LEAK训练的RandLA-Net的定性结果(最相关的改进用红色圆圈突出显示)。

表1. SemanticKITTI数据集上的每类 IoU。†:为了公平比较,从官方代码库重新训练的模型。粗体表示与基线相比最佳。

表2. 使用 RandLA-Net在S3DIS数据集(6 折交叉验证)上的定量结果。

表3. 使用 RandLA-Net在S3DIS数据集(6 折交叉验证)上的定量结果。

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

【技术文档】《从零搭建pytorch模型教程》122页PDF下载

QQ交流群:444129970。群内有大佬负责解答大家的日常学习、科研、代码问题。

模型部署交流群:732145323。用于计算机视觉方面的模型部署、高性能计算、优化加速、技术学习等方面的交流。

ECCV2022 | 重新思考单阶段3D目标检测中的IoU优化

目标检测模型的评价标准总结

Vision Transformer和MLP-Mixer联系和对比

Visual Attention Network

TensorRT教程(一)初次介绍TensorRT

TensorRT教程(二)TensorRT进阶介绍

从零搭建Pytorch模型教程(一)数据读取

从零搭建Pytorch模型教程(二)搭建网络

从零搭建Pytorch模型教程(三)搭建Transformer网络

从零搭建Pytorch模型教程(四)编写训练过程--参数解析

从零搭建Pytorch模型教程(五)编写训练过程--一些基本的配置

从零搭建Pytorch模型教程(六)编写训练过程和推理过程

从零搭建Pytorch模型教程(七)单机多卡和多机多卡训练

从零搭建pytorch模型教程(八)实践部分(一)微调、冻结网络

从零搭建pytorch模型教程(八)实践部分(二)目标检测数据集格式转换

【技术文档】《从零搭建pytorch模型教程》122页PDF下载

入门必读系列(十五)神经网络不work的原因总结

入门必读系列(十四)CV论文常见英语单词总结

入门必读系列(十三)高效阅读论文的方法

入门必读系列(十二)池化各要点与各方法总结

入门必读系列(十一)Dropout原理解析

入门必读系列(十)warmup及各主流框架实现差异

入门必读系列(九)彻底理解神经网络

入门必读系列(八)优化器的选择

入门必读系列(七)BatchSize对神经网络训练的影响

入门必读系列(六)神经网络中的归一化方法总结

入门必读系列(五)如何选择合适的初始化方法

入门必读系列(四)Transformer模型

入门必读系列(三)轻量化模型

入门必读系列(二)CNN经典模型

入门必读系列(一)欠拟合与过拟合总结

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

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

相关文章

查找与排序 练习题

1、下列排序算法中,▁▁B▁▁ 是稳定的。 A.简单选择排序 B.冒泡排序 C.希尔排序 D.快速排序 解析:稳定排序是每次排序得到的结果是唯一的,不稳定排序得到的结果不唯一。 稳定:冒泡排序、归并排序、基数排序 不稳定&#x…

DolphinSchedule基于事件驱动的高性能并发编程

文章目录前言前置知识异步编程基于时间驱动的异步编程模式(EAP Event-based Asynchronous Pattern )实现EAPDolphinSchedule结合Netty实现Master与Worker之间的高性能处理能力的设计方案设计代码实现总结前言 研究DolphinSchedule的内因在于对调度系统并…

内存访问局部性特征

分享一道360的C语言笔试题。x是一个行列均为1000的二维数组,下面代码运行效率最高的是哪个? 二维数组大家都很熟悉,正常人遍历二维数组都是一行一行来的,为什么很少有人按列去遍历? 这道笔试题其实考察的就是遍历效率…

#车载基础软件——AUTOSAR AP技术形态

车载基础软件——AUTOSAR AP技术形态 我是穿拖鞋的汉子! 今天是2023年2月11日,时间好快,疫情解封已好几个月,生活节奏也在逐渐恢复到三年前的节奏。可能是感觉疫情与自己距离变远了,大家也开始慢慢的不再恐惧! 老规矩分享一段喜欢的文字,避免自己成为高知识低文化的工…

【安全】nginx反向代理+负载均衡上传webshell

目录 一、负载均衡反向代理下上传webshell Ⅰ、环境搭建 ①下载蚁剑,于github获取官方版: ②下载docker&docker-compose ③结合前面启动环境 ④验证 负载均衡下webshell上传 一、负载均衡反向代理下上传webshell 什么是反向代理? 通常的代…

大数据框架之Hadoop:入门(三)Hadoop运行环境搭建(开发重点)

3.1虚拟机环境准备 详见:yiluohan1234/vagrant_bigdata_cluster: 利用virtualbox快速搭建大数据测试环境 (github.com) 单纯只是安装虚拟机的话,注释掉40到115行。按照教程安装即可。 在 /opt 目录下创建 module、 software 文件夹 [roothdp101 ~]# m…

一、Java并发编程之线程、synchronized

黑马课程 文章目录1. Java线程1.1 创建和运行线程方法一:Thread方法二:Runnable(推荐)lambda精简Thread和runnable原理方法三:FutureTask配合Thread1.2 查看进程和线程的方法1.3 线程运行原理栈与栈帧线程上下文切换1.…

1. SpringMVC 简介

文章目录1. SpringMVC 概述2. SpringMVC 入门案例2.1 入门案例2.2 入门案例工作流程3. bean 加载控制4. PostMan 工具1. SpringMVC 概述 SpringMVC 与 Servlet 功能等同,均属于 Web 层开发技术。SpringMVC 是 Spring 框架的一部分。 对于 SpringMVC,主…

Python导入模块的3种方式

很多初学者经常遇到这样的问题,即自定义 Python 模板后,在其它文件中用 import(或 from...import) 语句引入该文件时,Python 解释器同时如下错误:ModuleNotFoundError: No module named 模块名意思是 Pytho…

45.在ROS中实现global planner(1)

前文move_base介绍(4)简单介绍move_base的全局路径规划配置,接下来我们自己实现一个全局的路径规划 1. move_base规划配置 ROS1的move_base可以配置选取不同的global planner和local planner, 默认move_base.cpp#L70中可以看到是…

Vue3电商项目实战-分类模块1【01-顶级类目-面包屑组件-初级、02-顶级类目-面包屑组件-高级】

文章目录01-顶级类目-面包屑组件-初级02-顶级类目-面包屑组件-高级01-顶级类目-面包屑组件-初级 目的: 封装一个简易的面包屑组件,适用于两级场景。 大致步骤: 准备静态的 xtx-bread.vue 组件定义 props 暴露 parentPath parentName 属性&am…

[oeasy]python0081_ANSI序列由来_终端机_VT100_DEC_VT选项_终端控制序列

更多颜色 回忆上次内容 上次 首先了解了RGB颜色设置可以把一些抽象的色彩名字 落实到具体的 RGB颜色 计算机所做的一切 其实就是量化、编码把生活的一切都进行数字化 标准 是ANSI制定的 这个ANSI 又是 怎么来的 呢??🤔 由来 ANSI 听起…

【c++设计模式】——模板方法模式

模板方法模式的定义 定义一个操作中的算法对象的骨架(稳定),而将一些步骤延迟到子类(定义一个虚函数,让子类去实现),template method使得子类可以不改变(复用)一个算法结…

can协议介绍

目录 1 can协议介绍 1.1can协议 1.2 CAN协议特点 2.CAN FD 2.1 CAN FD协议简介 2.2 CAN FD协议特点 3.LIN 3.1 LIN总线简介 3.2 LIN总线特点 4. FlexRay 4.1 FlexRay简介 4.2 FlexRay特点 5. MOST 6.Ethernet 7 总结: 1 can协议介绍 1.1can协议 CAN…

Linux---Linux是什么

Linux 便成立的核心网站: http://www.kernel.org Linux是什么 Linux 就是一套操作系统 Linux 就是核心与系统呼叫接口那两层 软件移植:如果能够参考硬件的功能函数并据以修改你的操作系统程序代码, 那经过改版后的操作系统就能够在另一个硬…

Spring Boot 整合定时任务完成 从0 到1

Java 定时任务学习 定时任务概述 > 定时任务的应用场景非常广泛, 如果说 我们想要在某时某地去尝试的做某件事 就需要用到定时任务来通知我们 ,大家可以看下面例子 如果需要明天 早起,哪我们一般会去定一个闹钟去通知我们, 而在编程中 有许许多多的…

ssm高校功能教室预约系统java idea maven

本网站所实现的是一个高校功能教室预约系统,该系统严格按照需求分析制作相关模块,并利用所学知识尽力完成,但是本人由于学识浅薄,无法真正做到让该程序可以投入市场使用,仅仅简单实现部分功能,希望日后还能…

springboot集成Redis

springboot集成Redis1 windows平台安装Redis2 引入依赖3 修改配置文件4 启动类添加注解5 指定缓存哪个方法6 配置Redis的超时时间小BUG测试对于项目中一些访问量较大的接口,配置上Redis缓存,提升系统运行速度。1 windows平台安装Redis github.com/Micro…

谈一谈API接口开发

做过开发的程序猿,基本都写过接口,写接口不算难事,与接口交互的对象核对好接口的地址、请求参数和响应参数即可,我在作为面试官去面试开发人员的时候,有时候会问这个问题,但相当多的一部分人并没有深入的考…

BERT(NAACL 2019)-NLP预训练大模型论文解读

文章目录摘要算法BERT预训练Masked LMNSPFine-tune BERT实验GLUESQuAD v1.1SQuAD v2.0SWAG消融实验预训练任务影响模型大小影响BERT基于特征的方法结论论文: 《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》github&#xff…