基于图注意力网络的两阶段图匹配点云配准方法
Two-stage graph matching point cloud registration method based on graph attention network— 基于图注意力网络的两阶段图匹配点云配准方法
从两阶段点云配准方法中找一些图匹配的一些灵感。文章提出了两阶段图匹配点云配准网络(TSGM-Net) TSGM-Net
摘要概括
-
首先,我们设计了动态图到点(DGTP)模块来学习点云
局部图的特征表示
,以提高局部特征的识别能力。 -
然后,通过Transformer和引入的边缘阈值λ动态建立边缘,并使用图注意网络提取点云的
全局特征
以考虑拓扑结构中相似特征之间的关系。 -
同时,从节点本身、局部和全局三个维度计算分数,并求和以进行关键点检测。
-
最后,提出了一种两阶段图匹配方法,将具有高度相似特征的关键点分为不同的点组,并在第一阶段图匹配中建立点组的对应关系。在第二阶段的图匹配中建立了对应点群中的点的对应关系,从而减少了相似特征对点云配准精度的影响。
构造出来的是一个双阶段的点云配准网络。
导言与相关工作
因为自己对3d相关的一些知识接触的比较少,因此对于点云配准的相关经典算法不在进行解释,只是总结一下与本文密切相关的一些信息,着重学习网络和各个模块的设计方法。
两阶段图匹配点云配准网络(TSGM-Net),以更好地处理具有重复几何结构的点云。
-
我们设计了一个动态图到点(DGTP)模块,通过为一个点及其多个最近点构建局部完整图并将图的特征表示为点的特征来提取局部特征。
-
基于局部特征,使用图注意力网络提取点云的全局特征。基于Transformer计算的点间相关性与引入的边缘阈值λ进行比较,为重要节点建立边缘,动态构建点云的全局不完全图。
-
同时,关键点检测模块计算每个点的自得分、局部得分和全局得分,并将三者得分相加得到总得分
-
之后,该模块会将总得分最大的前 N 个点作为关键点,并使用 K 最近邻(KNN)将所选关键点划分为多个点组。对全局视图中的点群进行第一阶段图匹配,然后对局部视图中相应点群中的点进行第二阶段图匹配。
采用两阶段图匹配方法,将特征高度相似的点划分为不同的点组进行匹配,以减少错误对应的产生。
文章的贡献总结
-
我们提出了一种两阶段图匹配方法。 第一阶段对
点群进行图匹配
,第二阶段对对应点群中的点
进行图匹配,解决特征高度相似导致的对应错误问题。 -
我们设计了一个DGTP模块(动态图到点)。 我们为点云构建局部完整图,并利用图的特征表示作为点的特征,以提高提取
局部特征
的能力。 -
我们利用图注意力网络提取全局特征,并引入边缘阈值λ来动态构造重要节点的边缘,构建点云的全局不完全图,以充分利用图注意力网络来聚合拓扑结构。
-
我们从节点本身、局部和全局三个维度计算分数进行关键点检测,从而提高关键点的可靠性。
核心方法—问题描述
- 对于三维空间中的两个点云: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={xj∈R3∣j=1,⋯,J} and Y={yk∈R3∣k=1,⋯,K}
xj 是X中第j个点的坐标,yk 是Y中第k个点的坐标 J 和 K 是 X 和 Y 中的点的个数。
- 点云配准的任务是寻找最优的刚性变换{R,t}对齐两个点云 X 和 Y。其中R代表的是旋转矩阵 t ∈ R3 是平移矩阵
R ∈ S O ( 3 ) R \in S O(3) R∈SO(3)
- 假设 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)=J1j∑J∥Rxj+t−yj∥2
然而,通常情况下,J≠K,并且X和Y中的点的顺序是不同的。 也许xj和yk是一对对应点,并且X中可能没有点与Y中的点对应。
- 对于这种情况,我们决定选择 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={xpk∈R3∣p=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={yqk∈R3∣q=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)=N1p∑N Rxpk+t−yM(xpk)k 2,
核心过程具体实现
整体概述
TSGM-Net的架构如图所示
根据刚性变换 :
{ R i − 1 , t i − 1 } \left\{R_{i-1}, t_{i-1}\right\} {Ri−1,ti−1}
通过 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的特征
相关文章:

基于图注意力网络的两阶段图匹配点云配准方法
Two-stage graph matching point cloud registration method based on graph attention network— 基于图注意力网络的两阶段图匹配点云配准方法 从两阶段点云配准方法中找一些图匹配的一些灵感。文章提出了两阶段图匹配点云配准网络(TSGM-Net) TSGM-Ne…...

【半导体光电子器件】课后习题答案和知识点汇总
关注作者了解更多 我的其他CSDN专栏 求职面试 大学英语 过程控制系统 工程测试技术 虚拟仪器技术 可编程控制器 工业现场总线 数字图像处理 智能控制 传感器技术 嵌入式系统 复变函数与积分变换 单片机原理 线性代数 大学物理 热工与工程流体力学 数字信号处…...

Unity命令行传递自定义参数 命令行打包
命令行参数增加位置 -executeMethod 某脚本.某方法 参数1 参数2 参数3 ... 例如执行EditorTest.GetCommandLineArgs方法 增加两个命令行参数 Version=125 CDNVersion=100 -executeMethod EditorTest.GetCommandLineArgs Version=125 CDNVersion=100 Unity测试脚本 需要放在…...

web-worker应用在大文件切片上传
当文件体积过大时,传统的文件上传方式往往会导致页面卡顿,用户体验不佳。为了解决这一问题,我们可以利用Web Worker技术来进行大文件的切片上传。本文将详细介绍如何使用Web Worker进行大文件切片上传,并通过具体的例子来演示其实…...
Django 模板分割及多语言支持案例【需求文档】-->【实现方案】
Django 模板分割及多语言支持案例 这个案例旨在提供一个清晰的示范,展示如何将复杂的页面分解为多个可复用的模板组件,使代码更加模块化和易于管理。希望这篇案例文章对你有所帮助。 概述 在 Django 项目开发中,使用模板分割和多语言支持能…...
C中设计不允许继承的类的实现方法是什么?
在C中,设计不允许继承的类可以通过多种方法实现。以下是详细的方法说明及示例: ### 方法一:将构造函数和析构函数设为私有 这种方法的核心思想是通过将构造函数和析构函数设为私有,使得子类无法调用这些函数,从而无法…...
面对小白的C语言学习方法
这是第20篇文章,不来弄一些技术的,弄一些最近的学习心得,怎么更有效地自学C语言 书籍 书籍可以很有效的告知我们专有函数,使用方法还有一些思考方式,缺点是实操差点意思,还是不太能解决实际问题ÿ…...

使用libgif库解码全过程(C语言)-包括扩展块的处理
我看到的所有例程,都把扩展部分的处理跳过了,而我的动画是有透明度的,这就导致解码后的图像在有透明色的像素部分,呈现了很多的黑点,或者闪白的情况出现。经过调试,终于成功。 文件格式 先了解一下GIF的文…...
blazor实现ASP.NET网站用户批量注册方法
ASP.NET网站用户批量注册是许多使用blazor系统开发遇到的问题,为了解决这个问题,我们提出比较完善的解决方法,通过代码实现了一个批量用户注册功能,用于解析一份用户名列表,并通过后台服务注册用户,同时对成功和失败的注册进行记录和反馈。以下是实现功能的详细工作原理描…...

SpringCloud 入门(4)—— 网关
上一篇:SpringCloud 入门(3)—— Nacos配置中心-CSDN博客 Spring Cloud Gateway 作为 Spring Cloud 生态系统的一部分,主要在微服务架构中充当 API 网关的角色。它提供了统一的入口点来处理所有的 HTTP 请求,并将这些请…...
什么是WebAssembly?怎么使用?
一、简述 WebAssembly,也称为Wasm,是基于堆栈的虚拟机的二进制指令格式。它被设计为一个可移植的目标,用于编译C、C和Rust等高级编程语言,允许代码以接近本机速度在web浏览器中运行。WebAssembly于2015年由包括谷歌、微软、Mozill…...

v3s点RGB屏 40pin 800x480,不一样的点屏,不通过chosen。
一、背景、目的、简介。 一般来说,通过uboot将屏幕参数传给kernel,是通过修改设备树。 uboot和kernel都需要屏幕点亮。uboot侧重于显示一张图片。而kernel则多是动画。 在这里,我先是找到了一个裸机点屏的代码。将其编译成静态库后&#x…...

某科技局国产服务器PVE虚拟化技术文档
环境介绍 硬件配置 服务器品牌:黄河 型号:Huanghe 2280 V2 Cpu型号:kunpeng-920 磁盘信息 :480SSD * 2 ,4T*4 网卡:板载四口千兆 如下表 四台服务器同等型号配置,均做单节点虚拟化,数据保护采用底层r…...

中科岩创边坡自动化监测解决方案
行业现状 由于边坡不稳定性因素,可能会造成斜坡上的岩土体沿着某个面不均匀向下向外滑动,形成滑坡;陡峭山坡上岩土体在重力作用下,发生陡然倾落运动,造成崩塌;在沟谷或山坡上产生的夹带大量泥沙、石块等固体…...
GPT-O3:简单介绍
GPT-O3:人工智能领域的重大突破 近日,OpenAI发布了其最新的AI模型GPT-O3,这一模型在AGI评估中取得了惊人的成绩,展现出强大的能力和潜力。GPT-O3的出现标志着人工智能领域的重大进步,预计将在2025年实现更大的突破。 …...

cudnn版本gpu架构
nvcc --help 可以看 --gpu-architecture 写到的支持的架构 NVIDIA 的 GPU 架构是按代次发布的,以下是这些架构的对应说明: NVIDIA Hopper: 这是 NVIDIA 于 2022 年推出的架构之一,面向高性能计算(HPC)和人工智能&…...

数据库安全-redisCouchdb
1.redis未授权访问 默认端口:6379 1.1 Redis沙盒逃逸漏洞RCE-CVE-2022-0543 介绍:Redis 是一套开源的使用 ANSI C编写、支持网络、可基于内存亦可持久化的日志型、键值存储数据库,并提供多种语言的API。Redis 如果在没有开启认证的情况下,…...

ubuntu22.04安装PaddleX3
PaddleOCR 安装过程可以参考PaddleX本地安装教程 我的电脑环境配置: ubuntu22.04 cuda11.8(之前安装的是12.4没有匹配的paddle-gpu;这里改成11.8) 一、安装基础环境 1、 conda create -n ppx1 python3.10 2、 conda activate ppx1 3、…...
Flutter 实现全局悬浮按钮学习
Flutter 代码如何实现了一个全局悬浮按钮,当点击按钮时,会显示一个可以拖动并且通过长按可以移除的悬浮控件。 前置知识点学习 Offset Offset 是 Flutter 中的一个类,用于表示二维平面中的位置或位移。它通常用于描述坐标系中的一个点&…...
14-C语言多文件编程
一、各种变量 在学习多文件编程之前,先要了解清楚各种变量的作用范围以及生命周期。 1.普通变量 1.1普通局部变量 定义形式:在复合语句{}里面定义的变量为普通局部变量;作用范围:在复合语句{}里面有效;生命周期&am…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...