Geometric Transformer for Fast and Robust Point Cloud Registration 论文解读

目录

一、导言

二、先导知识

1、超点匹配

2、KPConv

三、相关工作

1、基于对应的方法

2、直接配准方法

3、深度鲁棒估计

四、GeoTransformer模型

1、特征提取

2、超点匹配

几何自注意力模块

特征交叉注意力

计算高斯相关性

对应点采样

3、点匹配

4、局部到全局的配准        


一、导言

        该论文提出了一种Geometric Transformer的快速且鲁棒的点云配准方法。

(1)GeoTransformer 采用几何自注意力和特征交叉注意力模块,来学习点云的几何不变性。

(2)GeoTransformer 在建立全局与局部关系时采用超点匹配,并在超点匹配时使用了overlap-aware circle loss,而不是传统的Crossentropy损失,这种方法可以避免交叉熵损失带来的高置信度匹配的抑制问题。

(3)GeoTransformer 是一种无需关键点检测和RANSAC的方法,能够提取准确的对应关系来进行点云配准。

二、先导知识

1、超点匹配

        超点匹配来自于图像匹配的启发,先使用特定网络(本文使用KPConv-FPN)将输入点云进行分层下采样,获得超点,然后提取超点之间的对应方法,即检查局部邻域是否重叠来进行匹配,最后将这种匹配关系传播到单点,产生密集点对。此时密集点对的精度也就会极大依赖于超点匹配的精度。

        超点匹配的特点,超点之间是稀疏松散的,减少了严格的点匹配和patch overlap,放宽了重复性的要求。另外基于patch overlap的方法要比基于距离的point match有更为可靠、信息丰富的约束,也可以获得更为全局context的特征。

2、KPConv

       简述KPConv的思路:

(1)以点x为球心确定一个球体

(2)在球体中确定若干核心点,核心点不是点云的点,具体的取点规则在后文

(3)对于落在球体范围的点云中的点x_i,用核函数计算该点的权重矩阵系数,并用矩阵对该点的特征进行变换

(4)最后将落在球体范围内点云中的所有点逐一进行(3)变换,并将变换后的特征叠加,得到该点x的特征。

       核心点取点规则:

(1)球心点作为第一个核心点 

(2)看需要多少点,其余点保证相互斥力关系稳定情况下逐个选点(类似万有引力,其实就是正n-1面体,理论上应该都是球面点)

具体公式见:https://zhuanlan.zhihu.com/p/92244933

论文指南:https://arxiv.org/pdf/1904.08889

三、相关工作

1、基于对应的方法

       相较于之前做的EGST论文解读基于无对应的方法,而该论文遵循基于对应的方法,依赖于显式的位置编码。

       近期的基于对应的方法中一般有两大类:

第一类:检测更多可重复的关键点并学习更鲁棒的关键点描述子

第二类:无需关键点检测,而是考虑所有可能的匹配(本文属于后者)

2、直接配准方法

        直接配准工作在单一合成形状中效果较好,但在大规模场景中会造成失败,原因在于过分依赖全局特征,在复杂场景中更要兼容局部与全局性。

        直接配准工作一般两类:

第一类:ICP思想,通过建立软分配关系,使用可微分加权的SVD计算变换(在本文点云匹配后也是用可微分加权的SVD来提取局部特征)

第二类:提取点云全局特征向量进行回归变换       

3、深度鲁棒估计

        本文提到在高离群值比情况下,RANSAC方法收敛缓慢且不稳定,所以前人设计了一个深度鲁棒估计量,来摆脱异常值的干扰,而该论文GeoTransformer使用了一个无参数的LGR算法(局部到全局配准方案),实现高效准确配准。

四、GeoTransformer模型

        GeoTransformer的步骤分为特征提取,超点匹配,点云匹配,局部全局配准四个过程。

1、特征提取

        特征提取利用KPConv+FPN的结构提取多层次特征,输入源点云和目标点云,输出KPConv的output的两个点云特征,以及输出FPN后的output的两个点云特征。

        特殊符号:

P,Q:源点云和目标点云

\widehat{P},\widehat{Q}:KPConv的输出,点云特征

\widehat{p}_{x_i},\widehat{q}_{x_i}:将\widehat{P},\widehat{Q}进行超点匹配后的若干点

\tilde{P},\tilde{Q}:FPN的输出,密集点点云特征,一般是input分辨率的二分之一

\mathit{G}_i^P:密集点及密集点特征分配到最近的超点,计算平均最小均方误差

          G_i^P=\left \{ {\tilde{p} \in \tilde{P}|\ i=argmin_j(||\tilde{p}-\widehat{p}_j||_2,\widehat{p}_j \in \widehat{P})}\right \}

2、超点匹配

       对于KPConv输出的点对关系输入到超点匹配模块,输出全局密集的点对应关系。超点匹配模块包括:几何自注意力模块,特征交叉注意力模块,计算高斯相关性,对应点采样。

几何自注意力模块

       使用几何自注意力模块和特征交叉注意力模块的目的是:学习不受变换影响且表达几何一致性的超点特征表示。

       下面为几何自注意力模块(这个图简直深似结构自注意力机制),但是他的计算注意力得分公式并不一样:,几何自注意力机制中更多考虑了几何关系,比如引入超点特征向量x_i,x_j,几何结构嵌入向量r_{i,j},通过作为注意力机制中的Q、K、R的权重系数,通过几何关系来影响注意力机制。

        特殊符号:

 x_i,x_j:表示输入特征矩阵x的第i个和第j个超点特征向量

r_{i,j}:表示第i个和第j个超点之间的几何结构嵌入向量,由两个部分构成包括:r^D_{i,j}(编码超点之间的距离信息),r^A_{i,j,x}(编码超点之间的角度信息)。嵌入向量构成关系及数学表达式:

特征交叉注意力

        给定两个自注意力模块输出的特征矩阵,输入到交叉注意力机制,计算各自的特征矩阵Z_i^Q,Z_i^P,并且计算注意力得分e_{i,j},公式如下:

        为什么要进行这两个注意力模块?

        几何自注意力模块用于对点云变换不变几何结构进行编码,特征交叉注意力模块用于对点云几何一致性进行建模,保证得到的混合特征对变换是不变的,不受变换影响。

计算高斯相关性

        计算高斯相关性的目的:找互相重合的点云块(一块区域的点)

        首先对超点特征向量归一化到单位超球面上,计算两个点云超点特征向量之间的高斯相关性得分,用来找到最相似的超点对,以得到高质量的超点对应关系(因为本文无需关键点匹配,所以只能优化匹配关系)。归一化公式如下,这个公式不太理解为什么放了个指数结构,估计是球面影响,不懂!

        

        另外为了避免有一些与多个点都高度匹配的点,抑制歧义匹配,还会进行双向归一化操作。

对应点采样

        top-k选择是用来对应点采样的一种方法,相较于随机采样,可以得到更确定性的点对应,用于后续的配准计算。

3、点匹配

        对于上一环节已经找到相互重合的两个点云块,要继续找到里面的点云匹配对(化区域为个体)

        思路:计算一个点云块中一个点与另一个点云块中所有点的相似性,相似性最高的为匹配对。

        首先计算相似关系矩阵,并使用Sinkhorn算法设计分配矩阵Z来选择匹配对,为了使得整体匹配置信度达到最优,使用选择置信度最高的K个作为匹配对。

4、局部到全局的配准        

        在局部阶段,使用超点对应关系计算匹配矩阵后,根据上一步取匹配对后作为本轮结果,并将上一轮的匹配矩阵与本轮的匹配对进行比较,若不满足则去除,多次进行迭代,计算新的变换矩阵。

5、损失函数 

         计算局部点对应关系损失L_{oc}(overlap-aware circle loss)和全局点对损失L_p两部分相加。

        L_{oc}关注点对间的重叠关系,给重叠较高的点对以更大权重,同时关注正负样本的重叠。

        L_p采用负对数似然损失,对稀疏的全局点对关系进行监督,分别考虑点对关系和两个点云的内部点间关系

五、实验 

1、比较不同数据集下中RANSAC为基础的方法

        在不同数据集中,相较于RANSAC方法为基础的如3DFeat-Net方法性能相当,略有优势。

2、比较无RANSAC的方法

        该方法在RANSAC-free下优于其他诸如FMR的方法。

3、几何自注意力模块

        相较于传统自注意力模块,几何自注意力在低重叠场景下更为鲁棒。

 论文参考:https://arxiv.org/abs/2202.06688

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

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

相关文章

花开半夏,我决意仿一款答题小程序

不是清凉罢挥扇,自缘手倦歇些时。 ——杨万里(宋) 走过春的绚烂,路过初夏的清凉,我们迎来了炎炎夏日。蛙声阵阵,蝉鸣声声,稻花如白练,荷花别样红。 花开半夏,我决意仿一款…

陕西技术交易大会璀璨起航,卓翼飞思无人智能领域研究成果备受瞩目

智启未来,链动四方。万众瞩目的陕西省技术交易大会于7月17-18日在西安璀璨启航!大会聚焦智能感知及其上下游产业链,旨在促进四链深度融合,推动技术创新与产业发展。卓翼智能作为产业链中“智能感知应用端”的杰出企业代表&#xf…

【刷题专项】— 模拟

1、替换所有的问号 - 力扣(LeetCode) 思路: 首先找到需要替换的 ? ,位置然后遍历26个字母与 ? 的左右两边的是否相同,不同的话就替换最后返回即可代码: public String modifyString(String s) {char[] c…

MySQL运维实战之Clone插件(10.1)使用Clone插件

作者:俊达 clone插件介绍 mysql 8.0.17版本引入了clone插件。使用clone插件可以对本地l或远程的mysql实例进行clone操作。clone插件会拷贝innodb存储引擎表,clone得到的是原数据库的一个一致性的快照,可以使用该快照数据来启动新的实例。cl…

Android View的绘制流程

1.不管是View的添加,还是调用View的刷新方法invalidate()或者requestLayout(),绘制都是从ViewRootImpl的scheduleTraversals()方法开始 void scheduleTraversals() {if (!mTraversalScheduled) {mTraversalScheduled true;mTraversalBarrier mHandler…

【论文速读】| TCSR-SQL:面向表内容感知的自检索文本到SQL方法

本次分享论文:TCSR-SQL: Towards Table Content-aware Text-to-SQL with Self-retrieval 基本信息 原文作者:Wenbo Xu, Liang Yan, Peiyi Han, Haifeng Zhu, Chuanyi Liu, Shaoming Duan, Cuiyun Gao, Yingwei Liang 作者单位:哈尔滨工业大…

Java垃圾收集器选择与优化策略

1.垃圾收集算法有哪些,可以聊一下吗? 如何确定一个对象是垃圾? 要想进行垃圾回收,得先知道什么样的对象是垃圾。 1.1 引用计数法 对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾。如果一个对象没有任何指针对其引用,它就是垃圾。 弊端:如果…

【网络工具】Charles 介绍及环境配置

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/iAmAo 📚专栏简介:在这个专栏中,我将会整理一些工作或学习中用到的工具介绍给大家~ 📘Charles 系列其它文章:【网络…

JavaScript基础 第四弹 学习笔记

函数 1、为什么需要函数?可以实现代码复用,提高开发效率。 函数的定义 :函数function,是被设计为执行特定任务的代码块。 函数可以把具有相同或相似逻辑的代码‘包裹’起来,通过函数调用执行这些被“包裹”的代码逻…

万界星空科技电线电缆MES系统实现线缆全流程追溯

MES系统通过高度集成的数据平台,对电线电缆的生产全过程进行实时监控与记录,从原材料入库开始,到生产过程中的各个关键控制点,再到成品出库,每一步操作都被详细记录并可追溯。这种全流程追溯能力主要体现在以下几个方面…

java基础之变量,类型的转换,跟着哔站尚硅谷自学笔记。

变量 变量的介绍以及使用 1.变量的数据类型:基本数据类型:4类8种整数:byte short int long 浮点数:float double字符型:char布尔型:boolean引用数据类型:类 数组 接口 枚举 注解2.概述&#xf…

云南合续-马来西亚水环境项目考察单位

2024年恰逢中马建交50周年,中华环保联合会为进一步加强双方生态产业合作与交流,拟定于9月23日-29日组团赴马来西亚开展水环境项目考察,同期举办“2024中马水务合作论坛”,引领国内先进环保技术、装备、产能“走出去”。

hung 之 Android llkd

目录 1. llkd 简介 2. 原理 2.1 内核活锁 2.2 检测机制 2.3 为什么 persistent stack signature 检测机制不执行 ABA 检查? 2.4 为什么 kill 进程后,进程还存在就能判定发生了内核 live-lock? 3. 代码 3.1 内核 live-lock 检查 3.2 …

verilog刷题笔记

1、选择器实现方式 (1)case语句,注意default (2)if-else语言,注意else,有优先级 (3)三元运算符 ? : 2、阻塞赋值/非阻塞赋值都是过程性赋值&a…

使用崖山YMP 迁移 Oracle/MySQL 至YashanDB 23.2 验证测试

前言 首届YashanDB「迁移体验官」开放后,陆续收到「体验官」们的投稿,小崖在此把优秀的投稿文章分享给大家~今天分享的用户文章是《使用崖山YMP 迁移 Oracle/MySQL 至YashanDB 23.2 验证测试》(作者:尚雷)&#xff0c…

提交(git-add git-commit git-push)

当修改好一个功能的时候,可以提交到远程仓库,这样就等于更新了一次版本,那么下次改修了文件的话,是跟这个版本做对比的 git status, 查看文件修改情况,git add 假如你只想提交1个文件,那么直接…

硬件开发——SD/MMC/eMMC

硬件开发——SD/MMC/eMMC 小狼http://blog.csdn.net/xiaolangyangyang 1、引脚定义 2、时钟频率 eMMC的速度模式有: SDR50:26M/52MHS200:200MHS400:400M 详细信息见如下表格: 3、协议 Read Data Write Data No Data …

beego框架_golang web框架_使用介绍

beego简介 beego是一个用于快速开发Go应用的http框架,由Go语言方面的技术大牛设计。beego可以用来快速开发API、Web、后端服务等各种应用,是一个RESTful的框架,主要设计灵感来源于tornado、sinatra、flask这三个框架,但结合了Go本…

Linux 安装多个jdk,切换使用

一、下载jdk 先去oracle官网下载jdk安装文件(我需要下载旧版本的jdk) https://www.oracle.com/ 二、安装jdk 1、将下载的jdk安装文件解压到想要安装的目录下 tar -xzvf jdk-8u202-linux-x64.tar.gz2、修改环境变量 vim /etc/profile export JAVA_HOME/usr/java/jdk1.…

Java代码批量处理sql语句

背景:数据源迁移,目标数据源和原始数据源的语法不同,要把建表语句全都改成新的语法。 一个个sql文件去替换实在是麻烦,可以把原始的sql文件放在一个文件夹,然后用程序一跑,改完语法的sql语句就放在新的文件…