基于深度学习方法的点云算法1——PointNetLK(点云配准)

这篇具有很好参考价值的文章主要介绍了基于深度学习方法的点云算法1——PointNetLK(点云配准)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于深度学习方法的点云算法1——PointNetLK(点云配准)


请点点赞,会持续更新!!!

基于深度学习方法的点云算法2——PointNet(点云分类分割)
基于深度学习方法的点云算法3——PointNet++(点云分类分割)
基于深度学习方法的点云算法4——PCT: Point Cloud Transformer(点云分类分割)


摘要

作者将PointNet看成一个可学习的成像函数(learnable “imaging” function),然后就可以将用于图像对齐的LK算法应用于点云配准。作者主要贡献如下:
(1)修改LK算法,使其适用于PointNet;
(2)将LK与PointNet相结合得到PoinNetLK。
本文为深度学习在点云配准中的应用开辟了新的途径。

源码: PointNetLK源码
论文:PointNetLK论文


一、Introduction

点云本质上是非结构化的,具有样本和顺序排列的模糊性。 这种结构的缺乏使得现代深度学习体系结构在点云任务上的使用存在问题。从这个角度来看,PointNet的提出是革命性的,因为它为点云提供了可学习的结构化表示。可以将这一过程视为一种“成像”(“imaging”)——无论样本数量或点的顺序如何,都能产生固定尺寸的输出。

但是,PointNet在点云配准任务中的应用仍然有待探索(这其实就是作者要解决的问题)。作者将进一步探索将PointNet视为成像函数这一概念,这一概念的好处是可以将图像对齐方法应用于点云配准问题,作者将应用经典的LK(Lucas&Kanade)算法,因为近期有研究者将LK算法重新解释为了循环神经网络(recurrent neural network),实现了最先进的2D目标跟踪(object tracking)性能。

然而,LK算法不能简单地应用于PointNet(这其实就是作者要解决的第二个问题)。这是由于LK算法依赖于梯度估计,而梯度估计实际上是通过卷积来估计的。在二维光学图像或三维体积图像中,每个元素(即像素或体素)与其相邻元素之间具有已知的局部相关性,可以分别表示为二维和三维网格,从中可以定义卷积。PointNet没有这种局部依赖性,因此通过卷积估计空间梯度是不合适的。

贡献:
(1)修改LK算法,使其适用于PointNet;
(2)将LK与PointNet相结合得到PoinNetLK。
PointNetLK不像ICP及其变种算法一样需要计算代价高昂的对应点计算。具有准确率、初始化鲁棒性(ICP对初始化是敏感的)和计算效率优势。
PointNetLK对于未见过的对象具有显著的泛化性能,如图1所示,这种泛化性能可归因于网络体系结构中对齐过程的显式编码(explicit encoding )。 因此,网络只需要学习点网表示,而不需要学习对齐任务。
基于深度学习方法的点云算法1——PointNetLK(点云配准)
图1

本文所提出的方法是完全可微的,因此可以与更大的深度神经网络系统结合。
PointNetLK可以在GPU上运行,而ICP及其大多数变种方法只能在CPU上运行。


二、Related Work

PointNet: PointNet是第一个以原始点云为输入,使用DNN进行分类和分割的模型。其结构简单,但实现了最先进的性能(state of the art),并为处理点云数据提供了创新性的理论见解。PointNet++是PointNet的改进版,它在局部点集中分层聚合特征。

ICP and variants: Besl 和 McKay 提出了ICP(iterative closest point)算法,通过迭代估计点的对应关系并执行最小二乘法来进行配准,这是一种经典且广泛应用的方法。并且衍生出多种ICP变种算法。然而,ICP及其变种算法有一些基本的缺点:(1)明确估计最近点的对应关系,导致计算复杂度与点的数量成二次指数关系;(2)对初始化敏感;(3)因为可微性问题,无法将其集成到深度学习框架中。

Globally optimal registration: 因为ICP及其变种对初始扰动(initial perturbation)敏感,只能产生局部最优估计。Yang等人开发了Go-ICP,可以获取全局最优解。最近,凸松弛(convex relaxation)被用于全局姿态估计(global pose estimation),如黎曼优化、半定规划和混合整数规划。但是上述方法的一个主要缺点是计算时间长,不适合实时应用。

Interest point methods: 一些研究通过估计特征点(interest point)来进行配准。文献中有一些作品估计了兴趣点以帮助注册。例如,尺度不变曲率描述符、定向描述符、扩展高斯图像、快速点特征直方图、基于颜色强度的描述符、全局点签名、热核等,特征点有可能提高配准方法的计算速度,它们并不能推广到所有应用程序。

Hand-crafted representations: Vongkulbhisal等人提出的discriminative optimization (DO)方法采用手工设计特征向量的方式学习一系列特征图,来估计良好的初始对齐。随后使用ICP对配准进行细化。缺点(drawback)是特征和特征图是特定于每个对象的,不具有泛化能力。最近,他们开发了逆合成判别优化(inverse composition discriminative optimization,ICDO),可以泛化到未知对象上。不幸的是,ICDO的计算复杂度和点数上是二次指数关系,因此很难在几个真实场景中使用。ICDO的另一个问题是,特征和路线图都已学习,这可能会对方法的泛化能力造成影响。

Alternate representations: 体素化是一种将空间离散化并将点云转换为结构化网格的方法。几种在体素上使用DNN的方法已经得到了开发。这些方法的主要缺点包括计算时间和内存需求。另一种流行的表示是深度图像(depth image)或范围图像(range image),它将点云表示为2D视图的集合,这些视图很容易通过商业结构光传感器获得。通常在每个视图上执行卷积运算,并聚合得到的特征。一些作品还将体素数据与多视图数据相结合。有几项工作可以直接从光学图像估计3D姿势。例如,直接回归裁剪对象图像中对象方向的欧拉角。另一方面,在机器人操纵等应用中,姿势通常被解耦为旋转和平移分量,并且每个分量都是独立推断的。


三、PointNetLK

基于深度学习方法的点云算法1——PointNetLK(点云配准)
图2 PointNetLK

3.1 Overview

Φ表示PointNet函数, Φ使用的是多层感知机(Multi-Layer Perceptron,MLP),MLP将形状是N×3的数据转换为形状是N×K的特征,其中N为点的个数,3包含了x,y,z。然后应用对称池函数(symmetric pooling function, sym. func.),如最大池化或者平均池化,生成一个K维(形状是1×K,我习惯称之为长度为K)全局描述符。 在伤处过程中,作者利用MIP和symmetric pooling function将点云数据进行特征提取,得到了一个长度为K的点云全局特征,如图3所示。注意, P T P_T PT 表示模板点云, P S P_S PS 表示源点云,提取两者特征的MLP是共享参数(shared)的。
基于深度学习方法的点云算法1——PointNetLK(点云配准)
图3

优化方案如下:
基于深度学习方法的点云算法1——PointNetLK(点云配准)
G 属于李群,是刚体变换,表示源点云向模板点云的变换矩阵,G 如上式所示,可由指数形式表示,其中 T i T_i Ti表示扭转参数(twist parameters)(李代数) ξ 的指数映射的生成器。则3D点云配准问题可以转换为求取G ,使得Φ( P T P_T PT )=Φ( G ⋅ P S G·P_S GPS )。该方程类似于二维图像的经典LK算法中优化的数量,其中源图像被变换,从而使变换的源和模板之间的像素强度差最小化。

有关李群李代数,刚体变换的知识点可参考 SE(3)和se(3)

值得注意的是,本文剔除了PointNet体系结构中T-net,因为它的目的是转换输入点云,解决点云数据的旋转不变性问题,以提高分类精度。然而,本文的任务是点云配准,计算的正是两组点云之间的旋转关系和平移关系,如果引入T-Net,会使得提取到的点云特征中的旋转特征消失,进而无法完成配准工作。
注意: 将变换矩阵映射成指数形式的G 是为了在模型训练中可以求梯度。

应用逆合成(Inverse Compositional,IC) 公式改进LK算法,由于传统的LK算法在每次迭代优化时都有很高的计算成本,因此有必要使用IC公式。此成本来自在优化的每个步骤中,在变换的源图像上重新计算图像雅可比矩阵。IC公式的精髓在于逆转模板点云和源点云的作用:在每次迭代中,将解决模板点云而不是源点云的增量变换更新,然后将此增量变换的逆运算应用于源点云。通过这样做,将对模板点云而不是源点云执行雅可比计算,并且在优化开始之前只执行一次。如图4所示, J i J_i Ji为模板点云的雅可比矩阵, J + J^+ J+ J i J_i Ji的逆,因为模板点云是固定的,不发生变化的,因此其雅可比矩阵也是不变的,因此只需要计算一次。
基于深度学习方法的点云算法1——PointNetLK(点云配准)
图4

3.2 Derivation

本节主要描述迭代优化方案,迭代优化的目的是求取G
应用上一节提到的IC公式,得到:
基于深度学习方法的点云算法1——PointNetLK(点云配准)
然后将上述公式的右端线性化,得到:
基于深度学习方法的点云算法1——PointNetLK(点云配准)
G − G^- G定义如下:
基于深度学习方法的点云算法1——PointNetLK(点云配准)
Canonical LK: 定义雅各比矩阵:

基于深度学习方法的点云算法1——PointNetLK(点云配准)
雅各比矩阵J的形状是K×6。基于上述公式,计算雅各比矩阵需要计算PointNet函数Φ相对于G的扭转参数(twist parameters)(李代数) ξ的梯度的解析表示,这存在困难并且计算代价高昂。
Modified LK: 采用随机梯度法(stochastic gradient)计算J,具体而言,雅可比矩阵的每一列 J i J_i Ji可以通过有限差分梯度来近似,计算如下 :
基于深度学习方法的点云算法1——PointNetLK(点云配准)
其中, t i t_i ti是扭转参数ξ的无穷小扰动。这种计算J的方法允许将计算效率高的逆合成LK算法应用于使用PointNet提取特征的点云配准问题。注意:J只需要计算一次,因为模板点云是不发生变化的。对于雅可比矩阵的每列 J i J_i Ji,只有第i个扭曲参数具有非零值 t i t_i ti。理论上, t i t_i ti应该是无穷小的,此时,J等于解析导数。在实践中,根据经验发现,在所有迭代中,将 t i t_i ti设置为某个较小的固定值会产生最佳结果。
然后可计算 ξ:
基于深度学习方法的点云算法1——PointNetLK(点云配准)其中, J + J^+ J+J的摩尔-彭罗斯逆(Moore-Penrose inverse)。
总之,整个迭代算法包括通过上式计算扭转参数,以及通过下式更新源点云:
基于深度学习方法的点云算法1——PointNetLK(点云配准)最终估算 G e s t G_est Gest是迭代循环期间计算的所有增量估算的组成:
基于深度学习方法的点云算法1——PointNetLK(点云配准)
迭代的终止条件是ΔG小于设定的阈值。

3.3 Training

**Loss function:**训练的损失函数应该以最小化估计变换 G e s t G_{est} Gest和真实变换 G g t G_{gt} Ggt之间的差异为目标。文中并没有使用 ξ e s t ξ_{est} ξest ξ g t ξ_{gt} ξgt的均方误差(MSE),而是使用了如下损失函数:
基于深度学习方法的点云算法1——PointNetLK(点云配准)
它的计算效率更高,因为它在训练期间不需要矩阵对数运算。

Symmetric pooling operator: 在PointNet中,MLP操作之后是对称池化函数(symmetric pooling function),如最大池化或平均池化,以实现点的顺序排列不变性。在第4节中,展示了使用最大池化或平均池化的结果,并观察了在不同情况下哪个操作符可能更合适。 特别是,假设在噪声点云数据的情况下,平均池化比最大池化更有优势,这在实验中得到了证实。


四、Experiments

使用ModelNet40数据集,在测试时以ICP为baseline。

4.1 Train and test on same object categories

首先在ModelNet40数据集中的20各类别中训练,然后也在这20个类别中测试。首先使用PointNet分类模型在数据集上进行训练,然后用训练得到的分类模型初始化PointNetLK的特征提取网络,并用文中提出的损失函数进一步训练微调PointNetLK。源点云是模板点云的刚性变换,模板点云在通过扭转产生源点云之前线归一化到 [ 0 , 1 ] 3 [0,1]^3 [0,1]3之间。真是标签旋转角度在[0,45]度之间,平移距离为[0,0.8]之间。
实验结果如图5所示,在测试时,ICP和PointNetLK均迭代了10次。结果显示,PointNetLK能够以比ICP少得多的迭代次数收敛到正确的解。确保对ICP和PointNetLK用相同点云和相同的初始变换进行测试。测试的初始平移在[0,0.3]范围内,初始旋转在[0,90]度范围内。
基于深度学习方法的点云算法1——PointNetLK(点云配准)
图5

4.2 Train and test on different object categories

用ModelNet40中另外的20类训练模型,然后用训练时未使用的20类来测试PointNetLK,实验结果如图5绿色的曲线所示。实验结果表明PointNetLK具有很好的泛化性能。还在斯坦福数据集中的兔子点云上做了测试,效果很不错,如图6所示。
基于深度学习方法的点云算法1——PointNetLK(点云配准)
图6

4.3. Gaussian noise

研究了PointNetLK对高斯噪声的鲁棒性。从ModelNet40数据集中的每个形状随机采样1000个点得到模板点云,对模板点云加入高斯噪声得到源点云。作者认为在本实验中,对称池化算子的选择对PointNetLK的性能变得更加关键。正如在最初的PointNet工作中所指出的,使用最大池化操作符可以得到一组关键的形状点,这些形状点定义了全局特征向量。对于有噪声的数据,该临界集在不同的随机噪声样本中会发生较大的变化。因此,作者认为平均池更适合于学习噪声数据的全局特征。图7所示的结果证实了这一假设。我们重复第4.2节的程序,测试在训练期间看不到的对象类别。图8中显示了一些示例对齐对。
基于深度学习方法的点云算法1——PointNetLK(点云配准)
图7
基于深度学习方法的点云算法1——PointNetLK(点云配准)
图8

4.4. Partially visible data

作者探讨了PointNetLK在对齐2.5D数据的常见配准场景中的使用。在现实世界中,通常模板点云是一个完整的3D模型,源是一个2.5D扫描(2.5D的意思是从一个固定的视角获取到的点云信息,既不完整的点云信息)。这种情况下的一种方法是将2.5D源和3D模板直接输入到对齐算法中,并估计对应关系和对齐。第二种方法是从某一个视角相对于3D模型的初始估计来采样模型上的可见点,这可以类比为2.5D扫描。然后迭代更新视角,直到3D模型上的可见点与2.5D数据匹配。
作者采用第二种方法测试PointNetLK,因为如果采用第一种方法,代价函数 Φ ( P T ) − Φ ( G ⋅ P S ) Φ(P_T)-Φ(G·P_S) Φ(PT)Φ(GPS)可能会很大。相反,先根据初始姿势估计从3D模型中采样可见点更有意义,这样PointNetLK的输入都是2.5D。这样,正确的最终匹配更有可能使得代价函数 Φ ( P T ) − Φ ( G ⋅ P S ) Φ(P_T)-Φ(G·P_S) Φ(PT)Φ(GPS)接近于零。
整个过程可总结为:
扭转模板点云得到源点云,对模板点云和源点云在某一视角下进行采样得到2.5D数据,然后将2.5D的模板点云和源点云输入模型,完成一次迭代,得到变换矩阵,然后根据变换矩阵更新源点云,然后在对源点云在某一视角下进行采样得到新的2.5D数据,然后将模板点云和更新后的源点云输入模型,一直重复这个过程。
实验结果如图8所示:
基于深度学习方法的点云算法1——PointNetLK(点云配准)
图8

4.5. Same category, different object

作者假设PointNetLK特征可以用于配准不同的但属于同一类别的对象的点云。
实验结果如图9所示:
基于深度学习方法的点云算法1——PointNetLK(点云配准)
图9

4.6. Computational efficiency

基于深度学习方法的点云算法1——PointNetLK(点云配准)
图10


五、References

PointNetLK: Robust & Efficient Point Cloud Registration using PointNet文章来源地址https://www.toymoban.com/news/detail-496319.html


到了这里,关于基于深度学习方法的点云算法1——PointNetLK(点云配准)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深度理解实分析:超越公式与算法的学习方法

    在数学的学习旅程中,微积分和线性代数为许多学生提供了直观且具体的入门体验。它们通常依赖于明确的公式、算法以及解题步骤,而这些元素往往可以通过记忆和机械练习来掌握。然而,当我们迈入实分析的领域时,我们面临着一种全新的挑战。实分析不仅难度更大,而

    2024年02月20日
    浏览(36)
  • 三种目标检测方法(基于传统数字图像处理的识别方法、基于传统机器学习的识别方法和基于深度学习的识别方法)的区别

    问题描述:图像检测分为了基于传统数字图像处理的识别方法、基于传统机器学习的识别方法和基于深度学习的识别方法,但是有时迷惑三者的区别是什么呢? 问题解答: 第一,基于传统数字图像处理的识别方法和其他两者的区分在于基于传统图像处理方法没有损失函数,

    2024年02月12日
    浏览(39)
  • 基于深度学习的子图计数方法

    子图计数(Subgraph Counting)是图分析中重要的研究课题。给定一个查询图 和数据图 , 子图计数需要计算 在 中子图匹配的(近似)数目 。一般我们取子图匹配为子图同构语义,即从查询图顶点集 到数据图顶点集 的单射 ,保持拓扑关系(当查询图存在边 时,数据图中对应点也

    2024年02月22日
    浏览(28)
  • 基于深度学习方法与张量方法的图像去噪相关研究

    目录 1 研究现状 1.1 基于张量分解的高光谱图像去噪 1.2 基于深度学习的图像去噪算法 1.3 基于深度学习的高光谱去噪 1.4 小结 2 基于深度学习的图像去噪算法 2.1 深度神经网络基本知识 2.2 基于深度学习的图像去噪网络 2.3 稀疏编码 2.3.1 传统稀疏编码 2.3.2 群稀疏编码  2.3.3 卷积

    2024年02月16日
    浏览(43)
  • MATLAB环境下基于深度学习的语音降噪方法

    之前简单的利用深层自编码器对语音信号进行降噪 基于自编码器的语音信号降噪 - 哥廷根数学学派的文章 - 知乎 基于自编码器的语音信号降噪 - 知乎 本篇讲一些稍微复杂的基于深度学习的语音降噪方法,并比较了应用于同一任务的两种的网络:全连接层网络和卷积网络。

    2024年02月04日
    浏览(41)
  • 【论文笔记】基于深度学习的视觉检测及抓取方法

    工作 内容 效果 提升复杂环境中目标检测的效果 采用通道注意力机制对 YOLO-V3 进行改进,增强网络对图像特征提取的能力 平均识别率较改进前增加 0.32% 针对目前姿态估计角度存在 离散性 的问题 提出一种基于 VGG-16 主干网络嵌入最小面积外接矩形(MABR)算法,进行抓取位姿估

    2023年04月21日
    浏览(41)
  • 毕业设计-基于深度学习的垃圾分类识别方法

    目录 前言 课题背景和意义 实现技术思路 一、目标检测算法对比研究 二、垃圾数据集的制作 实现效果图样例 最后     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设

    2024年02月06日
    浏览(85)
  • KSS-ICP: 基于形状分析技术的点云配准方法

    目录 1. 概述 2. 算法实现 3. 实验结果 总结 Reference 三维点云配准是三维视觉领域一个经典问题,涉及三维重建,定位,SLAM等具体应用问题。传统的配准可以被分为两条技术路线,即基于全局姿态匹配的方法以及基于特征点对应的方法。全局姿态匹配通过在全局范围查找变换矩

    2023年04月08日
    浏览(84)
  • 基于深度学习的指针式仪表倾斜校正方法——论文解读

    中文论文题目:基于深度学习的指针式仪表倾斜校正方法 英文论文题目:Tilt Correction Method of Pointer Meter Based on Deep Learning 周登科、杨颖、朱杰、王库.基于深度学习的指针式仪表倾斜校正方法[J].计算机辅助设计与图形学学报, 2020, 32(12):9.DOI:10.3724/SP.J.1089.2020.18288.        针对仪

    2024年02月12日
    浏览(40)
  • 深度学习中基于python的预处理和图像扩增方法

    容易出现的报错: 错误原因通常为保存的路径不正确: 应改为: 即第一个参数应该写到文件的名称,而不能只写到文件夹就停止。 灰度图片和黑白图片有些相似,但并不完全相同。 灰度图片是指每个像素点的颜色由灰度值来表示,通常使用8位无符号整数(0-255)表示。灰

    2024年02月08日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包