EGST:Explicit Geometric Structure Transformer论文解读

目录

一、导言

二、相关工作

1、3D局部描述子

2、点云配准方法

三、EGST模型

1、结构化特征

2、特征提取

3、点云匹配

4、变换估计 

5、损失函数

四、实验 

1、数据集

2、评估指标

3、细节

4、对比实验


一、导言

        该论文提出一种基于增强几何结构特征的点云配准方法EGST(Explicit Geometric Structure Transformer)用于编码显式几何结构。

        (1)EGST构建了三种几何描述子来描述点云内部和外部结构,三种几何描述子:表面法线、差分向量、差分向量之间的夹角。

        (2)Encoder部分使用structure attention来建立两对应点云间的结构一致性

        (3)Decoder部分使用可学习的RPM来提取对应关系,并且在对抗离群点和噪声中保持鲁棒性,用几何结构特征的距离进行初始化,而非空间距离。

        注意:本文没有使用显式Embedding,以及额外的特征注意力模块,如交叉注意力机制。

二、相关工作

1、3D局部描述子

LRF

        LRF(Localized Receptive Field)局部特征子一般表示三维物体表面的局部区域,如局部的几何形状、法向量信息等,可以用来检测具体的物体部分或是整体形状,进而用于物体的识别和分割。一般的用到LRF的算法有:SHOT、RoPS、USC等。

(1)SHOT

        SHOT算法中,根据特征点球邻域内建立局部参考坐标系LRF,对特征点在径向、经度、纬度三个方向进行区域划分,之后对每个区域的法向量夹角余弦值分布情况进行直方图统计(Bilinear interpolation)

(2)RoPS

        RoPS算法中,对于给定的感兴趣点局部进行区域裁剪,并在裁剪区域建立LRF,然后旋转裁剪区域与三个轴Ox,Oy,Oz对齐,并将裁剪区域投影到yz,xz,xy平面,为每个投影区域建立分布矩阵。将每个投影区域离散成L*L个图像,提取更丰富的点云特征,最终目的是对于这些离散的图像区域,来统计其覆盖区域内的点云数据特征,并综合成一个特征描述向量,提高点云数据的表达描述能力。

PPF

        PPF(Point Pair Feature)旋转不变点对特征,在匹配点云时具有旋转不变性,并考虑点对之间的对称性,以实现在旋转角度下的匹配关系。PPF算法中,首先选择一个参考点,并选取一个候选点,计算参考点与候选点间的特征,形成点对特征描述。

其他结构

(1)3DMatch使用截断距离函数,直接从两个点云间提取局部特征,这积累了巨大的参数量。

(2)PPFNet提出增强的PPF,引入严格的旋转不变性,但过分依赖数据,会对噪声和离群点异常敏感。

(3)GeoTransformer提出构建显式的内部几何关系,对其进行编码,由于点云的稀疏性(点与点间没什么太大的关系),引入了大量的位置编码,而这些位置编码是没意义的,缺少了点云的外部表示。

2、点云配准方法

ICP算法

        ICP算法用于两个或多个点云数据集对齐,在ICP算法中,通过迭代计算最小化两个点云间的距离,来优化一个点云到另一个点云间的转换矩阵(R,T)。SVD一般用于计算最佳的变换矩阵,将点云的几何关系转化为代数问题,来优化点云的配准过程,减小对应点间误差(类似线性齐次方程组的最小二乘解)。

基于学习的方法

        基于学习的方法通常分为无对应的方法和基于对应的方法。

        无对应的方法先提取输入点云的全局特征向量然后将变换参数与全局特征向量进行回归,如PointNetLk方法,在小型数据集表现很好,但在大型数据集和复杂场景中表现较差。

        基于对应的方法,在遵循ICP的思想下,建立对应的软分配(Soft assignment),用于处理对应点间的不确定性和模糊性。在传统的点对点对应方法,称为硬分配,而由于实际场景中存在噪声、遮挡,在点云配准中会出现一对多、多对一的映射关系。而使用软分配可以通过引入权重和概率,获得每个点对应的概率分布,以描述点云的模糊对应关系增强鲁棒性。如GeoTransformer。

三、EGST模型

        EGST模型由四个部分构成:结构化特征、特征提取(Encoder)、点云匹配(Decoder)、参数估计。

1、结构化特征

        在原始坐标的基础上建立了三个几何特征子,分别为:差分向量、角度、表面法线。

        对于这一部分的字母注释:

P:模板点云

Q:源点云(对源点云变换R,T得到模板点云)

p_r:中心点,用于收集p_r周围球形区域的点云集\left \{ p_1,p_2,...,p_f \right \}

p_{f}:点云集中的一个点

p_{dis}(p_r,f):差分向量,p_{dis}(p_r,f)=p_r-p_f \in K (三维向量)

p_{ppf}(p_r,f):点对特征 (四维向量)p_{ppf}(p_r,f)=cat(\angle (n_r,p_{dis}(p_r,f)), \angle(n_f,p_{dis}(p_r,f)),\angle(n_r,n_f),||p_{dis}(p_r,f)||_2) 

其中\angle(\cdot _1,\cdot_2)=atan2(||\cdot_1 \times \cdot_2||,(\cdot_1) \cdot (\cdot_2))计算了向量夹角的弧度值

p_{ang}(p_r,f):角度,p_{arg}(p_r,f)=\angle(max R,p_{dis}(p_r,f)) (标量)

其中R=\left \{ d_{rv}=p_v-p_r|p_v \in P,v=1,2,...,N \right \},d_{rv}为全局差分信息(参考向量),P对应全局若干中心点。

D_P:模板点云的组合向量,十一维向量,由上述若干特征组合而成。D_P=cat(p_{xyz}(p_r),p_{dis}(p_r,f),p_{ppf}(p_r,f),p_{ang}(p_r,f)),第一项为坐标(三维向量)

D_Q计算公式与D_P同理。

        最终结构化特征提取出来两个11维向量,包含了点云的内部特征(差分向量、点对特征、坐标)和外部特征(角度)

2、特征提取

        特征提取部分,输入两个11维向量D_QD_P,经结构化Embedding后得到N \times d_e维的向量F_P^eM \times d_e维的向量F_Q^e,然后经过结构注意力机制,得到同样维度的F_P^oF_Q^o

        结构化Embedding:通过结构化特征提取出的内部和外部特征,来作隐式位置编码,替代传统如Geotransformer中的显式几何编码,更好的利用点云中的无序性来构建点云结构的一致性。

        结构注意力机制:在原有的transformer结构中取消了位置编码,并引入了对应的点云,对两点云进行结构一致性关系进行挖掘,在最终的加权求和也多了对应点云侧枝的权重:

        结构注意力机制如下: 

3、点云匹配

        使用可学习的RPM来提取对应关系,使用退火方式的β参数和软分配的α参数来进行软分配,而不是传统ICP算法的硬分配,通过概率分配来提高点云间的模糊性和不确定性,提高系统鲁棒性。

        RPM算法就是将任意一个源点云中的点,建立与模板点云间点的对应关系,并对任意点对赋予0到1的值,并通过最小化,最终收敛到0或1,其中1为对应,0为完全不对应。对应赋值如下:

        经过上述RPM算法工作后得到一个预匹配矩阵M,此时利用可微分的Sinkhorn算法对预匹配矩阵进行交替的行和列的归一化,来尽可能满足双随机矩阵约束条件,即任意一行或一列的元素和为1,保证点云匹配矩阵是完全软分配的。

4、变换估计 

        利用已生成的匹配矩阵来构建伪点对,依照模板点云计算新模板点云,将新模板点云作为源点云,用于损失计算。

5、损失函数

        损失函数由三个部分组成:点匹配变换损失L_{trans}、配准全局对应损失L_{corr}、匹配矩阵匹配损失L_{match}

        L_{trans}:针对于模板点云计算真实值的变换与预测的变换之间的误差关系。

        L_{corr}:计算模板点云相较于源点云之间的误差和源点云相较于模板点云之间的误差

        L_{match}:为了解决离群点问题,计算匹配矩阵的损失作为惩罚项

        总损失L_{total}:其中N为迭代次数。

四、实验 

1、数据集

        使用合成数据集ModelNet40以及真实场景数据集3DMatch和KITTI进行测试。

2、评估指标

        使用均方根误差RMSE、平均绝对误差MAE、相对误差ERROR和其中ERROR(R)计算旋转距离,ERROR(t)计算平移距离。

3、细节

        在不可见物体、不可见类别、高斯噪音相较于SOTA都有较好的提升,部分重叠情况相较于RGM有较好的提升,但GeoTransformer这种依赖显式点云位置编码的效果更优。

4、对比实验

        在结构化特征子、结构注意力机制、大旋转点云的鲁棒性问题上进行对比实验,证明了EGST模型的稳定性。

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

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

相关文章

C语言详解文件操作

目录 什么是文件? 为什么使用文件? 程序文件和数据文件、文本文件和二进制文件 1.程序文件和数据文件 1.1程序文件 1.2数据文件 2.文本文件和二进制文件 文件的打开和关闭(流、标准流、文件指针和文件的打开与关闭) 1.流和标…

有点好玩的python运维脚本

python运维脚本 1. 常用端口扫描2. 文件整理 1. 常用端口扫描 在计算机网络中,端口是一个通信端点,允许不同的进程或服务通过网络连接和交换数据。端口通过数值来标识,并与特定的协议相关联。未采取适当安全措施而保持端口开放,可…

InternLM Xtuner Qlora 微调

Xtuner 简介 XTuner 是由上海人工智能实验室开发的一款低成本大模型训练工具箱。它以高效、灵活和全能的特性,成为轻量化大模型微调的理想选择。借助 XTuner,用户仅需 8GB 显存即可对 InternLM2-7B 模型进行微调,从而定制出独一无二的 AI 助手…

C++~~期末复习题目讲解---lijiajia版本

目录 1.类和对象 (3)创建对象的个数 (3)全局变量,局部变量 (4)构造函数的执行次数 (5)静态动态析构和构造顺序 (6)初始化顺序和声明顺序 &a…

安装systemd-bootchart

要安装systemd-bootchart,你可以按照以下步骤进行: 步骤一:更新软件包列表 首先,打开终端并更新你的软件包列表,以确保你拥有最新的可用软件包信息。运行以下命令: sudo apt update步骤二:安…

Git使用总结(git使用,git实操,git命令和常用指令)

简介:Git是一款代码版本管理工具,可以记录每次提交的代码,防止代码丢失,可实现版本迭代,解决代码冲突,常用的远程Git仓库:Gitee(国内)、GitHub(国外&#xff…

接口请求的六种常见方式详解(get、post、head等)

一.接口请求的六种常见方式: 1、Get 向特定资源发出请求(请求指定页面信息,并返回实体主体) 2、Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建…

封装console

目的 1. 封装console.log , 使得打印更美观方便 2. 同时希望上线后不在打印消耗资源 例图: export const prettyLog () > {const isProduction import.meta.REACT_APP_ENV "prod";const isEmpty (value) > {return value null || val…

Flutter 实现dispose探测控件

文章目录 前言一、什么是dispose探测控件?1、通常情况2、使用dispose探测控件 二、如何实现1、继承StatefulWidget2、定义dipose回调3、定义child4、重载Dispose方法5、build child 三、完整代码四、使用示例1、基本用法2、设置定义数据 总结 前言 开发flutter一般…

Java 期末复习 习题集

💖 单选题 💖 填空题 💖 判断题 💖 程序阅读题 1. 读代码写结果 class A {int m 5;void zengA(int x){m m x;}int jianA(int y){return m - y;} }class B extends A {int m 3;int jianA(int z){return super.jianA(z) m;} …

Chapter 6 Frequency Response of Amplifiers

Chapter 6 Frequency Response of Amplifiers 这一节我们学习单极和差分运放的频率响应. 6.1 General Considerations 我们关心magnitude vs 频率, 因此有低通, 带通, 高通滤波器 6.1.1 Miller Effect Miller’s Theorem 考虑impedance Z1和Z2, X和Y之间增益为Av. Z1 Z/(…

spring 启动顺序

BeanFactoryAware 可在Bean 中获取 BeanFactory 实例 ApplicationContextAware 可在Bean 中获取 ApplicationContext 实例 BeanNameAware 可以在Bean中得到它在IOC容器中的Bean的实例的名字。 ApplicationListener 可监听 ContextRefreshedEvent等。 CommandLineRunner 整…

数据结构与算法笔记:基础篇 - 二叉树基础(下):有了如此高效的散列表,为什么还需要二叉树?

概述 上篇文章,我们学习了树、二叉树及二叉树的遍历,本章来学习一种特殊的二叉树,二叉查找树。二叉查找树最大的特点就是,支持动态数据集合的快速插入、删除、查找操作。 之前说过,散列表也是支持这些操作的&#xf…

盘点2024年5月Sui生态发展,了解Sui近期成长历程!

2024年5月是Sui的第一个生日月,Sui迎来了它的上线一周年纪念日。在过去的一年中Sui在技术进步与创新、生态系统的扩展、社区发展与合作伙伴关系以及重大项目和应用推出方面取得重要进展,展示了其作为下一代区块链平台的潜力。 以下是Sui的近期成长历程集…

QT 信号和槽 通过自定义信号和槽沟通 如何自定义槽和信号的业务,让它们自动关联 自定义信号功能

通过信号和槽机制通信,通信的源头和接收端之间是松耦合的: 源头只需要顾自己发信号就行,不用管谁会接收信号;接收端只需要关联自己感兴趣的信号,其他的信号都不管;只要源头发了信号,关联该信号…

STM32 | 独立看门狗 | RTC(实时时钟)

01、独立看门狗概述 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状…

QQ号码采集器-QQ邮箱采集器

寅甲QQ邮箱采集器或QQ号码采集软件, 一款采集QQ号、QQ邮件地址,采集QQ群成员、QQ好友的软件。可以按关键词采集,如可以按地区、年龄、血型、生日、职业等采集。采集速度非常快且操作很简单。

BoardLight - hackthebox

简介 靶机名称:BoardLight 难度:简单 靶场地址:https://app.hackthebox.com/machines/603 本地环境 靶机IP :10.10.11.11 ubuntu渗透机IP(ubuntu 22.04):10.10.16.17 windows渗透机IP(windows11&…

从欧盟弹性法案看软件物料清单(SBOM)

随着网络安全意识的提升和相关法规的推动,SBOM在国际上网络安全实践中的重要性日益凸显。 例如:美国国土安全部(DHS)的 “软件供应链评估工具包”(SCAT)就鼓励软件供应商提供SBOM,以帮助买方评…

重新认识Word —— 制作简历

重新认识Word —— 制作简历 PPT的图形减除功能word中的设置调整页边距进行排版表格使用 我们之前把word长排版文本梳理了一遍,其实word还有另外的功能,比如说——制作简历。 在这之前,我们先讲一个小技巧: PPT的图形减除功能 …