基于图注意力网络的两阶段图匹配点云配准方法

news2024/12/25 15:12:28

Two-stage graph matching point cloud registration method based on graph attention network— 基于图注意力网络的两阶段图匹配点云配准方法

从两阶段点云配准方法中找一些图匹配的一些灵感。文章提出了两阶段图匹配点云配准网络(TSGM-Net) TSGM-Net

在这里插入图片描述

摘要概括

  1. 首先,我们设计了动态图到点(DGTP)模块来学习点云局部图的特征表示,以提高局部特征的识别能力

  2. 然后,通过Transformer和引入的边缘阈值λ动态建立边缘,并使用图注意网络提取点云的全局特征以考虑拓扑结构中相似特征之间的关系。

  3. 同时,从节点本身、局部和全局三个维度计算分数,并求和以进行关键点检测。

  4. 最后,提出了一种两阶段图匹配方法,将具有高度相似特征的关键点分为不同的点组,并在第一阶段图匹配中建立点组的对应关系。在第二阶段的图匹配中建立了对应点群中的点的对应关系,从而减少了相似特征对点云配准精度的影响。

构造出来的是一个双阶段的点云配准网络。

导言与相关工作

因为自己对3d相关的一些知识接触的比较少,因此对于点云配准的相关经典算法不在进行解释,只是总结一下与本文密切相关的一些信息,着重学习网络和各个模块的设计方法。

两阶段图匹配点云配准网络(TSGM-Net),以更好地处理具有重复几何结构的点云。

  • 我们设计了一个动态图到点(DGTP)模块,通过为一个点及其多个最近点构建局部完整图并将图的特征表示为点的特征来提取局部特征。

  • 基于局部特征,使用图注意力网络提取点云的全局特征。基于Transformer计算的点间相关性与引入的边缘阈值λ进行比较,为重要节点建立边缘,动态构建点云的全局不完全图

  • 同时,关键点检测模块计算每个点的自得分、局部得分和全局得分,并将三者得分相加得到总得分

  • 之后,该模块会将总得分最大的前 N ​​个点作为关键点,并使用 K 最近邻(KNN)将所选关键点划分为多个点组。对全局视图中的点群进行第一阶段图匹配,然后对局部视图中相应点群中的点进行第二阶段图匹配

采用两阶段图匹配方法,将特征高度相似的点划分为不同的点组进行匹配,以减少错误对应的产生。

在这里插入图片描述

文章的贡献总结

  1. 我们提出了一种两阶段图匹配方法。 第一阶段对点群进行图匹配,第二阶段对对应点群中的点进行图匹配,解决特征高度相似导致的对应错误问题。

  2. 我们设计了一个DGTP模块(动态图到点)。 我们为点云构建局部完整图,并利用图的特征表示作为点的特征,以提高提取局部特征的能力。

  3. 我们利用图注意力网络提取全局特征,并引入边缘阈值λ来动态构造重要节点的边缘,构建点云的全局不完全图,以充分利用图注意力网络来聚合拓扑结构。

  4. 我们从节点本身、局部和全局三个维度计算分数进行关键点检测,从而提高关键点的可靠性。

核心方法—问题描述

  1. 对于三维空间中的两个点云:X和Y 且 X为源点云,Y 为目标点云。

X = { x j ∈ R 3 ∣ j = 1 , ⋯   , J }  and  Y = { y k ∈ R 3 ∣ k = 1 , ⋯   , K } X=\left\{x_{j} \in \mathbb{R}^{3} \mid j=1, \cdots, J\right\} \text { and } Y=\left\{y_{k} \in \mathbb{R}^{3} \mid k=1, \cdots, K\right\} X={xjR3j=1,,J} and Y={ykR3k=1,,K}

xj 是X中第j个点的坐标,yk 是Y中第k个点的坐标 J 和 K 是 X 和 Y 中的点的个数。

  1. 点云配准的任务是寻找最优的刚性变换{R,t}对齐两个点云 X 和 Y。其中R代表的是旋转矩阵 t ∈ R3 是平移矩阵

R ∈ S O ( 3 ) R \in S O(3) RSO(3)

  1. 假设 J ==K 且 xj 和 yj 是一对对应点,我们可以通过最小化下面的方程来对齐两个点云。

E ( R , t ) = 1 J ∑ j J ∥ R x j + t − y j ∥ 2 E(R, t)=\frac{1}{J} \sum_{j}^{J}\left\|R x_{j}+t-y_{j}\right\|^{2} E(R,t)=J1jJRxj+tyj2

然而,通常情况下,J≠K,并且X和Y中的点的顺序是不同的。 也许xj和yk是一对对应点,并且X中可能没有点与Y中的点对应。

  1. 对于这种情况,我们决定选择 N 个关键点 点云配准是通过最小化方程来实现的

X k = { x p k ∈ R 3 ∣ p = 1 , ⋯   , N } X^{k}=\left\{x_{p}^{k} \in \mathbb{R}^{3} \mid p=1, \cdots, N\right\} Xk={xpkR3p=1,,N}

Y k = { y q k ∈ R 3 ∣ q = 1 , ⋯   , N } . Y^{k}=\left\{y_{q}^{k} \in \mathbb{R}^{3} \mid q=1, \cdots, N\right\} . Yk={yqkR3q=1,,N}.

其中 M 是从 Xk 中的点到 Yk 中的点的映射

E ( M , R , t ) = 1 N ∑ p N ∥ R x p k + t − y M ( x p k ) k ∥ 2 , E(M, R, t)=\frac{1}{N} \sum_{p}^{N}\left\|R x_{p}^{k}+t-y_{M\left(x_{p}^{k}\right)}^{k}\right\|^{2}, E(M,R,t)=N1pN Rxpk+tyM(xpk)k 2,

核心过程具体实现

整体概述

TSGM-Net的架构如图所示
在这里插入图片描述

根据刚性变换 :

{ R i − 1 , t i − 1 } \left\{R_{i-1}, t_{i-1}\right\} {Ri1,ti1}
通过 i − 1 次迭代求解从而得到变换后的点云Xi−1

  • 对于输入点云 Xi−1 和 Y,我们使用 DGTP 模块进行局部特征提取,使用图注意网络进行全局特征提取

也就是对应图中的第一个部分和第二个部分所描述的结构。

  • 选择质量较高的关键点,并基于KNN将其划分为点组。

通过KNN划分为多个组。

  • 基于组的特征提取用于学习每个点组中关键点拓扑结构并进行图特征表示。

也就是对应图中的第二个部分关键点检测模块和分组的阶段。

  • 第一阶段的图匹配是对每个点群的图特征表示进行,以建立点群之间的对应关系。 第二阶段图匹配根据点群与关键点特征的对应关系建立对应关系M

M = { M R , M t } M=\left\{M_{R}, M_{t}\right\} M={MR,Mt}

对应点群中的点。

最后通过SVD的分解运算得到最后所需要第i次迭代的刚性变换的矩阵。

在这里插入图片描述

在这里插入图片描述

图1 TSGM-Net架构图。 TSGM-Net从点云Xi−1和Y中提取局部和全局特征,并通过关键点检测模块获得关键点。 在两阶段图匹配中,首先将关键点分为点组,并使用图特征表示进行基于组的特征提取。 然后,通过第一阶段的图匹配建立Xi−1和Y之间的点群对应关系Mgroup。 基于Mgroup,对对应点群的关键点进行第二阶段图匹配,得到两个点云之间的对应关系MR和Mt。 最后,使用基于 MR 和 Mt 的 SVD 求解第 i 次迭代的刚性变换 {Ri,ti}

Dynamic Graph-to-Point-DGTP模块

动态图到点模块(DGTP)

论文中对局部特征提取的描述部分

X中的点xj ∈ R3,将xj的3D坐标映射到高维空间,以获得xj的局部特征Fxj。 因此,我们使用DGTP进行特征提取,得到X的局部特征为Fx ∈ RF。

在这里插入图片描述

对于距离xj最近的点xi,通过MLP建立两点之间的边缘特征fji ∈ RF,并将该边缘特征作为点xi的特征

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

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

相关文章

U9多组织的退货单不能拉单找不到退货单

培训没有估好吧。参数是顾问亲自操刀去做的。当时事情又多,参加会议都是缺席的。财务做应收单拉单时,说有退货单找不到。也就是查询的条件(逻辑)不对嘛。U9的参数查询条件太多,逻辑复杂,一时真的分析不出来…

树莓派换源

查询自己版本: lsb_release -a bullseye可以理解为树莓派的系统代号(10,11,12都不同,一定要看好自己系统是什么版本) 查询架构 uname -a aarch64的地方就是代表系统架构的,我的是aarch64的架…

如何安全获取股票实时数据API并在服务器运行?

以下是安全获取股票实时数据 API 并在服务器运行的方法: 选择合适的券商或交易平台 评估自身需求:明确自己的交易策略、交易品种、交易频率等需求,以及对 股票api 的功能、性能、稳定性等方面的要求。调研券商或平台:了解不同券商…

MONI后台管理系统-swagger3(springdoc-openapi)集成

springdoc-openapi Java 库有助于使用 Spring Boot 项目自动生成 API 文档。springdoc-openapi 通过在运行时检查应用程序来根据 Spring 配置、类结构和各种注释推断 API 语义。 该库会自动生成 JSON/YAML 和 HTML 格式的页面文档。生成的文档可以使用swagger-api注释进行补充。…

vue中proxy代理配置(测试二)

接口地址:https://ss.dd.dd.d.cn:9006/thirdist/portalApi/biz-api/eemp/supervision/v1//getPeiCountData?batch2&cent0 1、配置一(代理没起作用) (1)设置baseURL为https://ss.dd.dd.d.cn:9006 (2&am…

软件项目标书参考,合同拟制,开发合同制定,开发协议,标书整体技术方案,实施方案,通用套用方案,业务流程,技术架构,数据库架构全资料下载(原件)

1、终止合同协议书 2、项目合作协议 3、合同交底纪要 4、合同管理台账 软件资料清单列表部分文档清单:工作安排任务书,可行性分析报告,立项申请审批表,产品需求规格说明书,需求调研计划,用户需求调查单&…

《鸣潮》游戏运行时弹出“xinput1_3.dll文件缺失”错误的处理方法,“xinput1_3.dll文件缺失”详解!

一、xinput1_3.dll文件的重要性 xinput1_3.dll是DirectX组件中的一个重要文件,它负责处理与Xbox 360控制器相关的输入功能。尽管《鸣潮》可能并不直接依赖于Xbox控制器,但许多现代游戏和应用程序都会调用这个DLL文件来处理各种输入设备的功能。因此&…

‘vite‘ 不是内部或外部命令,也不是可运行的程序

报错:执行 npm run dev时,提示’vite’ 不是内部或外部命令,也不是可运行的程序 解决:执行 npm install -g vite 报错:导入vite后再次执行npm run dev,报错failed to load config from E:\eclipseWP\test1…

支付宝订单码支付

1.订单码支付,首先下载官方网站提供的sdk包到你的项目中。 2.选择控制器复制官方文档的获取二维码相关的代码示例。打开sdk包中v2的index.php文件,这个才是你选择语言的具体代码。 3.引用里面所需要的类文件,文件下载到你的项目中后&#xf…

outlook smtp 发送邮件

前提条件 开通 app password 开通 smtp 服务 import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMETextdef send_html_email_smtp(sender_email, sender_password, recipient_email, subject, html_content):# Create the messag…

【Chrome Extension】一、CSDN计时扩展设计

【Chrome Extension】一、CSDN计时扩展设计 重点内容内容脚本 content_scripts 文件目录1、整体目录2、manifest.json3、scripts/content.js4、css/content.css 重点内容 内容脚本 content_scripts 1、manifest.json文件配置 {"manifest_version": 3, # *依赖Chro…

计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

oracle: create new database

用database configuration Assistant 引导创建数据库。记得给system,sys 设置自己的口令,便于添加新操作用户。 创建操作用户: -- 别加双引号,否则,无法用 create user geovindu identified by 888888; create user geovin identi…

开源低代码平台-Microi吾码 打印引擎使用

引言 在开发中,会遇到很多记录的表单数据需要下载打印下来使用到线下各种应用场景中。在传统的方法中可能是需要先导出数据,然后将数据填入word表格中在打印下来。 但Microi吾码提供了一项新功能,便是打印引擎。打印引擎即可在线设计…

android studio更改应用图片,和应用名字。

更改应用图标,和名字 先打开AndroidManifest.xml文件。 更改图片文件名字( 右键-->构建-->重命名(R))

QT的前景与互联网岗位发展

qt是用来干什么的 --》桌面应用开发(做电脑的应用程序,面对客户端)。 主要用于开发跨平台的应用程序和用户界面(UI)。它是一个全面的C库集合,提供了构建软件应用所需的各种工具和功能。 客户端开发的重…

【目标跟踪综述及关键技术】

1.多目标跟踪任务介绍 定义 多目标跟踪旨在将视频序列中感兴趣的目标检测出来,并赋予每个目标单独的编号,在整个序列中形成目标的轨迹。 分类 online:算法在推理目标身份过程中,只能看见当前帧以及之前的帧(关联&a…

重温设计模式--模板方法模式

文章目录 一、模板方法模式概述二、模板方法模式UML图三、优点1代码复用性高2可维护性好3扩展性强 四、缺点五、使用场景六、C 代码示例1七、 C 代码示例2 一、模板方法模式概述 定义:定义一个操作中的算法骨架,而降一些步骤延迟到子类中。模板方法使得…

@vue/cli启动异常:ENOENT: no such file or directory, scandir

参考:https://blog.csdn.net/qq_44355188/article/details/122239566 首先异常报错是:ENOENT: no such file or directory, scandir ‘D:\Data\Project\VueProject\hello\node_modulesvue\cli-plugin-eslint\locales’;我的vue/cli版本是 4.5.15 重点是…

Jenkins集成部署(图文教程、超级详细)

一、CI/CD 的概念 ​ CI/CD一般包含三个概念: 持续集成(Continuous Integration ,CI) 持续交付(Continuous Delivery) 持续部署(Continuous Deploy) ​ CI/CD 是现代软件开发的重要…