论文解读 | 5分钟带你了解基于深度学习的点云配准的ICP算法

news2024/11/24 20:26:01

原创 | 文 BFT机器人 

图片

01

摘要

迭代最近点(ICP)及其变式为此任务提供了简单且易于实现的迭代方法,但这些算法可能会收敛到虚假的局部最优值。

为了解决ICP通道中的局部最优和其他困难,我们提出了一种基于学习的方法,名为“深度最近点”(DCP),其灵感来自计算机视觉和自然语言处理的最新技术。我们的模型由三部分组成:点云特征提取网络、基于注意力的点云匹配预测,以及可微奇异值分解(SVD)层用来提取最终的刚性变换。

我们在 ModelNet40 数据集上端到端地训练我们的模型,并在多种设置中显示它比 ICP 及其变体(例如 Go-ICP、FGR)以及最近提出的基于学习的方法 PointNetLK 表现更好。除了提供最先进的配准技术之外,我们还评估了将学习到的特征转移到看不见的物体上的适用性。我们还对我们学习的模型进行初步分析,以帮助了解局部特征以及全局特征是否有利于点云配准。

02

本文的主要贡献

我们设计了一个子网络模块去解决ICP通道中的一些难点。并提出了一个简单的架构来预测对齐两个点云的刚性变换。评估多种环境下的效率和性能,并提供消融实验来验证我们的模块。另外,我们还分析局部特征还是全局特征对于配准更有用。以及我们发布代码以促进可重复性和未来的研究。

03

DCP(Deep Closest Point)网络结构

我们的模型由三个部分组成:

(1)我们将输入点云映射到网络中,这有助于识别匹配的点对(我们在这一步中比较了 PointNet和 DGCNN)。

(2)然后,结合指针网络的基于注意力的模块预测点云之间的软匹配。

(3)最后,可微奇异值分解层预测刚性变换。我们在 ModelNet40 上的各种设置中端到端地训练和测试我们的模型,表明我们的模型不仅高效,而且优于 ICP 及其扩展,以及最近提出的 PointNetLK 方法。我们学到的特征可以推广到看不见的数据,这表明我们的模型正在学习显着的几何特征。

DCP网络结构示意图如下所示:

图片

3.1特征提取模块

我们网络的第一阶段将未对齐的输入点云 X 和 Y 嵌入到一个公共空间中,用于查找两个点云之间的匹配点对。目的是找到一种方法,可以对刚性运动进行求商,同时保持对刚性匹配相关特征的敏感度。

我们评估了可学习嵌入模块的两种可能选择:PointNet 和 DGCNN]。由于我们使用两个输入点云的每点嵌入来生成映射 m 并恢复刚性变换,因此我们在输入点云中寻找每个点的特征,而不是每个点云的一个特征。因此,在这两个网络架构中,我们使用一个聚合函数生成最后的表示,记为 FX = {xL1 , xL2 , ..., xLi , ..., xLN } 和 FY = {yL1 , yL2 , ...., yLi , ..., yLN },假设总共有 L 层。

PointNet 主要基于点云中每个点的嵌入来独立提取信息,而 DGCNN 明确地将局部几何特征合并到其表示中。特别是,给定一组点 X,DGCNN 构造一个k-NN 图G,对边缘端点处的值应用非线性以获得沿边值,并在每层中执行顶点聚合。

因此,DGCNN 的前向机制为

图片

其中 Ni 表示图 G 中顶点 i 的临近值。由于不包含局部邻域信息,我们根据经验发现 DGCNN 的局部特征对于我们网络后续步骤中的高质量匹配至关重要。

3.2注意力机制模块

从 PointNet 过渡到 DGCNN 的原因是,我们观察到刚性对齐最有用的特征是从局部和全局特征中联合学习的,我们还可以通过使它们针对特定任务改进我们的匹配功能。即根据 X 和 Y 的特殊性一起更改特征,而不是独立嵌入 X 和 Y。受到最近 BERT 、非局部神经网络和关系网络基于注意力模型的成功的使用启发,我们设计了一个模块,通过捕获自注意力和条件注意力来学习上下文信息。

FX和FY为3.1中的模块生成的输出;这些输出是彼此独立计算的,我们的注意力模型学习一个函数 ,其中 P 是输出维度,它提供点云的新输出为

图片

3.3指针生成模块(Pointer Generation)

当匹配估计 mk 远非最佳时,ICP 最常见的故障模式就会发生。当这种情况发生时,随后使用普通的ICP估计的刚性运动不会显着改善对准,从而导致虚假的局部最优。作为替代方案,我们学习的输出经过专门训练,以使用下面解释的简单过程来公开匹配的点对。我们将这个步骤称为“指针生成”,再次受到第 3.2 节介绍的注意力文献中术语的启发。

为了避免选择不可微的硬分配,我们使用一种概率方法来生成从一个点云到另一个点云的(单随机)“软映射”。

也就是说,每个 xi ∈ X 被分配一个 Y 元素上的概率向量,由下面公式给出

图片

在这个公式里,表示注意力模块生成的 Y 的输出,Φxi 表示来自注意力模块的矩阵 ΦX 的第 i 行。我们可以将 m(xi, Y) 视为从每个 xi 到 Y 元素的“软指针”。

3.4 SVD模块

我们网络中的最后一个模块从第 3.3 节中计算的软匹配中提取刚性运动。我们使用软指针为 X 中的每个点生成 Y 中的匹配平均点:

图片

为了通过网络反向传播梯度,我们需要对 SVD 进行微分。[29]描述了计算该导数的标准方法;此计算的版本包含在 PyTorch [30] 和 TensorFlow [1] 中。请注意,我们只需要解决 3 × 3 特征问题,这些问题足够小,可以使用简单的算法(原则上)甚至封闭式公式来解决。

3.5损失函数模块

组合起来,上面的模块从一对点云 X 和 Y 映射到刚性运动,使它们彼此对齐。初始特征模块(3.1)和注意力模块(3.2)均由一组神经网络权重参数化,这些权重必须在训练阶段学习。我们采用相当简单的训练策略,测量合成生成的点云对的  与地面实况的偏差。

我们使用以下损失函数来衡量模型与真实刚性运动的一致性:

图片

这里,g 表示真实值。前两项定义了 SE(3) 上的简单距离。第三项表示 DCP 参数 θ 的 Tikhonov 正则化,这有助于降低网络的复杂性。

04

消融实验

我们在本节中进行了几次消融实验,剖析 DCP 并用替代方案替换每个部分,以了解我们网络的价值。

4.1使用PointNet 还是 DGCNN?

我们首先尝试回答 DGCNN 收集的局部特征是否比使用更简单的 PointNet 模型测量的粗略特征更有价值。正如[50]中所讨论的,PointNet 学习整个形状的全局描述符,而DGCNN 通过构建k-NN图来学习局部几何特征。我们用 PointNet(表示为 PN)替换 DGCNN,并使用 DCP-v1 和 DCP-v2 在 ModelNet40 上进行实验。表 5. 使用 DGCNN 的模型始终优于使用 PointNet 的模型。

图片

4.2是MLP还是SVD效果好

虽然 MLP 原则上是通用逼近器,但我们的 SVD 层旨在专门计算刚性运动。在这个实验中,我们检查 MLP 还是SVD层是否更适合配准。我们在 ModelNet40 上将 MLP 和 SVD 与 DCP-v1 和 DCP-v2 进行比较。

图片

表 6 显示 DCP-v1 和 DCP-v2 在 SVD 层上的表现都比 MLP 更好。这支持了我们使用 SVD 计算刚性变换的动机。

05

结论

从某种意义上说,我们的“深度最近点”技术的关键观察是,学习到的特征极大地促进了刚性对齐算法;通过结合 DGCNN [50] 和注意力模块,我们的模型可靠地提取找到对齐两个输入点云的刚性运动所需的对应关系。我们的端到端可训练模型足够可靠,可以在单次传递中提取高质量的对齐,这可以通过经典 ICP 的迭代或“抛光”来改进。

DCP 可立即应用于刚性对准问题,作为 ICP 的直接替代品,并具有改进的性能。除了直接使用之外,我们的实验还为未来的探究提出了几种途径。一个简单的扩展是看看我们学习的输出是否转移到其他任务,如分类和分割。我们还可以训练 DCP 以迭代(或递归)方式应用来优化对齐,而不是尝试在单次传递中进行对齐;强化学习的洞察力可以帮助改进这个方向的方法,使用均方误差作为奖励来学习控制何时停止迭代的策略。

我们还对场景测试感兴趣,这些场景通常有高达 300,000 个点。然而,当前的深度网络只能处理对象级点云(每个点云通常有大约 500 到 5,000 个点);这是最近点云学习方法的常见局限性。无论什么任务,场景测试都需要设计一个高效的场景级点云编码网络,这对于点云学习来说是一个有前途但具有挑战性的方向。

最后,我们希望我们的方法可以合并到更大的网络中,以实现高精度同步定位和建图(SLAM)或运动结构(SFM)。

作者 | 江城

排版 | 居居手

更多精彩内容请关注公众号:BFT机器人

本文为原创文章,版权归BFT机器人所有,如需转载请与我们联系。若您对该文章内容有任何疑问,请与我们联系,将及时回应。

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

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

相关文章

自适应巡航辅助ACC

1.自适应巡航辅助功能描述 自适应巡航控制(Adaptive Cruise Control),它通过单目摄像头与雷达数据融合来检测前方车辆距离及相对速度,控制油门和刹车系统以实现稳定跟随前方车辆,且达到驾驶员设定的目标时距。在没有前…

一文带你了解10倍股票杠杆是什么?

10倍股票杠杆是一种投资策略,其核心原理是通过借贷的方式将投资本金放大到原始资金的十倍。假设你有1000元的投资本金,使用10倍杠杆,你可以借贷额外的9000元,使你的总投资金额达到10000元。 使用10倍股票杠杆的主要目的是提高投资…

【数据库】P2 SELECT 与 SQL注释

SELECT 检索单个列检索多个列检索所有列不重复的结果 DISTINCT限制结果 LIMIT 与 OFFSET注释行内注释多行注释 检索单个列 从 Products 表中检索一个名为 prod_name 的列; SELECT prod_name FROM Products;【1】返回的数据可能是无序的,除非规定了顺序…

vue3.0 element-plus 不同版本 el-popover 循环优化

表格内循环el-popover 渲染以后的页面,数据量很大的时候页面会卡,生成的代码: 解决思路:将el-popover提出来,不参与循环,让el-popover只渲染一次 1、以1.1.0-beta.24版为例(低版本)…

【Antd】实现Table组件行点击,解决某一列不触发行点击

今天有个新需求&#xff0c;点击table行&#xff0c;执行一些操作。实现过程中遇到了&#xff1a;点击操作列、操作列内按钮会冒泡触发行点击。antd版本&#xff1a;1.7.8 一、解决方案 customRow <a-table :customRow"handleClickRow" :data-source"data_li…

DBeaver导数据抛错 Java heap space

从表中导出数据时报错&#xff1a; 原因&#xff1a; DBeaver内存设置过小&#xff0c;需要调整 找到配置文件&#xff1a;安装目录->dbeaver.init Xms为最小内存&#xff0c;默认 64M Xmx为最大内存&#xff0c;默认 1024M&#xff0c;调大此值即可&#xff0c;如10240M

GIS应用技巧之植被制图

植被&#xff0c;亦可称为植群&#xff0c;是地球表面某一地区所覆盖全体植物的总称&#xff0c;它是一个植物学、生态学、农学和地球科学的名词。 无论是GIS还是CAD中或者简单绘制表示植被&#xff0c;往往用绿色一个面覆盖即表示植被&#xff0c;GIS中更是如此&#xff0c;如…

〔AI 绘画〕Stable Diffusion 之 解决绘制多人或面部很小的人物时面部崩坏问题 篇

✨ 目录 &#x1f388; 脸部崩坏&#x1f388; 下载脸部修复插件&#x1f388; 启用脸部修复插件&#x1f388; 插件生成效果&#x1f388; 插件功能详解 &#x1f388; 脸部崩坏 相信很多人在画图时候&#xff0c;特别是画 有多个人物 图片或者 人物在图片中很小 的时候&…

数据结构入门指南:二叉树

目录 文章目录 前言 1. 树的概念及结构 1.1 树的概念 1.2 树的基础概念 1.3 树的表示 1.4 树的应用 2. 二叉树 2.1 二叉树的概念 2.2 二叉树的遍历 前言 在计算机科学中&#xff0c;数据结构是解决问题的关键。而二叉树作为最基本、最常用的数据结构之一&#xff0c;不仅在算法…

蓝牙耳机运动耳机哪个好、好用的运动蓝牙耳机推荐

如今的蓝牙耳机已经成为手机的最佳伴侣&#xff0c;也是运动爱好者的必备装备。然而&#xff0c;在众多蓝牙耳机中做出选择可能会让人感到困惑。其实&#xff0c;在选购运动蓝牙耳机时需要注意的事项还挺多的&#xff0c;比如舒适度、稳定性和音质等多个方面,逐一对照这些要点来…

Unity 工具 之 Azure 微软SSML语音合成TTS流式获取音频数据的简单整理

Unity 工具 之 Azure 微软SSML语音合成TTS流式获取音频数据的简单整理 目录 Unity 工具 之 Azure 微软SSML语音合成TTS流式获取音频数据的简单整理 一、简单介绍 二、实现原理 三、实现步骤 四、关键代码 一、简单介绍 Unity 工具类&#xff0c;自己整理的一些游戏开发可…

记一次fegin调用的媒体类型问题

1.问题&#xff1a;分页查询&#xff0c;分页参数传递不生效 2.开发环境&#xff1a;fegin接口 开发环境&#xff1a;调用接口 3.修改后&#xff1a;fegin接口不变 调用接口 前端媒体类型&#xff1a; 问题解决&#xff01;&#xff01;&#xff01; 4.原因分析&…

正中优配:超470份半年报出炉!多家龙头公司表现亮眼

到8月15日记者发稿&#xff0c;A股共有474家上市公司对外披露了2023年半年报&#xff0c;其间270家完结净利润同比增加&#xff0c;占比到达56.96%。陈述期内&#xff0c;净利润同比增幅居前的上市公司首要会集在酒店餐饮、旅行及景区、光伏设备、轿车零部件等职业。 270家A股上…

领航优配:券商板块热度不减,华林证券涨停,中银证券等走高

券商板块15日午后再度走强&#xff0c;截至发稿&#xff0c;华林证券涨停&#xff0c;中银证券涨超7%&#xff0c;兴业证券涨超3%&#xff0c;东方财富、华泰证券、太平洋等涨逾2%。 组织表示&#xff0c;当前券商PB估值为1.36倍&#xff0c;位于2020年以来的34%分位点附近&…

关于2023年8月19日PMP认证考试准考信下载通知

各位考生: 为保证参加2023年8月19日PMI项目管理资格认证考试的每位考生都能顺利进入考场参加考试&#xff0c;请完整阅读本通知内容。 一、关于准考信下载 为确保您顺利进入考场参加8月份考试&#xff0c;请及时登录本网站&#xff08;https://event.chinapmp.cn/&#xff09…

使用 BERT 进行文本分类 (01/3)

摄影&#xff1a;Max Chen on Unsplash 一、说明 这是使用 BERT 语言模型的一系列文本分类演示的第一部分。以文本的分类作为例&#xff0c;演示它们的调用过程。 二、什么是伯特&#xff1f; BERT 代表 来自变压器的双向编码器表示。 首先&#xff0c;转换器是一种深度学习模…

【嵌入式学习笔记】嵌入式入门7——IIC总线协议

1.IIC简介 IIC即Inter Integrated Circuit&#xff0c;集成电路总线&#xff0c;是一种同步&#xff0c;串行&#xff0c;半双工通信总线。 IIC总线协议——总线就是传输数据通道&#xff0c;协议就是传输数据的规则&#xff0c;有以下特点&#xff1a; 由时钟线SCL和数据线S…

8.15黄金能否跌破千九?日内如何稳健布局

近期有哪些消息面影响黄金走势&#xff1f;黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;周二&#xff08;8月15日&#xff09;亚洲时段&#xff0c;现货黄金延续低位徘徊&#xff0c;目前交投于1906.01美元/盎司附近&#xff0c;美国财长称耶伦称美国经济处于…

股票杠杆是指什么?从四个专业的角度分析

股票杠杆是指通过借用资金进行股票交易的一种投资行为。通过股票杠杆&#xff0c;投资者可以凭借有限的资本来控制更大规模的股票交易&#xff0c;并以此获得更高的盈利潜力。下面将从四个专业的角度对股票杠杆进行分析。 1. 金融学角度&#xff1a; 在金融学中&#xff0c;股…

全面梳理Python下的NLP 库

一、说明 Python 对自然语言处理库有丰富的支持。从文本处理、标记化文本并确定其引理开始&#xff0c;到句法分析、解析文本并分配句法角色&#xff0c;再到语义处理&#xff0c;例如识别命名实体、情感分析和文档分类&#xff0c;一切都由至少一个库提供。那么&#xff0c;你…