关联分割点云中的实例和语义<论文>

news2024/11/18 3:00:39

题目:Associatively Segmenting Instances and Semantics in Point Clouds
代码:https://github.com/WXinlong/ASIS

文章讨论: Instances Segmentation 和 Semantics Segmentation

实例Instances Segmentation:分辨出每个单独事物,但不知道是否是一类
语义Semantics Segmentation:分辨出不同类事物,但不知道每类事物具体有几个

摘要

3D点云描述真实场景准确直观,在信息丰富的3D场景进行分割各种元素很少。

本文的框架同时分割点云中的实例和语义。作者提出两种方法,使两项任务互相利用,实现双赢。

具体来说,通过学习语义感知的point-level实例嵌入,使实例分割受益于语义分割。同时,将属于同一实例的点的语义特征融合在一起,从而对每个点更准确地进行语义预测。

相关介绍

实例分割和语义分割 相关又冲突。 那么如何联系,如何双赢。

相关:点云可以被解析为点组,其中每个组对应于一类东西或个体实例。
冲突: 实例分割是要是分出同一类物体的不同实例,语义分割是想让同一类物体有同样的标签。
协作点:语义分割识别出不同的类,而不同实例肯定属于不同的类。实例分割将相同的标签赋予一个实例。因为同一个实例必定属于同一个类别。

简单结合

  1. 简单方法1:给出语义标签,在单独的标签基础上跑实例分割。缺点:实力分割很大程度上取决于语义分割的表现。
  2. 简单方法2:给出实例标签,将所有实例分类将预测的类标签赋予该实例的每个点。缺点:不准确的实例预测会严重混淆downstream object classifiers。

解决:端到端框架。
首先引入一个简单的基线来同时分割实例和语义。
基线网络有两个并行分支:一个用于每点语义预测; 另一个输出点级的embeddings实例嵌入
🎈属于同一实例的点的嵌入保持接近不同实例的点的嵌入是分开
🎈直觉是,在语义分割期间,分配给其中一个类别的点是因为包含该点的实例属于该类别。

结论:本文基线方法已经可以获得比最近最先进的方法SGPN 更好的性能,以及更快的训练和推理。 基于这种灵活的基线,将实例分割和语义分割紧密地联系在一起,称为ASIS(关联分段实例和语义)

在这里插入图片描述

 不同类的点之间间距更大。如1中桌子椅子,2中窗户和墙,3中椅子柜子。此外,利用同一实例中点的语义特征进行融合,使每点的语义预测更加准确。语义分割期间一个点会被分配成一个类别,因为包含这个点的实例属于该类别。
该方法对不同的主干网络适用,如PointNet和PointNet++。也可以用于全景分割(Panoptic segmentation).

全景分割与实例分割,语义分割的不同:
对比语义分割,全景分割需要区分不同的 object instances;对于 FCN-based 方法具有挑战性.
对比实例分割,全景分割必须是非重叠的(non-overlapping);对于 region-based 方法具有挑战性.

本文贡献

  • 提出了一种快速有效的简单基线,用于在3D点云上同时进行实例分割和语义分割。
  • 提出了一个新的框架,称为ASIS,将实例分割和语义分割紧密地联系在一起。 具体而言,提出了两种类型的伙伴关系 - 语义意识,例如用于语义分割的分段和实例融合 - 以使这两个任务彼此协作。
  • 通过所提出的ASIS,包含语义感知实例分割实例融合语义分割的模型被端到端地训练,其优于S3DIS数据集上的最先进的3D实例分割方法及三维语义分割任务的重大改进。 此外,在ShapeNet

利用提出的ASIS方法,网络可以学习语义感知的实例嵌套,其中属于不同语义类的点的嵌入通过特征融合进一步自动分离。

实现方法

一个简单基线网络

框架:由共享编码器和两个并行解码器组成。
解码器1:点级语义预测
解码器2:处理实例分段问题

流程:

  1. _{Np}大小的点云经过特征编码器变成特征矩阵:首先提取大小为_{Np}的点云,并通过特征编码器(例如,堆叠的PointNet层)将其编码成特征矩阵。{此共享特征矩阵指的是PointNet体系结构中的局部特征和全局特征的串联,或PointNet ++体系结构的最后一组抽象模块的输出。}
    1. semantic 解码器 将 特征矩阵 解码成 _{Np}×_{Nf} 大小的Semantic语义特征矩阵Fsem,输出语义预测结果Psem:两个并行分支获取特征矩阵,并分别继续进行以下预测。{语义分割分支将共享特征矩阵解码为_{Np}×_{Nf}形语义特征矩阵,然后输出具有_{Np}×_{Nf}形状的语义预测,其中_{Nc}是语义类别的数量。}
  2. instance解码器 将 特征矩阵 解码成 _{Np}×_{Nf} 的instance特征矩阵FINS,并输出大小为Np * NE 的instance预测结果 EINS{Fins用来预测逐点的实例嵌套EINS} ,其中NE表示有多少embedding{除最后一个输出层外,实例分段分支具有相同的体系结构。}
  3. 训练
    语义分段:交叉熵损失
    实例分割:采用前人的成果中的2D图像判别损失函数来监督实例嵌入学习,修改它并使其适用于点云

以前:以前使用的损失是特定于类的:不同语义类的实例嵌入是分开学习的,这意味着应该首先给出语义类。 这种逐步范式高度依赖于语义预测的质量,因为不正确的语义预测将不可避免地导致不正确的实例识别。

本文:采用类不可知实例嵌入学习策略,其中嵌入负责区分不同的实例并且对其类别视而不见。

其中Lvar是让instance的embedding区于平均,Ldist让instance间互相区分,α在实验中设为0.001

在测试期间,使用平均移位聚类在实例嵌入上获得最终实例标签。 我们将同一实例中的点的语义标签的模式分配为其最终类别。 点云实例分割和语义分割基本框架如图3所示。 

ASIS部分

本文从以上基础框架基础上构建新的ASIS模块,实现语义感知实例分割实例融合语义分割。 

  • 语义感知-实例分割
  • 这一步让属于不同类instance的三维点更加疏远,但不影响属于同一类instance的三维点。

点云的语义特征构建了一个新的高级特征空间,其中点根据其类别自然定位。 在该空间中,相同语义类的点位于一起,而不同的类被分开。 本文从语义特征中抽象出语义感知(SA)并将其集成到实例特征中,从而产生语义感知实例特征。 首先,语义特征矩阵F_{SEM}^{'}适用于通过具有批量归一化和ReLU激活函数的点独立完全连接层(FC)作为F SEM的实例特征空间。  F_{SEM}^{'}具有与F_{SEM}相同的形状。 然后,我们将自适应语义特征矩阵F_{SEM}^{'}添加到实例特征矩阵F_{INS}元素,生成语义感知实例特征矩阵F_{SINS}。 该过程可以表述为:

在这种简易且可学习的方式中,属于不同类别实例的点在实例特征空间中被进一步排斥,而相同类别实例很少受到影响。 特征矩阵F_{SINS}用于生成最终实例嵌入。

  • 实例融合-语义分割
  • 这一部分将同一类的Instance融合成Semantic

给定实例嵌入,本文使用K最近邻(kNN)搜索来为实例嵌入空间中的每个点(包括其自身)找到固定数量的相邻点。为了确保属于同一实例的K个采样点,作者根据公式2中使用的边界过滤异常值。如前一节所述,铰接损失项L_{var}通过绘制每个点嵌入来监控实例嵌入学习接近δv距离内的平均嵌入。 kNN搜索的输出是形状为N_{P}*K的索引矩阵。根据索引矩阵,这些点的语义特征(F_{SEM})被分组为N_{P}*K*N_{F}形特征张量,其是语义特征矩阵,其中每个组对应于与其质心点相邻的实例嵌入空间中的局部区域。受基于通道的最大聚合的有效性的启发,每个组的语义特征通过通道方式的最大聚合操作融合在一起,作为质心点的精确语义特征。实例融合(IF)可以如下公式化。对于N_{P}*N_{F}形语义特征矩阵F_{SEM}=[x_{1},,,x-{NP}]\subseteq R^{NF},实例融合语义特征计算如下:

其中[x_{i1},,,,x_{ik}]表示实例嵌入空间中K个相邻点居中点i的语义特征,而Max是以K个向量作为输入并输出新向量的逐元素最大值算子。 在实例融合之后,输出是N_{P}*N_{F}特征矩阵F_{ISEM},最终语义特征将被馈送到最后的语义分类器中。

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

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

相关文章

帮助中心对企业有用吗?要不要做帮助中心页面

对绝大部分企业来说,打造站点帮助中心平台已是当下势不可挡的发展趋势。本文小编将告诉大家企业是否有必要做帮助中心,如何制作帮助中心。 什么是帮助中心: 帮助中心定位:帮助用户更好的解决问题;给新手用户好的第一…

详解c++---模拟实现stack和queue

目录标题 设计模式stack的模拟实现准备工作各种函数的实现 queue的模拟实现准备工作queue的接口实现 deque的介绍为什么会有dequedeque的原理deque的迭代器为什么使用deque 设计模式 设计模式分为两个:迭代器模式和适配器模式 第一个:迭代器模式 迭代器…

vector、deque、list相关知识点

vector erase返回迭代器指向删除元素后的元素insert返回迭代器指插入的元素reserve只给容器底层开指定大小内存空间,并不添加新元素 deque 底层数据结构 动态开辟的二维数组,一维数组从2开始,以2倍方式扩容,每次扩容和&#x…

【STM32CubeMX】F103独立看门狗

前言 本文记录了我学习STM32CubeMX的过程,方便以后回忆。我们使用的开发板是基于STM32F103C6T6的。本章记录了独立看门狗的使用配置。要学习的话,注意流程一说的,省略的内容。 基础 独立看门狗(WWDG)开启后,复位自动开启。独立看…

Linux shell编程 函数

shell函数的定义 function 函数名 {命令序列 } 函数名() {命令序列 } 函数的返回值 return表示退出函数并返回一个退出值,脚本中可以用$?变量显示该值 使用原则 1.函数一退出就取返回值,英文$?变量只会返回执行的最后一条指令的退出状态码 2…

基于Redis的Stream结构作为消息队列,实现异步秒杀下单

文章目录 1 认识消息队列2 基于List实现消息队列3 基于PubSub的消息队列4 基于Stream的消息队列5 基于Stream的消息队列-消费者组6 基于Redis的Stream结构作为消息队列,实现异步秒杀下单 1 认识消息队列 什么是消息队列:字面意思就是存放消息的队列。最…

2.4G无线麦克风无线音频传输模块

模块概述 M01主要是一个2.4G无线音频传输模块,模组RF电路设计配合独有的软件跳频机制,有效提高了RF的抗干扰能力及传输距离。模组内置高性能的音频转换器,支持48K/24bit高品质的音频采样、支持麦克风的主动降噪,实现了无压缩的数字…

设计模式:SOLID原则

单一职责原则 Single Responsibility Principle(SRP) 接口职责应该单一,不要承担过多的职责。 开放封闭原则 Open Closed Principle(OCP) 添加一个新的功能应该是,在已有代码基础上扩展代码(…

mysql——索引,一篇说清!

直观感受——数据准备 建表与插入数据 CREATE TABLE user (uid int(11) NOT NULL AUTO_INCREMENT,name varchar(50) DEFAULT NULL,pwd varchar(50) DEFAULT NULL,create_time datetime DEFAULT NULL,modify_time timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT…

VSCode For Web 深入浅出 -- 插件加载机制

最近我在浏览 VSCode for web 的 repo,在最近更新的一些 commit 中发现了一个新的 VSCode 插件特性支持,名为 webOpener,它的作用是什么呢?又是如何影响插件加载的呢?在这一篇中我们结合 VSCode For Web 的插件加载机制…

大项目准备(2)

目录 中国十大最具发展潜力城市 docker是什么?能介绍一下吗? 中国十大最具发展潜力城市 按照人随产业走、产业决定城市兴衰、规模经济和交通成本等区位因素决定产业布局的基本逻辑,我们在《中国城市发展潜力排名:2022》研究报告…

uniapp和小程序如何分包,详细步骤手把手(图解)

一、小程序分包 每个使用分包小程序必定含有一个主包。所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据开发者的配置进行划分。 在小程序启动时,默认会下载主包并启动主包…

C++学习day--11 程序员必备工具--github

github 的重要性: 网络时代的程序员必备。 github 的作用: 1. 版本管理 2. 多人协作 3. 开源共享 常用方案: gitTortoiseGitgithub [Tortoise ,程序员常称其为小乌龟,小海龟 ] 安装配置步骤 1. 注册 h…

13 KVM虚拟机配置-配置虚拟设备(总线配置)

文章目录 13 KVM虚拟机配置-配置虚拟设备(总线配置)13.1 概述13.2 元素介绍13.3 配置示例 13 KVM虚拟机配置-配置虚拟设备(总线配置) 13.1 概述 总线是计算机各个部件之间进行信息通信的通道。外部设备需要挂载到对应的总线上&a…

MySQL调优系列(四)——执行计划

一、概述 sql语句是有具体的执行过程的,通过查看这个执行过程,可以针对性的优化某一步骤,以加快SQL语句的执行效率。 通过MySQL调优系列(一)——性能监控我们可以知道,有一个查询优化器,查询优…

HTTP第五讲——搭建HTTP实验环境

HTTP简介 HTTP 协议诞生于 30 年前,设计之初的目的是用来传输纯文本数据。但由于形式灵活,搭配URI、HTML 等技术能够把互联网上的资源都联系起来,构成一个复杂的超文本系统,让人们自由地获取信息,所以得到了迅猛发展。…

D. Petya and Array(树状数组 + 前缀和 + 逆序对的思想)

Problem - D - Codeforces Petya 有一个由 n 个整数组成的数组 a。他最近学习了部分和,现在他可以非常快地计算出数组中任何一段元素的和。这个段是一个非空的序列,相邻的元素排在数组中。 现在他想知道他的数组中元素和小于 t 的段的数量。请帮助 Pety…

鸿蒙Hi3861学习九-Huawei LiteOS(互斥锁)

一、简介 互斥锁又被称为互斥型信号量,是一种特殊的二值信号量,用于实现对共享资源的独占式处理。 任意时刻互斥锁的状态只有两种:开锁或闭锁。 当有任务占用公共资源时,互斥锁处于闭锁状态,这个任务获得该互斥锁的使用…

lua | 循环和函数的使用

目录 一、循环与流程控制 循环 流程控制 二、函数 函数 多返回值 可变参数 本文章为笔者学习分享 学习网站:Lua 基本语法 | 菜鸟教程 一、循环与流程控制 循环 lua语言提供了以下几种循环处理方式: 1.while 条件为true时,程序重复…

数据结构(六)—— 二叉树(7)构建二叉树

文章目录 如何使用递归构建二叉树1、创建一颗全新树(题1-5)2、在原有的树上新增东西(题6) 1 106 从 后序 与 中序 遍历序列构造二叉树2 105 从 前序 与 中序 遍历序列构造二叉树3 108 将有序数组转换为二叉搜索树(输入…