点云分割总结

news2024/11/12 17:15:17

点云分割总结

  • point transformer
    • background 标量自注意力和向量自注意力(可参考论文)
      • 标量自注意力
      • 向量注意力
    • Point Transformer Layer
    • 下采样
    • 上采样
    • 整体结构
  • point transformer v2
    • group vector attention
    • Position Encoding Multipler
    • Partition-based Pooling分区池化
  • Point Transformer V3
    • 点云序列化
    • 条件位置编码
  • OneFormer3D

point transformer

point transformer和上面介绍的pointNet属于一个流派,基于点对点云进行处理,这种结构仅能用于分类和分割任务,不能用于目标检测。
自注意力机制适合处理点云的原因:

  • 排列不变性:3D点云是无序的,即点的顺序不应影响最终的处理结果。自注意力机制天然具有排列不变性,因为它通过对所有点对的关系进行建模来处理输入,而不依赖于任何特定的输入顺序。
  • 捕捉全局上下文:点云数据通常覆盖了3D空间中的对象或场景,理解这些数据需要捕捉点之间复杂的空间关系。自注意力机制能够有效地捕捉这些关系,因为它为每对点赋予一个注意力权重,这反映了它们之间的相对重要性。

background 标量自注意力和向量自注意力(可参考论文)

标量自注意力

矩阵形势的公式如下:
在这里插入图片描述

self attention中QKV同源,都是同一个输入经过一个MLP得到的,cross attention中,KV同源,Q非同源
真正的原理公式如下:
在这里插入图片描述
其中,φ、ψ、α都是线性变换矩阵(这里可能不是矩阵) linear projections or MLPs,ρ是softmax函数。δ是位置编码信息
Xi是第i个位置的特征向量,Xj是第j个位置的特征向量,Yi是第i个位置的输出。
∑也代表了多次查询,去输入矩阵的每个位置都查询,获得加权值,最后相加。
获得第i个位置的输出向量,需要用第i个位置的输入向量,分别去每个位置查询,这就是query的意义!!!?
变量注意力

向量注意力

公式如下:
在这里插入图片描述
γ、α是线性变换,β是向量关系函数(例如相减等)。⊙是向量点乘。
上述的公式也揭示了,向量注意力和标量注意力的区别,标量注意力中,第i个位置到第j个位置查询,这个(i,j)的权重是一个数(标量),而向量注意力中,向量关系函数(比如相减),能够保证这个权重是一个向量,这样Xj中的每个元素都能得到一个权重,因此这里也从标量的普通相乘变成了⊙向量相乘!

Point Transformer Layer

点云中每个点都和周围最近的N个点进行attention,这里是向量自注意力公式,向量关系函数是相减,所不同的是value位置也加上了位置编码信息,这是试验所得,作者发现这里加上后效果会有所提升。
在这里插入图片描述
点云中的每个位置的输入向量,本身就是坐标信息,这里的位置编码,就是对应位置的向量相减,计算位置偏置,再经过一个θ(MLP),训练得到。
在这里插入图片描述

Χ(i)是与x_i临近的N个点的集合,也就是要与临近的N个点进行特征融合,上式中的几个函数主要是mlp或linear,如下图所示。
在这里插入图片描述

下采样

图像中上采样下采样一般都是w h方向的,点云的上采样、下采样是针对point,本质相同,实现却无法像规则化的图像特征一样方便。
在这里插入图片描述
流程如下:

  • 使用farthest point sample进行点数下采样(论文汇总N -> N/4)fps算法介绍
  • 对下采样后的每个点,使用KNN找到临近的n个点(论文16),然后对这16个点的特征进行mlp和local max pooling,最后得到的还是N/4点的特征

上采样

在这里插入图片描述
其中input1为上一个模块的输出,input2为下采样模块中相等维度(Unet结构的下采样过程中对应的层)的输出,对于input1和input2,首先经过一个简单的MLP,包括一个线性层以及batch normalization,激活函数仍然为ReLU。之后对于input1执行三线性插值,得到输入点集P1的超点集P2,从而将点集的分辨率提升。之后与input2做简单的skap connection,即残差连接之后输出。经过四个上采样模块,将输出恢复至N个特征向量

整体结构

结构如下图,可以进行分类或分割,上图分割,下图分类。
分割模型,整体类似于unet的对称结构,先上采样,然后进行下采样,与cnn不同,这里上下采样所采用的结构分别是transition up和transition down。
在这里插入图片描述

point transformer v2

相比v1主要优化的地方有group vector attention、Position Encoding Multipler和Partition-based Pooling三点。

group vector attention

标量注意力中,矩阵Value中每一个向量的所有通道的权重值是相同的,在向量注意力中,矩阵Value中每一个向量的所有通道的权重值是不同的,这样就导致了参数的增加。标量注意力的方法虽然参数少,但是可能无法获得向量中通道之间的关系,向量注意力的方法却可以关注到向量中通道之间的关系,调整每个通道的权重,但随之而来的问题就是参数数量的大量增加。

为了避免上述问题,作者采用了分组的方法,将Value矩阵中每个向量的通道均匀的分成 g 组(1 ≤ g ≤ c),并且在每组内共享同一个权重参数,用于解决模型性能和参数数量的问题。这样不仅减少了参数数量,提高了模型的效率而且也保留着向量注意力的长处。这里本质上是两者的妥协,类似于group卷积。

Position Encoding Multipler

v2中attention采用了向量权重分段的方式,在一定程度上限制了attention的能力,因此这里加强了位置编码的力量。
v1中采用的公式
在这里插入图片描述
v2公式如下,可以看到v2中的位置编码不仅只充当一个bias的角色,δmul作为一个可学习的乘性因子,和关系函数得到的权重向量进行相乘,加强位置编码力量。
在这里插入图片描述

Partition-based Pooling分区池化

在这里插入图片描述
下采样:
采用fps进行采样,采样点再用knn去聚合邻域点的特征,knn查询到的点由于不是空间对齐的,可能出现不同的采样点取到同一个邻域点。为了解决这个问题,提出了按grid采样的方法。如上图所示,通过划分不重合的网格,每个网络内点通过均值得到位置,max pooling取特征信息。(把每个点的特征分成了两部分?位置和特征)
在这里插入图片描述
上采样:
直接对同一个网格内的点进行特征复制
在这里插入图片描述

Point Transformer V3

PTv3的设计理念是优先考虑简单性和效率,而非过度追求复杂的设计。通过优化网络结构和参数,PTv3在保持强大性能的同时,降低了计算复杂度和内存消耗。这种设计使得PTv3在推理阶段的速度更快,更易于在广泛的硬件设备上部署和运行。

与前任PTv2相比,PTv3的处理速度提高了3倍,内存效率提高了10倍。这一突破性的进步得益于PTv3对点云序列化方法的创新应用。PTv3采用了一种为串行点云量身定制的精简方法,取代了更复杂的注意力补丁交互机制,从而显著提升了处理速度并降低了内存消耗。

点云序列化

PTv3通过引入空间填充曲线(如Z-order曲线和Hilbert曲线)对点云进行序列化。这种序列化方法能够在保持空间近邻性的同时,将无结构的点云数据转换为结构化的序列。这种转换使得PTv3能够更高效地处理点云数据,并提取出有用的信息。

条件位置编码

为了进一步提高性能,PTv3引入了条件位置编码(CPE)来替代传统的相对位置编码(RPE)。CPE通过基于八叉树的深度卷积实现,不仅简化了位置编码的计算过程,还提高了模型的性能。此外,PTv3还提出了一种增强的条件位置编码(xCPE),通过在注意力层之前准备具有跳过连接的稀疏卷积层来进一步提升性能。

OneFormer3D

2024cvpr智驾相关

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

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

相关文章

智象未来(HiDream.ai):从科技创新启程,绘制智能未来新篇章

在人工智能领域飞速演进的当下,智象未来(HiDream.ai)作为全球领先的多模态生成式人工智能技术供应商,正以其独树一帜的视觉多模态大模型及创新应用,推动行业趋势的前进。智象未来(HiDream.ai)自…

CSP/信奥赛C++刷题训练:经典例题 - 栈(2):洛谷P1981 :[NOIP2013 普及组] 表达式求值

CSP/信奥赛C刷题训练:经典例题 - 栈(2):洛谷P1981 :[NOIP2013 普及组] 表达式求值 题目背景 NOIP2013 普及组 T2 题目描述 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。 输入格式 …

LVGL加入外围字库

一、首先lvgl是有自带字库的 lvgl/src/font 如下图 二、但如果这个字库不能满足我们的需求我们就要外建字库。 1、字库生成软件LVGL官网,字体转换器 — LVGL如下图: 最后按“提交”就可以看到有一个字体被下载到你电脑里。他是以.c文件的型式&#xff0…

创新引领,模块化微电网重塑能源格局

根据QYResearch调研团队最新发布的《全球模块化微电网市场报告2023-2029》显示,预计到2029年,全球模块化微电网市场的规模将扩大至33.1亿美元,且在未来几年内,其年复合增长率(CAGR)将达到8.8%。 如下图所示…

FPGA 第4讲 初识Verilog HDL

时间:2024.11.9 一、学习内容 1.Verilog HDL简介 1.1语言简介 Verilog HDL是一种硬件描述语言,以文本的形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能…

【51单片机】LED点阵屏 原理 + 使用

学习使用的开发板:STC89C52RC/LE52RC 编程软件:Keil5 烧录软件:stc-isp 开发板实图: 文章目录 LED点阵屏显示原理74HC595 编码LED点阵屏显示笑脸LED点阵屏显示动画 LED点阵屏 点阵屏在开发板的右上角,注意使用前需要…

Chrome扩展是程序员做独立开发的绝佳入场机会

一、开发成本低,难度低 简便灵活:相比开发移动应用,浏览器扩展的开发过程更加简便灵活,更适合初学者。省时省力:通过扩展,你可以修改现有网站的功能,无需从零开始搭建应用,大大节省…

记录一下最近遇到的两个问题

问题1 网友问:一个数据同步的程序之前运行正常,突然数据有问题了,俺的回答是退出杀毒软件 问题是很快解决了,但是网友后来说,客户觉得程序很不稳定。俺不清楚这算不算背锅。 问题2 今天下午,调试着程序蓝…

30.1 时序数据库TSDB的典型特点

本节重点介绍 : db-ranking网站对db进行排名时序数据特点时序数据库特点时序数据库遇到的挑战开源时间序列数据库 db-ranking 一个神奇的网站 https://db-engines.com/en/ranking 时序数据ranking https://db-engines.com/en/ranking/timeseriesdbms 排名方法 https://db-en…

Linux SSH私钥认证结合cpolar内网穿透安全高效远程登录指南

文章目录 前言1. Linux 生成SSH秘钥对2. 修改SSH服务配置文件3. 客户端秘钥文件设置4. 本地SSH私钥连接测试5. Linux安装Cpolar工具6. 配置SSHTCP公网地址7. 远程SSH私钥连接测试8. 固定SSH公网地址9. 固定SSH地址测试 前言 开发人员在工作中经常需要远程访问服务器和数据中心…

vscode摸鱼学习插件开发

不知道大家在摸鱼的时候,会不会想要学习? 或者有没有考公人,下班要学习的? 上班时间摸鱼,下班时间不够学习? 为此,我决定开发一个vscode插件,来刷粉笔题 粉笔插件名称:…

深入浅出WebSocket(实践聊天室demo)

文章目录 什么是WebSocket?WebSocket连接过程WebSocket与Http的区别重连机制完整代码使用方法心跳机制实现聊天室demo(基于Socket.io)参考文章、视频小广告~什么是WebSocket? WebSocket 是一种在单个TCP连接上进行全双工通信的协议(计算机网络应用层的协议) 在 WebSocket A…

[ Linux 命令基础 7 ] Linux 命令详解-磁盘管理相关命令

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

ElasticSearch 添加IK分词器

ElasticSearch 添加IK分词器 前言一、IK分词器的算法二、Ik分词器的下载安装(Winows 版本)三、Ik分词器的下载安装(Linux 版本)四、验证测试(postman工具)测试 ik_smart 分词算法测试 ik_max_word 分词算法…

aws(学习笔记第十一课) 使用AWS的EFS,以及AWS Storage Gateway

aws(学习笔记第十一课) 使用AWS的EFS和AWSStorage Gateway 学习内容: 使用AWS的EFS使用AWS Storage Gateway 1. 使用AWS的EFS 什么是EFS EFS是 Elastic File System的缩写。前面练习的实例存储和EBS都是同时只能一个EC2实例进行挂载,不能实现多个EC2实…

Diffusion Policy——斯坦福刷盘机器人UMI所用的扩散策略(含Diff-Control、ControlNet详解)

前言 本文一开始是属于此文《UMI——斯坦福刷盘机器人:从手持夹持器到动作预测Diffusion Policy(含代码解读)》的第三部分,考虑后Diffusion Policy的重要性很高,加之后续还有一系列基于其的改进工作 故独立成本文,且把原属于另一…

计算机毕业设计 | SpringBoot慈善公益平台 爱心互助活动发布管理系统(附源码)

1,项目介绍 爱慈善公益平台(love-charity)是一个基于 SpringBoot 开发的标准 Java Web 项目。整体页面非常的简约大气,项目的完整度较高,是一个偏向公益论坛的系统。非常适合刚刚接触学习 SpringBoot 的技术小白学习&…

【深入浅出】之Linux进程(二)

📃博客主页: 小镇敲码人 💚代码仓库,欢迎访问 🚀 欢迎关注:👍点赞 👂🏽留言 😍收藏 🌏 任尔江湖满血骨,我自踏雪寻梅香。 万千浮云遮碧…

bert-base-chinese模型使用教程

向量编码和向量相似度展示 import torch from transformers import BertTokenizer, BertModel import numpy as npmodel_name "C:/Users/Administrator.DESKTOP-TPJL4TC/.cache/modelscope/hub/tiansz/bert-base-chinese"sentences [春眠不觉晓, 大梦谁先觉, 浓睡…

Qt/C++ 海康SDK开发示例Demo

*** 工业相机在机器视觉中起到关键作用,本文基于海康 SDK 详细解读了设备连接与控制的各个步骤。内容涵盖设备枚举、句柄创建、图像采集回调以及设备异常处理,帮助开发者快速理解如何通过代码控制相机,实时采集并处理图像数据。*** 1. 搜索并…